Enterprise Service Bus and JBI


Published on

This presentation describes ESB, JBI and OpenESB

Published in: Business, Technology
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Enterprise Service Bus and JBI

  1. 1. Topic 4 Enterprise Service Bus and JBI Dr.Thanachart Numnonda Sun Microsystems (Thailand) Asst.Prof.Thanisa Kruawaisayawan KMITL
  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 4
  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 can't buy SOA, but you can buy an ESB
  6. 6. The role of ESB in SOA
  7. 7. 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
  8. 8. 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
  9. 9. 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
  10. 10. ESB Features
  11. 11. 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. 12. ESB Differences 12
  13. 13. Heterogeneous ESBs
  14. 14. 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
  15. 15. Point-to-Point Connection
  16. 16. Mediating Connection
  17. 17. Interceptor (based on Point-to-Point)
  18. 18. 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).
  19. 19. Protocol-Driven ESB
  20. 20. API-Driven ESB
  21. 21. Commercial ESBs • IBM WebSphere ESB • Sonic ESB • Oracle Service Bus • Software AG/WebMethods ESB • Microsoft Biztalk • TIBCO ActiveMatrix and BusinessWorks
  22. 22. Opensource ESB • Mule • Apache ServiceMix • OpenESB (GlassFish v2) • Project Fuji (OpenESB v3)
  23. 23. What is JBI? 23
  24. 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. 24
  25. 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 25
  26. 26. 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
  27. 27. JBI Architecture
  28. 28. JBI
  29. 29. 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
  30. 30. 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
  31. 31. 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
  32. 32. JBI and Composite Application
  33. 33. Overview of Message Routing
  34. 34. JBI Runtime
  35. 35. 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. 36. OpenESB & GlassFish 36
  37. 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 37
  38. 38. Open ESB Architecture 38
  39. 39. Design-Time Runtime Management IDE Web Server Java EE BPEL XSLT FTP Many More Composite SE SE BC SEs… Composite EJBs Application Application App Server Java EE Project Servlets SE JBI Bus Manager HTTP FTP FTP 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 App Server Java EE Many More Servlets SE JBI Bus Many More Many More Editors BPEL XSLT FTP Many More Editors Many More Editors SE SE BC SEs… Monitors
  40. 40. 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
  41. 41. JBI in Admin Console
  42. 42. OpenESB Web Site • https://open-esb.dev.java.net/ • Latest GlassFishESB v2.1 with NetBeans 6.1 • Documents / Examples • 43 JBI Components
  43. 43. 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 – ...
  44. 44. Usage Scenario 45
  45. 45. 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
  46. 46. JBI-based Infrastructure BPEL JavaEE XSLT NMR WS-I BP JMS File
  47. 47. JBI-based BPEL JavaEE XSLT Infrastructure Loan Loan Transform Request Processor Report Process EJB NMR WS-I BP JMS File LoanRS WS ReportMail ReportStore
  48. 48. BPEL JavaEE XSLT Loan Loan Transform Request Processor Report Process EJB NMR WS-I BP JMS File LoanRS WS ReportMail ReportStore
  49. 49. Architecture BPEL XSLT JavaEE Refactoring Loan Loan Transform Request Processor Report Service EJB NMR WS-I BP JMS File LoanRS WS ReportMail ReportStore
  50. 50. 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
  51. 51. 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 52
  52. 52. Thank you thanachart.numnonda@sun.com twitter.com/thanachart www.facebook.com/thanachart www.thaijavadev.com 53