Web Services Choreography Requirements 1.0

W3C Working Draft 30 July 2003

This version:
http://www.w3.org/2002/ws/chor/reqs/2003/07/WD-ws-chor-requirements-20030730.xml
Latest version:
http://www.w3.org/2002/ws/chor/reqs/2003/07/WD-ws-chor-requirements-20030730.xml
Previous version:
http://www.w3.org/2002/ws/chor/reqs/2003/06/WD-ws-chor-requirements-20030616.xml
Editors:
Daniel Austin, W. W. Grainger, Inc. <daniel_austin@grainger.com>
Abbie Barbir, Nortel Networks, Inc. <abbieb@nortelnetworks.com>
Ed Peters, WebMethods, Inc. <ed.peters@webmethods.com>
Steve Ross-Talbot, Enigmatec, Inc. <steve@enigmatec.com>

Abstract

As the momentum around Web Services grows, the need for effective mechanisms to co-ordinate the interactions among Web Services and their users becomes more pressing. The Web Services Choreography Working Group has been tasked with the development of such a mechanism in an interoperable way.

This document describes a set of requirements for Web Services choreography based around a set of representative use cases, as well as general requirements for interaction among Web Services. This document is intended to be consistent with other efforts within the W3C Web Services Activity.

Status of this Document

This document is an editors' copy that has no official standing.

This section describes the status of this document at the time of its publication. Other documents may supersede this document. The latest status of this document series is maintained at the W3C.

This is the first W3C Working Draft of the Web Services Choreography Requirements document.

It is a chartered deliverable of the Web Services Choreography Working Group , which is part of the Web Services Activity . Although the Working Group agreed to request publication of this document, this document does not represent consensus within the Working Group about Web Services choreography requirements.

This document is in a state of perpetual change. Feedback on this document is sought by the Working Group.

Comments on this document should be sent to www-ws-chor-comments@w3.org (public archive ). It is inappropriate to send discussion emails to this address.

Discussion of this document takes place on the public public-ws-chor@w3.org mailing list (public archive ) per the email communication rules in the Web Services Choreography Working Group charter .

Patent disclosures relevant to this specification may be found on the Working Group's patent disclosure page .

This is a public W3C Working Draft for review by W3C members and other interested parties. It is a draft document and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use W3C Working Drafts as reference material or to cite them as other than "work in progress". A list of all W3C technical reports can be found at http://www.w3.org/TR/.

Table of Contents

1 Introduction
    1.1 What is Web Services Choreography?
    1.2 Conventions Used In This Document
