ACE (editor)

This article is about the desktop-based collaborative editor. For the web-based code editor, see Ace (editor). For the society of film editors, see American Cinema Editors.
ACE
Developer(s) The ACE project
Stable release M4 / March 2006
Operating system Windows, Mac OS X, Linux
Platform Java
Type Text editor
License GNU GPL
Website ace.sourceforge.net

ACE (ACE - a collaborative editor) is a platform-independent, collaborative real-time editor. It is a real-time cooperative editing system that allows multiple geographically dispersed users to view and edit a shared text document at the same time.

Introduction

ACE is a simple text editor with standard features such as copy/paste and load/save. Multiple documents can be edited at the same time. Furthermore, ACE can share documents with other users on different computers, connected by communication networks (LAN, Internet). ACE also discovers users and their shared documents automatically in a local area network. Users can opt to join any discovered shared document. For all this, no configuration is necessary because it is based on zero-conf networking.

Once a user has joined a shared document, he can freely edit the document at the same time with all participants as a virtual team. So-called awareness information helps to avoid unnecessary conflicts (that is, two users editing at the same time and text location). Awareness information includes the cursor and the currently selected text of the other users marked with the color of the respective user.

The heart of the application is a concurrency control algorithm based on the innovative concept of operational transformation, which allows for lock-free editing of a document by multiple users. It imposes no editing constraints and resolves all conflicts automatically. The algorithm overcomes one of the most significant challenges in designing and implementing real-time collaborative editing systems, namely consistency preservation. That is to ensure that at quiescence (that is, when no messages are in transit) the shared document is identical for all participants.

ACE builds upon open technologies such as BEEP (RFC 3080) and zero-conf networking. All this leaves the possibility open to communicate even with different applications that understand the public protocol of ACE.

ACE runs on all major operating systems such as Windows, Mac OS X, or Linux and is free software.

An ACE editing session with three participants.

Example use case

Consider a collaborative editing session with three participants, named Bill, Steve, and Scott, as depicted by the figure. There is also a fourth user, named Sam, who does not participate in the session. The document which the users collaboratively edit is Collaboration.txt. User Scott is the owner and publisher of it. Note that users Steve and Bill work on Microsoft Windows OS, whereas Scott uses Mac OS X and Sam Linux OS. Note that the blue color always denotes the text written by the local user of the ACE instance. The color to matching a participant is depicted in the participants view of the GUI.

Usage

Here is a list with a few examples on how ACE can be used:

The last point reveals some more potential for cooperative editing systems: Groups of two to three students can write essays together. On the one hand, they teach each other how to use the written language, and on the other hand, they can have fun together using a hands-on application on the computer, thus losing fear of contact with the computer, which is essential in today's education.

Technology background

A real-time cooperative editing system such as ACE allows multiple users to view and edit the same document at the same time from multiple geographically dispersed sites. The sites are connected by communication networks. The following requirements have been identified for such systems:

A real-time cooperative editing system consists of n instances, each instance run by a different user. All instances are connected by a network. One of the most significant challenges in designing and implementing real-time cooperative editing systems is consistency maintenance among the different document replicas (one for each site). A cooperative editing system is said to be consistent if it always maintains the following properties:

One solution to achieve consistency control is provided by Operational Transformation (OT) algorithms. The OT algorithm approach consists of two main components:

The theory on consistency maintenance stems from the research field called Computer Supported Cooperative Work, for short CSCW.

See also

External links

Wikimedia Commons has media related to ACE.
Wikimedia Commons has media related to ACE.