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