Title: Web Services Orchestration and Choreography
1Web ServicesOrchestration and Choreography
- Presenter Min Lu
- Paper by Chris Peltz
- Nov 15, 2004
2Introduction
- Higher level, cross-organizational business
process - Two aspects of creating business process from
composite web services. - Orchestration one party
- Choreography multiple parties
3Topics of Discussion
- Process Design Requirements
- Emerging Standards
- BPEL
- WSCI
- BPML
- Case Study on BPEL
- Class Discussion
- My Conclusion
4Process Design Requirements
- Correlation
- Exception management transaction integrity
- Dynamic, flexibility and adaptability
- Recursive composition
5Process Design Requirements
- Correlation
- The ability to invoke services concurrently is an
important requirement, especially when dealing
with Asynchronous Web Services. - Correlation identifiers
6Process Design Requirements
- Correlation
- Exception management transaction integrity
- Dynamic, flexibility and adaptability
- Recursive composition
7Process Design Requirements
- Exception management transaction integrity
- Web services that are long-running must be able
to handle errors and time-out constraints - Compensation transactions can undo an action
8Process Design Requirements
- Correlation
- Exception management transaction integrity
- Dynamic, flexibility and adaptability
- Recursive composition
9Process Design Requirements
- Dynamic, flexibility and adaptability
- Flexibility can be achieved by providing a clear
separation between the process logic and the Web
services invoked. - An orchestration engine can achieve this
separation.
10Process Design Requirements
- Correlation
- Exception management transaction integrity
- Dynamic, flexibility and adaptability
- Recursive composition
11Process Design Requirements
- Recursive composition
- Exposing processes through their own web service
interfaces.
12Emerging Standards
Recent History of Business Process Standards
13Business Process Execution Language
- Support both executable abstract business
processes. - Executable process
- Specific interaction
- Models Orchestration
- Abstract process
- Message exchanges between parties
- Models Choreography
14Business Process Execution Language
- Support basic activity structured activity.
- Basic activity
- Interact external to the process itself
- Receive, invoke, respond
- Structured activity
- Manage the overall process flow
- Sequence, loop, dynamic branching
15BPEL4WS Process Flow
16Web Service Choreography Interface
- Defines choreography only
- Supports message correlation
- Supports exception handling
- Supports transaction integrity by transactional
contexts - Supports dynamic collaboration
17Web Service Choreography Interface
- Supports basic activities
- - Action tag defines requests response
- - Call tag invokes external services
- Supports structured activities
- - loop, sequence, parallel, etc.
18Web Service Choreography Interface
- WSCI only observe abstract process
- between web services
19Relationships
20Case Study Model
21Case Study on BPEL
- Defines partners and their roles
- ltpartnerLinksgt
- ltpartnerLink name"Buyer"
- partnerLinkType"porequestQuoteLinkType"
- myRole"Purchaser" partnerRole"Requestor"/gt
- ltpartnerLink name"Supplier1"
- partnerLinkType"porequestQuoteLinkType"
- myRole"Requestor" partnerRole"Purchaser"/gt
- lt!Set up other suppliers used in this process gt
- lt/partnerLinksgt
22Case Study on BPEL
- Defines variables
- ltvariablesgt
- ltvariable name"request"
- messageType"porequest"/gt
- ltvariable name"part_request
- messageType"popart_request"/gt
- ltvariable name"part_quote"
- messageType"popart_quote"/gt
- ltvariable name"proposal"
- messageType"poproposal"/gt
- lt/variablesgt
23Correlation of BPEL
- Correlate the requests by assign a unique quote
and proposal identifier - ltcorrelationSetsgt
- ltcorrelationSet name"Quote"
- properties"corquoteID"/gt
- ltcorrelationSet name"Proposal"
- properties"corproposalID"/gt
- lt/correlationSetsgt
24BPEL Basic Structured Activities
- ltsequencegt
- ltreceive name"receive" partnerLink"Buyer"
operation"request" variable"request"
initiate"yes"gt - lt/receivegt
- ltflow name"supplier_flow"gt
- ltinvoke name"quote_supplier1" partnerLink"Suppli
er1" - operation"request_quote" inputVariable"part_req
uest" - outputVariable"part_quote"gt
- lt/invokegt
- lt!invoke other suppliers as part of the
processgt - lt/flowgt
- ltreply name"reply" partnerLink"Buyer"
- operation"send_proposal variable"proposal"gt
- lt/replygt
- lt/sequencegt
25Exception handling of BPEL
- If error occurs in contacting a supplier, the
agent sends a message to the buyer. - ltfaultHandlersgt
- ltcatch faultName"cantFulfillRequest"gt
- ltinvoke partnerLink"buyer"
- operation"sendError"
- inputVariable"fault"/gt
- lt/catchgt
- lt/faultHandlersgt
26Transaction Integrity of BPEL
- Compensation handlers
- E.g. if the agent cannot contact a supplier, the
process must offer a way to roll back the order.
27Class Discussion
- Which process design requirements does BPEL meet?
How?
28My Conclusion
- Correlation
- Assign unique identifiers and use
ltcorrelationSetgt - Supports asynchronous calls by declaring
partnerLinkTypes to define what port types are
used to send and/or receive messages on - Exception handling Fault handler catch exception
- Transaction Integrity use ltscopegt for
compensation transactions use - Flexibility orchestration engine(IBM alpha
Works, Collaxa) - Recursive Composition see next question
29Class Discussion
- Does BPEL support recursive Web service
composition?
30BPEL Recursive Composition
- Through the use of WSDL to denote the public
interface - BPEL orchestrates multiple Web services into a
Web service, published by WSDL - Subsequently can be orchestrated into another
BPEL - External. Done through the public interface