• No results found

Open Implementation and Flexibility in CSCW Toolkits

N/A
N/A
Protected

Academic year: 2020

Share "Open Implementation and Flexibility in CSCW Toolkits"

Copied!
169
0
0

Loading.... (view fulltext now)

Full text

(1)

Open Implementation and Flexibility

in CSCW Tooikits

James Paul Dourlsh

A dissertation subm itted in partial fulfillm ent

o f the requirem ents for the degree of

D octor o f Philisophy

o f the

U niversity o f London.

D epartm ent o f Com puter Science

U niversity College London

(2)

ProQuest Number: 10017199

All rights reserved

INFORMATION TO ALL USERS

The quality of this reproduction is dependent upon the quality of the copy submitted.

In the unlikely event that the author did not send a complete manuscript and there are missing pages, these will be noted. Also, if material had to be removed,

a note will indicate the deletion.

uest.

ProQuest 10017199

Published by ProQuest LLC(2016). Copyright of the Dissertation is held by the Author.

All rights reserved.

This work is protected against unauthorized copying under Title 17, United States Code. Microform Edition © ProQuest LLC.

ProQuest LLC

789 East Eisenhower Parkway P.O. Box 1346

(3)

Abstract.

Abstract

The design of Computer-Supported Cooperative Work (CSCW) systems involves a variety of dis­

ciplinary approaches, drawing as much on sociological and psychological perspectives on group

and individual activity as on technical approaches to designing distributed systems. Traditionally,

these have been applied independently—the technical approaches focussing on design criteria and

implementation strategies, the social approaches focussing on the analysis of working activity with

or without technological support.

However, the disciplines are more strongly related than this suggests. Technical strategies— such

as the mechanisms for data replication, distribution and coordination—have a significant impact on

the forms of interaction in which users can engage, and therefore on how their work proceeds. Con­

sequently, the findings of sociological and psychological investigations of collaborative working

have direct impact for how we go about designing collaborative systems.

In support of this relationship, this thesis concentrates on the provision of flexibility in CSCW sys­

tems, and, in particular, in toolkits from which they are generated. Flexibility is key to supporting

many characteristics of group behaviour detailed by observational investigations—the improvised

nature of work and activity, individual and group tailoring, customisation and re-purposing, chang­

ing group membership and activity over the course of a collaboration, and so forth.

Based on an analysis of current CSCW toolkits, and on the interaction between user behaviour and

system design, I will demonstrate that, as in many other areas of system development, traditional

notions of abstraction in system design mitigate against the design of open, flexible systems. “Open

Implementation” is an emerging approach based on the systematic and principled exposure of

mechanism in system components, “opening up” abstractions to examination and manipulation.

Concentrating particularly on distributed data management and concurrency, I will show how these

ideas can be exploited to provide an open and customisable framework enabling programmers and

(4)

Dedication.

Dedication

The character of Prospère, the magus of Shakespeare’s “The Tempest”, was reputedly inspired by

the Elizabethan scientist, alchemist and Hermetic philosopher, John Dee (1527-1608). The tenets

of Hermetic philosophy, while intricate, have a simple basis— that the structure of our earthly world

reflects the structure of the heavens. By understanding the earthly world, the alchemist would learn

about the world of the spirits; by gaining power and control over the earthly world, he would gain

“magical” power and control of the higher dimensions. “As above, so below.” So the transmutation

of base matter to gold was a metaphor for the transformation of man to god; a transformation which

could be achieved by the adept once the correspondence from above to below is understood, since

the pattern of man must be the same as the pattern of god.

Since I have spent much of the past few years trying to understand and control the link between

(5)

Acknowledgements.

Acknowledgements

The work in this thesis has had three homes—the Rank Xerox Research Centre, Cambridge Labo­

ratory (formerly EuroPARC); the Computer Science department at University College, London;

and the Xerox Palo Alto Research Center. I couldn’t have asked for three more interesting and stim­

ulating places to have spent the last three years, and I owe a great deal to the people who have

supported me and my work at each place: Bob Anderson, Graham Button, Wendy Mackay and

Allan MacLean at EuroPARC, Jon Crowcroft and Angela Sasse at UCL, and Annette Adler, Austin

Henderson and Gregor Kiczales at PARC.

The development of the ideas presented here has been inspired, nurtured and guided by a host of

people, only some of whom can be mentioned here. Jon Crowcroft provided guidance, advice, crit­

icism and beer in admirable proportions, tolerating the rather odd path of my work with bemused

grace. Annette Adler, Bob Anderson, Graham Button, Wendy Mackay and Lucy Suchman have,

wittingly or unwittingly, contributed to my inclination towards the social which underpins this work

(although they should not be held responsible). Annette also brought together a group of people

who have provided me with much intellectual sustenance over the last year or two; David Levy,

Gene McDaniel, Bob Printis, Vijay Saraswat and Brian Smith deserve especial mention. Brian’s

work has been central to much I’ve thought and done over the last few years; one day, I hope to

understand 10% of it.

Dik Bentley, Jon Crowcroft, Alan Dix, Steve Freeman, Jonathan Grudin, Rachel Jones, Gregor Kic­

zales and John Lamping have all made valuable contributions to my thinking about the ideas

described here, and to the form of their presentation.

Some of my greatest debts are to those who helped me through the deepest moments of inevitable

thesis gloom. Loma Banks, Eevi Beck, Dik Bentley, Matthew Chalmers, Lynn Cherny, Laura Dek-

(6)

Acknowledgements.

Marqvardsen, Gillian Ritchie, Ellen Siegel, Lisa Tweedie, and Alex Zbyslaw all helped with email,

cynicism, laughter, silliness and beer, and they all deserve better recompense than a few words here.

I’ll get round to you all in time.

Victoria Bellotti deserves a place on her own as both an inspiring colleague and valued friend. And

above all, thanks to Beki Grinter, who’s simply more than I deserve.

(7)

Table o f Contents.

Table of Contents

Abstract...2

Dedication...3

Acknowledgements ...4

Table of Contents...6

Chapter 1: Introduction ... 11

1.1 Introductory R em arks...11

1.2 T he Em ergence of C S C W ... 11

1.3 Ethnom ethodology and C S C W ... 12

1.4 T he D evelopm ent o f CSCW T o o lk its ...14

1.5 Flexibility and Tailorability in H C I ... 14

1.6 Flexibility and Tailorability in C SCW System s and T o o lk its ... 15

1.6.1 Flexibility from Social and Technical P ersp ectiv es...15

1.6.2 A Cross-C utting View of F le x ib ility ... 16

1.7 W hat Is To C o m e ...17

Chapter 2: Flexibility in CSCW Toolkits ... 19

2.1 In tro d u c tio n ...19

2.2 Flexibility and R e u s e ...19

2.2.1 Softw are Issu e s...20

2.2.2 H C I I s s u e s ...20

2.3 A Fram ew ork for F le x ib ility ...21

2.3.1 C ollaboration Transparency and C ollaboration A w aren ess... 23

(8)

Table of Contents.

2.4.1 R e n d e z v o u s ...24

