[vwrap] Some thoughts on Josh's Linden Lab Legacy Protocol discussion

David W Levine <dwl@us.ibm.com> Tue, 27 April 2010 21:42 UTC

Return-Path: <dwl@us.ibm.com>
X-Original-To: vwrap@core3.amsl.com
Delivered-To: vwrap@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id E20B13A696E for <vwrap@core3.amsl.com>; Tue, 27 Apr 2010 14:42:16 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.998
X-Spam-Level:
X-Spam-Status: No, score=-2.998 tagged_above=-999 required=5 tests=[AWL=-1.000, BAYES_80=2, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-4]
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 oEGF1MMtvUYT for <vwrap@core3.amsl.com>; Tue, 27 Apr 2010 14:42:15 -0700 (PDT)
Received: from e1.ny.us.ibm.com (e1.ny.us.ibm.com [32.97.182.141]) by core3.amsl.com (Postfix) with ESMTP id 744803A6920 for <vwrap@ietf.org>; Tue, 27 Apr 2010 14:42:15 -0700 (PDT)
Received: from d01relay07.pok.ibm.com (d01relay07.pok.ibm.com [9.56.227.147]) by e1.ny.us.ibm.com (8.14.3/8.13.1) with ESMTP id o3RLarNJ021522 for <vwrap@ietf.org>; Tue, 27 Apr 2010 17:36:53 -0400
Received: from d01av01.pok.ibm.com (d01av01.pok.ibm.com [9.56.224.215]) by d01relay07.pok.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id o3RLg1r21773632 for <vwrap@ietf.org>; Tue, 27 Apr 2010 17:42:02 -0400
Received: from d01av01.pok.ibm.com (loopback [127.0.0.1]) by d01av01.pok.ibm.com (8.14.3/8.13.1/NCO v10.0 AVout) with ESMTP id o3RLg1Sr023107 for <vwrap@ietf.org>; Tue, 27 Apr 2010 17:42:01 -0400
Received: from d01ml605.pok.ibm.com (d01ml605.pok.ibm.com [9.56.227.91]) by d01av01.pok.ibm.com (8.14.3/8.13.1/NCO v10.0 AVin) with ESMTP id o3RLg1ee023096 for <vwrap@ietf.org>; Tue, 27 Apr 2010 17:42:01 -0400
To: vwrap@ietf.org
MIME-Version: 1.0
X-KeepSent: 12BB21F8:3FAB95C0-85257712:0076D115; type=4; name=$KeepSent
X-Mailer: Lotus Notes Release 8.0.2 HF623 January 16, 2009
Message-ID: <OF12BB21F8.3FAB95C0-ON85257712.0076D115-85257712.00773210@us.ibm.com>
From: David W Levine <dwl@us.ibm.com>
Date: Tue, 27 Apr 2010 17:41:55 -0400
X-MIMETrack: Serialize by Router on D01ML605/01/M/IBM(Release 8.5.1HF41 | October 22, 2009) at 04/27/2010 17:42:01, Serialize complete at 04/27/2010 17:42:01
Content-Type: multipart/alternative; boundary="=_alternative 0077320F85257712_="
Subject: [vwrap] Some thoughts on Josh's Linden Lab Legacy Protocol discussion
X-BeenThere: vwrap@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Virtual World Region Agent Protocol - IETF working group <vwrap.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/vwrap>, <mailto:vwrap-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/vwrap>
List-Post: <mailto:vwrap@ietf.org>
List-Help: <mailto:vwrap-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/vwrap>, <mailto:vwrap-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 27 Apr 2010 21:42:17 -0000

As always, food for thought, probably partly baked. 

Josh Linden's presentation on the Linden Legacy Protocol 
raises the possibility that a substantial number of 
operations currently managed by the Linden Labs client be
viewed as "out of scope" for VWRAP and exposed as "there is
a URI/URL which provides access to a service to perform this
task."

Thus rather than including a set of LLIDL messages which define
how to set parcel permissions, you would associate a "Here is a
URI to invoke to get to a UI about this parcel" 

I would argue this solves roughly 1/3 of the problem. It makes it very
easy for a deployed to provide a customer user interface, and it nicely
reduces the amount of work needed to describe a useful protocol. I also
said 1/3 because I think it misses two things. First, it begs the
question(s) "What cues are needed to let the client know where things
happen" and second, it misses the need to expose the attributes these
interfaces would manage in a programmatic fashion.

Effectively, the first problem is one of asking "How do we overlay the
scene graph with UI cues." The more I think about it, the more I like
the idea of solving this problem elegantly. In particular, the obvious
design "This portion of the scenegraph or this broad area of virtual
space" has "This URI" to invoke for more information seems pretty
straightforward. How to cue things like "parcel boundaries" and "Has this
property" is a little less obvious, but a good solution would be well
worth having. Notice that this also allows some potentially elegant
integration points. One could expose custom web page UIs as associated
with Vendors, Buildings, portions of the ground, or any part of the
scenegraph. 

The second problem is also one worth solving, tho its more difficult. 
I think it falls into two or three parts. The easy bit, is again, the 
"cue" issue. In short, how does one find out that there *is* structured
data or an API associated with some portion of virtual space. At one
level, the temptation is to say the web solves this already, and blend
it in with an overall scheme for associating URIs with each bit of
virtual space or virtual item. I'm not sure this is sufficient, but I
think it serves as a nice starting point. 

I think a small worked example would be helpful. This is intended to be
fairly accurate, but clearly not more than a thought experiment. 

Posit a virtual space which wishes to expose an administrative
interface which permits visitors with proper permission to change
several parameters of the physics engine. The current model of things
would require a cap and a custom bit of user interface, or user
interface exposed via some "in world" hook, such as a prim exposing a
web page, or a web page entirely disjoint from the inworld experience. 

Instead, we would provide a way for the region to advertize the
existence of the service to the client. I am, for example, imagining
either a capability exposed by the region, or a public URI/URL exposed by
the client. (Whether the approach is fully web centric, or blended in
with VWRAP style of capability access is clearly something worthy of
discussion) 

The client, on arrival to the region, fetches the URI, using content
negotiation and gets back a "cue" to display to the user that a service
is available. (Content negotiation let web based internationalization
and such simply happens) The cue is presented to the user as the client
sees fit, and if it is invoked, an associated URI launches the 
user interface web service, which can be pre-fed with context, based
on the user. 

Now, this is doubly inappropriate for a programmatic approach. We neither
want to make programs screen scrape for content cues, nor do we want to
present them with a nice pretty user interface to manipulate. Thus,
a structured data path would be desirable. More on thinking about how
regions and scenegraph can expose APIs for performing tasks in a future 
post

- David
~ Zha