The document discusses enterprise service buses (ESBs). It defines an ESB as middleware that acts as a mediator between different, often incompatible protocols and middleware products. The core capabilities of an ESB include web services support, adapters, invocation, mediation, routing, transformation, orchestration, and security. Java Business Integration (JBI) is introduced as an open standard for ESBs. OpenESB, which implements JBI, and its integration with GlassFish are also summarized. Finally, a sample usage scenario of using an ESB for loan processing is presented.
4. SOA Framework Recap
User Interface Dashboard (KPI)
User Interface + Single Window (Portal)
Business Process Management (BPEL)
Build Re-usable Services (ESB)
External/Internal Systems
5. ESB
Enterprise Service Bus (ESB) is the software
middleware
ESB acts as a mediator between different, often
incompatible protocols and middleware products
ESB is the backbone of SOA
You can't buy SOA, but you can buy an ESB
8. Features of an ESB
• Web Services Support
– ESB offers an ability to invoke SOAP and WSDL
based Web Services
• Adapters
– Many ESB vendors will provide adapters to integrate
with different thrd-part applications, such as
PeopleSoft, SAP
– Used for applications which do not directly have
SOAP or XML interface
• Invocation
– ESB supports synchronous and asynchronous calls to
services and sometimes callbacks
9. Features of an ESB (Cont.)
• Mediation and protocol independence
– Variety of protocols can be reconciled for complex
route across a variety of platform
– Allows to connect with different protocols such as
HTTP, FTP, SMTP, JDBC
• Routing
– Allows us to route the messages to different services
based on their content, origin or other attributes
• Transformation
– Data represented as XML can be transformed using
XSLT or XQuery before they are delivered to
services.
– Some ESB supports various XML, e.g. HL7, SWIFT
10. Features of an ESB (Cont.)
• Orchestration
– Offers the ability to coordinate multiple services to
expose them as a single proxy service
– Many ESBs delegate this functionality to a BPEL
engine
• Security
– Provides additional security capabiulity, SSL, SAML
• Control over the deployment, usage and
maintenance of services
12. Benefits of ESB
• Reduce time to integrate new and existing
applicatioms
• Increase flexibility because system dependencies are
reduced
• Simultaneous centralized management of services
• Centralized management ability (e.g. BAM)
• Encourage use of industry standard interface
• Greater agility and responsiveness to change
14. ESB Components
• There is no single product that can effectively do all
of the capabilities required of an ESB
• An ESB can be broken down into the following
components
– Mediator
– Service Registry
– Choreographer
– Rules Engine
15. Mediator
• Core capability of an ESB
• Component responsibilities
– Routing
– Communication
– Message Transformation
– Message Enhancement
– Protocol Transformation
– Message Processing
– Error Handling
– Service Orchestration
– Transaction Management
– Security
16. Service Registry
• Component responsibility
– Service mapping
• Can be used for Policy based information
• Very few products in the industry provide this
17. Choreographer
• Component responsibilities
– Message Processing
– Process Choreographer
– Transaction management
– Security
• Choreographer would be responsible for these
capability only if it is the entrypoint into the ESB
20. Benefits of ESB
• Reduce time to integrate new and existing
applicatioms
• Increase flexibility because system dependencies are
reduced
• Simultaneous centralized management of services
• Centralized management ability (e.g. BAM)
• Encourage use of industry standard interface
• Greater agility and responsiveness to change
23. ESB Differences
• Point-to-Point Connection
– consumer has to know the endpoint, it sends each request to
a specific receiver
– The problem with this type of connection is that the call fails
if the physical receiver is not available.
• Mediating Conenction
– identifies the provided service by a tag or symbolic that the
ESB interprets to find an appropriate provider
– ESB plays the role of a mediator or broker
27. ESB Differences
• Protocol Driven ESB
– the ESB defines a protocol, and the providers and consumers
send and receive messages according to this protoco
– Example; Web Services, which require a SOAP protocol,
• API Driven ESB
– the ESB defines platform-specific APIs (such as Java
interfaces), and the providers and consumers use these APIs
for service implementations and service calls (see
Connecting to an API-driven ESB).
30. Commercial ESBs
• IBM WebSphere ESB
• Sonic ESB
• Oracle Service Bus
• Software AG/WebMethods ESB
• Microsoft Biztalk
• TIBCO ActiveMatrix and BusinessWorks
33. Why JBI?
• Many ESB products in the market
• Each has its own pattern and specification
• Each may use different protocols and different
forms of communication
• Need different ways / patterns of implementation
• Need a ESB standard to avoid vendor lock-in
• The ideas is this: someone implements the spec and
then they can in turn implement engine that are
pluggable within that container.
34. What is JBI?
• JBI (Java Business Integration) is a specification
published by JCP (JSR 208)
• JBI is a message-based, pluggable meta-container
• It is a container of containers.
• JBI allows pluggable components to be added into
a standard architecture
35. What Is JBI?
• Standard “meta-container”
for integrated services
• Provides for plug-in:
– Service Engines (SE):
business logic
– Binding Components:
communications protocols
• Standard deployment /
Management model
• Loose coupling via WSDL
message exchanges
between WSDL described
Services
39. Service Engines
• Sevice Engines (SEs) are JBI components that
enable pluggable business logic
• SEs is a standard container for hosting WSDL-
defined service providers as well as service
consumers used internally by JBI
• Business Logic get deployed into SE
• SE get installed into JBI runtime
• OpenESB offers varous SEs
– BPEL SE
– XSLT SE
– JavaEE SE
40. Binding Components
• Binding Components (BCs) provides connectivity
services to SE
• BCs offer protocol independence
• BCs provide transport protocols for external
services
• BCs converts a message that is bound to a specific
protocol or transport into the normalized protocols
• Example BCs
– File, HTTP, FTP, SMTP, Database (JDBC)
– CICS, DCOM, CORBA
41. Normalized Message Router
• NMR mediates the message exchange between Ses
and Bcs within the framework
• NMR is the core of the bus
• Allows services to interoperate by passing
messages between all the components
• BC and SE are decoupled
• NMR is bidirectional
45. JBI Portability Model
• Components should be portable (SEs and BCs)
• Service units are not portable across SEs/BCs from
different vendors
• Example: moving an application from OpenESB
toServiceMix
– Install all Open ESB Service Engines and Binding
Components that you used, in ServiceMix
– Deploy the application into ServiceMix's runtime
48. What is Open ESB?
• Project Open ESB implements an Enterprise Service
Bus (ESB) runtime using JBI as the foundation
– This allows easy integration of web services to
create loosely coupled enterprise class composite
applications.
• It also provides various tools for the development,
deployment, and management of composite
applications
50. Design-Time Runtime Management
IDE Web Server
Java EE
BPEL XSLT FTP
Many More
Composite SE SE BC
SEs… Composite
EJBs
Application Java EE Application
Project Servlets SE JBI Bus Manager
HTTP FTP FTP
r e vr e S p p A Many More
BC BC BC
BCs…
BPEL BPEL
Editor 3rd Party Monitor
Open Standard Based Service
Platforms
Service Bus
WS-Reliable Messaging
XSLT WS-Security XSLT
3rd Party
Editor WS-FastInfoSet, …
Service Monitor
Platforms
IEP
IEP Editor Java EE
HTTP FTP FTP
Many More Monitor
BC BC BC
BCs…
EJBs
Java EE
Many More Servlets SE JBI Bus Many More
Many More
Editors BPEL XSLT FTP Many More
Editors
Many More
S ppA
Editors SE SE BC
SEs… Monitors
51. JBI Support in GlassFish
• A JBI runtime has been integrated with GlassFish V2
• GlassFish admin console now supports JBI
• Java EE Service Engine act as the bridge between Java
EE applications and JBI
• A Java EE application archive (ear/war/jar) can be
packaged in a JBI composite application
• Expose JMX to tools
• JBI runtime has been enhanced to adhere to the
appserver clustering architecture
– Each instance in the appserver cluster will also have a JBI
runtime in it
53. OpenESB Web Site
• https://open-esb.dev.java.net/
• Latest GlassFishESB v2.1 with NetBeans 6.1
• Documents / Examples
• 43 JBI Components
54. JBI Components : Examples
• Service Engines Binding Comps
– BPEL SE MQSeries BC
– XSLT SE Database BC
– JavaEE SE HL7 BC • Nolonger Maintain
– IEP SE SAP BC – JavaScript SE
– POJI SE SMTP BC – Aspect SE
– Scripting SE HTTP BC – JDBC BC
– WLM SE JMS BC – SMTP BC
File BC – SQL SE
CICS BC
DCOM BC
CORBA BC
...
68. Resources
Some contents are borrowed from the presentation
slides of Sang Shin, Java™ Technology Evangelist,
Sun Microsystems, Inc.
Business Process Execution Language for Web
Services, Matjaz B. Juric
The Role of the Enterprise Service Bus, Mark Richards
Java SOA Cookbook, Eben Hewitt
Building SOA-Based Composite Applications Using
NetBeans IDE 6, David Salter
SOA in Practice, Nicolai M. Josuttis
69. Thank you
thananum@gmail.com
www.facebook.com/imcinstitute
www.imcinstitute.com
69