2.4.2 G roupK it...26

2.4.3 M EA D ...27

2.4.4 S u i t e ...28

2.4.5 O v a l ...29

2.4.6 C O L A ... 31

2.4.7 O ther S ystem s...32

2.5 G enericity and E xtensibility...33

2.5.1 G enericity and Extensibility in CSCW T o o lk its ... 35

2.6 Problem s in Toolkit F le x ib ility ...37

2.6.1 Structure and S em an tics... 37

2.6.2 Extending versus R ev isin g ...37

2.7 S u m m a r y ...38

Chapter 3: Computational Reflection and Open Implementation...40

3.1 Flexibility ... 40

3.1.1 Tackling F le x ib ility ...41

3.1.2 Flexibility and A bstraction... 42

3.2 A b stractio n ... 42

3.2.1 M apping D ile m m a s ... 45

3.2.2 G aining C ontrol over A bstractions...47

3.3 O pen Im plem entation...48

3.3.1 3-Lisp and the Infinite T o w er...49

3.3.2 CLOS and the M etaobject P ro to c o l...50

3.3.3 The M etaobject Protocol in G eneral...52

3.4 Reflection, O pen Im plem entation and A b stra c tio n ... 53

3.4.1 CLOS and T e lo s ... 54

3.4.2 Com pile-Tim e and Run-tim e M O P s ... 55

3.4.3 C om putational Reflection and M etaobject P rotocols...56

3.5 S u m m a r y ...57

Chapter 4: Applying Reflection in a CSCW Toolkit ...59

(9)

Table of Contents.

4.2 D esigning O pen Im plem entations... 59

4.2.1 Scope C o n tro l...60

4.2.2 C onceptual S e p a ra tio n ... 60

4.2.3 Increm entality...61

4.2.4 R o b u s tn e s s ... 62

4.3 CSCW : The Locus o f F lex ib ility ... 63

4.4 C SC W Toolkits: A reas o f C o n c e rn ...64

4.4.1 D ata D is trib u tio n ...64

4.4.2 Concurrency and Exclusion C o n tr o l... 64

4.4.3 R epresentations o f A c tiv ity ... 65

4.4.4 U ser Interface L in k a g e ...65

4.4.5 Conference and Session M a n a g e m e n t... 66

4.5 D esign Concerns in P ro sp ero ... 66

4.5.1 D istributed D ata M anagem ent subsum es A ctivity R e p re s e n ta tio n ...66

4.5.2 D istributed D ata M anagem ent subsum es U ser Interface L in k a g e ... 67

4.6 C om m unicating A pplication S em antics...68

4.7 An O verview o f Prospero... 69

4.7.1 B ase Level Program m ing in P ro s p e ro ... 69

4.7.2 M etalevel Program m ing in P ro s p e ro ... 70

4.8 S u m m a r y ...74

Chapter 5; Divergence, Data Management and Collaborative Work ...75

5.1 Introduction: D istributed D ata M anagem ent ... 75

5.2 C rite ria ... 76

5.3 D istributed D ata and C ollaborative W o r k ... 77

5.3.1 D istribution... 77

5.3.2 M an ag em en t...78

5.4 The Em ergence o f In co n sisten cy ... 79

5.4.1 Stream s o f A ctivity and Inconsistency A voidance... 79

5.5 D iv e rg e n c e...81

5.5.1 D ivergence and V e rs io n in g ... 82

(10)

Table of Contents.

5.5.3 D ivergence and O perational T ran sform atio n ... 84

5.6 C apitalising on D iv e rg e n c e ... 85

5.6.1 S calability...85

5.6.2 M ulti-Synchronous A p p lic atio n s... 86

5.6.3 Supporting O pportunistic W o rk ... 87

5.7 D ivergence in P ro s p e r o ... 88

5.7.1 Exam ple: S h d r ... 89

5.7.2 Exam ple: Source Code C o n tr o l... 90

5.7.3 Exam ple: M ulti-synchronous E d i t i n g ...91

5.7.4 Specialisation in P r o s p e r o ...92

5.8 S u m m a r y ...93

Chapter 6: Consistency Management and Consistency Guarantees ...95

6.1 In tro d u c tio n ... 95

6.2 C onstraining D ivergence— Tw o T echn iqu es...96

6.2.1 V ariable C o n siste n c y ...96

6.2.2 C onsistency G u a ra n te e s... 98

6.3 Consistency and Concurrency in D atabase R e s e a r c h ...102

6.3.1 Sem antics-Based C oncurrency...102

6.3.2 A pplication-Specific C onflict R e s o lu tio n ... 104

6.4 Encoding Prom ises and G u arantees...104

6.4.1 Sem antics-Free S e m a n tic s ...105

6.4.2 C lass-based E ncoding... 105

6.5 U sing Consistency G uarantees... 106

6.5.1 A Shared Bibliographical D a ta b a se ...106

6.5.2 Collaborative Text E d itin g ...108

6.6 S u m m a r y ... 109

Chapter 7: Using Prospero: Application Exam ples...I l l

7.1 In tro d u c tio n ... I l l 7.2 A pplication S tru ctu re ... I l l 7.2.1 Specialisation through S u b c la ss in g ...113

(11)

Table of Contents.

7.3 The G eneric Function F ram ew o rk ... 116

7.4 Sam ple A p p lic a tio n s ... 117

7.4.1 Eureka, a Collaborative Polyline E d ito r...117

7.4.2 B ugspray, a B ug-Tracking D a ta b a s e ... 120

7.4.3 Bugspray in U s e ... 123

7.5 F le x ib ility ...124

7.5.1 Com paring E ureka and B ugspray... 124

7.5.2 Flexibility In Prospero and O ther T oolkits... 125

7.5.3 OI and Reflection in P r o s p e r o ...127

7.6 S u m m a r y ... 128

Chapter 8: Summary and Conclusions ...130

8.1 R e c a p itu la tio n ...130

8.2 C laim s and G o a ls ... 132

8.3 F uture W ork and O p p o rtu n ities...134

8.4 C oncluding R e m a r k s ... 136

Epilogue ...138

Collected R eferences... 139

Appendix A: Code of Application Examples...151

1. E u r e k a ... 151

1.1 eu re k a .Iisp ... 151

1.2 u i.lis p ... 153

2. B u g s p r a y ... 154

2.1 bug s.lisp...154

2.2 u i.lis p ... 156

2.3 c o m m o n .lis p ...160

2.4 gu arantees.lisp ... 161

2.5 c lie n t.lis t... 162

2.6 s e r v e r .lis p ... 164

2.7 f la tte n .lis p ... 165

2.8 d b io .lisp ...165

(12)

Chapter 1 : Introduction.

Chapter 1 :

Introduction

1.1 Introductory Remarks

This dissertation examines the issue of flexibility in toolkits for creating multi-user applications. In

particular, I will show how a novel software architecture technique— Open Implementation (OI)—

can be applied to solve a number of problems inherent in traditional approaches, and I will present

a toolkit—Prospero— which embodies and demonstrates these ideas.

