WS-CDL
Jump to navigation
Jump to search
Source: http://www.w3.org/TR/ws-cdl-10/
Web Services Choreography Description Language ⌘
- A W3C standard
- "WS-CDL is an XML-based language that describes peer-to-peer collaborations of participants by defining, from a global viewpoint, their common and complementary observable behavior; where ordered message exchanges result in accomplishing a common business goal"
- Web Services specifications
- communication bridge between the heterogeneous computational environments used to develop and host applications
- the future of E-Business applications requires the ability to perform long-lived, peer-to-peer collaborations between the participating services, within or across the trusted domains of an organization
- Web Services Choreography specification is targeted for composing interoperable, peer-to-peer collaborations between any type of participant regardless of the supporting platform or programming model used by the implementation of the hosting environment
Purpose of WS-CDL ⌘
- Business or other activities that involve different organizations or independent processes are engaged in a collaborative fashion to achieve a common business goal, such as Order Fulfillment.
- For the collaboration to work successfully, the rules of engagement between all the interacting participants must be provided.
- Whereas today these rules are frequently written in English, a standardized way for precisely defining these interactions, leaving unambiguous documentation of the participants and responsibilities of each, is missing.
- The WS-CDL specification is aimed at being able to precisely describe collaborations between any type of participant regardless of the supporting platform or programming model used by the implementation of the hosting environment
Global Definition ⌘
- Using the WS-CDL specification, a contract containing a "global" definition of the common ordering conditions and constraints under which messages are exchanged, is produced that describes, from a global viewpoint, the common and complementary observable behavior of all the participants involved
- Each participant can then use the global definition to build and test solutions that conform to it
- The global specification is in turn realized by combination of the resulting local systems, on the basis of appropriate infrastructure support.
Separation of concerns ⌘
- The advantage of a contract based on a global viewpoint as opposed to any one endpoint is that it separates:
- the overall "global" process being followed by an individual business or system within a "domain of control" (an endpoint)
- from the definition of the sequences in which each business or system exchanges information with others
- This means that, as long as the "observable" sequences do not change, the rules and logic followed within a domain of control (endpoint) can change at will and interoperability is therefore guaranteed.
Conformance to the contract ⌘
- Corporate entities are often unwilling to delegate control of their business processes to their integration partners
- Choreography offers a means by which the rules of participation within a collaboration can be clearly defined and agreed to, jointly
- Each entity may then implement its portion of the choreography as determined by the common or global view
- It is the intent of WS-CDL that the conformance of each implementation to the common view expressed therein is easy to determine.
Sample Usage ⌘
WS-CDL Model Overview ⌘
- WS-CDL describes interoperable, peer-to-peer collaborations between participants
- In order to facilitate these collaborations, services commit to mutual responsibilities by establishing formal relationships
- Their collaboration takes place in a jointly agreed set of ordering and constraint rules, whereby information is exchanged between the participants
WS-CDL model entities ⌘
- roleType, relationshipType and participantType
- informationType
- choreography
- channelType
- workunit
- activities and ordering structures
- interaction activity
- semantics
roleType, relationshipType and participantType ⌘
- Within a choreography, information is always exchanged between participants within or across trust boundaries
- All interactions occur between roles being exhibited by participants, and are constrained by a relationship
- Within WS-CDL, a participant is abstractly modeled by a participantType, a role by a roleType, and a relationship by a relationshipType:
- participantType groups together those parts of the observable behavior that must be implemented by the same logical entity or abstract organization
- roleType enumerates potential observable behavior a participantType can exhibit in order to interact
- relationshipType identifies the mutual commitments that must be made for collaborations to be successful
informationType, variable and token ⌘
- A variable contains information about commonly observable objects in a collaboration, such as the information exchanged or the observable information of the roleTypes involved
- A token is an alias that can be used to reference parts of a variable
- Information exchange variables, state capturing variables and tokens have informationTypes that define the type of information the variable contains or the token references
choreography ⌘
A choreography defines collaborations between interacting participantTypes:
- choreography life-line
- The choreography life-line expresses the progression of a collaboration
- Initially, the collaboration is established between participants, then work is performed within it and finally it completes either normally or abnormally
- choreography exception blocks
- An exception block specifies what additional actions should occur when a choreography behaves in an abnormal way
- choreography finalizer blocks
- A finalizer block specifies additional actions that should occur to modify the effect of an earlier successfully completed choreography, for example to confirm or undo the effect
channelType ⌘
- A channel realizes a point of collaboration between participantTypes by specifying where and how information is exchanged
- Within WS-CDL, channels are abstractly modeled as channelTypes
workunit ⌘
- A workunit prescribes the constraints that must be fulfilled for making progress, and thus performing work, within a choreography
activities and ordering structures ⌘
- Activities describe the actions performed within a choreography
- Ordering structures combine activities with other ordering structures in a nested structure to express the ordering rules of actions performed within a choreography
interaction activity ⌘
- An interaction is the basic building block of a choreography
- It results in an exchange of information between participants and possible synchronization of their observable information changes
semantics ⌘
- Semantics allow the creation of descriptions that can record the semantic definitions of every component in the model