Re: [ogpx] Event Streams, Realtime and transport

David W Levine <dwl@us.ibm.com> Wed, 05 August 2009 18:41 UTC

Return-Path: <dwl@us.ibm.com>
X-Original-To: ogpx@core3.amsl.com
Delivered-To: ogpx@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id C303A3A68F2; Wed, 5 Aug 2009 11:41:32 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.581
X-Spam-Level:
X-Spam-Status: No, score=-5.581 tagged_above=-999 required=5 tests=[AWL=1.017, BAYES_00=-2.599, 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 Vcvgrn5G-aVs; Wed, 5 Aug 2009 11:41:30 -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 E5FB53A695C; Wed, 5 Aug 2009 11:41:29 -0700 (PDT)
Received: from d01relay04.pok.ibm.com (d01relay04.pok.ibm.com [9.56.227.236]) by e1.ny.us.ibm.com (8.14.3/8.13.1) with ESMTP id n75Ia4O8028375; Wed, 5 Aug 2009 14:36:04 -0400
Received: from d01av01.pok.ibm.com (d01av01.pok.ibm.com [9.56.224.215]) by d01relay04.pok.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id n75IfV1D180916; Wed, 5 Aug 2009 14:41:31 -0400
Received: from d01av01.pok.ibm.com (loopback [127.0.0.1]) by d01av01.pok.ibm.com (8.12.11.20060308/8.13.3) with ESMTP id n75IfUfC011330; Wed, 5 Aug 2009 14:41:31 -0400
Received: from d01ml605.pok.ibm.com (d01ml605.pok.ibm.com [9.56.227.91]) by d01av01.pok.ibm.com (8.12.11.20060308/8.12.11) with ESMTP id n75IfUVi011281; Wed, 5 Aug 2009 14:41:30 -0400
In-Reply-To: <b8ef0a220908050500gbab6654p159f7e59aeed62c6@mail.gmail.com>
References: <F0487BF6-FBBB-481A-A25E-DE777AC274E2@lindenlab.com> <4A74F1E4.8080209@dcrocker.net> <4A78D2F7.5080401@lindenlab.com> <OFB4233516.8DB00FA4-ON85257609.000B8F47-85257609.00137350@us.ibm.com> <b8ef0a220908050500gbab6654p159f7e59aeed62c6@mail.gmail.com>
To: Meadhbh Siobhan <meadhbh.siobhan@gmail.com>
MIME-Version: 1.0
X-KeepSent: 1F6FC7D5:4F6A8CE6-85257609:005DF72A; type=4; name=$KeepSent
X-Mailer: Lotus Notes Release 8.0.2 HF623 January 16, 2009
Message-ID: <OF1F6FC7D5.4F6A8CE6-ON85257609.005DF72A-85257609.0066AAC7@us.ibm.com>
From: David W Levine <dwl@us.ibm.com>
Date: Wed, 5 Aug 2009 14:41:24 -0400
X-MIMETrack: Serialize by Router on D01ML605/01/M/IBM(Build V851_07072009|July 07, 2009) at 08/05/2009 14:41:29, Serialize complete at 08/05/2009 14:41:29
Content-Type: multipart/alternative; boundary="=_alternative 0066AAC085257609_="
Cc: ogpx-bounces@ietf.org, ogpx@ietf.org
Subject: Re: [ogpx] Event Streams, Realtime and transport
X-BeenThere: ogpx@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Virtual Worlds and the Open Grid Protocol <ogpx.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ogpx>
List-Post: <mailto:ogpx@ietf.org>
List-Help: <mailto:ogpx-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 05 Aug 2009 18:41:34 -0000

So... Infinity made some very fair points. Lets try this.





For streaming:

I want to take a moment to walk the why... 

So, speaking a bit abstractly... 

When we inject an Avatar into a Region, we model this as a pretty straight 
forward request/response call. The region gets called, accepts the agent's 
avatar information and adds it to the
local state. The region is maintaining and continually updating the state 
of the virtual space it manages. The region needs to push down to the 
client, the current state, and then, incrementally
updates to that state. So, a side effect of entering the region is that 
the region sends its current state, and then begins to stream updates. 
This is, of course, the core business of the region. 

The Legacy Second Life Protocol streams down a series of "object updates" 
which consist of the shapes of things, along with pointers to the textures 
and (in the case of scuplties, the sculpt map) The client then can consult 
its cache, and either fetch these bulky items from the cache, or from the 
Region. 

The current charter doesn't say a lot about the nature of the Client / 
Region relationship. So.. lets try this... 

First, the attributes we want to address:

* Regions hold and manage the "state" of the virtual space they represent. 
They accept agent actions, simulate the region, and send updates to the 
clients who can see their portion of virtual space. 

Then.. in protocol characteristics:

* The specifications will include an asynchronous, region driven set of 
updates which are delivered to clients. The specifications will include a 
balanced blend of notifying clients of updates, over available transports, 
and pulling data from the region as needed. 


For realtime: 

In the attributes of worlds we want to address section:

add:

* Bounded by Latency constraints, are expected to be responsive to simple 
user inputs without queuing delays. This does not mean complex actions 
will be performed in real time, but that the overall specification set 
accepts the requirement that some low level operations happen without 
protocol imposed delays. 

(One wants forward step, turn and such, to be fast, we are NOT mandating 
"Rez 12,000 prim object in 400 mseconds" )

In the protocol characteristics:

* Managing the desired response time goals for low level user inputs may 
require routing some traffic on protocols optimized for low latency use. 
The working group will characterize these goals. The Working group will 
evaluate the suitability of proposed transports in light of these 
characterizations. 


NOTE: these are coupled. The goal is to deliver a near simultaneous 
experience, in which the collective actions of all the present avatars, 
along with scripted objects, physics simulations and other computational 
artifacts are updated in a smooth, continuous fashion. One could easily 
model the set of updates as a resource, which the client "gets" once every 
so often. At the several minute perspective,
this would likely deliver all the needed data. At the user level, it would 
not  permit the client to create a smooth, shared immersive experience. 

- David