SOA using OpenESB, BPEL, and NetBeans

83
1 SOA using SOA using OpenESB, BPEL, OpenESB, BPEL, and NetBeans and NetBeans Sang Shin Sang Shin Java Technology Evangelist Java Technology Evangelist Sun Microsystems, Inc. Sun Microsystems, Inc. 1

description

 

Transcript of SOA using OpenESB, BPEL, and NetBeans

Page 1: SOA using OpenESB, BPEL, and NetBeans

1

SOA using SOA using OpenESB, BPEL, OpenESB, BPEL, and NetBeansand NetBeans●Sang ShinSang Shin–Java Technology EvangelistJava Technology Evangelist●Sun Microsystems, Inc.Sun Microsystems, Inc.

1

Page 2: SOA using OpenESB, BPEL, and NetBeans

2

Three Talks I Did on SOA Here• NetBeans Day: Tools for Simplifying SOA

> Focus is to show how to use NetBeans for building a simple Composite application

• GlassFish Day: Open ESB and GlassFish> Focus is to show more advanced features such as

Intelligent Event Processing module for building a composite application

• Sun Tech Day: SOA using Open ESB, BPEL, and NetBeans> Focus is to talk about how WSDL, BPEL, Open ESB,

Java EE work together

Page 3: SOA using OpenESB, BPEL, and NetBeans

3

Agenda• Composite Applications• BPEL• Services • JBI• Java EE Service Engine• Open ESB• Open ESB runtime, tools, and sample apps• Demo

Page 4: SOA using OpenESB, BPEL, and NetBeans

Composite ApplicationsComposite Applications

Page 5: SOA using OpenESB, BPEL, and NetBeans

5

Traditional Application Development

• Point technologies, products, and APIs> For example: EJB, Spring, Hibernate, JSF, Servlets, Struts,

etc.• Lots of glue written by developers

> Requires a great deal of expertise & time> Inflexible

Page 6: SOA using OpenESB, BPEL, and NetBeans

6

Composite Applications• A way to compose applications from reusable parts• Composite applications employ SOA principles

> Features exposed as Web services> Standards-based interaction between services> Are themselves composable

Page 7: SOA using OpenESB, BPEL, and NetBeans

WSDL TutorialWSDL Tutorial(Optional Presentation)(Optional Presentation)

Page 8: SOA using OpenESB, BPEL, and NetBeans

8

Why WSDL?

• Enables automation of communication details between communicating partners– Machines can read WSDL– Machines can invoke a service defined in WSDL

• Discoverable through registry • Arbitration– 3rd party can verify if communication conforms to

WSDL

Page 9: SOA using OpenESB, BPEL, and NetBeans

9

WSDL Document Example

● Simple service providing stock quotes● A single operation called

GetLastTradePrice● Deployed using SOAP 1.1 over HTTP● Request takes a ticker symbol of type

string● Response returns price as a float

Page 10: SOA using OpenESB, BPEL, and NetBeans

10

● Types● Message● Operation● Port Type ● Binding● Port● Service

WSDL Elements

Page 11: SOA using OpenESB, BPEL, and NetBeans

11

WSDL Elements ● Types

– Data type definitions – Used to describe exchanged messages– Uses W3C XML Schema as canonical type

system

Page 12: SOA using OpenESB, BPEL, and NetBeans

12

WSDL Example: Types<definitions name="StockQuote" targetNamespace="http://example.com/stockquote.wsdl" xmlns:tns="http://example.com/stockquote.wsdl" xmlns:xsd1="http://example.com/stockquote.xsd" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns="http://schemas.xmlsoap.org/wsdl/”> <types> <schema targetNamespace="http://example.com/stockquote.xsd" xmlns="http://www.w3.org/2000/10/XMLSchema"> <element name="TradePriceRequest"> <complexType> <all> <element name=”tickerSymbol" type="string"/> </all> </complexType> </element> <element name="TradePrice"> <complexType> <all> <element name="price" type="float"/> </all> </complexType> </element> </schema> </types>

Page 13: SOA using OpenESB, BPEL, and NetBeans

13

WSDL Elements● Messages

– Abstract, typed definitions of data being exchanged

● Operations – Abstract description of an action– Refers to an input and/or output messages

● Port type– Collection of operations– Abstract definition of a service

Page 14: SOA using OpenESB, BPEL, and NetBeans

