[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: Re: [ws-rx] Clarifications on two-way and anonymous clients
Stefan Batres wrote: > All, > Few comments/questions in=line > In the last interop call there were several questions on */how to/* > support anonymous clients and two-way operations. It has also been > noted that clarifying this usage of the protocol is needed to think > about issues i089 and i090. Here are some clarifications to points > that have been raised as a result of the interop call and the > discussion on this list (thx to Dug for compiling the list of questions). > > 1. How does the offered seq get shutdown? ie. how does the RMD send a > terminate back to the RMS? > > In the submitted version of the spec, the RMD sent a TerminateSequence > for the offered sequence on the response of the HTTP connection that > carried a TerminateSequence from the client for the requested > sequence. The RMD was forced to terminate its sequence when the client > terminated its. In the new version of the spec, we have the > TerminateSequenceResponse to worry about. I envisioned opening a new > issue to add another final exchange, one for the responses. A client > “requests” a TSR for the server’s TS, the server then “replies” with a > TSR for the client’s original TS. > However, the "rmd" would have to send a "replyTo" epr with the place for the "client" to send the TSR corresponding to the offered sequence TS? > 2. How can the RMD close the offered sequence if it needs to? > > The RMD can close the sequence whenever it wants – the question is how > it tells the client. The answer is that it would have to wait for the > client to make a request. At that point, the RMD would respond with a > CloseSequence message that may potentially piggy-back-acknowledge the > sequence message that may have been carried by the request. The RMS > will now have to deal with this as it sees fit – close its sequence, > fault, keep using its sequence for one-way messages only, etc. > Same comment as on 1: the "rmd" would have to send a "replyTo" epr with the place for the "client" to send the CSR corresponding to the offered sequence CS? > 3. What should happen when a late arriving (already ack'd) message > arrives at the RMD? What should the response be? > > It depends, if the message is a one-way then an ack is sufficient. If > the message is part of a two-way then: > > a) if the reply has not been acknowledged then the reply for the late > arriving message should a copy of the original reply. > > b) If the reply has been acknowledged then it doesn’t matter, an ack > or a 202 should be sufficient. > > 4. Can there be two sockets connected to the RMD at the same time and > both sending the same message? What's the response to in each case? > > The number of sockets a client opens seems irrelevant to the abstract > correctness of the protocol. Maybe a better question is: What if two > instances of the same request arrive at the same time? The rule that > MUST be followed is: Neither of the replies should carry an ack for > the request until the RMD/AD decide what the reply should be. For > instance, say request A and request B arrive at the same time, they > both carry a Sequence header with MessageNumber == N. Say A is > processed by the RMD first and delivered to the AD. The AD takes some > time to prepare a reply. Now B is processed. According the rule above > the RMD can do one of three things: a) Send a 202. b) Send an ack that > does not include N. c) Hold the request carrying B until the AD sends > the reply, then reply to both requests (A and B) with that reply and > an ack carrying N. This would seem to be the best approach. > > 5. If request msg #2 is acked (back at the RMS) but response msg #2 > isn't acked (back at the RMD) how can the RMD resend it? I think its > possible that the RMS can get to a point where it received response > msg #2 but the ack for it was lost. So, RMS thinks all is well, but > RMD doesn't. Unless the RMS resends a message (but why would it when > it thinks all is well), then the RMD is stuck. Can't resend and can't > close the sequence. > > In general, if the ack for any given reply message is lost, the next > message received by the RMD contain an ack for that reply. In the > worst case, that message will be a TS that includes the ack. > > 6. What specific changes to the spec(s) do we ned to make to clear up > these issues? > > Marc sent out a set of proposed changes. I think those would suffice. > > --Stefan > -- ---------------------------------------------------- Tom Rutt email: tom@coastin.com; trutt@us.fujitsu.com Tel: +1 732 801 5744 Fax: +1 732 774 5133
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]