[apps-discuss] apps-team review of draft-merrick-jms-uri-10
Tim Bray <tbray@textuality.com> Thu, 16 December 2010 23:59 UTC
Return-Path: <tbray@textuality.com>
X-Original-To: apps-discuss@core3.amsl.com
Delivered-To: apps-discuss@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id B98C43A6A36 for <apps-discuss@core3.amsl.com>; Thu, 16 Dec 2010 15:59:43 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.977
X-Spam-Level:
X-Spam-Status: No, score=-2.977 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, RCVD_IN_DNSWL_LOW=-1]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id CaXJEmejDVUt for <apps-discuss@core3.amsl.com>; Thu, 16 Dec 2010 15:59:42 -0800 (PST)
Received: from mail-fx0-f52.google.com (mail-fx0-f52.google.com [209.85.161.52]) by core3.amsl.com (Postfix) with ESMTP id 1FAA53A6A1F for <discuss@apps.ietf.org>; Thu, 16 Dec 2010 15:59:41 -0800 (PST)
Received: by fxm5 with SMTP id 5so120099fxm.39 for <discuss@apps.ietf.org>; Thu, 16 Dec 2010 16:01:27 -0800 (PST)
MIME-Version: 1.0
Received: by 10.223.100.15 with SMTP id w15mr399277fan.121.1292544086973; Thu, 16 Dec 2010 16:01:26 -0800 (PST)
Received: by 10.223.27.13 with HTTP; Thu, 16 Dec 2010 16:01:26 -0800 (PST)
X-Originating-IP: [216.113.201.123]
Date: Thu, 16 Dec 2010 16:01:26 -0800
Message-ID: <AANLkTimCZHmzaC+t2hGDkhcTmQgOe6k1aeG1q+FKVOAG@mail.gmail.com>
From: Tim Bray <tbray@textuality.com>
To: SM <sm+ietf@elandsys.com>, Apps Discuss <discuss@apps.ietf.org>, m8philli@uk.ibm.com, peaston@progress.com, derek.rokicki@softwareag.com, eric@tibco.com, Alexey Melnikov <alexey.melnikov@isode.com>, The IESG <iesg-secretary@ietf.org>
Content-Type: text/plain; charset="windows-1252"
Content-Transfer-Encoding: quoted-printable
Subject: [apps-discuss] apps-team review of draft-merrick-jms-uri-10
X-BeenThere: apps-discuss@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: General discussion of application-layer protocols <apps-discuss.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/apps-discuss>, <mailto:apps-discuss-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/apps-discuss>
List-Post: <mailto:apps-discuss@ietf.org>
List-Help: <mailto:apps-discuss-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/apps-discuss>, <mailto:apps-discuss-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 16 Dec 2010 23:59:43 -0000
I have been selected as the Applications Area Review Team reviewer for this draft (for background on apps-review, please see http://www.apps.ietf.org/content/applications-area-review-team) Please resolve these comments along with any other Last Call comments you may receive. Please wait for direction from your document shepherd or AD before posting a new version of the draft. Document: draft-merrick-jms-uri-10 Title: URI Scheme for Java(tm) Message Service 1.0 Reviewer: Tim Bray Review Date: Dec 16, 2010 Summary: The draft has some mechanical issues which are not show-stoppers. I have questions whether this ought to be an RFC since there seems very modest expectation of interoperability between implementations; why, then, an IETF RFC, which suggests that the resulting URIs should be useful for identification of resources on an internetworked scale. Major Issues: 1. the draft suggests that given a “jms:” URI, there is little expectation that, without checking on the value of the “variant” and for the presence of vendor-specific parameters, it can be used interoperably in more than one implementation. In which case, I have to wonder about the appropriateness of using a *Uniform* resource identifier for whatever purposes are contemplated for these things; no motivations or use-cases are provided. The last paragraph of section 1 is troubling. For convenience, I quote: <<<<< As a consequence of building upon an API, rather than a protocol, the utility of a "jms" URI depends on the context in which it is used. That context includes agreement on the same JMS provider or underlying protocol, agreement on how to look up endpoints (JNDI), and when using serialized Java object messages, sufficiently similar Java Class environments that serialized objects can be appropriately read and written. Users of this scheme need to establish the necessary shared context parts as just enumerated - a context which can span the globe, or merely a small local network. With that shared context, this URI scheme enables endpoint identification in a uniform way, and the means to connect to those endpoints. >>>> Given this, what are the advantages of having a *Uniform* resource identifier, if there is not much expectation of uniformity in implementations? 2. Section 3.3 says “ If users plan switching between JMS vendors, they might also need to plan on regenerating resources that contain URIs in this vendor specific form”; this sharpens my concerns about the lack of interoperability... I’m getting the impression, reading this, that “jms:jndi” is probably quite interoperable, but the variants are maybe a back-door for vendor abuse. Minor Issues: 1. Section 1. Need references for terms like javax.jms.Destination for people who aren’t familiar with Java pathname voodoo. 2. Section 4 para beginning “Each variant can have query parameters...” - did you consider separating the variant prefix from the rest of the parameter name with “.” or some other syntax marker? I note that you use “jndi-” for another class of parameter names below. 3. Same paragraph. Should the variant be used as a prefix even if it’s a vendor-supplied one starting with “vnd.”? An example of this would be nice. 4. 4.1.1 and so on, should the draft impose any constraints on the syntax of these parameter values? Perhaps they are inherited from the referenced sections in the JMS 1.1 spec? If so, please say so. Ah, I see that 4.1.3 does specify some syntax, albeit loosely; there are a lot of different syntaxes which may be used to specify “ number between 0 and 9, inclusive”. Are you OK with 0x3 or, for timeToLive, “1,500”? 5. 4.2.1 Perhaps a note prior to launching into all the parameters on syntax constraints, with, I’m assuming, normative references into the JMS spec? 6. 4.2.2 includes great gobs of Java code illustrating how to use such an endpoint. Does this not contradict with the assertion at the top of section 4 which says “ Operations available on JMS destinations are fully and normatively defined by the JMS specification and as such, are out of scope for this URI specification”? In any case, 4.2.2 needs a bit of preparatory language explaining what it is. Is it normative behavior for implementations? Is it there for illustrative purposes? Is it required to use Java, or could I code something equivalent in C# or Ruby? A few paragraphs in there’s a passing reference to “the following (non-normative) code...” 7. 4.3.1, see comments on 4.2.2 above. Is this description of programming practice normative, illustrative, or what? 8. Section 6, 3rd para: I haven’t ever seen anything like the note about what an OASIS TC might be doing in an RFC before, but possibly I’ve just missed the examples. 9. Section 7, last para: “As described in Section 4, others can define additional variants”... there is no description in Section 4 of how to define additional variants. Also, while the language in the opening of the draft suggests that the set of variants is open-ended, this is the first explicit mention of this possibility that I encountered. Is there a registry? Oh, there it is in section 9.2. OK, I think that the beginning of the doc needs to say that the set of variants is open-ended and vendor-extensible. It also smells like a big huge honking interoperability hole. Nits: 1. Section 4 para 3, superfluous comma after “Both the variant”. 2. Section 4 para beginning “Each variant can have query parameters...” - did you consider separating the variant prefix from the rest of the parameter name with “.” or some other syntax marker? I note that you use “jndi-” for another class of parameter names below. 3. Section 4.1 I assume “shared” means “available in all variants”? If so, why not say so? 4. Section 4.1 first para, the word “property” suddenly appears for the first time. Is this a synonym of “parameter”? 5. Section 4.1.1 Lots of references here need to be turned into RFC style with square brackets 5. Same section, missing full stop after “following shared parameters”. 6. 4.1.1 Probably more idiomatic of normative text to say, instead of “This MUST be”, “The value of this parameter MUST be...” 7. 4.1.1 Missing full-stop at end. 8. 6, 2nd para: What’s an “SPI”?
- Re: [apps-discuss] apps-team review of draft-merr… S Moonesamy
- [apps-discuss] apps-team review of draft-merrick-… Tim Bray
- Re: [apps-discuss] apps-team review of draft-merr… Larry Masinter
- Re: [apps-discuss] apps-team review of draft-merr… Alexey Melnikov
- Re: [apps-discuss] apps-team review of draft-merr… Eric Johnson
- Re: [apps-discuss] apps-team review of draft-merr… Tim Bray
- Re: [apps-discuss] apps-team review of draft-merr… Eric Johnson
- Re: [apps-discuss] apps-team review of draft-merr… Tim Bray