Service-Oriented Computing: Semantics, Processes, Agents August 2004 Chapter 13: Process Specifications Service-Oriented Computing: Semantics, Processes, Agents – Munindar P. Singh and Michael N. Huhns, Wiley, 2005 © Singh & Huhns
Highlights of this Chapter Service-Oriented Computing: Semantics, Processes, Agents August 2004 Highlights of this Chapter Processes Describing Dynamics with UML Workflows Business Process Languages BPEL4WS (WS-BPEL) ebXML RosettaNet PSL: Process Specification Language Chapter 13 Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns © Singh & Huhns
Processes and Workflows Chapter 13 Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns
A Process Is … [Abstractions] Service-Oriented Computing: Semantics, Processes, Agents August 2004 A Process Is … [Abstractions] Orchestration: A partial order of actions (activity graph, script) under the control of a central conductor; akin to a workflow [Global view; central] Workflow: narrower concept than process; emphasizes control and data flows from a central perspective; usually tool-specific and focused on human tasks Choreography: An exchange of messages among participants; akin to a conversation as described by WSCL, WS-CDL, ebBP [Global view; distributed] Collaboration: A joint set of activities among business partners [Local views; distributed] Chapter 13 Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns © Singh & Huhns
Telecommunications Order Processing Older workflow tools support specialized (ad hoc) notations Chapter 13 Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns
Describing Dynamics with UML UML Activity Diagrams are practically identical to BPMN (Business Process Modeling Notation) and WS-BPEL (Business Process Execution Language) Sequence: a transition from one activity to the next Branch: a decision point among alternative flows of control Merge: where two or more alternative flows of control rejoin Fork: a splitting of a flow of control into two or more concurrent and independent flows of control Join: a synchronization of two or more concurrently executing flows of control into one flow Chapter 13 Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns
UML Activity Diagram Implementation of a vendor’s purchase process Chapter 13 Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns
Flow Interoperability Patterns Among others: Chained Nested Synchronized What guarantees would you obtain from each pattern? How would you accommodate exceptions in each pattern? Chapter 13 Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns
WS-BPEL Metamodel Chapter 13 Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns
Process as a Composite Web Service Chapter 13 Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns
Stock Quote Service in WS-BPEL <process name="simple" targetNamespace="urn:stockQuoter" xmlns:tns="urn:stockQuoter" xmlns:sqp="http://tempuri.org/services/stockquote" xmlns=&BPEL;/> <containers> <container name="request" messageType="tns:request"/> <container name="response" messageType="tns:response"/> <container name="invocationRequest" messageType="sqp:GetQInput"/> <container name="invocationResponse" messageType="sqp:GetQOutput"/> </containers> <partners> <partner name="caller" serviceLinkType="tns:StockQuoteSLT"/> <partner name="provider" serviceLinkType="tns:StockQuoteSLT"/> </partners> <sequence name="sequence"> <receive name="receive" partner="caller" portType="tns:StockQuotePT" operation="wantQuote" container="request" createInstance="yes"/> <assign> <copy> <from container="request" part="symbol"/> <to container="invocationRequest" part="symbol"/> </copy> </assign> <invoke name="invoke" partner="provider" portType="sqp:StockQuotePT" operation="getQuote" inputContainer="invocationRequest" outputContainer="invocationResponse"/> <from container="invocationResponse" part="quote"/> <to container="response" part="quote"/> </copy> </assign> <reply name="reply" partner="caller" portType="tns:StockQuotePT" operation="wantQuote" container="response"/> </sequence> </process> Chapter 13 Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns
Electronic Business Extensible Markup Language (ebXML) Established jointly by UN-CEFACT (United Nations Centre for Trade Facilitation and Electronic Business) OASIS (Organization for the Advancement of Structured Information Standards) Provides specification languages for business processes, business messages to facilitate trading agreements Motivations: Global standard for companies of all sizes Automate finding business partners Chapter 13 Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns
ebXML Vocabulary Unified Modeling Methodology (UMM) Specialized UML for Business Processes Collaboration Protocol Profile (CPP) Describes a business with respect to its roles in specified processes, the messages it exchanges, and the transport mechanism (e.g., HTTPS) Collaborative Partner Agreement (CPA) Intuitively, like an “intersection” of two CPPs Technical agreement between two or more partners May be legally binding Chapter 13 Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns
Design of an ebXML System Chapter 13 Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns
Discover Partner Information and Negotiate Chapter 13 Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns
Implementing ebXML ebXML is a set of specifications: of collaborations and repositories for discovering business partners Build and deploy its custom ebXML-compliant application to implement necessary roles in different collaborations Use COTS ebXML compliant applications and components (from ERP vendors) Business Service Interface (BSI): a wrapper that enables a given party to participate properly in an ebXML exchange Chapter 13 Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns
Business Service Interface Interfaces with the legacy system to have it play a role in a specific protocol (e.g., vendor in 3A4) Is aware of its own Collaborative Protocol Profile Handles transactions based on all current agreements (CPAs) Chapter 13 Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns
RosettaNet PIP for Creating a Purchase Order: The Content for ebXML PIP: Partner Interface Process; an interaction protocol ebXML BPSS: language for specifying PIPs Two-party protocols Request-response only No specification of the meanings of the messages exchanged Chapter 13 Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns
Exercise: Exception in a Process Recording student registration Assume that each database management system supports two-phase commit for transactions Task #2 checks that the student has completed the necessary prerequisites for all the courses for which the student is registering Consider a scenario where Tasks #3, #4, #5 succeed, but Task #2 fails As the system administrator, what operations would you have to perform in order to restore consistency to your system? How would you modify the process to prevent problems such as this from occurring? Chapter 13 Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns
Service-Oriented Computing: Semantics, Processes, Agents August 2004 Chapter 13 Summary In virtually all serious applications of SOC, services are composed into processes Current approaches for process modeling are based on workflow abstractions WS-BPEL enables specification of processes ebXML also considers the life cycle of processes RosettaNet is an application of ebXML Flows interact in various ways Exceptions in flows can be handled via (extended) transactions or through application-specific means (where interesting patterns can arise) Chapter 13 Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns © Singh & Huhns