A dissertation by Brad Johanson submitted in partial fulfillment of the requirements for the degree of Doctor of Philosophy in Electrical Engineering from Stanford University
December 3, 2003
The common mode of interaction with a computer involves a single user using a mouse and keyboard in front of a single display. With the proliferation of mobile devices and the ability to embed large touch screens in workrooms, a new type of human computer interaction involving multiple machines and multiple people becomes possible. This research looks at the case of ubiquitous computing rooms, or interactive workspaces. These are device rich spaces where groups come together to collaborate on solving some problem. The nature of interaction in such a space will be with collections (or ensembles) of applications, and to date there is no clear model of how these applications should coordinate with one another at the application level.
This dissertation addresses the need for a well-suited middleware infrastructure for application coordination in interactive workspaces. It consists of three main contributions. The first is a characterization of interactive workspaces and the requirements for a coordination infrastructure for such space. The second is the Event Heap coordination model, which is an extended version of the tuplespace model. It consists of a set of properties, of which the most key is decoupling applications to reduce interdependency and enhance failure tolerance, and a set of features that together define a coordination infrastructure suitable to the characteristics of interactive workspaces. The final contribution is a validation of the model through the development and use of a prototype implementation of the model in many interactive workspaces and applications over a three-year period and around the world. An evaluation of the validity of the model is also provided in the form of an overview of the applications and deployments, a survey of developers and administrators, and experimental measurement of the performance of the prototype implementation.