14

Example: Messages, Operation, Port type<message name="GetLastTradePriceInput"> <part name="body" element="xsd1:TradePriceRequest"/></message>

<message name="GetLastTradePriceOutput"> <part name="body" element="xsd1:TradePrice"/></message>

<portType name="StockQuotePortType"> <operation name="GetLastTradePrice"> <input message="tns:GetLastTradePriceInput"/> <output message="tns:GetLastTradePriceOutput"/> </operation> <!-- More operations --></portType>

Page 15: SOA using OpenESB, BPEL, and NetBeans

15

WSDL Elements● Binding

– Concrete protocol and data format (encoding) for a particular Port type

● Protocol examples: SOAP 1.1 over HTTP or SOAP 1.1 over SMTP

● Encoding examples: SOAP encoding, RDF encoding● Port

– Defines a single communication endpoint– Endpoint address for binding– URL for HTTP, email address for SMTP

● Service– Aggregate set of related ports

Page 16: SOA using OpenESB, BPEL, and NetBeans

16

Example: Binding, Port, Service<binding name="StockQuoteSoapBinding" type="tns:StockQuotePortType"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> <operation name="GetLastTradePrice"> <soap:operation soapAction="http://example.com/GetLastTradePrice"/> <input> <soap:body use="literal" /> </input> <output> <soap:body use="literal" /> </output> </operation></binding>

<service name="StockQuoteService"> <documentation>My first service</documentation> <port name="StockQuotePort" binding="tns:StockQuoteSoapBinding"> <soap:address location="http://example.com/stockquote"/> </port></service>

Page 17: SOA using OpenESB, BPEL, and NetBeans

BPEL BPEL

Page 18: SOA using OpenESB, BPEL, and NetBeans

18

Need for Business Process

• Developing the web services and exposing the functionality (via WSDL) is not sufficient

• Example Scenario> Concert ticket purchase Web service has 3 operations,

which need to be performed in the following order>Getting a price quote>Purchase a ticket>Confirmation and cancellation

• We also need a way to orchestrate these functionality in the right order

Page 19: SOA using OpenESB, BPEL, and NetBeans

19

BPEL Works With WSDL

• Web services are described in WSDL• We need a way to orchestrate these operations with

multiple web services in the right order to perform a Business process> Sequencing, conditional behavior etc.

• BPEL provides standard-based orchestration of these operations

Page 20: SOA using OpenESB, BPEL, and NetBeans

20

BPEL: Relationship to Partners

Orchestrating Process(BPEL)

Partner Service

Partner Service

Partner Service

Partner Service

WSDL

Page 21: SOA using OpenESB, BPEL, and NetBeans

21

Business Process Needs To...

• Co-ordinate asynchronous communication between services

• Correlate message exchanges between parties

• Implement parallel processing of activities

• Implement compensation logic (Undo operations)

• Manipulate/transform data between partner interactions

• Support for long running business transactions and activities

• Handle exception handling

• Need for universal data model for message exchange

Page 22: SOA using OpenESB, BPEL, and NetBeans

22

What is BPEL?• XML-based language used to specify business processes

based on Web Services• BPEL processes describe

> Long running, stateful, transactional, conversations between two or more partner web services

• BPEL is key to implementing SOA > Conversational> Mostly Async> XML Document-based> Orchestrated

Page 23: SOA using OpenESB, BPEL, and NetBeans

23

BPEL Document Structure<process> <!– Definition and roles of process participants -->

<partnerLinks> ... </partnerLinks> <!- Data/state used within the process --> <variables> ... </variables> <!- Properties that enable conversations --> <correlationSets> ... </correlationSets> <!- Exception handling --> <faultHandlers> ... </faultHandlers>

<!- Error recovery – undoing actions --> <compensationHandlers> ... </compensationHandlers> <!- Concurrent events with process itself --> <eventHandlers> ... </eventHandlers> <!- Business process flow --> (activities)*</process>

Page 24: SOA using OpenESB, BPEL, and NetBeans

24

BPEL Activities

Basic Activities• <invoke>

• <receive>

• <reply>

• <assign>

• <throw>

• <wait>

• <empty>

• <exit>

Structured Activities• <if>

• <while>

• <repeatUntil>

• <foreach>

• <pick>

• <flow>

• <sequence>

• <scope>

