Undoing Any Operation in Collaborative Graphics Editing Systems
Association for Computing Machinery
Undo is a useful and widely supported feature which can be used to recover from erroneous operations, learn new system features, and explore alternative solutions. The ability to undo any operation at any time is especially important for collaborative editing systems because it can be used to support local or global undo and also multiple undo models. The Any Undo solution presented in this paper is able to undo any operation in collaborative graphics editing systems. The major challenge in designing the Any Undo solution is to produce the correct undo/redo effect when operations may be undone/redone in any order. The solution is divided into two parts. The first part focuses on how to produce the undo/redo effect on individual objects. Due to the use of multi-versioning concurrency control protocol, the second part of the solution focuses on producing the correct version and the correct number of versions. This Any Undo solution has been implemented in a collaborative graphics editing system called GRACE.