Handling Disconnection in Synchronous Groupware
CSCW , Human Factors , Synchronous Groupware , Reconnection , Disconnection
Synchronous distributed groupware is a class of software applications allowing a geographically distributed group of people to collaborate in real time. There are different types of groupware, e.g., collaborative editing software, distributed meeting support tools, and multiplayer games. However, collaborators in groupware can become disconnected from the session. Disconnections can range in duration from a few seconds (e.g., due to a network outage) to hours or days (e.g., stowing a laptop while flying). Disconnection causes information loss and makes it difficult for users to understand both the state of the workspace and the current activities of other people upon reconnection. Thus, it is important to handle disconnection in groupware. However, handling disconnection is difficult for groupware developers. They need to determine varieties of strategies in order to address different disconnection scenarios. These strategies determine how stored information can be manipulated as the system waits for a disconnected user to rejoin, and how information should be replayed upon reconnection. If disconnection lasts for a long time, developers need to select and combine strategies in order to manage a trade-off between performance requirements (e.g., delivering stored information as quickly as possible upon reconnection) and understandability requirements (e.g., allowing users to watch missed information in an understandable manner). Developers might not know how to implement such strategies in a reusable manner. Because of this lack of knowledge in handling disconnection, developers might build disconnection-aware groupware applications that will not address the range of wide variety of user-level requirements that arise from different disconnection scenarios. Moreover, as there are a few disconnection-aware groupware applications, developers might not know the overhead (e.g., additional message transmission time, memory usage and programming complexity) of handling disconnection in synchronous groupware in practice. In order to mitigate developers’ problems to handle disconnection in synchronous groupware, this thesis provides codified solutions that capture and organize a wide range of strategies for handling disconnection, that manage the performance and understandability trade-off through selecting and combining suitable strategies and that show how to implement the strategies in a reusable manner. In order to determine the overhead of handling disconnection, a toolkit is developed following the designed solutions, and different applications are constructed using the toolkit. User studies and performance analyses are conducted that evaluate the toolkit and demonstrate its quality goals, such as offering simple application programming interface (API), high performance, and supporting different disconnection scenarios and timeframes.