HASSO PLATTNER INSTITUTEfor IT Systems Engineering at the University of Potsdam
The Enterprise Service Bus (ESB)
„An innovative approach to business application integration.“
Martin Breest
Martin Breest - Enterprise Service Bus 2
HASSO PLATTNER INSTITUTEfor IT Systems Engineering at the University of Potsdam
What people say about the ESB
Forrester research regards the ESB as “a layer of middleware through which a set of core (reusable) business services are made widely available.”
IDC believes that “The ESB … will revolutionize IT and enable flexible and scalable distributed computing for generations to come.”
Gartner Inc. analyst Roy Schulte wrote 2002: “A new form of enterprise service bus (ESB) infrastructure – combining message-oriented middleware, web services, transformation and routing intelligence – will be running in the majority of enterprises by 2005.
These high-function, low-cost ESBs are well suited to be the backbone for service-oriented architectures and the enterprise nervous system.”
Martin Breest - Enterprise Service Bus 3
HASSO PLATTNER INSTITUTEfor IT Systems Engineering at the University of Potsdam
Agenda
The ESB: An innovative approach to application integration
The nature of the ESB Message Oriented Middleware (MOM) Service Oriented Architecture (SOA) through service containers Management facility
Special facilities of the ESB Routing XML processing
Summary
Martin Breest - Enterprise Service Bus 4
HASSO PLATTNER INSTITUTEfor IT Systems Engineering at the University of Potsdam
Why do we need integration?
Isolated applications Data is stored in isolated silos
spread across the organisation
IT has to support businesses in global competition Automate business processes Integrate with business partners Provide new services to customers
Integration approaches Point-to-point integration Enterprise Application Integration (EAI)
My
Co
mp
any
Par
tner
ERP
Finance
ERPOrder System
CRM
SOAP
FTP
EAI Broker
SOAP
FTP
SOAP
SOAP
Martin Breest - Enterprise Service Bus 5
HASSO PLATTNER INSTITUTEfor IT Systems Engineering at the University of Potsdam
Why do we need an ESB? – The Accidental Architecture Unreliable point-to-point connections
between tightly coupled applications
Islands of integration through centralized EAI approach
Commuication channels are Not reliable Not monitorable Not manageable Not secure
Application needs to know target application, interface methods to call, required protocol, required data format
Process logic and data transformation encoded into application
My
Co
mp
any
Par
tner
ERP
Finance
ERPOrder System
CRM
SOAP
FTP
Martin Breest - Enterprise Service Bus 6
HASSO PLATTNER INSTITUTEfor IT Systems Engineering at the University of Potsdam
What does ESB promise?
Build up a SOA through iterative integration of services into decentralized infrastructure
Reliable, secure and manageable application connections via virtual channels
Loosely coupled interactions and interfaces
Easy data exchange based on XML and SOAP
Process orchestration logic and data transformation can be placed outside the application
Process interactions (choreographies) can be performed in a controlled manner
My
Co
mp
any
Par
tner
ERP
Finance
ERPOrder System
CRM
SOAP/XML
SOAP
FTP
SOAP/XML
Service Bus
SOAP/XML
SOAP/XML SOAP/
XML
Service Bus
SOAP/XML
SOAP/XML
Martin Breest - Enterprise Service Bus 7
HASSO PLATTNER INSTITUTEfor IT Systems Engineering at the University of Potsdam
The Key Components of the ESB architecture
Service Container
Service Bus – Message Oriented Middleware (MOM)
Management Facility
Service Container
XML Services
Internal/ManagedServices
Service Container
Service Container
ExternalServices
Routing Services
Adapter
JMS WS-ReliabilityWS-ReliabileMessaging
SOAP
FTP, Email,HTTP
JCA, JNI,RMI
ESB Components Integrated ServicesService
Repository
Martin Breest - Enterprise Service Bus 8
HASSO PLATTNER INSTITUTEfor IT Systems Engineering at the University of Potsdam
Physical Distribution of the ESB across Organizational Borders
My Organisation Sales Division Partner Organisation
Business PartnerServer
J2EE Server
Servlet Service Container
MOM Server
Managed Service
RoutingServlet
EJB Service Container
Managed ServiceERP EJB
Managed ServiceCRM EJB
JCA Service Container
JCA Adapter
Legacy System Server
Finance Legacy
Application
Dedicated Message Server
MOM Server
Old Order System Server
Service Container
JNI Adapter
Order System
MOM Server
Service Container
RoutingService
Martin Breest - Enterprise Service Bus 9
HASSO PLATTNER INSTITUTEfor IT Systems Engineering at the University of Potsdam
The Key of ESB: Reliable, Asynchronous Message Exchange through MOM
Replaces synchronous remote calls through asynchronous message passing Replaces direct communication channels through virtual communication
channels Replaces tightly-coupled point-to-point interactions trough loosely-coupled
indirect interactions
CRM Finance
Server Server
Before After
HTTP/SOAP
Call remote method
CRM Finance
XML
Add XML-Message to the right virtual channel and let MOM take care of delivery
XML XML
MOM
Martin Breest - Enterprise Service Bus 10
HASSO PLATTNER INSTITUTEfor IT Systems Engineering at the University of Potsdam
The Approach of Sending Messages in a MOM
Service Container A
MOM Server MOM Server MOM Server
Service Container B
Queues &Topics
Messages
Messages Messages
1. Send MessageXML XML
2. Store & Forward Message
3. Receive Message 4. Reply6. Receive
5. Store & Forward
Message Client Message Client
MOM servers build distributed messaging infrastructure Services use message client to asynchronously produce and consume messages MOM knows consumers of a message and takes care of delivery Messages are send reliable via store and forward to the consumer
Martin Breest - Enterprise Service Bus 11
HASSO PLATTNER INSTITUTEfor IT Systems Engineering at the University of Potsdam
The Way of Establishing “Virtual Channels” in a MOM
Producer (Sender)
MOM Server
Queue Consumer (Receiver)
Messages
Consumer (Receiver)
Consumer (Receiver)
Point-to-Point Messaging Model (1->1)
Publish-Subscribe Messaging Model (1->many)
Producer (Publisher)
MOM Server
Topic
Messages
Consumer (Subscriber)
Consumer (Subscriber)
Queue
Queue
id
idEvery subscriber gets message
First receiver gets message
CRM Finance
XML
CRM
ERP
Finance
XML
Martin Breest - Enterprise Service Bus 12
HASSO PLATTNER INSTITUTEfor IT Systems Engineering at the University of Potsdam
Messages: The Means to Transport Data
Messages are autonomous units of transaction
Typical message properties are ReplyTo CorrelationID MessageID
Payload should be XML XML allows to easily transform
and route messages through the bus
Message
Body
Header
Properties
Used to identify and route the message
Support application-specific values passed with the Message
The actual “payload” of the message
Martin Breest - Enterprise Service Bus 13
HASSO PLATTNER INSTITUTEfor IT Systems Engineering at the University of Potsdam
Connecting Services to the Bus
Service Container
ESB EndpointESB Endpoint
MOM Server
Message Client
ESB Endpoint
Internal/ Managed Service
Entry Point
Exit Point
Operations
Place message in entry point queue
Trigger event that can be processed by service-method
Place message in exit point queue
Execute service-method and call
operation
Receive and sendmessages
Services are provided via ESB endpoint to SOA and registered via management facility
ESB endpoint has standardized interfaceconsisting of entry point and exit point
Service can be consumed by sending a message to an ESB endpoint
Martin Breest - Enterprise Service Bus 14
HASSO PLATTNER INSTITUTEfor IT Systems Engineering at the University of Potsdam
The Service Container: The Means to Translate Messages into Business Operation Calls
Invocation and Mgmt. Framework Exchange messages Enforce configured
policies
ESB Endpoint Translate messages
into operation calls
Service Container
MOM Server
Internal/ Managed Service
Invocation and Mgmt. Framework
Message Client
ESB Endpoint
Mes
sag
es
Communicate with MOM server
Co
nfi
gu
rati
on
Send and Receive XML messages
Call Interface Operations
JMS, SOAP, WS-Reliability
JMS API
Java Bean, Enterprise Java Bean
Corba Object
Qu
eu
es
&T
op
ics
Mes
sag
es
Martin Breest - Enterprise Service Bus 15
HASSO PLATTNER INSTITUTEfor IT Systems Engineering at the University of Potsdam
Other Capabilities of the Service Container
Service Container
MOM Server
Internal/ Managed Service
Invocation and Mgmt. Framework
Message Client
ESB Endpoint
Me
ssa
ge
sC
on
fig
ura
tio
n
Service Invocation
Thread Management
Lifecycle Management
Connection Management
Asynch Dispatch
Auditing/ Tracking
Itinerary Management
Quality of Service
Security
Deployment Configuration
CorrelationTransaction Management
Au
dit
&
Tra
cki
ng
Da
taL
og
& E
rro
r M
ess
ag
es
Qo
S D
ata
Martin Breest - Enterprise Service Bus 16
HASSO PLATTNER INSTITUTEfor IT Systems Engineering at the University of Potsdam
The Management of the ESB
Configuration
Deployment
Monitoring
Manual errorhandling
Service ContainerMOM Server
Internal/ Managed Service
Invocation and Mgmt. Framework
Message Client
Mes
sag
esC
on
fig
ura
tio
n
& D
ata
Deployment Configuration
Co
de/
Scr
ipts
/ P
roce
sses
......
Deployment Configuration
Mes
sag
esT
op
ics
&
Qu
eues
Co
nfi
gu
rati
on
& D
ata
Management Facility
ConfigurationService
RepositoryManagement Tool Code/ Scripts/
Processes
Manage and monitor
Manage and monitor
Message exchange
Martin Breest - Enterprise Service Bus 17
HASSO PLATTNER INSTITUTEfor IT Systems Engineering at the University of Potsdam
Routing Facilities of the ESB
Intinerary-Based Routing (IBR) Route messages via highly distributed routing network (MOM + Service
containers) Manage microflows (short-lived, transient process fragments)
Service Orchestration with BPEL Enact processes via centralized orchestration (BPEL) engine Manage long-running business processes
Content-Based Routing (CBR) Plug inspection services between message producer and consumer Validate message format and re-route message to special services
Martin Breest - Enterprise Service Bus 18
HASSO PLATTNER INSTITUTEfor IT Systems Engineering at the University of Potsdam
Itinerary-Based Routing
Service Container
Service Bus – MOM
CRMService
(J2EE Server)
Service Container
Finance Service
JCA Adapter(J2EE Server)
JMS SOAP
LegacyProtocol
WS Adapter
ERP Service
SOAP
Service Container
SOAP
Partner Service
WS Adapter
SOAP
Message
XML Content
Itinerary(ESB Endpoints)1: CRM Service2: Finance Service3: ERP Service
Message contains itinerary and process state
Itinerary defines ESB endpoints that have to be visited Itinerary contains information about already visited ESB
Endpoints XML content contains process state
Service containersroute message to nextESB endpoint based onitinerary
XML XML XML
Martin Breest - Enterprise Service Bus 19
HASSO PLATTNER INSTITUTEfor IT Systems Engineering at the University of Potsdam
Service Orchestration with BPEL
Service Container
Service Bus – MOM
CRMService
(J2EE Server)
Service Container
Service ContainerFinance Service
BPEL Engine(Java VM)
JCA Adapter(J2EE Server)
JMS SOAPSOAP
LegacyProtocol
WS Adapter
ERP Service
SOAP
Service Container
SOAP
Partner Service
WS Adapter
SOAP
BPEL Engine
Ord
er
Pro
ces
sM
OM
Credit Check
Inventory Check
Order fulfillment
Invoice
<invoke> <receive> ... ... ... ... ...
BPEL engine calls other services on the service bus via asynchronous message exchange
BPEL engineenacts processby sending messages to and receiving messages from the MOM
XML
XML XML
Martin Breest - Enterprise Service Bus 20
HASSO PLATTNER INSTITUTEfor IT Systems Engineering at the University of Potsdam
Content Based Routing (CBR)
Service Container
Service Bus – MOM
Transformation Engine
Service Container
Service Container
Finance Service
CBR Router
JCA Adapter(J2EE Server)
JMSSOAPSOAP
LegacyProtocol
WS Adapter
ERP Service
SOAP
Service Container
SOAP
Partner Service
WS Adapter
SOAP
CBR Router determines message format and decides whether message is ok or has to be re-routed for transformation
Transformation engine transforms message format (e.g. M2) to appropriate message format (e.g. M1)
XMLM2
XMLM2
M2 toM1
XMLM1 XML
M1
Martin Breest - Enterprise Service Bus 21
HASSO PLATTNER INSTITUTEfor IT Systems Engineering at the University of Potsdam
XML Processing Facilities of the ESB
Facilities provided by service container or special services plugged into the bus
Message Transformation Transform, extract, enrich, aggregate XML data Based on XSLT, XPath and XQuery standards
Message Inspection Check message for existence of certain attributes and tags Check message format Based on XPath and XQuery standards
Message Persistence Store XML messages
Martin Breest - Enterprise Service Bus 22
HASSO PLATTNER INSTITUTEfor IT Systems Engineering at the University of Potsdam
Summary
ESB combines best practices of application integration from the last years Message Oriented Middleware Event Driven Architecture Service Oriented Architecture
ESB reuses components that have been on the market for years Messaging systems J2EE servers and application servers in general Integration adapters from Enterprise Application Integration Business Process Management engines, rules engines Transformation engines, XML processing services
ESB makes it all more manageable
Martin Breest - Enterprise Service Bus 23
HASSO PLATTNER INSTITUTEfor IT Systems Engineering at the University of Potsdam
What is (an) ESB?
A “way of doing things”? Yes, it is an incremental approach of building a Service Oriented Architecture
(SOA) by connecting all kinds of applications to a company wide distributed infrastructure.
An architecture? Yes, an ESB is an architectural style in which applications are service-
enabled through service containers and connected to a Message Oriented Middleware (MOM) that is not only capable of routing messages but also of transforming them.
A new type of product? Yes, somehow we need products that supports us in building an ESB.
However, these products are often composed out of existing one’s (MOM, J2EE server) but provided in a manageable manner.
Top Related