UC Santa Cruz
The Design and Implementation of Key Applications for a Live, Collaborative Online Environment
- Author(s): Papp, Ethan
- Advisor(s): Renau, Jose
- et al.
Modern micro-architectural simulation makes it difficult for concurrent users to collaborate on the work that they are doing in real time. This not only decreases efficiency, but also requires extra, error prone work to synchronize ideas and produce desired simulation or programming results. These problems require a solution of a collaborative work environment where users can study micro-architectural simulation, and at the same time, share live results with other users in a collaborative environment. Traditionally, a non-collaborative alternative would require the user store their own copy of local files, manually manage access to different project directories and ultimately be responsible for security and what part of the work they share with themselves on different workstations or with other users. In a collaborative simulation environment, users can expect to share results of simulation, write collaborative code, share files, keep private versions of their own files, and seamlessly contribute to remote revision repositories, all while maintaining collaboration with their peers. Such a collaborative environment introduces interesting security and file revision synchronization problems as a result of abstracting the simulation and collaboration to a remote server, shared by all users of the collaboration environment.
This work focuses on the implementation of applications and features to make such a live, collaborative environment possible. Key features include:
• A strong client-server separation to eliminate risks of polluting files the user would otherwise not normally have access to.
• Designing and implementing a revision control flow that seamlessly integrates GIT and operational transform (OT) with the notion of live collaboration.
• Designing and implementing two key applications of the LiveOS: a terminal and a code search utility.