The motivation for this work is not simply the technical limitations of a set of software techniques.

Certainly, previous work has applied the 01 approach to a number of technical areas to solve prob­

lems of that sort. However, the support for deeper, more thoroughgoing forms of flexibility in

support of collaborative work is also driven by the need to address a split within the disciplinary

structure of the field itself,

1.2 The Emergence of CSCW

The field of Computer-Supported Cooperative Work (CSCW) traces its history as an identifiable

discipline to a workshop held at MIT in 1984 by Irene Grief and Paul Cashman (who are also

responsible for the term). It grew quickly; in 1986, MCC sponsored the first bi-annual international

conference, subsequently sponsored by the ACM; and in 1989, a bi-annual European conference

began, held in the alternate years. CSCW has spawned sub-disciplines of its own (such as workflow

technology, frequently employed within Business Process Reengineering), conferences, journals,

prototypes, studies, and jargon.

Technological and organisational trends of the last ten years have served to reinforce the impor­

tance of CSCW by strengthening the motivations which gave rise to the field in the first place. First,

the rapid dissemination of computer power—CPU performance, graphics processing, etc.—associ­

(13)

Chapter 1 : Introduction.

continued and shows no signs of stopping; and at the same time, these powerful PCs and worksta­

tions are increasingly connected together over local and wide-area networks. Meantime, business

trends mean that organisations are increasingly distributed. Not only is a single organisation more

likely to be distributed across multiple sites, or perhaps employ individuals working electronically

away from a principal site, but also increasing moves towards “outsourcing” and inter-organisation

collaboration makes it more likely that work is being performed through the collaborative activity

of remotely located individuals. Even within single or co-located organisations, the trend towards

automation of tasks around explicit models of business processes places an emphasis within com­

putational technology on collaboration and coordination.

This is the area to which CSCW has addressed itself since the outset—the use of computer-based

tools to enhance and facilitate the performance of collaborative work, potentially distributed in

space or time. Its scope, then, is very broad, and this is reflected in the wide range of systems which

have been designed, built and studied. For example, these have included: shared whiteboard/meet­

ing room systems such as CoLab (Stefik et al., 1987a) and Dolphin (Streitz et al., 1994); workflow/

process-based systems such as The Coordinator (Winograd, 1986) and the Milan Conversation

System (De Michaelis and Grasso, 1994); authoring systems such as PREP (Neuwirth et al., 1990)

and Quilt (Fish et al., 1988); drawing systems such as Commune (Ely and Minneman, 1990) and

The Conversation Board (Brink and Gomez, 1992); as well as collaborative Virtual Reality sys­

tems, databases, software design environments, and others.

More significantly, perhaps, CSCW, as a field, has also drawn on a similarly wide range of disci­

plinary perspectives on its own subject matter. Arising as it did partly out of the field of Human-

Computer Interaction (HCI), it is unsurprising that, like HCI, it should draw on cognitive and exper­

imental psychology in addition to computer science and software engineering. However, much of

its development and perspective has been driven by the early influence of anthropology and

sociology.

1.3 Ethnomethodology and CSCW

A highly significant factor in the development of CSCW was the very early involvement of

researchers from anthropology and sociology. Just as cognitive psychology provided the underpin­

nings of much HCI research in the late 1970s and early 1980s, so sociology has motivated and

(14)

Chapter 1; Introduction.

For a variety of reasons, the area of sociology most prominent in CSCW has been ethnomethodol­

ogy. Ethnomethodology arose in the 1960s, through the work of Harold Garfinkel and associates.

Its roots lie in a respecification of the objectives of sociology. In particular, it reacts against a view

of human behaviour that places social action within the frame of social groupings and relationships

which is the domain of traditional sociological theory and discourse—categories and their attendant

social functions. Ethnomethodology’s primary claim is that individuals do not, in their day to day

behaviour, act according to the rules and relationships which sociological theorising lays down.

Quite the opposite. The structures, regularities and patterns of action and behaviour which sociol­

ogy identifies emerge out o f the ordinary, everyday action of individuals, working according to their

own common-sense understandings of the way the social world works. These common-sense

understandings are every bit as valid as those of learned professors of traditional sociology.

From this basic observation, a new picture of social action has arisen. The ethnomethodological

view emphasises the way in which social action is not achieved through the execution of pre-con-

ceived plans or models of behaviour, but instead is improvised moment-to-moment, according to

the particulars of the situation. The sequential structure of behaviour is locally organised, and is sit­

uated in the context of particular settings and times.

Ethnomethodology’s concern, since its beginning, has been the organisation of human action and

interaction. In 1987, Lucy Suchman published "Plans and Situated Actions”, which applied the

same techniques and perspectives to the organisation of interaction between humans and technol­

ogy. In doing so, she opened up significant new areas of investigation both for HCI researchers and

ethnomethodologists. In both this and other work (e.g. Suchman, 1983; 1993), Suchman also helped

establish the relationship between ethnomethodology and CSCW, and the same approach has been

used by a range of researchers studying work in collaborative settings such as stock trading rooms

(Heath et al., 1995), print shops (Bowers et al., 1995), and air traffic control rooms (Harper and

Hughes, 1993). The ethnomethodological perspective on CSCW systems and design has continu­

ally emphasised the flexible and open ways in which working activities are organised, and the

distinctions between the formal processes and procedures which are often encoded in CSCW sys­

tems and the informal, flexible and opportunistic practices by which work and interaction actually

take place. The flexibility required of systems to support the development of these working prac­

(15)

Chapter 1 : Introduction.

1.4 The Development of CSCW Toolkits

Against the backdrop of these investigations of collaborative activity, technological development

has proceeded apace.

The earliest CSCW systems were built by hand, extending techniques originally developed for

single-user interfaces and standard distributed systems to the needs of collaboration. Often, they

were designed as extensions of existing systems such as databases (Grief and Sarin, 1988) or hyper­

text systems (Rein and Ellis, 1991). As both application and implementation experience grew,

specifically multi-user aspects of implementation support began to migrate into reusable bodies of

code. For explanatory purposes, we can draw an approximate distinction between execution envi­

ronments and application toolkits.

Execution environments provide run-time support for multi-user applications. Often, their aim is to

allow otherwise single-user applications to function in multi-user arrangements, although they

might also support specifically multi-user features. Examples of application environments include

commercial systems such as Timbuktu and Shared-X, and research systems such as ABC (Jeffay,

1992). Many early attempts to encapsulate and reuse multi-user functionality from earlier mono­

lithic CSCW systems were based on (or at least, would include) multi-user execution environments.

A number of execution environments were paired with application toolkits. Toolkits provide librar­

ies of functionality for the development of specifically collaborative applications. Multi-user

interface widgets, persistent shared data stores and group-replicated objects are examples of

abstractions which might be presented in a collaborative application toolkit. As will be discussed

in Chapter 2, the design of these various toolkits reflects the needs of the particular application areas

which they were destined to support. The generality or flexibility of the toolkit, then, is reflected in

the range of applications which can be derived from it.

1.5 Flexibility and Tailorability in HCI