2 Requirements Methodology
3 Use Cases
    3.1 Structure of Use Cases
    3.2 Use Case Descriptions
        3.2.1 D-UC-001 - Simple Client Server
            3.2.1.1 Actors
            3.2.1.2 Description
            3.2.1.3 Preconditions
            3.2.1.4 Triggering Event(s)
            3.2.1.5 Postconditions
            3.2.1.6 Flow of Events
                3.2.1.6.1 Basic Flow (Primary Scenario)
                3.2.1.6.2 Alternate Flow(s)
            3.2.1.7 Related Use Cases
            3.2.1.8 Notes / Issues
        3.2.2 D-UC-002 - Service and Device Interoperability
            3.2.2.1 Actors
            3.2.2.2 Description
            3.2.2.3 Preconditions
            3.2.2.4 Triggering Event(s)
            3.2.2.5 Postconditions
            3.2.2.6 Flow of Events
                3.2.2.6.1 Basic Flow (Primary Scenario)
                3.2.2.6.2 Alternate Flow(s)
            3.2.2.7 Related Use Cases
            3.2.2.8 Notes / Issues
        3.2.3 D-UC-003 - Travel agent (static discovery)
            3.2.3.1 Actors
            3.2.3.2 Description
            3.2.3.3 Preconditions
            3.2.3.4 Triggering Event(s)
                3.2.3.4.1 Basic Flow (Primary Scenario)
                3.2.3.4.2 Alternate Flow(s)
            3.2.3.5 Postconditions
            3.2.3.6 Flow of Events
            3.2.3.7 Related Use Cases
            3.2.3.8 Notes / Issues
        3.2.4 D-UC-004- Alternative paths based on business rules
            3.2.4.1 Actors
            3.2.4.2 Description
            3.2.4.3 Preconditions
            3.2.4.4 Triggering Event(s)
                3.2.4.4.1 Basic Flow (Primary Scenario)
                3.2.4.4.2 Alternate Flow(s)
            3.2.4.5 Postconditions
            3.2.4.6 Flow of Events
            3.2.4.7 Related Use Cases
            3.2.4.8 Notes / Issues
        3.2.5 D-UC-005 - Exception Handling Across Domains of Control
            3.2.5.1 Actors
            3.2.5.2 Description
            3.2.5.3 Preconditions
            3.2.5.4 Triggering Event(s)
                3.2.5.4.1 Basic Flow (Primary Scenario)
                3.2.5.4.2 Alternate Flow(s)
            3.2.5.5 Postconditions
            3.2.5.6 Flow of Events
            3.2.5.7 Related Use Cases
            3.2.5.8 Notes / Issues
        3.2.6 D-UC-006 - Choreography Recovery
            3.2.6.1 Actors
            3.2.6.2 Description
            3.2.6.3 Preconditions
            3.2.6.4 Triggering Event(s)
                3.2.6.4.1 Basic Flow (Primary Scenario)
                3.2.6.4.2 Alternate Flow(s)
            3.2.6.5 Postconditions
            3.2.6.6 Related Use Cases
            3.2.6.7 Notes / Issues
        3.2.7 D- UC-007 - Choreography Dependency
            3.2.7.1 Actors
            3.2.7.2 Description
            3.2.7.3 Preconditions
            3.2.7.4 Triggering Event(s)
            3.2.7.5 Flow of Events
                3.2.7.5.1 Basic Flow (Primary Scenario)
                3.2.7.5.2 Alternate Flow(s)
            3.2.7.6 Postconditions
            3.2.7.7 Related Use Cases
            3.2.7.8 Notes / Issues
        3.2.8 D- UC-008 - Quote Request
            3.2.8.1 Actors
            3.2.8.2 Description
            3.2.8.3 Preconditions
            3.2.8.4 Triggering Event(s)
            3.2.8.5 Postconditions
            3.2.8.6 Flow of Events
                3.2.8.6.1 Basic Flow (Primary Scenario)
                3.2.8.6.2 Alternate Flow(s)
            3.2.8.7 Related Use Cases
            3.2.8.8 Notes / Issues
        3.2.9 D-UC-009 - Really Big Corporation
            3.2.9.1 Actors
            3.2.9.2 Description
            3.2.9.3 Preconditions
            3.2.9.4 Triggering Event(s)
            3.2.9.5 Postconditions
            3.2.9.6 Flow of Events
                3.2.9.6.1 Basic Flow (Primary Scenario)
                3.2.9.6.2 Alternate Flow(s)
            3.2.9.7 Related Use Cases
            3.2.9.8 Notes / Issues
        3.2.10 D-UC-010 - Interconnection of Document Management Systems
            3.2.10.1 Actors
            3.2.10.2 Description
            3.2.10.3 Preconditions
            3.2.10.4 Triggering Event(s)
            3.2.10.5 Postconditions
            3.2.10.6 Flow of Events
                3.2.10.6.1 Basic Flow (Primary Scenario)
                3.2.10.6.2 Alternate Flow(s)
            3.2.10.7 Related Use Cases
            3.2.10.8 Notes / Issues
        3.2.11 D- UC-11 " Supporting collaboration
            3.2.11.1 Actors
            3.2.11.2 Description
            3.2.11.3 Preconditions
            3.2.11.4 Triggering Event(s)
                3.2.11.4.1 Basic Flow (Primary Scenario)
                3.2.11.4.2 Alternate Flow(s)
            3.2.11.5 Postconditions
            3.2.11.6 Flow of Events
            3.2.11.7 Related Use Cases
            3.2.11.8 Notes / Issues
4 Choreography Requirements
    4.1 Charter Constraints
    4.2 Interoperability
    4.3 Scalability
    4.4 Security
    4.5 Management and Provisioning
    4.6 Exception Handling
    4.7 Messaging and Protocols
    4.8 Interfaces
    4.9 Reliability
    4.10 Transaction
    4.11 Composition
    4.12 Testing and Validation
    4.13 Ease of Use
    4.14 Support for Semantics
    4.15 External Dependencies
    4.16 Systems
5 Correlation of Use Cases and Requirements
    5.1 Use Cases and Requirements Cross-Reference
    5.2 Requirements Coverage
6 Appendix A - References
    6.1 Normative References
    6.2 Informative References
7 Appendix B - Acknowledgements


1 Introduction

Interactions among Web Services, especially in regard to the exchange of messages, their composition, and the sequence in which they are to be transmitted and received, are an especially important problem. These interactions may serve to provide communication among groups of services that in turn make up a larger, composite service, or may be called on to interact across organizational boundaries in order to obtain and process information. The problems of Web Services choreography are largely focused around these two areas, that of message exchange and of sequencing these message in time to the appropriate destinations. In order to fulfill the needs of the Web Services community, these aspects of Web Services must be developed and standardized in an interoperable manner, taking into account the needs of each individual service as well as those of its collaborators and users.

This document describes a set of requirements for Web Services choreography based around a set of representative use cases, as well as general requirements for interaction among Web Services. This document is intended to be consistent with other efforts within the W3C Web Services Activity.

1.2 Conventions Used In This Document

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 .

