RFC Discussion

This page will be used to encapsulate the discussion of the SAMP RFC from December 8, 2008 through January 16, 2009. Comments and responses will be included below. The SAMP protocol and its implementations are described in the documents linked to the SampProgress page. Since the document is in a public source code repository, interested viewers will be able to see the changes which are made as a consequence of these comments - see SampDoc for details.

Please add your comments here directly, or send mail to either the general Applications or specific SAMP mailing lists.


Comments:

Comments from BobHanisch

  • Most of my comments on this document are editorial in nature – proper use of which and that, punctuation, and so on. I will be happy to share a detailed mark-up with the editors. To first order, almost all uses of “which” are incorrect and need to be replaced with “that”. I strongly prefer the Oxford comma (apples, bananas, and oranges), which is the standard for the astronomical literature in the US, but I know that in some countries and in newspapers this is not used. Wikipedia has a nice discourse on this: http://en.wikipedia.org/wiki/Serial_comma .
    • These comments boil down to American/English English distinctions. Discussed in private emails.

  • A general concern, though, is that it is not clear when the document is using the special words “must”, “should”, “may”, etc., in accord with RFC 2119 and when it is not. Sometimes the words appear in all-caps, but usually they do not. Sometimes the word “can” is used and it is ambiguous whether this means may, should, or must. And sometimes “should” it used when it seems like it really is a must. I note a few particular problems below, and others are in my more detailed mark-up.
    • Some of these addressed as detailed below. Otherwise I've been through the text and capitalised these terms where they are used in the sense of RFC 2119. Where they are not now capitalised, and where "can" is used, the modality is not in the RFC 2119 sense of adherence to the protocol.

  • Section 1.3 introduces the term “publish”, but then it is almost immediately abandoned and replaced by “send”. Are these synonyms, or am I misunderstanding the intent?
    • This section is, by way of supplying context, discussing some messaging models which are related to what SAMP does, but SAMP does not exactly match any of the four models discussed here. Although the notion of "subscription" is one which we do use throughout the document as part of the description of how SAMP works, the notion of "publication" is not (partly because SAMP permits sends directed to a single recipient as well as ones directed to all subscribed recipients, and this does not seem to be well captured by the terminology of publication). So: no, "publish" is not to be considered a synonym of "send" here. I have reworded this paragraph, though not the rest of the text, slightly as follows, avoiding use of the word "send": "A publish/subscribe (pub/sub) messaging system supports an event driven model where information producers and consumers participate in message passing. SAMP applications ``publish'' a message, while consumer applications ``subscribe'' to messages of interest and consume events. The underlying messaging system routes messages from producers to consumers based on the message types in which an application has registered an interest." Is this any better? If you still find this dicussion confusing, an alternative would be to remove this section, which has no normative content.

  • In Section 3.3, the string data type is described as a sequence of characters, with the examples being ASCII hex codes, it would appear. But this is not explicit and needs to be.
    • Definition reworded: " string --- a scalar value consisting of a sequence of characters; each character is an ASCII character with hex code 09, 0a, 0d or 20-7f"

  • In 3.8 there is an example of the use of “can”: “The message can be encoded as a map with the following REQUIRED keys... “ I am not sure what the developer is supposed to make of this. If the keys are REQUIRED, isn’t this a “must”?
    • The thinking was that this is one way to encode the abstract message object (one might think of others), and the references to this section from sections 3.11 and 3.12 are what require that this particular encoding is used for the purposes of the SAMP API. However, I've now clarified this in 3.8 by writing instead: "A message is encoded for SAMP transmission as a map with the following REQUIRED keys" , and made a similar alteration in sec 3.9.

  • In 3.11, p. 22, 2nd bullet, there is another example: “mtype may not include wildcards.” It seems that “must” is the correct verb. There are several more “may”s in subsequent bullets that need to be clarified.
    • "may not" changed to "MUST NOT" in that case. The other "may"s you have marked near here are "May only be invoked by a Callable Client" . It doesn't make sense to replace May by MUST in these cases (the client is not under obligation to invoke these operations), so I have reworded: "An error results if the invoking client is not Callable" (though I'm dubious that this improves clarity).

  • On p.23, just above 3.12, it says “...should complete...quickly.” What is “quickly”? There needs to be some point of reference, like in less time than something else, or so as not to block some other operation, or something similar.
    • This wasn't intended to be a well-defined restriction, more of a fuzzy indication of what could be expected. However, I've replaced it by the following more specific text: "Of these operations, only callAndWait() involves blocking communication with another client. The others SHOULD be implemented in such a way that clients can expect them to complete, and where appropriate return a value, on a timescale short compared to user response time."

  • In 3.12, p. 22, the section is called “Operations a Callable Client Must Support”, but immediately we see “may” language and a description of operations that the hub invokes. I find this to be confusing.
    • I've replaced the first sentence with the following: "This section lists the operations which a client MUST support in order to be classified as callable. The hub uses these operations when it wishes to pass information to a callable client."

  • On p. 24, there is another “...should complete quickly” with no context.
    • Since these operations do not return values, I have removed this sentence.

  • 3.13, p. 24, ends with “... it is not to be used by the hub to signal a failed call.” Must not? Should not?
    • Changed to MUST NOT .

  • Section 4.2, it is not clear if these are musts or shoulds.
    • Since it's discussing an API, I don't think there is much ambiguity. However, I have added a MUST at the start of the section.

  • Section 5, p. 31, the term UCD needs to be defined and referenced.
    • Reference added.

  • Section 5.3, p. 33, the first paragraph is informal and not specific. Make a decision about how and where to document MTypes and describe it here clearly.

  • Section 5.4.1, all messages are described as “should”, but they seem like “must”.
    • SHOULD was my intention. For instance a hub might decide not to pass on all metadata declarations if a flood is received over a short interval - won't usually be the case, but I believe it should be an implementation decision. But we can reconsider this if any SAMP authors/contributors disagree.


