Simulation-based architectural design and implementation of a real-time collaborative editing system

  • Authors:
  • Jon A. Preston;Xiaolin Hu;Sushil K. Prasad

  • Affiliations:
  • Georgia State University, Atlanta, GA;Georgia State University, Atlanta, GA;Georgia State University, Atlanta, GA

  • Venue:
  • SpringSim '07 Proceedings of the 2007 spring simulation multiconference - Volume 2
  • Year:
  • 2007

Quantified Score

Hi-index 0.00

Visualization

Abstract

Real-time collaborative editing systems allow multiple users to synchronously edit a shared document in a geographically-distributed environment. In order to maintain high responsiveness, a distributed copy model is used wherein each user maintains a local copy of the shared document; as a result, techniques such as Operation Transformation (OT) are employed to ensure consistency among the copies; but OT is costly with regard to computation and communication. We have previously developed a distributed architecture and associated algorithms that dynamically lock sections of a document such that users are able to retain a high level of responsiveness within the system while reducing the computation and communication costs. However, a key limitation has been locking out all contending users except one for the smallest indivisible subsection, resulting in scenarios with significant lock request failures. This study expands our work by examining how OT may be integrated into our dynamic locking algorithms such that all users are always able to edit their copy of the document while avoiding costly global messaging. We present an overview of our updated architecture and algorithms, show how they have been simulated using the DEVSJAVA package at the client and server, and then demonstrate the efficiencies achieved by our approach relative to existing OT algorithms. In scenarios featuring clustered editing, large document, and a large number of users, our system incurs up to 80% less communication cost than existing pure OT systems. Additionally, we discuss how our simulation design process has allowed us to first simulate both client and server and then begin progress to a functional implementation of both client and server technologies - better achieving an efficient implementation of our algorithms and ideas based upon our empirical simulation results.