ACE (Java text editor)

from Wikipedia, the free encyclopedia
ACE - a collaborative editor

ACE icon
Basic data

developer [The ACE project]
Current  version M4
(March 7, 2006)
operating system Windows , Unix-like ( macOS , Linux , ...)
programming language Java
category Text editor
License GPL ( Free Software )
German speaking No
sf.net/projects/ace

ACE - a collaborative editor is a collaborative real-time - text editor .

introduction

ACE enables several people to edit a text document together, i.e. at the same time ( multiple authorship ). Each person works with the ACE editor on their own computer. All participants are connected via a network ( LAN , Internet ) and see the same document content at all times. If someone in the group makes a change in the document (for example, they write the word “signature” at the end of the document), this is displayed in real time and synchronously to all other users. Each user has an overview of the changes in the document and can see who has edited what where in the document. This is supported by different text background colors for each participant in an editing session (see graphic).

ACE automatically recognizes all users in the local subnet (compare Bonjour technology). The desired documents can be published for joint editing. The owner of the document can then invite the users to edit.

ACE is distributed as free software also in source code under the terms of the GNU General Public License (GPL). It runs on the Java runtime environment, which is available for all known operating systems such as Windows or various Unix derivatives ( Linux , Mac OS X , ...).

example

ACE from the perspective of the user Steve

User Steve is working with Scott and Bill to edit a document called Collaboration.txt . Steve is the owner of the document. In the "Participants" window at the top right, Steve sees which users are also editing and their background color. So he knows exactly who wrote what. Steve's background color is blue. Now when the user Bill writes something, Steve can at the same time read what Bill is editing by watching his cursor . In the "Users" window at the bottom right, all known users in the same subnet are automatically listed. But it is also possible to work together with a user over the Internet . In the "Browse" window at the bottom left, all public documents are displayed, ie documents that have been released for joint editing by other users . Steve can now click on one of these documents, and if the owner of the document agrees, they can edit the document together.

Possible applications

ACE enables, for example, the following functionality:

  • a joint brainstorming session by several people,
  • joint writing of notes at a conference,
  • collaborative writing of program code ( XP ),
  • educational purposes (for schools, for example two students write an essay together).

An interesting use case of ACE is its use for learning purposes in schools. For example, groups of two to three students can write an essay together. In doing so, they train each other to learn and use the written language better. On the one hand the students learn to write and on the other hand they experience a playful use of the computer.

As part of the free online LaTeX editor ShareLaTeX , ACE enables LaTeX users to jointly write documents - including preview and PDF download. Also RStudio , a web interface for the statistical programming language R , uses ACE.

Other projects that use ACE include: B. Etherpad and OwnCloud .

technology

A collaborative real-time editing system such as ACE has the following requirements:

Real time
The response times for the local user must be the same as with a normal editor and the latency (among other things depending on the bandwidth of the network) for the other participants must be short.
Distributed
Collaborating users mostly work on physically different computers. Therefore it is a distributed system .
Unrestricted
Several users can edit the document at the same time and independently of one another , which is intended to enable intuitive work like a normal editor .

A collaborative editing system can consist of n instances, which simply corresponds to n users who have the system running on their computer and who are connected to one another by a network . The greatest challenge with a collaborative editing system is the consistency of a document, because if the document replicas were to diverge, they would no longer be identical and the editing system as such would be useless.

A collaborative editing system must have the following properties in order to be considered consistent .

convergence
As soon as all instances of the system have performed the same set of operations (e.g. insert, delete), the document replicas must be identical on all instances.
causality
This is the property that guarantees that a lot of operations are performed in the same order on all instances of the system.
Implementation of user intent
Guarantees that the execution of an operation (e.g. insert, delete) has the same effect on all instances of the system (e.g. deletion of the letter w at the third from last position in the document: the system deletes the letter w at the end of the document on each instance, even if its position has changed in the meantime).

There are consistency algorithms to achieve this consistency property. Such algorithms consist of two parts: the concurrency control algorithm and the operational transformation functions. These two mechanisms come from the research area of Computer Supported Cooperative Work , or CSCW for short .

See also

Web links

Commons : ACE (editor)  - collection of images, videos and audio files

Individual evidence

  1. Share latex Blog: Developer thank the ACE Project (English)