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
-
Datakommunikation / Computer Communication
-
Distribuerade system (advanced course)
-
Människa-Dator Interaktion
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