Your SlideShare is downloading. ×
Service Oriented Architecture (SOA) [2/5] : Enterprise Service Bus
Upcoming SlideShare
Loading in...5

Thanks for flagging this SlideShare!

Oops! An error has occurred.

Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

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


Published on

Presentation Series on SOA : September 2010

Presentation Series on SOA : September 2010

Published in: Technology
  • Be the first to comment

No Downloads
Total Views
On Slideshare
From Embeds
Number of Embeds
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

No notes for slide


  • 1. Topic 2 Enterprise Service BusAssoc.Prof.Dr. Thanachart Numnonda
  • 2. Agenda What is ESB? ESB Differences What is JBI? OpenESB &GlassFish Usage Scenario 2
  • 3. What is ESB? 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 cant buy SOA, but you can buy an ESB
  • 6. The role of ESB in SOA
  • 7. ESB Core Capabilities
  • 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. 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. 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. ESB Features
  • 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. ESB Components
  • 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. Mediator
  • 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. ESB Differences
  • 22. Heterogeneous ESBs
  • 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. Point-to-Point Connection
  • 25. Mediating Connection
  • 26. Interceptor (based on Point-to-Point)
  • 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. Protocol-Driven ESB
  • 29. API-Driven ESB
  • 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. What is JBI?
  • 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. JBI Architecture
  • 37. JBI Architecture
  • 38. JBI
  • 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 Composite Application
  • 43. Overview of Message Routing
  • 44. JBI Runtime
  • 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. JBI Specification Example
  • 47. OpenESB & GlassFish
  • 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. Open ESB Architecture 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 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. JBI in Admin Console
  • 53. OpenESB Web Site•• 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 ...
  • 55. Mule
  • 56. ServiceMix
  • 57. ESB Comparison
  • 58. 59
  • 59. ESB (Forrester Wave; 2009)
  • 60. Usage Scenario
  • 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. JBI-basedInfrastructure BPEL JavaEE XSLT NMR WS-I BP JMS File
  • 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. BPEL JavaEE XSLT Loan Loan Transform Request Processor Report Process EJB NMR WS-I BP JMS FileLoanRS WS ReportMail ReportStore
  • 65. Architecture BPEL XSLT JavaEERefactoring Loan Loan Transform Request Processor Report Service EJB NMR WS-I BP JMS File LoanRS WS ReportMail ReportStore
  • 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. 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. Thank you 69