Enterprise Service Bus and JBI

Preview:

DESCRIPTION

This presentation describes ESB, JBI and OpenESB

Citation preview

Topic 4

Enterprise Service Busand JBI

Dr.Thanachart NumnondaSun Microsystems (Thailand)

Asst.Prof.Thanisa KruawaisayawanKMITL

2

Agenda

What is ESB?

ESB Differences

What is JBI?

OpenESB &GlassFish

Usage Scenario

3

What is ESB?

4

SOA Framework Recap

External/Internal Systems

Build Re-usable Services (ESB)

Business Process Management (BPEL)

User Interface + Single Window (Portal)

User Interface Dashboard (KPI)

ESB

Enterprise Service Bus (ESB) is the software middleware

ESB acts as a mediator between different, often incompatible protocols and middleware products

ESB is the backbone of SOA You can't buy SOA, but you can buy an ESB

The role of ESB in SOA

Features of an ESB

• Web Services Support– ESB offers an ability to invoke SOAP and WSDL

based Web Services• Adapters

– Many ESB vendors will provide adapters to integrate with different thrd-part applications, such as PeopleSoft, SAP

– Used for applications which do not directly have SOAP or XML interface

• Invocation– ESB supports synchronous and asynchronous calls to

services and sometimes callbacks

Features of an ESB (Cont.)• Mediation and protocol independence

– Variety of protocols can be reconciled for complex route across a variety of platform

– Allows to connect with different protocols such as HTTP, FTP, SMTP, JDBC

• Routing– Allows us to route the messages to different services

based on their content, origin or other attributes• Transformation

– Data represented as XML can be transformed using XSLT or XQuery before they are delivered to services.

– Some ESB supports various XML, e.g. HL7, SWIFT

Features of an ESB (Cont.)

• Orchestration– Offers the ability to coordinate multiple services to

expose them as a single proxy service– Many ESBs delegate this functionality to a BPEL

engine• Security

– Provides additional security capabiulity, SSL, SAML• Control over the deployment, usage and

maintenance of services

ESB Features

Benefits of ESB

• Reduce time to integrate new and existing applicatioms

• Increase flexibility because system dependencies are reduced

• Simultaneous centralized management of services• Centralized management ability (e.g. BAM)• Encourage use of industry standard interface• Greater agility and responsiveness to change

12

ESB Differences

Heterogeneous ESBs

ESB Differences

• Point-to-Point Connection– consumer has to know the endpoint, it sends each request to

a specific receiver– The problem with this type of connection is that the call fails

if the physical receiver is not available.• Mediating Conenction

– identifies the provided service by a tag or symbolic that the ESB interprets to find an appropriate provider

– ESB plays the role of a mediator or broker

Point-to-Point Connection

Mediating Connection

Interceptor (based on Point-to-Point)

ESB Differences

• Protocol Driven ESB– the ESB defines a protocol, and the providers and consumers

send and receive messages according to this protoco– Example; Web Services, which require a SOAP protocol,

• API Driven ESB– the ESB defines platform-specific APIs (such as Java

interfaces), and the providers and consumers use these APIs for service implementations and service calls (see Connecting to an API-driven ESB).

Protocol-Driven ESB

API-Driven ESB

Commercial ESBs

• IBM WebSphere ESB • Sonic ESB• Oracle Service Bus• Software AG/WebMethods ESB• Microsoft Biztalk• TIBCO ActiveMatrix and BusinessWorks

Opensource ESB

• Mule• Apache ServiceMix• OpenESB (GlassFish v2)• Project Fuji (OpenESB v3)

23

What is JBI?

24

Why JBI?

• Many ESB products in the market• Each has its own pattern and specification• Each may use different protocols and different

forms of communication• Need different ways / patterns of implementation• Need a ESB standard to avoid vendor lock-in• The ideas is this: someone implements the spec and

then they can in turn implement engine that are pluggable within that container.

25

What is JBI?

• JBI (Java Business Integration) is a specification published by JCP (JSR 208)

• JBI is a message-based, pluggable meta-container• It is a container of containers.• JBI allows pluggable components to be added into

a standard architecture

What Is JBI?

• Standard “meta-container” for integrated services

• Provides for plug-in:– Service Engines (SE):

business logic– Binding Components:

communications protocols• Standard deployment /

Management model• Loose coupling via WSDL

message exchanges between WSDL described Services

JBI Architecture

JBI

Service Engines

• Sevice Engines (SEs) are JBI components that enable pluggable business logic

• SEs is a standard container for hosting WSDL-defined service providers as well as service consumers used internally by JBI

• Business Logic get deployed into SE• SE get installed into JBI runtime• OpenESB offers varous SEs

– BPEL SE– XSLT SE– JavaEE SE

Binding Components

• Binding Components (BCs) provides connectivity services to SE

• BCs offer protocol independence• BCs provide transport protocols for external

services• BCs converts a message that is bound to a specific

protocol or transport into the normalized protocols• Example BCs

