Title: Gartner Day
1(No Transcript)
2BPEL Building Standards-Based Business Processes
with Web Services
Session id 40024
3Web Services Meet Business Processes
Web Service 1
Web Service 4
Web Service 2
Web Service 5
Web Service 3
Web Service n
4Example Problem Space
Credit Service
Consolidate Results
PO Service
Client
Inventory Service
5Business Process Challenges
- Coordinate asynchronous communication between
services - Correlate message exchanges between parties
- Implement parallel processing of activities
- . . .
- Manipulate/transform data between partner
interactions - Support for long running business transactions
and activities - Provide consistent exception handling
- . . .
6Recent History of Business Process Standards
BPML (Intallio et al)
BPSS (ebXML)
WS-Choreography (W3C)
WSCI (Sun et al)
2000/05
2001/03
2001/05
2001/06
2002/03
2002/06
2003/01
2003/04
2002/08
XLang (Microsoft)
WSFL (IBM)
BPEL4WS 1.0 (IBM, Microsoft)
BPEL4WS 1.1(OASIS)
WSCL (HP)
7Orchestration vs Choreography
- Orchestration
- An executable business process describing a flow
from the perspective and under control of a
single endpoint (commonly Workflow) - Choreography
- The observable public exchange of messages, rules
of interaction and agreements between two or more
business process endpoints
8Sample Business Process Purchase Order
Sample Purchase Order
Purchase Order Request
Business A
Business B
Purchase Order Acknowledgement
Purchase Order Response
9From a Choreography Perspective
Public Process
Business A
Business B
PO Request
PO Acknowledgement
PO Response
Choreography The observable public exchange of
messages
10From an Orchestration Perspective
Private Process
Business A BPEL Workflow
Send PO
Transform
PO Request
From ERP
Receive PO Ack
PO Acknowledgement
To ERP
Receive PO Response
Transform
PO Response
Orchestration A private executable business
process
11Orchestration and Choreography Together
Generate BPEL Template
Generate BPEL Template
Business B BPEL Workflow
Business A BPEL Workflow
Receive PO
Transform
Send PO
Transform
PO Request
Send PO Ack
Receive PO Ack
PO Acknowledgement
Receive PO Response
Transform
Receive PO Response
Transform
PO Response
Two BPEL workflow templates reflecting a business
agreement
12Business Process Execution Language for Web
Services
- Version 1.0 released by IBM, Microsoft and BEA in
August 2002 - Accompanied by WS-Coordination, WS-Transaction
which remain unsubmitted to standards bodies - Version 1.1 submitted to OASIS April 2003
- XML language for describing business processes
based on Web services - Convergence of XLANG (Microsoft) and WSFL (IBM)
- Unprecendented industry consensus
- IBM, Microsoft, Oracle, Sun, BEA, SAP, Siebel
13Value Proposition
- Portable business processes
- Built on top of an interoperable infrastructure
of Web services - Industry wide language for business processes
- Common skill set and language for developers
- Choice of process engines
- Standards lead to competitive offerings
14Standards Building Blocks of BPEL
BusinessProcesses
Transactions
Quality ofService
Coordination
WS-Security
WS-Reliability
Context
Management
UDDI
Discovery
Description
WSDL
Description
SOAP
Message
XML
HTTP,IIOP, JMS, SMTP
Transport
15BPEL Depends on WSDL and WSDL Extensions
Service Implementation Definition
Service
Port
Service Interface Definition
Binding
Port types define Operations
Message
Type
16BPEL Scenario Structure
- ltprocessgt
- lt! Definition and roles of process
participants --gt ltpartnerLinksgt ...
lt/partnerLinksgt - lt!- Data/state used within the process --gt
- ltvariablesgt ... lt/variablesgt
- lt!- Properties that enable conversations --gt
- ltcorrelationSetsgt ... lt/correlationSetsgt
- lt!- Exception handling --gt
- ltfaultHandlersgt ... lt/faultHandlersgt lt!-
Error recovery undoing actions --gt - ltcompensationHandlersgt ... lt/compensationHandle
rsgt - lt!- Concurrent events with process itself --gt
- lteventHandlersgt ... lt/eventHandlersgt
- lt!- Business process flow --gt
- (activities)
- lt/processgt
17BPEL Activities
- Primitive Activities
- ltinvokegt
- ltreceivegt
- ltassigngt
- ltreplygt
- ltthrowgt
- ltterminategt
- ltwaitgt
- Structured Activities
- ltsequencegt
- ltswitchgt
- ltpickgt
- ltflowgt
- ltlinkgt
- ltwhilegt
- ltscopegt
18Partners
- Declare the Web services and roles used by the
process - Tied to WSDL of the process itself and the
participating Web services by service link types
Partner 1(the process)
Partner 2
Partner 3
InventoryService
CreditService
PurchaseService
19Partners in BPEL
BPEL
ltpartnerLinksgt ltpartnerLink namecustomer"
serviceLinkTypelnspurchasePLT
myRolepurchaseService/gt ltpartnerLink
nameinventoryChecker serviceLinkTypelnsinven
toryPLT myRoleinventoryRequestor
partnerRoleinventoryService/gt ltpartnerLink
namecreditChecker serviceLinkTypelnscreditPL
T myRolecreditRequestor
partnerRolecreditService/gt lt/partnerLinksgt
Purchase Process WSDL
Purchase Process PortType
ltpltpartnerLinkType namepurchasePLTgt
ltpltrole namepurchaseServicegt ltpltportType
nametnspurchasePT/gt lt/pltrolegt lt/pltpartner
LinkTypegt
ltportType namepurchasePTgt ltoperation
name"sendPurchase"gt lt/operationgt lt/portTypegt
20Variables
- Messages sent and received from partners
- Persisted for long running interactions
- Defined in WSDL types and messages
Process
CustomerService
ltvariablegt
ltactivitygt
ltactivitygt
CustomerService
ltvariablegt
Persist/Retrieve
Persist/Retrieve
Persist/Retrieve
Persist
21Variables in BPEL
BPEL
ltvariablesgt ltvariable namePO
messageTypelnsPOMessage/gt ltvariable
nameInvoice messageTypelnsInvMessage/gt
ltvariable namePOFault messageTypelnsorderFau
ltType/gt lt/variablesgt
Purchase Process WSDL
ltmessage namePOMessagegt ltpart
namecustomerInfo typesnscustomerInfo/gt
ltpart namepurchaseOrder typesnspurchaseOrder
/gt lt/messagegt ltmessage name"InvMessage"gt
ltpart nameIVC typesnsInvoice/gt lt/messagegt lt
message nameorderFaultTypegt ltpart
nameproblemInfo typexsdstring/gt lt/messagegt
22How is Data Manipulation Done?
- Using ltassigngt and ltcopygt, data can be copied and
manipulated between variables - ltcopygt supports XPath queries to sub-select data
ltassigngt ltcopygt ltfrom variable"PO"
part"customerInfo"/gt ltto variablecreditReques
t part"customerInfo"/gt lt/copygt lt/assigngt
23Simple Activities
- Receive
- Wait for a partner inbound message
- Can be the instantiator of the business process
- Reply
- Synchronous response to a receive activity
- Response to the inbound receive from a partner
- Invoke
- Issue a request synchronously or asynchronously
- Pick
- Specify an inbound set of messages
- Can be the instantiator of the business process
- Activity completes when one of the messages
arrives
24Simple Activities Combined with Structured
Activities
ltsequencegt
Receive ltPOgt
ltflowgt
Invoke ltInventoryServicegt
Invoke ltCreditServicegt
lt/sequencegt
Reply ltInvoicegt
25Sample Activities in BPEL
ltsequencegt ltreceive partnerLinkcustomer
portTypelnspurchaseOrderPT"
operationsendPurchaseOrder variablePO
createInstance"yes" /gt ltflowgt ltinvoke
partnerLinkinventoryChecker portTypelnsinven
toryPT operation"checkINV"
inputVariable"inventoryRequest"
outputVariable"inventoryResponse" /gt ltinvoke
partnerLink"creditChecker" portTypelnscreditPT
" operation"checkCRED"
inputVariable"creditRequest"
outputVariable"creditResponse" /gt lt/flowgt ...
ltreply partnerLinkcustomer portTypelnspurcha
seOrderPT operationsendPurchaseOrder
variableinvoice"/gt lt/sequencegt
26Links Control Flow
ltflowgt ltlinksgt ltlink name"XtoY"/gt ltlink
name"CtoD"/gt lt/linksgt ltsequence name"X"gt
ltsource linkName"XtoY"/gt ltinvoke name"A"
.../gt ltinvoke name"B" .../gt lt/sequencegt
ltsequence name"Y"gt lttarget linkName"XtoY"/gt
ltreceive name"C"/gt ltsource
linkName"CtoD"/gt lt/receivegt ltinvoke
name"E" .../gt lt/sequencegt ltinvoke
partnerLink"D"gt lttarget linkName"CtoD"/gt
lt/invokegt lt/flowgt
ltflowgt
ltXgt
ltlink XtoYgt
ltYgt
ltlink CtoDgt
lt/flowgt
27Correlation
POCorrelationltPO_CustId 10gtltPO_OrdId
100gt
initiateyes
initiateyes
Customer
Seller
- SendPurchase
- ProcessPurchaseResponse
- AsynchPurchase
- AsynchPurchaseResponse
POResponseCorrelations ltPO_CustId
10gtltPO_OrdId 100gt ltInv_VendId
20gtltInv_InvId 200gt
initiateno patternout
initiateno
initiateyes patternout
initiateyes
28Correlations in BPEL
ltcorrelationSetsgt ltcorrelationSet name"POCorr"
properties"corcustId corordId"/gt
ltcorrelationSet name"InvoiceCorr"
properties"corvendId corinvId"/gt lt/correlationS
etsgt ... ltreceive partnerLinkCustomer
portType"SPPurchaseOrderPT"
operation"AsynchPurchase" variable"PO"gt
ltcorrelationsgt ltcorrelation set"POCorr"
initiate"yes"gt lt/correlationsgt lt/receivegt
... ltinvoke partnerLinkCustomer
portType"SPCustomerPT" operationProcessPurch
aseResponse" inputVariable"POResponse"gt
ltcorrelationsgt ltcorrelation set"POCorr"
initiate"no" pattern"out"gt ltcorrelation
set"InvoiceCorr" initiate"yes" pattern"out"gt
lt/correlationsgt lt/invokegt ...
29Scopes in BPEL
ltscopevariableAccessSerializable"yesno ...gt
ltvariablesgtlt/variablesgt ltcorrelationSetsgt?
... lt/correlationSetsgt ltfaultHandlersgtlt/faultHa
ndlersgt ltcompensationHandlergt? ...
lt/compensationHandlergt lteventHandlersgtlt/eventHa
ndlersgt (activities) lt/scopegt
- Provide a shared context for subset of activities
- Can contain
- fault handlers
- event handlers,
- compensation handler variables
- correlation sets
- Can serialize concurrentaccess to variables
30Long Running Transactions and Compensation
CreditService
ltscopegt
- CheckCredit
- ChargeHoldFee
- CancelHoldFee
InventoryService
- ReserveInventory
- CancelReserveInv
lt/scopegt
31Compensation Handlers in BPEL
ltscopegt ltcompensationHandlergt ltinvoke
partnerLink"Seller" portType"SPPurchasing"
operation"CancelPurchase"
inputVariable"getResponse"
outputVariable"getConfirmation"gt
ltcorrelationsgt ltcorrelation
set"PurchaseOrder" pattern"out"/gt
lt/correlationsgt lt/invokegt lt/compensationHandler
gt ltinvoke partnerLink"Seller"
portType"SPPurchasing"
operation"SyncPurchase"
inputVariable"sendPO"
outputVariable"getResponse"gt ltcorrelationsgt
ltcorrelation set"PurchaseOrder" initiateyes
pattern"out"/gt lt/correlationsgt
lt/invokegt lt/scopegt
32Exception Handling in BPEL
- ltfaultHandlersgt catch exception
- Based on WSDL port defining fault
- ltfaultHandlersgt can perform activities upon
invocation
- ltfaultHandlersgt ltcatch faultName"lnscannotCompl
eteOrder" - faultVariable"POFault"gt
- ltreply partnerLink"customer"
- portType"lnspurchaseOrderPT"
- operation"sendPurchaseOrder"
- variable"POFault"
- faultName"cannotCompleteOrder"/gt
- lt/catchgt
- lt/faultHandlersgt
33Just Show Me How to Do it!
. . .
34Tooling Requirements
- IDE build your Web services
- WSDL authoring model your interfaces
- Schema authoring model your messages
- Process modeling model your orchestration
- Packaging and deployment
- Debugging
- Monitoring
- Analyzing
35What Happened to Java?
- JSR 207 - Process Definition Language for Java
- Make business processes natural for Java
programmers
Servlet
EJB
Application Server
Based on JSR 207 Session at JavaOne 2003
36What Happened to J2EE?
- JSR 208 Java Business Integration
- Make business processes a first class citizen in
J2EE containers
JSR 208Machine SPI
Routing Engine
Transform Engine
BPEL Engine
. . .
Normalized Message Bus
Binding Framework
JSR 208Binding SPI
. . .
Based on JSR 208 Session at JavaOne 2003
37Oracles Strategy
- Oracle Application Server Containers for J2EE 10g
- BPEL runtime
- Oracle JDeveloper 10g
- BPEL design time
- Oracle Application Server ProcessConnect 10g
- Web service, B2B and EAI integration
38Remember BPEL Does Not Solve World Hunger
- No data transformation
- No data translation (EDI, binary formats )
- No human workflow
- No trading partner agreements
- Silent on existing business protocols (ebXML,
RosettaNet ) - Silent on non Web service interactions (e.g. java
to java) - . . .
39But Remember People Are Trying to Solve World
Hunger
- W3C WS-Choreography
- Spec WS-Transaction
- Spec WS-Coordination
- Spec WS-Composite Application Framework
- OASIS WS-Reliability
- Spec ReliableMessaging
- Spec WS-Addressing
- OASIS WS-Security
40Parting Thoughts
- Business process portability?
- Java/J2EE is portable across application servers
- BPEL is portable independent of Java
- Programming language in XML?
- Vendors, big and small, are busy building design
times and modelers - Is BPEL in 2003/2004 J2EE in 1998?
- Much missing but compelling foundation
41(No Transcript)