As CSCW development was progressing, questions of openness and customisation of system

behaviour had already become an important research issue in HCI generally (see, for example,

Trigg et al., 1987; Fischer and Girgensohn, 1990; Mackay, 1990; MacLean et al., 1990). By and

large, the focus of these investigations was on tailorability—that is, the ways in which applications

could be customised to accommodate individual differences between members of a user commu­

nity. Since this work tends to make customisation available through named, accessible features of

(16)

Chapter 1 : Introduction.

high level, providing controls which either affect largely “surface” features of the interface or con­

trol system behaviour at a fairly gross level. More recently, however, these investigations have

begun to move into the area of end-user programming, providing greater control over semantic fea­

tures of the application, which are generally not directly expressed in the interface (Bentley and

Dourish, 1995). Notable examples include the work of Nardi (1993) in a variety of domains. Cypher

and Smith (1995) with KidSim and Eisenberg (1995) with SchemePaint.

1.6 Flexibility and Taiiorabiiity in CSCW Systems and Tooikits

A number of researchers have investigated similar issues of flexibility and tailorability in the

domain of multi-user, rather than single-user, interfaces. Greenberg (1991) follows most closely in

the tradition of customisation to accommodate individual differences (Chapter 2 will discuss other

work in more detail). Arguably, the problem of tailorability per se is considerably more pressing in

multi-user applications than in single-user ones. The problem of accommodating individual prefer­

ences in single-user systems is akin to the problem of accommodating the preferences of different

groups in the multi-user case;.however, multi-user systems also face the problem of accommodat­

ing the different preferences of the individual members of each group. However, there is a second,

more fundamental, problem which arises when looking at tailorability in multi-user systems; and it

arises from the traditional separation between the disciplinary perspectives (loosely, social and

computational sciences) which make up the field.

1.6.1 Flexibility from Social and Technical Perspectives

The traditional relationship between these disciplines involves sociological analyses of collabora­

tive work reaching “down” from the day-to-day organisation of work to the collaborative

applications which are used to support it, while the systems perspective reaches “up” from the

requirements and constraints of the underlying systems towards the applications level, determining

the range of functionality which can be provided by those applications. In this arrangement, the per­

spectives “meet” at the level of applications.

More recent work, though, has come to question the separation this implies—that is, the view that

system design requirements and constraints do not have consequences above the level of the appli­

cation, and that sociological insights do not apply below. As will be discussed in Chapter 3, this

notion of the separation of levels of concern is not even entirely appropriate purely from within the

systems design perspective. Critically, though, for what is to follow, it is clear that the relationship

(17)

Chapter 1; Introduction.

eral, the detail o f collaborative activity, as explored by the ethnomethodological perspective, is

rooted in the detail o f the technology available, whether that technology is comprised of everyday

physical artifacts (such as those discussed in Heath et al.’s (1995) study of broker dealing rooms)

or computational ones (such as those discussed in Grinter’s (1995) study of software engineers).

For instance, consider the issue of conflict management over shared data. Some data object exists

in a shared workspace, and is available to a number of users for viewing and editing. A wide range

of techniques might be used to achieve this end in any particular implementation. Actions might be

serialised over a single copy of the data item; the item might have to be “locked”, or “checked out”;

or conflicts over actions applied to multiple copies might be subject to prioritisation or rollback.

The particular strategy used is not at issue here. Rather, the critical observation is that the choice of

implementation strategy lies below the application level; it is invisible—or inexpressible— above

it. In terms of the traditional relationship between the perspectives, then, this would imply that the

choice of implementation strategy is irrelevant as long as the application functionality is

maintained.

However, the details of the specific implementation strategies carry with them important implica­

tions for the nature of the tasks which can be carried out. In an experimental study, Dourish and

Bellotti (1992) explored the ways in which groups of collaborating authors organised their activity

(both individual and collective) around detailed features of the collaborative interface and the

shared workspace control mechanisms, as enabled by specific implementation mechanisms. Simi­

larly, Greenberg and Marwood (1994) examined the relationship between the mechanisms of

distributed data management and the functionality of the user interface. As these studies demon­

strate, far from being completely independent concerns, the issues of infrastructure flexibility and

usage flexibility are closely related.

1.6.2 A Cross-Cutting View of Flexibility

The primary topic of this thesis, then, is the provision of flexibility in CSCW toolkits. Flexibility is

investigated from both perspectives. From the systems perspective, the goal is to build toolkits

which are more flexible than traditional systems, so that a wider range of applications can be sup­

ported. From the usage perspective, the goal is to be able to provide flexibility in forms which

support the emergent work practices which social investigations highlight. Running through both

of these concerns, though, is the realisation that they are not independent issues. Rather, the rela­

tionship between the systems and social perspectives highlights a set of concerns which cut across

(18)

Chapter 1; Introduction.

approach to both the form and function of those barriers. At the same time as unifying these two

views, this approach supports the development of a toolkit which is much more flexible than tradi­

tional techniques allow—that is, it extends the “reach” of the toolkit.

The technique that I will draw upon is called Open Implementation (Kiczales, 1996). Open Imple­

mentation (01) has its roots in a re-evaluation of the notion of abstraction in software engineering.

The sorts of problems which are encountered in CSCW systems are endemic to systems design, and

occur in widely diverse fields. Open Implementations reframe the flexibility problem in terms of

the role and use of “abstraction” in current software practice. OI itself has developed from compu­

tational reflection. Reflection is a mechanism, based on computational self-reference, originally

employed in programming language design. By providing systems with an explicit and manipulable

model of their own behaviour, reflection introduces opportunities for the system to introspect (rea­

son about its own behaviour by examining the model) and intercede (control aspects of its

behaviour by modifying the model). The OI approach applies this principle more generally to the

problems of abstraction, by beginning to “open up” system components and make them amenable

to a certain amount of control from above.

1.7 What Is To Come

This, then, is the line of argument which this dissertation will lay out and demonstrate:

1. That the evidence of empirical and naturalistic studies of cooperative work demonstrates that

usage issues and system issues are fundamentally linked.

2. That the re-evaluation of abstraction in software engineering, set out by research in Open

Implementation, applies to these issues as encountered in CSCW.

3. That Ol/reflective principles can be used to design a novel CSCW toolkit.

4. That a toolkit built along these lines yields significant improvements in design (and hence,

usage) flexibility.

Following on from the discussion here of the social and technical dimensions of CSCW, Chapter 2

will discuss the approaches taken by a range of CSCW toolkits and systems, looking in particular

at their support for flexibility in application design and use. With a clearer view of the problems,

then. Chapter 3 will introduce the Open Implementations approach, and its analysis of these prob­

(19)

Chapter 1; Introduction.

This approach leads us towards a solution to the problems of flexibility in CSCW systems. Most

importantly, it does this in a way which opens up some of the barriers between traditionally “high”

and “low” level concerns— the separation between the disciplines described earlier. Chapter 4 will

introduce the use of OI in a CSCW toolkit, Prospero, which attempts to address the problem of flex­