Page 25: SOA using OpenESB, BPEL, and NetBeans

25

BPEL: Basic Activities• <invoke>

> To invoke a one-way or request/response operation on a portType offered by a partner

• <receive>> To do a blocking wait for a matching message to arrive> Can be the instantiator of the business process

• <reply>> To send a message in reply to a message that was received

through a <receive>> The combination of a <receive> and a <reply> forms a

request-response operation on the WSDL portType for the process

Page 26: SOA using OpenESB, BPEL, and NetBeans

26

BPEL: Structured Activities

• <sequence>> Perform activities in sequential order

• <flow>> Perform activities in parallel

• <if>> Conditional choice of activities

• <scope>> Enclose multiple activities in a single scope

Page 27: SOA using OpenESB, BPEL, and NetBeans

27

Example Business Process

Invoke <InventoryService> Invoke <CreditService>

Reply <Invoice>

Receive <PO> <sequence>

<flow>

</sequence>

Page 28: SOA using OpenESB, BPEL, and NetBeans

28

Sample Activities in BPEL<sequence> <receive partnerLink=“customer” portType=“lns:purchaseOrderPT" operation=“sendPurchaseOrder” variable=“PO” createInstance="yes" /> <flow> <invoke partnerLink=“inventoryChecker” portType=“lns:inventoryPT” operation="checkINV" inputVariable="inventoryRequest" outputVariable="inventoryResponse" />

<invoke partnerLink="creditChecker" portType=“lns:creditPT" operation="checkCRED" inputVariable="creditRequest" outputVariable="creditResponse" /> </flow> ... <reply partnerLink=“customer” portType=“lns:purchaseOrderPT” operation=“sendPurchaseOrder” variable=“invoice"/></sequence>

Page 29: SOA using OpenESB, BPEL, and NetBeans

29

BPEL: Relationship to Partners

Orchestrating Process(BPEL)

InventoryChecker Service

Credit checker Service

Another Partner Service

Customer Service

WSDL

Page 30: SOA using OpenESB, BPEL, and NetBeans

30

Why Do You Care on BPEL?

• In SOA-enabled environment, you are more likely to build an application by orchestration various services via BPEL

• You will probably use BPEL design tool to create a BPEL document

• The BPEL document is then executed by BPEL engine> Highly likely in JBI enabled platform

Page 31: SOA using OpenESB, BPEL, and NetBeans

Demo: Demo:

Building and Running Building and Running Travel ReservationTravel ReservationComposite ApplicationComposite Applicationthrough BPELthrough BPEL

Page 32: SOA using OpenESB, BPEL, and NetBeans

32

Demo Scenario• You can try this demo yourself

> http://www.netbeans.org/kb/60/ep-understand-trs.html• Represent Travel Reservation business process as

a BPEL document• Represent the service interfaces with WSDL

documents• Build and deploy the application over Sun Java

System App Server with JBI• Test the application with test documents• Perform source-code debugging on BPEL

Page 33: SOA using OpenESB, BPEL, and NetBeans

Services and SOAServices and SOA

Page 34: SOA using OpenESB, BPEL, and NetBeans

34

What Are Services?• Black-box components with well-defined interfaces

> Performs some arbitrary function> Can be implemented in myriad ways

• Accessed using XML message exchanges> Using well-known message exchange patterns (MEPs)

• Metadata in the form of WSDL describes...> Abstract interfaces > Concrete endpoints

Page 35: SOA using OpenESB, BPEL, and NetBeans

35

What Can Services Do?• Perform business logic• Transform data• Route messages• Query databases• Apply business policy• Handle business exceptions• Prepare information for use by a user interface• Orchestrate conversations between multiple services• …

Page 36: SOA using OpenESB, BPEL, and NetBeans

36

How Are Services Implemented?• Enterprise JavaBeans™ (EJB™) technology• BPEL• XSLT • SQL• Business rules• Mainframe transaction• EDI transform• Humans (yes, really!)• …

Page 37: SOA using OpenESB, BPEL, and NetBeans

37

Example: Purchase Service

BidRequest

BidRequest

Bid

Supplier

Lowest

Bid

Accept/

Reject

ShipNotice

Buyer PurchaseService

Accept/

Reject

ShipNotice

Page 38: SOA using OpenESB, BPEL, and NetBeans

38

Purchase Service Functions

BuyerEndpoi

nt

