Slide 1

Slide 1 text

No Fluff Just Stuff Software Symposium The Role of the Enterprise Service Bus W Mark Richards Senior IT Architect and SOA Thought Leader IBM Corporation -.. NB ~ !i t ,_ r"J Jw _. --

Slide 2

Slide 2 text

Introduction The Role of The ESB Agenda o Introduction o The ESB as a Pattern for SOA o Exploring the Capabilities of an ESB o ESB Components o Process Choreography and the ESB o JSR-208 JBI Specification and the Impact on an ESB o Open Source ESB Projects o Summary 2

Slide 3

Slide 3 text

Introduction The Role of The ESB What is an ESB? o There is no industry-agreed upon definition of what an ESB is o Some questions to consider : Is it a Pattern? Is it a Product? Is it an Architectural Component? Is it a Hardware Component? (i.e. DataPower Xl50) 4

Slide 4

Slide 4 text

Introduction The Role of The ESB How do the leading vendors define an ESB? o Let's look at the content from some actual websites ... 5

Slide 5

Slide 5 text

6 Introduction The Role of The ESB Product Website 1: "[This ESB] is an enterprise service bus which simplifies the integration and flexible reuse of business components using a standards-based , service- oriented architecture (SOA). Free of the inflexible and costly customization required by other middleware technologies , [this ESB] lets architects dynamically configure the reliable connection, mediation and control of services and their interactions ."

Slide 6

Slide 6 text

7 Introduction The Role of The ESB Product Website 2: "[This ESB] is an Enterprise Service Bus (ESB) and SOA toolkit built from the ground up on the semantics and APls of the Java Business Integration (JBI) specification JSR 208 . It is lightweight and easily embeddable, has integrated Spring support and can be run at the edge of the network (inside a client or server) , as a standalone ESB provider or as a service within another ESB. You can use [This ESB] in Java SE or a Java EE application server. The aim of [This ESB] is to allow integration components and services to be integrate in a vendor independent way, allowing users and vendors to plug and play. "

Slide 7

Slide 7 text

8 Introduction The Role of The ESB Product Website 3: "[This ESB] offers the first end-to-end, 100°/o Web services-based Enterprise Service Bus, spanning service creation through sophisticated service orchestration with native BPEL support . New features include deep support for a wide range of XML and Web services standards , Multi-protocol messaging , routing, and adapters, including full support for WS-Rel iableMessaging and the option of a fully integrated version of the JBoss JMS , extensive and intuitive transformation support for XML and non-XML applications and data, and complete support for BPEL 1.1 workflow and routing, including a suite of powerful Eclipse-based tools for the design, deployment, and management of complex workflows ."

Slide 8

Slide 8 text

9 Introduction The Role of The ESB How does Gartner define an ESB? "An Enterprise Service Bus (ESB) is a new architecture that exploits Web services, messaging middleware, intelligent routing, and transformation. ESBs act a a lightweight, ubiquitous integration backbone through which software services and application components flow."

Slide 9

Slide 9 text

10 Introduction The Role of The ESB Bottom line o There is no single concise definition of an ESB o We will try to understand what an ESB is by understanding its role and capabilities

Slide 10

Slide 10 text

12 The ESB as a Pattern for SOA The Role of The ESB ESB Architecture Context o In the move towards SOA, client applications are decoupled from services. The ESB provides the communication bridge ... Client Application Service Provider (Java/EJB) Service Provider (GIGS/Mainframe) II Client Applicat ion ! Enterprise Service Bus Service Provider (Java/EJB) Service Provide r (GIGS/Mainframe)

Slide 11

Slide 11 text

The ESB as a Pattern for SOA The Role of The ESB The ESB Helps Facilitate The Following: o Service Location Transparency o Sharing of services across the enterprise o Ability to separate Business Services from Service Implementations 13

Slide 12

Slide 12 text

The ESB as a Pattern for SOA Business Service vs. Implementation Service Business Service Def Place Trade WSDL Client Application Place Trade The Role of The ESB Implementation Services are coded within the Service Providers Business Services are exposed to client as a service name and specified input and output structures Enterprise Service Bus (i.e. through Java/EJB) (i.e. through WSDL) save TradeOrder() Service Provider 14 I I • • - • Java V Source Code for save TradeOrder()

Slide 13

Slide 13 text

Roadmap The Role of The ESB Exploring the Capabilities of an ESB 15

Slide 14

Slide 14 text

