- From: Christopher B Ferris <chrisfer@us.ibm.com>
- Date: Mon, 10 Jan 2005 14:22:10 -0500
- To: Anish Karmarkar <Anish.Karmarkar@oracle.com>
- Cc: public-ws-addressing@w3.org
Anish, As you know, the WS-I BP1.x constrains that the "wire sgnature" of a given WSDL input message be unique within the scope of a WSDL portType/interface (the "wire signature being the QName of the child element of the soap:Body). I argued at the time that we were discussing the issue that I thought it would be a mistake to impose such a constraint, that one could have metadata carried as SOAP header blocks (such as the wsa:Action) that could be used by the service to determine what action to take, etc. That the contents of the soap:Body might not be the sole determinant for dispatching a received message. I lost that argument, although I still believe it to have been a mistake. I see this issue as a repeat of the discussions we had in the WS-I BPWG regarding the uniqueness of the "wire signature". Just as a service could use SOAP header block metadata to augment the contents of the soap:Body for purposes of dispatching the received message, so too could the contents of the soap:Body, or other SOAP header block metadata, also be used by the service as it sees fit to augment the wsa:Action as a determinant for dispatching/servicing the message. Furthermore, in a WSDL1.1 context, a service can have multiple ports, each binding a possibly different portType. Theoretically, they could all have the same soap:location URI. Hence, it seems to me that imposing a constraint that the wsa:Action URI for a given message be unique for a given portType/interface is meaningless because the same wsa:Action could be used across the various portTypes. For instance, the WS-RM specification says that in the absence of a specified wsa:Action, that a message carrying a wsrmSequenceAcknowledgement SOAP header block have a particular wsa:Action value. Let's just say that I designed my interface such that there was an input message and a void response, and that the wsrm:SequenceAcknowledgement header blocks would be carried on the response message (which had no soap:Body child element). Each operation would then have an output message with the same wsa:Action URI value. Seems reasonable to me, yet option 1 would preclude me from doing so. The requirement that wsa:Action be unique within the scope of a portType/interface seems arbitrary. I think that the question that needs to be answered is: What value does imposing such a constraint add? Cheers, Christopher Ferris STSM, Emerging e-business Industry Architecture email: chrisfer@us.ibm.com blog: http://webpages.charter.net/chrisfer/blog.html phone: +1 508 377 9295 public-ws-addressing-request@w3.org wrote on 01/10/2005 01:33:21 PM: > > Here are the alternatives for resolving subissue 1 in issue i017 [1] -- > I took an action for doing this during last week's call: > > The subissue is about whether the value of the [action] property is > required to be distinct within the scope of WSDL portType/interface when > using WSDL to describe the Web service > > Please note that this is an issue only when using WSDL to describe the > service and therefore potentially affects only the WSDL binding spec and > not the core or the SOAP binding. > > Alternative 1: > > yes, it is required to be distinct within the scope of a WSDL > portType/Interface. The spec currently states: > "An identifier that uniquely (and opaquely) identifies the semantics > implied by this message." > If the values are not distinct within the portType/interface then one > has to wonder as to why there are two distinct operations within the > portType/interface that have the same semantics? More accurately, the > scope should not really be the portType/interface but should also > include the directionality of the message, similar to the operation name > mapping requirement of WSDL 2.0 [2]. An added advantage of this is that, > the value of the [action] property now can be used to figure out which > WSDL-operation is being "invoked" by an incoming message at the service > (since operation-names do not manifest themselves on the wire) -- when > it is not clear from the contents of the SOAP Body. This has been an > interop problem in the past which led to WS-I Basic Profile 1.0/1.1 > requirement R2710 [3][4]. > > Alternative 2: > > no, it is not required to be distinct within the scope of a WSDL > portType/interface. There might be reasons for allowing non-distinct > values <insert-use-case-here>. WSDL interface/operations that do satisfy > the distinctness requirement can use the WSDL feature or WSDL > extensibility described in [5] (or something similar). > > [I don't think I'm doing justice to alternative 2 as I haven't come > across a good usecase for this. If you do have one, please send it to > the list] > > Thx! > > -Anish > -- > > [1] > http://lists.w3.org/Archives/Public/public-ws-addressing/2005Jan/0004.html > [2] http://www.w3.org/TR/2004/WD-wsdl20-20040803/#Interface_OperationName > [3] http://www.ws-i.org/Profiles/BasicProfile-1.1-2004-08-24.html#R2710 > [4] http://www.ws-i.org/Profiles/BasicProfile-1.0-2004-04-16.html#R2710 > [5] > http://lists.w3.org/Archives/Public/public-ws-addressing/2005Jan/att-0010/00-part > > >
Received on Monday, 10 January 2005 19:22:51 UTC