W3C home > Mailing lists > Public > public-ws-addressing@w3.org > October 2005

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

From: Jonathan Marsh <jmarsh@microsoft.com>
Date: Mon, 10 Oct 2005 10:22:41 -0700
Message-ID: <37D0366A39A9044286B2783EB4C3C4E85422E3@RED-MSG-10.redmond.corp.microsoft.com>
To: "David Hull" <dmh@tibco.com>, <public-ws-addressing@w3.org>
Isn't even the "advisory" option straying into implementation details of
a service?  Action enables dispatch, but we shouldn't care precisely how
the dispatch works.


For instance, I might have a service running on a single server that
looks at the body to determine what to do.  The next day I might insert
an action-based dispatcher to farm out the tasks to a number of servers.
In the interests of maximum interop the client shouldn't have to know or
care about these details.


It's enough for a service to say "I'm using Addressing, therefore you
must send me messages with wsa:Action headers, and here are the values
you should use."  What the service does with these values today,
tomorrow, or in 10 years, is up to it.



From: public-ws-addressing-request@w3.org
[mailto:public-ws-addressing-request@w3.org] On Behalf Of David Hull
Sent: Friday, September 30, 2005 9:49 AM
To: public-ws-addressing@w3.org
Subject: NEW ISSUE: When, if ever, MUST action be used for dispatch?



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.


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.


WSDL Binding


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
Received on Monday, 10 October 2005 17:23:22 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 19:28:29 UTC