After internal
discussion it appears to us that the following way to handle WS-Addressing
ReplyTo in a multi-hop env is the most appropriate (which means the current
drafts would need some update but not much) :
wsa:ReplyTo
anonymous (which is the default when no ReplyTo ) should - even when used in a
multihop context - always indicate that a response will be obtained on the HTTP
response (backchannel) both on Sender and Receiver sides.
This best ensures
compliance with current behavior of most SOAP stacks.
This means that at
least on two hops (the edge hops), connection must be kept open for
communicating response on the backchannel of the request.
Consequently, the
proposal is the following:
1- when the sending
Endpoint adds ReplyTo anonymous (or none at all) this means that it expects a
Response on the backchannel, whenever a response is expected. This would affect
the binding of Two-way MEPs (the "reply" message) as well as One-way that need
an eb:Receipt. Both "reply" and Receipt are expected to be received by sending
Endpoint on the HTTP backchannel.
Same behavior on the
receiving Endpoint (final destination).
In-between (I-Cloud)
the behavior could be more flexible and the binding decided by routing function.
But the default behavior is here that all intermediaries would keep their
connections open until they get the response.
2- when the sending
Endpoint adds ReplyTo set to an EPR containing the "icloud" URI (see the
most recents drafts), then that means to the Intermediaries that the routing
function will rely on the ref parameters of this EPR, for routing the
response.
On the receiving
Endpoint MSH, this means that the support for WSA is profiled to recognize this
"icloud" URI, and map it to a predefined (configured) URL, namely the address of
the first Intermediary the response should go through.
This is easily
configurable on the endpoint MSH, as part of its expected WSA support, according
to our engineers.
3- when the sending Endpoint adds ReplyTo set to an EPR
containing another URI different from (1) and (2) above (and
different from "none" wsa URI), then the Receiving Endpoint must send back the
response directly to this URL. This URL could be the final destination of the
response. This is a special case where no routing is needed for the response.
Or it could be the URL of the last Intermediary before the destination MSH.
This is a special case where no routing is necessary either, except for the last
hop.
So this means that the use of ReplyTo anonymous will be
quite restricted and implies channel bindings that are rather constraining (keep
conenctions open). Because the absence of ReplyTo is to be interpreted as same
as ReplyTo anonymous , the most common usage of ReplyTo in multihop context is
expected to be (2) above.
- Jacques