SupplierEndpoint

BuyerConversation

SupplierConversation

Transaction Fees

SupplierSelection

Buyer Credit

Supplier Routing

ProductConversion

Page 39: SOA using OpenESB, BPEL, and NetBeans

39

Purchase Service Functions

BuyerEndpoi

nt

Supplier

Endpoint

BuyerConversatio

n

SupplierConversati

on

Transaction Fees

Supplier

Selection Buyer

Credit

Supplier Routing

ProductConversion

WSDL/Soap

XQuery

EJB

BPELBPEL

WSDL/Soap

Rule

Routing TableXSLT

Page 40: SOA using OpenESB, BPEL, and NetBeans

40

Service Oriented Architecture (SOA)• An architectural principle for structuring systems

into coarse-grained services• Technology-neutral best practice• Emphasizes the loose coupling of services• New services are created from existing ones

in a synergistic fashion• Strong service definitions are critical• Services can be re-composed when business

requirements change

Page 41: SOA using OpenESB, BPEL, and NetBeans

Service ImplementationService Implementationover JBI over JBI

Page 42: SOA using OpenESB, BPEL, and NetBeans

42

What Is JBI?• Standard “meta-container”

for integrated services• Provides for plug-in:

> Service Engines (SE): business logic> Binding Components:

communications protocols• Standard deployment model• Loose coupling via WSDL

message exchanges between WSDL described Services

Page 43: SOA using OpenESB, BPEL, and NetBeans

43

JBICore

ServicesNormalized Message Router

J2EE Platform

Sys

tem

Man

agem

ent

Orchestration(BPEL)

Transformation(XSLT) J2EE Platform

AS2 JMSWS-I BasicSOAP

Service Provider Self-Description

WSDL WSDL WSDL

WSDLWSDLWSDL

Components register theservices they provide

Page 44: SOA using OpenESB, BPEL, and NetBeans

44

Java Business Integration (JSR 208)

XQuery

JavaEEProcessRules

AS2 Soap Route MOM

WSDL/Soap

WSDL/Soap

BPELBPEL

EJB

XQueryRule

RoutingTable

XSLT

Deploy

Install

NMR

JBIComposite Service

Page 45: SOA using OpenESB, BPEL, and NetBeans

Open ESBOpen ESB

Page 46: SOA using OpenESB, BPEL, and NetBeans

46

What is Open ESB?

• Project Open ESB implements an Enterprise Service Bus (ESB) runtime using Java Business Integration 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 47: SOA using OpenESB, BPEL, and NetBeans

47

Open ESB Architecture

Page 48: SOA using OpenESB, BPEL, and NetBeans

48

IDE Web Server

BPELEditor

Java EESE JBI Bus

XSLTSE

HTTPBC

FTPBC

FTPBCMany MoreSEs…

FTPBCMany MoreBCs…

App

Ser

ver

XSLTEditor

CompositeApplication

Project

IEP Editor

CompositeApplicationManager

Runtime

BPELSE

Java EE

EJBs

Servlets

Java EESE JBI Bus

XSLTSE

HTTPBC

FTPBC

FTPBCMany MoreSEs…

FTPBCMany MoreBCs…

App

Ser

ver BPEL

SE

Java EE

EJBs

Servlets

Design-Time Management

3rd PartyService

Platforms

3rd PartyService

Platforms

Open Standard Based Service BusWS-Reliable MessagingWS-SecurityWS-FastInfoSet, …

Many MoreEditorsMany MoreEditors

IEPMonitor

BPELMonitor

XSLTMonitor

Many MoreEditorsMany MoreMonitors

Page 49: SOA using OpenESB, BPEL, and NetBeans

JBI and GlassFishJBI and GlassFish

Page 50: SOA using OpenESB, BPEL, and NetBeans

50

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• 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 51: SOA using OpenESB, BPEL, and NetBeans

51

JBI in Admin Console

Page 52: SOA using OpenESB, BPEL, and NetBeans

Usage ScenarioUsage Scenario

Page 53: SOA using OpenESB, BPEL, and NetBeans

53

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 54: SOA using OpenESB, BPEL, and NetBeans

54

NMR

BPEL XSLTJavaEE

WS-I BP JMS File

JBI-basedInfrastructure

Page 55: SOA using OpenESB, BPEL, and NetBeans

55

NMR

LoanRequestProcess

