proposal to add an {action} property to message and fault reference components

This is to close the action item I've had pending since the Nov
F2F. (That's the one related to the operation name feature
minority opinion I believe.)

I propose that we add an OPTIONAL {action} property to message and
fault reference components. The value of this property would be a
URI (or an IRI going with the WS-Addr style). The rules for
this are basically what are written down in "WS Addressing 1.0 - 
WSDL Binding" in section 3. Basically:

- user may set any value
- if a value is not set there's an algorithm defined to compute
  a default (see the WS-Addr doc for the algorithm)

The second part is the SOAP and HTTP bindings of this stuff. For
SOAP its quite easy and obvious:
- for SOAP 1.1, the value of the action property populates the
  SOAPAction header. 
- for SOAP 1.2, the value populates the "action" property of the
  content type header.
In either case, if WS-Addressing is engaged, then the value
of the {action} property becomes the value of wsa:Action (as
well (?); yes I believe so).

How do you indicate that WS-Addressing is engaged? That's easy;
you use <wsoap:module uri=".."/> to turn on the WS-Addressing
module by using the URI defined by the WS-Addr specification.

The HTTP binding- there's no obvious solution but I see a couple
of approaches that could work. The simplest is to define a 
special query parameter name (is that the right word?) to
add to the location property; say "wsdl:Action". So the value
would find its way into the HTTP URI as a query parameter then.
The alternative is to define a variation of one of the input
serializations (or augment one of them; not sure) to handle
the additional parameter, may be to put it as part of the path
itself. IMO the idea of having an automagic query parameter is
the simplest approach and works just fine.

Thus if we adopt this proposal we could also remove 
/binding/operation/@wsoap:action, thereby eliminating a very 
common reason to have to re-list operations in the binding. Ah, 
simplification.

=====

This proposal amounts to shamelessly copying the good work done
by the WS-Addr group to our document. After we agree to do that,
I suggest we ask them to drop that part from their doc and simply
refer to our doc. Of course they will continue to document how 
to do it for WSDL 1.1. 

Doing this makes our two specs work together really quite seamlessly. 
It seems to me that doing anything less would be uncivilized.

Comments from the WS-Addr folks would be very welcome too; hence
the cc.

Sanjiva.
(Observer/Invited Expert on the WSDL group ;-)!)

Received on Thursday, 21 April 2005 11:34:33 UTC