• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
OpenESB
 

OpenESB

on

  • 5,502 views

OpenESB open source ESB based on JBI

OpenESB open source ESB based on JBI

Statistics

Views

Total Views
5,502
Views on SlideShare
5,395
Embed Views
107

Actions

Likes
2
Downloads
387
Comments
0

5 Embeds 107

http://owen.com 71
http://www.slideshare.net 27
http://localhost 7
http://sysdecom-projects.com 1
http://www.linkedin.com 1

Accessibility

Categories

Upload Details

Uploaded via as OpenOffice

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • Mention what the NMR does and how it msgs are sent across including metadata to describe what is happening.
  • Completeness of the Suites Beyond traditional integration to include identity management, single customer view, ETL... Integration of the Suites Lowest TCO due to integration of tools & runtimes Identity Built into the Fabric of the Architecture Industry Leading Directory and Access Management IT Professional – Java Professional Collaboration Best Composite Applications: All artifacts automatically exposed as Web services in a common registry available to tools Best Productivity: Graphical tools supporting IT and business collaboration and round-tripping to Java IDE, BPEL and other editors Standards Support: Interoperability and Application Portability Java EE, JBI, JMS, WS-I Basic Profiles, XML Legacy: EDI, de jure and de facto protocols and standards Sun Platform: Architected for a Services Architecture Best SOA Platform: Solaris TM 10, T1 chip, CoolThreads TM Technology
  • .
  • ETL stands for extract, transform, and load. That is, ETL programs periodically extract data from source systems, transform the data into a common format, and then load the data into the target data store, usually a data warehouse. ETL processes bring together and combine data from multiple source systems into a data warehouse, enabling all users to work off a single, integrated set of data — a single version of the truth. EDM Service Engine is an enabler for building Enterprise mashups by performing the datamashups at the server-side and avoiding huge data sets to be joined at the client-side which could lead to sudden surge in bandwidth requirements and thus makes even the concept of mashups feasible. It serves the new breed of Business users who are part of the organizations transforming themselves to Enterprise 2.0. For example, a Business Analyst wants to get a view of Sales distributed geographically for which he wants to join an internal Data source with an external geospatial data sources.
  • WSDL specification defines 7 element types.
  • In this example, two messages are defined - the first one is called GetLastTradePriceInput and the other one is called GetLastTradePriceOutput. As you can tell, these are request and response messages of stock quote service. Now please note that message definitions refer to the data types we just defined, TradePriceRequest and TradePrice. Now I said portType is just a collection of operations. In this example, we have only one operation. What is an operation? As I said in previous slide, it is an action, and an action is made of input and/or output messages we just defined using message elements. So in this example, the GetLastTradePrice operation will be performed as a combination of input message, GetLastTradePriceInout, and output message, GetLastTradePriceOutput message. Please note that here there is no mentioning on which XML protocol or transport will be used. This is why we call these elements as abstract definitions. And obviously they have to be bound to a concrete XML and transport protocol. And that is what we are going to see in the next slide.
  • In this example, two messages are defined - the first one is called GetLastTradePriceInput and the other one is called GetLastTradePriceOutput. As you can tell, these are request and response messages of stock quote service. Now please note that message definitions refer to the data types we just defined, TradePriceRequest and TradePrice. Now I said portType is just a collection of operations. In this example, we have only one operation. What is an operation? As I said in previous slide, it is an action, and an action is made of input and/or output messages we just defined using message elements. So in this example, the GetLastTradePrice operation will be performed as a combination of input message, GetLastTradePriceInout, and output message, GetLastTradePriceOutput message. Please note that here there is no mentioning on which XML protocol or transport will be used. This is why we call these elements as abstract definitions. And obviously they have to be bound to a concrete XML and transport protocol. And that is what we are going to see in the next slide.
  • So in this example, the portType called StockQuotePortType is bound to SOAP as communication protocol. SOAP can support either document style or RPC style. In this example, document style is chosen. And the data format of the operation named GetLastTradePrice will use literal. Finally this service has one communication endpoint which is represented by one port element which specifies the endpoint address for a particular protocol. And in this example, the address happened to be http://example.com/stockquote.
  • Ultimately, a BPEL document gets compiled and deployed to a BPEL engine. At that point it is ready to to actuallygo live as a process. Here is a diagram showing the relatiionship of a deployed BPEL process and it partner services. The lines connecting the partners represent the messages flowing back and forth between the BPEL process and its partners. Bear in mind all these messages are exclusively Web Service messages Charles – Mike, I get it!! All of those partners are BPEL too!! Mike – Well, not quite Charles. Those partners are definitely web services and some of them may also be BPEL processs, but it is highly unlikely that they are ALL BPEL processes. Charles – Why not? Mike – Well because somebody has to do the real work. BPE is not a general purpose programming language. Remember a BPEL process is an “orchestration” and orchestration implies delegation. And delegation implies that somebody else is doing the work. BPEL can't do everything.
  • What does it mean to say that BPEL is an XML based langauge? You are all familiar with programming languages like Java. You are probably all familiar with XML documents and have seen XML used for specifying things like deployment descriptors. But you may not have seen XML used as a programming language. This means that the BPEL specification has defined an XML vocabulary, a collection of XML elements and their attributes which collectively form the BPEL language. It further means that a BPEL programmer “programs” a BPEL process by authoring an XML document which utilizes these BPEL specfic XML elements. Here is the skeleton of a BPEL process. You can see it is highly structured. There are well defined sections. You can also see that there is ofthen quite a bit of “set up” before you actually get to the heart of the process ... the activities. The activities are where the real orchestration takes place. We will cut to the chase and focus on the activies ... next slide.
  • * Invoking other web services, using * Waiting for the client to invoke the business process through sending a message, using (receiving a request) * Generating a response for synchronous operations, using
  • And thirdly, BPEL provides structured activities which allow the BPEL programmer to order a collection of activites in various logical combinations – sequentially or parallel, conditionalized and in arbitrarily nested scopes.
  • .
  • .
  • Intelligent Event Processing the scenario is about tracking how, a bank's customers for example, tend to switch between using different channels to get their business done. The scenario tracks changes in behavior over a period of three months. The background is about the bank trying to predict the behavior to say, sell services that may be useful based on the current behavior. What does EDA enable that a BI system does not? A BI system would run reports every quarter to analyze all customers at once as opposed to an EDA system tracking customers individually on their own calender - banks could respond to change in customer behavior much faster than waiting for the end of quarter to run a BI report.

