Re: [ogpx] content negotiation for LLSD over HTTP connections
Carlo Wood <carlo@alinoe.com> Sat, 27 June 2009 10:47 UTC
Return-Path: <carlo@alinoe.com>
X-Original-To: ogpx@core3.amsl.com
Delivered-To: ogpx@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix)
with ESMTP id DB0873A6B2D for <ogpx@core3.amsl.com>;
Sat, 27 Jun 2009 03:47:33 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.43
X-Spam-Level:
X-Spam-Status: No, score=-1.43 tagged_above=-999 required=5 tests=[AWL=0.000,
BAYES_00=-2.599, HELO_EQ_AT=0.424, HOST_EQ_AT=0.745]
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 JFfCB8LlAuwm for
<ogpx@core3.amsl.com>; Sat, 27 Jun 2009 03:47:33 -0700 (PDT)
Received: from viefep15-int.chello.at (viefep15-int.chello.at [62.179.121.35])
by core3.amsl.com (Postfix) with ESMTP id 8E1B83A6B15 for <ogpx@ietf.org>;
Sat, 27 Jun 2009 03:47:32 -0700 (PDT)
Received: from edge04.upc.biz ([192.168.13.239]) by viefep15-int.chello.at
(InterMail vM.7.09.01.00 201-2219-108-20080618) with ESMTP id
<20090627104729.RQBQ26501.viefep15-int.chello.at@edge04.upc.biz>;
Sat, 27 Jun 2009 12:47:29 +0200
Received: from mail9.alinoe.com ([77.250.43.12]) by edge04.upc.biz with edge
id 8ynS1c02m0FlQed04ynTJ7; Sat, 27 Jun 2009 12:47:29 +0200
X-SourceIP: 77.250.43.12
Received: from carlo by mail9.alinoe.com with local (Exim 4.69) (envelope-from
<carlo@alinoe.com>) id 1MKVRT-0007ls-9q; Sat, 27 Jun 2009 12:47:31 +0200
Date: Sat, 27 Jun 2009 12:47:31 +0200
From: Carlo Wood <carlo@alinoe.com>
To: Infinity Linden <infinity@lindenlab.com>
Message-ID: <20090627104731.GB28675@alinoe.com>
References: <3a880e2c0906261648k1a14024cudd4cbccb57d8753f@mail.gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <3a880e2c0906261648k1a14024cudd4cbccb57d8753f@mail.gmail.com>
User-Agent: Mutt/1.5.18 (2008-05-17)
Cc: ogpx@ietf.org
Subject: Re: [ogpx] content negotiation for LLSD over HTTP connections
X-BeenThere: ogpx@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Virtual Worlds and the Open Grid Protocol <ogpx.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ogpx>,
<mailto:ogpx-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ogpx>
List-Post: <mailto:ogpx@ietf.org>
List-Help: <mailto:ogpx-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ogpx>,
<mailto:ogpx-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 27 Jun 2009 10:47:33 -0000
On Fri, Jun 26, 2009 at 04:48:00PM -0700, Infinity Linden wrote: > so... we have three serialization formats for LLSD messages over HTTP: > XML, JSON and Binary. each has it's own uses and constituency. > > but it _does_ leave implementers and deployers with questions like: > > * must i support each and every LLSD defined serialization? > * under what circumstances should i choose one over the other? > * what if i am a server and i only want to use one serialization? > * what if i am a client and i only want to use one serialization? In the past I designed a client-server protocol negotiation sheme that allows for arbitrary protocol enhancements over time, without an every growing protocol negotiation payload or the need to keep supporting legay protocol; namely, it is possible to shift the 'base' protocol and drop support for (very) old protocol. This sheme was originally written for IRC, and wasn't adopted because the people who had to decide if they liked it weren't able to understand it... and lacking an overview, it gave them the uneasy feeling that it was "too complicated". However, it is not too complicated at all. It's mathematically perfect and rather easy way to allow for protocol changes in the future. One part of it involves negotiation of optional (non-mandatory) features / protocol aspects, so you could use it for example to negotiate the serialization in the case that both, server and client have their preferences and/or limitations. Basically, it works as follows: The client connects and "requests" a protocol (version) and specific features. The server then has two options: either it tells the client that it is incompatible (too old), or it sends back the set of feautures that will be used. The details can be found here (though be warned, this is my original design and applies to IRC): http://www.xs4all.nl/~carlo17/irc/prot.html -- Carlo Wood <carlo@alinoe.com> PS Don't tell me it's "too complex" ;). This is a very flexible, very powerful way to make sure that grids being developed by different groups will not be get stuck in some legacy protocol.
- [ogpx] content negotiation for LLSD over HTTP con… Infinity Linden
- Re: [ogpx] content negotiation for LLSD over HTTP… Hurliman, John
- Re: [ogpx] content negotiation for LLSD over HTTP… Infinity Linden
- Re: [ogpx] content negotiation for LLSD over HTTP… Carlo Wood
- Re: [ogpx] content negotiation for LLSD over HTTP… Carlo Wood
- Re: [ogpx] content negotiation for LLSD over HTTP… Carlo Wood
- Re: [ogpx] content negotiation for LLSD over HTTP… Joshua Bell
- Re: [ogpx] content negotiation for LLSD over HTTP… Carlo Wood