NODAL: Motivation

Lee Iverson
OHS Design Group

Lee Iverson <leei@ai.sri.com>
Last modified: Wed May 2 10:21:38 2001

Collaboration is a Basic Need

Mainstream Document Collaboration

One of the most fundamental barriers to collaboration between both users and applications is the granularity of data access. File systems organize information in directories of "files". Sharing files is a simple process of placing them on a networked file system or simply sending them to a group via electronic mail or some other message passing system. This model assumes either that files change rarely or that they have single authors or both. Sometimes file sharing is augmented or replaced with email attachments.

What happens however when we try to use this shared file and email approach to collaboratively create documents or accumulate group knowledge? Quite simply, a difficult, cumbersome process. A few examples will illustrate some of the problems:

Microsoft Word

Microsoft has made some effort to allow multiple users to exchange and edit documents produced with Microsoft Word. The sharing model is simple: a user sends (or makes available) a copy of their Word document to another user who edits (or reviews) it and sends it back. The modified Word document contains a change history which may be navigated by the first user (the change integrator) and individual changes made by the other user may be approved or rejected via a GUI interface.

Word Advantages

Word Problems

CVS

The Concurrent Version System (CVS) was developed as a response to problems perceived by distributed groups of developers when using the Revision Control System (RCS) for collaborative software development (using plain text files). RCS maintained the integrity of its version control by requiring users to check out files in the repository, modify them and then check them back in. While a file was checked out by one user, it was unavailable for modification by other developers (locked). In may kinds of scenarios, especially software development, a single developer may need to change many files in concert before a new consistent (and thus check-in-able) state is achieved. Locking all of these files while this one developer is attempting to attain consistency is untenable as soon as more than two or three developers are working on a single project.

CVS solves this problem by removing the locking requirement and allowing multiple users to all be editing the same set of files simultaneously. Users maintain local versions of the repository and make changes as they wish. A user occassionally "updates" his local copy by asking CVS to apply those changes made by other users to his local copy. This may lead to conflicts, in which a section of a file which the user has modified has also been modified by someone else. It is then up to the user to resolve these conflicts be editing with a text editor. When checking changes back in to the repository, a user must first "update" after which an automatic process detects the changes made to a particular file and then sends these to the repository, which updates its database.

CVS Advantages

CVS Problems

A New Model for Collaborative Work