The document discusses Enterprise Service Bus (ESB) and Java Business Integration (JBI). It defines ESB as middleware that acts as a mediator between different protocols and products. JBI is a specification that defines a standard architecture and container for pluggable integration components. OpenESB is an open source implementation of an ESB runtime based on JBI. It provides tools for developing, deploying, and managing composite applications. The document presents examples of how OpenESB and GlassFish can be used to implement a loan processing application using components like BPEL, JavaEE, and XSLT within a JBI architecture.
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
4
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
7. 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
8. 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
9. 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
11. 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 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
18. 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).
21. Commercial ESBs
• IBM WebSphere ESB
• Sonic ESB
• Oracle Service Bus
• Software AG/WebMethods ESB
• Microsoft Biztalk
• TIBCO ActiveMatrix and BusinessWorks
24. 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.
24
25. 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
25
26. What Is JBI?
• Standard “meta-container”
for integrated services
• Provides for plug-in:
– Service Engines (SE):
business logic
– Binding Components:
communications protocols
• Standard deployment
model
• Loose coupling via WSDL
message exchanges
between WSDL described
Services
28. 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
• OpenESB offers varous SEs
– BPEL SE
– XSLT SE
– JavaEE SE
29. Binding Components
• Binding Components (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
30. 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
• NMR is bidirectional
34. 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
34
36. Design-Time Runtime Management
IDE Web Server
Java EE
BPEL XSLT FTP
Many More
Composite SE SE BC
SEs… Composite
EJBs
Application Application
App Server
Java EE
Project Servlets SE JBI Bus Manager
HTTP FTP FTP
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
App Server
Java EE
Many More Servlets SE JBI Bus Many More
Many More
Editors BPEL XSLT FTP Many More
Editors
Many More
Editors SE SE BC
SEs… Monitors
37. 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
• 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
39. OpenESB Web Site
• https://open-esb.dev.java.net/
• Latest GlassFishESB v2.1 with NetBeans 6.1
• Documents / Examples
• 43 JBI Components
40. 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
– ...
49. 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
Java SOA Cookbook, Eben Hewitt
Building SOA-Based Composite Applications Using
NetBeans IDE 6, David Salter
SOA in Practice, Nicolai M. Josuttis
49