Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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


Published on

Presentation Series on SOA : September 2010

Published in: Technology

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

  1. 1. Topic 2 Enterprise Service BusAssoc.Prof.Dr. Thanachart Numnonda
  2. 2. Agenda What is ESB? ESB Differences What is JBI? OpenESB &GlassFish Usage Scenario 2
  3. 3. What is ESB? 3
  4. 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. 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 cant buy SOA, but you can buy an ESB
  6. 6. The role of ESB in SOA
  7. 7. ESB Core Capabilities
  8. 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. 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. 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
  11. 11. ESB Features
  12. 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. 13. ESB Components
  14. 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. 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. 16. Service Registry• Component responsibility – Service mapping• Can be used for Policy based information• Very few products in the industry provide this
  17. 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. 18. Rules Engine• Component responsibilities – Routing – Message Transformation – Message Enhancement
  19. 19. Mediator
  20. 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. 21. ESB Differences
  22. 22. Heterogeneous ESBs
  23. 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
  24. 24. Point-to-Point Connection
  25. 25. Mediating Connection
  26. 26. Interceptor (based on Point-to-Point)
  27. 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).
  28. 28. Protocol-Driven ESB
  29. 29. API-Driven ESB
  30. 30. Commercial ESBs• IBM WebSphere ESB• Sonic ESB• Oracle Service Bus• Software AG/WebMethods ESB• Microsoft Biztalk• TIBCO ActiveMatrix and BusinessWorks
  31. 31. Opensource ESB• Mule• Apache ServiceMix• OpenESB (GlassFish v2)• Project Fuji (OpenESB v3)
  32. 32. What is JBI?
  33. 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. 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. 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. 36. JBI Architecture
  37. 37. JBI Architecture
  38. 38. JBI
  39. 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. 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. 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. 42. JBI and Composite Application
  43. 43. Overview of Message Routing
  44. 44. JBI Runtime
  45. 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 ServiceMixs runtime
  46. 46. JBI Specification Example
  47. 47. OpenESB & GlassFish
  48. 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
  49. 49. Open ESB Architecture 49
  50. 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. 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
  52. 52. JBI in Admin Console
  53. 53. OpenESB Web Site•• Latest GlassFishESB v2.1 with NetBeans 6.1• Documents / Examples• 43 JBI Components
  54. 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 ...
  55. 55. Mule
  56. 56. ServiceMix
  57. 57. ESB Comparison
  58. 58. 59
  59. 59. ESB (Forrester Wave; 2009)
  60. 60. Usage Scenario
  61. 61. 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
  62. 62. JBI-basedInfrastructure BPEL JavaEE XSLT NMR WS-I BP JMS File
  63. 63. JBI-based BPEL JavaEE XSLTInfrastructure Loan Loan Transform Request Processor Report Process EJB NMR WS-I BP JMS File LoanRS WS ReportMail ReportStore
  64. 64. BPEL JavaEE XSLT Loan Loan Transform Request Processor Report Process EJB NMR WS-I BP JMS FileLoanRS WS ReportMail ReportStore
  65. 65. Architecture BPEL XSLT JavaEERefactoring Loan Loan Transform Request Processor Report Service EJB NMR WS-I BP JMS File LoanRS WS ReportMail ReportStore
  66. 66. BPEL XSLT RulesEngine JavaEE Loan Transform Loan Request ReportStore Report Processor Service NMR JMS WS-I BP JMS FileLoanRS Q LoanRS WS ReportMail ReportStore
  67. 67. 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
  68. 68. Thank you 69