TransformReport

LoanProcessor

EJB

LoanRS WS ReportMail ReportStore

BPEL XSLTJavaEE

FileJMSWS-I BP

JBI-basedInfrastructure

Page 56: SOA using OpenESB, BPEL, and NetBeans

56

NMR

LoanRequestProcess

TransformReport

LoanProcessor

EJB

LoanRS WS ReportMail ReportStore

BPEL XSLTJavaEE

FileJMSWS-I BP

Page 57: SOA using OpenESB, BPEL, and NetBeans

57

NMR

LoanRequestService

TransformReport

LoanProcessor

EJB

LoanRS WS ReportMail ReportStore

BPEL XSLT JavaEE

FileJMSWS-I BP

ArchitectureRefactoring

Page 58: SOA using OpenESB, BPEL, and NetBeans

58

NMR

LoanRequestService

TransformReport

LoanProcessor

LoanRS WS ReportMail

BPEL XSLT RulesEngine

FileJMSWS-I BPLoanRS Q

JMS

ReportStore

JavaEE

Page 59: SOA using OpenESB, BPEL, and NetBeans

Service Engines (SE) &Service Engines (SE) &Binding Components (BC)Binding Components (BC)

Page 60: SOA using OpenESB, BPEL, and NetBeans

60

JBI Components• Service Engines

> BPEL SE> XSLT SE> JavaEE SE> IEP SE> ETL SE> SQL SE> Workflow SE

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

• Other> Clustering> CASA> JBI Mock> WSIT Tech

• In Progress> CAM> Aspect SE> Encoding SE> Rules SE> Scripting SE

Page 61: SOA using OpenESB, BPEL, and NetBeans

61

open-esb.dev.java.net/Components.html

Page 62: SOA using OpenESB, BPEL, and NetBeans

62

Open ESB Package Ships Many SE's/BC's

Page 63: SOA using OpenESB, BPEL, and NetBeans

NetBeans SupportNetBeans Supportof Open ESBof Open ESB

Page 64: SOA using OpenESB, BPEL, and NetBeans

64

Types of SOA “NetBeans” Projects• When creating a composite application, you typically

use the following types of SOA “NetBeans” projects:> BPEL Module project (NetBeans 6.0)> XSLT Module project (NetBeans 6.0)> SQL Module project (NetBeans 6.0)> Composite Application project (NetBeans 6.0)> IEP Module project (OpenESB package)> Worklist Module project (OpenESB package)> ETL (Extract, Transform, and Load) (OpenESB package)> EDM (Enterprise Data Mashup) (OpenESB package)> And more

Page 65: SOA using OpenESB, BPEL, and NetBeans

65

Types of SOA “NetBeans” Projects

Page 66: SOA using OpenESB, BPEL, and NetBeans

66

BPEL Module Project• BPEL Module project is a group of source files

which includes > XML Schema (*.xsd) files> WSDL files> BPEL files

• Within a BPEL Module project, you can author a business process compliant with the WS-BPEL 2.0 language specification.

• Will be added to a Composite application as a JBI module

Page 67: SOA using OpenESB, BPEL, and NetBeans

67

Composite Application Project• Composite Application project is a project whose

primary purpose is to assemble a deployment unit for the Java Business Integration (JBI) server > BPEL Module projects must be added to a Composite

Application project in order to be deployed to the BPEL runtime.

• The Composite Application Project can also be used to create and execute test cases that can then be run, in JUnit fashion, against the deployed BPEL processes.

Page 68: SOA using OpenESB, BPEL, and NetBeans

68

Composite Application Project• With a Composite Application project, you can:

> Assemble an application that uses multiple project types (BPEL, XSLT, IEP, SQL, etc.)

> Configure external/edge access protocols (SOAP, JMS, SMTP, and others)

> Build JBI deployment packages> Deploy the application image to the target JBI server> Monitor the status of JBI server components and

applications

Page 69: SOA using OpenESB, BPEL, and NetBeans

69

Lots of Step by Step Tutorials• http://www.netbeans.org/kb/60/ep-index.html

Page 70: SOA using OpenESB, BPEL, and NetBeans

Java EE SEJava EE SE

Page 71: SOA using OpenESB, BPEL, and NetBeans

71

JavaEE SE• Ideal place to execute complex business logic• Bridge between JavaEE container and JBI container• Provides support for

