Re: [vwrap] Follow-up from "What's *not* in VWRAP" presentation

Dzonatas Sol <dzonatas@gmail.com> Wed, 21 April 2010 01:50 UTC

Return-Path: <dzonatas@gmail.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 CD6A53A6BF6 for <vwrap@core3.amsl.com>; Tue, 20 Apr 2010 18:50:39 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.001
X-Spam-Level:
X-Spam-Status: No, score=0.001 tagged_above=-999 required=5 tests=[BAYES_50=0.001]
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 ymvUuiVBSSPc for <vwrap@core3.amsl.com>; Tue, 20 Apr 2010 18:50:36 -0700 (PDT)
Received: from mail-gy0-f172.google.com (mail-gy0-f172.google.com [209.85.160.172]) by core3.amsl.com (Postfix) with ESMTP id 355753A6AEF for <vwrap@ietf.org>; Tue, 20 Apr 2010 18:50:32 -0700 (PDT)
Received: by gyh4 with SMTP id 4so3582653gyh.31 for <vwrap@ietf.org>; Tue, 20 Apr 2010 18:50:20 -0700 (PDT)
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=Xwl8lGnmbypd3uIuFKUqzy0ix2b439zeX3S6OsaEcMQ=; b=A8rNgfcE27oNa43NemitSz+TOwFlpcx92PaBflhkqWXK2PQuDwFydOoXFMCCTCqCb9 Cl3lWnQIqRK8PybkxF8y/U/zzUpbNaIxrLfaK//epWnG13I/XtHlNGGsK1/q8dwQsAuy RvabUq27vuaPhZ27dnurL2n4MDkWSCzz9Cm4U=
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=QB9urolgsTQpgSkVFqyMxjznVQJcNSl9saxnfpnHeHhkDjT8UvBDWpSaEDP0/8TMKY MHfFOS3vtb35QMHFAVLHGIVBCsA2nYskNRpUoGBUSpt4L3c1kbaBHDKAeyVAQqv+EHBk sduIDs0hpSlYsRAwd5S4UJ+Sm7Vkog6xY/ovA=
Received: by 10.101.131.4 with SMTP id i4mr11930783ann.174.1271814619739; Tue, 20 Apr 2010 18:50:19 -0700 (PDT)
Received: from [192.168.0.50] (adsl-68-126-141-37.dsl.scrm01.pacbell.net [68.126.141.37]) by mx.google.com with ESMTPS id b10sm62741201ana.6.2010.04.20.18.50.17 (version=TLSv1/SSLv3 cipher=RC4-MD5); Tue, 20 Apr 2010 18:50:18 -0700 (PDT)
Message-ID: <4BCE5D4F.2020707@gmail.com>
Date: Tue, 20 Apr 2010 19:05:03 -0700
From: Dzonatas Sol <dzonatas@gmail.com>
User-Agent: Mozilla-Thunderbird 2.0.0.22 (X11/20090707)
MIME-Version: 1.0
To: Joshua Bell <josh@lindenlab.com>
References: <4BCE43ED.2040402@gmail.com> <s2if72742de1004201731xa1692059y51d3d62096e0a7d7@mail.gmail.com>
In-Reply-To: <s2if72742de1004201731xa1692059y51d3d62096e0a7d7@mail.gmail.com>
Content-Type: text/plain; charset="UTF-8"; format="flowed"
Content-Transfer-Encoding: 7bit
Cc: vwrap@ietf.org
Subject: Re: [vwrap] Follow-up from "What's *not* in VWRAP" presentation
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: Wed, 21 Apr 2010 01:50:40 -0000

Joshua Bell wrote:
> On Tue, Apr 20, 2010 at 5:16 PM, Dzonatas Sol <dzonatas@gmail.com> wrote:
>   
>> I think what was proposed by "What's *not* in VWRAP" is to establish a
>> default capability-to-scheme map, which would vwrap implementation to
>> proceed without full flexibility of other possible schemes per capability.
>>     
>
> Jeepers, I hope not!
>
> In a nutshell, the presentation said:
>   

Thanks for the clarification. I was a bit confused. (As I missed to type 
"which would allow a vwrap impl...", my bad.)

