WS Choreography Deliverables
This document identifies the suggested deliverables of the WS Choreography activity. It consists
of the following:
- WS Choreography Primer
- WS Choreography Description Language
- Additional Specs
WS Choreography Primer
The following is a list of topics for the WS Choreography Primer. Note that it the primer explains what and why rather than how. Therefore it
is non-normative.
- Introduction
- Explains the problems to be solved and why choreographies are needed
- Relationship to other specifications
- Business Process Languages (e.g. BPEL)
- Service Definition Languages i.e. WSDL
- Messaging Protocols, especially SOAP
- Security Frameworks
- Reliable Messaging Frameworks
- Transaction/Coordination protocols
- Concepts. Most of these have equivalents in the normative part of the spec.
- Interactions
- The fundamental building block, independent of any implementation
- Abstract, Portable & Concrete Choreographies
- Provides more detail as required
- Bindings
- How to link Choreographies to WSDL
- Variables and Tokens
- How they can be used to pass channel and other variable information
- Composing Choreographies
- Building new choreographies out of existing choreography definitions
- Multi-party (i.e. > 2) roles (e.g. buyer, seller, shipper)
- Most of the spec will focus on just two roles. This section will explain
what's different when there are more than two.
- Multiple occurrences of a role, e.g. variable number and instances of
buyers in an auction
- Explains how multiple occurrences of a role are handled.
- Exceptions, Transactions and Recovery
- What they mean and how they are handled.
- Semantics
- How to describe choreographies
- Relationship to RDF and OWL?
- Using Choreographies. Suggests/recommends ways in which choreography
definitions could be used. The following is a (probably non-complete) list:
- As a re-usable standard
- International Standard - e.g. to specify how eCommerce is done
- Neutral on binding and content of messages
- Industry Standard
- Specifies bindings and content but not endpoints
- Company Standard
- Specifies bindings, content, and for one party, the endpoints
- Using Choreographies with Process Languages.
- How WS BPEL or other process languages that describe the behavior of one
role could be generated from the CDL
- Using choreography definitions at run-time
- Validating that a choreography is being performed correctly at run time.
- What to do when a choreography "sequence error" occurs
- Identifying Choreographies.
- How, to identify, in the instance (i.e. on a message):
- The choreography being performed (i.e. which CDL)
- The choreography instance (i.e. which performance of a CDL)
- The interaction (i.e. which interaction within the performance of a CDL)
- WSDL/BPEL
- How to identify which CDL(s) a WSDL definition can support
- How to identify which CDL(s) a BPEL definition can support
- Bindings to non Web Services based services
- Describe the issues, e.g. with examples where part of the choreography
requires a communication by phone.
- Outline how the CDL might be used for this purpose
- Examples. Ideally examples from these should be used in other parts of the
spec. One very simple to illustrate the basics, and one or two more complex
to demonstrate all the features. For each example include:
- The use case. Consisting of a "swim-lane" like diagram and
associated text description
- The XML instance for the Choreography Definition.
WS Choreography Description Language
This specification will define the formal language. It is normative. Most of the ideas will be
based on the WS Choreography Model Overview document.
- Introduction
- 1.1 Notational Conventions
- 1.2 Purpose
- 1.3 Goals
- 1.4 Relationship with WSDL
- 1.5 Relationship with Business Process Languages
- Language Concepts
- 2.1 Collaboration Types
- 2.1.1 Abstract Choreography
- 2.1.2 Portable Choreography
- 2.1.3 Concrete Choreographies
- 2.1.4 Relationship between Collaboration Types
- 2.2 Collaboration Packaging
- 2.3 Identifying and Coupling Collaborating Agents
- 2.3.1 Roles
- 2.3.2 Participants
- 2.3.3 Relationships
- 2.3.4 Channels
- 2.4 Information Driven Collaborations
- 2.4.1 Information Types
- 2.4.2 Variables
- 2.4.3 Tokens
- 2.4.4 Choreographies
- 2.4.5 Work Units
- 2.4.6 Reusing existing Choreographies
- 2.4.6.1 Composing Choreographies
- 2.4.6.2 Importing Choreographies
- 2.4.7 Choreography Life-line
- 2.4.8 Choreography Recovery
- 2.4.8.1 Exception Block
- 2.4.8.2 Transaction Block
- 2.5 Activities
- 2.5.1 Control Structures
- 2.5.2 Interacting
- 2.5.3 Performed Choreography
- 2.5.4 Assigning Variables
- 2.5.5 Defining actions with no business effect
- Example
- Language Elements
- 4.1. Choreography Document Structure
- 4.1.1. Choreography document Naming and Linking
- 4.1.2. Language Extensibility and Binding
- 4.1.3. Semantics
- 4.1.4. Data Types
- 4.2. Choreography Package
- 4.2.1. Importing definitions
- 4.3. Roles
- 4.4. Relationships
- 4.5. Channels
- 4.6. Information Types
- 4.7. Tokens and Token Locators
- 4.8. Variables
- 4.9. Choreography Definition
- 4.10. Activities Definition
- 4.10.1. Control Structures
- 4.10.1.1 Sequence
- 4.10.1.2 Parallel
- 4.10.1.3 Choice
- 4.10.2. Basic Activities
- 4.10.2.1. Perform activity
- 4.10.2.2. Interaction activity
- 4.10.2.2.1 Interaction Roles
- 4.10.2.2.2 Interaction Message Content
- 4.10.2.2.3 Interaction Channel Variables
- 4.10.2.2.4 Interaction Operations
- 4.10.2.2.5 Interaction State Changes
- 4.10.2.2.6 Interaction Based Alignment
- 4.10.2.2.7 Protocol Based Information Exchanges
- 4.10.2.3. Assign activity
- 4.10.2.4. NoAction activity
- 4.10.2.5. Finalize activity
- WSDL Bindings
- Relationship with the Security framework
- Relationship with the Reliable Messaging framework
- Relationship with the Transaction/Coordination protocol
- Acknowledgements
- References
- Appendix A - WS-CDL XSD Schemas
- Appendix B - WS-CDL Supplied Functions
Additional Specs
This contains ideas for additional specs that might be developed.
- Generating process language definitions (e.g. BPEL) for individual roles