- From: Anish Karmarkar <Anish.Karmarkar@oracle.com>
- Date: Mon, 23 May 2005 11:21:47 -0700
- To: public-ws-addressing@w3.org
I took an AI to send a new proposal for resolution of issue i017,
subissue b [1] in light of the fact that the Operation Name Mapping
(ONM) [2] in WSDL 2.0 is not a requirement anymore but a best practice
and the resolution of issue i021 [3] (which defines an extension
wsaw:UsingAddressing).
Briefly [2] essentially says that as a best practice when it is not
clear from the message which operation in a particular interface is
being executed, then as a best practice either a feature or an extension
should be used to indicate the mechanism that is used to disambiguate
the operation.
Since [action] can be potentially used to disambiguate operations,
especially since the default [action] values are distinct (for each
message), WS-Addressing can be used as a disambiguator. Pl. note that
[action] values are not required to be distinct (as wsa:Action can be
used to override the default value).
Enumerated below are what I think are possible resolutions to the
subissue. My preference is for #2 as it satisfies ONM best practice by
defining a simple attribute that could be used with extensibility
elements as well as features (although the distinction between #2 and #3
is aesthetic only).
1) Status quo
Do nothing.
Adv: Zero addtional work. One can always inspect the wsa:Action
attribute value (in conjunction with the default rules for [action]
value) and figure out if the [action] property is distinct or not.
Disadv: does not advance the best practice specified in WSDL 2.0 which
requires that a feature/extension be specified (along with
required/wsdl:required as true)
2) Define a new attribute called wsaw:distinctAction with a type of
boolean and no default value. Value of 'true' implies that the [action]
MAP is distinct for each of the messages/direction in the
interface/portType (of a service) across all the operations. Value of
'false' implies that the [action] MAP is not distinct.
This attribute can be used with wsaw:UsingAddressing extensibility
element as well as on a feature such as the 'SOAP 1.2 Addressing 1.0
Feature' [4] identified by the URI -
http://www.w3.org/@@@@/@@/addressing/feature
The following two examples below show how the ONM best practice is
satisfied:
a) when using wsaw:UsingAddressing
<binding name="reservationSOAPBinding"
interface="tns:reservationInterface"
type="http://www.w3.org/2004/08/wsdl/soap12"
wsoap:protocol="http://www.w3.org/2003/05/soap/bindings/HTTP">
<wsaw:UsingAddressing wsaw:distinctAction="true"
wsdl:required="true" />
....
</binding>
b) when using SOAP 1.2 feature
<binding name="reservationSOAPBinding"
interface="tns:reservationInterface"
type="http://www.w3.org/2004/08/wsdl/soap12"
wsoap:protocol="http://www.w3.org/2003/05/soap/bindings/HTTP">
<feature wsaw:distinctAction="true" required="true"
uri="http://www.w3.org/@@@@/@@/addressing/feature"/>
...
</binding>
Adv: satisfies the ONM best practice.
Disadv: requires us to specify an attribute.
3) Same as (2) but instead of an attribute define an element
wsaw:DistinctAction that can be used as a child element of
wsaw:UsingAddressing or as a child of wsdl:feature when the feature URI
is "http://www.w3.org/@@@@/@@/addressing/feature"
Adv: satisfies the ONM best practice.
Disadv: requires us to specify an element.
4) As specified in [5] with s/UniqueAction/DistinctAction
Adv: satisfies the ONM best practice.
Disadv: provides separate solution for feature and extensibility element.
Comments?
-Anish
--
[1] http://www.w3.org/2002/ws/addr/wd-issues/#i017
[2]
http://dev.w3.org/cvsweb/~checkout~/2002/ws/desc/wsdl20/wsdl20.html?content-type=text/html;%20charset=utf-8#Service_OperationName
[3] http://www.w3.org/2002/ws/addr/wd-issues/#i021
[4]
http://dev.w3.org/cvsweb/~checkout~/2004/ws/addressing/ws-addr-soap.html?content-type=text/html;%20charset=utf-8#s12feature
[5]
http://lists.w3.org/Archives/Public/public-ws-addressing/2005Jan/att-0010/00-part
Received on Monday, 23 May 2005 18:21:59 UTC