SlideShare a Scribd company logo
Enterprise Service Bus
Upul Doluweera
Agenda
 Introduction
 ESB as a Pattern to SOA
 Capabilities
 Components
 JSR-208 JBI specification
 UltraESB
Introduction
 What is an ESB
 No clear-cut definition
 More like a marketing term
 A pattern ?
 A product ?
 Architectural component ?
 Hardware component ? Eg : WebSphere DataPower Integration
Appliance XI50
 Can perform most of typical ESB tasks
What is an ESB ?
 Wikipedia definition
 “is a software architecture model used for designing and
implementing communication between mutually interacting
software applications in a service-oriented architecture
 (SOA)”
 “An ESB generally provides an abstraction layer on top of an
implementation of an enterprise messaging system.”
 Enterprise messaging system (EMS)
 “set of published enterprise-wide standards that allows
organizations to send semantically precise messages between
computer systems.”
 Part of Enterprise application integration(EAI)
 Defines how an enterprise integrate with other systems
 Promote loosely coupling
ESB as a Pattern to SOA
 Provides a communication bridge in SOA
 Decouples clients form service apps.
 Service location, transparency & sharing
 Separate business services from
service implementation.
Capabilities
 May vary based on the vendor
 No need all the features
Routing
 Ability to channel a request to a particular service
provider
 Static / Deterministic
 Content based
 Policy based
 Rule based
Message transformation
 Ability to convert the structure or format of message
 Incoming service requests to expected backend requests
 XML  CSV
 JSON  XML
 Object  XML
Message Enhancement
 Ability to add or modify information in messages
 Data conversion
 Date formats / formatting decimals
 Supplement information
 Requests from a mobile client
 Decoupling messages from service implementation
Protocol Transformation
 Ability to accept different type of transports which are
different from the implemented protocol
 SOAP  JMS
 XML/HTTP  JSON/HTTPS
 SOAP/MQ  FTP/SFTP
Message Processing
 Ability to perform a guaranteed message delivery.
 Message should not lost upon reaching ESB
Service orchestration
 Ability to perform complex business processes that
requires multiple business service implementations
 Similar to Process Choreography - *BPEL
Transaction Management
 Should provide a good framework for transaction
management
 Tricky in service orchestration
 Transaction propagation difficulties
 Solutions
 WS-coordination
 JSR-95
 Drop aggregation into a separate service
Security
 Ability to protect from unauthorized access
 Individual services become visible to whole enterprise
 Authentication, Authorization and Auditing
 Should use a security manager
 Should not be a direct responsibility
Components
 Vendor specific.
 Different component may added in future
 Selection should based on real needs
Mediator
 Core component
 Provides
 Routing
 Message Processing, enhancement and error handling
 Protocol transformation
 Service orchestration, transaction management and security
 UltraESB provides only a mediator
JSR 208 JBI Implementation
 Java Business Integration
 an approach to implementing a service-oriented
architecture (SOA) – ESB
  provides a pluggable architecture for a container that hosts
service producer and consumer components. 
 Focus on how internal service providers and consumers
interact
 Eg : message transformation, transaction security etc
 JBI compliant ESB
 OpenESB
 Apache ServiceMix
 Mule
 Advantages
 Pluggable architecture
 JBI compliance components
 Prevent vendor lock-in
 Allows best technologies to be added
 Mix open-source and commercial solutions
 Highly Customizable
UltraESB
 Launched Jan 2010
 Open-sourced August 2010
 Has ties to WSO2 ESB
 Founder is an original author of WSO2 ESB
Features
 Spring based
 Single XML file
 Java or JSR 223 language support in mediation
 Groovy, Ruby, JavaScript, etc.
 JMX support
 IDE support
 Isolation
 Management and monitoring tools runs outside of the core
ESB instances
 Clustering
 Apache ZooKeeper
 Equal nodes
 No specific admin nodes
 Easy management of clusters
 Management via any connected node
 State replication and content sharing
 Active-Passive nodes
 Pinned services and Service Migration on failure
 Deployment units
 One deployment can reloaded with out effecting other
deployments
 Logical separation of mediation logic into packages
Supporting Transports
 HTTP/S
 JMS - Java Messaging Service
 AMQP - Advanced Message Queuing Protocol
 Email
 TCP - Transmission Control Protocol
 MLLP/S - Minimal Lower Layer Protocol (used by HL7) /
MLLP-Secure
 Files
 FTP/S
 SFTP
Payloads
 SOAP - Simple Object Access Protocol
 REST - Representational State Transfer
 XML - Extensible Mark-up Language
 HTML - Hypertext Mark-up Language
 JSON - JavaScript Object Notation
 Text
 Binary
 Protocol Buffers - Google protocol buffer binary format
 CSV - Comma-Separated Values
 EDI - Electronic Data Interchange
 HL7 - Health Level 7
 Hessian
 AS2 - Applicability Statement 2
 Installation
 Running a test service
 Using Toolbox
 Code
