Re: [mmox] XML serialization
Jon Watte <jwatte@gmail.com> Mon, 23 February 2009 23:58 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 DAAF03A6A7F for <mmox@core3.amsl.com>; Mon, 23 Feb 2009 15:58:28 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.455
X-Spam-Level:
X-Spam-Status: No, score=-1.455 tagged_above=-999 required=5 tests=[AWL=-1.022, BAYES_00=-2.599, FF_IHOPE_YOU_SINK=2.166]
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 bAJecQ+llgST for <mmox@core3.amsl.com>; Mon, 23 Feb 2009 15:58:27 -0800 (PST)
Received: from mail-gx0-f174.google.com (mail-gx0-f174.google.com [209.85.217.174]) by core3.amsl.com (Postfix) with ESMTP id BDA173A67B4 for <mmox@ietf.org>; Mon, 23 Feb 2009 15:58:26 -0800 (PST)
Received: by gxk22 with SMTP id 22so5972760gxk.13 for <mmox@ietf.org>; Mon, 23 Feb 2009 15:58:44 -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=ix2EpIqdh8zwJ0osphx/wfarxwc3huG4fBy/TRMYLbM=; b=CYEWxuyyygkYqgXdL53EnpJ6CqINlgRmX8SGyrxyyLpZiS5SgkMHF3PiSXwJ36+/lx xOTXkjgQeboqpE3Oc4++fwJN/M86HGZ5N4fSLxJLL6iszkHRfUNcZlkUqMIbgbRVcWwk Qagg/4MQeKyU2YwINJPZ7X1xR9C2HpEBJLxcE=
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=uerqb1qDRAAQ9s7vZJId5UJ+EquNbIiAEgVVyQA+Xom6KcovlA1R575irLVytHnbGX tQk7Hr5tiNAM7fARaM+RkvPJmQcfTjgsyo9HXaazBUvh6ELSME4CmJQPF3G0aBhDET8G zIpxj5/fqKAeUS01Zlxm8o5sSdpMGfuFEoZM4=
Received: by 10.100.153.6 with SMTP id a6mr4907474ane.76.1235433523235; Mon, 23 Feb 2009 15:58:43 -0800 (PST)
Received: from ?192.168.168.111? (smtp.forterrainc.com [208.64.184.34]) by mx.google.com with ESMTPS id c40sm9126665anc.48.2009.02.23.15.58.41 (version=TLSv1/SSLv3 cipher=RC4-MD5); Mon, 23 Feb 2009 15:58:42 -0800 (PST)
Message-ID: <49A33830.1060509@gmail.com>
Date: Mon, 23 Feb 2009 15:58:40 -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: <ebe4d1860902230239q207d4c0ar5b0582ad7ca855bf@mail.gmail.com> <49A30D7A.3040003@gmail.com> <2F80CC37-A5BD-4EAD-8E12-D31A21912A8B@lindenlab.com> <62BFE5680C037E4DA0B0A08946C0933D502639CF@rrsmsx506.amr.corp.intel.com> <E687852F-8091-43BF-961F-215036069846@lindenlab.com>
In-Reply-To: <E687852F-8091-43BF-961F-215036069846@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] XML serialization
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: Mon, 23 Feb 2009 23:58:28 -0000
Meadhbh Hamrick (Infinity) wrote: > our system works fine with the new serialization. this would require a > non-zero amount of resources be spent on deploying the change. ergo, > we would need some justification for making the change. > Do you agree that any kind of generally suitable interoperability will require engineering effort, sometimes significant, on the part of all possible implementors, including Linden Lab or the Open Sim developers? You do not have to update your internal serialization at all just because we, collectively, design a serialization scheme with differences. You don't need to do any work until and unless such time that 1) there is an actual standard, or at least a concrete proposal 2) you decide that supporting this standard is in the best interests of your company or group > > but may i ask? why do we need to change something that we know works, > is already deployed, and seems to work without flaw? > Because it can work better. It can be more compact, it can better suit a variety of parser styles, it can be easier read and written by human beings, it can be easier expanded or adapted, it can more easily be processed using fast hashing-based (order independent) processing methods. If your argument is that "while I understand that some other people feel that direction X is better, we are currently using direction Y in the Second Life implementation, so I think Second Life's way should prevail" then you're not actually signed on to the generally applicable, vendor neutral interoperability standard bandwagon. > * can we do a bake off? Once we're done with a serialization format that fulfills all the necessary requirements, I believe there won't be anything "else" to bake-off against. See here for some requirements I would put on a standardized format: http://www.interopworld.com/node/32 I will copy and paste for the convenience of those who don't like out-of-line references: I have looked at the proposal, and see a number of issues that I think need to be addressed before the proposal can be used as a general interoperability standard. ! Proposal Name The name probably should change to something like "VWSD" to avoid any accusation of vendor bias. I trust we can just get this done without too much argument about specific naming. ! Large and Small Integers The "integer" data type needs to be more flexible. 64-bit integers are important, and you can even view UUIDs as 128-bit integers. I propose that integers can be specified as a specific bit width, and signed or unsigned. If you want to stay byte aligned, the set of allowable sizes may be limited to 8, 16, 32 or 64. I additionally propose that a Variable Length Integer Encoding be specified. ! Float32 and Float16 Reals should come in at least two forms: 64-bit and 32-bit. The reason is that localized position relative to some center usually is best described as a 32-bit float. Additionally, mesh data is generally described as 32-bit float vertices, rather than 64-bit. There may be some additional benefit in supporting 16-bit floats, for things like normals, color values or direction vectors. ! Compact Binary Serialization There needs to be support for a binary serialization that does not contain embedded type or key references, but instead use explicit external schema. Thus, to describe a "quaternion" you would simply specify four fp16 (or fp32) values in sequence, with no specific type information. This can extend to describing general entity property values: the type information can be carried by the schema for the entity, and does not need to be encoded in the actual data. Allowing external schema leads to significant bandwidth savings during transmission. ! XPath Friendly XML The XML encoding needs to be XPath friendly, and friendly to introducing or adapting new types in a negotiated higher-version schema. Generally, this means that it looks something like: <map> <value key="success" type="boolean">true</value> <value key="cpu_temp" type="float32">67.0</value> </map> The currently proposed serialization is poor because it's not easy or efficient to find specific values you care about by key; it's also inefficient because it requires any new data types to update the XSD schema, because each type is a tag name. ! Machine Parsable Descriptions It is likely that the language describing the serialization structures will actually be read by machines at runtime, rather than used to generate code. This is definitely true for things like proxy servers and systems that treat entities as "generic collections of data" but want to have some understanding of the underlying data for display, translation, or other processing. While it would be possible to write a parser for the current LLSD syntax, introducing a new language syntax into the world doesn't seem warranted. I propose that the data structure definition language be moved to some XML schema. Sincerely, jw
- [mmox] XML serialization Catherine Pfeffer
- Re: [mmox] XML serialization Jon Watte
- Re: [mmox] XML serialization Hurliman, John
- Re: [mmox] XML serialization Meadhbh Hamrick (Infinity)
- Re: [mmox] XML serialization Hurliman, John
- Re: [mmox] XML serialization Jon Watte
- Re: [mmox] XML serialization Mark Lentczner
- Re: [mmox] XML serialization Meadhbh Hamrick (Infinity)
- Re: [mmox] XML serialization Jon Watte
- Re: [mmox] XML serialization Jon Watte
- Re: [mmox] XML serialization Hurliman, John
- Re: [mmox] XML serialization Jon Watte
- [mmox] XML serialization Catherine Pfeffer
- Re: [mmox] XML serialization Meadhbh Hamrick (Infinity)
- Re: [mmox] XML serialization Jon Watte
- Re: [mmox] XML serialization Lawson English
- Re: [mmox] XML serialization Jon Watte
- Re: [mmox] XML serialization Lawson English
- Re: [mmox] XML serialization Jon Watte
- Re: [mmox] XML serialization Meadhbh Hamrick (Infinity)
- Re: [mmox] XML serialization Jon Watte