Professional Documents
Culture Documents
Introduction to
Enterprise
Service Bus
By: TMP – Del Institute of
Technology
TMP
2
TMP
3
ESB Components
TMP
4
Introduction
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?
TMP
5
Introduction
ESB represents a software architecture for distributed computing, and is a special
variant of the more general client-server model, wherein any application may behave
as server or client. - Wikipedia, accessed on February 21st, 2021.
ESB is a pattern whereby a centralized software component performs integrations to
backend systems (and translations of data models, deep connectivity, routing, and
requests) and makes those integrations and translations available as service interfaces
for reuse by new applications. - IBM, accessed on February 21st, 2021.
An Enterprise Service Bus (ESB) is fundamentally an architecture. It is a set of rules
and principles for integrating numerous applications together over a bus-like
infrastructure. - MuleSoft, accessed on February 21st, 2021.
TMP
6
Introduction
Bottom line:
There is no single concise definition of an ESB
Instead, try to understand of what an ESB is by understanding its role and capabilities
Map its roles and capabilities with the product space in the market and your needs
TMP
7
TMP
8
TMP
9
TMP
10
ESB Capabilities
Ten ESB core capabilities
TMP
11
ESB Capabilities
Routing: the ability to chanel 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
TMP
12
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 to XML
XML to COBOL Copybook
Object to XML
XML to JSON
TMP
13
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.
TMP
14
ESB Capabilities
Message Enchancement: the ability to add or modify the information contained in the
message as require by the service provider.
Assume "Exchange Code" was required on Service Provider input:
TMP
15
ESB Capabilities
Message Enchancement: the ability to add or modify the information contained in the
message as require by thee 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
TMP
16
ESB Capabilities
Protocol Transformation: the ability to accept one type of protocol from the consumer as
input (i.e. SOAP/JMS) and communication 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.
Has both physical connection attributes as well as logical connectivity attributes.
Examples:
SOAP/JMS to IIOP
XML/HTTP to CICS/MQ
SOAP/MQ to ATMI
XML/HTTP to OTMA
TMP
17
ESB Capabilities
Protocol Transformation
Example: SOAP/HTTP to PeopleSoft/MQ
TMP
18
ESB Capabilities
Service Mapping: the 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.
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
TMP
19
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.
For updates this might require the use of XA ("eXtended Architecture") or messaging
sync points to ensure guaranteed message processing and delivery.
TMP
20
ESB Capabilities
Process Choreography: the ability to manage complex business processes that require
the coordination of multiple business services to fulfill a single business service
request.
Usually BPEL based (Business Process Execution Language)
Process Choreography can be thought of as a manifestation of a use case or business
process
TMP
21
ESB Capabilities
Service Orchestration: the ability to manage the coordination of multiple
implementation services.
Can be BPEL bases but is usually implemented through inter-service communication or
aggregate services.
Different between Service Orchestration and Process Choreography is based on the type
of service being coordinated.
Process Choreography -> Business Services
Service Orchestration -> Implementation Service
TMP
22
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.
Specifically, the ESB should provide a compensatory transactional framework for a
service request.
WS-Coordination
JSR-95 Activity Service
TMP
23
ESB Capabilities
Security: the ability to protect enterprise services from unauthorized access.
In SOA there are no more silos; services become visible to 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 resposibility.
TMP
24
ESB Components
ESB Components
There is no one single product that can effectively do all of the capabilities required of an
ESB.
An ESB can be broken down into the following components:
Mediator
Service Registry
Choreographer
Rules Engine
TMP
25
ESB Componentes
Component Responsibilities
Mediator
TMP
26
ESB Componentes
Component Responsibilities
Rules Engine
TMP
27
Process Choreography
Choreography/Mediator Relationship
Mediator as the ESB entry point
TMP
28
Process Choreography
Considerations:
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 % of services that must be choreographed
Better performance
Better scalability
Less complexity
TMP
29
Any Question?
TMP