16 ESB Capabilities ESB Core Capabilities Routing Security Message Transformation ·------- --- .. ----- -------- -- -- ------ ---- -- -- Transaction Management --- -- · Message Enhancement Enterprise Service Bus Service Orchestration ------ Protocol Transformation ---- -------- The Role of The ESB Service Mapping ------- ~ Process Choreography Message Processing

Slide 15

Slide 15 text

17 ESB Capabilities Routing The ability to channel a request to a particular service provider based on deterministic or variable routing criteria Types of routing to consider Static or Deterministic Routing Content-based Routing Policy-based Routing Complex Rules-based Routing The Role of The ESB e8 Routing

Slide 16

Slide 16 text

18 ESB Capabilities Message Transformation The ability to convert the structure and format of the incoming business service request to the structure and format expected by the service provider Some Examples Include: XML D LJ XML XML D LJ COBOL Copybook Object 8 :J XML The Role of The ESB e8 Message Transformat ion

Slide 17

Slide 17 text

19 ESB Capabilities The Role of The ESB Message Transformation e8 Message Transformat ion Incoming Request BUY NFJS< /symbol> 100.0 50 . 00 Service Provider Input 01 TRADE-REQUEST 05 TRADE-I NFO 10 SIDE 10 TICKER 05 PRICE-INFO 10 SHARES 10 PRICE Output.SIDE = lnput .TradeRequest .action Output .TICKER= lnput .TradeRequest .symbol Output .SHARES = In put. TradeReq uest.shares Output .PRICE = lnput .TradeRequest .price PIC X(10) PICX(4) PIC 9(11) PIC 9(11)

Slide 18

Slide 18 text

20 ESB Capabilities Message Enhancement The ability to add or modify the information contained in the message as required by the service provider Types of Message Enhancement Date format conversion Supplement data not included in original message Data conversion (i.e. spaces to zero) Rules-based Enhancement The Role of The ESB e8 Message Enhancement

Slide 19

Slide 19 text