> Transactions> Resource Pooling> Security

• Code re-use – Invoke your EJBs/web applications from OpenESB components (BPEL SE)

• Ability to expose your EJB/Web applications to multiple transports (using BCs) – just add bindings to your WSDL

Page 72: SOA using OpenESB, BPEL, and NetBeans

72

Scenario 1: Remote throughHTTP BC

HTTP

EE Container

app-a.ear

ejb-c.jar

ejb-b.jar

app-c.ear HTTP

RMI

JBI Container

NMR

BPEL SEBPEL process

EE SE

SAP BC

HTTP BC

HL7 BC

HTTP

HL7

RMI

WSDL

WSDL

WSDL

WSDL

BPEL processWSDL

ejb.jarWSDL

application.earWSDL

➔ Network layer➔ SOAP/HTTP➔ JAXWS➔ Unmarshal <xml>➔ Create DOM➔ JAXB➔ WS.helloWorld(na

me)

• BPEL➔ NMR➔ HTTP BC➔ Marshall DOM to <xml>➔ SOAP/HTTP➔ Network layer

Page 73: SOA using OpenESB, BPEL, and NetBeans

73

Scenario 2: Local through NMR• BPEL➔ NMR➔ HTTP BC➔ Marshall DOM to <xml>➔ SOAP/HTTP➔ Network layer➔ SOAP/HTTP➔ JAXWS➔ Unmarshal <xml>➔ Create DOM➔ JAXB➔ WS.helloWorld(name)

Likewise: EJB to BPEL

JBI Container

NMR

BPEL SEBPEL process

EE SE

SAP BC

HTTP BC

HL7 BC

HTTP

HL7

RMI

WSDL

WSDL

WSDL

WSDL

BPEL processWSDL

ejb.jarWSDL

application.earWSDL

Advantages:> Performance> Transaction propagation> Security context propagation

Page 74: SOA using OpenESB, BPEL, and NetBeans

74

Scenario: Portal + EE + BPEL

• Portlet gets name, invokes WAR which calls BPEL to orchestrate process

• BPEL activity requires complex business logic > executes faster in EJB right

JBI Container

NMR

BPEL SEHelloWorld.bpel

EE SE

SAP BC

HTTP BC

HL7 BC

HTTP

HL7

RMI

WSDL

WSDL

WSDL

WSDL

HelloWorld.war

nameparserjarWSDL

HTTP

Portal/ Portlet

Page 75: SOA using OpenESB, BPEL, and NetBeans

Java EE Service Engine:Java EE Service Engine:Functions as BridgeFunctions as Bridgebetween App Server between App Server and JBI Runtime Env.and JBI Runtime Env.

Page 76: SOA using OpenESB, BPEL, and NetBeans

76

Java EE S.E. As a Bridge

Page 77: SOA using OpenESB, BPEL, and NetBeans

77

Java EE S.E. as a Service Provider

Page 78: SOA using OpenESB, BPEL, and NetBeans

78

Java EE S.E. as a Service Consumer

Page 79: SOA using OpenESB, BPEL, and NetBeans

79

Java EE S.E. Use Case

Page 80: SOA using OpenESB, BPEL, and NetBeans

80

Java EE S.E. Use Cases

• BPEL Service Engine calling an Enterprise Java Bean web service

• Message Driven Bean or Servlet calling a BPEL Process• Enterprise Java Bean web service called through a JMS

transport using the JMS Binding Component.• Java EE components calling web services using the FTP

Binding Component• Java EE components making web service calls through

SMTP transport using the SMTP Binding Component

Page 81: SOA using OpenESB, BPEL, and NetBeans

SummarySummary

Page 82: SOA using OpenESB, BPEL, and NetBeans

82

Summary• SOA enables flexible and agile enterprise

application architecture• Services can be created and used using Java EE• BPEL is a service orchestration language

for creating composite applications• Services can be re-implemented using other

technologies as long as service interfaces are preserved without changing consumers

• Java Business Integration (JBI) is the enabling infrastructure

Page 83: SOA using OpenESB, BPEL, and NetBeans

83

SOA using SOA using OpenESB, BPEL, OpenESB, BPEL, and NetBeansand NetBeans●Sang ShinSang Shin–Java Technology EvangelistJava Technology Evangelist●Sun Microsystems, Inc.Sun Microsystems, Inc.

83