200 likes | 346 Vues
This chapter presents an in-depth exploration of service-oriented computing, focusing on processes, workflows, and their semantics. It covers essential concepts such as business process languages like WS-BPEL and ebXML, as well as UML activity diagrams for modeling dynamics. The relationship between orchestration, choreography, and collaboration is explained, alongside implementation patterns for flow interoperability. Practical examples such as a stock quote service in WS-BPEL illustrate the application of these concepts in real-world settings, promoting a better understanding of service-oriented architectures.
E N D
Chapter 13:Process Specifications Service-Oriented Computing: Semantics, Processes, Agents– Munindar P. Singh and Michael N. Huhns, Wiley, 2005
Highlights of this Chapter • Processes • Describing Dynamics with UML • Workflows • Business Process Languages • BPEL4WS (WS-BPEL) • ebXML • RosettaNet • PSL: Process Specification Language Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns
Processes and Workflows Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns
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] Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns
Telecommunications Order Processing Older workflow tools support specialized (ad hoc) notations 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 Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns
UML Activity Diagram Implementation of a vendor’s purchase process 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? Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns
WS-BPEL Metamodel Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns
Process as a Composite Web Service 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"/> <assign> <copy> <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> 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 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 Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns
Design of an ebXML System Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns
Discover Partner Information and Negotiate 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 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) 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 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? Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns
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) Service-Oriented Computing: Semantics, Processes, Agents - Munindar Singh and Michael Huhns