ibility and separation. Dealing especially with the areas of (1) distributed data management and (2)

consistency and conflict control, Prospero uses 01 techniques to allow applications to become

involved in the mechanisms within the toolkit which support them. Application programmers can

“reach in” to the toolkit, tailoring and specialising toolkit structures to the particular needs of their

applications. Chapters 5 and 6 will discuss, in turn, these two principal areas of attention, and the

novel techniques which Prospero introduces to provide application programmers with toolkit con­

trol; and finally. Chapter 7 will present some more extended examples to give a clearer overall

(20)

Chapter 2: Flexibility in CSCW Toolkits.

Chapter 2:

Flexibility in CSCW Toolkits

2.1 Introduction

The previous chapter emphasised the importance of flexibility in collaboration. CSCW applications

are characterised by a diversity of usage patterns, group working styles, interactional requirements

and technologies. At the same time, observational and sociological studies of collaborative work

highlight the variable, locally-organised nature of the sequential organisation of activity. Flexibility

in working styles implies flexibility in CSCW tools, and in turn, in the technological bases for their

development.

In this chapter, I will be concerned with issues of flexibility in existing CSCW toolkits. Flexible and

adaptable operation is at the heart of toolkit design, since it provides for reuse, I will begin by exam­

ining this relationship between flexibility and reuse, from both the system design and HCI

perspectives, and then discuss various ways in which flexibility might be embodied in these sys­

tems. Following this, in section 2 .4 ,1 will present a number of existing CSCW toolkits, discussing

their main features and facilities, with particular emphasis on their support for flexibility and on the

range of applications which they support. Taking these systems as examples, I will step back in sec­

tion 2.5 to consider styles and elements of flexibility more generally. In particular, I will draw a

distinction between flexible operation through genericity and through extensibility’, and then, on the

basis of this analysis, I will highlight problems common to all the toolkits discussed.

2.2 Flexibility and Reuse

As in any other area of software design, early CSCW systems were constructed as monolithic enti­

ties, specially crafted to needs of particular applications, user communities and software

(21)

Chapter 2: Flexibility in CSCW Toolkits.

fied, and as understandings of system requirements, application characteristics and usage patterns

increased, it became both possible and desirable to embody common design elements in toolkits ^

2.2.1 Software Issues

From a software perspective, one of the primary goals of toolkit design is reuse. When embodied

in a toolkit, components, algorithms and implementations can be recombined and reused in differ­

ent applications. Much of the value of the toolkit resides in the range of applications it can be used

to create. The design of abstractions for the toolkit, then, focuses on the balance between two com­

peting requirements. On the one hand, toolkit design strives to maximise the generality or

commonality of the toolkit’s component structures, so that they can be used in multiple applica­

tions. On the other, it emphasises the flexibility in the ways they can be instantiated and

manipulated (so that a wide range of applications can be derived from these components). The flex­

ibility which allows common components to be used in different ways and to different purposes has

to be balanced against other criteria such as interoperability, consistency and integration.

These issues, of course, are common to software concerns in the design of toolkits for any domain.

Patterson (1991) discusses some of the particular issues which CSCW systems raise in comparison

with single-user interactive systems, focussing in particular on a set of issues addressed in the Ren­

dezvous toolkit, which will be examined shortly.

2.2.2 HCI Issues

Flexibility is an important issue in HCI research generally, and a number of researchers have stud­

ied issues of customisation, tailorability and adaptation (see, for example Trigg et al., 1987;

Maclean et al., 1990; Mackay, 1989, 1990,1991; Nardi, 1993). HCI’s concern with flexibility has

been motivated by a desire to match the features and behaviour of interactive tools to the range of

working styles and tasks to which they might be applied. The focus of such research, however, has

largely been on flexibility within the context of particular applications or particular instances of

software systems. In these cases, variability operates across a population of users, employing an

application in different circumstances. While some of this work (e.g. Mackay, 1990; Nardi and

Miller, 1991) has emphasised the importance of tailoring as a group activity, this tailoring is still

largely performed in support of individual needs.

(22)

Chapter 2: Flexibility in CSCW Toolkits.

In CSCW applications, the problems of flexibility (or rather, of inflexibility) can become more

readily apparent—and that much greater—since the “user” of a CSCW system is a group of indi­

viduals. As a result, variability can occur within a single group, as well as between different groups.

This has led to a number of attempts to incorporate intra-group flexibility, variable interface cou­

pling patterns, etc. (e.g. Greenberg, 1991). As in traditional HCI, however, this type of investigation

takes a user focus, and concentrates largely on single applications or application areas.

2.3 A Framework for Flexibility

In their discussion of tailorability facilities in the Notecards hypertext system, Trigg et al. (1987)

set out four levels of flexibility:

1. a. flexible system provides generic objects and behaviours which can be combined and used dif­

ferently by different users of the system;

2. a parameterised system provides objects with a range of alternative behaviours;

3. an integrable system can be connected to other system components;

4. a tailorable system allows users to change the system itself, add functionality or specialise

behaviours.

Drawing on the HCI perspective outlined above, this separation focuses on flexibility and adapt­

ability in applications. The concerns in programmable toolkits differ, although we can fruitfully

make use of these distinctions.

Toolkits are designed to be used to create some range of applications. They are all flexible in Trigg

et al.’s terms. The concern which is addressed here is not their being flexible, but the extent o f their

flexibility—that is, the range of applications which they can be used to create. This captures not only

the range of application domains to which they can be applied, but also the range of interactional

styles which can be supported using toolkit components and mechanisms. So, for my purposes here,

flexibility is a relative term, rather than an absolute one. In support of this, the critical aspect which

will be addressed here is the fourth level of Trigg et al.’s analysis, tailorability, the extent to which

toolkit facilities themselves can be adapted and extended. (At the same time, I will also continue to

use the term “flexible” as a general one, rather than in the specific sense which Trigg et al.

introduce.)

In the analysis which will follow (section 2.5), I will discuss these issues in terms of two particular

(23)

Chapter 2: Flexibility in CSCW Toolkits.

behaviours, and the use of this property to support flexible action. Extensibility, the extent to which

they can be extended and revised to support new behaviours, and the similar way in which this is

used.

An orthogonal concern is the “locus of flexibility”—that is, the point within the system where flex­

ibility is handled and exploited. I will distinguish between three points at which flexibility issues

come to the fore:

1. Programmer/toolkit—flexibility within the toolkit, offered to the programmer so that toolkit

structures can be used variably, adapted or augmented (for example, controlling floor control

criteria);

2. Programmer/application—flexibility exploited in the application under programmer control.

This might include, for instance, the use of adaptive algorithms to organise internal behaviours

around the patterns of use at a particular time (for example, dynamic data control which adapts

to network bandwidth and topology);

3. User/application—flexibility in the application under user control. This includes parametric

control over application behaviour (for example, control over levels of user interface coupling),

as well as the extension of applications with new user-supplied structures or behaviours.

There is a clear relationship between these three forms of flexibility. Flexibility at any one point is

helpful in providing further flexibility down-stream. Here, however, I am concerned with the first

