Open Esb 20081104 V2
Upcoming SlideShare
Loading in...5

Open Esb 20081104 V2



An overview of the OpenESB community and the GlassFish ESB distribution

An overview of the OpenESB community and the GlassFish ESB distribution



Total Views
Views on SlideShare
Embed Views



4 Embeds 32 23 6 2 1



Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment

Open Esb 20081104 V2 Open Esb 20081104 V2 Presentation Transcript

  • What is OpenESB / GlassFishESB? December 2008 Frank Kieviet OpenESB Community Manager 1
  • Agenda • What are we trying to do? (Value proposition) • How does OpenESB look like? • Basic concepts • Comparing OpenESB with other ESBs • Open Source • What is next? Slide 2
  • What are we trying to do? Slide 3
  • Example 1 • Download HTTP ACCESS logs over HTTP • Parse the log file • Filter the log file • Store the hits in a database Slide 4
  • Example 2 ERP s y s te m • Old system: An ERP system generates purchase orders; the orders are printed p o . p s 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 W eb ERP p ro c u re m e n t s y s te m s y s te m p o .e d i o rd e r p o .c s v .x m l TDN s y s te m po po .x m l O rd e r .x m l F in a n c ia l A p p ro v a l M o n it o r in g Slide 5 S y s te m s y s te m
  • ERP s y s te m > Following an order from the ERP system p o .c s v > ERP system creates a file with a batch of orders in CSV re a d format c o n v e rt > File needs to be picked up, read and converted to a canonical p o .x m l format A p p ro v a l > The CSV file does not contain all information necessary for s y s te m the canonical format > All orders in the CSV file need to be approved by an approval p o .x m l system M o n it o r in g s y s te m > Each order needs to be sent out to the Internet Gateway c o n v e rt (TDN) in EDI format, or to a Fax gateway in PS format p o .tx t > A financial monitoring application needs to get a copy of the E m a il order N o t if y > An email needs to be sent to the submitter of the order when c o n v e rt the order goes out p o .e d i > The department that generally takes delivery of goods needs TDN to be notified of the order s y s te m Slide 6
  • 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 7
  • 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 8
  • 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 9
  • How OpenESB helps • OpenESB provides > Off the shelf connectivity components > Off the shelf components for tough orchestration problems > Off the shelf data transformation components • OpenESB aims to > ... separate business logic from other logic > ... reduce the amount of code > ... reduce the cost to build large numbers of these applications > ... make these applications manageable • But wait, there's more! > (next slide) Slide 10
  • Web services • Isn't everybody using web services? > Yes, but not today: still a lot of non-web services connectivity > Still requires data transformation and orchestration > (And in the future will bring its own integration problems) • OpenESB aims to be an SOA platform for > Service Composition: an application uses various other services to provide new functionality > Service Creation: expose functionality as a service > e.g. add a web service wrapper around legacy systems Slide 11
  • What does OpenESB look like? Slide 12
  • Process view • Runtime > GlassFish > JBI Runtime > Components > JBI Components: BPEL SE, XSLT SE, HTTP BC, EE SE > EE Components • Designtime > NetBeans > Plugins > BPEL editor, WSDL editor, ... • Management > ESB Console Slide 13
  • Solution with OpenESB p o .x m l R e s e rv e .x m l M o n it o r in g F in a n c e s y s te m ERP s y s te m p o .c s v ERP p o .x m l a p p ro v a l p o .x m l T p o .x m l p o .e d i TDN TDN T s y s te m A p p ro v a l s y s te m p o .x m l p o .p s W eb p ro c u re m e n t Fax o rd e r W eb Fax s y s te m .x m l Q E A I a p p lic a t io n s o r in f r a s t r u c t u r e p o .x m l p o .tx t E x is tin g s y s t e m s E m a il E m a il M essages Slide 14
  • Example: A business process in BPEL p o .x m l a p p ro v a l p o .x m l T B P E L p ro c e s s T A p p ro v a l s y s te m R equest E xposed s e r v ic e B P E L p ro c e s s O K T o p ic R e p ly N ot O K T o p ic Slide 15
  • Example: Assembling an application in CASA ERP s y s te m p o .c s v ER P p o .x m l In -o u t m e s s a g e e x c h a n g e ; a ll o t h e r s a r e in - o n ly E R P s p e c if ic d a ta A ll th e s e m e s s a g e e x c h a n g e s a r e in - R eads and m e m o ry p a r s e s f ile C a n o n ic a l d a ta D a ta m a p p in g D a t a b a s e lo o k u p Slide 16
  • Components • 43 components • Breadth significantly enhanced by partners / contributors, each bringing domain expertise to the table Slide 17
  • Connectivity • HTTP, File, FTP, JMS, Email, Scheduler • Database, ETL, Data Mashup, Mural • Asterisk, Exec BC, HL7, LDAP BC, RSS BC, SIP BC, SNMP BC, TCPIP BC, UDDI BC, XMPP BC • CICS BC, CORBA BC, DCOM BC, EJB BC, IMS BC, MSMQ BC, MQSeries BC, ScreenScraping SE, SWIFT BC, SAP BC Slide 18
  • Message transformation • XSLT SE • Encoding SE • Visual mapping in BPEL editor • Java based mapping (test/sample driven) Slide 19
  • Orchestration / business logic • BPEL SE > Long running transactions > Asynchronous interactions (correlation) > Persistence, clustering • IEP SE (Complex Event Processing) > Event Driven Architectures • EE SE > Makes EJBs accessible from within JBI Slide 20
  • • POJO SE > Use simple Java classes for business logic • Scripting SE > Use scripts for business logic • WLM SE > Human workflow • Camel SE Slide 21
  • Basic concepts Slide 22
  • Basics • Components > Are really containers in which parts of an application are deployed into > BC = Binding Component: proxy to service > SE = Service Engine: runs business logic > Are installed into the runtime • Service Units > Artifacts that get deployed into a component > Examples: .bpel file for a BPEL process, a WSDL for the HTTP BC • Composite application > A zip that gets deployed into the runtime > Makes up an application Slide 23
  • JBI in a nutshell • JSR 208: Java for Business Integration • Provides a multi-vendor standard for > Messages sent over the bus > Component container interfaces > Management, start/stop etc • Async message exchange • Components • In-vm > Allows transaction propagation > Streaming (From David Chappell) > Passing by reference Slide 24
  • Transaction propagation example Inbound BC NMR EESE Workmanager Work accept accept Begin tx send accept returns submit Work run accept tx associate tx propagated done finished accept returns done disassociate tx tx commit Slide 25
  • WSDL • WSDL > Describes what messages are sent and returned > WSDL file is in XML > Message End Point + Operation • WSDL is not necessarily SOAP • WSDL can also be used for non-XML data exchanges • Abstract WSDLs describe what is exchanged • Concrete WSDLs describe how is exchanged Slide 26
  • Example JBI Container BPEL SE WSDL HTTP HTTP BC WSDL BPEL process WSDL WSDL binding BPEL process NMR EE SE HTTP WSDL ejb.jar WSDL RMI application.ear = service unit; all service units together = service assembly Slide 27
  • OpenESB compared with other ESBs Slide 28
  • Categorization • Different ways of categorizing ESBs > Open Source versus Proprietary/closed source > Backing / project size > Open standards versus proprietary > Runtime only, or complete with design time? • OpenESB > 100% Open Source > Backed by Sun > Open standards: external and internal > JBI: gives interoperability between components from different vendors – avoids vendor lock in > Comes with strong design time tooling Slide 29
  • Open Source Slide 30
  • OpenESB, the community • Started in 2005 • Led by Sun Microsystems • Many other partners (5+) and contributors: > e.g. Advantech, Imola, ChainBuilder, eviware, Gestalt • A lot of engineers working on Java CAPS, a proprietary Sun product, are now working on OpenESB. > ... causing a recent surge in activity in the community • Sun is now providing commercial support on GlassFish ESB • A vibrant community Slide 31
  • GlassFish ESB, Open ESB • Open ESB is the name of the open source project • GlassFish ESB is the name of a distribution built in the OpenESB community > Sun provides commercial support on this distribution > Is a subset of the components in OpenESB Slide 32
  • Commercial applications • OpenESB bits are used in Java CAPS • GlassFish ESB is commercially supported • Third parties are using OpenESB as OEMs Slide 33
  • • Lean more: Slide 34
  • What is next? Slide 35
  • Research project: Fuji • Innovation at the center of our next generation platform • Popularity of simple, productive solutions > A growing number of developers value high productivity and simplicity over all-encompassing but complex • Make existing users more productive • Capture larger audiences > Many developers do tasks that are ideally suited to our platform > ... but they don't necessarily think of it as “integration” or “SOA” Slide 36
  • What does Fuji bring? • Runs on GlassFish V3 • OSGi • Maven > Simplify user interface to service artifacts > Convention, Configuration, Code ... (In that order) • New way of specifying interactions between components: Integration Flow Language > Editable text > Browser based visual editor • Enterprise Integration Patterns out-of-the-box • Interceptors • New way of distribution over multiple machines Slide 37
  • Example ... can be described in a text file as: (next slide) Slide 38
  • Slide 39
  • Service Composition in a Browser Slide 40
  • Q&A