– File, HTTP, FTP, SMTP, Database (JDBC)– CICS, DCOM, CORBA

Normalized Message Router

• NMR mediates the message exchange between Ses and Bcs within the framework

• NMR is the core of the bus• Allows services to interoperate by passing

messages between all the components• BC and SE are decoupled• NMR is bidirectional

JBI and Composite Application

Overview of Message Routing

JBI Runtime

JBI Portability Model

• Components should be portable (SEs and BCs)• Service units are not portable across SEs/BCs from

different vendors• Example: moving an application from OpenESB

toServiceMix– Install all Open ESB Service Engines and Binding

Components that you used, in ServiceMix– Deploy the application into ServiceMix's runtime

36

OpenESB & GlassFish

37

What is Open ESB?

• Project Open ESB implements an Enterprise Service Bus (ESB) runtime using JBI as the foundation– This allows easy integration of web services to

create loosely coupled enterprise class composite applications.

• It also provides various tools for the development, deployment, and management of composite applications

38

Open ESB Architecture

IDE Web Server

BPELEditor

Java EESE JBI Bus

XSLTSE

HTTPBC

FTPBC

FTPBCMany MoreSEs…

FTPBCMany MoreBCs…

App S

erver

XSLTEditor

CompositeApplication

Project

IEP Editor

CompositeApplication

Manager

Runtime

BPELSE

Java EE

EJBs

Servlets

Java EESE JBI Bus

XSLTSE

HTTPBC

FTPBC

FTPBCMany MoreSEs…

FTPBCMany MoreBCs…

App S

erver

BPELSE

Java EE

EJBs

Servlets

Design-Time Management

3rd PartyService

Platforms

3rd PartyService

Platforms

Open Standard Based Service Bus

WS-Reliable MessagingWS-SecurityWS-FastInfoSet, …

Many MoreEditorsMany More

Editors

IEPMonitor

BPELMonitor

XSLTMonitor

Many MoreEditorsMany MoreMonitors

JBI Support in GlassFish

• A JBI runtime has been integrated with GlassFish V2• GlassFish admin console now supports JBI• Java EE Service Engine act as the bridge between Java

EE applications and JBI• A Java EE application archive (ear/war/jar) can be

packaged in a JBI composite application• Expose JMX to tools• JBI runtime has been enhanced to adhere to the

appserver clustering architecture– Each instance in the appserver cluster will also have a JBI

runtime in it

JBI in Admin Console

OpenESB Web Site

• https://open-esb.dev.java.net/• Latest GlassFishESB v2.1 with NetBeans 6.1• Documents / Examples• 43 JBI Components

JBI Components : Examples• Service Engines

– BPEL SE– XSLT SE– JavaEE SE– IEP SE– POJI SE– Scripting SE– WLM SE

• Binding Comps– MQSeries BC– Database BC– HL7 BC– SAP BC– SMTP BC– HTTP BC– JMS BC– File BC– CICS BC– DCOM BC– CORBA BC– ...

• Nolonger Maintain– JavaScript SE– Aspect SE– JDBC BC– SMTP BC– SQL SE

45

Usage Scenario

Usage Scenario: Loan Processing• Loan Requestor Service:

– LoanRequestProcess• WS-I BP• BPEL Orchestration

– LoanProcessor• JavaEE

– TransformReport• XSLT

– LoanReportStore• Business Partner thru FTP

– LoanReportMailer• Legacy thru JMS

NMR

BPEL XSLTJavaEE

WS-I BP JMS File

JBI-basedInfrastructure

NMR

LoanRequestProcess

TransformReport

LoanProcessor

EJB

LoanRS WS ReportMail ReportStore

BPEL XSLTJavaEE

FileJMSWS-I BP

JBI-basedInfrastructure

NMR

LoanRequestProcess

TransformReport

LoanProcessor

EJB

LoanRS WS ReportMail ReportStore

BPEL XSLTJavaEE

FileJMSWS-I BP

NMR

LoanRequestService

TransformReport

LoanProcessor

EJB

LoanRS WS ReportMail ReportStore

BPEL XSLT JavaEE

FileJMSWS-I BP

ArchitectureRefactoring

NMR

LoanRequestService

TransformReport

LoanProcessor

LoanRS WS ReportMail

BPEL XSLT RulesEngine

ReportStoreFileJMSWS-I BP

LoanRS QJMS

ReportStore

JavaEE

52

Resources Some contents are borrowed from the presentation

slides of Sang Shin, Java™ Technology Evangelist, Sun Microsystems, Inc.

Business Process Execution Language for Web Services, Matjaz B. Juric

Java SOA Cookbook, Eben Hewitt Building SOA-Based Composite Applications Using

NetBeans IDE 6, David Salter SOA in Practice, Nicolai M. Josuttis

53

Thank you

thanachart.numnonda@sun.comtwitter.com/thanachart

www.facebook.com/thanachartwww.thaijavadev.com