- 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