W3C home > Mailing lists > Public > www-ws-desc@w3.org > July 2004

Re: Revised Asynch Binding

From: Sanjiva Weerawarana <sanjiva@watson.ibm.com>
Date: Mon, 5 Jul 2004 21:25:45 +0600
Message-ID: <0d2a01c462a4$58fb2870$84614109@LANKABOOK>
To: <paul.downey@bt.com>, <www-ws-desc@w3.org>

Hi Paul,

No, that's not enough because using WS-Addressing's ReplyTo (for
example) with a non-anonymous URI will mean we are not compliant
with the SOAP HTTP binding (the one the XMLP guys defined, not us).
Thus, you need to use a different URI for the protocol binding as
this is indeed a different way to do SOAP request-response MEPs
over SOAP.

Sanjiva.

----- Original Message ----- 
From: <paul.downey@bt.com>
To: <sanjiva@watson.ibm.com>; <www-ws-desc@w3.org>
Sent: Monday, July 05, 2004 8:25 PM
Subject: RE: Revised Asynch Binding


>
> Sanjiva
>
> i like the simplicity of this approach, but do wonder why it has
> to be flagged via the protocol attribute; couldn't the same effect
> be achieved by a wsdl:async="true" flag on binding/operation?
>
> A generic attribute would make this mechanism useable for other
> bindings without doubling the number of protocol URIs which need to
> be published.
>
> Paul
>
>
> -----Original Message-----
> From: www-ws-desc-request@w3.org [mailto:www-ws-desc-request@w3.org]On
> Behalf Of Sanjiva Weerawarana
> Sent: 04 July 2004 17:16
> To: www-ws-desc@w3.org
> Subject: Re: Revised Asynch Binding
>
> This feels all too complicated to me.
>
> The problem we want to address is to enable an asynchronous SOAP/HTTP
> binding right? IMO trying to make all bindings asynch aware is beyond
> the scope of what we need at this time.
>
> So if its just SOAP/HTTP I propose the following simple solution:
>
>     - Presently we require the user to set the /binding/@wsoap:protocol
>       attribute to http://www.w3.org/2003/05/soap/bindings/HTTP/
>       to indicate that they wish to have the XMLP defined SOAP-over-HTTP
>       protocol. That protocol assumes that the response of a request/
>       response will always come back in the response channel of the
>       HTTP request.
>
>     - We define a new URI: http://www.w3.org/@@@@/@@/wsdl/soap/asynch/http
>
>     - By assigning the above value to /binding/@wsoap:protocol attr, the
>       user is indicating that they will follow all the rules of SOAP/HTTP
>       protocol, but for one: the response MAY get sent back via another
>       transport/connection and not necessarily via the response path of
>       the HTTP request.
>
>     - How does the requester indicate how the response should be sent?
>       To avoid political problems, we say that how that is done MUST be
>       indicated in the WSDL thru extensibility (or F&P; which is of course
>       a special form of extensibility). So, if I want to allow the use of
>       WS-Addressing's <ReplyTo> to indicate where the response should go,
>       I need to assign the above URI to the SOAP protocol attribute, put
>       some indication in the WSDL that I can handle WS-Addressing and
>       that's it.
>
>     - We can also state that if the above URI is assigned to
@wsoap:protocol
>       and if no reply address has been defined in some other manner, then
>       the old approach of sending the response via the HTTP response will
>       hold.
>
> That's it. Its very simple and it allows me to do full async stuff
> very cleanly.
>
> Sanjiva.
>
> ----- Original Message ----- 
> From: "David Orchard" <dorchard@bea.com>
> To: <www-ws-desc@w3.org>
> Sent: Wednesday, June 30, 2004 12:47 AM
> Subject: Revised Asynch Binding
>
>
> >
> > In order to do an Asynchronous binding, that is binding an abstractly
> synchronous operation to 2 synchronous operations in the binding, it means
> that most of the binding operation constructs that are expected on the
input
> side must also be available for the output.  The way that a
wsoap:operation
> extends the binding operation must be available for the output as well as
> the input.   Further, the service must have a way of specifying what the
> address of the "callback" is.
> >
> > The current model is:
> > <definitions >
> >   <binding name="xs:NCName" interface="xs:QName"? type="xs:anyURI"
> >            wsoap:protocol="xs:anyURI"
> >            wsoap:mepDefault="xs:anyURI"? >
> >
> >     <operation ref="xs:QName"
> >                wsoap:mep="xs:anyURI"?
> >                wsoap:action="xs:anyURI"? >
> >
> >     <input messageLabel="xs:NCName"? >
> >     </input>*
> >     <output messageLabel="xs:NCName"? >
> >
> >     </output>*
> >     </operation>
> >   </binding>
> >
> > This causes us problems because we want to retain the
> operation/input|output model.  The part of wsoap:operation that is useful
to
> both input and output is the mep.  Therefore, I propose that the
> wsoap:operation be modified.  The operation information - namely the
> protocol, mep and action - apply to the input or output in 2 ways: When
the
> mep and action are only on the operation, then the implication is that the
> protocol operation binds directly to the input/output.  For example, an
> input binds to http request and the output binds to http response.  This
can
> be overridden in the input or output to enable a 2nd protocol operation to
> be controled.  The protocol may be overridden to specify a different
> protocol for the second message.  In the case of wsdl in/out?, then the
> output may contain protocol, mep and/or action attributes.  In the case of
> wsdl out/in?, the input may contain protocol, mep and/or action
attribugtes.
> >
> > <definitions >
> >   <binding name="xs:NCName" interface="xs:QName"? type="xs:anyURI"
> >            wsoap:protocol="xs:anyURI"
> >            wsoap:mepDefault="xs:anyURI"? >
> >
> >     <operation ref="xs:QName"
> >                wsoap:mep="xs:anyURI"?
> >                wsoap:action="xs:anyURI"? >
> >
> >     <input messageLabel="xs:NCName"? wsoap:protocol="xs:anyURI"
> >            wsoap:mep="xs:anyURI"? wsoap:action="xs:anyURI"? >
> >     </input>*
> >     <output messageLabel="xs:NCName"? wsoap:protocol="xs:anyURI"
> >            wsoap:mep="xs:anyURI"? wsoap:action="xs:anyURI"? >
> >
> >     </output>*
> >     </operation>
> >   </binding>
> >
> > The endpoint has an additional optional asynch address attribute.  This
> attribute specifies a location of the 2nd message if the interface
operation
> is bound to 2 protocol messages.
> >
> > <service name="xs:NCName" interface="xs:QName"
> >     <endpoint name="xs:NCName" binding="xs:QName" location="xs:anyURI"
> asynchLocation="xs:anyURI"?>
> >     </endpoint>*
> >   </service>*
> >
> >
> > When a WSDL document is exchanged, the location of an endpoint may not
be
> known to the WSDL publisher.   Some examples of this scenario are
> asynchronous message exchanges with callbacks and non-addressible
software.
> WSDL defines a URI for specifying these "unknown" locations
> >
> > http://www.w3.org/2004/wsdl/part3/unknown
> >
> > It is expected that messages that are sent to the unknown location will
> use some other mechanism, such as runtime soap headers, for exchanging the
> location.
> >
> > Cheers,
> > Dave
Received on Monday, 5 July 2004 11:26:28 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 7 December 2009 10:58:31 GMT