level, flexibility within the toolkits themselves; the flexibility required to support a diverse range of

applications. My focus is on the mechanisms by which such flexibility is realised, how these are

specified and used, and with the ways in which they affect the properties (and the range) of appli­

cations which can be developed.

Even a brief examination of existing CSCW applications reveals a host of systems and interface

issues addressed in different ways, which may each be the locus of particular flexibility concerns.

Apart from the obvious differences in application domains, these include the techniques by which

data is distributed and managed; mechanisms for joining and leaving collaborative sessions; mech­

anisms for mediating between individual and group work; means by which individuals become

aware of the activity of others; levels of interface coupling; temporal aspects of interpersonal inter­

action; and so forth. Toolkits, similarly, vary in the extent to which programmers can gain control

over these sorts of issues, and can potentially adapt toolkit mechanisms to the need of particular

applications. These are the ways in which flexibility is manifest in toolkits themselves, and in which

(24)

Chapter 2: Flexibility in CSCW Toolkits.

2.3.1 Collaboration Transparency and Collaboration Awareness

One approach to collaboration support, particularly represented in early systems, is organised

around the need for collaboration transparency—that is, the collaborative operation of existing

single-user applications, without any modification for explicit collaboration support (Lauwers et

al., 1990). A number of CSCW systems provide run-time environments which allow single-user

applications to be shared; examples include Rapport (Ahuja et al., 1990) and Shared X (Gust, 1988;

Garfinkel et al., 1989). Others, such as MMConf (Crowley et al., 1990) or ABC (Jeffay, 1992), sup­

port collaboration transparency as one possible mode of operation.

Typically, such systems interrupt the event flow between application and interface at some point,

and insert a multiplexor. This replicates the application’s actions, making them available at a

number of points on a network, and can potentially accept user input from multiple streams and

channel it to the application. Since the underlying applications contain no native understanding of

the multiple streams which might now be used to interact with them, application sharing environ­

ments might also introduce “floor control” mechanisms to manage input streams explicitly. These

regulate users’ access to the application input stream, using various policies to determine how

access to the application’s input stream is to be distributed between the various users.

In a wide range of situations, support for collaboration transparency is critical. Users typically

deploy a range of applications in support of a task, and so any of these might need to be made avail­

able to a group (at least in some “display” mode, where one user remains in control). However, this

approach to application sharing has a number of drawbacks. The first is that the forms of collabo­

rative activity which they can support are typically quite limited, since the interface is not designed

to reflect the activity of multiple users. Floor control mechanisms restrict access, or provide a con­

trolled sharing model, to support the single-user approach of the application, at the cost of

restricting the group to one-at-a-time action. The second major drawback is that the centralisation

implied by collaboration transparency can impose a heavy performance burden. Typically, the col­

laboration run-time mechanism is sharing access to a single application, running at one point on a

network; the cost of replicating display updates to all the participating hosts can be high, especially

over long distances or low-bandwidth connections.

In general, though, the collaboration-transparent approach is not of direct concern here; the require­

ments imposed by collaboration transparency limit the options for incorporating variable or flexible

mechanisms within the infrastructure itself. Instead, I will focus primarily on systems supporting

(25)

Chapter 2: Flexibility in CSCW Toolkits.

In the next section, a number of existing CSCW toolkits are presented and briefly described and

compared. In the subsequent section, I will step back to consider the issues of flexibility more gen­

erally, and consider the ways in which current strategies for incorporating toolkit flexibility are

problematic,

2.4 CSCW Toolkits and Approaches

This section presents six CSCW toolkits of various sorts—Rendezvous, GroupKit, MEAD, Suite,

Oval and COLA. The systems vary widely in both form and focus. After presenting aspects of the

structure and design of each toolkit, I will focus in particular on how they address flexibility issues.

2.4.1 Rendezvous

Rendezvous (Patterson et al., 1990; Hill et al., 1994) is a CSCW toolkit created at Bellcore. Ren­

dezvous is primarily designed for building synchronous, graphical groupware applications. Written

in Conunon Lisp, and mnning over the X Window System, it has been used to create a number of

applications, from drawing tools such as the Conversation Board (Brink and Gomez, 1992) to dis­

tributed user interface prototyping environments (Miller et al., 1992).

The mechanism at the heart of Rendezvous is the Abstraction-Link-View (ALV) structure (Hill,

1992). Abstractions capture shared aspects of application representations. Views present individual

users with interface representations and interaction mechanisms. Different users may see different

representations, or be presented with different interaction modalities to the same abstraction by

their different views. Systems of constraints (Links) relate Abstractions to Views. Links are respon­

sible for transforming user interface actions in the Views into appropriate modifications to the

Abstraction, and similarly for ensuring that Views are appropriately updated when any changes are

introduced to the common Abstraction. Rendezvous uses this constraint-based mechanism to

manage all communication between Views and the Abstraction; all messages to the Abstraction

must be implemented in terms of constrained state-changes.

2.4.1.1 Flexibility in Rendezvous

Rendezvous is, very much, a programmatic toolkit. In other words, the flexibility which it embodies

is achieved through the ways in which its mechanisms are built into the base language (Common

Lisp) and can be manipulated and combined using the facilities that the programming language

offers. This approach works particularly well on top of Lisp as a base language—Lisp has been

(26)

Chapter 2: Flexibility in CSCW Toolkits.

focus, however, there are also some flexibility issues addressed by aspects of the system’s design

itself.

2 A . 1.1.1 Replication an d Centralisation

Rendezvous concentrates on support for real-time (synchronous), graphical, direct-manipulation

interfaces, using the constraint mechanism to provide dynamic feedback between an abstraction and

multiple views. This structure is reflected in most derived applications described in the research lit­

erature (Brink and Gomez, 1992; Brink and Hill, 1993; Hill et al., 1994).

Although the ALV approach presents the abstraction as the central point of coordination. Rendez­

vous’ model is not inherently restricted to centralised designs. For example, one could certainly

imagine using the same constraint system which relates Views to Abstractions as a means to syn­

chronise multiple copies of an Abstraction. However, the current Rendezvous implementation uses

a centralised model; in fact, the Abstraction object and all View objects exist within a single address

space on one machine, using remote X displays to distribute interfaces. The designers comment that

they have found a single 64kbps channel sufficient for any of their existing implementations (Hill

et al., 1994), although they do not discuss issues of latency over long distances, which are surely

problematic. They do, however, discuss the desirability of a distributed implementation which

would separate the Views from the Abstraction.

2 .4 .1 .1 .2 Declarative E vent M odel

Rendezvous’ strongly object-oriented architecture supports a powerful programming model. In par­

ticular, it allows interfaces to be constructed in a declarative style, in both their appearance and

behaviour. Graphic object classes handle the specifics of particular forms of graphical object; and

a powerful event model allows behaviours to be associated with objects declaratively, freeing the

programmer from the complex spaghetti of callbacks and event-handing code.

This declarative model lends itself to the encapsulation of interface behaviours not unlike Myers’

