- From: Gary Brown <gary@pi4tech.com>
- Date: Thu, 03 Aug 2006 08:56:39 +0100
- To: "Monica J. Martin" <Monica.Martin@Sun.COM>
- CC: 'WS-Choreography List' <public-ws-chor@w3.org>
Hi Monica
Yes, this is just a change to the example. Although the example is
perfectly legal, it would not be suitable for more advanced type
checking. Therefore I would not want it to appear in the spec where it
may be considered an approved approach for channel passing.
Regards
Gary
Monica J. Martin wrote:
>
>
>> 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 Thursday, 3 August 2006 07:58:54 UTC