[mmox] MMOX: Strawman scope/goals/approach
David W Levine <dwl@us.ibm.com> Tue, 24 February 2009 16:04 UTC
Return-Path: <dwl@us.ibm.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 846743A6A3A; Tue, 24 Feb 2009 08:04:37 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.994
X-Spam-Level:
X-Spam-Status: No, score=-5.994 tagged_above=-999 required=5 tests=[AWL=0.604, 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 FSf2x+o126kg; Tue, 24 Feb 2009 08:04:33 -0800 (PST)
Received: from e6.ny.us.ibm.com (e6.ny.us.ibm.com [32.97.182.146]) by core3.amsl.com (Postfix) with ESMTP id 763A43A68DB; Tue, 24 Feb 2009 08:04:29 -0800 (PST)
Received: from d01relay04.pok.ibm.com (d01relay04.pok.ibm.com [9.56.227.236]) by e6.ny.us.ibm.com (8.13.1/8.13.1) with ESMTP id n1OG5hDc005583; Tue, 24 Feb 2009 11:05:43 -0500
Received: from d01av05.pok.ibm.com (d01av05.pok.ibm.com [9.56.224.195]) by d01relay04.pok.ibm.com (8.13.8/8.13.8/NCO v9.2) with ESMTP id n1OG4l2w194420; Tue, 24 Feb 2009 11:04:47 -0500
Received: from d01av05.pok.ibm.com (loopback [127.0.0.1]) by d01av05.pok.ibm.com (8.13.1/8.13.3) with ESMTP id n1OG4l5L024039; Tue, 24 Feb 2009 11:04:47 -0500
Received: from d01ml605.pok.ibm.com (d01ml605.pok.ibm.com [9.56.227.91]) by d01av05.pok.ibm.com (8.13.1/8.12.11) with ESMTP id n1OG4lND024036; Tue, 24 Feb 2009 11:04:47 -0500
In-Reply-To: <ebe4d1860902240729x5e86306bpd0950b05c3a11f28@mail.gmail.com>
To: mmox@ietf.org, mmox-bounces@ietf.org
MIME-Version: 1.0
X-Mailer: Lotus Notes Release 7.0 HF277 June 21, 2006
Message-ID: <OF7F32322B.61DEE52B-ON85257567.00564FEE-85257567.00585420@us.ibm.com>
From: David W Levine <dwl@us.ibm.com>
Date: Tue, 24 Feb 2009 11:04:45 -0500
X-MIMETrack: Serialize by Router on D01ML605/01/M/IBM(Release 8.5|December 05, 2008) at 02/24/2009 11:04:46
Content-Type: multipart/mixed; boundary="=_mixed 0058541F85257567_="
Subject: [mmox] MMOX: Strawman scope/goals/approach
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: Tue, 24 Feb 2009 16:04:37 -0000
After chewing through the entire mailing list the past week, I've banged
out something which *might* help structure our discussions a bit. I offer
the following as an attempt to distill and focus some of our thinking. We
are roughly 4 weeks from a face to face, and while i do not expect a
charter to emerge directly from that BOF, I think we need to end the face
to face with enough of an agreed broad framework, that we can imagine
generating a consensus charter on the mailing list prior to the next IETF
face to face in July.
I am posting this as a complete document. I am looking for broad consensus
and proposed revisions, and will take them and spin back subsequent
versions on a hopefully daily turn around. I don't expect the document to
survive close to unchanged, but I'd like to try and manage it as a series
of successive drafts, so we can have something consistent to talk about. I
look at this as "If we can get rough consensus on this" then we can use it
as a basis for driving forward on a set of charter level tasks.
I am attaching the input as a .txt and a (sigh) Microsoft word document.
I am also posting it in line as plan text. (tho ugly, I'll work on that
for future versions)
There has been a fair bit of discussion on the MMOX mailing list, and in
casual
discussions about what we are actually trying to achieve. In service of a
better answer, I
am going to try and summarize:
1. The problem space we are tackling
2. An Enumeration of interoperability goals in the problem space
3. Some approaches to solving these goals
4. How to both make concrete progress within the IETF approach and
end up with a
solution that people will actually want to adopt.
5. Some things which fall out of scope
I will try to cast both the problems and solutions separately from any
specific virtual
worlds or MMOS and instead draw on several underlying models as I describe
things.
Please view this as a strawman intended to provoke discussion, but also
think of it as
intended to evolve into something we can actually use to structure our
work going
forward.
v
I am taking as a given that we are all professionals, engaged in a
respectful, and
thoughtful exercise to generate good engineering solutions. I welcome
engaged,
constructive, on topic discussion. Please read the IETF NOTEWELL notice:
http://www.ietf.org/NOTEWELL.html Our goal, is a code driven, process,
anchored in
the ability to prove that specifications we create actually interoperate
and work as
described. Specifications do not advance in the IETF in the absence of
demonstrated
interoperability based on running code.
- David W. Levine
~ Zha Ewry (In Second Life)
-------------------------------------------
The Problem Space:
I take MMOX as Massively MultiParty Online eXperiences (Since Meadbh
didn't define
X, we all get a shot at it) Lets take this one bit at a time. Massively,
as in experiences
intended to be shared by tens, hundreds, thousands, and over time, a
significant fraction
of the interne community. Online, focusing our attention on the concurrent
shared portion
of the experiences and eXperience as a shorthand for (Games, Applications
and shared
experiences.)
The group's name and remit is intentionally broad, focused on a general
set of Games and
Applications, not any single game, application or experience. The group's
roots, and
interests are largely, but not exclusively shaped by Virtual Worlds,
including MMO
games, Virtual worlds, Collaboration and Simulation Environments and
shared online
streaming environments. Examples of these platforms include, but are not
limited to
World Of Warcaft, ProtonSphere, Eve Online, Forterra's OLIVE platform,
Club
Penguin, Linden Lab's Second Life, IMVU, There.com, Croquet,
OpenSimulator.org,
Weblins.
The common thread across all of these environments is a concurrent shared
experience,
often, but not exclusively rendered in a three dimensional space. Here's
one attempt to
scope what these environment share:
1. One or more virtual spaces
2. A set of users
3. A representation of the users projected into the space
4. A shared experience of the events in the space projected back to
all the users
currently in the space. (Text, Voice, and the results of
actions)
Many of these environments will also include one or more of:
5. Objects which can be dynamically created and modified to form part
of the
space's setting
6. Persistent state in the virtual space(s)
7. Mechanisms to associate external streams of media with portions of
the
immersive space
8. Mechanisms to run scripted behaviors in the space
9. Simulated physics and behavior of objects and projected users in
the spaace
10. Mechanisms for users to move from one virtual space to another
(by hand off
between regions implicitly, or by explicit user request
(teleport)
11. Libraries of material the users can add to the space
12. Mechanisms for users which are not in a common virtual space to
interact with
each other in some form (be aware of each other's
locations and online status,
message each other, etc)
Note I've very carefully avoided using most of the common words for the
shared
experience. We often speak of Simulators, Avatars, Regions, Assets and so
forth, for the
moment, I'm going to keep those terms off the table to think about the
problem in its
more general form.
Note that I'm also very consciously taking a minimal base with optional
features
approach to describing the space. This allows us to focus on the core
overlapping
features, and then a set of services which add to this core. Think about
how these goals
and solutions could be applied to collaborative spaces such as Wikis,
Micro blogging
streams and collaborative desktop and application environments.
Interoperability is not about defining the one true system which satisfies
these goals.
Interoperability is about making multiple existing implementation
interoperate by the use
of standards we define.
Goals:
What sort of interoperability do we desire out of these spaces?
I will start with some statements from the perspective of user experience,
and then talk
about the technical implications of these use cases. I will also start
with the broadest,
most expansive goals and then look at how to break these apart into a
series of sub goals.
These goals are structured with the intent of listing a range of
experiences we hope to
enable. There sometimes seems to be a strong desire to think about the
ultimate end
state, where there is one uber-client, and every single virtual space
implements every
single capability in super grid spanning the world. I think that, its
important to think of
interoperability as happening over time, and in clusters of increasingly
integrated services
and spaces. Some low hanging fruit will come early. Some worlds, which are
close in
design will get deeper benefits sooner, others will only gradually become
more tightly
integrated. There are many important, useful, and desirable states between
"nothing
shares" and "Its one single model of everything."
Note: These goals are not use cases. Ideally, each goal will, over time,
spawn a set of use
cases to help define them, and additionally some "cross goal" use cases
will be generated
which will show how multiple goals work together to provide valuable
results.
1. The ability to manage one's identity when interacting in multiple
MMOX spaces.
a. Allowing presence information to be shared and coordinated
across
MMOX spaces
b. Permitting friends lists, and IMs to be shared across
spaces
c. Permitting MMOX spaces to share naming
d. Simple ways of allowing a consistent name, managed by the
user, and
verifiable by other users
e. Single sign on, mediated by multiple spaces, within the
policy constraints
of the spaces
f. A consistent appearance, within the constraints of the
various systems
g. The ability to manage the degree of visibility / coupling
between identities
in MMOX spaces
Note that for all of these, there is no requirement to couple the systems
together
beyond managing identity, and share presence and IM information. These use
cases don't speak to how you move between spaces. You may have to shutdown
your client on one system and start another. This also is not a "You must
enable
this" this is very much a "Make it easy for spaces which want to enable
this to do
it." Also, note that "presence and messaging" speak to user needs, and
consitent
appearance and name (when desired by users) again speeks to meeting user's
desires.
2. The ability for the services in an MMOX world to be named, and
authenticated
a. Services to associate virtual places and the services
which support them
with authentication and administrative domains
b. Services to permit a service to validate the membership of
a remote
service in one or more authentication and administrative domains
This is needed so that we can do essentially any of the interoperability
work.
Without some framework which lets us know who we are talking to, it is
impossible to trust the behavior of distributed systems.
3. The ability to share content between MMOX spaces
a. Import and Export of content and models (This may well
leverage off of
existing work such as Collada) Static, import/export of content
while not
terribly dramatic is an important part of the value chain of
interoperability
b. Mark up schemes which recognize the existence of multiple
presentation
environments, but permit the sharing of content
i. Shared "type" information for the various types of
graphical
content which MMOX spaces contain
ii. Extensible, with a common registry, so that we can
understand the
types of contents a client can accept, and a
virtual space, or virtual
asset store can be asked to provide
c. A MMOX based, system independent asset addressing scheme
which includes
i. Content negotiation based on 2b
ii. Access Management based on (1) and (2)
This is, to my mind, the key mid term deliverable
4. The affordances in MMOX to permit the creation of micro-payment
economies
a. Appropriate spots defined in MMOX protocols for cost
information
b. Appropriate spots defined in MMOX protocols for reference
to
micropayment systems
5. The ability to share "non immersive streams" between spaces
a. Markup to permit the consistent sharing of stream media
such as voice,
and video, with shared start and synchronization
information to permit
"parallel" events between MMOX space
6. The ability to express Policy intent between MMOX services and
virtual spaces
a. Places in reserved in the MOX protocols for expressing
policy intent
b. One or more policy languages for expressing policy
The solution space:
Most of the deployed solutions partition the software problem into the
following chunks.
1. Some form of a client which permits a user to interact with the
shared experience
2. Virtual space servers which manage the state of a portion of
virtual space
3. A set of supporting services used by the virtual space servers
Note that exactly how these three large chunks are assembled and the
granular nature of
the services can vary radically, even when serving very similar
environments. Some
environments push a large amount of rendering and management onto complex
clients,
others perform the bulk of rendering in the server portion of the
deployment. Some
implementations combine client and simulation into a single entity which
does some
simulation and some user presentation. Some distribute the simulation,
some centralize it.
The heart of most of the solutions is managing to accept and merge a
stream of updates,
and then distribute the merged updates back to users. This can happen at a
range of
granularities. The two ends of the spectrum, are, roughly, sending updates
as a fully
merged audio visual stream, which the client merely displays, and sending
low level
changes to a underlying mode, which the client uses to assemble a complete
visual
representation of the scene. Variations include croquet and qwaq which
use an
underlying distributed object model to pass large amounts of updates, and
approaches
such as used by SecondLife and Protonsphere, where voice is managed in a
separate
service, with the merged state service merely letting the voice service
know where the
users are located.
Closely related, are issues of representation and format of content. This
takes several,
separable forms. Import and Export of material to the core environment,
and, more
problematically, run time representations
Approach
Our overall approach should be web centric, and web services oriented. We
can, and
should think of sets of related services which can be composed as part of
different
solutions which will enable varying degrees of interoperability. We can,
and should
attempt to provide as web like an approach to function as possible.
Content negotiation,
separation of protocol from security, separation of interface from
implementation and
other techniques.
Our goal is not to enshrine any single virtual world as the standard for
all MMOX spaces,
but rather create a flexible, extensible set of services which will allow
us to grow larger
and large overlapping sets of capabilities. My expectation is that we will
see a lot of low
hanging fruit in the area of identity, authentication, authorization and
presence
management (Where a user is, and allowing messaging to them across MMOX
spaeces)
and initially, we will find a lot of format and content area addressed by
gateways,
markup, and content negotiation. I see nothing wrong with having a URI
which refers to
"A pretty maple tree with fall colors" which provides a way to fetch the
"Collada Style
version" the "3dMax Mesh version" the "Linden Lab 1.2 sculpty spec
version" such that
a virtual space can select, through content negotiation the one most
useful to it.
We get value, when we have consistent ways of referring to all the various
forms of
content, and we get more value when we have ways of using existing content
negotiation
to allow a web light selection of an appropriate form. It is equally
possible to imagine
negotiating between a client and a virtual space, the desired form of
objects. There are
some deep challenges lurking, such as when two different approaches have
radically
different
What I would encourage us, as a mailing list to do, is look through the
problem
statement, and interoperability goals I've put together here. They are an
attempt to
capture the various sentiments in the ongoing discussion. I am sure I have
missed points,
and I am sure some people will disagree with some of the points I have
made.
I would ask people to look for "No, you missed X" and "Hey, I don't think
Y" is true. I
will attempt to capture all of those, and revise the document, until we
think it represents
something close to the general group consensus. (I am not looking for 100%
consensus,
but a "Yeah, this captures most of what we're trying to do." With that in
hand, I would
suggest we could then begin to enumerate the specific services and markups
we need to
support our goals, and begin to flesh out use cases to help us understand
the goals and
services.
I do not expect this to yield a set of specs which Linden Lab, or OpenSim,
Or any one
virtual world vendor or project would implement whole. What I expect it to
yield is a set
of specs, which can be combined with existing projects and code bases to
drive us
towards a more interoperable future.
Out of scope
I also want to begin to accumulate a short list of "No, this is out of
scope" assertions
1. We will provide all the affordances necessary to permit a broad
range of
interaction policies. Appropriate policies for various deployed solutions
and
future deployed solutions is out of scope, beyond providing us use cases
which
highlight specific affordances we may wish to consider
2. Whether or not immersive multi-party spaces are useful and which
specific
capabilities are required is out of scope. We aspire to support a broad
range of
possible capabilities, and we respect that different organizations will
have
different perspectives on what is required. Our goal is to define broad,
interoperable frameworks which will enable a range of deployments, not to
define
the one true model for this space
3. Propose additional statements here
Closing comments
I don't think our collective goal can be to take any one existing spec or
solution and
simply declare it the basis for our work going forward. At the same time,
we must base
our work in actually running code, showing real interoperability. Our goal
must be to
build supersets of function, based on existing products and solutions
which demonstrate
real interoperability.
The IETF favors working code and growing consensus over blank paper and
blue sky
efforts. This is based in a history of success and failure in the industry
when it comes to
building, promoting and succeeding at standards work. Work at the IETF is
grounded in
working code.
One way forward is to focus on several clusters of work. One: a clear,
broad framework,
which forms the basis for long term broad interoperation. Two: Capturing
the current set
of incompatible and overlapping formats and protocols in use, so that we
can create a
extensible and shared catalog of artifacts for sharing. (eg. "Here is the
canonical,
extensible list of graphic content types you might want to move on a MMOX
transport"
Three grow out proposed solutions such as LLSD, OGP, and others, as they
are
contributed towards a common superset which can be used to as the basis
for
demonstrating concrete progress towards interop goals. Four, Identify
places where we
simply want to use existing work, such as OpenID, OAuth, X.509 and
create a shared
profile for how we can use these protocols to further interoperability.
- [mmox] Requirements for new xxSD specification Catherine Pfeffer
- [mmox] MMOX: Strawman scope/goals/approach David W Levine
- Re: [mmox] MMOX: Strawman scope/goals/approach Jon Watte
- Re: [mmox] Requirements for new xxSD specification Lisa Dusseault
- Re: [mmox] MMOX: Strawman scope/goals/approach Mark P. McCahill
- Re: [mmox] MMOX: Strawman scope/goals/approach Christian Scholz
- Re: [mmox] MMOX: Strawman scope/goals/approach Meadhbh Hamrick (Infinity)
- Re: [mmox] MMOX: Strawman scope/goals/approach Christian Scholz
- Re: [mmox] MMOX: Strawman scope/goals/approach Gareth Nelson
- Re: [mmox] MMOX: Strawman scope/goals/approach Jon Watte
- Re: [mmox] MMOX: Strawman scope/goals/approach Lawson English
- Re: [mmox] MMOX: Strawman scope/goals/approach Meadhbh Hamrick (Infinity)
- Re: [mmox] MMOX: Strawman scope/goals/approach Gareth Nelson
- Re: [mmox] MMOX: Strawman scope/goals/approach Meadhbh Hamrick (Infinity)
- Re: [mmox] MMOX: Strawman scope/goals/approach David W Levine
- Re: [mmox] MMOX: Strawman scope/goals/approach Ryan McDougall