(1990) “interactor” approach. As will be discussed in more detail later, this encapsulation of behav­

iour in an object-oriented structure is particularly interesting when looking at flexibility issues,

since it allows behavioural mechanisms to be specialised and modified independently of graphical

and other interface features. It allows application developers to think in terms of extending the tool­

(27)

Chapter 2: Flexibility in CSCW Toolkits.

2.4.2 GroupKit

Group Kit (Roseman and Greenberg, 1992; Roseman and Greenberg, 1996) is a flexible toolkit for

building real-time collaborative applications. Like Rendezvous, it is a programmatic toolkit. The

first implementation was in the C++ UI toolkit Interviews, and was informed by both programmer-

level and user-level requirements from earlier experiments with monolithic groupware applica­

tions, as well as the collaborative window system Share (Greenberg, 1991 ; Greenberg et al., 1992).

The current implementation is written in Tcl/Tk (Ousterhout, 1994).

Unlike Rendezvous, the run-time system is based on a replicated object model. Object replication

provides the responsiveness which the system needs to support synchronous graphical applications.

GroupKit has three major components. First, a run-time system manages distribution issues and pro­

vides transparent support for sharing application objects. Second, an interface system (based on

transparent overlays) provides multi-user widgets and components for creating user interfaces with

collaborative properties (such as support for telepointers). Third, a programming model based on

open protocols accommodates differences for policy issues such as floor control.

2.4.2.1 Flexibility in GroupKit: Open Protocols

The use of open protocols (Roseman and Greenberg, 1993) is of most relevance to flexibility con­

cerns. Open protocols are designed as a technological mechanism to support personalisable

groupware, through which different groups and different users can tailor the appearance and behav­

iour of collaborative systems.

The open protocols approach begins with the understanding that system behaviour can be controlled

and configured through manipulation of state. From this, Roseman and Greenberg separate out the

three constituent components of an open protocol system—a controlled object, a controller, and a

protocol between them. The controlled object is an abstraction, residing in the (conceptual) server,

which makes the protocol available as a mechanism for accessing and changing state; the controller

resides in clients of the controlled object server (which are, potentially, also user interface clients

of the groupware system). The server imposes no policy on the sequential organisation of state

changes, and so clients can embody different policies for manipulation of the information. For

instance, floor control can be managed by establishing the “current floor holder” as shared state

information in a floor control server, which provides mechanisms for altering that state within the

protocol; and the floor control policy (round-robin, request/grant, etc.) can be implemented by cli­

(28)

Chapter 2; Flexibility in CSCW Toolkits.

unaware of the mechanism being used, which may have been developed after the server itself was

written.

So in general, this mechanism can support not only inter-group differences, but also intra-group

policies. Clearly, however, there is a requirement for coordination between the controller objects,

so that they operate coherently together. Coordination mechanisms like these are defined outside

the open protocol approach. Open protocols simply make the tailoring facilities available; the pro­

grammer is then responsible for ensuring that applications function coherently.

2.4.3 MEAD

A long-term project at the University of Lancaster focussed on cooperative interface development

in the domain of air traffic control, integrating ethnographic investigations with the system design

process (Hughes et al., 1993). MEAD (Bentley et al., 1992; Bentley, 1994) is a multi-user interface

prototyping environment developed in this project. The need for tailorability was driven by three

concerns:

1. the need for different views and interaction mechanisms over the shared data for the various

participants’ purposes;

2. the variety of working practices surrounding air traffic control technologies and artifacts;

3. the need to support collaborative development with users through real-time incremental adjust­

ments to running prototypes.

The first two concerns were raised by the domain requirements, particularly as uncovered by the

ethnographic material; the third reflects a concern with iterative, collaborative prototyping.

2.4.3.1 Flexibility in MEAD: Taiiorabie User Display Agents

MEAD supports interface tailoring by introducing User Display Agents which sit between the cen­

tral information space and individual user interfaces. The User Display Agent is responsible for the

management and representation of shared information in each user’s display. Each user might have

multiple User Display Agents acting collaboratively to manage information across disparate inter­

face components. Communication between the central information store and the display agents is

handled via an event mechanism; display agents register interests in particular update events, and a

pattern-matching mechanism dynamically relates update events to display agents which should be

notified. Communication between display agents and the information store, then, takes place at a

high level, defined in terms of domain semantics; the specifics of interface representation are the

(29)

Chapter 2: Flexibility in CSCW Toolkits.

The primary flexibility concern in the User Display Agent model is supporting rapid prototyping

and interface construction. This is managed through the manipulation of three classes of User Dis­

play properties— selection (objects to be displayed), presentation (forms of graphical

representation), and composition (combining the objects into a single display). These attributes are

available locally at each User Display site, so that they can be manipulated dynamically, providing

a mechanism for user tailorability (albeit, again, largely designed in support of rapid interface pro­

totyping rather than user tailoring). Any changes to the User Display criteria are immediately

reflected in the appearance and behaviour of the display. One simplifying factor here is that User

Displays are largely independent of each other, operating as separate dynamic visualisations of a

shared space; and so, changing aspects of one display will have minimal impact on other Displays

(although a single Display might be included in more than one user’s “working set”).

2.4.4 Suite

Suite is multi-user application toolkit derived from an earlier, single-user application toolkit of the

same name (Dewan, 1990; Dewan and Choudhary, 1992). Suite focuses on editor-based interfaces

implemented over a shared data model.

Sharing and coordination in Suite is achieved through the linkage between shared active variables

and interaction variables. Essentially, this is the point where multi-user fan-out takes place. Shared

active variables represent the shared abstraction whose value is reflected in some aspect of the inter­

face— shared because they are common to all users of an application, and active because, from the

point of view of any particular interface, their values may change asynchronously. For each shared

active variable, there are a number of interaction variables, which are the sites of local activity for

each interface. Interfaces (dialogue managers, in Suite terminology) operate on interaction vari­

ables; the toolkit manages the relationship between the interaction variables and their

corresponding shared active variables according to a defined set of rules. Rules can be overridden

in particular applications to customise sharing behaviour.

2.4.4.1 Flexibility in Suite: Coupling Control

Suite provides a rich model for describing the degrees of interface and value coupling between

interfaces (Dewan and Choudhary, 1995). Interaction variables are organised into coupling sets,

each associated with a set of coupling attributes. Coupling attributes control different aspects of

interface coupling—whether the value is shared, whether forms of presentation are shared, whether

scrolling is shared, and so on. The values of coupling attributes determine the extent of the coupling.

(30)

Chapter 2; Flexibility in CSCW Toolkits.

made available to other parts of the system: immediately, incrementally, on commit, after some

time interval, etc.

Since attributes are associated with coupling sets, rather than the interface as a whole, different cou­

pling modes can be present within the same system; similarly, different coupling modes may be

available between different users. Each user can set coupling attributes privately; a conservative

matching algorithm is used to determine the specific coupling parameters which will be used

between any two interaction variables. The fan-out between shared active variables and interaction

variables is the point at which Suite offers the programmer control over styles of interaction in col­

laborative applications.

2.4.5 Oval