OpenESB OpenESB Presentation Transcript

  • OpenESB and Connecting Enterprises Carol McDonald, Java Architect
  • Agenda
    • JBI and OpenESB
    • Example JBI Composite Application:
        • WSDL, BPEL, EJB WS
        • deployed on Glassfish ESB
        • NetBeans Support of OpenESB
    • Intelligent Event Processor SE
  • Traditional Application Integration
    • Point-to-Point integration
      • Complex
      • Lots of glue code
      • tightly coupled
      • Connections grow
      • Not scalable
      • Costly Maintenance
  • 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 Composed Business Processes Combined Services distributed over network, exchange messages, coordinated activity
  • Enterprise Server Bus
    • ESB
      • provides services such as message routing and transformation for implementing SOA
      • Decouples producers from consumers
  • Open ESB
    • implements an ESB runtime using Java Business Integration (JBI) as its foundation
  • standard application integration framework Standard deployment model JBI – A Universal Plug 'n Play Layer
  • JBI Plug-in architecture
    • Standard plug-in framework for integration components
  • Pluggable Components Service Engines
      • Pluggable Business Logic :
    BPEL, XSLT Transformation, Java EE, ... Binding Components
      • Pluggable Communications Adapters
    HTTP, SMTP, JMS, TCP/IP, FTP, FILE, ..
  • 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
  • Normalized Message Router
    • communication infrastructure in JBI
      • Message-based
        • Interoperable, Asynchronous
    • Service invocations = Message Exchange
      • One Way, Request Response
  • Service Assembly Composite Application
      • compose application from Collection of services
      • Can be deployed and managed as a single entity
  • OpenESB v2
    • Implements an Open Source ESB with JBI as its foundation
      • http://open-esb.org/
  • Open ESB Components
    • Service Engines
      • BPEL SE
      • XSLT SE
      • JavaEE SE
      • IEP SE
      • ETL SE
      • SQL SE
      • Workflow SE
    • Binding Comps
      • MQSeries BC
      • HL7 BC
      • SAP BC
      • SMTP BC
      • HTTP BC
      • JMS BC
      • File BC
      • CICS BC
      • ...
    • Other
      • Clustering
      • CASA
      • JBI Mock
      • WSIT Tech
    • In Progress
      • CAM
      • Aspect SE
      • Encoding SE
      • Rules SE
      • Scripting SE
  • open-esb.dev.java.net/Components.html
  • 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 rd Party Service Platforms 3 rd Party Service Platforms Open Standard Based Service 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
  • OpenESB, GlassfishESB and JavaCAPS
    • OpenESB
      • Open source project
      • Both stable and incubator components
    • GlassfishESB
      • Binary distribution of OpenESB.
      • Stable Components
      • Deployed in Glassfish
      • Supported by Sun
    • JavaCAPS 6
      • GlassfishESB +
      • Master Data Management Components (Project Mural)
      • JavaCAPS 5.x runtime
      • Additional Admin
        • GUI Monitoring
  • GlassFish ESB
    • JBI integrated with GlassFish V2
    • GlassFish admin console supports JBI
    • Java EE Service Engine JBI
    • Java EE (ear/war/jar) JBI composite application
    • JBI part of Glassfish clustering architecture
  • Wide Array of Engines and Bindings
    • Some of the components on Glassfish ESB
    JBI in Glassfish Admin Console Pluggable engines for Eventing, Workflow, Business Processes, Transformation, Java EE platform services... Pluggable bindings for legacy systems, web services...
  • Types of SOA “NetBeans” Projects
  • Types of SOA “NetBeans” Projects composite application typically uses the following types of SOA “NetBeans” projects:
      • BPEL Module project
      • XSLT Module project
      • SQL Module project
      • Composite Application project
      • IEP Module project
      • Worklist Module project
      • ETL (Extract, Transform, and Load)
      • EDM (Enterprise Data Mashup)
      • And more
    • Presenter’s 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
  • Loan Requestor Service:
      • LoanRequestProcess
        • BPEL Orchestration
      • LoanProcessor
        • JavaEE EJB WS
      • TransformReport
        • XSLT
      • LoanReportStore
        • Business Partner thru FTP
      • LoanReportMailer
        • Legacy thru JMS
    Example
  • NMR BPEL XSLT JavaEE WS-I BP JMS File JBI-based Infrastructure
  • 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
  • NMR Loan Request Process Transform Report Loan Processor EJB LoanRS WS ReportMail ReportStore BPEL XSLT JavaEE File JMS WS-I BP
  • Creating the Loan Approval Service: 1) Define the Client Interface http://www.netbeans.org/kb/61/soa/homeloanprocessing.html
  • 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
  • WSDL Elements Abstract Definition Protocol, Encoding, Location Definition
  • Loan Example: Message <xsd:complexType name=&quot; LoanRequestMsg &quot;> <xsd:sequence> <xsd:element name=&quot; socialSecurityNumber &quot; type=&quot;xsd:string&quot; /> <xsd:element name=&quot;Name&quot; type=&quot;xsd:string&quot; /> <xsd:element name=&quot;Address&quot; type=&quot;xsd:string&quot; /> <xsd:element name=&quot;EmailAddress&quot; type=&quot;xsd:string&quot; /> <xsd:element name=&quot;Age&quot; type=&quot;xsd:int&quot;/> <xsd:element name=&quot;Gender&quot; type=&quot;xsd:string&quot; /> <xsd:element name=&quot;Salary&quot; type=&quot;xsd:float&quot;/> <xsd:element name=&quot;amountRequested&quot; type=&quot;xsd:float&quot;/> </xsd:sequence> </xsd:complexType> < message name=&quot; applyForLoanRequest &quot;> <part name=&quot;loanApplicationRequest&quot; element=&quot;ns: loanRequestMsg &quot;/> < / message >
    • Messages
      • typed definitions of data being exchanged
  • Netbeans XML Schema Loan Example: Message
  • Loan Example: port type and Operations < portType name=&quot; loanProcessWSDLPortType &quot;> < operation name=&quot; applyForLoanWSDLOperation &quot;> <input name=&quot;input1&quot; message =&quot;tns: applyForLoanRequest &quot;/> <output name=&quot;output1&quot; message =&quot;tns: applyForLoanResponse &quot;/> </operation> </portType>
    • Operations
      • Service Methods, Refers to input / output messages
    • Port type
      • Collection of operations, definition of service
  • Netbeans WSDL Netbeans WSDL
  • Example: Binding, Port, Service < binding name=&quot;loanBinding&quot; type=&quot;ns:loanProcessWSDLPortType&quot;> < soap:binding style=&quot; document &quot; transport =&quot;http://schemas.xmlsoap.org/ soap/http &quot;/> <operation name=&quot;applyForLoanWSDLOperation&quot;> <soap:operation/> <input name=&quot;input1&quot;> <soap:body use=&quot; literal &quot;/> </input> <output name=&quot;output1&quot;> <soap:body use=&quot;literal&quot;/> </output> </operation> </binding> < service name=&quot;loanService&quot;> < port name=&quot;loanPort&quot; binding=&quot;tns:loanBinding&quot;> <soap:address location= &quot; http://localhost :loanService1/loanPort&quot; /> </port> </service> protocol and encoding set of related ports Endpoint address
    • Presenter’s Name
      • [email_address]
    Creating the Loan Approval Service: 2) Define the BPEL Process
  • BPEL Orchestrating Process (BPEL) Partner Service Partner Service Partner Service Client Partner Service WSDL Web services are described in WSDL orchestrated interaction between Web services
  • Business Process Needs...
    • Coordinate services
    • Correlate message exchanges
    • parallel processing
    • compensation logic (Undo operations)
    • Support for long running business activities
    • exception handling
    • data model for message exchange
  • BPEL 2.0 Service Engine
    • JBI compliant
    • Supports long running business processes
    • endpoint status monitoring
    • multiple-thread execution
    • debugging of business processes
    • reliable recovery
    • load balancing
      • Cluster, failover
  • BPEL Document Structure < process> <!– Definition and roles of process participants --> <partnerLinks> ... </partnerLinks> <!- Data/state used within the process --> <variables> ... </variables> <!- Properties that enable conversations --> <correlationSets> ... </correlationSets> <!- Exception handling --> <faultHandlers> ... </faultHandlers> <!- Error recovery – undoing actions --> <compensationHandlers> ... </compensationHandlers> <!- Concurrent events with process itself --> <eventHandlers> ... </eventHandlers> <!- Business process flow --> (activities)* </process>
  • BPEL: Basic Activities
    • <invoke>
      • To invoke an operation on a partner service
    • <receive>
      • wait for a matching message to arrive
      • Can be the start of the business process
    • <reply>
      • send a reply to a <receive> message
    Business process flow
  • BPEL: Structured Activities
    • <sequence>
      • Perform activities in sequential order
    • <flow>
      • Perform activities in parallel
    • <if>
      • Conditional choice of activities
    • <scope>
      • Enclose multiple activities in a single scope
    Business process flow
  • NMR Loan Request Process Loan Processor EJB LoanRS WS BPEL JavaEE WS-I BP JBI-based Infrastructure Client Example BPEL
  • Example Business Process Invoke <LoanProcessor> Reply <Loan Response> Receive <LoanApplication> <sequence> </sequence>
  • Sample Activities in BPEL <sequence> <receive partnerLink=“clientPL” portType=“loanProcessPortType&quot; operation=“applyForLoanOperation” variable=“IN” /> < assign name=&quot;setProcessorInput&quot;> <copy><from variable=”clientIn”/><to variable=”ejbIn”/> </copy> < assign/ > <invoke name=&quot;InvokeProcessLoan&quot; partnerLink=“ejbLoanProcessorPL” portType=“loanProcessPortType” operation=&quot;processLoanApplicationEJB&quot; inputVariable=&quot;inventoryRequest&quot; outputVariable=&quot;inventoryResponse&quot; /> < assign name=&quot;setProcessorOutput&quot;> <copy><from variable=”ejbOut”/><to variable=”clientOut”/> </copy> < assign/ > <reply partnerLink=“clientPL” portType=“loanProcessPortType” operation=“applyForLoanWSDLOperation” variable=“ApplyForLoanOperationOut&quot;/> </sequence>
  • LoanRequestProcess BPEL LoanProcessor EJB Web Service WSDL WSDL <receive /> <invoke /> <sequence> < assign / > < assign / > <reply /> </sequence>
  • BPEL Module Project
    • Netbeans BPEL Module project includes:
      • XML Schema (*.xsd) files
      • WSDL files
      • BPEL files
    • added to a Composite application as a JBI module
  • Java EE With JBI Creating the Loan Approval Service: EJB Service
  • Java Business Integration (JSR 208) Normalized Message Router Application Server Java EE Platform
    • Invoke EJBs/web apps from OpenESB (BPEL)
    • expose EJB/Web applications to multiple transports
    Java 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
    • Java EE call JBI
  • Scenario 1: Remote through HTTP BC HTTP EE Container HTTP RMI
      • Network layer
      • SOAP/HTTP
      • JAX-WS
      • JAXB Unmarshal xml
      • WS.helloWorld(name)
    • BPEL
    • NMR
    • HTTP BC
    • Marshall xml
    • SOAP/HTTP
    • 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
  • Scenario 2: Local through NMR
    • BPEL
    • NMR
    • HTTP BC
    • Marshall xml
    • SOAP/HTTP
    • Network layer
    • SOAP/HTTP
    • JAXWS
      • JAXB
    • WS.helloWorld(name)
    Advantages :
      • Performance
      • Transaction propagation
      • 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
    • Presenter’s Name
      • [email_address]
    Creating the Loan Approval Service: 3) EJB Service
  • LoanRequestProcess BPEL LoanProcessor EJB Web Service WSDL WSDL <invoke />
  •  
    • Presenter’s Name
      • [email_address]
    Creating the Loan Approval Service: 4) Composing the Service http://www.javapassion.com/webservices/#Building_Composite_Apps
  • Composite Application Project
    • Composite Application Netbeans project:
      • Assemble an application that uses:
        • BPEL, JavaEE, XSLT, IEP, SQL, ...
      • Configure external access protocols
        • SOAP, JMS, SMTP...
      • Build JBI deployment package
      • Deploy the application to the JBI server
      • Build and run JUnit tests
      • Monitor the status of JBI application
      • Assemble an application that uses:
        • BPEL, JavaEE, XSLT, IEP, SQL, ...
      • Configure external access protocols (
        • SOAP, JMS, SMTP...
    Netbeans Composite Application
  • Netbeans Composite Application
      • Build JBI deployment package
  • Loan Composite Application Deployed on Glassfish
      • Deploy the application image to the JBI server
  • Build and run JUnit tests
  • Intelligent Event Processor
  • Intelligent Event Processor SE
    • Real time business event collection and processing
    Ability to listen for events:
      • External system adapters can receive/send messages
      • Composite applications can send/receive messages
  • 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
  • Business Service Correlation
    • Monitor business service consumptions
      • Detect spikes in service usage - “System Behavior”
      • 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
  • Event-aware Business Services
    • business processes adjusting to external events
    Insurance Claims Management Process Report Accident Happy Customer Negotiate Interview Interview Quote Quote $$ Negotiate $$
  • Event Processing
    • Detect business opportunities and threats in near real-time
      • Receive business events from multiple sources, correlate, filter and process them
      • Aggregate events
      • Detect event patterns, exceptions
      • 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
  • Intelligent Event Processor Real-time event trend detection & proactive management Example: Target offerings to customer behavior ... online, walk-in, call center
  • Netbeans Project
  • http://www.javapassion.com/soaprogramming/index.html Online SOA class: IEP Application that Captures Incoming Stock Data Stream
  • Future Work
  • Project Fuji
    • Core of Open ESB v3
    • Lightweight OSGi based JBI compliant micro-kernel
      • Agile platform
    • Flexible and simple tools
    • Service Composition simplified
      • Convention, Configuration, Code
    • Backward compatible
      • v2 components run on v3 unmodified
    https://fuji.dev.java.net/
  • Project Fuji Basis for GlassFish ESB v3 https://fuji.dev.java.net/
  • Simplify Service Composition
    • New way of specifying interactions between components: Integration Flow Language
      • simple composition
      • Complementary to more sophisticated orchestration
  • Summary
    • SOA = combined distributed services
    • JBI = pluggable framework:
      • NMR + Service Engines + Binding Components
      • Java EE can be Service components in JBI
      • BPEL =service orchestration
    • OpenESB = implementation of JBI
    • Glassfish ESB = Glassfish + OpenESB
  • More Info..
    • http://www.sun.com/soa
    • http://open-esb.org
    • http://fuji.dev.java.net
    • http://glassfish.dev.java.net
    • http://netbeans.org