Download presentation
Presentation is loading. Please wait.
Published byCollin Domenic Todd Modified over 10 years ago
1
Enterprise Service Bus Deep, Deep Dive Burr Sutter October 2007
2
Questions: burr.sutter@jboss.com A Real World Scenario Source System ASCII File System ASCII File System ASCII FTP FTP GET MSG MQ JMS Listener JDBC/ODBC Select Update SQL Data Socket TCP/IP Socket
3
Questions: burr.sutter@jboss.com Receiving System N ASCII File System Receiving System N ASCII FTP Receiving System N JMS The ESB Solution ASCII File System Source System Receiving System 1 Receiving System 2 ASCII File System Receiving System 3 XML JMS XML SOAP JBoss ESB
4
Questions: burr.sutter@jboss.com Enterprise Service Bus Declarative Transformation includes: Message Normalization, Validation, Enrichment, Via XSLT, Groovy, Java, StringTemplate Service Registry UDDI ESB Message Store TransformationRouting Infrastructure Services SecurityManagement Declarative Orchestration Engine BPEL jPDL Process Store Event Notification Pluggable Architecture for integrating infrastructure services Web Services EJB POJOs Java EE 5 Business Service Components Business Data JCA RDBMS Legacy COTS Business Services runs within a container or standalone Service Data Object Service Component Architecture HTTP(S ) FTP File JMS Email SOAP Excel Browser Java Native ASCII XML Binary Transports Web SQL Event Listeners and Actions p rovide transport mediation Socket Hibernate JCA/Inflow Custom Action Seam Drools Spring Groovy
5
Questions: burr.sutter@jboss.com ESBs Across The Enterprise HTTP/S FTP File JMS Email SOAP Portal Seam Service Registry JBoss ESB Event Store JSR 181 POJOs EJB3 POJO Business Service TransformationRoutingSecurity Business Data Management Composition Engine BPEL jPDL Scripting JCA Web Process Store Notification FTP File Email SOAP Service Registry JBoss ESB Event Store RoutingSecurity Composition Engine BPEL Process Store Notification File SOAP Service Registry ESB Composition Engine BPEL Process Store Invoicing/Order Entry Web Order Entry Accounting Shared Distributed Registry Plus Lightweight ESB Architecture
6
Questions: burr.sutter@jboss.com Service Federation Registry & Messaging Transformation Services Cluster Rules Services Cluster Order Validation Credit Check Process Store Customer Inquiry Customer Update Accounting Order Services Routing Services Customer Services * JVM Order Validation Credit Check Shipping Calc Inventory Check Inventory Update Warehouse Services Shipping Calc Inventory Check Inventory Update Shipping Calc Inventory Check Inventory Update Customer Inquiry Customer Update Accounting
7
Questions: burr.sutter@jboss.com Enterprise Service Bus Declarative Transformation includes: Message Normalization, Validation, Enrichment, Via XSLT, Groovy, Java, StringTemplate Service Registry UDDI ESB Message Store TransformationRouting Infrastructure Services SecurityManagement Declarative Orchestration Engine BPEL jPDL Process Store Event Notification Pluggable Architecture for integrating infrastructure services Web Services EJB POJOs Java EE 5 Business Service Components Business Data JCA RDBMS Legacy COTS Business Services runs within a container or standalone Service Data Object Service Component Architecture HTTP(S ) FTP File JMS Email SOAP Excel Browser Java Native ASCII XML Binary Transports Web SQL Event Listeners and Actions p rovide transport mediation Socket Hibernate JCA/Inflow Custom Action Seam Drools Spring Groovy Mid 2007FuturePartners
8
Questions: burr.sutter@jboss.com Where’s the Logic? As a scriptlet in your JSP Behind your Swing Button Click Action Handler In your Struts Action In your DAOs In your Stored Procedures
9
Questions: burr.sutter@jboss.com The Modern Silo DB App Web Pages: Struts, JSF, Tapestry DAO/JPA/SLSB/Spring Bean Hibernate Query/Stored Procedure Browser
10
Questions: burr.sutter@jboss.com Silos Across the Enterprise Client CRM Ordering Accounting Manufacturing Warehouse
11
Questions: burr.sutter@jboss.com Integrating Silos (Dump & Load) Client CRM Ordering Accounting Manufacturing Warehouse PHP MySQL Web 5250 RPG DB/2 400 VisualBasic Stored Proc SQL Server Struts DAO Oracle DUMP ASCII SOAP FTP ASCII VisualBasic ASCII FTP
12
Questions: burr.sutter@jboss.com Intermediate those Silos DB App DAO/JPA/SLSB/Spring Bean Hibernate Query/Stored Procedure Service 1Service 2Service 3 BrowserRichB2BLegacy Mediation Service 4Service 5Service 6 Mediation
13
Questions: burr.sutter@jboss.com Splice Technique Web Order Entry Oracle Web JSF HibernateEJB3 Seam Web Order Entry 2 DB/2 Web Struts HibernateiBatis Spring Interceptors Callback Listeners AOP JBoss ESB queue
14
Splice Demo
15
Questions: burr.sutter@jboss.com ESB Definition There is NO J2EE-like specification with a TCK that can define and validate an ESB like there is for App Servers. ESBs are categorized by their capabilities – some come from a heritage of EAI and others of MOM. Capabilities: –Message delivery –Transport protocol mediation –Event capture –Intelligent routing –Orchestration –Transformation –BPM –Adapters –And much, much more…
16
Questions: burr.sutter@jboss.com JBossESB 4.2 provides Message delivery –JMS (JBossMQ, JBoss Messaging, ActiveMQ, MQSeries, Oracle AQ) –(S)FTP, SOAP, HTTP, email, database, shared file system Action chaining/pipeline –For custom service enablement & mediation Transformation –XSLT, Java, Groovy, StringTemplate Content-based routing –JBoss Rules, XPath DSL –Recipient List/Static Routing is also supported Orchestration –BPM, Intelligent routing, EIPs and hot deployment Registry –JAX-R based –UDDI support out-of-the-box (Scout and jUDDI) Message Store Gateways Extensive examples and documentation And more…
17
Questions: burr.sutter@jboss.com JBoss ESB 4.2 JMX Microkernel Federated Clustering WS-* –SOAP –WSDL –181 Annotated POJO Endpoints –EJB Endpoints –JAXB 2.0 BPEL 2.0 New Deployment Architecture.esb Archive Hot Deployable Core Services Content Based Filter Business Rules Services Native Process Orchestration Hibernate Gateway/Listener HTTP Gateway/Listener Groovy Scripting Declarative Message Store JCA Container Spring Action AOP & POJO Monitoring & Mgmt Tools Additional EIP examples
18
Questions: burr.sutter@jboss.com ESB Transformation Engine Validation Enrichment Inline transformations (Fragment based Processing) Profile based XML/non-XML processing Anything to Anything (XML, CSV, binary, X12, POJO) Mix/Match transformers on a single message: –Java –Groovy –StringTemplate –XSLT 4X performance boost over plain XSLT (Xalan): http://milyn.codehaus.org/Chiba+Integration
19
Questions: burr.sutter@jboss.com jboss-esb.xml Configuration for one or more services which show up in the registry. Deployed as the key element of a.esb archive in 4.2+ Structure of a.esb archive META-INF jboss-esb.xml com.mycompany.soa.mycustom.actions MyCustomAction.class Tip: Use one of the quickstarts as your template for your new project. We do assume that you are comfortable with Ant. An Eclipse Project template is under Development and will be available in SVN soon (as of May 16, 2007)
20
Questions: burr.sutter@jboss.com Hello World – jboss-esb.xml 1 <jms-provider name="JBossMQ" connection-factory="ConnectionFactory"> <jms-message-filter dest-type="QUEUE" dest-name="queue/quickstart_helloworld_Request_GW"/> <jms-message-filter dest-type="QUEUE" dest-name=" queue/quickstart_helloworld_Request_ESB"/>
21
Questions: burr.sutter@jboss.com Hello World – jboss-esb.xml 2 <service category="FirstServiceESB" name="SimpleListener" description="Hello World"> <jms-listener name="JMS-Gateway" busidref="quickstartGwChannel" maxThreads="1" is-gateway="true"/> <jms-listener name="helloWorld" busidref="quickstartEsbChannel" maxThreads="1"/> <action name="action1" class="quickstart.helloworld.MyListenerAction" process="displayMessage"/>
22
Questions: burr.sutter@jboss.com Hello World - action package org.jboss.soa.esb.samples.quickstart.helloworld; import org.jboss.soa.esb.message.Message; public class MyListenerAction { public Message displayMessage(Message message) { System.out.println("Body: " + new String(message.getBody().getContents())); // modify the contents, do anything Java can do… return message; // always return the message for the “chain” } public MyListenerAction(ConfigTree config) { // this constructor will be used to handle any jboss-esb.xml } // custom property configuration }
23
Questions: burr.sutter@jboss.com Action Pipeline (in a Service) FTP Action Business Logic Component Transformation CSV to XML Transformation XML to POJO Routing Splitter or BPM Logging Audit Trail My_Registered_Service Business Logic: POJO EJB WS Rules JCA with Adapters Anything with Java API Actions are reusable mediation components that can be chained together to form the capabilities of a registered service. Actions can be dynamically added/removed at runtime. Action Business Logic Invocation This box can also represent the ESB’s JVM – actions are “in VM”
24
Basic Service Demo
25
Questions: burr.sutter@jboss.com Enterprise Integration Patterns Aggregator File Transfer Translator/Transformer Router/CBR Channel Message Recipient List Splitter Wire Tap Enricher Content Filter Process Manager Message Store Message Filter More information at www.enterpriseintegrationpatterns.com
26
Questions: burr.sutter@jboss.com Routing, Services & Actions FTP ASCII XML Binary Action SOAP JMS Action DB POJO EJB A_Service B_Service C_Service JMS Action DB WS D_Service
27
Questions: burr.sutter@jboss.com Content Based Routing SOAP Action DB POJO Platinum_Service FTP ASCII XML Binary Action Ordering_Service Randomly grab orders for review – tracer and Keep a total of all orders flowing through the system SOAP Action Special_Handling EJB Orders over 12K or from Platinum customers DB Orders from customers in certain states/countries
28
Questions: burr.sutter@jboss.com Content Based Routing Engine Currently based on JBoss Rules – supports XPATH DSL Access to the complete Header and Body/Contents for evaluation Zero to many destinations rule "Routing Rule using XPATH Greater" when xpathGreaterThan "/Order/@totalAmount", "50.0" then Log : "Really It's EXPRESS Shipping"; Destination : “express"; end rule "Routing Rule using XPATH Less" when xpathLessThan "/Order/@totalAmount", "50.0" then Log : "Really It's NORMAL Shipping"; Destination : “normal"; end Destination is determined by the jboss-esb.xml
29
Questions: burr.sutter@jboss.com Splitter/Aggregator Quickstart JMS Action Inbound Splitter JMS Action Red Also demonstrates, federated ESB, multi-JVM capabilities JMS Action Green JMS Action Blue JMS Action Aggregator_Service
30
EIP Demo
31
Questions: burr.sutter@jboss.com Load Balancing & Fail-Over The same discount_service.esb can be deployed to multiple ESB instances/nodes. Each one is a new EPRs in the registry. The routing engine is clever enough to load-balance and fail- over between the various EPRs. Should no EPR be available, it will scheduled the message for redelivery, waiting N seconds and retrying all possible EPRs found at that time.
32
Questions: burr.sutter@jboss.com Deployment Options 1) ESB “within” an Application Server – Users have existing investments in the J2EE/Java EE App Servers and wish to run the ESB as a set of components in that App Server. –JBoss ESB can run “within” the JBoss Enterprise Application Platform 4.2 2) ESB “beside” an Application Server – Users wish to leave their existing application server environments untouched but still add mediation, SOA & integration capabilities. –JBoss ESB has its own lightweight engine/container for the hosting mediation services. It can run “beside” your existing middleware from your vendor of choice. 3) ESB “standalone” in a J2SE environment – this option is primarily for development & testing purposes, it is not recommended for production as of the 4.2 release.
33
Questions: burr.sutter@jboss.com Management & Monitoring 4.2 Release is focused on JMX instrumentation, the ability to monitor the health and load of every distributed service as well as start, stop & restart them remotely.
34
Questions: burr.sutter@jboss.com Management & Monitoring Architecture
35
Orchestration
36
Questions: burr.sutter@jboss.com Orchestration (Got Flow) Customer Customer Service Warehouse Shipper Submit Order Receive OrderValidate Order Credit Check Inventory Check Handle Shipment Send Shipment Credit Agency CSR Teams Issues Customers submit orders via web browser, FTP and Web Services. The system receives and validates the order, errors are sent to the appropriate CSR Team A credit check request is made, any areas of concern are sent to the appropriate CSR Team An inventory check request across multiple warehouses is sent, lack of availability goes to the CSRs. Assuming the order is valid, checks credit and available inventory, pick tickets are printed, shipping labels are printed, someone throws the parts into a crate or places on a pallet and puts the package by the loading dock. Various shipping companies are employed. Simple Order Handling Process
37
Questions: burr.sutter@jboss.com Service Oriented Orchestration Customer Customer Service Warehouse Shipper Submit Order Receive OrderValidate Order Credit Check Inventory Check Handle Shipment Send Shipment Credit Agency CSR Teams Issues a Parse XML b Transform c Apply Business Rules Validate Order a Create Outbound Msg b Handle Response c Apply Business Rules Credit Check a Send to N Warehouses b Handle N Responses c Determine Best WHSEs d Handle Drop-Ships Inventory Check ESB Mediates & Provides Services a Determine Shipper(s) b Print Labels c Print Pick Tickets d Create & Send ASNs Send Shipment
38
Questions: burr.sutter@jboss.com Service Orchestration & BPM Submit Order Receive OrderValidate Order Credit Check Inventory Check Handle Shipment Send Shipment CSR Teams Issues CustomerCSRSales MgmtWHSE Mgmt Humans J2EE App Server … FTP SOAP File Validate Order Credit Check Inventory Check Send Shipment External Credit/BankLegacyPartners Various Transports An ESB Service is visible in the UDDI registry automatically. A single ESB Service may or may not expose a WSDL. It may use out-of-the-box actions, custom actions and/or consume external services from various sources. Focus on the reuse of existing infrastructure and assets.
39
Questions: burr.sutter@jboss.com Orchestrated/Composed Services External Actor External Actor External Actor Action DB POJO Pricing_Service Action DB EJB Order_Service Action DB DAO Validation_Service BPM JVM
40
Questions: burr.sutter@jboss.com Orchestration Designer
41
Orchestration Demo
42
Questions: burr.sutter@jboss.com Deployment Models “In” JBoss Application Platform Standalone Lightweight ESB Server Engine J2SE Bootstrapper (development only) WAR Bootstrapper (experimental)
43
Questions: burr.sutter@jboss.com BPEL We are partnering with Active Endpoints www.activebpel.org Download their open source BPEL engine and contact them for their free design tool. As for ESB 4.2, review the webservice_bpel quickstart, specifically the ActiveBPEL- Orchestration.odp under that quickstart’s Docs folder. And engage us in the online forums: http://www.jboss.com/index.html?module=bb&op=viewforum&f=246
44
Questions: burr.sutter@jboss.com Possible Big Picture DB WS Client Application Server Enterprise Service Bus Action Service D Action Service C Action Service A JVM Spring DAO EJB Rules Groovy Action Service B ORCHESTRATIONORCHESTRATION SOAP BPEL Partner Link Partner Link Partner Link SOAP JMS FTP SERVICESERVICE Legacy Application SOAP.NET Application SOAP Note: Not every technology is required. This is simply a way to illustrate how the various technologies might be used together
45
Questions?
Similar presentations
© 2025 SlidePlayer.com Inc.
All rights reserved.