21 ESB Capabilities Message Enhancement The Role of The ESB e8 Message Enhancement Assume Exchange Code was required on Service Provider input Incoming Request BUY N FJS 100 .0 50 . 00 GetDatabaseConnection() t I[ ____ Service Provider Input 01 TRADE-REQUEST 05 TRADE-INFO 10 EXCHNGE PIC X(1) 05 PRICE-INFO 10 SHARES 10 PRICE PIC 9(11) PIC 9(11) Var.exchange= QueryExchangeCode(lnput.TradeRequest.symbol) Output.EXCHNGE = Var.exchange

Slide 20

Slide 20 text

22 ESB Capabilities Protocol Transformation The ability to accept one type of protocol from the consumer as input (i.e. SOAP/JMS) and communicate to the service provider through a different protocol (i.e. I/OP) The Role of The ESB e8 Protocol Transformation A form of message transformation concerned with the message structure , not the message payload Has both physical connection attributes as well as logical connectivity attributes Examples SOAP/JMS DD IIOP XML/HTTP DD CICS/MQ XML/HTTP OD RMI/IIOP SOAP/MQ DD ATMI XML/HTTP DD OTMA

Slide 21

Slide 21 text

23 ESB Capabilities Protocol Transformation Example: SOAP/HTTP fl D PeopleSoft/MQ //ESB Must be able to process HTTP GET or POST Request //Extract XML From SOAP SET Output.XMLPayload = SOAP.body.xml //Create Protocol-specific Message Structure SET Output . Properti es.MessageSe t='l20ABTG002001 '; The Role of The ESB e8 Protocol Transformation SET Output.Properties .MessageType='PSFN _BNCB_PEND ITM_CI'; SET Output.Propert ies.MessageFormat= 'CwXML'; SET Output .MQMD .Format='MQHRF2 '; SET Output.MQRFH2 .(MQRFH2 .Field)Version= 2; SET Output.MQRFH2 .(MQRFH2 .Field)Format= 'MQSTR '; SET Output .MQRFH2 .(MQRFH2 .Field)NameValueCCSID= 1208; SET Output .MQRFH2 .(MQRF H2.Field)CodedCharSet ld=1208 ; SET Output.MQRFH2.mcd.Fmt= 'CwXML' ; SET Output.MQRFH2.mcd.Set= '120ABTG002001'; SET Output.MQRFH2.mcd.Type= 'PSFN_BNCB_PENDITM_CI'; • • •

Slide 22

Slide 22 text

24 ESB Capabilities Service Mapping The ability to translate a business service into the corresponding service implementation and provide binding and location information The Role of The ESB e8 Service Mapping Could be implemented through XML, a database, or embedded within the Mediator ESB component Usually contains the following core information Implementation Service Name Service Protocol and binding information Protocol-specific info (i.e. timeouts, failover location) Service-specific routing information

Slide 23

Slide 23 text

25 ESB Capabilities Message Processing The ability to manage state and perform request management by accepting an input request and ensuring delivery back to the client via message synchronization The Role of The ESB e8 Message Processing For updates this might require the use of XA or messaging sync points to ensure guaranteed message process ing and delivery Client Application 1 Input Request Queue Enterprise Service Bus - - Output Request Queue i - - Error Notification Queue f

Slide 24

Slide 24 text

26 ESB Capabilities The Role of The ESB Process Choreography e8 Process The ability to manage complex business processes that require Choreography the coordination of multiple business services to fulfill a single business service request o Usually BPEL based Process Choreography can be thought of as a manifestation of a use case or business process PlaceFixed Income Trade Each of the business process nodes can be an independent business service CreateOrder SelectBid PlaceTrade ExecuteTrade

Slide 25

Slide 25 text

27 ESB Capabilities Service Orchestration The ability to manage the coordination of multiple implementation services The Role of The ESB Service Orchestration Can be BPEL based but is usually implemented through inter-service communication or aggregate services Difference between Service Orchestration and Process Choreography is based on the type of service being coordinated Process Choreography n Business Services Service Orchestration Implementation Service

Slide 26

Slide 26 text

28 ESB Capabilities Transaction Management The ability to provide a single unit of work for a business service request by providing a framework for the coordination of multiple resources across multiple disparate services The Role of The ESB Transaction Management Specifically, the ESB should provide a compensatory transactional framework for a service request WS-Coordination JSR-95 Activity Service

Slide 27

Slide 27 text

29 ESB Capabilities The Role of The ESB Security e8 Security The ability to protect enterprise services from unauthorized access In SOA there are no more silos; services become visible to the entire enterprise through the ESB The 4 "A's" of Security Authentication Authorization Auditing Administration ESB should provide authentication, authorization, and auditing ESB should access a security manager for authentication and authorization rather than have the direct responsibility

Slide 28

Slide 28 text

Roadmap The Role of The ESB ESB Components 30

Slide 29

Slide 29 text

31 ESB Components The Role of The ESB ESB Components o There is no one single product that can effectively do all of the capabilities required of an ESB o An ESB can be broken down into the following components Mediator Service Registry Choreographer Rules Engine ESB Mediator t Choreographer Rules Engine Service Registry

Slide 30

Slide 30 text

32 ESB Components Component Responsibilities Mediator ESB Mediato r h The Role of The ESB Routing Communication Message Transformation Message Enhancement Protocol Transformation Message Processing Error Handling Service Orchestration Transaction Management Security

Slide 31

Slide 31 text

33 ESB Components Component Responsibilities Service Registry ESB t h Service Registry Can be used for Policy-based information The Role of The ESB Service Mapping

Slide 32

Slide 32 text

34 ESB Components Component Responsibilities Choreographer ESB t Choreograp her * Choreographer would be responsible for these capabilities only if it is the entrypoint into the ESB The Role of The ESB Message Processing* Process Choreog raphy Transaction Management* Security*

Slide 33

Slide 33 text

35 ESB Components Component Responsibilities Rules Engine ESB h Rules Engine * Specifica lly Rules-based Routing, Message Transformation, and Message Enhancement The Role of The ESB Routing* Message Transformation* Message Enhancement *

Slide 34

Slide 34 text

Roadmap The Role of The ESB Process Choreography and the ESB 36

Slide 35

Slide 35 text

Process Choreography The Role of The ESB Considerations o Should process choreography sit above or below the Mediator? Choreography as the ESB Entry Point Mediator as the ESB Entry Point Either as an ESB Entry Point Recommendation Mediator as the ESB Entry Point (Choreography Below) Based on small 0/o of services that must be choreographed Better Performance Better Scalability Less Complexity 37

Slide 36

Slide 36 text

38 Process Choreography Choreography / Mediator Relationship Mediator As The ESB Entry Point Client Application ESB Mediator i Choreographer Service Registry Service Provider The Role of The ESB Advantages o Good Performance o Good Scalability o Reduced Complexity : Only those services requiring Choreography go through the Choreographer

Slide 37

Slide 37 text

39 Process Choreography Choreography / Mediator Relationship Choreography As The ESB Entry Point Client Application ESB Choreographer Service Registry Mediator Service Provider The Role of The ESB Considerations Performance Issues o Maintenance Issues o Complexity Issues o Do ALL services require BPEL- based process coordination?

Slide 38

Slide 38 text

40 Process Choreography The Role of The ESB Choreography / Mediator Relationship Choreographer and Mediator As The ESB Entry Point Client Application + ... .. ESB 7 / i Choreographer Mediator r- - -- Service Registry Service Provider Considerations Cl Client responsib le for determining service characteristics Capabi lities shared by multiple ESB components Message Processing Transaction processing Security No good separation of responsibility within ESB components

Slide 39

Slide 39 text

41 Process Choreography The Role of The ESB Additional Considerations o Choreography contains business logic - does it really belong in an ESB? ESB is an infrastructure component Should business rules reside outside the ESB in the client?

Slide 40

Slide 40 text

42 Roadmap JSR-208 JBI Specification and the Impact on an ESB The Role of The ESB

Slide 41

Slide 41 text

43 Java Business Integration (JBI) The Role of The ESB Java Business Integration (JBI) Specification o The goal of JBI is to create a standards-based architecture for integrating middleware components to perform ESB capabilities o The JBI Spec is not concerned about how external consumers or service providers interact, but rather how internal consumers and providers interact o JBI is dependent on J2SE but not J2EE o JBI defines two types of components Service Engines (SEs) Binding Components (BCs)

Slide 42

Slide 42 text

Java Business Integration (JBI) JBI Specification Architecture BC BC BC Normalized Message Router .., SE SE 44 BC SE The Role of The ESB JMXAdm in Tools Installation Deployment Control Monitor ing

Slide 43

Slide 43 text

45 Java Business Integration (JBI) JBI Specification Architecture Trading Desk (Java/Swing) jbiESB ® MQ XSLT Trade Mgmt (Java/EJB) RMI/IIOP Portfolio Mgmt (COBOL /Cl CS) CICS Normalized Message Router PXE Groovy Publishing (Servlet) HTTP The Role of The ESB JMXAdmin Tools i Installation Deployment Control Monitor ing

Slide 44

Slide 44 text

46 Java Business Integration (JBI) The Role of The ESB JBI Advantages and the effect on Commercial ESBs o Third-party or Custom Service Engines (SE) and Binding Components (BC) can be swapped in and out without impacting applications or • services o Avoids "Vendor Lock-in" o Allows for "Best of Breed" technologies and solutions o We can mix Open Source and Commercial solutions o We can swap in and out integration services (i.e. capabilities) we don't need, creating a lighter-weight solution that meets our specific needs o Is this the wave of the future for ESBs?

Slide 45

Slide 45 text

Roadmap The Role of The ESB Open Source ESB Projects 47

Slide 46

Slide 46 text

Open Source ESB Projects The Role of The ESB Open Source ESB projects o Mule o ServiceMix 48

Slide 47

Slide 47 text

49 Open Source ESB Projects The Role of The ESB Mule o Lightweight Messaging Middleware Framework that manages UMOs (Universal Messaging Objects) o UMOs contain communication endpoints that know how to receive and send requests UMO Appl ication Mule Container UMO Application External Service Provider

Slide 48

Slide 48 text

50 Open Source ESB Projects ServiceMix o Open Source JBI-Compliant ESB JMXAdmin Tools WSIF Installation JavaMail Deployment File Control HTTP Normal ized Message Router Drools PXE JCache Groovy The Role of The ESB Monitoring ActiveSOAP Quartz XSLT

Slide 49

Slide 49 text

52 Summary The Role of The ESB What have we learned? There is a beer made by Redhook called ESB An ESB can defined through its capabilities , specifically the ones important to us Reviewed 10 Core Capabilities and what they really mean Reviewed the components that make up an ESB and the capability mapping for each component How Choreography can play a part within an ESB What is JBI all about (Standards-based Pluggable Architecture) Open Source Solutions

Slide 50

Slide 50 text

Summary The Role of The ESB Closing and Q&A References http://www.redhook .com Mule - http://mule.codehaus .org ServiceMix - http://servicemix .org Please fill out the session evaluation W. Mark Richards - wrichard@us .ibm.com 53