RE: LC84b: Proposal for generic action property

+1
This sounds pretty good.

Pros:
- Removes binding operations (i.e. you don't have to specify them if you
want to use SOAPAction's)
- Provides a nice operation name mapping solution without fuss (using
SOAPAction).
- Allows other bindings to "do the right thing" without messing up the WSDL.
- Removes stuff from WS-Addressing

Hugo, do we need to update the SOAP over HTTP binding to specify that the
SOAPAction header gets set to the {action} property of the input message?
Do we need to specify where the {action} property of an output message goes
in the response?  Does it go nowhere?

Tom Jordahl
Macromedia Server Development 

-----Original Message-----
From: www-ws-desc-request@w3.org [mailto:www-ws-desc-request@w3.org] On
Behalf Of Hugo Haas
Sent: Thursday, February 10, 2005 4:10 PM
To: www-ws-desc@w3.org
Subject: LC84b: Proposal for generic action property

During the discussion of the operation name mapping at the
face-to-face meeting[1], I took an action item to propose a generic
action property.

-=- Summary -=-

The purpose of this property is to associate an action with a
particular message.

The action intended by a message is a core part of the description of
the service (see David's presentation in Sunnyvale[2]), and therefore
we should be able to describe it in WSDL 2.0 at the abstract level.

This is related to the (ill-named) operation name mapping issue, as it
provides a mechanism that can be used to unambiguously determine a
WSDL message reference from a message sent on the wire.

By default the property has a unique value that is derived from the
message reference. However, it may instead be set explicitly using an
optional @action attribute.

Currently, the SOAP action is specified at the operation level in the
SOAP binding, which is an issue, both because this is a property of
the message and not the operation, and because logically the action to
be associated with a message should be indicated at the abstract
level, independent of the protocol. With this proposal, we can provide
a cleaner abstraction by removing the {soap action} property and
instead have it take the value of {action} property from the abstract
level.

In short, this proposal:
- allows for description of the action associated with each message
- does not make the syntax more complex in the default case

-=- Detailed proposal -=-

- Add an {action} property to the Message Reference Component, whose
  default value is:
  
  [target namespace]/[interface name]/[operation name][direction token]
  
  as documented in:
  
 
http://dev.w3.org/cvsweb/~checkout~/2004/ws/addressing/ws-addr-wsdl.html?rev
=1.12&content-type=text/html;%20charset=iso-8859-1#defactionwsdl20

- Add an OPTIONAL @action attribute on the <input> and <output>
  elements to alter this default value.

- Add an {action} property to the Interface Fault Component, whose
  default value is:
  
  [target namespace]/[interface name]/[fault name]

- Add an OPTIONAL @action attribute on the <fault> element to alter
  this default value.

- Remove the {soap action} property from the Binding Operation
  Component in the SOAP binding.

Comments?

Cheers,

Hugo

  1.
http://lists.w3.org/Archives/Public/www-ws-desc/2005Jan/att-0091/20050119-ws
-desc-minutes.html#item06
  2. http://www.w3.org/2004/Talks/1110-dbooth-opname/slide25-0.html
-- 
Hugo Haas - W3C
mailto:hugo@w3.org - http://www.w3.org/People/Hugo/

Received on Friday, 11 February 2005 06:01:14 UTC