Topic 2

          Enterprise Service Bus




Assoc.Prof.Dr. Thanachart Numnonda
        www.imcinstitute.com
Agenda
 What   is ESB?
 ESB   Differences
 What   is JBI?
 OpenESB    &GlassFish
 Usage   Scenario

                              2
What is ESB?




               3
SOA Framework Recap

   User Interface Dashboard (KPI)‫‏‬

User Interface + Single Window (Portal)

Business Process Management (BPEL)‫‏‬

   Build Re-usable Services (ESB)‫‏‬

      External/Internal Systems
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
ESB Core Capabilities
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
ESB Components
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
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
Service Registry
•   Component responsibility
     –   Service mapping
•   Can be used for Policy based information
•   Very few products in the industry provide this
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
Rules Engine
•   Component responsibilities
     –   Routing
     –   Message Transformation
     –   Message Enhancement
Mediator
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
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)
What is JBI?
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.
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 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
JBI Specification Example
OpenESB & GlassFish
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
Open ESB Architecture




                   49
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
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 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
                     ...
Mule
ServiceMix
ESB Comparison
59
ESB (Forrester Wave; 2009)
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
JBI-based
Infrastructure
                  BPEL     JavaEE   XSLT



                            NMR

                 WS-I BP    JMS      File
JBI-based         BPEL       JavaEE        XSLT
Infrastructure     Loan        Loan
                                          Transform
                  Request    Processor
                                            Report
                  Process       EJB

                                NMR
                  WS-I BP       JMS          File
                 LoanRS WS   ReportMail   ReportStore
BPEL       JavaEE        XSLT
  Loan        Loan
                         Transform
 Request    Processor
                           Report
 Process       EJB

               NMR
 WS-I BP       JMS          File
LoanRS WS   ReportMail   ReportStore
Architecture     BPEL       XSLT         JavaEE
Refactoring      Loan                     Loan
                           Transform
                Request                 Processor
                            Report
                Service                    EJB

                              NMR
                WS-I BP       JMS          File
               LoanRS WS   ReportMail   ReportStore
BPEL       XSLT        RulesEngine     JavaEE
             Loan
                       Transform       Loan
            Request                               ReportStore
                        Report       Processor
            Service

                        NMR
  JMS       WS-I BP       JMS          File
LoanRS Q   LoanRS WS   ReportMail   ReportStore
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
Thank you

   thananum@gmail.com
www.facebook.com/imcinstitute
   www.imcinstitute.com



                                69

Service Oriented Architecture (SOA) [2/5] : Enterprise Service Bus

  • 1.
    Topic 2 Enterprise Service Bus Assoc.Prof.Dr. Thanachart Numnonda www.imcinstitute.com
  • 2.
    Agenda  What is ESB?  ESB Differences  What is JBI?  OpenESB &GlassFish  Usage Scenario 2
  • 3.
  • 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
  • 6.
    The role ofESB in SOA
  • 7.
  • 8.
    Features of anESB • 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 anESB (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 anESB (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.
  • 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
  • 13.
  • 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
  • 18.
    Rules Engine • Component responsibilities – Routing – Message Transformation – Message Enhancement
  • 19.
  • 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
  • 21.
  • 22.
  • 23.
    ESB Differences • Point-to-PointConnection – 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
  • 24.
  • 25.
  • 26.
    Interceptor (based onPoint-to-Point)
  • 27.
    ESB Differences • ProtocolDriven 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).
  • 28.
  • 29.
  • 30.
    Commercial ESBs • IBM WebSphere ESB • Sonic ESB • Oracle Service Bus • Software AG/WebMethods ESB • Microsoft Biztalk • TIBCO ActiveMatrix and BusinessWorks
  • 31.
    Opensource ESB • Mule • Apache ServiceMix • OpenESB (GlassFish v2) • Project Fuji (OpenESB v3)
  • 32.
  • 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
  • 36.
  • 37.
  • 38.
  • 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
  • 42.
    JBI and CompositeApplication
  • 43.
  • 44.
  • 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
  • 46.
  • 47.
  • 48.
    What is OpenESB? • 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
  • 49.
  • 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 inGlassFish • 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
  • 52.
    JBI in AdminConsole
  • 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 ...
  • 56.
  • 57.
  • 58.
  • 59.
  • 60.
  • 61.
  • 62.
    Usage Scenario: LoanProcessing • Loan Requestor Service: – LoanRequestProcess • WS-I BP • BPEL Orchestration – LoanProcessor • JavaEE – TransformReport • XSLT – LoanReportStore • Business Partner thru FTP – LoanReportMailer • Legacy thru JMS
  • 63.
    JBI-based Infrastructure BPEL JavaEE XSLT NMR WS-I BP JMS File
  • 64.
    JBI-based BPEL JavaEE XSLT Infrastructure Loan Loan Transform Request Processor Report Process EJB NMR WS-I BP JMS File LoanRS WS ReportMail ReportStore
  • 65.
    BPEL JavaEE XSLT Loan Loan Transform Request Processor Report Process EJB NMR WS-I BP JMS File LoanRS WS ReportMail ReportStore
  • 66.
    Architecture BPEL XSLT JavaEE Refactoring Loan Loan Transform Request Processor Report Service EJB NMR WS-I BP JMS File LoanRS WS ReportMail ReportStore
  • 67.
    BPEL XSLT RulesEngine JavaEE Loan Transform Loan Request ReportStore Report Processor Service NMR JMS WS-I BP JMS File LoanRS Q LoanRS WS ReportMail ReportStore
  • 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