A few words on the naming convention used here and throughout this document: all use cases and requirements are labeled according to the following convention:

[D-](C)(R|UC)nnn

[D-] indicates that the item is in a draft state

(C) indicates Candidate status.

(R|UC|) is one of Requirement|Use Case|User Scenario.

nnn indicates the sequence number of the item.

Please note that due to the changing nature of requirements analysis, numbering of requirements, use cases, and user scenarios may not always reflect sequential order.

2 Requirements Methodology

In order to gather requirements for Web Services Choreography, the working group has currently chosen to follow two paths toward this end. The first means of gathering requirements consists of examination of member-submitted use cases, from which requirements may be inferred. The second methods involves the use of the Critical Success Factor analysis methodology, and will be addressed in future versions of this document.

3 Use Cases

In order to organize and make use of the member-submitted use cases, a specific template has been developed for use by the Working Group, which includes fields for the requisite information. As a base definition, a use case may be considered to be a description of an interaction which takes place across one or more system boundaries, involving one or more users and services.

3.2 Use Case Descriptions

3.2.1 D-UC-001 - Simple Client Server

Submitted by: Enigmatec Corporation Ltd

Ref: [URL]

3.2.1.8 Notes / Issues

This use case shows a clear problem with potential LiveLock situations. In this example it is possible that any Clienti is locked out from dealing with a server forever. Generates the following requirements:

  1. The ability to uniquely name a behaviour (i.e. IdleServer, BusyServer, IdleClient, BusyClient).

  2. The ability to describe a behaviour in terms of their interaction. Their interaction is defined as the sending of a communication on a named channel (o,req,resp,c).

  3. The ability to describe a behaviour recursively (i.e. the defn of BusyServer refers to itself).

  4. The ability to describe a behaviour that has choice to enable different behaviours to be references (i.e. the use of the + operator).

  5. The ability to describe a sequence of communications (i.e. the use of the "." operator in req-out.resp-in as well as o-in.BusyServer).

The composition, the behavioural contract that exists between a Client and a Server can be defined in pi-calculus as follows:

ComposedSystem = (!IdleClient | IdleServer)

The Composed system enables Clients to communicate with a Server. IdleClient1 communicates with the IdleServer until it sends a close. When a close has been received the transitions from behaving like a BusyServer to an IdleServer and so is able to accept open requests from any IdleClienti.

  1. This ability compose behaviours into higher level processes such as our ComposeSystem above gives rise to another requirement, namely

  2. The ability to describe parallel composition of services (i.e. the "|" operator).

The use case demonstrates some of the basic interactions and behaviours that may be required to enable us to describe a choreography between two processes.

3.2.2 D-UC-002 - Service and Device Interoperability

Submitted by: unknown

Ref: [URL]

3.2.3 D-UC-003 - Travel agent (static discovery)

Submitted by: Web Services Architecture WG

Ref: [URL]

3.2.4 D-UC-004- Alternative paths based on business rules

Submitted by: Monica J. Martin, Sun Microsystems.

Ref: http://lists.w3.org/Archives/Member/member-ws-chor/2003Jun/0060.html

3.2.4.4 Triggering Event(s)

An agreement provides business (and later technical) context to what business rules are applicable for this use case. Therefore, the business event of establishing an agreement may trigger the definition of the business rules, process steps, and acceptable paths on this business process as it relates to the interactions between the Buyer and Seller. A business need triggers an order between the Buyer and the Seller.

3.2.4.4.2 Alternate Flow(s)

Within the view of the Seller, the quality check is applied and is integrated into the ordering process. However, this quality check MAY or MAY NOT be applied as it relates to an instance of an ordering process interaction between the Buyer and the Seller. The application of the business rules MAY be driven by the business context, requirements and the agreement.

For example, external events, such as a low-risk, high-availability turnaround requirements for ultimate customer delivery may require a different path be taken in the ordering process. When the Buyer interacts with the Seller, it often takes the product component and integrates it into another solution. With one ultimate Customer, the Buyer, on certain occurrences, must deliver in 2 days. Therefore, the Buyer may need to ask the Seller to bypass the quality check. However, in this instance, the Buyer takes on additional responsibility, that releases the Seller from some responsibilities.

Where these rules are applied MAY vary by which Buyer or Seller is involved in this ordering process. (Implies an M-M relationship between the role and the services provided).

Where these rules are applied MAY vary by which Buyer or Seller is involved in this ordering process. The choreography definition should handle either case to provide flexibility to these roles in the ordering process.

Note: In this case, independence is maintained. The Handle Questionnaire is actually executed against business rules during process execution, although it is either path is known prior to execution. Each is a valid path. The business rules related to the quality check are applied 'in' the process, even though a business context rule is applied prior to the order process initiation to maintain process independence.

