Relationship issue example

Hi

This is an example where a choreography has been defined with 4 participant types. However the choreography consists of two sub-choreographies that have no connection between them. Therefore, even though the two sub-choreographies are performed in sequence, there are no common participants between each of the sub-choreographies, and therefore no sequential ordering in terms of a global model.

One way to solve this problem would be to suggest/enforce that both of the sub-choreographies need a common participantType. However, this may require that the common participant type is the one that 'initiates' the second sub-choreography, as it would be the only one that knows when the first sub-choreography has completed.

If there is no linkage between the different sub-choreographies (i.e. common participants), then we would need to ask whether this is a valid choreography - as in reality it is describing two completely independent choreographies within the one CDL document.

Example has been attached and pasted below (although not formatted).

Regards
Gary




<?xml version="1.0" encoding="UTF-8"?>
<package name="relationship" author="GB" version="1.0" targetNamespace="mynamespace" xmlns="http://www.w3.org/2004/12/ws-chor/cdl"><description type="description">Example to show issue with relationships in different choreographies</description><informationType name="string" type="xs:string"/><token name="string" informationType="string"/><roleType name="roletype1"><behavior name="behavior1"/></roleType><roleType name="roletype2"><behavior name="behavior2"/></roleType><roleType name="roletype3"><behavior name="behavior3"/></roleType><roleType name="roletype4"><behavior name="behavior4"/></roleType><relationshipType name="rel1"><role type="roletype1"/><role type="roletype2"/></relationshipType><relationshipType name="rel2"><role type="roletype3"/><role type="roletype4"/></relationshipType><participantType name="part1"><role type="roletype1"/></participantType><participantType name="part2"><role type="roletype2"/></participantType><participantType name="part3"><role type="roletype3"/></participantType><participantType name="part4"><role type="roletype4"/></participantType><channelType name="channelType1"><role type="roletype2"/><reference><token name="string"/></reference></channelType><channelType name="channelType2"><role type="roletype4"/><reference><token name="string"/></reference></channelType><choreography name="mainchoreo" root="true"><relationship type="rel1"/><relationship type="rel2"/><choreography name="subchoreo1"><relationship type="rel1"/><variableDefinitions><variable name="chan1" channelType="channelType1"/></variableDefinitions><interaction name="first interaction" operation="firstOp" channelVariable="chan1"><participate relationshipType="rel1" fromRole="roletype1" toRole="roletype2"/><exchange name="first request" informationType="string" action="request"><send/><receive/></exchange></interaction></choreography><choreography name="subchoreo2"><relationship type="rel2"/><variableDefinitions><variable name="chan2" channelType="channelType2"/></variableDefinitions><interaction name="second interaction" operation="secondOp" channelVariable="chan2"><participate relationshipType="rel2" fromRole="roletype3" toRole="roletype4"/><exchange name="first request" informationType="string" action="request"><send/><receive/></exchange></interaction></choreography><sequence><perform choreographyName="subchoreo1"><description type="description">Perform subchoreo1</description></perform><perform choreographyName="subchoreo2"><description type="description">Perform subchoreo2</description></perform></sequence></choreography></package>

Received on Wednesday, 16 March 2005 10:52:49 UTC