- From: David Hull <dmh@tibco.com>
- Date: Tue, 21 Feb 2006 09:21:30 -0500
- To: "Rogers, Tony" <Tony.Rogers@ca.com>
- Cc: public-ws-addressing@w3.org
- Message-id: <43FB21EA.8040401@tibco.com>
Rogers, Tony wrote: > While we're talking about anonymous, I'd like to re-iterate one thing > that was brought to my mind by Jonathan's example of a putative TCP/IP > binding. > > In this not-exactly-hypothetical binding, a request message can > legitimately be given an anonymous wsa:to, AND an anonymous > wsa:replyTo. This is kinda interesting. It could be argued that both > anonymous values mean the same thing: "send the message to the other > end of the established TCP/IP connection", but the recipients are > different. If A is sending a request to B, then the anon wsa:to means > B, but the anon wsa:replyTo means A. > > This is why I'm unhappy with DaveH's words (misquoted/paraphrased): > "anonymous in a request message means the response message" - that's > only true of the anonymous wsa:replyTo / wsa:faultTo in this context. Exactly. That's why I wanted to make an explicit distinction: 1. Define a term for "the response message", i.e., HTTP response for SOAP 1.1/HTTP, response message of SOAP 1.2 request-response message exchange. 2. Define anonymous response endpoint (of request) and [destination] (of reply) as meaning this. 3. The definition is also available for other use, if appropriate. I definitely do /not/ want to say "anonymous in a request message means the response message" as a blanket statement. As I said before [1], the MS example shows that we can't even generalize that far. [1] http://lists.w3.org/Archives/Public/public-ws-addressing/2006Feb/0146.html > > We really must insist that the meaning of the anonymous URI depends > upon the binding. > > Tony Rogers > > ------------------------------------------------------------------------ > *From:* public-ws-addressing-request@w3.org on behalf of David Hull > *Sent:* Tue 21-Feb-06 18:15 > *To:* public-ws-addressing@w3.org > *Subject:* Why anonymous may be different (for AcksTo and elsewhere) > > The more I ponder the problem of anonymous AcksTo, the more I think > that anonymous can't quite be treated as just another EPR address. > I'm posting this here because I think the situation is not unique to > AcksTo or WS-RX. Rather, WS-RX happens to have presented the use case > that flushes the issue out. Also, while I may have got the WS-RX use > case wrong here, I believe the overall point is still of interest to > WSA. Finally, there are clearly enough WS-RX folks in the audience > here that if this is in fact relevant to WS-RX, I'm sure the news will > find its way there. > > Here's the scenario: > > Suppose that A and B both want to use a reliable sequence to send > messages to C. Each uses its own sequence. As I understand it, this > is the normal case (as opposed to, say, A and B sharing the same > sequence). Now further suppose that A and B both use anonymous for > AcksTo. Given that acks for a given message could come back with a > later message, the following could happen: > > * A sends C message A1 > * C sends back a response with no acks > * B sends C message B1 > * C sends back a response with an ack to message A1 > > For that matter, if C isn't careful, it could send acks to some > completely unrelated process that happened to be sending to it without > even using WS-RX. > > So, in order for this to work, C has to be careful only to use > anonymous AcksTo for replies to request messages that are part of the > same sequence (by the way, how does C ack the last message of such a > sequence if it doesn't know it's the last?). > > By contrast, it doesn't seem C would have to be so careful in the case > where the AcksTo EPRs are not anonymous. Normally (and again I'm not > a WS-RXpert) I would expect that A and B would use separate AcksTo > addresses, and C would just send acks to the addresses it was told to > use. Even if A and B used the same AcksTo address and used the > sequence number on the acks to sort out whose acks they were, they > could do so without any help from C because the acks would at least > always end up at the same destination. > > Another way to look at this is that using the same AcksTo for two > different sequences ties the two sequences together and whoever's > getting the acks has to know about both sequences. This would apply > equally to anonymous and non-anonymous. I believe this handles most > of the problem, but not all. First, this would require every sender > that wants to use anonymous AcksTo with a given destination to know > about every other one. Second, by itself it doesn't deal with senders > that aren't even using WS-RX. I'm not sure the second problem is > serious, but the first one seems like it might be. > > It also seems worth considering the case where A uses anonymous and B > doesn't. If B is expecting acks at non-anonymous D, then it wouldn't > normally be checking for acks in its responses, and neither could it > be expected to know what to do with A's acks if it did notice them. C > can send B's acks freely to D, but it has to be careful to send A's > acks back only on responses to messages from A. > > Even if there turn out to be no serious issues here for WS-RX, it > seems worth noting that trying to extend anonymous beyond the context > of a single request-response message exchange effectively ties > together all senders to a given destination into one virtual receiver > for messages to anonymous. That is, a message sent to anonymous in > such a scenario could arrive back at /any/ sender.
Received on Tuesday, 21 February 2006 14:22:39 UTC