Fysikkbygningen øst (kart)
Sem Sælands vei 24
The goal of the project is to design railway infrastructure with higher capacity and safety. By providing tool-assisted methods, the project contributes to reduce the Norwegian public spending for railway signalling designs. PhD thesis link (5,5 Mb).
by Lars Tveito
Real-time collaboration allows multiple users to view and edit a document simultaneously over a network. In this thesis, we develop a new protocol, called Shared Buffer, which enables real-time collaboration in existing editors. Shared Buffer leverages a client-server architecture and minimizes the implementation effort of the client-side algorithm. It achieves this without degrading the responsiveness of the editor.
The greatest challenge of a real-time collaborative system is ensuring consistency between the distributed copies of the document. We chose eventual consistency as the consistency model, which essentially states that if all users stop typing, then eventually they will look at the same document.
We apply a formal verification technique called model checking, using it as a tool to validate the protocol. The behavior of the system is formally specified in Maude, a language based on equational and rewriting logic. Linear Temporal Logic (LTL) is used to formalize the consistency model. Using the Maude LTL model checker, we have verified that the system exhibits eventual consistency for a limited number of clients and operations.
A Shared Buffer server has been implemented in Clojure, a modern functional language with strong support for concurrency. Client implementations have been developed as an extension for Emacs, a widely used text editor, and as a library for the Python programming language.
This is a general topic regarding modern concurrency models and their various theoretical and practical aspects. Here the student can choose various topics to focus on, depending on the interest, which we find out together through discussions.
One can do various kinds of MSc theses, starting from just programming a simple tool related to some forms of concurrency, or a literature study, or doing modelling of real-life concurrent systems, or develop a concurrent programming/modelling languge, or doing mathematical work on the logical foundations of all these models and their tools.
Ask for discussions with one of the supervisors, for more information or variations of the project. See also general concerns.