Title: Building distributed systems using WS-CDL
1Building distributed systems using WS-CDL
- 10th June 2007
- Steve Ross-Talbot
- Chair Pi4 Technologies Foundation
- CTO Hattrick Software Ltd
- Chair W3C Web Services Choreography WG
- Thanks to
- Pi4 Technologies Foundation Ltd
(www.pi4tech.com) - Hattrick Software Ltd (www.hattricksoftware.com)
- World Wide Web Consortium (Choreography Working
Group)
2Agenda
- Background
- p4 Technologies Foundation
- Hattrick Software Ltd
- WS-CDL
- Simple example
- Case study
- Research
3Background
4p4 Technologies Foundation
- Founded in November 2005
- Kohei Honda, Nobuko Yoshida, Marco Carbone, Robin
Milner, Steve Ross-Talbot, Gary Brown - Enable collaborative research between industry
and academia in applying formalisms to
distributed systems development
5p4 Technologies Foundation
- Bi-directional (open format for collaboration)
- Real world examples -gt academia
- Academia research -gt industry
- Forums for discussion
- www.pi4tech.org
- Open source environment for research and
development. (Apache 2.0) - CDL toolsuite
- Advanced type system
6p4 Technologies Foundation
- Results so far
- CDL tool suite - eclipse-based community edition
- Modeling editor
- Generation to wsdl, java, ws-bpel
- Export to html, bpmn, ws-cdl, uml
- Scenarios
- Editor
- Validation
- Vertical standards use (FpML, TWIST, ISO WG4)
- Modeling editor with wsdl, html, bpmn, ws-cdl and
uml - Scenrios editor and validation
- Complements existing vertical standards packs
- Static
- Document, Validated example message, XMLSchema,
Example scenarios - Dynamic
- Document, Validated example scenarios, WS-CDL
description
7p4 Technologies Foundation
An example in CDM
8p4 Technologies Foundation
Exported to BPMN
9p4 Technologies Foundation
Exported to HTML
10p4 Technologies Foundation
Exported to HTML
11p4 Technologies Foundation
Exported to CDL
12p4 Technologies Foundation
Exported to CDL
13p4 Technologies Foundation
Support for scenarios validated against the
choreography
14Hattrick Software Ltd
- Commercial entity charged with solving the
problems of automation of OTC Derivatives
Trading. - Long lived, complex peered processes in which
parties may change roles - ClearGate generic WS-CDL-based protocol
enforcer/monitor
15WS-CDL
16WS-CDL
- A language to describe the collaborative
external observable behavior of a set of peered
systems/services/applications as an ordered set
of interactions over one or more logical channels
that connect them.
17Simple example
x
18Simple example
19Roles
20Relationships and Participants
21Channels and Info types
22Bindings
23Variables
24Interactions
25Choice
26Workunits
27Workunits
28Workunits
This is what we used
29Workunits
30Theory
- Global Calculus
- Distillation of WS-CDL
- Reduction rules, etc
- End point Calculus
- Correspondance to Global Calculus
- Reduction riles, etc
http//www.w3.org/2002/ws/chor/edcopies/theory/not
e.pdf
31Theory
http//www.w3.org/2002/ws/chor/edcopies/theory/not
e.pdf
32Theory
http//www.w3.org/2002/ws/chor/edcopies/theory/not
e.pdf
33WS-CDL Benefits
- A complete and unambiguous description of a
distributed system of how peered roles or
participants should interact and the order in
which these interactions should take place. - Enables code generation for a distrbuted system
(end point projections) and guarantees
interoperability of that system by design. - Enables us to ask questions of a system so
described - Is it free from deadlocks, livelocks and races?
34Case Study
- FpML
- Financial Products Markup Language
- Policed by ISDA
- FpML today is
- A set of documents that describe the structure of
how to encode financial products in XML - XMLSchema to enable validation of correct message
formats and a set of example messages - There are a set of sequence diagrams to govern
when to send what to whom
35Why WS-CDL?
- Consider the following
- Three companies wish to embark on a common
business process. They are PartyA, PartyB and
Confirmer. - PartyA Is a seller selling some commodity
- PartyB Is a buyer buying some commodity
- Confirmer Acts as a central/brokered matching
service that both PartyA and PartyB use to ensure
that the contract between them matches (is
valid). Confirming is legally binding.
36Why WS-CDL?
- This is a distributed system in which no one
company has dominion over any other. - PartyA, PartyB and Confirmer are all peers.
- PartyA, PartyB and Confirmer could be different
parts of the same company or different companies. - PartyA, PartyB and Confirmer need to interact to
progress some common goal such as buying and
selling some goods.
37Why WS-CDL?
Confirmer
PartyA
PartyB
38Why WS-CDL?
- How we do this today using older technology
- XMLSchema, UML Activity Models, Sequence
Diagrams, etc - How we do this with WS-CDL
- XML Schema, WS-CDL description,
Scenarios/Sequence Diagrams, multiple formats for
review
39Today
XMLSchema for data formats
40Today
41Today
42Today
43Today
44Using WS-CDL
Choreography description Parallel // PartyA
thread RequestTradeConfirmation
PartyA2Confirmer RequestTradeMatch
Confirmer2Matcher // PartyA thread //
PartyB thread RequestTradeConfirmation
PartyB2Confirmer RequestTradeMatch
Confirmer2Matcher .
45Using WS-CDL
While (not inConfirm) Choice // ----
Modification by PartyA ModifyTradeConfirmation
PartyA2Confirmer ModifyTradeMatch
Confirmer2Matcher // ---- Modification
by PartyB ModifyTradeConfirmation
PartyB2Confirmer ModifyTradeMatch
Confirmer2Matcher
46Using WS-CDL
Choice Sequence // ---- Confirmation
process Choice Sequence // ----
TradeMatched ---- TradeMatched
Matcher2Confirmer Parallel
TradeMatched Confirmer2PartyA
TradeMatched Confirmer2PartyB
ConfirmTrade PartyA2Confirmer Pa
rallel TradeConfirmed Confirmer2PartyA
TradeConfirmed Confirmer2PartyA
.. // End
Choice // End Sequence
47Using WS-CDL
Choice // ---- TradeMismatched
---- TradeMismatched Matcher2Confirmer Par
allel TradeMismatched Confirmer2Alleger
TradeMismatched Confirmer2Acceptor
// Alleger cancels CancelTradeCo
nfirmation Alleger2Confirmer CancelTradeMatch
Confirmer2Matcher Parallel
ConfirmationCancelled Confirmer2Alleger
ConfirmationCancelled Confirmer2Acceptor
.. // same but other way around // End
Choice
48Using WS-CDL
49Question
50Question
Is this valid against our model?
51Question
Session Joining?
52Completeness
- Sequence diagrams do not capture everything.
- WS-CDL does. It is unambiguous and precise.
53Research
54Future Directions
- WS-CDL 2
- Added participant instances, notifications,
semantic annotations - Type system implementation
- Carbone et al
- Scribble - language for multicore, multi-process
communication-based programming - Honda et al
- Two research project proposals
- COWS Contract Oriented Web Services
- ModelWeb Model-Driven Engineering of Policy- and
Choreography- Based Web Services
55Questions