W3C home > Mailing lists > Public > public-ws-chor@w3.org > August 2006

Re: Issue and Proposal: Example in 6.2.3

From: Monica J. Martin <Monica.Martin@Sun.COM>
Date: Wed, 02 Aug 2006 12:42:35 -0700
To: Gary Brown <gary@pi4tech.com>
Cc: "'WS-Choreography List'" <public-ws-chor@w3.org>
Message-id: <44D1002B.7020404@sun.com>


> brown: Hi
> The example at the end of "6.2.3 Interaction Syntax" shows a means of 
> channel passing that is not suitable for supporting advanced type 
> checking of a choreography.
>
> This is because the source of the channel cannot be determined or 
> traced, and therefore if the channel is passed via multiple endpoints, 
> it would not be possible to determine if it was the same channel 
> instance, or different channel instances being passed around. At 
> present, channel passing in CDL must be more explicit (i.e. the 
> exchange variable should reference the channel variable).

mm1: Gary, isn't this only an example change? Are you inferring some 
proposed change in the channel passing mechanisms (As we provided 
different usages on identity of the channelType and the channelType 
itself originally by your proposal previously)? Thanks.

>
> Proposal is to remove the channel passing aspects of this example. 
> Suitable channel passing examples (I believe) will be provided as part 
> of the primer.
>
>
> Changes required:
>
> Remove the following bullet points from section 6.2.3:
>
> "The variable "consumer-channel" is made available at the "Retailer" 
> using the record element"
>
> "The "consumer-channel" is sent as a part of "purchaseOrder" 
> interaction from the "Consumer" to the "Retailer" on 
> "retailer-channel" during the request. Here the record element makes 
> available the "Consumer-channel" at the "Retailer" roleType. If the 
> |align| attribute was set to "true" for this interaction, then it also 
> means that the "Consumer" knows that the "Retailer" now has the 
> contact information of the "Consumer". In another example, the 
> "Consumer" could set its variable "OrderSent" to "true" and the 
> "Retailer" would set its variable "OrderReceived" to "true" using the 
> |record| element"
>
>
> From the actual example, remove the following fragments:
>
> <channelType name="ConsumerChannel">
>    <roleType typeRef="tns:Consumer"/>
>    <reference>
>      <token name="tns:consumerRef"/>
>    </reference>
>    <identity>
>      <token name="tns:purchaseOrderID"/>
>    </identity>
>  </channelType>
>
>
>    <passing channel="ConsumerChannel" action="request" /> - from the 
> RetailerChannel ChannelType definition
>
>
> Change: (in the request exchange)
>
>        <receive variable="cdl:getVariable('tns:purchaseOrder','','')"
>                 recordReference="record-the-channel-info" />
>
> To:
>
>        <receive variable="cdl:getVariable('tns:purchaseOrder','','')" />
>
>
> Remove:
>
>      <record name="record-the-channel-info" when="after">
>        <source variable="cdl:getVariable('tns:purchaseOrder','', 
>                                          '/PO/CustomerRef')"/>
>        <target variable="cdl:getVariable('tns:consumer-channel','','')"/>
>      </record>
>
>
>
>
>
>
Received on Wednesday, 2 August 2006 19:42:42 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Saturday, 18 December 2010 01:01:46 GMT