Comments from JesusSalgado

  • The document is clear from the technical point of view. However, to be fully useful for external developers, the note/document where current MTypes are listed must be provided.

  • In fact, because of the already existing well-written client and hub packages provided to the community, the SAMP architecture is quite transparent to the client developer and the tricky part of SAMP is now the implementation of the relevant messages per application, so the MTypes list and description is, at least, as important as the SAMP general design and it complements it.

  • In the document (section 5.3), it is mentioned that these MTypes could appear in an IVOA Note (instead of a document) to avoid administrative overhead. However, the UCD controller vocabulary (a similar document) is a formal document, so a more formal approach is still feasible. A possible intermediate solution could be a formal document with the already accepted messages and a working list of new MTypes waiting to be formally approved in note or web format.

Response:

  • A similar comment has been made above by Bob and below by Christophe. We will discuss the best way to address this (on the apps-samp list, for those interested) and provide a response shortly. -- MarkTaylor - 19 Jan 2009


Comments from Working and Interest Groups:

Applications

This draft reflects the consensus of the Working Group. There are, as far as I know, no substantive controversies. TomMcGlynn

Data Access Layer

Data Modeling

Grid & Web Services

Resource Registry

Semantics

VO Event

The IVOA might consider standardizing nomenclature for pubsub. VOEvent has brokers. SAMP has hubs. Defining a hub as a broker for routing seems a bit redundant. I guess a hub would be a broker that never talks to another broker?

A solid draft - complete and self-consistent. That's a "yea" (even a "yay!") from us. RobSeaman

VO Query Language

I approve the document. PedroOsuna.

VOTable

PLASTIC proved to be a basic interoperability component in VO; and the SAMP document adds the possibility of understanding the underlied protocol. Well written in comprehensive terms.

I approve the document. FrancoisOchsenbein

Data Curation & Preservation

No additional comments from DCP. BobHanisch

OGF Astro-RG

Theory

Approved from TIG. HerveWozniak

TCG

The document is well written, with clear reference and examples for implementation. Taking into account the already wide acceptance of PLASTIC, Annex A is particularly useful.

In section 5.3 MTypes Vocabulary, should we directly define the NOTE of web page where the list of (existing and increasing) "samp" MTypes would reside ?

I approve the document. ChristopheArviset


Edit | Attach | Watch | Print version | History: r43 | r24 < r23 < r22 < r21 | Backlinks | Raw View | Raw edit | More topic actions...
Topic revision: r22 - 2009-01-20 - MarkTaylor
 
This site is powered by the TWiki collaboration platform Powered by Perl This site is powered by the TWiki collaboration platformCopyright © 2008-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback