Exchange type issue

Hi

As discussed on the conf call last night, I will outline the 
requirements for this change and the benefits if can offer.

1) We need the ability to distinguish whether or not an exchange with 
action="respond" is coupled with a preceding exchange with action="request".

A simple scenario would be where an interaction, with a request 
exchange, is followed by a choice that has two paths, and each path has 
an interaction with a 'respond' exchange for a normal response. 
Currently it is not possible to determine whether one of these is 
intended to be a response coupled with the request, or whether both are 
'out only' messages, or whether the user has in fact made an error in 
the choreography design, and is expecting both to be responses to the 
request.

2) The benefits of having a clear and explicit understanding of whether 
a response is actually coupled to a preceding request are:

a) Static validation - we can determine when a user has made an error, 
by specifying two normal responses.

b) Deriving correct service interfaces - service interfaces can be 
derived from the choreography description. However at the moment, even a 
simple case where there is a request followed by a separate interaction 
including a respond exchange, it may be unclear whether they are a 
one-way request followed by an 'out-only', or whether they are a 
request-response pair. Making this explicit in the choreography means 
that these ambiguities would not arise.


In relation to the terminology question, after further thought I believe 
that 'notify' is actually a suitable value for the new exchange action 
type. This is because it is exactly that, an action. The term notify 
simply means that someone will be informed, it does not imply whether 
there is one or more parties being informed. This is determined by the 
communication structure on which that notification is being sent - and 
at present CDL only supports point to point.

Regards
Gary

Received on Wednesday, 1 November 2006 09:06:44 UTC