Hasso-Plattner-Institut für Softwaresystemtechnik
Research School Meeting

Research School Meeting


9th of February 2011, 15:15




Sebastian Ziller


Concurrency problems in a tool for Distributed Pair Programming


For the technical facilitation of Distributed Pair Programming the AG Software Engineering at Freie Universität Berlin develops the Eclipse Plugin Saros. Due to Saros' possibility to leave the well-known driver-observer pattern of Pair Programming and to allow more than one driver (at least in a technical sense), one is confronted with some concurrency problems.

This includes the problem that concurrently generated, non-commutable edit operations should be executed in a way that afterwards there still is a consistent state of the edited document for all participants of the programming session. In addition the intention of each participant's edit operation should be preserved. This is achieved by the Jupiter architecture combined with the GOTO algorithm for Operational Transformation.

Another complication is the concurrency control of long-running operations, e.g. removing a participant's write access. This can be solved by blocking mechanism which prevents participants from editing for a certain time.

Furthermore there has to be readjusted the semantics of the Undo operation because in a distributed environment there only should be undone the most recent own operation, not the globally most recent one. Here an operation history has to be maintained. Applying the GOTO algorithm to this history the problem can be solved.

To assess the benefits of this so called multi driver mode, there was performed an empirical study, which had the goal to find differences in pairs' usage of the multi driver mode compared to the single driver mode. Due to the too low number of participants there couldn't be found clear results, but tendencies of a shorter development time in multi driver mode.