RE: Clarifying exchange type

Dear Gary,

I hope all is well with you.

I have to admit that I have not thought this through in any depth, but at
first glance it seems a reasonable change to make and I can not immediately
think of any good reason for not making it (given the current stage of
development of CDL and uses of it).  If the change is agreed, do not forget
to update the schema as well.

Best Regards     Tony
A M Fletcher
  Tel: +44 (0) 1473 729537   Mobile: +44 (0) 7801 948219
 tony_fletcher@btopenworld.com         (also amfletcher@iee.org)


-----Original Message-----
From: public-ws-chor-request@w3.org [mailto:public-ws-chor-request@w3.org]
On Behalf Of Gary Brown
Sent: 24 October 2006 14:18
To: 'WS-Choreography List'
Subject: Clarifying exchange type



Hi

Currently the 'exchange' within an 'interaction' can have an action 
attribute with the values:

"Within the |exchange| element, the attribute |action| specifies the 
direction of the information exchanged in the interaction:

    *

      When the |action| attribute is set to "request", then the
      information exchange happens from the 'from' roleType to the 'to'
      roleType

    *

      When the |action| attribute is set to "respond", then the
      information exchange happens from the 'to' roleType to the 'from'
      roleType"


Where a request and response exchange are separated into different 
interactions, to enable intervening activities to be described, it 
requires the implementation to correlate the response exchange with the 
request exchange to determine they are part of a request-response MEP.

Although in most situations, the use of operation names should support 
the correlation of the responses with appropriate requests, there may be 
some situations where a response exchange that actually represents a 
notification may be incorrectly associated with a preceding request. 
This is because the action type for a notification exchange would also 
be 'respond'.

Therefore, although the chance of a notification exchange having the 
same operation name as a preceding request is remote, it is not 
forbidden, and therefore for clarity it would be useful to add a third 
exchange action type called "notify".

This would enable better static validation as it will now be clear what 
each exchange represents. For example, if an exchange is defined as a 
'respond' but no request precedes it, then this can be flagged as an 
error. Currently the assumption would be that it is a notification, and 
this would be silently ignored.

If the change is acceptable, then the following updates are required in 
section 6.2.3:

1) Modify second bullet point above:
From:

    *

      When the |action| attribute is set to "respond", then the
      information exchange happens from the 'to' roleType to the 'from'
      roleType"

To:

    *

      When the |action| attribute is set to "respond", then the
      information exchange happens from the 'to' roleType to the 'from'
      roleType" and the exchange MUST be associated directly or
      indirectly with a preceding exchange of action type "request" for
      the same operation and channel


2) Additional bullet point on text above:

    *

      When the |action| attribute is set to "notify", then the
      information exchange happens from the 'to' roleType to the 'from'
      roleType"



3) Following the para that starts "The OPTIONAL record element....."

From:
"When the |action| element is set to "response", then the recordings 
specified within the |source| and the |target| elements MUST occur at 
the 'to' roleType for the send and at the 'from' roleType for the receive"
To:
"When the |action| element is set to "respond" or "notify", then the 
recordings specified within the |source| and the |target| elements MUST 
occur at the 'to' roleType for the send and at the 'from' roleType for 
the receive"


Regards
Gary

Received on Tuesday, 24 October 2006 20:47:10 UTC