Design Issues and First Experiences with an Awareness Server for ...

1 downloads 152 Views 2MB Size Report
Rather we propose some type of operation passing which is managed by an ... ness server which forms a middle layer above a database system and below the ...
Design Issues and First Experiences with an Awareness Server for Synchronous CSCW Morad Ahmad and Lutz Wegner Universität Gh Kassel, FB Mathematik/Informatik, D-34109 Kassel, Germany {morad, wegner}@db.informatik.uni-kassel.de

Abstract. Synchronous collaboration is the „same time, different place“ mode of groupware. It is based upon a „What You See Is What I See“ environment. Here, we concentrate on shared structured object spaces, also called multiple shared artifacts, which may simultaneously provide different representations for different users. This rules out any type of simple window sharing for the distribution task. Rather we propose some type of operation passing which is managed by an awareness server which forms a middle layer above a database system and below the client visualization engines. This awareness server also coordinates the viewports of all clients, called foci in the terminology of Rodden et al., and the cursors of all participants (nimbi). Besides discussing the major design issues which arise from this concept, including the notion of visual transactions which give up isolation in favor of awareness, we are able to present first snap-shots from a running prototype based upon TclDP (Tcl distributed processing) and TclDB (Tcl database editing). Key words. CSCW, groupware, awareness, signalling of concurrency, concurrency visualization, shared editing, navigation, scripting

1 Synchronous Collaboration in Structured Object Spaces As the world is going digital, more and more „documents“ or, in general, artifacts move from the physical to the virtual sphere. Examples are telephone directories, train schedules, train and airline tickets, e-commerce orders of all kinds, deliveries of audio and video content. As a consequence, negotiations concerning these artifacts, disputes, discussions and design decisions, collaborations and votes on these documents take place in cyberspace. Synchronous, distributed collaboration as the „same-time, different-place“ mode of Computer Supported Collaborative Work (CSCW, groupware) then becomes a necessity. However, among all forms of groupware, this form is considered the most promising, yet most difficult form to achieve, in particular if it is to take place via distributed desktops [5]. Early research on synchronous CSCW tended to focus on virtual seminars with emphasis on video conferencing with at least talking head transmissions, whiteboards for concurrent drawing and annotations on projected documents. Lately, there is a growing understanding that collaboration could take place within structured object spaces, also called shared data artifacts

1

[12]. This idea is based upon the fact that the objects under discussion (time schedules, construction plans, tables, reports, measured data) are likely already stored within the network, most likely as contents of object or object-relational database management systems. Where necessary they can be augmented by unstructured data, say a digitally recorded video sequence or audio statements belonging to a particular case. These data can then be distributed (and possibly be classified and indexed for retrieval) via the Internet as well and become integral part of the structured object space.

2 „What You See Is What I See“ and Awareness Synchronous collaboration is essentially based upon two fundamental notions: • What You See Is What I See • Awareness The first notion refers to the requirement that participants need a common view of the objects under discussion. The analogy is to people attending a seminar who all hear the same speaker and see the board, respectively have the same set of hand-outs. Quite often, this perceived requirement is translated into GUI-sharing, augmented by telepointers. Systems following this strict interpretation of WYSIWIS are XTV, SharedX, NetMeeting, Jupiter. However, if we move away from the seminar metaphor and take into account that participants might be equipped with different devices, some of them mobile, then independence from representations becomes an issue. By this we mean that users navigate and edit within a shared object space, but that the visualizations (or audio representations, see Appendix A) are tailored to the needs and capabilities of the collaborators. This independence of representation is also a well-known construction principle in other contexts, e.g. in database schema design, where external schemas are derived from base tables as views. However, although there might be many visualizations for a single object, the mapping from representations to objects must be a total function. Otherwise it would not be possible to securely identify objects which are under consideration, which might be altered or deleted. There must also be a way of marking these object representations which moves us into the awareness notion. Awareness concerns information about „who is acting where with what intentions“. Other related terms are coordination and communication. Martin Bürger, who recently studied awareness in groupware in a dissertation [3], cites Dourish and Bellotti for a definition: „[...] awareness is an understanding of the activities of others, which provides a context for your own activity. This context is used to ensure that individual contributions are relevant to the group‘s activity as a whole, and to evaluate individual actions with respect to group goals and progress. The information, then, allows groups to manage the process of collaborative working.“ [4, p. 107]

