Uploaded by x

2006-10 Mark Richards: The Role of the Enterprise Service Bus (NFJS, 53p)

advertisement
-..
NB
~ !i
t
,_
r"JJw _. --
No Fluff Just Stuff Software Symposium
The Role of the
EnterpriseService Bus
W Mark Richards
Senior IT Architect and SOA Thought Leader
IBM Corporation
Introduction
Agenda
o
o
o
o
o
o
o
o
2
Introduction
The ESB as a Pattern for SOA
Exploring the Capabilities of an ESB
ESB Components
Process Choreography and the ESB
JSR-208 JBI Specification and the Impact on an ESB
Open Source ESB Projects
Summary
The Role of The ESB
Introduction
The Role of The ESB
What is an ESB?
o
o
There is no industry-agreed upon definition of what an ESB is
Some questions to consider :
Is
Is
Is
Is
4
it a Pattern?
it a Product?
it an Architectural Component?
it a Hardware Component? (i.e. DataPower Xl50)
Introduction
How do the leading vendors define an ESB?
o Let's look at the content from some actual websites .. .
5
The Role of The ESB
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 , serviceoriented 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 ."
6
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. "
7
Introduction
The Role of The ESB
Product Website 3 :
"[This ESB] offers the first end-to-end, 100°/oWeb 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 ."
8
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."
9
Introduction
The Role of The ESB
Bottom line
o
o
10
There is no single concise definition of an ESB
We will try to understand what an ESB is by understanding its role and
capabili ties
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 Ap plication
Client Applicat ion
!
II
Enterprise Service Bus
Service Provide r
(Java/EJB)
Serv ice Provider
(GIGS/Mainframe)
Serv ice Provider
(Java/EJB)
12
Service Provide r
(GIGS/ Mainf rame)
The ESB as a Pattern for SOA
The Role of The ESB
The ESB Helps Facilitate The Following:
o
o
o
13
Service Location Transparency
Sharing of services across the enterprise
Ability to separate Business Services from Service Implementations
The ESB as a Pattern for SOA
The Role of The ESB
Business Service vs. Implementation Service
Business Service Def
Place Trade
WSDL
Client Application
Place Trade
Business Services are
exposed to client as a service
name and specified input and
output structures
(i.e. through WSDL)
Enterprise Service Bus
Implementation Services
are coded within the
Service Providers
(i.e. through Java/EJB)
save TradeOrder()
V
I
I
••-•
Serv ice Provider
14
Java
Source Code for
save TradeOrder()
Roadmap
The Role of The ESB
Exploring the Capabilities of an ESB
15
ESB Capabilities
The Role of The ESB
ESB Core Capabilities
Message
Enhancement
Message
Transformation
Routing
Protocol
Transformation
·----------------------..---
-- ·
--------- ----
Service
Mapping
Enterprise
Service Bus
--
---- ---- ---- ----
-- ----- ~
Security
Message
Processing
Transaction
Management
Process
Choreography
Service
Orchestration
16
ESB Capabilities
e8
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
17
The Role of The ESB
Routing
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:
XM L D LJ XM L
XM L D LJ COBOL Copybook
Object 8 :J XM L
18
The Role of The ESB
e8
Message
Transformat ion
ESB Capabilities
The Role of The ESB
e8
Message Transformation
Message
Transformat ion
Incoming Request
Service Provider Input
<TradeRequest>
<action>BUY </action>
<symbol>NFJS< /symbol>
<shares> 100 .0</shares>
<price>50 .00</price>
</TradeReques t>
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
19
PIC X(10)
PICX(4)
PIC 9(11)
PIC 9(11)
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
20
The Role of The ESB
e8
Message
Enhancement
ESB Capabilities
The Role of The ESB
e8
Message Enhancement
Message
Enhancement
Assume Exchange Code was required on Service Provider input
Incoming Request
Service Provider Input
<TradeRequest>
<action>BUY </action>
<symbol>N FJS </symbol>
<shares>100 .0</shares>
<pr ice>50 .00</price>
</Trade Request>
01 TRADE-REQUEST
05 TRADE-INFO
t
I[____
10 EXCHNGE
05 PRICE-INFO
10 SHARES
10 PRICE
PIC X(1)
PIC 9(11)
PIC 9(11)
GetDatabaseConnection()
Var.exchange= QueryExchangeCode(lnput.TradeRequest.symbol)
Output.EXCHNGE = Var.exchange
21
ESB Capabilities
ProtocolTransformation
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 CIC S/MQ
XML/HTTP OD RMI/ IIOP
SOAP /MQ DD ATMI
XML/HTTP DD OTMA
22
ESB Capabilities
The Role of The ESB
e8
Protocol Transformation
Example: SOAP/HTTP fl D PeopleSoft/MQ
Protocol
Transformation
//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 ';
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' ;
• • •
23
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
24
ESB Capabilities
The Role of The ESB
e8
Message Processing
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 or messaging sync points
to ensure guaranteed message process ing and delivery
-
-
Client Application
Output Request
Queue
1
Input Request
Queue
25
i
Enterprise Serv ice
Bus
-
-
Error Notification
Queue
f
ESB Capabilities
The Role of The ESB
e8
Process Choreography
The ability to manage complex business processes that require
the coordination of multiple business services to fulfill a single
business service request
o
Process
Choreography
Usually BPEL based
Process Choreography can be thought of as a manifestation of a use
case or business process
PlaceFixed Income Trade
CreateOrder
26
Each of the bus iness process nodes can be
an independent business service
SelectBid
PlaceTrade
ExecuteTrade
ESB Capabilities
The Role of The ESB
Service Orchestration
The ability to manage the coordination of multiple
implementation services
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
Service Orchestration
27
n Business
Services
Implementation Service
ESB Capabilities
The Role of The ESB
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
Transaction
Management
Specifically, the ESB should provide a compensatory transactional
framework for a service request
WS-Coordination
JSR-95 Activity Service
28
ESB Capabilities
The Role of The ESB
e8
Security
The ability to protect enterprise services from unauthorized access
Security
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
29
Roadmap
The Role of The ESB
ESB Components
30
ESB Components
The Role of The ESB
ESB Components
o There is no one single product that can effectively do all of the
o
capabilities required of an ESB
An ESB can be broken down into the following components
Mediator
Service Registry
Choreographer
Rules Engine
ESB
Mediator
t
Choreographer
31
Rules Eng ine
Service
Registry
ESB Components
The Role of The ESB
Component Responsibilities
Mediator
Routing
Comm unication
ESB
Message Transformation
Mediato r
Message Enhancement
Protocol Transformation
Message Processing
Error Handling
h
Service Orchestration
Transaction Management
Security
32
ESB Components
The Role of The ESB
Component Responsibilities
Service Registry
ESB
t
Service
Registry
h
Can be used for Policy-based information
33
Serv ice Mapping
ESB Components
The Role of The ESB
Component Responsibilities
Choreographer
ESB
t
Choreograp her
Message Processing*
Process Choreog raphy
Transaction Management*
Secu rity*
* Choreographer wo uld be respo nsible for these
capa bilities only if it is the entrypoint into the ESB
34
ESB Components
The Role of The ESB
Component Responsibilities
Rules Engine
Routing*
ESB
Message Transformation*
Message Enhancement *
h
Rules Engine
* Specifica lly Rules-based Routing, Message
Transformation, and Message Enhancemen t
35
Roadmap
The Role of The ESB
Process Choreography and the ESB
36
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
Process Choreography
The Role of The ESB
Choreography / Mediator Relationship
Mediator As The ESB Entry Point
Advantages
o
o
o
Client Application
ESB
Med iator
i
Choreog rapher
Service
Registry
Service Prov ider
38
Good Performance
Good Scalability
Reduced Complexity : Only those
services requiring Choreography
go through the Choreographer
Process Choreography
The Role of The ESB
Choreography / Mediator Relationship
Choreography As The ESB Entry Point
Considerations
Client Application
o
o
Performance Issues
Maintenance Issues
Complexity Issues
ESB
o Do ALL services require BPELbased process coordination?
Choreographer
Service Registry
Mediator
Service Provider
39
Process Choreography
The Role of The ESB
Chor eography / Med iator Relationship
Choreographer and Mediator As The ESB Entry Point
Considerations
Cl Client responsib le for determining
Clie nt Applica tion
+ ...
..
ESB
/
7
i
Choreog rapher
Mediator
r- ---
Message Process ing
Transact ion processing
Security
No good separation of
respons ibility within ESB
components
Service Registry
Service Provider
40
service character istics
Capabi lities shared by multiple
ESB components
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?
41
Roadmap
JSR-208 JBI Specification and the
Impact on an ESB
42
The Role of The ESB
Java Business Integration (JBI)
The Role of The ESB
Java Business Integration (JBI) Specification
o
o
The goal of JBI is to create a standards-based architecture for
integrating middleware components to perform ESB capabilities
The JBI Spec is not concerned about how external consumers or
service providers interact, but rather how internal consumers and
providers interact
o
o
JBI is dependent on J2SE but not J2EE
JBI defines two types of components
Service Engines (SEs )
Binding Comp onents (BCs)
43
Java Business Integration (JBI)
The Role of The ESB
JBI Specification Architecture
BC
BC
BC
BC
JMXAdm in
Tools
Installation
Normalized Message Router
Deployment
..,
SE
44
Control
SE
SE
Monitor ing
Java Business Integration (JBI)
The Role of The ESB
JBI Specification Architecture
Trading Desk
(Java/Swing )
Trade Mgmt
(Java/EJB)
Portfolio Mgmt
(COBOL /Cl CS )
Publish ing
(Serv let)
jbiESB ®
JMXAdmin
RMI/IIOP
MQ
HTTP
CICS
Tools
i
Installation
NormalizedMessage Router
Deployment
Control
XSLT
45
PXE
Groovy
Monitor ing
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
o
o
o
Avoids "Vendor Lock-in "
Allows for "Best of Breed" technologies and solutions
We can mix Open Source and Commercial solutions
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?
46
Roadmap
The Role of The ESB
Open Source ESB Projects
47
Open Source ESB Projects
Open Source ESB projects
o Mule
o ServiceMix
48
The Role of The ESB
Open Source ESB Projects
The Role of The ESB
Mule
o
o
Lightweight Messaging Middleware Framework that manages UMOs
(Universal Messaging Objects)
UMOs contain communication endpoints that know how to receive and
send requests
Mule Container
UMO
UMO
External
Serv ice Provider
Appl ication
Application
49
Open Source ESB Projects
The Role of The ESB
ServiceMix
o Open Source JBI-Compliant ESB
JMXAdmin
Tools
Installation
WSIF
Deployment
JavaMail
Control
Monitoring
HTTP
File
ActiveSOAP
Normal ized Message Ro uter
Drools
50
PXE
JCache
Groovy
Quartz
XSLT
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
52
Summary
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
The Role of The ESB
Download