> * Maybe, if they do need to be standardized, the minimum necessary for
> interop might be e.g. as URLs pointing at human-readable Web pages -
> e.g. when connecting to a world you could be given a mapping of
> {'search': 'http://search.thisvirtualworld.org', 'map':
> 'http://map.thisvirtualworld.org' } or some such. I dunno.
>   
This is the basic idea behind ihave/sendme. I think others were 
concerned about extensibility on this idea when they heard "minimum," 
and I think that concern confused me a bit with their reaction. If I 
didn't apply the use-case of 2 separate programs on the client end (as 
with SNOW-375) that talked to a single server then I probably would 
worry more about extensibility then the 'minimum.' Between a single 
client program and a single server there are many assumptions that can 
be made, and those assumptions can include extensibility (which was 
demanded). With two programs on the client side, one might be 
'extensible' and the other might not be. My concern centered on what 
would need to be the greatest set or the least common capabilities in 
such use-case. One program can handle the inventory while the other can 
handle the scene, for example.

Right now, SNOW-375 expects a single peer, and that peer has an option 
to message with other peer programs, so there could be even more 
programs, like another for the world map, etc. A peer program may want 
to tell the viewer that a capability is actually a plugin to the viewer 
rather than being routed to through SNOW-375. That plugin then may 
message the peer directly rather than go through SNOW-375 (being routed 
through the viewer). I know this possibility has been talked about, yet 
I haven't seen other potential implementations mentioned yet in order to 
show there was significant consider of "minimums." Where I am at today 
with SNOW-375 has this potential with its flexibility of being 
peer-agnostic.

I think in this use-case, the web-page you idealize above is/could-be 
actually handled by the peer program(s).

> * So... don't assume XYZ will be done the same way that LLLP does it,
> or that XYZ even needs to be in VWRAP
>   

Currently, the peer program(s) just route everything through the viewer 
to figure out which path is needed between capabilities and LLLP.


> * But if you believe that XYZ *is* necessary to specify for interop
> and should be part of VWRAP, then the onus is on you to advocate for
> it by writing specifications and providing implementations!
>
> There was also an aside in the presentation that pointed out that
> VWRAP will require transport(s) with a variety of characteristics
> (reliable/RESTful, reliable/streaming, unrealiable/streaming) and that
> investigation needs to be done, as is called out in the WG charter.
>   

There is an obvious (and actually needed) potential to not route 
everything through the viewer either for performance reasons or just 
because the scene renderer really doesn't need to process unrelated 
scene information. I understand this was some of the initial motive on 
the server side, so that a sim doesn't have to process everything 
unrelated to its scene, yet it can let it's peer programs do the work by 
capabilities (with a more direct connection to the viewer). I think a 
part of the design and implementation that founded vwrap has relied on a 
many-to-one relationship with lldp/capabilities-to-viewer, respectively. 
Now the "minimum" requires a more many-to-many relationship, where the 
server needs to know the capabilities of the client-peer programs, like 
how the viewer needed to know the capabilities of the server-peer programs.

As I listened to the general conversation, others seemed to understand 
the modularity, yet some thought that any mention of 
many-to-many/server-to-client relationships meant support of a specific 
UI or for vwrap to support a specific UI, yet we know vwrap is about 
what needed to get that information to-and-from the specific UI, and it 
is not about the UI itself. (We, likewise, wouldn't want to say that a 
working implementation of vwrap on a certain sim isn't actually about 
the sim itself.)

One of the needed performances is movement-input and related animated 
feedback. The performance I have noticed so far requires an optimal 
route for this particular dance, which means a specific capability and 
scheme. Reliable/RESTful is optimal enough for this basic set, yet as it 
is currently being routed through the scene renderer it has the 
potential to delay noticeably. In another example, 
mouse-events/look-at-xyz would be overkill for a RESTful messages and 
would need more of a unreliable stream to preform smoothly. It could 
route the stream through the viewer with a udp scheme/capability, yet it 
would be more wise to have the viewer just tell the peer program to 
route the peer's mouse-event/look-at-xyz  stream more directly to the 
sim/server.

Of course, another possibility is to have the scene renderer route 
everything as a peer through a main client program (that handles 
mouse-events) rather then the other way around. Either way, the main 
client program acts a proxy to the rest of the peer programs and/or 
plugins under the many-to-many "minimum." In short, the proxy may just 
want to tell the peers to "do-it-yourself" and pass them the uri to do 
just that.