19. groupware


Repeat the exercise in Section 19.6.1, but this time look for shared data on your system. Is the data updated by one person and viewed by many, or have you files or databases which are updated by several people? If the latter, find out what methods are used to prevent two users changing the same data at the same time. There may be no mechanism at all, a computerized one (for example, locking) or a social protocol (for example, a floppy disk is passed around).


There is an argument that bulletin boards are a form of shared data, so they should certainly be acceptable as an answer to this question, depending on their nature at your site and also on how well argued the answer is.

You are likely to come across a lot of loosely shared items, where only a small group access them. For example, the files that comprise the book Human-Computer Interaction were shared between the authors. Whether any sort of locking is used will depend on the facilities available in your installation, but typically such small-group sharing is handled by social protocols (sometimes unsuccessfully!).

Here are some more specific examples from one of the authors' sites:

There are centralised databases containing phone numbers and car numbers. The former is used in place of the internal telephone directory and the latter when you notice some lights have been left on in the car park! Both of these are updated centrally by one of the administrative staff. Changes are notified (by email) to the administrator. However, access to the information is available to all.

Each user has a 'plan' file in their local directory into which they can put generally informative remarks about their whereabouts. Typically, this might include a contact telephone number, regular appointments a simple diary, or indeed anything of interest. When another user enters the command 'finger Alison', Alison's plan file is displayed. As the file is owned by the individual user, normal access permissions apply and so typically a user can only update their own 'plan' file. However, through the 'finger' command the information is publicly available.

There are also examples of publicly updateable shared files. For example, some email groups are handled by having a file containing the email address of each recipient. Anyone can edit the file to add or remove their name from this list. (In fact, they can just as easily add or remove someone else's name!) On our system this file has no form of protection from simultaneous update, the assumption being that such updates are so rare that they will never happen (really).

The lack of shared data with locking is a reflection of the poor level of system support in the UNIX world. Users of PC-based software should be able to find examples of locking of shared files or databases.

Finally, it is worth discussing the use of implicitly shared information. For example, the 'finger' command in UNIX also tells you whether the user is logged in and, if so, where. This is information known to the system, but made available to the users in such a way as to facilitate cooperation.

Other exercises in this chapter

ex.19.1 (ans), ex.19.2 (ans), ex.19.3 (tut), ex.19.4 (tut), ex.19.5 (tut), ex.19.6 (tut), ex.19.7 (tut), ex.19.8 (tut), ex.19.9 (tut), ex.19.10 (tut), ex.19.11 (tut), ex.19.12 (tut)

all exercises for this chapter