NEW ISSUE: When, if ever, MUST action be used for dispatch?

*Description*:

It is not clear under what circumstances, if any, the [action] property
must be used in conjunction with the wsaw:action attribute in the WSDL
to do dispatch.  Everyone knows what dispatching off of action means,
but it doesn't seem to be spelled out anywhere in our binding.

*Justification*:

In the core, we define a mandatory [action] property.  In the WSDL
binding, we define a way of associating a WSA [action] with each message
in an operation, including a defaulting rule if none is explicitly
present.  WSDL says (at least we say WSDL says :-) that ensuring that
there is enough information in a message to distinguish which operation
it is associated with is best practice.

What seems to be missing is any explicit mention of using [action] for
dispatch, something along the lines of "If an operation has a given
[action] associated with it, and a message comes in with that [action],
the processor MUST invoke that operation (assuming there are no other
errors)."  This would only be applicable when UsingAddressing is
present, or perhaps only when UsingAddressing is present with
wsdl:required true.

*Target:*

WSDL Binding

*Proposal:

*Add text to section 4 of the WSDL document saying one of:

    * wsaw:Action is purely advisory for dispatch.  Dispatch off of it
      or not as you like.
    * Dispatching off of wsaw:Action is mandatory whenever
      wsaw:UsingAddressing is present.
    * Dispatching off of wsaw:Action is mandatory whenever
      wsaw:UsingAddressing is present and wsdl:required is true.

If either of the last two is adopted, it is effectively an error to
associate the same action with different operations on the same
endpoint, and we should say this somewhere, either with a MUST NOT or a
SHOULD NOT.  We may want to say that wsaw:Action SHOULD be unique in any
case.

Received on Friday, 30 September 2005 16:49:12 UTC