Re: Proposed resolution for Issue 50 (Misallignment of faut to and reply to )

David,

I think your argument gets into the relationship with the SOAP and WSDL
bindings that the asynch task force is supposed to clarify. In your
example, you touch on one of the questions in front of the TF, that is
whether a replyTo different from the anonymous one is acceptable when the
WSDL requires a fully synchronous interaction. Some think this should not
be allowed. The point is that we still have not settled on how the
semantics of ReplyTo (which is under control of the sender) and WSDL
interface and binding (under control of the receiver) interact. In
particular, the default destination of messages of any kind seems to be
something that the sender needs to have a say on since it must be able o
receive them!

So while I think that the WSDL definitions under which the interaction
happens must be taken into account, the fact is that we cannot make the
core semantics of the ReplyTo header dependent on having the appropriate
WSDL environment; they need to stand on their own and capture need for the
sender to have a role in defining their values. Note that I am not saying
we should ignore the WSDL binding, but IMO that needs to be factored in to
constrain the allowable application of core WSA headers, not to define
default values. I think that leaving core WSA semantics undefined and
relying on a (possibly absent!) WSDL to support it is not a good approach.

Paco




                                                                                                                                  
                      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:13:23 UTC