Re: [mmox] LLSD and content schema

Jon Watte <jwatte@gmail.com> Sat, 21 February 2009 18:08 UTC

Return-Path: <jwatte@gmail.com>
X-Original-To: mmox@core3.amsl.com
Delivered-To: mmox@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id A59713A6AB2 for <mmox@core3.amsl.com>; Sat, 21 Feb 2009 10:08:01 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.439
X-Spam-Level:
X-Spam-Status: No, score=-2.439 tagged_above=-999 required=5 tests=[AWL=0.160, BAYES_00=-2.599]
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 rwi0Yh1241om for <mmox@core3.amsl.com>; Sat, 21 Feb 2009 10:08:00 -0800 (PST)
Received: from wf-out-1314.google.com (wf-out-1314.google.com [209.85.200.168]) by core3.amsl.com (Postfix) with ESMTP id 865263A6AA2 for <mmox@ietf.org>; Sat, 21 Feb 2009 10:08:00 -0800 (PST)
Received: by wf-out-1314.google.com with SMTP id 27so1726749wfd.31 for <mmox@ietf.org>; Sat, 21 Feb 2009 10:08:15 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from :user-agent:mime-version:to:cc:subject:references:in-reply-to :content-type:content-transfer-encoding; bh=dKlF3IyQh1zmJK/JIJ2aLRq903g73DN2FW8M9Zes03A=; b=PGxjWuYa4I320f361jqZ6LmZrzhi0MezndN89++OXjSLz7TbYY6lcrKF/7BrNsGsfq NN1puF8vfbRw6vLJcq7dFAP8a4cAHBH898172n+SEpOXCY5y97sUiAfCTk7PfALyYLeE fFc0FV+foZKjKlHtXcSSMHcNxcm3TCxgd2SGo=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:user-agent:mime-version:to:cc:subject :references:in-reply-to:content-type:content-transfer-encoding; b=E2i/ztcDU4MHmwpA28WYFQ7b1zbKEEVUzWJrqliovpJBG3qF/hsvjjytAuoZ88erKf JJaVFRnaBZvMnIK+J9M8sjkj1GthxLNIsaONmmmrODjqfHrwhx7LERQb2YPd/NqaG5Wg 3bOueu+KslkKGoFJ1AnLNi+jRWn/LJFhpuXqA=
Received: by 10.142.214.11 with SMTP id m11mr1051229wfg.183.1235239694753; Sat, 21 Feb 2009 10:08:14 -0800 (PST)
Received: from ?192.168.1.101? (svn.mindcontrol.org [69.17.45.136]) by mx.google.com with ESMTPS id 24sm5862455wfc.57.2009.02.21.10.08.14 (version=TLSv1/SSLv3 cipher=RC4-MD5); Sat, 21 Feb 2009 10:08:14 -0800 (PST)
Message-ID: <49A0430E.5030404@gmail.com>
Date: Sat, 21 Feb 2009 10:08:14 -0800
From: Jon Watte <jwatte@gmail.com>
User-Agent: Thunderbird 2.0.0.19 (Windows/20081209)
MIME-Version: 1.0
To: "Meadhbh Hamrick (Infinity)" <infinity@lindenlab.com>
References: <62BFE5680C037E4DA0B0A08946C0933D501FE18E@rrsmsx506.amr.corp.intel.com><80E946E9-5C62-4E00-BE8C-A15513898F99@lindenla b.com><62BFE5680C037E4DA0B0A08946C0933D50262DA8@rrsmsx506.amr.corp.intel.com><29656.28734.qm@web82607.mail.mud.yahoo.com><C803B 307-0984-40AE-946A-00EDDA664502@lindenlab.com><61320.78349.qm@web82607.mail.mud.yahoo.com><FC42B493-529E-424B-9411-80781A570B12 @lindenlab.com><962799.66993.qm@web82608.mail.mud.yahoo.com> <53cd6c2e0902200741m2313b1eeqffc87c8601fd72e2@mail.gmail.com> <88DFFC67-0B59-4D65-86FB-8776899B794A@lindenlab.com> <499F10D7.5080605@gmail.com> <CAAD3457-49CD-4F62-BD42-90BE79DA232D@lindenlab.com>
In-Reply-To: <CAAD3457-49CD-4F62-BD42-90BE79DA232D@lindenlab.com>
Content-Type: text/plain; charset="ISO-8859-1"; format="flowed"
Content-Transfer-Encoding: 7bit
Cc: "mmox@ietf.org" <mmox@ietf.org>
Subject: Re: [mmox] LLSD and content schema
X-BeenThere: mmox@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Massively Multi-participant Online Games and Applications <mmox.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/mmox>, <mailto:mmox-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/mmox>
List-Post: <mailto:mmox@ietf.org>
List-Help: <mailto:mmox-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/mmox>, <mailto:mmox-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 21 Feb 2009 18:08:01 -0000

Meadhbh Hamrick (Infinity) wrote:
> <llsd>
>   <map>
>     <key>success</key>
>     <boolean>true</boolean>
>     <key>something_i_like_to_eat_on_sundays</key>
>     <string>bananas</string>
>   </map>
> </llsd>
>

IMO, that's a terrible serialization, because it depends on ordering. 
While XML is ordered, this particular serialization makes it hard to 
write XPath that selects "the string that comes after key success but 
before key something_i_like_to_eat_on_sundays".

>
>> If I want to send a piece of data from point A to point B, and point 
>> A and point B know exactly what this data will be, then data type 
>> information does not need to be sent as part of the serialization. In 
>> fact, including data type information is redundant and consumes 
>> network bandwidth unnecessarily.
>
> however, sending type information in the serialization allows 
> intermediary systems to reason about the content of the data they are 
> receiving and potentially make routing and caching decisions based on 
> the content.
>

I believe that, for the high-volume real-time binary stream, the 
bandwidth requirements outweigh the "caching" requirements -- nobody's 
going to be caching the real-time data anyway.

> LLSD is intended to be used in a "loosely coupled" environment. one 
> "feature" of such an environment is that systems be resilient in the 
> face of heterogeneity in terms of component version. for example, 
> consider a logging system that received logging messages from a number 
> of clients and stores them for later analysis. when the system is 
> initially deployed, messages may be defined as the tuple (source, 
> severity, description). it is not difficult to imagine the situation 
> where one

It turns out we have a logging system in OLIVE, and it stores the actual 
framed data without needing to know the internals at all. The clients 
need to know and understand the internals, but they can do that because 
they have the schema. Now, in OLIVE, the schema is described largely in 
code, not dynamically, as proposed in my proposal, but I think a dynamic 
schema is actually the right thing to do for interoperability -- it, 
too, makes it possible to update the protocol without recompiling 
anything. And it doesn't require sending "here comes a float" for each 
component of each position vector of each object in each packet sent...

I guess I don't see the applicability of LLSD. It's too little to be 
useful for a "verbose" format (like XML documents), and it's too much 
overhead for the real-time stuff. By contrast, XDR uses external schema, 
which is good, but the existing schema tools are not dynamic, which is 
less good. If LLSD can be adapted in one of two directions (or both!) 
then I'd be much less resistive. Either make it support external schema 
encodings in a binary efficient way (see 
http://www.interopworld.com/node/29) and use it for real-time stuff, or 
make it support proper, Xpath compatible XML and use it for the XML-RPC 
stuff.

Sincerely,

jw