Web%20Services%20Choreography%20Description%20Language%20Overview - PowerPoint PPT Presentation

About This Presentation
Title:

Web%20Services%20Choreography%20Description%20Language%20Overview

Description:

Common use of pi-calculus. Vertical standards. FIX, TWIST, fpML, SWIFT etc.... Summary ... Formally based on pi-calculus. Useful outside of Web Services ... – PowerPoint PPT presentation

Number of Views:53
Avg rating:3.0/5.0
Slides: 19
Provided by: list6
Learn more at: https://lists.w3.org
Category:

less

Transcript and Presenter's Notes

Title: Web%20Services%20Choreography%20Description%20Language%20Overview


1
Web 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

2
Agenda
  • 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

3
What 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

4
What 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

5
Why 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.

6
How 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)

7
Components 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

8
Components 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).

9
Components 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.

10
Components 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

11
Components 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.

12
Components 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
13
BPEL 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.

14
Approach
  • 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)

15
Approach
Mobile process calculi provided a natural
candidate.
16
Why process calculi?
17
Related 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.

18
Summary
  • 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
Write a Comment
User Comments (0)
About PowerShow.com