Re: Issue and Proposal: Example in 6.2.3

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