OpenESB

Embed Size (px)

DESCRIPTION

OpenESB open source ESB based on JBI

Citation preview

  • 1. OpenESB and Connecting EnterprisesCarol McDonald, JavaArchitect

2. Agenda

  • JBI and OpenESB

3. Example JBI Composite Application:

    • WSDL, BPEL, EJB WS
  • 4. deployed on Glassfish ESB

5. NetBeans Support of OpenESBIntelligent Event Processor SE 6. Traditional Application Integration

  • Point-to-Point integration
  • Complex

7. Lots of glue code 8. tightly coupled 9. Connections grow 10. Not scalable 11. CostlyMaintenance 12. SOA and Composite Applications Account Management Order Processing Inventory Data Repositories Services Composite Applications Check Customer Status Check Customer Credit Check Inventory Check Order Status Create Invoice Finance Sales Marketing External Partner Data Warehouse CRM ComposedBusiness Processes Combined Services distributed over network, exchange messages, coordinated activity 13. Enterprise Server Bus

  • ESB
  • provides services such asmessage routingandtransformationfor implementing SOA

14. Decouplesproducers from consumers 15. Open ESB

  • implements an ESB runtime using Java Business Integration (JBI) as its foundation

16. standard application integration framework Standard deployment model JBI A Universal Plug 'n Play Layer 17. JBIPlug-in architecture

  • Standardplug-in frameworkforintegration components

18. Pluggable Components Service Engines

    • Pluggable Business Logic :

BPEL, XSLT Transformation, Java EE, ... Binding Components

    • Pluggable Communications Adapters

HTTP, SMTP, JMS, TCP/IP, FTP, FILE, .. 19. Normalized Message Router J2EE Platform System Management Orchestration (BPEL) Transformation (XSLT) J2EE Platform AS2 JMS WS-I Basic SOAP Service Provider Self-Description WSDL WSDL WSDL WSDL WSDL WSDL Components register the services they provide JBI Core Services 20. Normalized Message Router

  • communication infrastructure in JBI
  • Message-based
      • Interoperable, Asynchronous
  • Service invocations = Message Exchange
  • One Way, Request Response

21. Service Assembly Composite Application

    • compose application from Collection of services
  • 22. Can be deployed and managed as a single entity

23. OpenESB v2

  • Implements an Open Source ESB with JBI as its foundation
  • http://open-esb.org/

24. Open ESB Components

  • Service Engines
  • BPEL SE

25. XSLT SE 26. JavaEE SE 27. IEP SE 28. ETL SE 29. SQL SE 30. Workflow SE

  • Binding Comps
  • MQSeries BC

31. HL7 BC 32. SAP BC 33. SMTP BC 34. HTTP BC 35. JMS BC 36. File BC 37. CICS BC 38. ...

  • Other
  • Clustering

39. CASA 40. JBI Mock 41. WSIT Tech

  • In Progress
  • CAM

42. Aspect SE 43. Encoding SE 44. Rules SE 45. Scripting SE 46. open-esb.dev.java.net/Components.html 47. App Server App Server IDE Web Server BPEL Editor Java EE SE JBI Bus XSLT SE HTTP BC FTP BC FTP BC Many More SEs FTP BC Many More BCs XSLT Editor Composite Application Project IEP Editor Composite Application Manager Runtime BPEL SE Java EE EJBs Servlets Java EE SE JBI Bus XSLT SE HTTP BC FTP BC FTP BC Many More SEs FTP BC Many More BCs BPEL SE Java EE EJBs Servlets Design-Time Management 3 rdParty Service Platforms 3 rdParty Service Platforms Open Standard BasedService Bus WS-Reliable Messaging WS-Security WS-FastInfoSet, Many More Editors Many More Editors IEP Monitor BPEL Monitor XSLT Monitor Many More Editors Many More Monitors 48. OpenESB, GlassfishESB and JavaCAPS

  • OpenESB
  • Open source project

49. Both stable and incubator components GlassfishESB

  • Binary distribution of OpenESB.

50. StableComponents 51. Deployed inGlassfish 52. Supported by Sun

  • JavaCAPS 6
  • GlassfishESB +

53. Master Data Management Components (Project Mural) 54. JavaCAPS 5.x runtime 55. Additional Admin

  • GUI Monitoring

56. GlassFish ESB

  • JBI integrated with GlassFish V2

57. GlassFish admin console supports JBI 58. Java EE Service EngineJBI 59. Java EE (ear/war/jar)JBI composite application 60. JBI part of Glassfishclusteringarchitecture 61. Wide Array of Engines and Bindings

  • Some of the components on Glassfish ESB

JBI in Glassfish Admin Console Pluggable enginesfor Eventing, Workflow, Business Processes,Transformation,Java EEplatform services... Pluggable bindingsfor legacy systems,web services... 62. Types of SOA NetBeans Projects 63. Types of SOA NetBeans Projects composite application typically uses the following types of SOA NetBeans projects:

    • BPEL Module project
  • 64. XSLT Module project

