- From: Francisco Curbera <curbera@us.ibm.com>
- Date: Mon, 28 Mar 2005 14:43:40 -0500
- To: public-ws-addressing@w3.org
The following is a minimal proposal for representing the use of WSA in a WSDL service description. This fullfils an AI I took long ago, apologies for the long delay. The approach is as follows: introduce a marker to be used in both WSDL 1.1 and WSDL 2.0 bindings to indicate the fact that a service uses and requires clients to use WSA message information headers in every service invocation. I think it is generally accepted that this indication belongs in the WSDL binding, since one could possibly want to deploy the same interface with different protocols bindings in some of which WSA usage may not be common, including pre-WSA "legacy" SOAP bindings. A key issue about the semantics of this marker is that it assumes no change on the behavior of the WSDL MEP and WSDL binding on which it is applied EXCEPT for the fact that WSA MIHs will be present in accordance to the WSA WSDL binding spec. That is, the WSA WSDL binding marker is simply "additive" to existing semantics. The reasons for making this clear at this time is that there are important behavioral implications of the presence of WSA headers that may conflict with the semantics of a WSDL binding; the interaction between the two is essentially in the scope of the asynch TF discussions and its resolution should not be precluded by the introduction of this marker. It is thus the case that when the marker proposed here is present in a WSDL binding, all WSA implied behaviors that are inconsistent with the semantics of the MEP/binding are explicitly not allowed (by the service so described). The best example of this is the possible presence in an HTTP request of a replyTo EPR with an address that is not the anonymous URI. Assuming that the WSDL binding specifies a traditional HTTP synchronous interaction, non-anonymous replyTo URIs are considered a violation of the WSDL binding contract since this one mandates (as of today) that the response be sent back over the open HTTP channel. I propose the marker be defined in the WSAW namespace introduced by the WSDL binding document. <wsaw:UsingAddressing wsdl:required="true"/> Some notes: 1. The wsdl:required=true is mandatory when the UsingAddressing element is used. 2. The marker element may appear within any of the binding elements: <wsdl:binding>, <wsdl:operation>, <wsdl:input>, <wsdl:output>, <wsdl:fault> with semantics defined by the usual scoping rules. WSDL 1.1 example: <binding name="StockQuoteSoapBinding" type="tns:StockQuotePortType"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> <wsaw:UsingAddressing wsdl:required="true"/> <operation name="GetLastTradePrice"> <soap:operation soapAction="http://example.com/GetLastTradePrice"/> <input> <soap:body use="literal"/> </input> <output> <soap:body use="literal"/> </output> </operation> </binding> WSDL 2.0 example: <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 wsdl:required="true"/> <operation ref="tns:opCheckAvailability" wsoap:mep="http://www.w3.org/2003/05/soap/mep/request-response"/> <fault ref="tns:invalidDataFault" wsoap:code="soap:Sender"/> </binding> Paco
Received on Monday, 28 March 2005 19:44:24 UTC