Enterprise Service Bus and JBI
-
Upload
thanachart-numnonda -
Category
Business
-
view
24 -
download
2
description
Transcript of Enterprise Service Bus and JBI
![Page 1: Enterprise Service Bus and JBI](https://reader037.fdocuments.in/reader037/viewer/2022102804/5457ec8aaf795963388b5a7f/html5/thumbnails/1.jpg)
Topic 4
Enterprise Service Busand JBI
Dr.Thanachart NumnondaSun Microsystems (Thailand)
Asst.Prof.Thanisa KruawaisayawanKMITL
![Page 2: Enterprise Service Bus and JBI](https://reader037.fdocuments.in/reader037/viewer/2022102804/5457ec8aaf795963388b5a7f/html5/thumbnails/2.jpg)
2
Agenda
What is ESB?
ESB Differences
What is JBI?
OpenESB &GlassFish
Usage Scenario
![Page 3: Enterprise Service Bus and JBI](https://reader037.fdocuments.in/reader037/viewer/2022102804/5457ec8aaf795963388b5a7f/html5/thumbnails/3.jpg)
3
What is ESB?
![Page 4: Enterprise Service Bus and JBI](https://reader037.fdocuments.in/reader037/viewer/2022102804/5457ec8aaf795963388b5a7f/html5/thumbnails/4.jpg)
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)
![Page 5: Enterprise Service Bus and JBI](https://reader037.fdocuments.in/reader037/viewer/2022102804/5457ec8aaf795963388b5a7f/html5/thumbnails/5.jpg)
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
![Page 6: Enterprise Service Bus and JBI](https://reader037.fdocuments.in/reader037/viewer/2022102804/5457ec8aaf795963388b5a7f/html5/thumbnails/6.jpg)
The role of ESB in SOA
![Page 7: Enterprise Service Bus and JBI](https://reader037.fdocuments.in/reader037/viewer/2022102804/5457ec8aaf795963388b5a7f/html5/thumbnails/7.jpg)
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
![Page 8: Enterprise Service Bus and JBI](https://reader037.fdocuments.in/reader037/viewer/2022102804/5457ec8aaf795963388b5a7f/html5/thumbnails/8.jpg)
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
![Page 9: Enterprise Service Bus and JBI](https://reader037.fdocuments.in/reader037/viewer/2022102804/5457ec8aaf795963388b5a7f/html5/thumbnails/9.jpg)
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
![Page 10: Enterprise Service Bus and JBI](https://reader037.fdocuments.in/reader037/viewer/2022102804/5457ec8aaf795963388b5a7f/html5/thumbnails/10.jpg)
ESB Features
![Page 11: Enterprise Service Bus and JBI](https://reader037.fdocuments.in/reader037/viewer/2022102804/5457ec8aaf795963388b5a7f/html5/thumbnails/11.jpg)
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
![Page 12: Enterprise Service Bus and JBI](https://reader037.fdocuments.in/reader037/viewer/2022102804/5457ec8aaf795963388b5a7f/html5/thumbnails/12.jpg)
12
ESB Differences
![Page 13: Enterprise Service Bus and JBI](https://reader037.fdocuments.in/reader037/viewer/2022102804/5457ec8aaf795963388b5a7f/html5/thumbnails/13.jpg)
Heterogeneous ESBs
![Page 14: Enterprise Service Bus and JBI](https://reader037.fdocuments.in/reader037/viewer/2022102804/5457ec8aaf795963388b5a7f/html5/thumbnails/14.jpg)
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
![Page 15: Enterprise Service Bus and JBI](https://reader037.fdocuments.in/reader037/viewer/2022102804/5457ec8aaf795963388b5a7f/html5/thumbnails/15.jpg)
Point-to-Point Connection
![Page 16: Enterprise Service Bus and JBI](https://reader037.fdocuments.in/reader037/viewer/2022102804/5457ec8aaf795963388b5a7f/html5/thumbnails/16.jpg)
Mediating Connection
![Page 17: Enterprise Service Bus and JBI](https://reader037.fdocuments.in/reader037/viewer/2022102804/5457ec8aaf795963388b5a7f/html5/thumbnails/17.jpg)
Interceptor (based on Point-to-Point)
![Page 18: Enterprise Service Bus and JBI](https://reader037.fdocuments.in/reader037/viewer/2022102804/5457ec8aaf795963388b5a7f/html5/thumbnails/18.jpg)
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).
![Page 19: Enterprise Service Bus and JBI](https://reader037.fdocuments.in/reader037/viewer/2022102804/5457ec8aaf795963388b5a7f/html5/thumbnails/19.jpg)
Protocol-Driven ESB
![Page 20: Enterprise Service Bus and JBI](https://reader037.fdocuments.in/reader037/viewer/2022102804/5457ec8aaf795963388b5a7f/html5/thumbnails/20.jpg)
API-Driven ESB
![Page 21: Enterprise Service Bus and JBI](https://reader037.fdocuments.in/reader037/viewer/2022102804/5457ec8aaf795963388b5a7f/html5/thumbnails/21.jpg)
Commercial ESBs
• IBM WebSphere ESB • Sonic ESB• Oracle Service Bus• Software AG/WebMethods ESB• Microsoft Biztalk• TIBCO ActiveMatrix and BusinessWorks
![Page 22: Enterprise Service Bus and JBI](https://reader037.fdocuments.in/reader037/viewer/2022102804/5457ec8aaf795963388b5a7f/html5/thumbnails/22.jpg)
Opensource ESB
• Mule• Apache ServiceMix• OpenESB (GlassFish v2)• Project Fuji (OpenESB v3)
![Page 23: Enterprise Service Bus and JBI](https://reader037.fdocuments.in/reader037/viewer/2022102804/5457ec8aaf795963388b5a7f/html5/thumbnails/23.jpg)
23
What is JBI?
![Page 24: Enterprise Service Bus and JBI](https://reader037.fdocuments.in/reader037/viewer/2022102804/5457ec8aaf795963388b5a7f/html5/thumbnails/24.jpg)
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.
![Page 25: Enterprise Service Bus and JBI](https://reader037.fdocuments.in/reader037/viewer/2022102804/5457ec8aaf795963388b5a7f/html5/thumbnails/25.jpg)
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
![Page 26: Enterprise Service Bus and JBI](https://reader037.fdocuments.in/reader037/viewer/2022102804/5457ec8aaf795963388b5a7f/html5/thumbnails/26.jpg)
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
![Page 27: Enterprise Service Bus and JBI](https://reader037.fdocuments.in/reader037/viewer/2022102804/5457ec8aaf795963388b5a7f/html5/thumbnails/27.jpg)
JBI Architecture
![Page 28: Enterprise Service Bus and JBI](https://reader037.fdocuments.in/reader037/viewer/2022102804/5457ec8aaf795963388b5a7f/html5/thumbnails/28.jpg)
JBI
![Page 29: Enterprise Service Bus and JBI](https://reader037.fdocuments.in/reader037/viewer/2022102804/5457ec8aaf795963388b5a7f/html5/thumbnails/29.jpg)
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
![Page 30: Enterprise Service Bus and JBI](https://reader037.fdocuments.in/reader037/viewer/2022102804/5457ec8aaf795963388b5a7f/html5/thumbnails/30.jpg)
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
![Page 31: Enterprise Service Bus and JBI](https://reader037.fdocuments.in/reader037/viewer/2022102804/5457ec8aaf795963388b5a7f/html5/thumbnails/31.jpg)
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
![Page 32: Enterprise Service Bus and JBI](https://reader037.fdocuments.in/reader037/viewer/2022102804/5457ec8aaf795963388b5a7f/html5/thumbnails/32.jpg)
JBI and Composite Application
![Page 33: Enterprise Service Bus and JBI](https://reader037.fdocuments.in/reader037/viewer/2022102804/5457ec8aaf795963388b5a7f/html5/thumbnails/33.jpg)
Overview of Message Routing
![Page 34: Enterprise Service Bus and JBI](https://reader037.fdocuments.in/reader037/viewer/2022102804/5457ec8aaf795963388b5a7f/html5/thumbnails/34.jpg)
JBI Runtime
![Page 35: Enterprise Service Bus and JBI](https://reader037.fdocuments.in/reader037/viewer/2022102804/5457ec8aaf795963388b5a7f/html5/thumbnails/35.jpg)
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
![Page 36: Enterprise Service Bus and JBI](https://reader037.fdocuments.in/reader037/viewer/2022102804/5457ec8aaf795963388b5a7f/html5/thumbnails/36.jpg)
36
OpenESB & GlassFish
![Page 37: Enterprise Service Bus and JBI](https://reader037.fdocuments.in/reader037/viewer/2022102804/5457ec8aaf795963388b5a7f/html5/thumbnails/37.jpg)
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
![Page 38: Enterprise Service Bus and JBI](https://reader037.fdocuments.in/reader037/viewer/2022102804/5457ec8aaf795963388b5a7f/html5/thumbnails/38.jpg)
38
Open ESB Architecture
![Page 39: Enterprise Service Bus and JBI](https://reader037.fdocuments.in/reader037/viewer/2022102804/5457ec8aaf795963388b5a7f/html5/thumbnails/39.jpg)
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
![Page 40: Enterprise Service Bus and JBI](https://reader037.fdocuments.in/reader037/viewer/2022102804/5457ec8aaf795963388b5a7f/html5/thumbnails/40.jpg)
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
![Page 41: Enterprise Service Bus and JBI](https://reader037.fdocuments.in/reader037/viewer/2022102804/5457ec8aaf795963388b5a7f/html5/thumbnails/41.jpg)
JBI in Admin Console
![Page 42: Enterprise Service Bus and JBI](https://reader037.fdocuments.in/reader037/viewer/2022102804/5457ec8aaf795963388b5a7f/html5/thumbnails/42.jpg)
OpenESB Web Site
• https://open-esb.dev.java.net/• Latest GlassFishESB v2.1 with NetBeans 6.1• Documents / Examples• 43 JBI Components
![Page 43: Enterprise Service Bus and JBI](https://reader037.fdocuments.in/reader037/viewer/2022102804/5457ec8aaf795963388b5a7f/html5/thumbnails/43.jpg)
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
![Page 44: Enterprise Service Bus and JBI](https://reader037.fdocuments.in/reader037/viewer/2022102804/5457ec8aaf795963388b5a7f/html5/thumbnails/44.jpg)
![Page 45: Enterprise Service Bus and JBI](https://reader037.fdocuments.in/reader037/viewer/2022102804/5457ec8aaf795963388b5a7f/html5/thumbnails/45.jpg)
45
Usage Scenario
![Page 46: Enterprise Service Bus and JBI](https://reader037.fdocuments.in/reader037/viewer/2022102804/5457ec8aaf795963388b5a7f/html5/thumbnails/46.jpg)
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
![Page 47: Enterprise Service Bus and JBI](https://reader037.fdocuments.in/reader037/viewer/2022102804/5457ec8aaf795963388b5a7f/html5/thumbnails/47.jpg)
NMR
BPEL XSLTJavaEE
WS-I BP JMS File
JBI-basedInfrastructure
![Page 48: Enterprise Service Bus and JBI](https://reader037.fdocuments.in/reader037/viewer/2022102804/5457ec8aaf795963388b5a7f/html5/thumbnails/48.jpg)
NMR
LoanRequestProcess
TransformReport
LoanProcessor
EJB
LoanRS WS ReportMail ReportStore
BPEL XSLTJavaEE
FileJMSWS-I BP
JBI-basedInfrastructure
![Page 49: Enterprise Service Bus and JBI](https://reader037.fdocuments.in/reader037/viewer/2022102804/5457ec8aaf795963388b5a7f/html5/thumbnails/49.jpg)
NMR
LoanRequestProcess
TransformReport
LoanProcessor
EJB
LoanRS WS ReportMail ReportStore
BPEL XSLTJavaEE
FileJMSWS-I BP
![Page 50: Enterprise Service Bus and JBI](https://reader037.fdocuments.in/reader037/viewer/2022102804/5457ec8aaf795963388b5a7f/html5/thumbnails/50.jpg)
NMR
LoanRequestService
TransformReport
LoanProcessor
EJB
LoanRS WS ReportMail ReportStore
BPEL XSLT JavaEE
FileJMSWS-I BP
ArchitectureRefactoring
![Page 51: Enterprise Service Bus and JBI](https://reader037.fdocuments.in/reader037/viewer/2022102804/5457ec8aaf795963388b5a7f/html5/thumbnails/51.jpg)
NMR
LoanRequestService
TransformReport
LoanProcessor
LoanRS WS ReportMail
BPEL XSLT RulesEngine
ReportStoreFileJMSWS-I BP
LoanRS QJMS
ReportStore
JavaEE
![Page 52: Enterprise Service Bus and JBI](https://reader037.fdocuments.in/reader037/viewer/2022102804/5457ec8aaf795963388b5a7f/html5/thumbnails/52.jpg)
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