65. SQL Module project 66. Composite Application project 67. IEP Module project 68. Worklist Module project 69. ETL (Extract, Transform, and Load) 70. EDM (Enterprise Data Mashup) 71. And more 72.

  • Presenters Name
  • [email_address]

Loan Approval Service Example http://wiki.open-esb.java.net/Wiki.jsp?page=OpenESBIntroductionTutorial http://www.netbeans.org/kb/61/soa/homeloanprocessing.html 73. Loan Requestor Service:

    • LoanRequestProcess
    • BPEL Orchestration

LoanProcessor

  • JavaEE EJB WS

TransformReport

  • XSLT

LoanReportStore

  • Business Partner thru FTP

LoanReportMailer

  • Legacy thru JMS

Example 74. NMR BPEL XSLT JavaEE WS-I BP JMS File JBI-based Infrastructure 75. NMR Loan Request Process Transform Report Loan Processor EJB LoanRS WS ReportMail ReportStore BPEL XSLT JavaEE File JMS WS-I BP JBI-based Infrastructure Client Business Partner thru FTP Legacy thru JMS 76. NMR Loan Request Process Transform Report Loan Processor EJB LoanRS WS ReportMail ReportStore BPEL XSLT JavaEE File JMS WS-I BP 77. Creating the Loan ApprovalService:1) Define the Client Interface http://www.netbeans.org/kb/61/soa/homeloanprocessing.html 78. NMR Loan Request Process Transform Report Loan Processor EJB LoanRS WS ReportMail ReportStore BPEL XSLT JavaEE File JMS WS-I BP JBI-based Infrastructure Client Example WSDL 79. WSDL ElementsAbstract Definition Protocol, Encoding, Location Definition 80. Loan Example: Message < messagename=" applyForLoanRequest "> < / message >

  • Messages
  • typed definitions ofdatabeing exchanged

81. Netbeans XML Schema Loan Example: Message 82. Loan Example: port type and Operations < portTypename=" loanProcessWSDLPortType "> < operationname=" applyForLoanWSDLOperation ">

  • Operations
  • Service Methods, Refers toinput / output messages

Port type

  • Collectionof operations,definitionofservice

83. Netbeans WSDL Netbeans WSDL 84. Example: Binding, Port, Service < bindingname="loanBinding" type="ns:loanProcessWSDLPortType"> < soap:bindingstyle=" document "transport ="http://schemas.xmlsoap.org/ soap/http "/> < servicename="loanService"> < portname="loanPort" binding="tns:loanBinding"> protocol andencoding set of related ports Endpoint address 85.

  • Presenters Name
  • [email_address]

Creating the Loan ApprovalService:2) Define the BPEL Process 86. BPEL Orchestrating Process (BPEL) Partner Service Partner Service Partner Service Client Partner Service WSDL Web services are described in WSDL orchestrated interactionbetweenWeb services 87. Business Process Needs...

  • Coordinateservices

88. Correlatemessage exchanges 89. parallelprocessing 90. compensationlogic (Undo operations)

  • Support forlong running business activities

91. exception handling 92. data modelfor message exchange 93. BPEL 2.0 Service Engine

  • JBI compliant

94. Supports long running business processes

  • endpoint status monitoring

95. multiple-thread execution 96. debugging of business processes 97. reliable recovery 98. load balancing

  • Cluster, failover

99. BPEL Document Structure < process> ...... ... ... ... ... (activities)* 100. BPEL: Basic Activities

  • Toinvokeanoperationon a partner service
  • waitfor a matchingmessageto arrive

101. Can be the startof the business process

  • sendareplyto a message

Business process flow 102. BPEL: Structured Activities

  • Perform activities insequentialorder
  • Perform activities inparallel
  • Conditionalchoiceof activities
  • Enclosemultiple activities in a single scope

Business process flow 103. NMR Loan Request Process Loan Processor EJB LoanRS WS BPEL JavaEE WS-I BP JBI-based Infrastructure Client Example BPEL 104. Example Business Process Invoke Reply Receive 105. Sample Activities in BPEL < assignname="setProcessorInput"> < assign/ > < assignname="setProcessorOutput"> < assign/ > 106. LoanRequestProcess BPELLoanProcessor EJB Web Service WSDL WSDL < assign / > < assign / > 107. BPEL Module Project

  • Netbeans BPEL Module project includes:
  • XML Schema (*.xsd) files

108. WSDL files 109. BPEL files added to a Composite application as a JBI module 110. Java EE With JBI Creating the Loan ApprovalService: EJB Service 111. Java Business Integration (JSR 208) Normalized Message Router Application Server Java EE Platform

  • Invoke EJBs/web apps from OpenESB(BPEL)

112. expose EJB/Web applications to multiple transportsJava EE With JBI Installation Deployment Control Monitoring BPEL Engine XSLT Engine IEP Engine FTP Binding HTTP Binding Java EE Engine JSP JavaServer Faces EJB Servlet

  • JBI call Java EE

113. Java EE call JBI 114. Scenario 1: Remote through HTTP BC HTTP EE Container HTTP RMI

    • Network layer
  • 115. SOAP/HTTP

