enterprise service bus and jbi

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

Upload: thanachart-numnonda

Post on 04-Nov-2014

28 views

Category:

Business


2 download

DESCRIPTION

This presentation describes ESB, JBI and OpenESB

TRANSCRIPT

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