2

Greenberg et al. [9] call awareness the glue which makes some groups work more effectively than others. Bürger continues to analyze and categorize awareness. As types of awareness he mentions • informal awareness • group-structural awareness • social awareness • workspace awareness For us here, the last type of awareness is of concern since we intend to support it through interaction in shared object spaces. „We define workspace awareness [...] as the up-to-the minute knowledge a person requires about another group member‘s interaction with a shared workspace if they are to collaborate effectively.“ [9] As for modes of awareness, Bürger distinguishes the following forms. • synchronous versus asynchronous awareness: ability to act before somebody else has completed a task versus notification after the fact, e.g. during absence; • symmetrical versus asymmetrical awareness: if I can see you than you can see me versus quiet observations and actions, but controlled by the observed; • implicit versus explicit awareness: let the system guess what is relevant to you versus tell the system about what you are interested in; • coupled versus detached awareness: receive notifications for objects in your focus versus notifications for objects outside your view1. After investigating various scenarios, namely shared editing of documents, shared information searches, and synchronous computer based learning, Bürger develops a set of requirements (which we skip here) and then reviews existing models, of which he considers the following four (actual implementations of the model in brackets, see [3]). • subscribe model (CSCW3, ELVIN, KHRONIKA, SOCIABLE WEB, WEB AWARENESS PROTOCOL) • session model ((GROUPKIT, GROUPWEB, METAWEB, ORBIT, PLACEHOLDER, SISCO, WORLDS) • GroupDesk model (GROUPDESK, POLITEAM) • nimbus/focus model (AETHER) The last model is also called a spatial model and was originally developed by Rodden et al. at the University of Lancester [16]. Since we base our awareness server on this model, we discuss it in more detail below. 1. The terms quoted here are literal translations of Bürger‘s notation. The last distinction might be better phrased as „focused versus peripheral awareness“.

3

3 The Focus/Nimbus Model This model of spatial awareness includes people, information and other computer artifacts as objects but does not consider a particular arrangement of objects. Rather one assumes that a distance function exists which allows to tell related objects (with a degree of relation, say a real r with 1 ≤ r < 0) from unrelated ones (r = 0). Rodden lists the 16 possible modes of awareness including 6 overlaps based on two subspaces of objects for which he uses the terms nimbus and focus [16, p.88] • The more an object is within your nimbus, the more aware it is of you. • The more an object is within your focus, the more aware you are of it. The definition of these terms seems obscure. A more manageable picture results if we assume the focus to be the set of (passive) objects which are „in the light“, i.e. which a user looks at. Thus we translate focus essentially into viewport. Nimbus is then the set of objects which a person (or autonomous agent) acts upon, which he manipulates, where he has a cursor on. Figure 1 below shows one possible configuration.

Nimbi Foci

Figure 1: Overlapped foci and nested nimbi

Bürger claims that this model, like the GroupDesk model, does not meet his requirement for independence from the workspace structure, e.g. if the objects are stored in a database [3, p.97f], then a distance function cannot be generated automatically. We disagree to a certain extend. While it is true that a traditional „flat“ relational table would spread out related information in a little coherent way, we feel that nested relational tables congregate objects in a more logical way, at least within a complex tuple. If views (in the database sense) are created over these nested tables, relevant data is selected and projected from joined tables over which a viewport could slide. Nested tables formed the basis for a structured work space in the ESCHER project which implemented a single user DBMS prototype and which has been introduced into SAP‘s R/3 software as underlying principle for a complex object editor. Details are omitted here and can be found in e.g. [1, 19, 20, 21]. Examples of nested table visualizations, here already with awareness signalling between two users, can be seen in Figure 2. The example is taken from project management and shows

4

Figure 2: Concurrent focus/nimbus signalling

projects with expected starting and finish times and their sets of required predecessor tasks. From these tables isomorphic representations as GANTT and PERT-diagrams can be generated which again can form the workspace for navigating a viewport (Figure 3). Clearly, these nested tables give rise to very straight-forward relationship computations. Details can be found in [8]. Unlike in GroupKit [10], we do not signal viewport overlapping explicitly by means of colored slide bars attached to the users own window. As we aim at representation independence, this technique would not work for our prototype as we cannot assume same workspace extensions and localities. Rather we propose to count the number of users who have a non-empty intersection with our own focus. The term intersection is taken literally in the sense that each focus of each collaborator has a list (representing a set) of object which are currently visualized.

5

Figure 3: PERT-diagram as isomorphic view of project table with interactive finger on sub-task As for the nimbus (area of activity), we have developed over the years the notion of a twodimensional cursor which high-lights objects. These cursors are called fingers [23, 24]. Signalling the presence of a finger across shared workspaces is then the key to awareness in group collaboration. Fingers are assigned to users and each user has one active finger which he can navigate (go to next, back, into a complex object, out to surrounding object, jump to a particular value, etc.) Other fingers of a user serve as bookmarks. Through the use of color, fingers can be assigned to users or one particular color can be used to visualize non-local fingers.

4 Design Issues Relating focus and nimbus is then much easier than suggested in AETHER [17] which also considers the medium in-between (the ether) and involves complicated computations. In our prototype, finger movements and object changes caused by finger operations are first transmitted to the awareness server. Since each finger is basically a stack of object addresses (see Appendix B for a schematic view of the architecture), it is quite straightforward to identify the relevant object identities (OIDs of objects marked or updated, e.g. an insertion into a set or a deletion from a list). These OIDs are used for look-up in an associative array which reports which viewports have these objects displayed at the moment. Having implemented the awareness server in extensions of Tcl [11, 14], this look-up can be done very efficiently using Tcl‘s associative arrays which in turn implement a very reliable hashing algorithm.

6

Viewports (foci) are then updated and following a certain grace period in which these clients can respond the actual operation is performed and its completion is signalled to the user who started the operation. Finer points concern the granularity of registrating objects which move into a viewport, respectively leave one. If it were based on atomic objects, the number of messages per scroll bar move would go into the hundreds. If we settle with tuples (second highest level of complexity for tables), the effort is noticably reduced and can easily be handled. Satisfactory speed can also be attributed to our distribution mode. Rather than shipping objects (there is no caching of objects at clients, see [15] for a thorough discussion of these issues) or complete GUIs from the server to the clients, we ship visualization code, in our case ordinary Tcl scripts which generate widget trees at the clients. As part of the shipments the server delivers call-back routines which become attached to the widget tree and are fired when the relevant event happens. The routines are written as modifications of Tcl, called TclDB, and perform database operations at the server which the client would neither understand nor be allowed to perform. In general, these Tcl and TclDB messages are very short, e.g. consist of a finger id telling the server to move from object id x to id y. Similarly, the new highlighting of a complex object, say of a sub-task in project management, requires a color setting and a reconfigure command, each listing the widget to which the commands apply. We should also mention that other scripting approaches, e.g. with JavaScript [7], are equally possible, as long as they can run in a multi-threaded environment (thus our use of Tcl Distributed Processing from Cornell). Further experience is needed with consistency issues. The classical ACID transaction principle which isolates users from the effects of concurrency by means of a serializability concept, is not satisfactory for synchronous collaboration. Indeed, awareness is the direct oposite of isolation. Dirty read, i.e. the notion of reading a value several times before and after changes of its value within a single transaction, seems permissible if the changes are acknowledged by the reading transaction. Currently we only permit a conservative strategy which never displays uncommitted data (see [15] for a discussion about advantages and disadvantages of this approach). Part of our reluctance to allow other strategies results from user dissatisfaction with visual roll-backs when a transaction aborts. More experience is needed which we hope to gain with our prototype.

5 Conclusion From our first experiences we noticed that keeping track of ownership of fingers (nimbi) and viewports (foci) is a non-trivial task which puts a heavy cognitive burden on the user. In the single user/multiple finger environments in which we experimented before, we had colors assigned to fingers and the color of the current finger was indicated in the top or bottom win-

7

dow bar. An attempt to assign colors also to users and giving a list of users with color indications did not work very well. Currently we investigate another strategy which assigns one (grayish) color to all (foreign) fingers while all other colors are reserved for own fingers. There is one exception in that we assign one other color to whichever other finger is active and has „workspace control“, respectively creates a conflict. For the typical short non-conflicting activities, this amounts to a mere blink within the viewport where activities of others happen. For users explicitly setting a lock and holding an object for contemplating (assuming such behavior is permitted), the location of conflict becomes apparent. On a more fundamental level we feel that we need support from GUI experts for the notion of „notification acknowledgment“. As we have observed, humans have great problems in noticing discrete changes which happen at random intervals. This is a well-known phenomenon which air space controllers have to battle with. They have no problem monitoring continuous flight paths but it is virtually impossible to notice a value change, say a change in flight level of one particular flight, unless the change is indicated by flashing numbers. If the Web were to move from its current connect-get-close paradigm to active notification, it would be very hard for users to recognize changes in pages which look almost identical. Even if the clients keep track of what version a user has seen last (by some means of time stamps), it would be hard for users to identify changes. This could create very annoying situations, e.g. when looking at a large time table where one departure time has been altered but it is not known which one. This seems to be a typical problem in collaboration environments and possibly stems from the paper age when changes in the information space were infrequent and slow. As we move into the electronic world, we need to learn how to handle frequent concurrent change and how to switch between synchronous and asynchronous modes. We hope that our prototype is a significant step towards this goal.

References [1] Morad Ahmad, Jens Thamm and Lutz Wegner: Rapid Application Development for Web-based Collaboration, Proc. 2nd Int. Symposium on Cooperative Database Systems for Advanced Applications (CODAS‘99), Wollongong, Australia, March 27-28, 1999, LNCS Springer Verlag [2] Krishna A. Bharat and Scott E. Hudson. Supporting Distributed, Concurrent, One-Way Constraints in User Interface Applications. In Proceedings of the ACM Symposium on User Interface Software and Technology, pp. 121 - 132, Pittsburgh 1995 [3] Martin Bürger. Unterstützung von Awareness bei der Gruppenarbeit mit gemeinsamen Arbeitsbereichen (Support of awareness for group work with shared workspaces), Diss. TU München 1999, UTZ Verlag, München, 1999 [4] P. Dourish and V. Bellotti. Awareness and Coordination in Shared Workspaces, Proc. Int. Conf. on CSCW (Toronto, Canada), Oct. 1992, p. 107 - 114, J. Turner and R. E. Kraut (eds), ACM Press, 1992. [5] C.A. Ellis, S.J. Gibbs, and G.L. Rein: Groupware - Some Issues and Experiences, CACM 34:1 (Jan. 1991),

8

pp. 38-58 [6] R.T. Fielding, E.J. Whitehead, K.M. Anderson, G.A. Bolcer, P. Oreizy, and R.T. Taylor. Web-Based Development of Complex Information Products. Comm. ACM 41 (8) August 1998, pp. 84 - 92 [7] D. Flanagan. JavaScript: The Definite Guide. Second Edition, O’Reilly and Associates, 1996. [8] R. Gillner, L. Wegner, and Ch. Zirkelbach: Collaborative Project Management with a Web-based Database Editor, Proc. 5th Int. Workshop „Multimedia Information Systems“ (MIS‘99), Indian Wells, California, October 21-23, 1999. Leana Golubchik and Vassilis J. Tsotras (Eds.), pp. 72 - 79. [9] S. Greenberg, C. Gutwin, and A. Cockburn. Using Distortion-Oriented Displays to Support Workspace Awareness. Technical Report 96/581/01, Deptm. of Computer Science, University of Calgary, Canada, jan. 1996 [10] S. Greenberg and M. Roseman. Groupware Toolkits for Synchronous Work. in: Beaudouin-Lafon, M. (ed.) Computer-Supported Cooperative Work, Trends in Software Series, John Wiley, 1998. [11] M. Harrison and M. McLennan. Effective Tcl/Tk Programming. Addison-Wesley, Reading, Mass., 1998. [12] J. R. Nicol, Y. S. Gutfreund, J. Paschetto, K.S. Rush, and C. Martin. Collaborative Multimedia Applications. Comm. ACM 42 (1), pp. 79 - 85, January 1999. [13] John K. Ousterhout. Scripting: Higher-Level Programming for the 21st Century, IEEE Computer 31(3) March 1998, pp. 23 - 30 [14] J.K. Ousterhout. Tcl and the Tk Toolkit. Addison-Wesley, Reading, Mass., 1994. [15] A. Prakash, H.S. Shim, and J.H. Lee. Data management Issues and Trade-Offs in CSCW Systems. IEEE Transactions on Knowledge and Data Engineering, 11(1) 1999, pp. 213-227, 1994. [16] T. Rodden. Populating the Application: A Model of Awareness for Cooperative Applications. Proc. of the ACM 1996 Conf. on CSCW, Boston, Mass. pp. 87-96, 1996. [17] O. Sandor, C. Bogdan, and J. Bowers. Aether: An Awareness Engine for CSCW. Proceedings of the 5th European Conference on CSCW (Lancester, UK), p. 221-236, J. A. Hughes, W. Prinz, T. Rodden, and K. Schmith (eds), Kluwer Academic Publishers, Dordrecht, 1997. [18] R.E. Strom, G. Banavar, K. Miller, A. Prakash, and M. Ward. Concurrency Control and View Notification Algorithms for Collaborative Replicated Objects. IEEE Transactions on Computers 47(4), pp. 458-471, 1998. [19] J. Thamm, S. Thelemann, and L. Wegner: Visual Information Systems - A Database Perspective, Proc. DMS ’96 Third Pacific Workshop on Distributed Multimedia Systems Hong Kong Univ. of Science and Technology, June 25 - 28, 1996 (David Du and Olivia R. Liu Sheng eds.) Knowledge Systems Institute, Skokie, IL, pp. 274-285 [20] J. Thamm and L. Wegner. What You See is What You Store: Database-Driven Interfaces. Proc. 4th IFIP 2.6 Working Conference on Visual Database Systems, L’Aquila, Italy, Ioannidis, Y. and Klas, W. (eds), pp. 6984, May 1998. [21] J. Thamm, S. Wilke, and L. Wegner. A Web Solution to Concurrency Awareness in Shared Data Spaces, in Proc. Advances in Database Technologies. New Database Technologies for Collaborative Work Support & Spatio-Temporal Data Management, Kambayashi, Y., Lim E.-P. et al. (eds), Singapore, LNCS Springer, pp. 382-395, November 1998. [22] L. Wegner, S. Thelemann, S. Wilke, and R. Lievaart. QBE-like Queries and Multimedia Extensions in a Nested Relational DBMS. Proc. Int. Conf. on Visual Information Systems, Melbourne, Australia, Leung, C. (ed.), pp. 437-446, 1996. [23] L. Wegner, M. Paul, J. Thamm, and S. Thelemann. A Visual Interface for Synchronous Collaboration and Negotiated Transactions. Proc. Advanced Visual Interfaces (AVI’96), Gubbio, Italy, Catarci, T., Costabile, M. F., Levialdi, S., Santucci, G. (eds), ACM Press, pp. 156-165, May 1996. [24] D. Wilke, L. Wegner, and J. Thamm. Database-driven GUI Programming. Proc. Int. Conf. on Visual Information Systems (Visual’97), Jain., R. (ed.), San Diego CA, pp. 205-214, 1997.

9

❏ model Alaska

California

{ } prices-per area

West

California

Florida

other

NY City, Illinois

West

California

Florida

< > cars

{ } rental-companies

awareness server

DBMS

. . .

1 2 ABC 4 GHI 5 JKL 7PQRS 8 TUV * 0+

3 DEF 6 MNO 9WXYZ #

OK

5 PAST

2 INS

▲ ▼

4 CUT

3 DEL

C

1 OUT

0 IN

cmp-model-area-price

(( ))

avis economy 4 door california 525 deutschmarks per week





Appendix A. Collaboration with independent representations



... ... ...

... ...

...

. . .

.a.c

.a.b

.a

widget tree

.a.b.c finger Fjs .a.b.d

finger Fit

client Cj

widget tree

.a.c.d

.a.b

finger Fit

.a

client Ci

display commands

commands

finger

display commands

commands

finger i

js

Finger Fjs

Finger Fit

it

Appendix B. Schematic view of client representations, awareness layer and DBMS

j

data pages

server

j

awareness layer

Suggest Documents