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 Thursday, 10 February 2005 10:39:31 UTC