As we saw earlier, the goal of CSCW is to provide better support for collaboration than what is provided by traditional systems. Current support for collaboration consists basically of talk, mail, and files and databases. To understand what else is needed, let us compare these applications, identifying properties that distinguish them from each other.
A talk application supports the abstraction of a joint session which users may enter or leave. Text entered by a user user does not have to targeted at specific users, other users in the session are the implicit receivers of it. Moreover, the application makes a ``best effort'' at communicating user's input as soon as possible, keeping active connections among all users. As a result, it is well suited to support distributed synchronous meetings. In contrast, mail has no notion of a session, requiring message-specific destinations. Moreover, it does not maintain active connections, and can queue and batch messages to decrease network traffic. Thus, it is meant for asynchronous collaboration, though it is possible to use it (albeit clumsily) for synchronous collaboration. In both a talk and mail system, information is explicitly copied from between the (potentially) private spaces of the collaborators.
A file or database, on the other hand, creates a single shared (logical) copy of some artifact, and communication occurs indirectly by monitoring the state of this object. Thus, a file is suitable for collaboration involving the joint creation of a shared artifact.
Thus, these three systems defined three classes of applications, session-based, message-based, and artifact-based applications. We can improve on the state of the art by (a) providing better support for each class, while retaining the basic properties of the class, and (b) combining properties of these classes, thereby creating new, hybrid, classes of collaborative applications. Let us look first at applications that provide better support for each class and later at those that combine properties of these classes. This classification is meant mainly to be a tool for organizing the tour of collaborative applications. It is not meant to be taken strictly, since many applications combine properties of multiple classes. The class in which we introduce an application depends on how it contributes to the flow of the discussion. Finally, this is only way to classify collaborative applications, allowing us to derive novel collaborative applications based on features of familiar applications. Later, we shall look at other classifications of these applications.
In the description of each application, we list new features that had not been presented before. It is important to note that these features are ``new'' based only on what had been described before, and are not necessarily the research contributions of that application, since we are not presenting applications in chronological order or even describing all details of each application.