W3C home > Mailing lists > Public > public-ws-async-tf@w3.org > March 2005

Re: In-optional out

From: Greg Truty <gtruty@us.ibm.com>
Date: Tue, 29 Mar 2005 16:14:14 -0600
To: David Hull <dmh@tibco.com>
Cc: Marc Hadley <Marc.Hadley@Sun.COM>, public-ws-async-tf@w3.org, public-ws-async-tf-request@w3.org, "Yalcinalp, Umit" <umit.yalcinalp@sap.com>
Message-ID: <OFEE8298B0.C2FB14B6-ON86256FD3.0079FD4D-86256FD3.007A272B@us.ibm.com>
I certainly think that while it may not be part of the SOAP MEP, persay, 
it's part of the SOAP bindings specified in the WSDL (as it does include 
the transport).  As long as we define the behavior and can answer the 
question that David has posed, I believe this was one of the requirements 
of what I was trying to get addressed.

Regards... Greg

Greg Truty
WebSphere Architecture/Development,  IBM Austin
EMail:     gtruty@us.ibm.com 
Phone:   (ext)  (512) 838-2828
                (Tie) 678-2828




David Hull <dmh@tibco.com> 
Sent by: public-ws-async-tf-request@w3.org
03/29/2005 03:55 PM

To
"Yalcinalp, Umit" <umit.yalcinalp@sap.com>
cc
Marc Hadley <Marc.Hadley@Sun.COM>, public-ws-async-tf@w3.org
Subject
Re: In-optional out






Yalcinalp, Umit wrote: 
The response at the HTTP transport is just a side effect of using the http 
protocol (202). It is an HTTP response, not SOAP response for one way 
messages. Wrt SOAP MEP perspective, this is not an ACK per se for SOAP 
protocol, but for http transport since there is no SOAP response message. 
Hence, I don't think we should bring the side effect of the transport with 
an explicit ACK at the SOAP layer. 
 
The question then is, how do you know when you're done?

If you get an explicit 202 back, you know you're not going to get an 
actual message on the back-channel.  Do we try to capture that at the SOAP 
level?  Whatever we choose to call it, how would the SOAP level 
distinguish "in, no out" from "in, no out yet"?

--umit
 

-----Original Message-----
From: public-ws-async-tf-request@w3.org [
mailto:public-ws-async-tf-request@w3.org] 
Sent: Tuesday, Mar 29, 2005 12:33 PM
To: Marc Hadley
Cc: public-ws-async-tf@w3.org
Subject: Re: In-optional out


Marc Hadley wrote:

 
On Mar 29, 2005, at 1:51 PM, David Hull wrote:

 
 Marc Hadley wrote:
 This is all a bit confusing. SOAP doesn't define anything like an 
ACK, that's an application level construct (assuming its a SOAP 
message) so the in-(out|ACK) MEP is just a SOAP in-out (or 
request/response).

 My understanding was that, if there were no explicit reply, you 
would still want to get back an empty (i.e., non-SOAP) message with a 
202 code.  This is distinct from, e.g.,  the receiver simply closing 
the connection.  Thus the (possible) need to introduce the notion of 
an ACK at the SOAP level.

 
I think my confusion here stems from the fact that SOAP MEPs only talk 
about exchanging SOAP messages not underlying protocol exchanges 
(that's where the binding comes in) so if the ACK is purely at the 
underlying protocol level then it won't show up as part of the SOAP MEP.
 

The question then is whether it is enough to model POST in/202 out as 
in-[out] with no out, or whether the SOAP layer needs to report that 
/something/ happened.  If it needs to report that something happened, 
then it can't very well report a SOAP message arrived, and we (or 
someone :-) will have to create some new construct -- which I'm calling 
an ACK -- to describe what happened.

 

Marc.

 
 This would not be an application-level construct.  The application 
may well view things differently.  For example, it might consider 
sending the request and getting back a reply or fault as separate 
events.

 E.g.



App View

SOAP View


App sends request, reply-to: a callback, fault-to: the back channel

Sender sends the inbound message of an in-[out]


(normal processing) App gets reply on callback

Receiver sends back ACK.  And that's it (sending back the reply is a 
separate interaction)


(fault processing) App gets a fault

Receiver sends back a message (and that's it).





 Marc.

 On Mar 29, 2005, at 12:46 PM, David Hull wrote:


  I've just read over the minutes from last week, and I'm doubly 
sorry I missed the discussion.  I'd also like to thank Jonathan for 
the clear and thorough minutes.

  When I first heard of an in-[out] (or even [in]-[out]) "über MEP", 
it seemed like it was trying to generalize any possible MEP.  An 
in-only would be treated as [in]-[out] with an in and no out, and so 
forth.

  This seemed like a bad idea.  It wouldn't actually cover all 
possible MEPs, but it would add a layer of complexity to in-only or 
even in-out ("in-out is [in]-[out] with both in and out present" as 
opposed to "in-out is in-out").  Thence the George Carlin quote about 
volleyball being team ping-pong with a raised net etc.

  Reading through the minutes, though, in-[out] looks to be more 
narrowly focused on an important fact of life: In some scenarios you 
can't tell in advance whether you will get an application-level reply 
on the back-channel.  For example, if the normal course of action 
were to send messages on to the "approval" and "logging" endpoints 
given in the message addressing properties, while a fault should come 
back on the back-channel, you would have to find out dynamically 
which alternative was actually in effect.  I suppose the 
request/reply case with the one of the two endpoints directed to the 
back-channel and the other directed elsewhere would also be an example.

  In such cases, the in-[out] pattern captures the fact that you 
might get back a message on the back-channel, or you might just get 
back an ACK.  It doesn't quite capture the possibility of getting 
more than one message back on the back-channel (e.g., two or more 
non-mutually-exclusive endpoints both pointed at the back-channel), 
but perhaps it could be expanded to cover that, too.  It might also 
be better to describe the pattern as "in-(out|ACK)", emphasizing that 
something always comes back (if that's what we mean).

  As a side-effect, we could also model a one-way WSDL MEP as an 
in-[out] with just an ACK coming back.

  This is all described at the SOAP level, without reference to HTTP 
or any other physical binding, which is why I say "ACK" instead of 
"202".  It's up to the binding to say what form the ACK takes.

  With this in place, as I understand it:

     *     a in-only message would manifest as in-[out] with just an 
ACK in reply

     *     existing synchronous request/reply still manifests as 
request/reply
     *     asynchronous request/reply manifests as in-[out]
  Is this all roughly correct?






 ---
 Marc Hadley <marc.hadley at sun.com>
 Business Alliances, CTO Office, Sun Microsystems.




 
---
Marc Hadley <marc.hadley at sun.com>
Business Alliances, CTO Office, Sun Microsystems.

 


 
Received on Tuesday, 29 March 2005 22:14:56 GMT

This archive was generated by hypermail 2.2.0 + w3c-0.30 : Tuesday, 29 March 2005 22:14:56 GMT