Oval (Objects, Views, Agents and Links) (Malone et al., 1995) is the latest in a long line of related

systems development by Tom Malone and colleagues at MIT. Beginning with Lens (subsequently

Information Lens), a rule-based email processing system, Malone and others developed a model of

“semi-structured” information processing, with a particular emphasis on end-user customisation

and tailoring (Malone et al., 1987; Mackay, 1989). Semi-structured objects and autonomous agents

then became the basis of Object Lens, a more general system for supporting collaborative applica­

tions; and Object Lens has subsequently developed into Oval.

Oval provides four basic components for which it is named—Objects, Views, Agents and Links.

Objects are “semi-structured”; that is, an object definition provides an untyped, non-exclusive list

of fields which an object of that type will contain. Views are visualisations of objects and object

collections, allowing sets of objects to be clustered and presented in various ways depending on

their contents, for instance as tables or graphs. Agents are production rules associated with objects

which trigger when their conditions—typically, particular values of object fields—are met. Links

relate objects, allowing the creation of networks, hierarchies, etc.

What Oval provides is essentially a visual programming language, expressed in terms of these

objects and derivatives of them created by users. So, an application can be constructed by defining

a set of objects, creating agents to trigger behaviours on input or computation, and providing an

appropriate set of visualisations.

2.4.5.1 Flexibility in Ovai: Supporting Radicai Taiiorabiiity

A major goal of Oval is the provision of “radical tailorability”, a form of end-user programming.

(31)

Chapter 2: Flexibility in CSCW Toolkits.

tions, creating new systems out of old, and doing this without programming. By “radical”, they

mean that this tailorability can encompass wide changes; much wider than are traditionally associ­

ated with tailoring or customising behaviour.

As an investigation of the scope which Oval provides for variability, it was used in the experimental

(re-)implementation of four pre-existing systems. The systems chosen were: The Coordinator, an

early workflow system based on a structured conversation model; gIBIS, a graphical hypertext

system supporting design argumentation; Lotus Notes, a collaborative database system for infor­

mation sharing applications; and Information Lens, an email filtering system. The core Oval

components were used to re-implement the functionality of these systems, requiring only minimal

descent to the systems level, and so demonstrating the value of Oval’s “building block” design.

There are some important issues which should be borne in mind when evaluating this claim. While

the four systems vary in their domain detail, they’re based on the same model of collaboration—

asynchronous interaction over messaging systems. This is particularly interesting in the case of the

Oval implementation of Notes, since tme Notes employs a shared database model, which the Oval

implementation does not attempt to replicate. Instead, the Oval model captures the behaviour of an

application which might be implemented over Lotus Notes (Notes itself is an infrastructure for the

creation of collaborative applications). Similarly, the developers explicitly point to “a shared ‘live’

database” as one feature of gIBIS which they have not attempted to reproduce. At the same time,

given its intellectual history, it is not surprising to find that the functionality of Information Lens is

easily recaptured in Oval^.

So, while the reimplementation exercise impressively demonstrates that Oval subsumes the func­

tionality of these disparate systems— and, even more critically, that it makes sufficient variability

available to the user that they can be implemented without recourse to system modification— we

must distinguish the variability of collaborative applications from the variability of patterns o f col­

laboration. The facilities which Oval provides to users as the means to create and modify

applications are largely single-user in nature; sharing and collaboration remain largely outside its

immediate domain.

(32)

Chapter 2: Flexibility in CSCW Toolkits.

2.4.6 COLA

COLA (Cooperating Objects in Lightweight Activities) (Trevor et al,, 1995) is a platform for sup­

porting cooperative work which is derived more from a distributed systems perspective than an HCI

perspective. That is, Trevor’s primary concern is to extend distributed system understandings and

techniques in light of experiences with distributed interfaces, rather than to extend the understand­

ings and techniques of HCI with input from distributed systems. The principal component of the

resultant system is a lightweight activity model which provides a context within which objects—

perhaps those provided by a separate distributed object platform—can be shared.

The “lightweight” aspect of the system arises from the fact that the system carries with it only min­

imal semantic implications for the development of applications. So, for instance, the activity model

does not introduce any requirements for the temporal ordering of tasks (as would a traditional work­

flow system, for example). Similarly, issues of context are separated from the basic objects

themselves through the use of context-particular object adapters (Trevor et al., 1994).

2.4.6.1 Flexibility in COLA: The Poiicy/Mechanism Split

COLA is designed to mn in combination with a variety of distributed system infrastructures, as well

as in support of a range of applications. In fact, one of its principal motivations is also one of mine—

that traditional toolkit approaches embody semantics which restrict the application programmer’s

freedom. (The implications of this observation will be developed in more detail in Chapter 3.)

COLA’S approach, however, differs from that which will be subsequently developed here. COLA’s

approach is to make a rigorous distinction between mechanism and policy. This is a common

approach across a range of system designs. Mechanism refers to the support for particular actions

or system behaviours, while policy refers to the set of decisions about how and when these behav­

iours will take effect. The X Toolkit, for example, claims to provide the mechanisms required to

build a scroll bar (objects which track the mouse, constrained action, etc.) but does not provide a

scroll bar because that would involve making policy decisions (such as which side of the window

it should be on, and which mouse keys should operate it). Similarly, in COLA, policy is seen as an

application issue— concerning how people are to work together—while the toolkit provides “pol­

icy-free mechanisms” which can be employed in a range of ways in support of different applications

or application policies.

One aspect of this separation as an approach to toolkit design is that it is typically characterised by

a decomposition of toolkit components. As a result, the components which are offered by the toolkit

Figure

FIGURE 3.1: A traditional black box abstration locks implementation details away behind an abstraction barrier.
FIGURE 3.2: Two common solution strategies—“hematomas” and “coding between the lines”.
FIGURE 3.3: Instance bar behaves differently from instance foo because aspects of the class behaviour have been changed by the programmer through the metaclass of bar-class.
FIGURE 4.1 : Distinguishing styles of interface linkage in terms of the level of user and group control.
+7

References

Related documents

ICC profile estimated spectral data in DToB1 Colorimetric source data ICC profile with spectral data in BToD1 Spectral PCS Spectral destination data. Estimate

[r]

To address the lack of EHR instruction on meaningful use and interprofessionalism, as well as, the limited guidance on the use of experiential learning in healthcare, the goal was

This section aims to study the agreement among workers, and for this purpose, we consider the TREC 2010 Relevance Feedback test collection.. The ground truth data for the collection

Abstract. The purpose of this study was to: 1) To Assess and analyze the role of the Notary in binding Collateral Object Encumbrance against Settlement Bad Debt in the city, 2) to

I use panel data on 86 US manufacturing industries for the 1998 to 2004 period to examine how changes in the relative demand for skilled labor – as represented by the

The state-wide law also did not benefit counties with the least woodland: the improved fraction of farmland declined by 9 (5) percentage points from 1890 to 1900, while settlement

Dean contends installing the skylight protections described in the standard would expose its employees to the fall hazard for longer than the time Quinn was working on the roof