RE: Decouple SOAP Version from SOAP Binding ?

Wow! that sounds interesting!

One difference that does spring to mind: is SOAP 1.2 backwards compatible 
with SOAP 1.1 in the way HTTP 1.1 is with HTTP 1.0 ?

And if not, is that an issue?


-----Original Message-----
From: www-ws-desc-request@w3.org [mailto:www-ws-desc-request@w3.org]On
Behalf Of Asir Vedamuthu
Sent: 15 July 2004 14:26
To: 'www-ws-desc@w3.org'
Subject: Decouple SOAP Version from SOAP Binding ?



That is, version independent SOAP binding. SOAP Binding in Part 3 is tied to
SOAP 1.2 REC. I request the WG to consider decoupling SOAP version from SOAP
binding. What does this mean? Of course, few changes.

Similar to @http:version, ..

(a) introduce an optional attribute binding/@wsoap:version whose type is
xs:anyURI

(b) introduce a binding component property {soap version} whose default
value is http://www.w3.org/2003/05/soap-envelope

(c) change the namespace uri of SOAP binding elements and attributes from
http://www.w3.org/@@@@/@@/wsdl/soap12 to http://www.w3.org/@@@@/@@/wsdl/soap

(d) plus corresponding changes to prose

Rationale

This proposed change is in-sync with our approach for HTTP binding,
binding/@http:version attribute. This change will help us accommodate yet
another version of SOAP, if any, without substantial changes. More
importantly, today, these SOAP binding attributes, elements, mappings,
components, and component properties can be RE-USED for SOAP 1.1 binding.
How? I have a strawman proposal. Let me walk you thru. Use this version
independent SOAP binding in conjunction with SOAP 11 defaults and
constraints,

// SOAP 1.1 Binding
If binding/@wsoap:version == http://schemas.xmlsoap.org/soap/envelope/
 
 // Default Rule A
 If Interface Operation Component.{message exchange pattern} ==
  http://www.w3.org/@@@@/@@/wsdl/in-out
  then {soap mep} =
    http://www.w3.org/@@@@/@@/soap11/mep/request-response

 // Default Rule B
 If {soap protocol} == http://www.w3.org/@@@@/@@/soap11/bindings/HTTP
  then the default value of {http method} property is POST
 
 // Default Rule C
 if {soap action} is absent
  then the SOAPAction HTTP Header Field [1] is absent

 // Constraint A
 @wsoap:subcodes must be absent

Where,

(d) http://schemas.xmlsoap.org/soap/envelope/ identifies SOAP 1.1

(e) http://www.w3.org/@@@@/@@/soap11/mep/request-response identifies the
implicit request response mep in SOAP 1.1 [2]

(f) http://www.w3.org/@@@@/@@/soap11/bindings/HTTP identifies the SOAP HTTP
Protocol Binding in SOAP 1.1 [2]

Last but not least, using one binding with different defaults, URIs and
constraints, will certainly help us achieve, "A binding for SOAP 1.1 will
ease the migration from WSDL 1.1 to WSDL 2.0 for organizations describing
SOAP 1.1-based services." [3]

Any +1s?

[1] http://www.w3.org/TR/2000/NOTE-SOAP-20000508/#_Toc478383528
[2] http://www.w3.org/TR/2000/NOTE-SOAP-20000508/#_Toc478383526
[3] http://www.w3.org/2004/02/ws-desc-charter.html#bind

Regards,
Asir S Vedamuthu
asirv at webmethods dot com
http://www.webmethods.com/

Received on Thursday, 15 July 2004 09:44:55 UTC