Note: In this case the business rules are applied first and either path is is actually executed before and during process execution. Although either path is known prior to execution. Each is a valid path. The business rules are applied overall before and 'in' the process.

3.2.5 D-UC-005 - Exception Handling Across Domains of Control


Editorial note  
Submitted by: Sun Microsystems Ref: http://lists.w3.org/Archives/Member/member-ws-chor/2003Jun/0060.html


3.2.5.2 Description

This business case extends the Alternative Paths Based on Business Rules use case. In that case, several business processes could occur and take different paths based on business agrement, application of business context, and choice of business rules.

This use case integrates the Seller and Buyer views into one Business Process A. Quality Control at the Seller Company has the Business Process B where Quality Control evaluates the Questionnaire. During shipment, a Customs Control process (Business Process C) may be initiated that affects Business Process A. Multiple concurrent and independent processes exist. Multiple and independent process outcomes could occur and depend on how they are choreographed and how the process is defined within a choreography set or collaboration [higher level].

This business case step should address these requirements:

  1. Exception handling/propagation

  2. Choreography and choreography sets

  3. Typing of exceptions (process and control failure)

  4. Signal impacts if used to indicate process validation success or failure (receipt acknowledgement or acceptance acknowledgement)

  5. Confirmation that the propagation occurs to the application as opposed to the service or service interface

  6. Integration of process and control flow failures (such as Process [validation] failure on Handle Questionnaire and control failure on Business Process A)

For brevity, the Ordering Process defined in the Alternate Paths Based on Business Rules use case is not duplicated here. The relationship between Business Process B and C to Business Process A will be outlined.

3.2.5.3 Preconditions

For Business Process B, the pre-condition is:

  1. A business rule has been applied either prior to process initiation or during the process, where the business rule is required, and a 'Handle Questionnaire' check is initiated.

  2. An exception on 'Handle Questionnaire' can not occur unless 'Handle Questionnaire' is initiated. Therefore an exception precondition exists in Business Process B, when a Quality Control check is applied. Whether or not the Business Process B is exposed or not, the exception affects the outcome of Business Process A.

For Business Process C, the pre-condition is:

  1. A business rule has been applied either prior to process initiation or during the process, where the business rule is required, and a Customs Control' check is initiated. An order is to be shipped to the Buyer by the Seller to an international location. Therefore, the pre-condition is an international order is processed. International is defined as a condition whereby the ship-to location is considered to be international and subject to regional customs requirements.

  2. An exception on 'Customs Control' can not occur unless 'Customs Control' is initiated. Therefore an exception precondition exists in Business Process C, when a Customs Control check is applied. Whether or not the Business Process C is exposed or not, the exception affects the outcome of Business Process A.

  3. Exception propagation SHOULD occur within Business Process B and C, to the originator of the service request (For example, 'Handle Questionnaire' within the parent process, Business Process B).

3.2.5.4 Triggering Event(s)

The triggering event for an Exception is an exception in the process for Business Process B or C, which is considered substantive to the completion of Business Process A.

3.2.5.4.1 Basic Flow (Primary Scenario)

The Handle Questionnaire process MAY be handled by an outside service. This service checks the quality of the product produced and applies a quality control check. The results of the Quality Control check are provided to the 'Handle Questionnaire' process step.

Whether or not the Quality Control check for the Handle Questionnaire process step is handled externally is based on business rules agreed upon by the partners in the interaction. The application of these business rules before or inside the processes is typically driven by agreement. See the Alternate Paths Based on Business Rules use case for more detail on the ordering process for further details.

In general, they apply the Seller's view of the ordering process, that integrates the Quality check within the Seller's domain of control. When this Quality check is applied, the Handle Questionnaire process step is initiated. The Handle Questionnaire process step is applied prior to the Pay process step and the results are reported prior to the release to Ship the product. On high risk items (For example, those items that have shown a higher incidence of failures, the Seller turns the Quality check over to another specialized service, designated here as Quality Control).

Quality Control completes the check with a set of parameters provided by the initiating party for the service, Business Process A, Handle Questionnaire process step (Note: This may be based on the role involved with the service or the service itself, which here is the Seller or Handle Questionnaire respectively).

Quality Control is responsible to:

  1. Complete the checks.

  2. Report the results to the Handle Questionnaire process step for the Seller.

  3. With success, the results are logged and the Business Process A notified.

  4. The ordering process continues and completes successfully (Note: Assuming no other business exceptions).

3.2.6 D-UC-006 - Choreography Recovery


Editorial note  
Submitted by: ? Ref: [URL]


3.2.7 D- UC-007 - Choreography Dependency


Editorial note  
Submitted by: Ref: [URL]


Ref: [URL]

3.2.7.5 Flow of Events
3.2.7.5.1 Basic Flow (Primary Scenario)

