53
Topic 4 Enterprise Service Bus and JBI Dr.Thanachart Numnonda Sun Microsystems (Thailand) Asst.Prof.Thanisa Kruawaisayawan KMITL

Enterprise Service Bus and JBI

Embed Size (px)

DESCRIPTION

This presentation describes ESB, JBI and OpenESB

Citation preview

Page 1: Enterprise Service Bus and JBI

Topic 4

Enterprise Service Busand JBI

Dr.Thanachart NumnondaSun Microsystems (Thailand)

Asst.Prof.Thanisa KruawaisayawanKMITL

Page 2: Enterprise Service Bus and JBI

2

Agenda

What is ESB?

ESB Differences

What is JBI?

OpenESB &GlassFish

Usage Scenario

Page 3: Enterprise Service Bus and JBI

3

What is ESB?

Page 4: Enterprise Service Bus and JBI

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)

Page 5: Enterprise Service Bus and JBI

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

Page 6: Enterprise Service Bus and JBI

The role of ESB in SOA

Page 7: Enterprise Service Bus and JBI

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

Page 8: Enterprise Service Bus and JBI

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

Page 9: Enterprise Service Bus and JBI

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

Page 10: Enterprise Service Bus and JBI

ESB Features

Page 11: Enterprise Service Bus and JBI

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

Page 12: Enterprise Service Bus and JBI

12

ESB Differences

Page 13: Enterprise Service Bus and JBI

Heterogeneous ESBs

Page 14: Enterprise Service Bus and JBI

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

Page 15: Enterprise Service Bus and JBI

Point-to-Point Connection

Page 16: Enterprise Service Bus and JBI

Mediating Connection

Page 17: Enterprise Service Bus and JBI

Interceptor (based on Point-to-Point)

Page 18: Enterprise Service Bus and JBI

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

Page 19: Enterprise Service Bus and JBI

Protocol-Driven ESB

Page 20: Enterprise Service Bus and JBI

API-Driven ESB

Page 21: Enterprise Service Bus and JBI

Commercial ESBs

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

Page 22: Enterprise Service Bus and JBI

Opensource ESB

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

Page 23: Enterprise Service Bus and JBI

23

What is JBI?

Page 24: Enterprise Service Bus and 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.

Page 25: Enterprise Service Bus and JBI

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

Page 26: Enterprise Service Bus and JBI

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

Page 27: Enterprise Service Bus and JBI

JBI Architecture

Page 28: Enterprise Service Bus and JBI

JBI

Page 29: Enterprise Service Bus and 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

Page 30: Enterprise Service Bus and JBI

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

Page 31: Enterprise Service Bus and JBI

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

Page 32: Enterprise Service Bus and JBI

JBI and Composite Application

Page 33: Enterprise Service Bus and JBI

Overview of Message Routing

Page 34: Enterprise Service Bus and JBI

JBI Runtime

Page 35: Enterprise Service Bus and JBI

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

Page 36: Enterprise Service Bus and JBI

36

OpenESB & GlassFish

Page 37: Enterprise Service Bus and JBI

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

Page 38: Enterprise Service Bus and JBI

38

Open ESB Architecture

Page 39: Enterprise Service Bus and JBI

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

Page 40: Enterprise Service Bus and JBI

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

Page 41: Enterprise Service Bus and JBI

JBI in Admin Console

Page 42: Enterprise Service Bus and JBI

OpenESB Web Site

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

Page 43: Enterprise Service Bus and JBI

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

Page 44: Enterprise Service Bus and JBI
Page 45: Enterprise Service Bus and JBI

45

Usage Scenario

Page 46: Enterprise Service Bus and JBI

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

Page 47: Enterprise Service Bus and JBI

NMR

BPEL XSLTJavaEE

WS-I BP JMS File

JBI-basedInfrastructure

Page 48: Enterprise Service Bus and JBI

NMR

LoanRequestProcess

TransformReport

LoanProcessor

EJB

LoanRS WS ReportMail ReportStore

BPEL XSLTJavaEE

FileJMSWS-I BP

JBI-basedInfrastructure

Page 49: Enterprise Service Bus and JBI

NMR

LoanRequestProcess

TransformReport

LoanProcessor

EJB

LoanRS WS ReportMail ReportStore

BPEL XSLTJavaEE

FileJMSWS-I BP

Page 50: Enterprise Service Bus and JBI

NMR

LoanRequestService

TransformReport

LoanProcessor

EJB

LoanRS WS ReportMail ReportStore

BPEL XSLT JavaEE

FileJMSWS-I BP

ArchitectureRefactoring

Page 51: Enterprise Service Bus and JBI

NMR

LoanRequestService

TransformReport

LoanProcessor

LoanRS WS ReportMail

BPEL XSLT RulesEngine

ReportStoreFileJMSWS-I BP

LoanRS QJMS

ReportStore

JavaEE

Page 52: Enterprise Service Bus and JBI

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

Page 53: Enterprise Service Bus and JBI

53

Thank you

[email protected]/thanachart

www.facebook.com/thanachartwww.thaijavadev.com