Questions ?
 Thank You

More Related Content

Enterprise service bus

  • 2. Agenda  Introduction  ESB as a Pattern to SOA  Capabilities  Components  JSR-208 JBI specification  UltraESB
  • 3. Introduction  What is an ESB  No clear-cut definition  More like a marketing term  A pattern ?  A product ?  Architectural component ?  Hardware component ? Eg : WebSphere DataPower Integration Appliance XI50  Can perform most of typical ESB tasks
  • 4. What is an ESB ?  Wikipedia definition  “is a software architecture model used for designing and implementing communication between mutually interacting software applications in a service-oriented architecture  (SOA)”  “An ESB generally provides an abstraction layer on top of an implementation of an enterprise messaging system.”
  • 5.  Enterprise messaging system (EMS)  “set of published enterprise-wide standards that allows organizations to send semantically precise messages between computer systems.”  Part of Enterprise application integration(EAI)  Defines how an enterprise integrate with other systems  Promote loosely coupling
  • 6. ESB as a Pattern to SOA  Provides a communication bridge in SOA  Decouples clients form service apps.
  • 7.  Service location, transparency & sharing  Separate business services from service implementation.
  • 8. Capabilities  May vary based on the vendor  No need all the features
  • 9. Routing  Ability to channel a request to a particular service provider  Static / Deterministic  Content based  Policy based  Rule based
  • 10. Message transformation  Ability to convert the structure or format of message  Incoming service requests to expected backend requests  XML  CSV  JSON  XML  Object  XML
  • 11. Message Enhancement  Ability to add or modify information in messages  Data conversion  Date formats / formatting decimals  Supplement information  Requests from a mobile client  Decoupling messages from service implementation
  • 12. Protocol Transformation  Ability to accept different type of transports which are different from the implemented protocol  SOAP  JMS  XML/HTTP  JSON/HTTPS  SOAP/MQ  FTP/SFTP
  • 13. Message Processing  Ability to perform a guaranteed message delivery.  Message should not lost upon reaching ESB
  • 14. Service orchestration  Ability to perform complex business processes that requires multiple business service implementations  Similar to Process Choreography - *BPEL
  • 15. Transaction Management  Should provide a good framework for transaction management  Tricky in service orchestration  Transaction propagation difficulties  Solutions  WS-coordination  JSR-95  Drop aggregation into a separate service
  • 16. Security  Ability to protect from unauthorized access  Individual services become visible to whole enterprise  Authentication, Authorization and Auditing  Should use a security manager  Should not be a direct responsibility
  • 17. Components  Vendor specific.  Different component may added in future  Selection should based on real needs
  • 18. Mediator  Core component  Provides  Routing  Message Processing, enhancement and error handling  Protocol transformation  Service orchestration, transaction management and security
  • 19.  UltraESB provides only a mediator
  • 20. JSR 208 JBI Implementation  Java Business Integration  an approach to implementing a service-oriented architecture (SOA) – ESB   provides a pluggable architecture for a container that hosts service producer and consumer components.   Focus on how internal service providers and consumers interact  Eg : message transformation, transaction security etc
  • 21.  JBI compliant ESB  OpenESB  Apache ServiceMix  Mule
  • 22.  Advantages  Pluggable architecture  JBI compliance components  Prevent vendor lock-in  Allows best technologies to be added  Mix open-source and commercial solutions  Highly Customizable
  • 23. UltraESB  Launched Jan 2010  Open-sourced August 2010  Has ties to WSO2 ESB  Founder is an original author of WSO2 ESB
  • 24. Features  Spring based  Single XML file  Java or JSR 223 language support in mediation  Groovy, Ruby, JavaScript, etc.  JMX support  IDE support  Isolation  Management and monitoring tools runs outside of the core ESB instances  Clustering  Apache ZooKeeper
  • 25.  Equal nodes  No specific admin nodes  Easy management of clusters  Management via any connected node  State replication and content sharing  Active-Passive nodes  Pinned services and Service Migration on failure
  • 26.  Deployment units  One deployment can reloaded with out effecting other deployments  Logical separation of mediation logic into packages
  • 27. Supporting Transports  HTTP/S  JMS - Java Messaging Service  AMQP - Advanced Message Queuing Protocol  Email  TCP - Transmission Control Protocol  MLLP/S - Minimal Lower Layer Protocol (used by HL7) / MLLP-Secure  Files  FTP/S  SFTP
  • 28. Payloads  SOAP - Simple Object Access Protocol  REST - Representational State Transfer  XML - Extensible Mark-up Language  HTML - Hypertext Mark-up Language  JSON - JavaScript Object Notation  Text  Binary  Protocol Buffers - Google protocol buffer binary format  CSV - Comma-Separated Values  EDI - Electronic Data Interchange  HL7 - Health Level 7  Hessian  AS2 - Applicability Statement 2
  • 29.  Installation  Running a test service  Using Toolbox  Code