<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://training-course-material.com/index.php?action=history&amp;feed=atom&amp;title=WS-CDL</id>
	<title>WS-CDL - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://training-course-material.com/index.php?action=history&amp;feed=atom&amp;title=WS-CDL"/>
	<link rel="alternate" type="text/html" href="https://training-course-material.com/index.php?title=WS-CDL&amp;action=history"/>
	<updated>2026-04-14T18:08:44Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://training-course-material.com/index.php?title=WS-CDL&amp;diff=7847&amp;oldid=prev</id>
		<title>Bernard Szlachta at 03:01, 17 November 2012</title>
		<link rel="alternate" type="text/html" href="https://training-course-material.com/index.php?title=WS-CDL&amp;diff=7847&amp;oldid=prev"/>
		<updated>2012-11-17T03:01:13Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Cat|OCEB T200.1 - BPM}}&lt;br /&gt;
{{OCEB Links}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;slideshow style=&amp;quot;nobleprog&amp;quot; headingmark=&amp;quot;⌘&amp;quot; incmark=&amp;quot;…&amp;quot; scaled=&amp;quot;false&amp;quot; font=&amp;quot;Trebuchet MS&amp;quot; &amp;gt;&lt;br /&gt;
;title: WS-CDL&lt;br /&gt;
;author: Bernard Szlachta (NobleProg Ltd)&lt;br /&gt;
&amp;lt;/slideshow&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Source: http://www.w3.org/TR/ws-cdl-10/&lt;br /&gt;
&lt;br /&gt;
== Web Services Choreography Description Language ⌘ ==&lt;br /&gt;
* A W3C standard&lt;br /&gt;
* &amp;quot;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&amp;quot;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Web Services&amp;#039;&amp;#039;&amp;#039; specifications &lt;br /&gt;
** communication bridge between the heterogeneous computational environments used to develop and host applications&lt;br /&gt;
* 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&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Web Services Choreography&amp;#039;&amp;#039;&amp;#039; 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&lt;br /&gt;
&lt;br /&gt;
== Purpose of WS-CDL ⌘ ==&lt;br /&gt;
* 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.&lt;br /&gt;
* For the collaboration to work successfully, the rules of engagement between all the interacting participants must be provided.&lt;br /&gt;
* 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.&lt;br /&gt;
* The WS-CDL specification is aimed at being able &amp;#039;&amp;#039;&amp;#039;to precisely describe collaborations between any type of participant&amp;#039;&amp;#039;&amp;#039; regardless of the supporting platform or programming model used by the implementation of the hosting environment&lt;br /&gt;
&lt;br /&gt;
== Global Definition ⌘ ==&lt;br /&gt;
* Using the WS-CDL specification, a contract containing a &amp;quot;global&amp;quot; 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&lt;br /&gt;
* Each participant can then use the global definition to build and test solutions that conform to it&lt;br /&gt;
* The global specification is in turn realized by combination of the resulting local systems, on the basis of appropriate infrastructure support.&lt;br /&gt;
&lt;br /&gt;
== Separation of concerns ⌘ ==&lt;br /&gt;
* The advantage of a contract based on a global viewpoint as opposed to any one endpoint is that it separates:&lt;br /&gt;
** the &amp;#039;&amp;#039;&amp;#039;overall &amp;quot;global&amp;quot; process&amp;#039;&amp;#039;&amp;#039; being followed by an individual business or system within a &amp;quot;domain of control&amp;quot; (an endpoint) &lt;br /&gt;
** from the &amp;#039;&amp;#039;&amp;#039;definition of the sequences&amp;#039;&amp;#039;&amp;#039; in which each business or system exchanges information with others&lt;br /&gt;
* This means that, as long as the &amp;quot;observable&amp;quot; sequences do not change, the rules and logic followed within a domain of control (endpoint) can change at will and interoperability is therefore guaranteed.&lt;br /&gt;
&lt;br /&gt;
==  Conformance to the contract ⌘ ==&lt;br /&gt;
* Corporate entities are often unwilling to delegate control of their business processes to their integration partners&lt;br /&gt;
* Choreography offers a means by which the rules of participation within a collaboration can be clearly defined and agreed to, jointly&lt;br /&gt;
* Each entity may then implement its portion of the choreography as determined by the common or global view&lt;br /&gt;
* It is the intent of WS-CDL that the conformance of each implementation to the common view expressed therein is easy to determine.&lt;br /&gt;
&lt;br /&gt;
== Sample Usage ⌘ ==&lt;br /&gt;
[[File:WS-CDL-sample-usage.png]]&lt;br /&gt;
&lt;br /&gt;
= WS-CDL Model Overview ⌘=&lt;br /&gt;
* WS-CDL describes interoperable, peer-to-peer collaborations between participants&lt;br /&gt;
* In order to facilitate these collaborations, services commit to mutual responsibilities by establishing formal relationships&lt;br /&gt;
* Their collaboration takes place in a jointly agreed set of ordering and constraint rules, whereby information is exchanged between the participants&lt;br /&gt;
== WS-CDL model entities ⌘==&lt;br /&gt;
# roleType, relationshipType and participantType&lt;br /&gt;
# informationType&lt;br /&gt;
# choreography &lt;br /&gt;
# channelType &lt;br /&gt;
# workunit &lt;br /&gt;
# activities and ordering structures&lt;br /&gt;
# interaction activity &lt;br /&gt;
# semantics &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== roleType, relationshipType and participantType ⌘ ===&lt;br /&gt;
* Within a choreography, information is always exchanged between participants within or across trust boundaries&lt;br /&gt;
* All interactions occur between roles being exhibited by participants, and are constrained by a relationship&lt;br /&gt;
* Within WS-CDL, a participant is abstractly modeled by a participantType, a role by a roleType, and a relationship by a relationshipType:&lt;br /&gt;
** &amp;#039;&amp;#039;&amp;#039;participantType&amp;#039;&amp;#039;&amp;#039; groups together those parts of the observable behavior that must be implemented by the same logical entity or abstract organization&lt;br /&gt;
** &amp;#039;&amp;#039;&amp;#039;roleType&amp;#039;&amp;#039;&amp;#039; enumerates potential observable behavior a participantType can exhibit in order to interact&lt;br /&gt;
** &amp;#039;&amp;#039;&amp;#039;relationshipType&amp;#039;&amp;#039;&amp;#039; identifies the mutual commitments that must be made for collaborations to be successful&lt;br /&gt;
&lt;br /&gt;
=== informationType, variable and token ⌘ ===&lt;br /&gt;
* A &amp;#039;&amp;#039;&amp;#039;variable&amp;#039;&amp;#039;&amp;#039; contains information about commonly observable objects in a collaboration, such as the information exchanged or the observable information of the roleTypes involved&lt;br /&gt;
* A &amp;#039;&amp;#039;&amp;#039;token&amp;#039;&amp;#039;&amp;#039; is an alias that can be used to reference parts of a variable&lt;br /&gt;
* Information exchange variables, state capturing variables and tokens have &amp;#039;&amp;#039;&amp;#039;informationTypes&amp;#039;&amp;#039;&amp;#039; that define the type of information the variable contains or the token references&lt;br /&gt;
&lt;br /&gt;
=== choreography ⌘ ===&lt;br /&gt;
A choreography defines collaborations between interacting &amp;#039;&amp;#039;&amp;#039;participantTypes&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
;choreography life-line&lt;br /&gt;
*  The choreography life-line expresses the progression of a collaboration&lt;br /&gt;
*  Initially, the collaboration is established between participants, then work is performed within it and finally it completes either normally or abnormally&lt;br /&gt;
&lt;br /&gt;
;choreography exception blocks&lt;br /&gt;
*  An exception block specifies what additional actions should occur when a choreography behaves in an abnormal way&lt;br /&gt;
&lt;br /&gt;
;choreography finalizer blocks&lt;br /&gt;
*  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&lt;br /&gt;
&lt;br /&gt;
=== channelType ⌘ ===&lt;br /&gt;
* A channel realizes a point of collaboration between participantTypes by specifying where and how information is exchanged&lt;br /&gt;
* Within WS-CDL, channels are abstractly modeled as channelTypes&lt;br /&gt;
&lt;br /&gt;
=== workunit ⌘ ===&lt;br /&gt;
* A workunit prescribes the constraints that must be fulfilled for making progress, and thus performing work, within a choreography&lt;br /&gt;
&lt;br /&gt;
=== activities and ordering structures ⌘ ===&lt;br /&gt;
* Activities describe the actions performed within a choreography&lt;br /&gt;
* Ordering structures combine activities with other ordering structures in a nested structure to express the ordering rules of actions performed within a choreography&lt;br /&gt;
&lt;br /&gt;
=== interaction activity ⌘ ===&lt;br /&gt;
* An interaction is the basic building block of a choreography&lt;br /&gt;
* It results in an exchange of information between participants and possible synchronization of their observable information changes&lt;br /&gt;
&lt;br /&gt;
=== semantics ⌘ === &lt;br /&gt;
* Semantics allow the creation of descriptions that can record the semantic definitions of every component in the model&lt;/div&gt;</summary>
		<author><name>Bernard Szlachta</name></author>
	</entry>
</feed>