- From: Gary Brown <gary@pi4tech.com>
- Date: Fri, 6 May 2005 17:15:17 +0100
- To: "Roberto Lucchi" <lucchi@cs.unibo.it>
- Cc: <public-ws-chor@w3.org>, "Claudio Guidi" <cguidi@cs.unibo.it>
Comments inline ----- Original Message ----- From: "Roberto Lucchi" <lucchi@cs.unibo.it> To: "Gary Brown" <gary@pi4tech.com> Cc: <public-ws-chor@w3.org>; "Claudio Guidi" <cguidi@cs.unibo.it> Sent: Friday, May 06, 2005 4:27 PM Subject: Re: a question about interactions > > Dear Gary, > > On Fri, 6 May 2005, Gary Brown wrote: > >> 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? > > Yes, my concerns was about what should be used to correlate different > exchanges on different interactions, to this end in the proposed solution > we exploit the operation attribute and the interaction name. > Obviously, the operation must be defined, in the WSDL, as a > request-response one. > > However, I think that the align attributes should be associated at the > level of single interaction either for request and request-response > interactions while, by using this solution I can build, for instance, a > r-r interaction with only the request part aligned. GB: Depends what the 'align' is referring to - I believe that the align properties work at the individual exchange levels, and therefore by setting the align attribute on both of the interactions, this would represent the same behavior. GB: However, if the alignment of the complete request/response interaction is also required, then in the same manner that the coupling of the two interactions can be inferred (based on the association to the WSDL req/resp operation), so could the 'alignment' property be inferred across the two interactions. > Moreover, I wonder if <perform> of a choreography, say C, completes when > C completes or when C is enabled because this fact affects the solution we > propose. GB: The perform only completes when the choreography that is being performed completes. > > In light of this observation, in our opinion, the <interaction> should > allow to express if a certain choreography have to be performed within a > request-response operation. We also have proposed a formal language which > represents a kernel of a chorepgraphy language, a draft of such a proposal > is available at my home page: http://www.cs.unibo.it/~lucchi/pubbl.html > GB: Thanks for the reference, we will have a look with great interest. > Regards, > Roberto > > >> >> 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 16:15:32 UTC