Glass Fish Esb Launch Feb10 2009 Part B Frank K


Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Glass Fish Esb Launch Feb10 2009 Part B Frank K

  1. 1. examples of applications February 10, 2009 Frank Kieviet OpenESB Community Manager 1 1
  2. 2. Example 1 Download HTTP ACCESS logs over FTP • Parse the log file • Filter the log file • Store the hits in a database • Slide 2
  3. 3. Example 2 ERP system • 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 Web ERP procurement system system po.edi order po.csv .xml TDN system po po Financial Order .xml .xml Slide 3 Monitoring Approval system System
  4. 4. > Following an order from the ERP system ERP system > ERP system creates a file with a batch of orders in CSV po.csv format read > File needs to be picked up, read and converted to a convert canonical format po.xml > The CSV file does not contain all information necessary for Approval the canonical format system > All orders in the CSV file need to be approved by an approval system po.xml Monitoring > Each order needs to be sent out to the Internet Gateway system (TDN) in EDI format, or to a Fax gateway in PS format convert > A financial monitoring application needs to get a copy of the po.txt order Email > An email needs to be sent to the submitter of the order when Notify the order goes out convert > The department that generally takes delivery of goods needs po.edi to be notified of the order TDN Slide 4 system
  5. 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 5
  6. 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 6
  7. 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 7
  8. 8. Solution with OpenESB Reserve po.xml .xml Monitoring Finance system ERP system T ERP approval po.edi po.xml po.xml po.csv po.xml TDN TDN T system Approval system po.xml Web procurement Fax Web Fax order system .xml Q EAI applications or infrastructure po.txt po.xml Existing systems Email Email Messages Slide 8
  9. 9. Example: A business process in BPEL T approval po.xml po.xml T BPEL process Approval system Request Exposed service BPEL process OK Topic Reply Not OK Topic Slide 9
  10. 10. Example: Assembling an application in CASA ERP system ERP po.xml po.csv In-out message exchange; all others are in-only ERP specific data All these message exchanges are in- Reads and memory parses file Canonical data Data mapping Database lookup Slide 10
  11. 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 Slide 11
  12. 12. Thank you!