Using Metalevel Techniques in a Flexible Toolkit for CSCW Applications

Paul Dourish. 1998. ACM Transactions on Computer-Human Interaction, 5(2), 109-155.

Ideally, software toolkits for collaborative applications should provide generic, reusable components, applicable in a wide range of circumstances, which software developers can assemble to produce new applications. However, the nature of CSCW applications and the mechanics of group interaction present a problem. Group interactions are significantly constrained by the structure of the underlying infrastrucutre, below the level at which toolkits typically offer control.

This article describes the design features of Prospero, a prototype CSCW toolkit designed to be much more flexible that traditional toolkit techniques allow. prospero uses a metalevel architecture so that application progragrammers can have control over not only how toolkit components are combined and used, but also over aspects of how they are internally structured and defined. This approach allows programmers to gain access to "internal" aspects of the toolkit's operation that affect how interaction and collaboration proceed. This article explains the metalevel approach and its application to CSCW, introduces two particular metalevel techniques for distributed data management and consistency control, shows how they are realised in prospero, and illustrates how Prospero can be used to create a range of collaborative applications.

[PDF]