IAC 2024 - IA Fast Track to Search Focused AI Solutions
Open Esb 20081104 V2
1. What is OpenESB /
GlassFishESB?
December 2008
Frank Kieviet
OpenESB Community Manager
1
2. 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
4. Example 1
• Download HTTP ACCESS logs over HTTP
• Parse the log file
• Filter the log file
• Store the hits in a database
Slide 4
5. 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
6. 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
7. 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
8. 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
9. 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
10. 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
11. 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
13. 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
14. 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
15. 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
16. 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
17. Components
• 43 components
• Breadth significantly enhanced by partners / contributors,
each bringing domain expertise to the table
Slide 17
18. 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
19. Message transformation
• XSLT SE
• Encoding SE
• Visual mapping in BPEL editor
• Java based mapping (test/sample driven)
Slide 19
20. 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
21. • POJO SE
> Use simple Java classes for business logic
• Scripting SE
> Use scripts for business logic
• WLM SE
> Human workflow
• Camel SE
Slide 21
23. 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
24. 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
25. 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
26. 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
27. 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
29. 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
31. 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
32. 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
33. Commercial applications
• OpenESB bits are used in Java CAPS
• GlassFish ESB is commercially supported
• Third parties are using OpenESB as OEMs
Slide 33
36. 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
37. 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
38. Example
... can be described in a text file as:
(next slide)
Slide 38