HASSO PLATTNER INSTITUTE for IT Systems Engineering at the ...

23
HASSO PLATTNER INSTITUTE for IT Systems Engineering at the University of Potsdam The Enterprise Service Bus (ESB) „An innovative approach to business application integration.“ Martin Breest

Transcript of HASSO PLATTNER INSTITUTE for IT Systems Engineering at the ...

Page 1: HASSO PLATTNER INSTITUTE for IT Systems Engineering at the ...

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

Page 2: HASSO PLATTNER INSTITUTE for IT Systems Engineering at the ...

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.”

Page 3: HASSO PLATTNER INSTITUTE for IT Systems Engineering at the ...

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

Page 4: HASSO PLATTNER INSTITUTE for IT Systems Engineering at the ...

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

Email

SOAP

FTP

Email

EAI Broker

SOAP

FTP

SOAP

SOAP

Page 5: HASSO PLATTNER INSTITUTE for IT Systems Engineering at the ...

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

Email

SOAP

FTP

Email

Page 6: HASSO PLATTNER INSTITUTE for IT Systems Engineering at the ...

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

Page 7: HASSO PLATTNER INSTITUTE for IT Systems Engineering at the ...

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

Page 8: HASSO PLATTNER INSTITUTE for IT Systems Engineering at the ...

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

Page 9: HASSO PLATTNER INSTITUTE for IT Systems Engineering at the ...

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

Page 10: HASSO PLATTNER INSTITUTE for IT Systems Engineering at the ...

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

Page 11: HASSO PLATTNER INSTITUTE for IT Systems Engineering at the ...

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

Page 12: HASSO PLATTNER INSTITUTE for IT Systems Engineering at the ...

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

Page 13: HASSO PLATTNER INSTITUTE for IT Systems Engineering at the ...

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

Page 14: HASSO PLATTNER INSTITUTE for IT Systems Engineering at the ...

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

Page 15: HASSO PLATTNER INSTITUTE for IT Systems Engineering at the ...

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

Page 16: HASSO PLATTNER INSTITUTE for IT Systems Engineering at the ...

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

Page 17: HASSO PLATTNER INSTITUTE for IT Systems Engineering at the ...

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

Page 18: HASSO PLATTNER INSTITUTE for IT Systems Engineering at the ...

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

Page 19: HASSO PLATTNER INSTITUTE for IT Systems Engineering at the ...

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

Page 20: HASSO PLATTNER INSTITUTE for IT Systems Engineering at the ...

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

Page 21: HASSO PLATTNER INSTITUTE for IT Systems Engineering at the ...

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

Page 22: HASSO PLATTNER INSTITUTE for IT Systems Engineering at the ...

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

Page 23: HASSO PLATTNER INSTITUTE for IT Systems Engineering at the ...

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.