High-Latency, Low-Bandwidth Windowing in the Jupiter Collaboration System
David A. Nichols, Pavel Curtis, Michael Dixon, and John Lamping,
Xerox PARC
3333 Coyote Hill Rd.
Palo Alto, CA 94304
+1 415 812 4452
E-mail: {nichols,pavel,mdixon,lamping}@parc.xerox.com
Jupiter is a multi-user, multimedia virtual world intended to
support long-term remote collaboration. In particular, it sup
ports shared documents, shared tools, and, optionally, live
audio/video communication. Users who program can, with
only moderate effort, create new kinds of shared tools using
a high-level windowing toolkit; the toolkit provides trans
parent support for fully-shared widgets by default. This
paper describes the low-level communications facilities
used by the implementation of the toolkit to enable that sup
port.
The state of the Jupiter virtual world, including application
code written by users, is stored and (for code) executed in a
central server shared by all of the users. This architecture,
along with our desire to support multiple client platforms
and high-latency networks, led us to a design in which the
server and clients communicate in terms of high-level wid
gets and user events.
As in other groupware toolkits, we need a concurrency-con
trol algorithm to maintain common values for all instances
of the shared widgets. Our algorithm is derived from a fully
distributed, optimistic algorithm developed by Ellis and
Gibbs. Jupiter's centralized architecture allows us to
substantially simplify their algorithm. This combination of a
centralized architecture and optimistic concurrency control
gives us both easy serializability of concurrent update
streams and fast response to user actions.
The algorithm relies on operation transformations to fix up
conflicting messages. The best transformations are not
always obvious, though, and several conflicting concerns
are involved in choosing them. We present our experience
with choosing transformations for our widget set, which
includes a text editor, a graphical drawing widget, and a
number of simpler widgets such as buttons and sliders.
Back to the advance program
Back to UIST '95 home page