Re: [Uri-review] URI scheme registration request

"Roy T. Fielding" <fielding@gbiv.com> Wed, 02 December 2015 00:28 UTC

Return-Path: <fielding@gbiv.com>
X-Original-To: uri-review@ietfa.amsl.com
Delivered-To: uri-review@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 8D98C1B2DB0 for <uri-review@ietfa.amsl.com>; Tue, 1 Dec 2015 16:28:40 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.166
X-Spam-Level:
X-Spam-Status: No, score=-3.166 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, GB_I_LETTER=-2, IP_NOT_FRIENDLY=0.334, J_CHICKENPOX_22=0.6, J_CHICKENPOX_25=0.6, RCVD_IN_DNSWL_LOW=-0.7] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id aVyjWjPWsa4t for <uri-review@ietfa.amsl.com>; Tue, 1 Dec 2015 16:28:39 -0800 (PST)
Received: from homiemail-a55.g.dreamhost.com (sub4.mail.dreamhost.com [69.163.253.135]) by ietfa.amsl.com (Postfix) with ESMTP id 249631B2E26 for <uri-review@ietf.org>; Tue, 1 Dec 2015 16:28:39 -0800 (PST)
Received: from homiemail-a55.g.dreamhost.com (localhost [127.0.0.1]) by homiemail-a55.g.dreamhost.com (Postfix) with ESMTP id BC7481611; Tue, 1 Dec 2015 16:28:38 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=gbiv.com; h=content-type :mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; s=gbiv.com; bh=KkMySI/Hr/vMh5WYJLOutcTsLZs=; b=jQk9ukF/nXk0R1mXXF8OwLoZJ0o0 utyPuViQGqjRWpug/y59Pq7zgQhdpUX1gCChJpurSr9uJ61ZpcJNQRq678nIyrzi gDu8U/LXhfvM/iWU2WIfttCSc5i2yY+hCS8Ze/nXLYbPcKziR3kulOQjuDg/ameg Wo+WB1HRcvelq60=
Received: from [192.168.1.2] (ip68-228-71-159.oc.oc.cox.net [68.228.71.159]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) (Authenticated sender: fielding@gbiv.com) by homiemail-a55.g.dreamhost.com (Postfix) with ESMTPSA id 267C2160A; Tue, 1 Dec 2015 16:28:37 -0800 (PST)
Content-Type: text/plain; charset="us-ascii"
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
From: "Roy T. Fielding" <fielding@gbiv.com>
In-Reply-To: <565E1FB1.9050208@wasontech.com>
Date: Tue, 01 Dec 2015 16:28:36 -0800
Content-Transfer-Encoding: quoted-printable
Message-Id: <D52952EA-7CA9-4F99-8A7B-6BFED86C78E4@gbiv.com>
References: <564531FC.7000606@wasontech.com> <2D58682309E75147BB3B286C815CAC7E2ACD0A184B@AUSX7MCPS308.AMER.DELL.COM> <5646C765.4050907@wasontech.com> <E3443077-C4D8-496E-BCD0-661F387831E3@gbiv.com> <BY2PR03MB412048F8332055735B3CFFDA3100@BY2PR03MB412.namprd03.prod.outlook.com> <5647B3D1.6000608@wasontech.com> <BY2PR03MB4126303C398BA1771C297F3A3100@BY2PR03MB412.namprd03.prod.outlook.com> <564FF0F6.8020008@wasontech.com> <71680E9C-17BF-4FA2-9C80-3DAB49ADFE99@gbiv.com> <565E1FB1.9050208@wasontech.com>
To: John Wason <wason@wasontech.com>
X-Mailer: Apple Mail (2.2104)
Archived-At: <http://mailarchive.ietf.org/arch/msg/uri-review/YO-Q07VNo9Asc1aGQEE82baRedA>
Cc: "uri-review@ietf.org" <uri-review@ietf.org>
Subject: Re: [Uri-review] URI scheme registration request
X-BeenThere: uri-review@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Proposed URI Schemes <uri-review.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/uri-review>, <mailto:uri-review-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/uri-review/>
List-Post: <mailto:uri-review@ietf.org>
List-Help: <mailto:uri-review-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/uri-review>, <mailto:uri-review-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 02 Dec 2015 00:28:40 -0000

> On Dec 1, 2015, at 2:31 PM, John Wason <wason@wasontech.com> wrote:
> 
> Claiming that the different scheme types are simply "proxies" is inaccurate.  The different transport types have incredibly important performance and security implications that are best transmitted as a single piece of data.  Also, a single client can connect to different services using different transport types so there isn't really a single place that the "proxy" can be specified. The chances of a user getting a two piece connection command correct vs just changing a few letters in the URI are remote. The "click to connect" type usage would not work.  Because Robot Raconteur mostly runs on LAN the DNS system is not used for many connections.  Because of this the same URI with only the scheme changed can connect to different services. This means that the "proxy" specification would point to a different resource which is also not a correct usage of the "proxy" concept.

I meant that the software is relying on an intermediary/broker in the form of your
service that is being discovered via UDP (or directed to via some other configuration)
in the form of a two-piece connection command, which your own description uses to
construct a single-piece URI.  I am saying you can keep them separate and avoid
registering so many schemes.

This does not imply all your services go through a single proxy.  It just means
there is an obvious two-step being performed similar to how HTTP uses proxies:
1) connect to some arbitrary connection-based transport service;
2) use raconteur on that service.

How you get to that intermediary is obviously important and can be specified with
one URI.  Everything else in your description involves queries to that intermediary
after the connection has been established.  That's why you can have one URI that
identifies the service and another URI that is specific to Robot Raconteur.
Your software already knows it is using RR. You don't need a separate identifier
scheme to tell you that the purpose of the connection is RR.

NOTHING in your description indicates that these two different purposes need to
be combined into a single identifier field.  If we are talking about an information
service with hypertext-style interactions using existing formats (like HTML),
then we would need a single identifier because we intend to include the links
as resource references.  If we are talking about a browser plug-in that relies on
the scheme name to be activated, then one of the schemes needs to be specific to
RR (but it really doesn't matter which one).

> "For example, the +ws(s) identifiers appear to just be an alias of ws and wss."
>  
> No they aren't.  The protocol needs to be specified.  It is true that rr+ws etc. are compatible with WebSockets but it is just a stream wrapper.  The rr+ws is critically important to the software library to identify how to connect to the service.

ws is just a stream wrapper. What you do inside that wrapper is not in the URI
because it is intentionally non-standard and already known to both client and
server.

>  "rr and rr+cloud are being defined as aliases = VERY BAD.  There is no reason to do that."
> 
> Except that for users there may be cases where one is more clear than the other.

That is not a reason to alias an entire space of identifiers.

....Roy