- From: Gary Brown <gary@pi4tech.com>
- Date: Wed, 02 Aug 2006 11:53:26 +0100
- To: 'WS-Choreography List' <public-ws-chor@w3.org>
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). 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 10:53:46 UTC