The first choreography - order placement

  1. A Buyer sending a Supplier an order

  2. The Supplier sending an order response document to the buyer that indicates the extent to which the supplier can satisfy the order. This is dependent on step 1

  3. The Buyer optionally sending a Change Order to the Supplier that modifies the original. This is dependent on the step 1 and can occur multiple times.

  4. The supplier sends an order response document to the buyer that indicates the extent to which the supplier can satisfy the changed order. This is dependent on and a response to step 3.

  5. The Buyer optionally sending a Cancel Order to the Supplier that cancels the original order and any changes. This can occur at any point after step 1 provided that a step 5 (this step) has not been executed previously

  6. The Supplier sending a Cancel Order Response to the Buyer that indicates whether or not the Cancel Order has been accepted. This is dependent on step 5.

  7. The Supplier can send an error response document to the Buyer as a reply to any message they receive that indicates that there was some error in the message that prevented it being processed

  8. The Buyer can send an error response document to the Supplier as a reply to any message they receive that indicates that there was some error in the message that prevented it being processed.

The second choreography - order status query

This second choreography allows a Buyer to make an inquiry on the status of any order they have previously placed. The dependency is that the Buyer should only do an order status query if they have previously started the execution of an order placement choreography. The steps are:

  1. A Buyer sending a Supplier an order status request. This is dependent on step 1 of the first choreography

  2. The Supplier returning an order status response that indicates: a) if the order was recognized, and b) if it was recognized, then the state of the processing of the order, e.g. received but not processed, processed, shipped, billed, etc.

In addition error response documents can be sent as for the first choreography.

3.2.8 D- UC-008 - Quote Request


Editorial note  
Submitted by: W. W. Grainger, Inc. Ref: [URL]


3.2.8.6 Flow of Events

3.2.9 D-UC-009 - Really Big Corporation

Submitted by: BEA Systems, Inc

Ref: [URL]

3.2.9.2 Description

This use case charts a major corporations' efforts to gain control over the message choreographies used between its various systems. The work uses RBC as the example company. RBC sells the Really Big Product (RBP) that requires the cooperation of approximately 100 different tiny companies. The main activities involved in creating the RBP are order handling, manufacturing, shipping and billing.

Each of the four activities may involve 20 to 30 different systems, some of which are internal to RBC, Tiny Company partners run the rest. When the RBP was first being produced RBC handled communication between the systems, both internal and external, in an ad-hoc manner. The operators of any two systems that needed to communicate would write down on a piece of paper what messages they expected, give some description of the acceptable order and then go write code and test until things finally worked.

At first RBC tries to create a single document that describes all the systems, messages and choreographies but quickly finds that the complexity of the document is so great that it can't be used for any practical purpose and will be out of date long before it's finished. They next try to use a cPl, Java, to describe the choreography behavior but quickly find that the result is so complex that no one can really understand it.

Eventually RBC realizes that they need a cDl. The corporation tries to design its cDl by starting with a cPl and removing features. First the control logic is vastly simplified to the point where it just encodes a graph. Then the cDl is made to encode a global view rather than the participant level view required by cPls. They then add in the ability to segment the cDl so that participants can be given cDls that only show them the part of the message choreography they need to know about. Finally, they add the ability to abstract away sub-systems so that it is easier to understand the over all logic of the cDl without drowning in the details.

3.2.9.8 Notes / Issues

The challenge with using a global view is that it makes it harder to hide information. After all, if one can see all the participants simultaneously then how does one hide anything? For example, Tiny Company 1 may talk to RBC who then talks to Tiny Company 2. While RBC needs to have a complete global view of all of its activities it only wants to show each Tiny Company the part of the global view relevant to then. The solution RBC choose was to make their cDl support segmentation, e.g. enable multiple cDls to reference each other and describe their overlapping parts.

RBC understood that what they really needed was two different solutions. One solution to make it easier to write long running programs, a cPl, and another solution for describing the choreography between systems, a cDl.

With both solutions in place RBC was able to use the cDl to document the full choreography for all message exchanges in their entire order processing system including the ability to segment the picture so that partners only saw the parts they needed. They were then able to repeat the procedure for the other three activities and to hook all the choreographies for all the activities together using segmentation.

However RBC still had a problem, the final picture was too complex. With 100 different systems and 400 different messages across all four activities no one could understand the whole picture. RBC needed some way to abstract away sub-systems which didn't need to be understood in detail in order to see the over all system flow. Segmentation didn't solve this problem because segmentation allows one to hide information not add a level of indirection. The solution RBC choose was to make their cDl hierarchical, e.g. allow the cDl format to wrap cDl functionality inside of a function call.

The end result of RBC's efforts is that they had implemented and deployed two solutions. A cPl to make it easier to write long running logic and a cDl to make it easier for different systems to understand their messaging obligations to each other.

3.2.10 D-UC-010 - Interconnection of Document Management Systems

