Re: a question about interactions

Hi Roberto,

>From my perspective, your second example is the best way to express this 
scenario, because it clearly defines the order of activities (and 
dependencies between them).

When you say that you have concerns about the syntax, regarding this second 
approach, can you be more specific? Is it the fact that the interaction no 
longer represents the explicit binding of a request/response pattern?

Although this may not be obvious in the way the interactions are described, 
due to the separation of the request interaction from the response 
interaction, it can be verified against the interface definition to ensure 
that where necessary, a request interaction is always followed by a response 
pattern regardless of path taken.

Regards
Gary

----- Original Message ----- 
From: "Roberto Lucchi" <lucchi@cs.unibo.it>
To: <nickolas.kavantzas@oracle.com>; <charlton_b@mac.com>; 
<gary@enigmatec.net>; <tony_fletcher@btopenworld.com>; <steve@pi4tech.com>
Cc: <public-ws-chor@w3.org>; "Claudio Guidi" <cguidi@cs.unibo.it>
Sent: Wednesday, May 04, 2005 11:56 AM
Subject: a question about interactions


>
> Dear All,
>
> We are a group of researchers of the Dep. of Computer Science of Bologna
> University which investigates orchestration and choreography languages
> (some of us are involved in several workshops and conferences of this 
> topic,
> e.g. WS-FM'05 http://www.cs.unibo.it/WS-FM05/ or ICSOC'05).
>
> We are interested in the formal definition of the WS-CDL semantics.
> In particular, now we are investigating the semantics of interactions by
> using the Working Draft of December 17, 2004.
> We are interested to understand if CDL makes it possible to express, in a
> request-response interaction, that a certain choreography, say C, have to
> be performed between the request and the response.
>
> We have considered two possible solutions:
>
> 1. one exploiting work-units which are used to enable C when a state
> variable becames available after the request exchange.
>
> 2. one obtained (is it correct?) by splitting the request-response
> interaction (note that this is not a call-back):
>
> <roleType name="roleC">
>    <behavior name="BehaviourC" interface="tns:undefinedCPT"/></roleType>
> <roleType name="RoleD">
>    <behavior name="BehaviourD" interface="tns:undefinedDPT"/></roleType>
> <relationshipType name="relationshipCD">
>   <role type="roleC" behavior="BehaviourC"/>
>   <role type="roleD" behavior="BehaviourD"/>
> </relationshipType><channelType name="ChannelCD" action="request-respond">
>    <role type="roleD"/>
>    <reference><token name="tns:undefinedRefD"/></reference>
> </channelType>
> <choreography name="sampleChoreography" root="true">
>    <relationship type="relationshipAB"/>
>    <variableDefinitions>
>      <variable name="z" informationType="tns:zkType"
>                roleTypes="roleC" silent="true" />
>      <variable name="k" informationType="tns:zkType"
>                roleTypes="roleD" silent="true" />
>      <variable name="w" informationType="tns:wqType"
>                roleTypes="roleD" silent="true" />
>      <variable name="q" informationType="tns:wqType"
>                roleTypes="roleC" silent="true" />
>      <variable name="CDchan" channelType="tns:ChannelCD"/>
>    </variableDefinitions>
>
>    <sequence>
>    <interaction name="interactionCD"  channelVariable="tns:CDchan"
>                 operation="tns:opCD" align="true" >
>      <participate relationshipType="tns:relationshipCD"
>                   fromRole="tns:roleC" toRole="tns:roleD"/>
>      <exchange name="requestCD"
>                informationType="tns:zkType" action="request">
>        <send variable="cdl:getVariable("tns:z", "", "")" />
>        <receive variable="cdl:getVariable("tns:k", "", "")"/>
>      </exchange>
>    </interaction>
>    <perform>
>   <!--  Choreography C -->
>    </perform>
>    <interaction name="interactionCD"  channelVariable="tns:CDchan"
>                 operation="tns:opCD" align="true" >
>      <participate relationshipType="tns:relationshipCD"
>                   fromRole="tns:roleC" toRole="tns:roleD"/>
>      <exchange name="responseCD"
>                informationType="tns:wqType" action="respond">
>        <send variable="cdl:getVariable("tns:w", "", "")" />
>        <receive variable="cdl:getVariable("tns:q", "", "")"/>
>      </exchange>
>   </interaction>
>   </sequence>
> </choreography>
>
> In the former we cannot guarantee that C completes before the response
> (could be useful such a constraint?), while in the latter it seems to be
> possible but we have some concerns about the syntax. Could you help us to
> clarify this issues?
>
> Thanks in advance
>
> Best regards,
> Roberto Lucchi
>
>
>
>
>
>
> 

Received on Friday, 6 May 2005 14:46:33 UTC