glass fish esb launch feb10 2009 part b frank k
TRANSCRIPT
1
examples of applicationsFebruary 10, 2009
Frank KievietOpenESB Community Manager
1
Slide 2
Example 1• Download HTTP ACCESS logs over FTP• Parse the log file• Filter the log file• Store the hits in a database
Slide 3
Example 2• Old system: An ERP system generates
purchase orders; the orders are printed out and mailed using USPS
• New system: added a web ordering application for internal use, added a financial Order Approval System and a Financial Monitoring System, and Purchase orders are now delivered electronically over the Internet using a Transaction Delivery Network application
ERPsystem
po.ps
ERPsystem
po.csv
Webprocurement
systemorder.xml
FinancialMonitoring
system
OrderApprovalSystem
po.xml
TDNsystem
po.edi
po.xml
Slide 4
ERPsystem
po.csv
po.xml
read
convert
Approvalsystem
Monitoringsystem
EmailNotify
po.xml
po.txt
convert
TDNsystem
po.edi
convert
> Following an order from the ERP system> ERP system creates a file with a batch of orders in CSV
format> File needs to be picked up, read and converted to a
canonical format> The CSV file does not contain all information necessary for
the canonical format> All orders in the CSV file need to be approved by an
approval system> Each order needs to be sent out to the Internet Gateway
(TDN) in EDI format, or to a Fax gateway in PS format> A financial monitoring application needs to get a copy of the
order> An email needs to be sent to the submitter of the order when
the order goes out> The department that generally takes delivery of goods needs
to be notified of the order
Slide 5
One possible solution• Example 1:
> Write some Java code that uses the Apache FTP library to download the files
> Ensure configuration is externalizable> Add error handling code (retries, avoid data loss, etc)> Write code to parse the log file> Use JPA to persist the data> Add a timer to do this task periodically
• Example 2:> Similar approach for example 2> Use libraries to interact with external systems> Use libraries to do file format conversions
Slide 6
Observations• Three aspects to both examples:
> Connectivity> Message transformation> Business logic / orchestration
• In Java coding solution:> Business/orchestration logic is intermingled with code to
connect to systems and other low level processing code> Because of this, will take some effort for someone else to
understand the application> It's hard to add swap one transport for another, or one data
format for another> The biggest problem: (next slide)
Slide 7
Scaling• An enterprise has hundreds of these integration
applications• Characteristics:
> Each application is relatively simple> Code is repetitive> Coding is labor intensive> Applications become hard to manage> Applications become hard to maintain
Slide 8
ERPsystem
po.csv po.xml
Approvalsystem
Monitoringsystem
Reserve.xml
ERP approval T
Finance
po.xml
TDNsystem
po.edi
TDN
Faxsystem
po.ps
Fax
po.txt
po.xml
po.xml
po.xml
po.xmlEAI applications or infrastructure
Existing systems
Messages
Webprocurement
order.xml
Web
Q
T
Solution with OpenESB
Slide 9
Example:A business process in BPEL
BPEL process
RequestExposed service
Reply
OK Topic
Not OK Topic
BPEL process
po.xml
Approvalsystem
approval Tpo.xml
T
Slide 10
ERPsystem
po.csv po.xmlERP
Reads and parses file
All these message exchanges are in-
memory
In-out message exchange; all others
are in-only
Database lookup
Data mapping
Canonicaldata
ERP specificdata
Example:Assembling an application in CASA
Slide 11
Integration is everywhere!• Connect to “legacy” systems• SOA
> Orchestration / services composition> Create new services from existing services / service creation
• Pain points:> Long running transactions> Async invocations (scalable)> Correlations
Thank you!
[email protected]://blogs.sun.com/fkieviet