Submitted by: BEA Systems, Inc

Ref: [URL]

3.2.10.6 Flow of Events

BSC and DC were sub-contractors on a project to build a new bridge. Recognizing the need to work closely together they decided to implement a series of web services to enable the companies to submit proposed changes to the bridge's design. The web services accepted changes, drove the process of getting the appropriate approvals and then altered the central design and notified the appropriate parties.

Both companies had existing approval processes and document management systems so as the joint choreography was designed each team used segmentation to integrate the joint choreography with their local systems.

3.2.10.6.1 Basic Flow (Primary Scenario)

One of the first problems the joint team ran into was that they wanted to use a reliable messaging system to allow them to transfer messages. At first they tried to include the reliable messaging related messages directly into the choreography but that proved to be a mess. Especially when, half way through the project, they decided to change their reliable messaging algorithm when a new group in some standards organization started up and they felt they needed to be standards compliant. Eventually the joint group decided to enhance their cDl to support annotations. This allowed them to mark a message exchange as reliable using an identifier without having to actually include all the reliability details. They used a similar strategy to deal with message correlation. That is, rather than trying to invent a generic correlation language they used an annotation to specify what correlation algorithm they were using.

One problem the joint team didn't run into was selecting what web service description language to use. The joint team, wanting to be strictly standards compliant, was only interested in using Web services. So they were happy to find a Web services cDl working group. By definition Web services means WSDL, in this case WSDL 1.2. Rather than taking precious working group time to invent a generic description framework that could potentially host any and all descriptors including ones for ebXML, RosettaNet, EDIINT, etc., thus causing the group to likely never ship while they busily re-invented the work of the WSDL working group, the Web services cDl working group that the joint team choose focused exclusive on WSDL 1.2.

A problem the joint team did run into was that by law certain change approvals must be signed off in a certain order. While the general rule for interoperability is be generous in what you accept, whose corollary is be flexible in your processing, such cannot be where the law is concerned. A cDl can only provide so much detail and in some limited cases more detail is needed, but not so much detail as to write the actual code. This is where abstract processes in choreography programming languages (cPl) come in.

An abstract process is a cDl program that has been stripped of some logic. More complete abstract processes may show variable handling but hide certain types of variable handling behind opaque functions. More bare bones abstract processes do not even specify what variables are to be used. A bare bones abstract process is similar to a cDl in the sense that it is not executable but unlike a cDl an abstract process can deal with issues beyond sending and receiving messages as well as specifying its behavior from the perspective of a single participant. A cDL on the other hand exclusively illustrates messaging behavior and only from a global view, that is, from the perspective visible to multiple participants rather than a single participant.

After the joint team created the cDl to describe the messages involved in the legally mandated change approval process they then created two abstract processes. The abstract processes provided the details of exactly how each participant was to process a change request. The abstract processes went beyond just describing the messaging behavior and also dealt with issues such as the actual logic used to route messages and some of the transformations involved. This level of detail provided by the abstract process was necessary to ensure that both teams behaved exactly as legally required and since it is impossible to express this level of detail in a cDl an abstract process was necessary.

The joint team chose an abstract process over an executable process in order to not hinder each company's ability to implement the logic in the way they saw fit. What was needed was only a detailed description of the desired behavior, not actual running code. This made the abstract process the more desirable choice.

3.2.11 D- UC-11 " Supporting collaboration

Submitted by: BEA, Inc.

Ref: http://lists.w3.org/Archives/Member/member-ws-chor/someURL

3.2.11.2 Description

The problem Particpants A, B and C collaborate on designing a system to join their businesses together using web services at each end. To do this they do the usual pictures and prose which describes the interaction of the system that they jointly wish to build. This is sent out as the requirements and architectural overview of the system.

The high level design A team of CP's get together at A, B and C and describe their own roles using a cDL and then get together to knit the three cDL's together thus forming what is a nascent global view for A, B and C.

The transport This nascent view is further elaborated as the importance of different parts of the choreography are identified and marked as requiring a certain QoS of the underlying transport.

The low level design This choreography is then used to do drive the development of the web services at A, B and C. In the case of A, who has no existing web service that meets these requirements it is used to generate the appropriate code skeletons based on their favourite cPL. In the case of B who have a couple of web services that together will meet the requirements, they stitch it together as a choreography itself and restrict the visibility of the web services that they use to do it offering only entry and exit points in the sub-choreography. In the case of C, well it turns out they have an old system that really does meet the requirements and so they simply wrap that system using WSDL and present it as a web service as is.

Testing Having done all of this each of the participants (A, B and C) use the agreed choreography expressed in this cDL to drive their testing. The cDL together with a special tool is used to generate test messages and is used to validate the responses as they perform the requisite unit testing. When they step up to the system and integration testing phases of the overall system the cDL comes into its own yet again by enabling them to have a clear picture of the message exchanges, and therefore the external observable behaviours of each others systems thus ensuring that the testing is completed within the time and under budget.

