ESBEnterprise Service Bus
AgendaIntroduction (Self and ESB)
The ESB as a pattern for SOA
Exploring the capabilities of an ESB
ESB components
Process Choreography and the ESB
JSR-208 JBI (Java Business Integration) Specification and the Impact on an ESB
Open Source ESB ProjectsWho am I?My name is Shan Kandaswamy  Technical Architect / ManagerLittle background on my workWorked mostly for Automotive IT clients - projects managing, architecting and developing
Worked on lot of popular frameworks
Clients worked so farin USA ….
Roadway Express
DaimlerChrsyler
FreightLiner – A DaimerChrysler company
Nissan North America
Toyota Motor Sales
and finally now @ UCLA
Let me move on to actual presentationThanks to…I am not going to lie  I did not invent or patternise ESB or SOA
I did not create the entire presentation content all by myself.
Like java re-usability, I gathered information around the www
Presentation is an extract from my fav architect  Mark Richard, an IBM Consultant /Architect. So thanks to all the resources available on the internet … and thanks to Google my favorite search engine.
What is an ESB?There is no industry agreed upon definition of what an ESB is
Some questions to consider:
Is it a Pattern?
Is it a Product?
Is it an Architectural Component?
Is it a Hardware Component?
From Wiki “An enterprise service bus (ESB) consists of a software architecture construct which provides fundamental services for complex architectures via an event-driven and standards-based messaging-engine (the bus)”
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 as a lightweight, ubiquitous integration backbone through which software services and application components flow”Bottom lineThere is no single consise deinition of an ESB
We will try to understand what an ESB is by understanding its role and capabilities.ESB Architecture ContextIn the move towards SOA, client applications are decoupled from services. The ESB provides the communication bridgeThe ESB helps facilitate the following:Service location transperancy
Sharing of services across the enterprise
Ability to separate Business Services from the service implementation.
Business Service vs. Implementation ServiceBusiness Service DefMake PaymentWSDLMake PaymentBusiness Services are exposed  to client as a service nameand specified input and output structures.(example: through WSDL)Implementation Services are coded within the Service Providers (example: through Webservices)Process PaymentPost BAR PaymentPost Housing PaymentJava
ESB Core capabilitiesRoutingMessage TransformationMessage EnhancementProtocol TransformationService MappingMessage ProcessingProcess ChoreographyService OrchestrationTransaction ManagementSecurity
RoutingThe ability to channel a request to a particular service provider based on deterministic or variable criteria. Types of routing to considerStatic or deterministic Routing
Content-based Routing

