Title: Web%20Services%20Choreography%20Description%20Language%20Overview
1Web Services ChoreographyDescription Language
Overview
- 24th November2004
- Steve Ross-Talbot
- Chief Scientist, Enigmatec Corporation Ltd
- Chair W3C Web Services Activity
- Co-chair W3C Web Services Choreography
2Agenda
- What is Choreography?
- What is CDL?
- Why would I use the CDL?
- How would I use the CDL?
- What are the components of CDL?
- BPEL and CDL
- The CDL approach
- Summary
3What is Choreography?
- A working group in W3C, that is tasked with
defining a language for describing peer to peer
interactions of services from a neutral
perspective. - Based on a formalized description of external
observable behavior across domains - Current status
- Requirements document (published March 2004)
- Model Overview document (published April 2004),
- 1st Working Draft of the CDL specification
(published April 2004), - Latest Working Draft of CDL (published Sept 2004)
- Next draft will form the basis of a Last Call
Working Draft
4What is CDL?
- CDL is the Choreography Description Language
- It is a language that can be used to describe
collaboration protocols of cooperating Web
Service participants in which - Services act as peers
- Interactions may be long-lived and stateful
- A CDL-based description is a multi-participant
contract that describes, from a neutral or global
viewpoint, the common observable behavior of the
collaborating Service participants
5Why would I use the CDL?
- You would use the CDL to create
- More robust Services because they can be
validated statically and at runtime against a
choreography description, - To ensure effective interoperability of Services,
which is guaranteed because Services will have to
conform to a common behavioral multi-party
contract specified in the CDL, - To reduce the cost of implementing Services by
ensuring conformance to expected behaviour
described in the CDL. This in turn can be used to
guide and structure testing and so reduce the
overall time to deployment of a Service. - To formally encode agreed multi-party business
protocols such as fpML, FIX, SWIFT and TWIST so
that those parties that use these protocols can
be sure of conformance across parties.
6How would I use the CDL?
- You would use the CDL through a validating design
tool, perhaps as an Eclipse plug-in. - You would describe your multi-party contract in
terms of a global model and it would be rendered
in CDL. - You would use additional CDL-based tools to
generate - Skeletal code (in Java, C, BPEL etc) that
ensures behavior of a service conforms to the CDL
description, - Test programs that generate appropriate messages
based on the CDL description, - You would use additional CDL-based tools to
provide runtime verification of services against
their expected behavior as defined in the CDL
description. - You would use CDL to describe existing
multi-party protocol in terms of their behavior
and import the necessary information types (data
types i.e. fpML CDL)
7Components of the CDL
- Package
- Information - data,
- Participants - service locations that implement a
set of roles, - Roles - service end points (WSDL),
- Relationships - association between roles
- Channel types communication channel definitions
- Choreography - the multi-party behavioral
contract details
8Components of the CDL (2)
- Choreography
- Composable unit that describes the behaviour
between the defined participants based on the
roles that they play and the channels that they
use to interact. - Channel instances
- Represents the communication 'pipe' that is
established between two roles. The channel type,
associated with the instance, may permit an
instance of the channel to transfer other channel
instances as valid messages (i.e. channel
passing). - Interaction
- Describes a communication between two
participants along a channel instance (e.g.
req/resp, oneway req, etc).
9Components of the CDL (3)
- Workunits
- A workunit represents a grouping construct for a
set of contained activities - A workunit can define a guard condition, to make
these activities conditional - A workunit can express a repetition condition, to
indicate whether the activities should be
repeated - A workunit can be used for synchronization based
the variables used in the guard condition. If
variables used in the condition are not currently
set, then the evaluation of the condition would
suspend until all the information was available.
10Components of the CDL (4)
- Activities
- Sequence - describes a sequence of activities
- Parallel - describes a parallel set of activities
- Choice describes a mutually exclusive set
of activities - Perform - describes an enclosed choreography to
be peformed - Variable assignment - described the assignment of
variable information
11Components of the CDL (5)
- Exceptions
- a special kind of workunit associated with a
choreography that is enabled when an exception is
detected. - Finalizers
- A finalizer defines a set of activities. When a
'performed' choreography completes successfully,
it can enable one or more finalizers. One of
these finalizers can then be selected by the
performing choreography to complete the work
associated with the 'performed' choreography
(e.g. Confirm or Cancel). This mechanism can be
used to provide a typical compensation model, as
well as support a range of coordination models.
12Components of the CDL (6)
ltchoreography name"priceRequest"
root"false"gt ltrelationship type"tnsBuyerSeller
"/gt ltvariableDefinitionsgt ltvariable
name"SellerA informationType"tnschannelType"/gt
ltvariable name"SellerB informationType"tnsc
hannelType"/gt lt\variableDefinitionsgt ltparallel
gt lt!Two interactions with two variables --
gt ltinteraction channelVariable"tnsSellerA
operation"priceRequest" align"false"
initiateChoreography"true"gt ltparticipate
relationship"tnsBuyerSeller" fromRole"tnsBuyer
" toRole"tnsSeller"/gt ltexchange
messageContentType"tnspriceReqMessage"
action"request" /gt ltexchange
messageContentType"priceRespMessage"
action"respond" /gt lt!Record the price at
the buyer role for later consolidation into
prices -- gt ltrecord role"tnsBuyer"
action"response"gt ltsource variable"cdlgetVa
riable(tnsprice, PR/????, tnsSeller)"/gt
lttarget variable"cdlgetVariable(tnspriceA,
tnsBuyer)"/gt lt/recordgt lt/interactiongt
ltinteraction channelVariable"tnsSellerB"
operation"priceRequest" align"false"
initiateChoreography"true"gt ltparticipate
relationship"tnsBuyerSeller" fromRole"tnsBuyer
" toRole"tnsSeller"/gt ltexchange
messageContentType"tnspriceReqMessage"
action"request" /gt ltexchange
messageContentType"priceRespMessage
action"respond" /gt lt!Record the price at
the buyer role for later consolidation into
prices -- gt ltrecord role"tnsBuyer"
action"response"gt ltsource variable"cdlgetVa
riable(tnsprice, PR/????, tnsSeller)"/gt
lttarget variable"cdlgetVariable(tnspriceB,
tnsBuyer)"/gt lt/recordgt lt/interactiongt
lt\parallelgt lt\choreographygt
13BPEL and CDL
- BPEL
- Orchestration implies a centralized control
mechanism. - Recursive Web Service Composition.
- Executable language.
- Requires Web Services.
- CDL
- Choreography has no centralized control. Instead
control is shared between domains. - Description language.
- Does not need Web Services but is targeted to
deliver over them. - Can be used to generate BPEL and so
complimentary.
14Approach
- Based on simple contract-like mechanisms
- Deadlock-freedom (Kobayashi, 99, 00)
- Liveness (Kobayashi, 01 Yoshida, et al, 02)
- Security (Abadi et al Cardelli and Gordon
Berger, Honda, Yoshida) - Resource management (Tofte Kobayashi Gordon and
Dal Zillio Yoshida, et al) - Race-condition detection (refs)
- Which are extensions to CCS/CSP and p-calulus
(Milner)
15Approach
Mobile process calculi provided a natural
candidate.
16Why process calculi?
17Related work
- WFMC
- Workflow
- Oasis BPEL TC
- Business process over web services
- Agent technologies
- Common use of pi-calculus
- Vertical standards
- FIX, TWIST, fpML, SWIFT etc.
18Summary
- The CDL is a language for describing observable
behavior of multiple participants within the
context of a global model - Formally based on pi-calculus
- Useful outside of Web Services
- Robustness, conformance, testing, verification
- Complimentary to many areas
- BPEL, Agents, FIX, fpML, TWIST etc
- Moving to Last Call end of 2004