Verification In a market place that is highly regulated it turns out that the interchange between A, B and C needs to be shown to be correct. The agreed choreography is checked against the regulators view of what the choreography should be. By performing a bi-simulation it is shown to be incorrect and the regulator requires changes. The changes are made but the impact is quiet different for A, B and C. For A the changes are fairly simple because they generated from the cDL. They simply apply the changes at the high level and the changes get rolled in. For B, who combined web services to meet the requirements upon them, took more time because they could not simply generate. They had to do the usual impact analysis and so on and then apply the changes by hand, fortunately their changes were simply structural on the choreography itself and not on their web services. C had the worst job of all because it required changes to their legacy system. So they had to implement a WSDL wrapper for their system, add new functionality on top. Then they wrapped the new functionality and applied yet more WSDL and then bundled it all back into a sub choreography and so on. The bi-simulation results in only minor changes to the choreography which are implemented and the system resubmitted. This time it is passed and is provisioned. The regulators choreography description, again using the cDL, is used for runtime continual validation by the regulator and the companies A, B and C.

In this use case the roles of A, B and C are as follows:

  • Company A plays the role of supplier to end users.

  • Company B provides credit checking facilities to A.

  • Company C provides shipping facilities to A



3.2.11.8 Notes / Issues

This use case compares and contrasts two distinct choreography related problems that may require complementary but separate solutions. For the purpose of clarity we define these problems in terms of two languages that we call a choreography programming language (cPL) and choreography description language (cDL).

A cPL is a programming language specifically designed to address long running asynchronous logic such as that commonly used in business process scenarios. A participant in a choreography would be expected to implement their executable code using a cPL, examples of cPL's are Java and C#. For the purpose of clarity other cPL examples which are not yet mainstream are DAML-S and BPEL4WS1.1 as well as WS-BPEL which is in development at Oasis.

A cDL is a description language used to provide a declarative, multi-party global view of a message choreography. A cDL only focuses on message passing and exist primarily to enable participants in a choreography to understand the expectations of their messaging behavior in relation to other participants. Thus:

  • A cDL can describe the external observable interactive behaviour of two or more web services relative to each other.

  • A cDL can be used to generate cPL code skeletons.

  • A cDL can be used to verify the behaviour of a participant with respect to it's role.

  • A cDL can be used to generate test cases.

  • A cDL is independent and orthogonal to the language in which it's participating web services are implemented.



As a consequence of this a cDL may not need to be executable and there maybe a reason to have this fact stated in some way in a cDL language.

4 Choreography Requirements

4.6 Exception Handling

D-CR-005 Category: Exception Handling Level: MUST
A choreography MUST provide exception handling that allows propogation of errors.
D-CR-009 Category: Exception Handling Level: MUST
A choreography MUST provide the ability to transition to a distinct state when a timeout occurs.
D-CR-018 Category: Exception Handling Level: SHOULD
A choreography SHOULD define a standardized way to recover from catastrophic failure.
D-CR-026 Category: Exception Handling Level: MUST
A choreography MUST support rebust exception handling.
D-CR-027 Category: Exception Handling Level: MUST
Error/fault handling and compensation features MUST to be able to be expressed in the choreography definition language.
D-CR-030 Category: Exception Handling Level: MUST
A choreography MUST be able to distinguish error and regular state transitions, and to describe unhandled exceptions.
D-CR-031 Category: Exception Handling Level: MUST
A choreography MUST support an exception condition for Delivery Failure - The message was sent but was (probably) not received.
D-CR-032 Category: Exception Handling Level: MUST
It MUST be possible to manage exceptions between choreographies, and to include exception handling information in dependency management.
D-CR-033 Category: Exception Handling Level: MUST
A choreography MUST provide support for defining behavior of the system, when valid error/exception messages arrive for choreography instances after their completion (or before their initiation).
D-CR-043 Category: Exception Handling Level: MUST
It MUST be possible to differentiate errors (unknown and fatal) and exceptions (known and potentially recoverable) in the context of choreography.
D-CR-061 Category: Exception Handling Level: MUST
A choreography MUST provide the ability to transition to a predefined state when an exception occurs.
D-CR-064 Category: Exception Handling Level: SHOULD
If a process detects that a choreography is not being followed correctly, then the process SHOULD be able to use the choreography definition to identify exactly what went wrong.
D-CR-065 Category: Exception Handling Level: MUST
A choreography definition language MUST support the following exception: message format error - the components of the message were not validly constructed.
D-CR-066 Category: Exception Handling Level: MUST
A choreography definition language MUST support the following exception: message Content structure error.
D-CR-067 Category: Exception Handling Level: SHOULD
A choreography definition language SHOULD support exceptions whereby a given service component could be sent at any point in the transaction.
D-CR-068 Category: Exception Handling Level: MUST
Exception types MUST be limited to the ones that will be used in the choreography definition language.
D-CR-069 Category: Exception Handling Level: MUST
It MUST be possible to model different states for termination of the choreography (e.g. failure and success).
D-CR-070 Category: Exception Handling Level: MUST
A choreography definition language MUST support the following exception: transmission error - message not sent.

