- ACE (Editor)
-
ACE - a collaborative editor Entwickler: [The ACE project] Aktuelle Version: M4
(7. März 2006)Betriebssystem: Windows,Mac OS X, Linux Kategorie: Texteditor Lizenz: GNU GPL Deutschsprachig: noch nicht http://sourceforge.net/projects/ace ACE – a collaborative editor ist ein kollaborativer Echtzeit-Texteditor.
Inhaltsverzeichnis
Einführung
ACE ermöglicht es mehreren Personen, ein Textdokument gemeinsam, d. h. zur gleichen Zeit, zu bearbeiten (Mehrautorenschaft). Jede Person arbeitet mit dem ACE-Editor an einem eigenen Computer. Dabei sind alle Teilnehmer über ein Netzwerk (LAN, Internet) verbunden und sehen jederzeit den gleichen Dokumentinhalt. Wenn jemand der Gruppe eine Änderung im Dokument vornimmt (z. B. schreibt diese das Wort 'Unterschrift' am Ende des Dokumentes), wird dies in Echtzeit und synchron allen anderen Benutzern angezeigt. Jeder Benutzer hat dadurch den Überblick über die Änderungen im Dokument und kann nachvollziehen, wer was wo im Dokument editiert hat. Dies wird unterstützt durch unterschiedliche Text-Hintergrundfarben für jeden Teilnehmer einer Editier-Session (vgl. Grafik).
ACE erkennt alle Benutzer im lokalen Subnetz automatisch (vgl. Bonjour Technologie). Die gewünschten Dokumente können zum gemeinsamen Editieren veröffentlicht werden. Der Besitzer des Dokumentes kann dann die Benutzer zum Editieren einladen.
ACE läuft auf allen bekannten Betriebssystemen wie Windows, Mac OS X oder diversen Unix-Derivaten und ist freie Software.
Beispiel
Benutzer Steve editiert zusammen mit Scott und Bill ein Dokument namens 'Collaboration.txt'. Steve ist der Besitzer des Dokumentes. In dem 'Participants'-Fenster oben rechts sieht Steve, welche Benutzer miteditieren und deren Hintergrundfarbe. So erkennt er genau, wer was geschrieben hat. Steves Hintergrundfarbe ist blau. Wenn nun der Benutzer Bill etwas schreibt, kann Steve gleichzeitig mitlesen, was Bill editiert, indem er seinen Cursor beobachtet. Im 'Users'-Fenster unten rechts werden alle bekannten Benutzer im selben Subnetz automatisch aufgelistet. Es ist aber auch möglich, mit einem Benutzer übers Internet zusammen zu arbeiten. Im 'Browse' Fenster unten links werden alle öffentliche Dokumente angezeigt, also Dokumente, die von anderen Benutzern zum gemeinsamen Editieren freigegeben worden sind. Steve kann nun auf eines dieser Dokumente klicken, und wenn der Besitzer des Dokumentes einverstanden ist, können sie gemeinsam das Dokument editieren.
Anwendungsmöglichkeiten
ACE ermöglicht zum Beispiel folgende Funktionalität:
- ein gemeinsames Brainstorming mehrerer Personen,
- gemeinsames Notizenschreiben an einer Konferenz,
- kollaboratives Schreiben von Programmcode (XP),
- erzieherische Zwecke (für Schulen, z. B. zwei Schüler schreiben gemeinsam einen Essay).
Ein interessanter Anwendungsfall von ACE ist die Benutzung zu Lernzwecken an Schulen. Zum Beispiel können Gruppen von zwei bis drei Schülern zusammen einen Essay schreiben. Dabei trainieren sie sich gegenseitig, die Schriftsprache besser zu lernen respektive anzuwenden. Zum einen lernen die Schüler zu schreiben und zum anderen erleben sie eine spielerische Anwendung des Computers.
Technologie
Ein kollaboratives Echtzeit-Editiersystem wie z. B. ACE hat folgende Anforderungen:
- Echtzeit: Die Antwortzeiten für den lokalen Benutzer müssen gleich sein wie bei einem normalen Editor und die Latenzzeit (u. a. abhängig von der Bandbreite des Netzwerkes) für die anderen Teilnehmer muss klein sein.
- Verteilt: Kollaborierende Benutzer arbeiten meist auf physikalisch unterschiedlichen Rechnern. Daher handelt es sich um ein verteiltes System.
- Uneingeschränkt: Mehrere Benutzer können gleichzeitig und unabhängig voneinander das Dokument editieren, damit soll ein intuitives Arbeiten wie bei einem normalen Editor ermöglicht werden.
Ein kollaboratives Editiersystem kann aus n Instanzen bestehen, das entspricht einfach n Benutzern, welche das System auf ihrem Rechner laufen haben und welche durch ein Netzwerk miteinander verbunden sind. Die größte Herausforderung bei einem kollaborativen Editiersystem ist die Konsistenz eines Dokumentes, denn wenn die Dokument-Replikate divergieren würden, wären diese nicht mehr identisch und somit das Editiersystem als solches nutzlos.
Ein kollaboratives Editiersystem muss folgende Eigenschaften haben, damit es als konsistent gilt.
- Konvergenz: Sobald alle Instanzen des Systems die gleiche Menge von Operationen (z. B. Einfügen, Löschen) ausgeführt haben, müssen die Dokument-Replikate auf allen Instanzen identisch sein.
- Kausalität: Das ist die Eigenschaft welche garantiert, dass eine Menge von Operationen auf allen Instanzen des Systems in der gleichen Reihenfolge ausgeführt werden.
- Umsetzung der Benutzerabsicht: Garantiert, dass die Ausführung einer Operation (z. B. Einfügen, Löschen) auf allen Instanzen des Systems die gleiche Auswirkung hat (z. B. Löschen des Buchstabens w an drittletzter Stelle im Dokument: Das System löscht den Buchstaben w am Ende des Dokumentes auf jeder Instanz, auch wenn sich dessen Position in der Zwischenzeit verändert hat).
Um diese Konsistenz-Eigenschaft zu erreichen, gibt es Konsistenz-Algorithmen. Solche Algorithmen bestehen aus zwei Teilen: Dem Concurrency Control Algorithmus und den Operational Transformation Funktionen. Diese beiden Mechanismen stammen aus dem Forschungsgebiet des Computer Supported Cooperative Work, kurz CSCW.
Siehe auch
Weblinks
Wikimedia Foundation.