ESB What it is?

  • 1.
  • 2.
  • 3.
    The ESB asa pattern for SOA
  • 4.
  • 5.
  • 6.
  • 7.
    JSR-208 JBI (JavaBusiness Integration) Specification and the Impact on an ESB
  • 8.
    Open Source ESBProjectsWho am I?My name is Shan Kandaswamy  Technical Architect / ManagerLittle background on my workWorked mostly for Automotive IT clients - projects managing, architecting and developing
  • 9.
    Worked on lotof popular frameworks
  • 10.
    Clients worked sofarin USA ….
  • 11.
  • 12.
  • 13.
    FreightLiner – ADaimerChrysler company
  • 14.
  • 15.
  • 16.
  • 17.
    Let me moveon to actual presentationThanks to…I am not going to lie  I did not invent or patternise ESB or SOA
  • 18.
    I did notcreate the entire presentation content all by myself.
  • 19.
    Like java re-usability,I gathered information around the www
  • 20.
    Presentation is anextract from my fav architect  Mark Richard, an IBM Consultant /Architect. So thanks to all the resources available on the internet … and thanks to Google my favorite search engine.
  • 21.
    What is anESB?There is no industry agreed upon definition of what an ESB is
  • 22.
  • 23.
    Is it aPattern?
  • 24.
    Is it aProduct?
  • 25.
    Is it anArchitectural Component?
  • 26.
    Is it aHardware Component?
  • 27.
    From Wiki “Anenterprise service bus (ESB) consists of a software architecture construct which provides fundamental services for complex architectures via an event-driven and standards-based messaging-engine (the bus)”
  • 28.
    How does Gartnerdefine an ESB?“An Enterprise Service Bus (ESB) is a new architecture that exploits Web Services, messaging, middleware, intelligent routing, and transformation. ESBs act as a lightweight, ubiquitous integration backbone through which software services and application components flow”Bottom lineThere is no single consise deinition of an ESB
  • 29.
    We will tryto understand what an ESB is by understanding its role and capabilities.ESB Architecture ContextIn the move towards SOA, client applications are decoupled from services. The ESB provides the communication bridgeThe ESB helps facilitate the following:Service location transperancy
  • 30.
    Sharing of servicesacross the enterprise
  • 31.
    Ability to separateBusiness Services from the service implementation.
  • 32.
    Business Service vs.Implementation ServiceBusiness Service DefMake PaymentWSDLMake PaymentBusiness Services are exposed to client as a service nameand specified input and output structures.(example: through WSDL)Implementation Services are coded within the Service Providers (example: through Webservices)Process PaymentPost BAR PaymentPost Housing PaymentJava
  • 33.
    ESB Core capabilitiesRoutingMessageTransformationMessage EnhancementProtocol TransformationService MappingMessage ProcessingProcess ChoreographyService OrchestrationTransaction ManagementSecurity
  • 34.
    RoutingThe ability tochannel a request to a particular service provider based on deterministic or variable criteria. Types of routing to considerStatic or deterministic Routing
  • 35.
  • 36.
  • 37.
    Complex Rules-based RoutingMessageTransformationThe ability to convert the structure and format of the incoming business service request to the structure and format expected by the service providerSome examples includes:
  • 38.
    XML  XML
  • 39.
    XML  COBOL Copybook
  • 40.
    Object  XMLMessage EnhancementThe ability to add or modify the information contained in the message as required by the service provider. Types of Message EnhancementDate format conversion
  • 41.
    Supplement data notincluded in original message
  • 42.
  • 43.
    Rules-based enhancementProtocol TransformationTheability 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. IIOP) A form of message transformation concerned with the message structure, not the message payload.
  • 44.
    Has both physicalconnection attributes as well as logical connectivity attributes
  • 45.
  • 46.
    SOAP/JMS  IIOP
  • 47.
    XML/HTTP  CICSMQ
  • 48.
    XML/HTTP  RMI/IIOP
  • 49.
    SOAP/MQ ATMI (Application-to-Transaction Monitor Interface)
  • 50.
    XML/HTTP OTMA (Open Transaction Manager Access)Service MappingThe ability to translate a business service into the corresponding service implementation and provide binding and location information Could be implemented through XML, a database, or embedded within the Mediator ESB component
  • 51.
    Usually contains thefollowing core information
  • 52.
    Implementation Service Name
  • 53.
    Service Protocol and binding information
  • 54.
    Protocol specific info (i.e. timeouts, failover location)
  • 55.
    Service-specific routing informationMessage ProcessingThe ability to manage state and perform request management by accepting an input request and ensuring delivery back to the client via message synchronizationFor updates this might require the use of XA or messaging sync points to ensure guaranteed message processing and delivery
  • 56.
    Process ChoreographyThe abilityto manage complex business process that requires the coordination of multiple business service to fulfill a single business service request Usually BPEL based
  • 57.
    Process Choreography canbe though of as a manifestation of a use case or business processEach of the business process nodes can be anIndependent business service.
  • 58.
    Service OrchestrationThe abilityto manage the coordination of multiple implementation services Can be BPEL based but is usually implemented through inter-service communication or aggregate services
  • 59.
    Difference between ServiceOrchestration and Process Choreography is based on the type of service being coordinated
  • 60.
    Process Choreography  Business Services
  • 61.
    Service Orchestration  Implementation ServicesTransaction ManagementThe ability to provide a single unit of work for a business service request by providing a framework for the co-ordination of multiple resources across multiple disparate services Specifically, the ESB should provide a compensatory transactional framework for a service request.
  • 62.
    WS-Coordination
  • 63.
    JSR-95 Activity Service for Extended TransactionsSecurityThe ability to protect enterprise services from unauthorized accessIn SOA there are no more silos; services become visible to the entire enterprise through ESB
  • 64.
  • 65.
    Authentication
  • 66.
    Authorization
  • 67.
    Auditing
  • 68.
    Administration
  • 69.
    ESB should provideauthentication, authorization, and auditing
  • 70.
    ESB should accessa security manager or authentication and authorization rather than have the direct responsibilityESB ComponentsThere is no one single product that can effectively do all of the capabilities required of an ESB
  • 71.
    An ESB canbe broken down into the following components
  • 72.
    Mediator
  • 73.
    Service Registry
  • 74.
    Choreographer
  • 75.
    Rules EngineComponents Responsibility Mediator
  • 76.
    Routing
  • 77.
    Communication
  • 78.
    Message Transformation
  • 79.
    Message Enhancement
  • 80.
    Protocol Transformation
  • 81.
    Message Processing
  • 82.
    Error Handling
  • 83.
    Service Orchestration
  • 84.
    Transaction Management
  • 85.
    SecurityComponent ResponsibilityService Registry
  • 86.
    Service MappingComponent ResponsibilityChoreography
  • 87.
    Message Processing
  • 88.
    Process Choreography
  • 89.
    Transaction Management
  • 90.
    SecurityComponent ResponsibilityRules Engine
  • 91.
    Routing
  • 92.
    Message Transformation
  • 93.
    Message Enhancement Specifically Rule based Routing, Message Transformation and Message Enhancement.
  • 94.
    RelationshipsChoreography / MediatorRelationshipMediator as the ESB entry point
  • 95.
  • 96.
    Good Performance
  • 97.
    Good Scalability
  • 98.
    Reduced Complexity: Only those services requiring Choreography go through ChoreographerProcess Choreographer and the ESBConsiderationsShould process choreography sit above or below the Mediator?
  • 99.
    Choreography as theESB entry point
  • 100.
    Mediator as theESB Entry point
  • 101.
    Either as anESB Entry point
  • 102.
  • 103.
    Mediator as theESB Entry point (Choreography Below)
  • 104.
    Based on small% of services that must be choreographed
  • 105.
  • 106.
  • 107.
    Less ComplexityChoreography /Mediator RelationshipMediator As the ESB entry point
  • 108.
  • 109.
  • 110.
  • 111.
    Reduced Complexity: Onlythose services requiring Choreography go through the ChoreographerChoreography / Mediator RelationshipChoreographer As the entry point
  • 112.
  • 113.
  • 114.
  • 115.
  • 116.
    Do All servicesrequires BPEL based process coordination?Choreography / Mediator RelationshipChoreographer and Mediator As The ESB Entry Point
  • 117.
  • 118.
    Client responsible fordetermining service characteristics
  • 119.
    Capabilities shared bymultiple ESB components
  • 120.
    Message Processing
  • 121.
    Transaction Processing
  • 122.
    SecurityNo good separation of responsibility within ESB components
  • 123.
    Choreography / MediatorRelationshipMediator As the ESB entry point
  • 124.
  • 125.
  • 126.
  • 127.
    Reduced Complexity: Onlythose services requiring Choreography go through the ChoreographerAdditional ConsiderationsChoreography contains business logic – does it really belong in an ESB?
  • 128.
    ESB is aninfrastructure component
  • 129.
    Should business rulesreside outside the ESB in the client? No I don’t think so…JBI (Java Business Integration) Advantages and the effect on Commercial ESBs Third-party or Custom Service Engines (SE) and the Binding Components (BC) can be swapped in and out without impacting applications or services
  • 130.
  • 131.
    Allows for “Bestof Breed” technologies and solutions
  • 132.
    We can mixOpen Source and Commercial solutions
  • 133.
    We can swapin and out integration services (i.e capabilities) we don’t need, creating a light-weight solution that meets out specific needs
  • 134.
    Is this thewave of the future ESBs?Open Source ESB ProjectsMule
  • 135.
    ServiceMixWhat we havelearned?An ESB can defined through its capabilities. Specifically the ones important to us.
  • 136.
    Reviewed 10 Corecapabilities and what they really mean
  • 137.
    Reviewed the componentsthat make up an ESB and the capability mapping for each component
  • 138.
    How Choreography canplay a part within an ESB
  • 139.
    What is JBIall about (Standards based pluggable Architecture)
  • 140.
    Open Source solutionsThankYou andHappy Diwali …