4.11 Composition

D-CR-003 Category: Composition Level: MAY
A choreography MAY have run time changes which allow the actual participants to vary.
D-CR-006 Category: Composition Level: MUST
It MUST be possible to describe choreographies as a composition of other choreographies.
D-CR-019 Category: Composition Level: MUST
It MUST be possible to make a choreography C2 dependent on another choreography C1 such that you can only create a new instance of C2 after a related instance of C1 has been completed.
D-CR-024 Category: Composition Level: MUST
It MUST be possible to dynamically determine the participants in a choreography at runtime.
D-CR-034 Category: Composition Level: MUST
Choreographies MUST be composable into a hierarchy.
D-CR-036 Category: Composition Level: SHOULD
Choreographies SHOULD be able to call other choreographies in a hierarchical fashion.
D-CR-040 Category: Composition Level: MUST
It MUST be possible to describe parallel composition of services.
D-CR-041 Category: Composition Level: MUST
It MUST be possible to model events that are strictly related in time, as well as those that are unrelated in time - i.e. parallelism or partial ordering.
D-CR-042 Category: Composition Level: MAY
A choreography MAY have run time changes which allow the behaviour of the actual choreography to vary based on state.
D-CR-047 Category: Composition Level: MUST
It MUST be possible to define a new choreography by "extending" an existing one.
D-CR-054 Category: Composition Level: SHOULD
A choreography SHOULD express the composition of participant web services into a new service.
D-CR-062 Category: Composition Level: MUST
It MUST be possible to dynamically add sub-choreographies to a "running" choreography.

5 Correlation of Use Cases and Requirements

6 Appendix A - References

6.2 Informative References

BPEL
Business Process Execution Language for Web Services Version 1.1 , Tony Andrews, Francisco Curbera, Hitesh Dholakia, Yaron Goland, Johannes Klein, Frank Leymann, Kevin Liu, Dieter Roller, Doug Smith, Satish Thatte, Ivana Trickovic, Sanjiva Weerawarana. BEA, IBM, Microsoft, SAP, and Siebel, 2003. Available from http://www-106.ibm.com/developerworks/library/ws-bpel .
BPML
Business Process Markup Language 1.0 , Assaf Arkin. BPMI.org, 2002. Available from http://www.bpmi.org/specifications.esp .
BPSS
ebXML Business Process Specification Schema Version 1.01 , ebXML Business Process Project Team. UN/CEFACT and Oasis, 11 May 2001. Available from http://www.ebxml.org/specs/ebBPSS.pdf .
CSF
Chief Executives Define Their Own Data Needs , Rockart, J., Harvard Business Review, March/April 1979.
UML
Unified Modeling Language Version 1.5 , Object Management Group, March 2003. Available from http://www.omg.org/technology/documents/formal/uml.htm .
WSCI
Web Service Choreography Interface 1.0 , Assaf Arkin, Sid Askary, Scott Fordin, Wolfgang Jekeli, Kohsuke Kawaguchi, David Orchard, Stefano Pogliani, Karsten Riemer, Susan Struble, Pal Takacsi-Nagy, Ivana Trickovic, Sinisa Zimek, Editors. World Wide Web Consortium, 15 March 2001. Available from http://www.w3.org/TR/wsci .
WSCL
Web Services Conversation Language (WSCL) 1.0 W3C Note 14 March 2002 , Arindam Banerji, Claudio Bartolini, Dorothea Beringer, Venkatesh Chopella, Kannan Govindarajan, Alan Karp, Harumi Kuno, Mike Lemon, Gregory Pogossiants, Shamik Sharma, Scott Williams, Editors. World Wide Web Consortium, 14 March 2002. Available from http://www.w3.org/TR/wscl10 .
WS-COOR
Web Services Coordination (WS-Coordination) , Felipe Cabrera, George Copeland, Tom Freund, Johannes Klein, David Langworthy, David Orchard, John Shewchuk, Tony Storey. BEA, IBM and Microsoft, 2002. Available from http://www-106.ibm.com/developerworks/library/ws-coor/ .
WS-TRANS
Web Services Transaction (WS-Transaction) , BEA, IBM and Microsoft, 2002. Available from http://www-106.ibm.com/developerworks/webservices/library/ws-transpec/ .

7 Appendix B - Acknowledgements

The editors would like to thank Jack Herer, Len Greski, and all of the members of the Web Services Choreography Working Group for their assistance.