116. JAX-WS 117. JAXB Unmarshal xml 118. WS.helloWorld(name)

  • BPEL
  • NMR

119. HTTP BC 120. Marshall xml 121. SOAP/HTTP 122. Network layer JBI Container N M R BPEL SE BPEL process EE SE SAP BC HTTP BC HL7 BC HTTP HL7 RMI WSDL WSDL WSDL WSDL BPEL process WSDL ejb.jar WSDL application.ear WSDL 123. Scenario 2: Local through NMR

  • BPEL
  • NMR

124. HTTP BC 125. Marshall xml 126. SOAP/HTTP 127. Network layer 128. SOAP/HTTP 129. JAXWS

  • JAXB

WS.helloWorld(name) Advantages :

    • Performance
  • 130. Transaction propagation

131. Security context propagation JBI Container N M R BPEL SE BPEL process EE SE SAP BC HTTP BC HL7 BC HTTP HL7 RMI WSDL WSDL WSDL WSDL BPEL process WSDL ejb.jar WSDL application.ear WSDL 132.

  • Presenters Name
  • [email_address]

Creating the Loan ApprovalService:3) EJB Service 133. LoanRequestProcess BPELLoanProcessor EJB Web Service WSDL WSDL 134. 135.

  • Presenters Name
  • [email_address]

Creating the Loan ApprovalService:4) Composing the Service http://www.javapassion.com/webservices/#Building_Composite_Apps 136. Composite Application Project

  • Composite Application Netbeans project:
  • Assembleanapplicationthat uses:
  • BPEL, JavaEE, XSLT, IEP,SQL, ...

Configureexternalaccessprotocols

  • SOAP, JMS, SMTP...

BuildJBI deploymentpackage 137. Deploythe application to the JBI server 138. Build andrun JUnittests 139. Monitorthe status of JBI application 140.

    • Assemblean application that uses:
    • BPEL, JavaEE, XSLT, IEP,SQL, ...

Configureexternal access protocols (

  • SOAP, JMS, SMTP...

Netbeans Composite Application 141. Netbeans Composite Application

    • Build JBI deployment package

142. Loan Composite Application Deployed on Glassfish

    • Deploythe application image to the JBI server

143. Build and run JUnit tests 144. Intelligent Event Processor 145. Intelligent Event Processor SE

  • Real time business event collection and processing

Ability to listen for events:

    • Externalsystem adapters canreceive/sendmessages
  • 146. Composite applicationscansend/receivemessages

147. Monitor Business Activity

  • Correlate and process events from multiple sources

Business Dashboards Monitor Business Process Instances Inventory Management System Alerts & Exception Managemen t Production Management System BPM EDA Back-end Systems Event Processors Dashboards SOA BPM Clients, Trading Partners, Suppliers 148. Business Service Correlation

  • Monitor business service consumptions
  • Detectspikesin service usage - System Behavior

149. Track events by user - User Behavior Automatic response

  • Alerts, service triggers, etc.

Swiss Nordea Bank Imposter Legit User Authenticate Wire Transfer Change Pwd Balance Check 150. Event-aware Business Services

  • business processes adjusting to external events

Insurance Claims Management Process ReportAccident Happy Customer Negotiate Interview Interview Quote Quote $$ Negotiate $$ 151. Event Processing

  • Detect business opportunities and threats in near real-time
  • Receive business events from multiple sources,correlate, filterand process them
    • Aggregateevents
    • Detect event patterns, exceptions
  • 152. Send alerts,trigger services

Filter Join 4 2 1 3 1 3 2 4 A4 A3 A2 A1 B4 B4 B2 B1 AB4 AB1 AB2 AB3 153. Intelligent Event Processor Real-time event trend detection & proactive management Example: Target offerings to customer behavior ... online, walk-in, call center 154. Netbeans Project 155. http://www.javapassion.com/soaprogramming/index.html Online SOA class: IEP Application that Captures Incoming Stock Data Stream 156. Future Work 157. Project Fuji

  • Core of Open ESB v3

158. Lightweight OSGi based JBI compliant micro-kernel

  • Agile platform

Flexible and simple tools 159. Service Composition simplified

    • Convention, Configuration, Code
  • Backward compatible
  • v2 components run on v3 unmodified

https://fuji.dev.java.net/ 160. Project FujiBasis for GlassFish ESB v3 https://fuji.dev.java.net/ 161. Simplify Service Composition

  • New way of specifying interactions between components:Integration Flow Language
    • simple composition
  • 162. Complementary to more sophisticated orchestration

163. Summary

  • SOA = combined distributed services

164. JBI = pluggable framework:

  • NMR + Service Engines + Binding Components

165. Java EE can be Service components in JBI 166. BPEL =service orchestration OpenESB = implementation of JBI 167. Glassfish ESB = Glassfish + OpenESB 168. More Info..

  • http://www.sun.com/soa

169. http://open-esb.org 170. http://fuji.dev.java.net 171. http://glassfish.dev.java.net 172. http://netbeans.org