Editing Any Version at Any Time: a consistency maintenance mechanism in Internet-based collaborative environments Liyin Xue Dept of Computing Macquarie University Sydney, NSW 2109 Australia lyxue@ics.mq.edu.au Mehmet Orgun Dept of Computing Macquarie University Sydney, NSW 2109 Australia mehmet@ics.mq.edu.au Kang Zhang Dept of Computer Science University of Texas at Dallas Richardson, TX 75083-0688,USA kzhang@utdallas.edu Abstract This paper investigates the multi-version approach to consistency maintenance in Internet-based real-time collaborative editing systems. It proposes a new multi- versioning scheme that is able to preserve individual users’ intentions while guaranteeing convergent document states. The scheme has been implemented in Java in a prototype called POLO. Keywords Intention preservation, multi-versioning, consistency maintenance, group editors, CSCW, Internet computing. 1. Introduction Consistency maintenance is a fundamental issue in the design of groupware systems [4, 11, 16]. Real-time group editors are a particular type of groupware systems, allowing a group of users to view and edit the same document at the same time from geographically dispersed sites connected by a communication network such as the Internet. They can reduce the time required to complete an authoring task by avoiding the overhead of merging different versions of the same document into one. In a collaborative editing environment based on the Internet, which has non-negligible and non-deterministic communication latency, a replicated architecture is usually adopted, where the shared document is replicated on each user’s workstation that runs a copy of the application process [11]. Each process communicates directly with processes on other users’ computers. Local operations are executed immediately and then multicast to remote sites. Therefore, each user can see his/her own actions immediately, i.e., the responsiveness of users’ actions is guaranteed. However, each user cannot instantly see changes made by remote users to the shared objects, that is, the property of What You See Is What I See (WYSIWIS) cannot be guaranteed [10]. Consequently, users may happen to edit the same part of the document at the same time. This may lead to a conflict. Many existing systems use various locking techniques invented for database systems to prevent such a contention [3, 5]. However, they interrupt end-users in their work and cause unnecessary locking overhead. Since end-users are accustomed to the free editing style common in single-user editors, i.e., a user can freely edit any part of the document without requesting a lock, non-restrictive (free) editing is highly desired in group editors. A fundamental property of single-user editors is that whenever an operation is generated, its effect is persistent until another operation is generated to specifically overwrite or undo that effect. The intention of an operation is the execution effect that can be achieved by applying it on the document state from which it was generated [2]. The intentions of a user are represented by the intentions of operations that the user issues. In group editors, a direct consequence of free or unconstrained editing is intention violation due to concurrent executions of operations, e.g., one intention may be overwritten or changed by another. Therefore, intention preservation is an important aspect of consistency maintenance in group editors [2, 11, 16, 18]. Interpersonal conflicts can sometimes be productive, and it is generally infeasible for the systems to have the knowledge necessary to properly resolve conflicts among users, thus the systems must be capable of reflecting all aspects of human conflict and cooperation and facilitating human users in conflict resolution. To put it in another way, the systems must preserve individual users’ intentions that may be conflicting with one another, and provide facilities to help users reach a consensus, or group intention [18]. The challenge we face is how to maintain the unconstrained multiple individual users’ intentions such that all replicas (copies) of the document converge (become identical) while each user’s intentions are preserved. The multi-version approach has been proposed to accommodate individual users’ conflicting intentions in multiple versions in the Tivoli [9] and GRACE systems [2, 15]. However, there are some limitations associated with them. This paper presents a new multi-versioning scheme that is able to achieve replica convergence and to preserve individual users’ intentions. The scheme has been implemented in Java in a prototype called POLO, which is a distributed object-based real-time collaborative editor. In the current prototype, a document consists of independent objects, such as, lines, rectangles, ellipses, textboxes, etc. Operations are defined to modify individual attribute values. After an object has been created, operations such as “change color” and “move to a new position” can be applied to change its attribute values. The rest of this paper is organized as follows. We start with a review of existing work in Section 2. Section 3 deals with the convergence issue, i.e., how to guarantee that the created versions are identical at all participating Proceedings of the Ninth International Conference on Parallel and Distributed Systems (ICPADS’02) 1521-9097/02 $17.00 © 2002 IEEE