Implementing a Collaborative Real-Time Editor in a Web Application

Loading...
Thumbnail Image

URL

Journal Title

Journal ISSN

Volume Title

Sähkötekniikan korkeakoulu | Master's thesis

Department

Major/Subject

Mcode

AS3002

Language

en

Pages

69+8

Series

Abstract

Työssä tutkitaan reaaliaikaisen kollaboratiivisen editorin toteuttamista olemassa olevan WWW-sovelluksen, Flowdockin, yhteyteen. Kollaboratiivinen editointi reaaliaikaisessa ympäristössä on hyötynyt WWW-teknologioiden kehityksestä. Kuitenkin on olemassa vain vähän tutkimustuloksia uusien teknologioiden käytöstä reaaliaikaiseen yhteistyöhön verkkoselaimissa ja näiden soveltamisesta kollaboratiiviseen editointiin WWW-sovelluksessa. Työssä esitellään eri menetelmiä kaksisuuntaisen kommunikaation toteuttamiseen selainympäristössä ja tutkitaan näiden suorituskykyä. Menetelmät sisältävät vasta standardoidun WebSocket-protokollan lisäksi perinteisen HTTP-yhteyden käytön kommunikaatioon. Lisäksi arvioidaan ratkaisuja rinnakkaisuu-den hallintaan ja näiden soveltuvuutta dokumentin editointiin arvidoidaan. Operational Transformation (OT), Causal trees, Differential Synchonization sekä Without Operational Transformation (WOOT) -algoritmit havaitaan soveltuviksi reaaliaikaiseen dokumentin editointiin. Rinnakkaisuuden hallintaan ja kaksisuuntaiseen kommununikaatioon verkkoselaimissa käytettävissä olevien menetelmien suorituskykyä mitattiin. Mittausten ja tarkemman analyysin perusteella esitellään ratkaisu kommunikaation mahdollistamiseksi selaimen ja palvelimen välillä. Tämä perustuu ensisijaisesti WebSocket-protokollan käyttöön ja tarvittaessa turvaudutaan muihin ratkaisuihin, mikäli WebSocket ei ole käytettävissä käyttäjän selaimessa. Rinnakkaisuuden hallintaan esitetään käytettäväksi operaationhallintaa. Käyttämällä esitettyjä menetelmiä on mahdollista toteuttaa reaaliaikainen kollaboratiivinen editori verkkoselaimessa toimivaan Flowdock-sovellukseen. Tuloksia voidaan verkkoselaimissa toimivan kaksisuuntaisen kommunikaation osalta soveltaa myös muihin sovelluksiin.

Collaborative real-time editors are an area of interest in web applications, including Flowdock. We want to improve the current collaborative features by adding collaborative real-time document editing. The literature currently is very sparse on the effects of recent developments in web standards to real-time collaboration and on the other hand offers little practical guidance on how to implement collaborative editing in a web application. In this thesis, first different methods to implement web-based networking are researched. These include the recently standardised WebSocket protocol and using plain HTTP to implement streaming or polling. Then, alternatives for concurrency control are introduced and their suitability for text editing is analysed. Operational Transformation (OT), Causal Trees, Differential Synchronisation, and Without Operational Transformation algorithms are suitable for computer-supported cooperative work. Methods for both concurrency control and web-based networking are bench- marked. Based on quantitative and qualitative analysis, recommendations for implementation are made. This is based on using WebSocket as the primary networking methods and others as fallback when WebSocket is not available in the client’s web browser. For concurrency control, OT is found to be most practical alternative. Using the recommended methods, it is possible to implement a collaborative real-time editor in Flwodock. The results for web-based networking benchmark can also be generalised for other applications.

Description

Supervisor

Hyvönen, Eero

Thesis advisor

Hyvönen, Eero
Roos, Mikael

Other note

Citation