samp.status=samp.noresponse
Mark Taylor
m.b.taylor at bristol.ac.uk
Tue Jul 26 06:22:52 PDT 2011
Luigi,
on reflection, I think your idea is best, since it keeps the
straightforward ok/warning/error status. I've altered the text so
that in case of a non-forthcoming recipient response the hub
should generate a response with samp.status=samp.error and
samp.code=samp.noresponse. The change is visible at
http://code.google.com/p/volute/source/detail?r=1544
Mark
On Wed, 13 Jul 2011, Luigi Paioro wrote:
> Well, actually clients code should be ready to receive values other than
> samp.ok, etc. but I'm not sure I've been so careful writing the clients code I
> have. However this is not really an issue for me, since if I find a problem I
> can promptly fix it. I am rather concerned about the code written by others.
> In any case, if I am the only one worried about this, that's OK,
> samp.noresponse is a good option.
>
> Cheers,
>
> Luigi
>
>
> Il 07/13/11 17:25, Mark Taylor ha scritto:
> > Luigi,
> >
> > I'd resist declaring a well-known samp.errortxt value, since that
> > should probably be free text, and in any case it may be useful to
> > inform the user exactly what's happened (client has unregistered,
> > message state discarded because of hub memory limits, something else...).
> >
> > A well-known samp.code for this purpose as you suggest would however
> > do the trick, and is fully backward compatible. It feels a little bit
> > untidy to me, but it's not a bad idea.
> >
> > Since the samp.status entry is declared as an extensible vocabulary,
> > client code ought to be prepared to deal with values other than
> > samp.ok, samp.warning and samp.error. However, I agree, in practice
> > it's possible that it won't. Do you (or anybody else) have a feeling
> > for whether this is likely to cause problems for existing code
> > in practice?
> >
> > Mark
> >
> > On Wed, 13 Jul 2011, Luigi Paioro wrote:
> >
> > > This is a good point, and from a general point of view probably the option
> > > 2
> > > is preferable, but, as you say, it could raise some problem in existing
> > > code
> > > (not able to recognize samp.noresponse key). I'm a bit concerned about
> > > this
> > > issue. A possible option could be to return a samp.error with a well know
> > > samp.code and samp.errortxt. I cannot figure out another backward
> > > compatible
> > > solution.
> > >
> > > Luigi
> > >
> > >
> > > Il 07/13/11 14:35, Mark Taylor ha scritto:
> > > > Section 3.13 of the current SAMP v1.2 Recommendation, in discussing
> > > > error processing, has the following wording:
> > > >
> > > > "In the case of failed calls of the operations defined in Sections
> > > > 3.11 and 3.12, for instance syntactically invalid parameters or
> > > > communications failures, hubs and clients SHOULD use the usual
> > > > error reporting mechanisms of the transport protocol in use. Note
> > > > in
> > > > particular that a samp.status=samp.error-type Response (Section
> > > > 3.9)
> > > > is only generated by a client processing a received Message, it
> > > > MUST
> > > > NOT be used by the hub to signal a failed call."
> > > >
> > > > I don't remember if there was a strong motivation for this prohibition
> > > > on the Hub originating an error Response. However it occurs to me that
> > > > there is at least one circumstance when it would be a good idea for
> > > > it to do so: if the hub has determined in some way that a recipient
> > > > client is never going to respond to a pending call/response message
> > > > (for instance because the client has unregistered), it would be good
> > > > if it could inform the sender of that fact. This would prevent the
> > > > sender waiting for ever for a response which will not arrive.
> > > > For an asychronous call/response message using the existing API,
> > > > the only way that the hub can pass that information to the sender
> > > > is using a hub-generated Response; the reporting mechanisms of
> > > > the transport protocol (e.g. XML-RPC Faults) can't be used after
> > > > the Call has been received, since the RPC for the Call part has
> > > > finished.
> > > >
> > > > I therefore suggest:
> > > >
> > > > 1. The last sentence of the quote above be removed or replaced.
> > > >
> > > > 2. The possible values for the Response map samp.status key
> > > > defined in section 3.9 be extended: a new value
> > > > "samp.noresponse",
> > > > intended only for use in Hub-fabricated responses, should be
> > > > added alongside samp.ok, samp.warning and samp.error.
> > > >
> > > > Item 2 is debatable - it might be better to use the existing samp.error
> > > > status for this purpose, since in most cases the sender would want to
> > > > treat a no-response as a kind of error, and this would have less
> > > > potential to disrupt existing code, but my feeling is that the
> > > > additional clarity provided by a status specifically intended for
> > > > this situation is worth the (minor) disruption potential.
> > > >
> > > > I've made a provisional edit to the SAMP document along these lines,
> > > > see http://code.google.com/p/volute/source/detail?r=1539
> > > >
> > > > If anyone disagrees with the idea or the details, please say so.
>
--
Mark Taylor Astronomical Programmer Physics, Bristol University, UK
m.b.taylor at bris.ac.uk +44-117-928-8776 http://www.star.bris.ac.uk/~mbt/
More information about the apps-samp
mailing list