[mmox] LLSD and content schema

Jon Watte <jwatte@gmail.com> Fri, 20 February 2009 20:21 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 D377F3A695F for <mmox@core3.amsl.com>; Fri, 20 Feb 2009 12:21:32 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.498
X-Spam-Level:
X-Spam-Status: No, score=-2.498 tagged_above=-999 required=5 tests=[AWL=0.101, 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 OBubMsOkbbyR for <mmox@core3.amsl.com>; Fri, 20 Feb 2009 12:21:31 -0800 (PST)
Received: from yx-out-2324.google.com (yx-out-2324.google.com [74.125.44.30]) by core3.amsl.com (Postfix) with ESMTP id B316F3A6959 for <mmox@ietf.org>; Fri, 20 Feb 2009 12:21:31 -0800 (PST)
Received: by yx-out-2324.google.com with SMTP id 8so881958yxm.49 for <mmox@ietf.org>; Fri, 20 Feb 2009 12:21:46 -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=PqclhO2DQQe9VOyTArZvO/EAH8srA7S8H5ms+d4dP0s=; b=HhdNNCwgFV+946Ij/PDsndA5xNAYELhEa6Rerl2At503lpEVvFMgchLEig0g8qADex a83iaDE/2bPFEP69XmAw5bsqxQLtH1HEClxp6+lNeYsiccrGJcz5PvVOvdJuj5O5/0uW 9p1ebbUWbojVfwmB66ep+EmzbdSxIscQuuZMU=
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=BufDl2R+aX4Cjm+QpEczrpnXIDvwGewCIckazqqlbqQ7WRC8qwAjeBAbrTidQ1rXGh l1/WQrDo3/p2neBI8ukk2zy9UiG/i0ijoFTNsRbcGidzgEWMFqeITHbj7S8hetVQt9AF frLpJildgAZxGmaQTqpBQYlaMuaDVOnY6s4uU=
Received: by 10.101.1.16 with SMTP id d16mr1777345ani.153.1235161305849; Fri, 20 Feb 2009 12:21:45 -0800 (PST)
Received: from ?192.168.168.110? (smtp.forterrainc.com [208.64.184.34]) by mx.google.com with ESMTPS id c9sm5091737ana.33.2009.02.20.12.21.44 (version=TLSv1/SSLv3 cipher=RC4-MD5); Fri, 20 Feb 2009 12:21:45 -0800 (PST)
Message-ID: <499F10D7.5080605@gmail.com>
Date: Fri, 20 Feb 2009 12:21:43 -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>
In-Reply-To: <88DFFC67-0B59-4D65-86FB-8776899B794A@lindenlab.com>
Content-Type: text/plain; charset="ISO-8859-1"; format="flowed"
Content-Transfer-Encoding: 7bit
Cc: "mmox@ietf.org" <mmox@ietf.org>
Subject: [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: Fri, 20 Feb 2009 20:21:32 -0000

Meadhbh Hamrick (Infinity) wrote:
> * LLSD is implementable by mortals in a tractable amount of time and 
> without the use of complicated third-party tools (ASN.1 compilers, etc.)

I don't see the LLSD interface compiler as any different in conceptual 
complexity than an ASN.1 compiler. I did bring up the question of ASN.1 
before, and was told by you that you felt it was "too buggy," which I 
think is not fair or accurate.

However, I believe ASN.1 and also LLSD have a problem that I'd like to 
see addressed in a standard: they use implicit schema.

If I want to send a piece of data from point A to point B, and the 
points don't both exactly know what the data is, that's fine -- but, in 
that case, you typically want to use something a little more open-ended 
and more generally standardized, like XML. The benefit of XML is that 
there are tons of tools that already support it (as there are with 
ASN.1, btw); XML also allows well-formed documents to be verified using 
XSD schema. If you need large binary blob support (textures, etc), those 
can be included by reference uri. I think XML is appropriate for those 
cases, and LLSD doesn't quite fit the bill in that case.

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.

Thus, I would assume that any communication where size matters (such as 
for entity property update streams) will be done using negotiated 
(bilaterally understood) schema, with the following properties:
1) Only data elements, not names or types, are sent.
2) Specfic properties are addressed using short Ids that are translated 
in schema.
3) If certain properties are always sent together (say, position x y z 
and orientation x y z w) then schema allows for an "aggregate property" 
to be declared, such that only a single name (Id) is needed to identify 
that entire tuple.


I have written an illustrative proposal up for this that may help 
clarify the issue, at the following URLs:
http://www.interopworld.com/node/29
http://www.interopworld.com/node/28

Sincerely,

jw