NEW ISSUE - message level binding?

I took an action item in our last concall to open a new issue to catch
the group's discussion around using different transport protocols for
different messages of a binding operation. The issue was raised in
discussion on LC50.   

Status Quo

In the current WSDL2.0 draft, binding type and protocol are specified in
the binding component level, 
	- the binding component has a "type" property which indicates
what kind of binding (e.g soap, http, etc) is used. 
	- The soap binding extension adds a "protocol" property binding
component to indicate what transport is used. 

Once their values are set, those properties are applied to all the
operations and messages under that binding, and there is no build-in
constructs to overwrite them in message level. In other words, by
design, not only the input and output messages of an operation,  but all
the operations of a binding MUST use same binding type and protocol.  


Issue

Practically, a typical web service will use the same binding (type,
transport, etc) for all its input and output messages, but there are
situations that a service may need to specify different bindings for
different messages. Here are a few examples,
 
- A service may prefer to use different transports for its "in" message
and "out" message, e.g. to receive a request message over SOAP/HTTP and
send the response via SOAP/SMTP. 
- A service may want to specify explicitly some aspect of a transport
for individual messages.  E.g. while most of the services that use an
in-out MEP over HTTP may use the same HTTP connection, some services may
prefer use different HTTP connections for the "in" message and the "out"
message.
- a service that supports ws-addressing replyTo and faultTo may want to
use a different binding for such "re-direct"s. In such cases, they may
count on WSDL to provide the legal binding candidates such "redirect"
can use. 

The current spec is not clear/consistent about whether such cases are
supported by WSDL2.0. Just by looking at the WSDL component model, they
are NOT supported, but mandatory extensions may support them by
overwriting the binding settings at message level. This inconsistency
has already caused confusion in the web services community, including
other W3C working groups.


Best Regards,
Kevin

Received on Thursday, 16 December 2004 06:28:21 UTC