- From: David Hull <dmh@tibco.com>
- Date: Tue, 29 Mar 2005 15:33:27 -0500
- To: Marc Hadley <Marc.Hadley@Sun.COM>
- Cc: public-ws-async-tf@w3.org
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 20:34:00 UTC