building standard-based business processes
TRANSCRIPT
![Page 1: Building Standard-Based Business Processes](https://reader031.vdocument.in/reader031/viewer/2022012420/61749e9e16b16170d3295923/html5/thumbnails/1.jpg)
Building Standard-BasedBusiness Processeswith Web Services
Josef Schiefer
Vienna, November 2004
![Page 2: Building Standard-Based Business Processes](https://reader031.vdocument.in/reader031/viewer/2022012420/61749e9e16b16170d3295923/html5/thumbnails/2.jpg)
2
Agenda
Block 1» Motivation/Introduction» Orchestration vs Choreography» BPEL4WS - Basic Constructs
› Partner Links› Main Flow Constructs› Message Correlation› Compensation Handlers› Fault Handlers› Event Handlers
» Q&A
Block 2» Details to all BPEL4WS Constructs» Demo with Oracle BPEL Process Manager» Conclusion + Future Trends» Business Process Monitoring
with Senactive InTime» Q&A
» “Diplomarbeitsthemen” in the area ofbusiness process management & monitoring
![Page 3: Building Standard-Based Business Processes](https://reader031.vdocument.in/reader031/viewer/2022012420/61749e9e16b16170d3295923/html5/thumbnails/3.jpg)
3
Please interrupt me if you have questions!!
![Page 4: Building Standard-Based Business Processes](https://reader031.vdocument.in/reader031/viewer/2022012420/61749e9e16b16170d3295923/html5/thumbnails/4.jpg)
4
Integration…
![Page 5: Building Standard-Based Business Processes](https://reader031.vdocument.in/reader031/viewer/2022012420/61749e9e16b16170d3295923/html5/thumbnails/5.jpg)
5
Coordination…
![Page 6: Building Standard-Based Business Processes](https://reader031.vdocument.in/reader031/viewer/2022012420/61749e9e16b16170d3295923/html5/thumbnails/6.jpg)
6
Motivation/IntroductionMotivation/Introduction
![Page 7: Building Standard-Based Business Processes](https://reader031.vdocument.in/reader031/viewer/2022012420/61749e9e16b16170d3295923/html5/thumbnails/7.jpg)
7
Web Services Meet Business Processes
WebService 1
WebService 2
WebService 3
WebService 4
WebService 5
WebService n
![Page 8: Building Standard-Based Business Processes](https://reader031.vdocument.in/reader031/viewer/2022012420/61749e9e16b16170d3295923/html5/thumbnails/8.jpg)
8
eXtendBank – The OLD Loan Application System
Customer eXtendBank
Loan Officer
1. Fill in LoanApplication at LoanDepartment
2. Loan Officer entersloan information(3270 emulator)
CICS
3. Requests FAXCredit Report
5. Makes a decisionon Loan Application
4. Makes decision asto whether this Loanapplication needsapproval.
6. Loan Officerreserves Funds
7.Sends email to AssessBusiness Risk –(Government Watch List)
8. Notifies customer
Business Analyst(Rules change frequently)
Developer
Loan Officer
Loan Officer Loan Officer Loan Officer Loan OfficerBank Manager
ApplicationServer
![Page 9: Building Standard-Based Business Processes](https://reader031.vdocument.in/reader031/viewer/2022012420/61749e9e16b16170d3295923/html5/thumbnails/9.jpg)
9
eXtendBank: The new QuickLoan Process
Pre-Approved?
YES
NO
ReserveFunds
LoanOfficer
Approval
AssessLoanRisk
Approved?Send
ConfirmationEmail
YES
NO
TooRisky?
YES
NO
SendRisk Rejection
EmailEnd
Service (CICS)
Service (Web)
Service (J2EE) Service (Web)
Service (JavaMail)
Service (JavaMail)
Service(Human Interaction)
CreateLoanApp
Start
CreditCheck Next
SendRejection
EmailEnd Create Loan
Account
Service (WBI Adapter)
![Page 10: Building Standard-Based Business Processes](https://reader031.vdocument.in/reader031/viewer/2022012420/61749e9e16b16170d3295923/html5/thumbnails/10.jpg)
10
Business 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» …
![Page 11: Building Standard-Based Business Processes](https://reader031.vdocument.in/reader031/viewer/2022012420/61749e9e16b16170d3295923/html5/thumbnails/11.jpg)
11
Recent History of Business Process Standards
2000/05
XLang(Microsoft)
2001/03
BPML(Intallio et al)
2001/05
WSFL(IBM)
2001/06
BPSS(ebXML)
2002/03
BPEL4WS 1.0(IBM, Microsoft)
BPEL4WS 1.1(OASIS)
2002/06 2003/01
WS-Choreography(W3C)
2003/04
WSCI(Sun et al)
WSCL(HP)
2002/08
![Page 12: Building Standard-Based Business Processes](https://reader031.vdocument.in/reader031/viewer/2022012420/61749e9e16b16170d3295923/html5/thumbnails/12.jpg)
12
Business Process Execution Language for Web Services (BPEL4WS)
Version 1.0 released by IBM, Microsoft and BEA in August 2002• Accompanied by WS-Coordination, WS-Transaction
Version 1.1 submitted to OASIS April 2003• BPEL4WS � WS-BPEL
XML language for describing business processes based on Web services• Convergence of XLANG (Microsoft) and WSFL (IBM)
Unprecedented industry consensus• IBM, Microsoft, Oracle, Sun, BEA, SAP, Siebel …
![Page 13: Building Standard-Based Business Processes](https://reader031.vdocument.in/reader031/viewer/2022012420/61749e9e16b16170d3295923/html5/thumbnails/13.jpg)
13
Interplay of BPEL4WS, Web Service, UDDI, WSDL, SOAP
![Page 14: Building Standard-Based Business Processes](https://reader031.vdocument.in/reader031/viewer/2022012420/61749e9e16b16170d3295923/html5/thumbnails/14.jpg)
14
Web Service Stack
BPEL4WSProcess/CollaborationModeling Definitions
Web ServicesChoreography Definitions
Current Web ServicesStack
WSCI, W3C Web ServicesChoreography
WSDL, SOAP, Messaging,Discovery, etc.
BPEL4WS is on Top of the Web Service Stack
![Page 15: Building Standard-Based Business Processes](https://reader031.vdocument.in/reader031/viewer/2022012420/61749e9e16b16170d3295923/html5/thumbnails/15.jpg)
15
Das BPEL4WS Prozessmodell basiert auf dem Service-Modell von WSDL 1.1
WSDL specifies a hierarchy for describing Web Services characteristics in an abstract form:
Operations eg: Purchase Order Status Query
Port Type(“Interface” in 2.0) eg: Purchase Order Interface
Messageseg: Submit Purchase Order
Number, Receive Status
Parts eg: Purchase Order Number, Status
![Page 16: Building Standard-Based Business Processes](https://reader031.vdocument.in/reader031/viewer/2022012420/61749e9e16b16170d3295923/html5/thumbnails/16.jpg)
16
Standards Building Blocks of BPEL
Description
HTTP,IIOP, JMS, SMTP Transport
XMLMessage
SOAP
WSDL
UDDI Discovery
Transactions
CoordinationWS-SecurityWS-Reliability Quality ofService
Choreography – WSCI
BusinessProcesses
Context
DescriptionMan
agem
ent
Orchestration – BPEL4WS
![Page 17: Building Standard-Based Business Processes](https://reader031.vdocument.in/reader031/viewer/2022012420/61749e9e16b16170d3295923/html5/thumbnails/17.jpg)
17
Value Proposition
Portable business processes» Built on top of an interoperable
infrastructure of Web Services
Industry wide language for businessprocesses
» Common skill set and language fordevelopers
Choice of process engines» Standards lead to competitive offerings
BPEL4WS will replace proprietary Workflow Modelswill become the preferred choice for process automation
![Page 18: Building Standard-Based Business Processes](https://reader031.vdocument.in/reader031/viewer/2022012420/61749e9e16b16170d3295923/html5/thumbnails/18.jpg)
18
Orchestration vsChoreography
Orchestration vsChoreography
![Page 19: Building Standard-Based Business Processes](https://reader031.vdocument.in/reader031/viewer/2022012420/61749e9e16b16170d3295923/html5/thumbnails/19.jpg)
19
Orchestration 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
![Page 20: Building Standard-Based Business Processes](https://reader031.vdocument.in/reader031/viewer/2022012420/61749e9e16b16170d3295923/html5/thumbnails/20.jpg)
20
Sample Business Process: Purchase Order
Sample Purchase Order
Purchase Order Request
Purchase Order Acknowledgement
Purchase Order Response
Business“A”
Business“B”
![Page 21: Building Standard-Based Business Processes](https://reader031.vdocument.in/reader031/viewer/2022012420/61749e9e16b16170d3295923/html5/thumbnails/21.jpg)
21
From a Choreography Perspective
PO RequestSendPO
Receive POAck
Receive POResponse
ReceivePO
SendPO Ack
Send POResponse
PO Acknowledgement
PO Response
Choreography – The observable public exchange of messages
Public Process
Business A Business B
![Page 22: Building Standard-Based Business Processes](https://reader031.vdocument.in/reader031/viewer/2022012420/61749e9e16b16170d3295923/html5/thumbnails/22.jpg)
22
From an Orchestration Perspective
SendPO
Receive POAck
Receive POResponse
Transform
Transform
From ERP
To ERP
PO Request
PO Acknowledgement
PO Response
Orchestration – A private executable business process
Private ProcessBusiness A BPEL Workflow
![Page 23: Building Standard-Based Business Processes](https://reader031.vdocument.in/reader031/viewer/2022012420/61749e9e16b16170d3295923/html5/thumbnails/23.jpg)
23
BPEL4WSBasic Constructs
BPEL4WSBasic Constructs
![Page 24: Building Standard-Based Business Processes](https://reader031.vdocument.in/reader031/viewer/2022012420/61749e9e16b16170d3295923/html5/thumbnails/24.jpg)
24
BPEL ProcessMeta Model
![Page 25: Building Standard-Based Business Processes](https://reader031.vdocument.in/reader031/viewer/2022012420/61749e9e16b16170d3295923/html5/thumbnails/25.jpg)
25
BPEL4WS Overall Structure
![Page 26: Building Standard-Based Business Processes](https://reader031.vdocument.in/reader031/viewer/2022012420/61749e9e16b16170d3295923/html5/thumbnails/26.jpg)
26
BPEL Scenario 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 27: Building Standard-Based Business Processes](https://reader031.vdocument.in/reader031/viewer/2022012420/61749e9e16b16170d3295923/html5/thumbnails/27.jpg)
27
BPEL ActivityMeta Model
Switch
![Page 28: Building Standard-Based Business Processes](https://reader031.vdocument.in/reader031/viewer/2022012420/61749e9e16b16170d3295923/html5/thumbnails/28.jpg)
28
Generate a fault from inside thebusiness process
Immediately terminate the behavior ofa business process instance
Wait for a given time period or until acertain time has passed
Insert a "no-op" instruction into abusiness process
BPEL4WS Basic Activities
Do a blocking wait for a matchingmessage to arrive
Send a message in reply to amessage that was received through aReceive
Invoke a one-way or request-response operation on a portTypeoffered by a partner
Update the values of variables orpartner links with new data
![Page 29: Building Standard-Based Business Processes](https://reader031.vdocument.in/reader031/viewer/2022012420/61749e9e16b16170d3295923/html5/thumbnails/29.jpg)
29
Block and wait for a suitable message toarrive or for a time-out alarm to go off
Specify one or more activities to beperformed concurrently
Define a nested activity with its ownassociated variables, fault handlers, andcompensation handler
BPEL4WS Structured Activities
Collection of activities to beperformed sequentially in lexicalorder
Select exactly one branch ofactivity from a set of choices
Indicate that an activity is to berepeated until a certain successcriteria has been met
![Page 30: Building Standard-Based Business Processes](https://reader031.vdocument.in/reader031/viewer/2022012420/61749e9e16b16170d3295923/html5/thumbnails/30.jpg)
30
BPEL4WS is capable of modeling complex business processes
The following is a BPEL4WS process for handling a purchase order:
“ProductionScheduling”
portType
“ShippingServices”portType
“InvoiceServices”portType“Purchase
Order”portType operation
operation
message
<portType name=“schedulingPT”<operation name=“requestProductionScheduling”>
<input message=“pos:POMessage”/></operation><operation name=“sendShippingSchedule”>
<input message=“pos:scheduleMessage”/></operation>
</portType>
“InitiateProduction
Scheduling”operation
“CompleteProduction
Scheduling”operation
![Page 31: Building Standard-Based Business Processes](https://reader031.vdocument.in/reader031/viewer/2022012420/61749e9e16b16170d3295923/html5/thumbnails/31.jpg)
31
Partner LinksPartner Links
![Page 32: Building Standard-Based Business Processes](https://reader031.vdocument.in/reader031/viewer/2022012420/61749e9e16b16170d3295923/html5/thumbnails/32.jpg)
32
Partner, Partner Links, Partner Link Types, Endpoint References
»Model peer-to-peer conversational relationships with partners»Define interaction channels between partners»Partner Link Types: Characterize relationships between two services
by defining the „roles“ played by each of the services and specifying theportType provided by each service
»Partner Links: Are used to represent interactions between a serviceand each of the parties with which it interacts
»Endpoint Reference: Selection of service providers and invocation oftheir operations. Can be used in Partner Links.
»Partners: A subset of the partner links of the process
![Page 33: Building Standard-Based Business Processes](https://reader031.vdocument.in/reader031/viewer/2022012420/61749e9e16b16170d3295923/html5/thumbnails/33.jpg)
33
Partner Link Types, Partner Links
Partner Link Types
<partnerLinkTypename="BuyerSellerLink">
<role name="Buyer"><portType name="BuyerPT"/>
</role><role name="Seller">
<portType name="SellerPT"/></role>
</partnerLinkType>
Partner Links
<partnerLinks><partnerLink
name="buying"partnerLinkType="BuyerSellerLink"myRole="Buyer"partnerRole="Seller"/>
</partnerLinks>
Buyer(BuyerPT)
BuyerSellerLink
Seller
buying
Buyer
Process Web Service
Seller(SellerPT)
![Page 34: Building Standard-Based Business Processes](https://reader031.vdocument.in/reader031/viewer/2022012420/61749e9e16b16170d3295923/html5/thumbnails/34.jpg)
34
Partner Links
Using partner links in the <invoke> activity:<invokepartnerLink="buying"portType="SellerPT"operation="buy"inputVariable="itemid"outputVariable="response"/>
Web Service(SellerPT)
buy(itemid)Process(BuyerPT)
buying
response
![Page 35: Building Standard-Based Business Processes](https://reader031.vdocument.in/reader031/viewer/2022012420/61749e9e16b16170d3295923/html5/thumbnails/35.jpg)
35
Partner Links
Incoming calls with blocking <receive> activity»Creates a new process instance
<receive partnerLink="selling” portType="SellerPT"operation="getAmount" variable="itemid"createInstance="yes"/>
Result via <reply> activity<reply partnerLink="selling" portType="SellerPT"operation="buy" variable="price"/>
Web Service(SellerPT)
getAmount(itemid)
selling
price
Process(BuyerPT)
![Page 36: Building Standard-Based Business Processes](https://reader031.vdocument.in/reader031/viewer/2022012420/61749e9e16b16170d3295923/html5/thumbnails/36.jpg)
36
Partner Links
Partner links define the messages and port types used in the interactions in both directions, along with role names
“Shipping”partner link
“Invoicing”partner link
“Scheduling”partner link
“Purchasing”partner link
<partnerLink name="scheduling"partnerLinkType="lns:schedulingLT"
partnerRole="schedulingService"/>
<plnk:partnerLinkType name="schedulingLT"><plnk:role name="schedulingService">
<plnk:portType name="pos:schedulingPT"/></plnk:role>
</plnk:partnerLinkType>
The portTypeused in thepartner link
![Page 37: Building Standard-Based Business Processes](https://reader031.vdocument.in/reader031/viewer/2022012420/61749e9e16b16170d3295923/html5/thumbnails/37.jpg)
37
Endpoint References
BPEL4WS uses “endpoint references” for dynamic selection of service providers andinvocation of their operations
The relevant information about a partner service can be set up as part of business process deployment� This is a more “static” approach
However, it is also possible to select and assign partner services dynamically
BPEL4WS leverages the WS-Addressing specification for this capability� WS-Addressing defines a standard representation for endpoint references that incorporates information from a WSDL
description as well as policy information:
<wsa:EndpointReference xmlns:wsa="..."><wsa:Address>http://www.someendpoint.com</wsa:Address><wsa:PortType>PurchaseOrderPortType</wsa:PortType>
</wsa:EndpointReference>The portType
associated withthe address
![Page 38: Building Standard-Based Business Processes](https://reader031.vdocument.in/reader031/viewer/2022012420/61749e9e16b16170d3295923/html5/thumbnails/38.jpg)
38
Main Flow ConstructsMain Flow Constructs
![Page 39: Building Standard-Based Business Processes](https://reader031.vdocument.in/reader031/viewer/2022012420/61749e9e16b16170d3295923/html5/thumbnails/39.jpg)
39
The purchase order example uses all three constructs
“Receive”construct
“Flow”construct
“Reply”construct
Main BPEL4WS constructs: “Receive”, “Flow” and “Reply” 1/3
![Page 40: Building Standard-Based Business Processes](https://reader031.vdocument.in/reader031/viewer/2022012420/61749e9e16b16170d3295923/html5/thumbnails/40.jpg)
40
Main BPEL4WS constructs: “Receive”, “Flow” and “Reply” 2/3
The receive construct allows a process to do a blocking wait for amatching message to arrive
<receive partnerLink="purchasing"portType="lns:purchaseOrderPT"operation="sendPurchaseOrder"variable="PO">
</receive>
The flow construct allows one or more activitiesto be performed concurrently
Wait toreceive apurchase
order on the“Purchasing”partner link
Representsthe purchase
ordermessage
![Page 41: Building Standard-Based Business Processes](https://reader031.vdocument.in/reader031/viewer/2022012420/61749e9e16b16170d3295923/html5/thumbnails/41.jpg)
41
The reply construct allows a process to send a message in replyto a message that was received through a <receive>
<reply partnerLink="purchasing"portType="lns:purchaseOrderPT"operation="sendPurchaseOrder"variable=“Invoice">
</reply>
Send invoiceon the
“Purchasing”partner link
Representsthe invoicemessage
Main BPEL4WS constructs: “Receive”, “Flow” and “Reply” 3/3
![Page 42: Building Standard-Based Business Processes](https://reader031.vdocument.in/reader031/viewer/2022012420/61749e9e16b16170d3295923/html5/thumbnails/42.jpg)
42
Modeling dependencies between activities
There are several dependencies in the purchase order example
Cannotcomplete pricecalculation until
shipper isdetermined
Cannotcomplete
productionscheduling until
shippinglogistics are
arranged
![Page 43: Building Standard-Based Business Processes](https://reader031.vdocument.in/reader031/viewer/2022012420/61749e9e16b16170d3295923/html5/thumbnails/43.jpg)
43
The synchronization dependencies between concurrent tasks areexpressed by using “links” to connect them 1/2
Dependency links have to be defined in the <links> section:
<flow><links>
<link name="ship-to-invoice"/><link name="ship-to-scheduling"/>
</links>
... activities use the links as source and targets
</flow>
![Page 44: Building Standard-Based Business Processes](https://reader031.vdocument.in/reader031/viewer/2022012420/61749e9e16b16170d3295923/html5/thumbnails/44.jpg)
44
The synchronization dependencies between concurrent tasks areexpressed by using “links” to connect them 2/2
The following represents the dependency of the price calculation on the shipper selected:
<invoke partnerLink=“shipping"portType="lns:shippingPT"operation=“requestShipping"inputVariable="shippingRequest">outputVariable="shippingInfo">
<source linkName="ship-to-invoice"/></invoke>
<invoke partnerLink=“invoicing"portType="lns:computePricePT"operation=“sendShippingPrice"inputVariable="shippingInfo">
<target linkName="ship-to-invoice"/></invoke>
Thisrepresentsthe “Decideon Shipper”
activity
This representsthe “Complete
PriceCalculation”
activity
The common linkname represents a
dependencybetween the two
activities
The common linkname represents a
dependencybetween the two
activities
![Page 45: Building Standard-Based Business Processes](https://reader031.vdocument.in/reader031/viewer/2022012420/61749e9e16b16170d3295923/html5/thumbnails/45.jpg)
45
Message CorrelationMessage Correlation
![Page 46: Building Standard-Based Business Processes](https://reader031.vdocument.in/reader031/viewer/2022012420/61749e9e16b16170d3295923/html5/thumbnails/46.jpg)
46
Message correlation involves the association of two or moremessages with each other in an asynchronous environment
This may be done by associating contents in a given message with itscorrelating message� For example, in a purchase order/invoice scenario, the invoice may contain the
corresponding purchase order number
<PurchaseOrder><PurchaseOrderNumber><PurchaseOrderDate>
........</PurchaseOrder>
Purchase Order:
<Invoice><InvoiceNumber><InvoiceDate><PurchaseOrderNumber>
........</Invoice>
Invoice:
Purchase ordernumber is commonin both messages
![Page 47: Building Standard-Based Business Processes](https://reader031.vdocument.in/reader031/viewer/2022012420/61749e9e16b16170d3295923/html5/thumbnails/47.jpg)
47
BPEL4WS represents message correlations using “correlation sets”
A correlation set contains a set of properties shared by all messages in a correlated group<receive partnerLink="Buyer" portType="SP:PurchasingPT"
operation="AsyncPurchase" variable="PO"><correlations>
<correlation set="PurchaseOrder" initiate="yes"></correlations>
</receive><invoke partnerLink="Buyer" portType="SP:BuyerPT"
operation="AsyncPurchaseResponse" inputVariable="POResponse"><correlations>
<correlation set="PurchaseOrder" initiate="no" pattern="out"><correlation set="Invoice" initiate="yes" pattern="out">
</correlations></invoke>
<correlationSet name="PurchaseOrder"properties="cor:customerID cor:orderNumber"/>
<correlationSet name="Invoice"properties="cor:vendorID cor:invoiceNumber"/>
![Page 48: Building Standard-Based Business Processes](https://reader031.vdocument.in/reader031/viewer/2022012420/61749e9e16b16170d3295923/html5/thumbnails/48.jpg)
48
VariablesVariables
![Page 49: Building Standard-Based Business Processes](https://reader031.vdocument.in/reader031/viewer/2022012420/61749e9e16b16170d3295923/html5/thumbnails/49.jpg)
49
Variables
Messages sent and received from partners» Persisted for long running interactions» Defined in WSDL types and messages
CustomerService
Process
<A><variable> <activity>
<B><activity>
Persist Persist/Retrieve
CustomerService
Persist/Retrieve
Persist/Retrieve
<variable>
![Page 50: Building Standard-Based Business Processes](https://reader031.vdocument.in/reader031/viewer/2022012420/61749e9e16b16170d3295923/html5/thumbnails/50.jpg)
50
Variables in BPEL
<variables><variable name=“PO” messageType=“lns:POMessage”/><variable name=“Invoice” messageType=“lns:InvMessage”/><variable name=“POFault” messageType=“lns:orderFaultType”/>
</variables>
<message name=“POMessage”><part name=“customerInfo” type=“sns:customerInfo”/><part name=“purchaseOrder” type=“sns:purchaseOrder”/>
</message><message name="InvMessage">
<part name=“IVC” type=“sns:Invoice”/></message><message name=“orderFaultType”><part name=“problemInfo” type=“xsd:string”/>
</message>
Purchase Process WSDL:
BPEL:
![Page 51: Building Standard-Based Business Processes](https://reader031.vdocument.in/reader031/viewer/2022012420/61749e9e16b16170d3295923/html5/thumbnails/51.jpg)
51
How is Data Manipulation Done?
Using <assign> and <copy>, data can be copied and manipulated between variables<copy> supports XPath queries to sub-select data
<assign><copy><from variable="PO" part="customerInfo"/><to variable="creditRequest" part="customerInfo"/></copy></assign>
![Page 52: Building Standard-Based Business Processes](https://reader031.vdocument.in/reader031/viewer/2022012420/61749e9e16b16170d3295923/html5/thumbnails/52.jpg)
52
Compensation HandlersCompensation Handlers
![Page 53: Building Standard-Based Business Processes](https://reader031.vdocument.in/reader031/viewer/2022012420/61749e9e16b16170d3295923/html5/thumbnails/53.jpg)
53
Long Running Transactions and Compensation
UndoReserve
Inventory
<scope>
</scope>
• ReserveInventory• CancelReserveInv
InventoryService
• CheckCredit• ChargeHoldFee• CancelHoldFee
CreditService
UndoCharge
Hold Fee
![Page 54: Building Standard-Based Business Processes](https://reader031.vdocument.in/reader031/viewer/2022012420/61749e9e16b16170d3295923/html5/thumbnails/54.jpg)
54
Long Running Transactions and Compensation Handlers
SubmitPurchase
Order
ProcessPurchase
OrderCheck
Inventory
OrderFrom
SupplierUser
Cancels!
Consider a situation in which a user cancels a purchase order:
In this situation, it is not possible to lock system resources (ex: databaserecords) for extended periods of time� Therefore, the partial work must be undone as best as possible
Revert back to original state
![Page 55: Building Standard-Based Business Processes](https://reader031.vdocument.in/reader031/viewer/2022012420/61749e9e16b16170d3295923/html5/thumbnails/55.jpg)
55
Compensation Handlers in BPEL
<scope><compensationHandler><invoke partnerLink="Seller" portType="SP:Purchasing"
operation="CancelPurchase"inputVariable="getResponse"outputVariable="getConfirmation">
<correlations><correlation set="PurchaseOrder" pattern="out"/>
</correlations></invoke>
</compensationHandler><invoke partnerLink="Seller" portType="SP:Purchasing"
operation="SyncPurchase"inputVariable="sendPO"outputVariable="getResponse">
<correlations><correlation set="PurchaseOrder" initiate="yes" pattern="out"/>
</correlations></invoke>
</scope>
![Page 56: Building Standard-Based Business Processes](https://reader031.vdocument.in/reader031/viewer/2022012420/61749e9e16b16170d3295923/html5/thumbnails/56.jpg)
56
Fault HandlersFault Handlers
![Page 57: Building Standard-Based Business Processes](https://reader031.vdocument.in/reader031/viewer/2022012420/61749e9e16b16170d3295923/html5/thumbnails/57.jpg)
57
Exception Handling in BPEL
<faultHandlers> catch exceptions based on a fault name and fault variablesFault Handlers can perform arbitrary activities upon invocation
<process>...<scope>
<faultHandlers><catch faultName="lns:cannotCompleteOrder"
faultVariable="POFault"><reply partnerLink="customer"
portType="lns:purchaseOrderPT"operation="sendPurchaseOrder"variable="POFault"faultName="cannotCompleteOrder"/>
</catch><catchAll>
<empty/></catchAll>
</faultHandlers>... other activities
</scope></process>
<throw faultName="lns:cannotCompleteOrder“ variable=“POFault”/>
![Page 58: Building Standard-Based Business Processes](https://reader031.vdocument.in/reader031/viewer/2022012420/61749e9e16b16170d3295923/html5/thumbnails/58.jpg)
58
Event HandlersEvent Handlers
![Page 59: Building Standard-Based Business Processes](https://reader031.vdocument.in/reader031/viewer/2022012420/61749e9e16b16170d3295923/html5/thumbnails/59.jpg)
59
Event Handlers in BPEL
<eventHandlers> are invoked concurrently when certain events occur
There are two types of events: Message Events and Alarm Events
Message Events: Event that waits for a message to arrive<process name="orderCar">
...<eventHandlers>
<onMessage partnerLink="buyer" portType="car" operation="cancel"variable="cancelDetails">
<terminate/></onMessage>...
</eventHandlers>...
</process>
![Page 60: Building Standard-Based Business Processes](https://reader031.vdocument.in/reader031/viewer/2022012420/61749e9e16b16170d3295923/html5/thumbnails/60.jpg)
60
Event Handlers in BPEL
Alarm Events: Define timeout events
<process name="orderCar" xmlns:def="http://www.example.com/wsdl/example" ...>...
<eventHandlers><onAlarm for=
"bpws:getVariableData(orderDetails,processDuration)">...
</onAlarm>...
</eventHandlers>...<variable name="orderDetails" messageType="def:orderDetails"/></variable>...<receive name="getOrder"
partnerLink="buyer"portType="car"operation="order"variable="orderDetails"createInstance="yes"/>
...</process>
![Page 61: Building Standard-Based Business Processes](https://reader031.vdocument.in/reader031/viewer/2022012420/61749e9e16b16170d3295923/html5/thumbnails/61.jpg)
61
BPEL Lifecycle Management
Creating a process instance» BPEL4WS business processes represent stateful long-running interactions» The creation of a process instance in BPEL4WS is always implicit (e.g. with first <invoke>)» Activities that receive messages (<receive> activities or <pick> activities) can be annotated to
indicate that the occurrence of that activity causes a new instance (createInstance = „yes“)
Terminating a process instance» When the activity that defines the behavior of the process as a whole (in most cases
<sequence> or <flow>) completes.» When a fault reaches the process scope, and is either handled or not handled» When a process instance is explicitly terminated by a <terminate> activity.» If a compensation handler is specified for the business process as a whole, a business process
instance can be compensated after normal completion.
![Page 62: Building Standard-Based Business Processes](https://reader031.vdocument.in/reader031/viewer/2022012420/61749e9e16b16170d3295923/html5/thumbnails/62.jpg)
62
What is missing…
» Details on BPEL4WS activities (there are a lot of them…)» Many examples that show how these activities „really“ work» Demo with Oracle BPEL Process Manager (former Collaxa)» The Future of BPEL + Conclusion» Brief Introduction in Business Process Monitoring
with Senactive InTime
� Upcoming Week
![Page 63: Building Standard-Based Business Processes](https://reader031.vdocument.in/reader031/viewer/2022012420/61749e9e16b16170d3295923/html5/thumbnails/63.jpg)
Building Standard-BasedBusiness Processeswith Web Services
Josef Schiefer
Vienna, November 2004