- From: Francisco Curbera <curbera@us.ibm.com>
- Date: Fri, 4 Mar 2005 09:22:05 -0500
- To: "public-ws-addressing@w3.org" <public-ws-addressing@w3.org>
Forwarding David's answer to my mail of yesterday...
----- Forwarded by Francisco Curbera/Watson/IBM on 03/04/2005 09:21 AM
-----
David Hull
<dmh@tibco.com> To: Francisco Curbera/Watson/IBM@IBMUS
cc:
03/03/2005 02:29 Subject: Re: Proposed resolution for Issue 50 (Misallignment of faut to and reply
PM to )
Francisco Curbera wrote:
David,
I don't understand your point. Who defines this binding? The deployer
of
the service receiving the message? This is the opposite of the model
we
have now, where the sender specifies where replies/faults should go.
This
is the base for supporting asynch communication. Are you proposing
that
the receiver make this decision instead?
I had in mind things like the SOAP request/repsonse MEP (Section 6.2 in
SOAP 1.2 adjucnts). This says that if you use SOAP for request/reply, the
service sends the reply back to the requestor. The SOAP/HTTP binding
(Section 7 in the same document) says how to accomplish this over HTTP. A
similar binding might say how to do it over SMTP, and this had better
default to the from: address.
Thinking aloud a bit, and please correct me if I'm mangling the SOAP spec
here ...
So if I used WSA in a SOAP 1.2 request, and there was no Reply-To: MAP, the
usual SOAP sementics would apply, and the reply would come back to the
requestor. The SOAP binding specifically says that the fault becomes the
OutboundMessage, which (as I read it) will be delivered to the
ImmediateDestination (that is, back to the sender) if possible.
On the other hand, if I gave a specific reply-to, then that reply-to would
become the immediate destination, and everything would work fine. I'm not
sure, however, whether the async group reached the same conclusion.
On yet another hand, though, if I also gave a specific fault-to: different
from the reply-to: then it doesn't look like we have SOAP request/reply
anymore, as that MEP has no concept of a separate fault address. I'm not
sure we've dealt with that. Our SOAP binding doesn't cover SOAP MEPs as
far as I can tell.
In any case, the high order bit is that we (and possibly other parties)
will need to clarify what it means to do MEPs using WSA. As part of that,
we can take two approaches w.r.t. reply-to and fault-to:
Ensure that reply-to: and fault-to: always default to "back to the
sender" and encourage future binding writers to do so.
Explicitly make no useful guarantee as to how they default,
effectively requiring them.
The latter would require some means of explicitly saying "use the return
channel" in cases where it's available, which I think is where "anonymous"
comes in.
In the former world, a missing reply-to:/fault-to: means "send it back to
the requestor". Bindings over inherently one-way transports would have to
do extra work in order to support request/reply. Alternatively, they could
simply not support it. I would be fine with seeing a generic request/reply
over one-way binding using WSA, but maybe I'm missing something.
I the latter world, a missing reply-to:/fault-to: means "all bets are off",
but you can still ask for "send it back to the requestor" by explicitly
saying "anonymous". Again, I'm not sure what this gains.
I'm hoping at least some of this makes sense ...
The question here is what is the "right" default endpoint for sending
faults back. Defaults should capture common and safe assumptions, not
arbitrary choices. IMO the only reasonable default is replyTo because
there
you positively know that the sender is ready to accept a message;
everything else is dangerous speculation. Defaulting to anonymous is
risky
because anonymous may not have any meaning for an arbitrary request.
If the
request message specifies that the reply be sent to a new endpoint,
it
seems unlikely that the sender would intend faults to be returned
synchronously over the same connection.
Anonymous seems like a badly chosen default to me. As for the binding
dependent approach I just don't get it, sorry if I am being thick.
Paco
David Hull
<dmh@tibco.com> To:
public-ws-addressing@w3.org
Sent by: cc:
"public-ws-addressing@w3.org" <public-ws-addressing@w3.org>
public-ws-addressing-req Subject: Re:
Proposed resolution for Issue 50 (Misallignment of faut to and
uest@w3.org reply to )
03/01/2005 09:00 PM
Having thought it over, I still prefer this formulation:
Bindings MAY define a default destination for faults and/or
replies.
A missing ReplyTo or FaultTo is interpreted according to the
binding.
E.g., SOAP/HTTP defaults both to the backchannel.
something over email might default one or both to the
From
address.
other bindings may require both always to be present --
results
are undefined otherwise
You could also use the anonymous endpoint designation to
explicitly
to invoke this default behavior, if you like that sort of
thing.
Sort of a "this page intentionally left blank". But if there
is no
semantic difference between missing and anonymous, I'm not sure
what
anonymous is bringing to the party.
We could also make the over-arching rule that a missing FaultTo
defaults to
the ReplyTo (which may in turn default as above), but I'm not sure
this is
a good idea. For example, what does it mean for robust out-only,
where
there may be a fault but will not be a reply? It would also
interfere with
bindings that have naturally different destinations for faults and
replies. I can't name such a binding, but I'm not willing to say it
can't
exist.
Tom Rutt wrote:
As currently specified, an EPR is allowed to have th value
“anonymous” for the wsa:ReplyTo element. In this case, the
reply goes
back to the sender over the HTTP response, just as if not using
addressing.
I would like to have an optimization (just as we did for
wsa:To) that
absence of wsa:ReplyTo is semantically equivalent to using the
“anonymous” value.
Also: we almost agreed to have missing FaultTo implying use of
ReplyTo when a fault is to be sent.
Proposal to resolve Issue 50:
First cut at text to add to the spec in definition of
wsa:ReplyTo:
“
In the case of a message for which a reply is expected, the
implied
semantics of wsa:ReplyTo not present are equivalent to it being
present with the anonymous URI.
“
In the definition for wsa:FaultTo, add the statement:
“
If wsa:FaultTo is absent, a Fault may be sent to the value
(explicit
or through the implicit indication of “anonymous”) for
wsa:ReplyTo..
Received on Friday, 4 March 2005 14:22:40 UTC