Modernizing Legacy Systems Using Ballerina

wso2.org 177 views 17 slides May 09, 2024
Slide 1
Slide 1 of 17
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17

About This Presentation

The integration landscape is changing rapidly with the introduction of technologies like GraphQL, gRPC, stream processing, iPaaS, and platformless. However, not all existing applications and industries can keep up with these new technologies. Certain industries, like manufacturing, logistics, and fi...


Slide Content

Modernizing Legacy
Systems using Ballerina
Chathura Ekanayake
Software Architect
WSO2

A look at a typical enterprise...

3

Expectation...
4
Reality...

Business-to-Business (B2B) interactions
●Minimal control over message formats, data and protocols
●EDI as a prominent message format
●Comprehensive standardizations, but often uses variations
5

Deployed everywhere!
6

A technology for integrating
everything...

Native support for JSON, XML and CSV
8

Connect with any system
9

Deployment flexibility
10
Docker
Kubernetes
AWS Lambda

B2B integrations with EDI
11
HDR*1201*2008-01-01~
ORG*P120*ABC Store*67, Park road:Brisbane:Australia*01 678 8908^04 732 3721~
ITM*A-250*12*~
ITM*A-45*100*Kevin:Urgent~
ITM*D-10*58*Smith:REF 10053^Steven:Pre orders~
...
●Used since early 70s
●Heavily adopted in transportation, insurance, finance, retail, and supply
chain sectors.
●Comprehensive standardizations for specific industry sectors

EDI with Ballerina (in 3 steps)
12
$ bal edi codegen -i porder.json -o border.bal
string ediText = check io:fileReadString("resources/order1.edi");
POrder pOrder = check fromEdiString(ediText);
io:println(pOrder.toJsonString());
2. Generate code
3. Process EDI messages:
1. Prepare the schema:

Working with B2B EDI standards
13
●Standardizations for B2B messages (X12, EDIFACT, HL7, etc)
⦿ X12 850 - Purchase order
⦿ X12 810 - Invoice
⦿ X12 837 - Healthcare claim

Working with B2B EDI standards
14
string ediText = check io:fileReadString("resources/834_1.edi");
m834:EnrollmentData enrollment =
check abc:fromEdiString(ediText, abc:EDI_834).ensureType();
io:println(enrollment);
X12
schemas
834
Customized
schema
EDI tool

B2B Integration architecture with Choreo
15

Question Time!
16

Thank You!