[mmox] Unifying the LESS and SL object execution models

Morgaine <morgaine.dinova@googlemail.com> Thu, 05 March 2009 08:57 UTC

Return-Path: <morgaine.dinova@googlemail.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 69BE728C17E for <mmox@core3.amsl.com>; Thu, 5 Mar 2009 00:57:12 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.856
X-Spam-Level:
X-Spam-Status: No, score=-1.856 tagged_above=-999 required=5 tests=[AWL=0.120, BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=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 VNASRHdR252p for <mmox@core3.amsl.com>; Thu, 5 Mar 2009 00:57:10 -0800 (PST)
Received: from ey-out-2122.google.com (ey-out-2122.google.com [74.125.78.24]) by core3.amsl.com (Postfix) with ESMTP id 27C6928C169 for <mmox@ietf.org>; Thu, 5 Mar 2009 00:57:10 -0800 (PST)
Received: by ey-out-2122.google.com with SMTP id 25so726720eya.31 for <mmox@ietf.org>; Thu, 05 Mar 2009 00:57:38 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=gamma; h=domainkey-signature:mime-version:received:date:message-id:subject :from:to:content-type; bh=03eubR7eobF+QrE6NvWLDEgib7M4fjehaQD8Ond9O20=; b=Eh2IK1+uRvnUbDgvRG+TLFZOx4/154H2X4bttUG0bk5WA7jbVDt0BHQlE3N1XxxYXu NwWk7g14vnZmoD9qEmWcc6iAKUvUEGV/p25kqV8Rj4tx/pIXu3NW0LZBR8qf+W5BBiYJ aJCNRuIEsrr6fOi9MVsgNh3jQSVoPE/CQLhf4=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=googlemail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:content-type; b=eFsprxtAUSqxqq4/YuYmVNS2WkSeE3GxFvGB+UI/wiWmGeujy0/S/7rdr9S9djqrm4 +IUUZM3nu/4wFlZjCKCrReb2d540ngTECC65mXJUKIz0FkDuPrsmCLobcy+l2fH0+wpY y4SD3GARZTxjJzgw0u4hQYW+UZkFYW5W1xpEk=
MIME-Version: 1.0
Received: by 10.216.36.80 with SMTP id v58mr411802wea.193.1236243458226; Thu, 05 Mar 2009 00:57:38 -0800 (PST)
Date: Thu, 05 Mar 2009 08:57:38 +0000
Message-ID: <e0b04bba0903050057g413ae11dy4ffc2ca04151c100@mail.gmail.com>
From: Morgaine <morgaine.dinova@googlemail.com>
To: MMOX-IETF <mmox@ietf.org>
Content-Type: multipart/alternative; boundary="0016367b6af22efbd504645b5c00"
Subject: [mmox] Unifying the LESS and SL object execution models
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: Thu, 05 Mar 2009 08:57:12 -0000

*(Note that I use "LESS" generically in this post to refer to worlds of the
"shared space" model.)*

There has been no shortage of discussion about the *differences* between the
architectural models of the LESS proposal and of Second Life, and of the
impact of these differences on protocol requirements.  This has been useful,
but by itself it is not sufficient to help us arrive at any kind of
consensus about this part of the problem space, let alone the solution
space.  For that, we need to identify common ground or a common approach.

I've been looking at one of the most-often highlighted differences, namely
the *object execution model*.   This appears to be one of only 2 or 3
significant roadblocks that hold the two world models apart, so finding
either commonality or some useful symmetry could conceivably help with
interop.

*Two object execution models: inverse problems*

Jon has accurately described the merits of object execution on an object's
"home" system in LESS-type systems.  This approach benefits from proximity
of the computation to the object's local environment, and the benefits are
huge.  Not only can local objects employ all of the facilities of the local
environment, but local processing can be orders of magnitude faster than
remote execution, less starved of resources, graphically intensive and
behaviourally complex, and highly interactive with the user.  The package of
benefits is simply incontestable, and hence this is a very important
requirement.

On the other hand, object execution on an object's "home" system implies
great distance from the environmental simulation performed in a remote
shared space, and this has severe consequences.  Event response latency can
be orders of magnitude higher through remote telemetry than when the event
source and object execution are colocated.  Physics simulations are
compromised in resolution by response scatter, and compromised in speed,
complexity and event concurrency by communication bandwidth.  All of these
combine to severely limit remote environmental complexity and accuracy of
simulation, compared to remote object execution.  This is a very high price
to pay.

I know that Jon is at this point shouting "Local simulations!" with all his
might (:-), but that is no panacea.  Local simulation of a remote
environment suffers from exactly the same problems as no local simulation at
all, for a variety of reasons.  Most importantly, running simulations in
lockstep generally only works for deterministic simulations, and those are
usually not the kind we encounter in human-populated virtual worlds.  Since
the simulations are not running in lockstep, there can only be one source
for each event, either local or remote, and from this observation it is
clear that all the problems of the preceding paragraph apply here as well,
since a local simulation cannot predict events occurring in a remote
simulation.  In other words, the local simulation provides no advantage for
events arriving from the remote simulation versus a system without local
simulation, and that's why all the problems mentioned above apply.  What's
more, local simulation begins to collapse in utility as world simulations
become diverse anyway, so it is not a general solution.

I'm sure that some of the above will be disputed (correctly), but my general
point applies:  the LESS model has both advantages and disadvantages, as do
all systems.

The object execution model of Second Life is the reverse of the above,
namely object execution in the remote region, and it has the almost exactly
the same advantages and disadvantages but in reverse.  The region simulator
has a high-bandwidth and low-latency relationship with the objects it hosts
and hence provides excellent simulation performance, but objects have almost
nil relationship with the user's local environment so user integration is
almost non-existent and all the great benefits of locality are missing.  In
the OGP scheme which potentially allows Region Domains to be local, one
could obtain the high-bandwidth benefits of locality for oneself but only by
making all other participants in the region lose their locality, so it is no
solution either.

*Solution: split the behaviours and unify the models*

The key thing to observe if one wants a solution is that almost all of the
benefits of local execution are related to the *internal* behaviour of the
object (its implementation), whereas almost all of the benefits of remote
execution are related to the *external* behaviour of the object within and
reacting to its remote simulation environment.  This makes a solution easy
to identify:


   - Define objects to have separate internal and external behaviours, both
   optional.
   - External behaviour works exactly as in SL in response to environmental
   events.
   - Internal behaviour works exactly as in LESS in respect of local object
   execution.
   - If an object has both internal and external behaviours, then the two
   are connected by a telemetry event stream for remote/local behaviour
   integration.
   - Both LESS and SL systems can then gain the advantages of the other, if
   they wish.
   - Neither LESS nor SL need suffer their own respective disadvantages,
   it's their choice.
   - If LESS chooses not to implement remote object behaviour, it requires
   no system change.
   - If SL chooses not to implement local object behaviour, it requires no
   system change.
   - The object interop protocol would however need to support both, whether
   used or not.
   - Remote scripting in SL would be unchanged, except for the addition of
   local peer calls.
   - Local scripting in LESS would be unchanged, except for the addition of
   remote peer calls.
   - Since the object execution model of both is supported, one barrier to
   interop has fallen.


*Extremely simple example:*
Instead of writing very slowly and with difficulty in-world on the side of a
3D whiteboard in SL, use a local 2D canvas in the client as the local side
of the remote whiteboard object.  This could provide all the amenities of a
local drawing application, automatically perform the perspective mapping
onto the side of the whiteboard, and still do this accurately even while the
whiteboard object is being thrown around by physical events in the remote
simulation space.


I wrote this primarily to help analyse the problem space in the area of LESS
and SL object execution models, since this is currently a hard problem for
us.  The suggested solution is a byproduct of that.

To round off, I'm aware that such a solution could be problematic for
parties who may be constrained from extending their existing
implementations, since it would involve substantial work.  However, I felt
that it was worth describing this solution because of the immense gains it
can offer to both models, and because it is a solution to one specific
interop problem that we have identified and which has become an impasse.  In
addition, other MMOX parties might be able to run with it.

It is worth noting that many MMOX participants are involved in open source
VW projects, and typically in these some extra design and implementation
work is not a barrier.  Opensim or others might well find it feasible to
implement such a 2-part execution scheme, reap the benefits of this enhanced
object capability, and maybe take a lead towards interop with LESS-like
systems.

It might also spark other ideas to help us bridge the conceptual gap between
these models.


Morgaine.