enterprise service bus and jbi
DESCRIPTION
This presentation describes ESB, JBI and OpenESBTRANSCRIPT
Topic 4
Enterprise Service Busand JBI
Dr.Thanachart NumnondaSun Microsystems (Thailand)
Asst.Prof.Thanisa KruawaisayawanKMITL
2
Agenda
What is ESB?
ESB Differences
What is JBI?
OpenESB &GlassFish
Usage Scenario
3
What is ESB?
4
SOA Framework Recap
External/Internal Systems
Build Re-usable Services (ESB)
Business Process Management (BPEL)
User Interface + Single Window (Portal)
User Interface Dashboard (KPI)
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
The role of ESB in SOA
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
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
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
ESB Features
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
12
ESB Differences
Heterogeneous ESBs
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
Point-to-Point Connection
Mediating Connection
Interceptor (based on Point-to-Point)
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).
Protocol-Driven ESB
API-Driven ESB
Commercial ESBs
• IBM WebSphere ESB • Sonic ESB• Oracle Service Bus• Software AG/WebMethods ESB• Microsoft Biztalk• TIBCO ActiveMatrix and BusinessWorks
Opensource ESB
• Mule• Apache ServiceMix• OpenESB (GlassFish v2)• Project Fuji (OpenESB v3)
23
What is JBI?
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.
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
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
JBI Architecture
JBI
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
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
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
JBI and Composite Application
Overview of Message Routing
JBI Runtime
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
36
OpenESB & GlassFish
37
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
38
Open ESB Architecture
IDE Web Server
BPELEditor
Java EESE JBI Bus
XSLTSE
HTTPBC
FTPBC
FTPBCMany MoreSEs…
FTPBCMany MoreBCs…
App S
erver
XSLTEditor
CompositeApplication
Project
IEP Editor
CompositeApplication
Manager
Runtime
BPELSE
Java EE
EJBs
Servlets
Java EESE JBI Bus
XSLTSE
HTTPBC
FTPBC
FTPBCMany MoreSEs…
FTPBCMany MoreBCs…
App S
erver
BPELSE
Java EE
EJBs
Servlets
Design-Time Management
3rd PartyService
Platforms
3rd PartyService
Platforms
Open Standard Based Service Bus
WS-Reliable MessagingWS-SecurityWS-FastInfoSet, …
Many MoreEditorsMany More
Editors
IEPMonitor
BPELMonitor
XSLTMonitor
Many MoreEditorsMany MoreMonitors
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
JBI in Admin Console
OpenESB Web Site
• https://open-esb.dev.java.net/• Latest GlassFishESB v2.1 with NetBeans 6.1• Documents / Examples• 43 JBI Components
JBI Components : Examples• Service Engines
– BPEL SE– XSLT SE– JavaEE SE– IEP SE– POJI SE– Scripting SE– WLM SE
• Binding Comps– MQSeries BC– Database BC– HL7 BC– SAP BC– SMTP BC– HTTP BC– JMS BC– File BC– CICS BC– DCOM BC– CORBA BC– ...
• Nolonger Maintain– JavaScript SE– Aspect SE– JDBC BC– SMTP BC– SQL SE
45
Usage Scenario
Usage Scenario: Loan Processing• Loan Requestor Service:
– LoanRequestProcess• WS-I BP• BPEL Orchestration
– LoanProcessor• JavaEE
– TransformReport• XSLT
– LoanReportStore• Business Partner thru FTP
– LoanReportMailer• Legacy thru JMS
NMR
BPEL XSLTJavaEE
WS-I BP JMS File
JBI-basedInfrastructure
NMR
LoanRequestProcess
TransformReport
LoanProcessor
EJB
LoanRS WS ReportMail ReportStore
BPEL XSLTJavaEE
FileJMSWS-I BP
JBI-basedInfrastructure
NMR
LoanRequestProcess
TransformReport
LoanProcessor
EJB
LoanRS WS ReportMail ReportStore
BPEL XSLTJavaEE
FileJMSWS-I BP
NMR
LoanRequestService
TransformReport
LoanProcessor
EJB
LoanRS WS ReportMail ReportStore
BPEL XSLT JavaEE
FileJMSWS-I BP
ArchitectureRefactoring
NMR
LoanRequestService
TransformReport
LoanProcessor
LoanRS WS ReportMail
BPEL XSLT RulesEngine
ReportStoreFileJMSWS-I BP
LoanRS QJMS
ReportStore
JavaEE
52
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