D3-Project in Collaborative Environments


A Collaborative Editor

 

 

Niklas Elmqvist and Boris Koldehofe






Description

A collaborative (document) editor provides a way for many users to share and work on the same document in real-time. Unlike sequential editors the purpose of a collaborative editor is to support the users in working together on a common task by modifying a common document concurrently. The implementation of a collaborative editor requires to consider both technical and social issues with respect to how users communicate in such an environment.

Existing approaches use a central server approach in order to maintain a document in the collaborative editor. The problem with this approach is that the number of users which can be supported is fairly low. All communication uses the server which itself becomes a bottleneck of the system.

An alternative approach is intended to be used in this project which let users of the document communicate on a peer-to-peer basis without using a central database. Instead all users maintain local copies of parts of the document and communicate on changes of the document.

The objective of this project is to develop an editor (for textual or graphical documents) providing a user interface that suits a decentralised maintenance of the shared document. An important point is to develop good ways for users to interact with the state of the document. Therefore one must elaborate on objects which form the shared document and rules how users can modify the document. Since the document should be handled in a dynamic way one must also consider how users can join or leave a document.


Learning

The project will provide you with an insight into several aspects of distributed systems and human computer interaction. In the area of distributed systems you will learn about group communication and synchronisation techniques. Since some of the material is covered in a course in the fourth period, we will provide the possibility to study some of the material already at an earlier point in time. In the area of human computer interaction you will learn about interactive user interfaces beyond the ordinary user event driven interfaces.


Organisation and Requirements

The project should be done in a group of 5-10 students.  Students should be interested to learn about communication protocols in distributed systems, but no knowledge in this area is assumed. Students should be able to program in an object oriented programming language like JAVA.


Suggested Courses


Interested?

For more information do not hesitate to contact khofer@cs.chalmers.se or elm@cs.chalmers.se .



Niklas Elmqvist and Boris Koldehofe,  April 2003