Ein kollaborativer Echtzeit-Editor ist eine Art kollaborativer Software oder Webanwendung , die die gleichzeitige Bearbeitung , Live-Bearbeitung oder Echtzeitbearbeitung desselben digitalen Dokuments , derselben Computerdatei oder derselben in der Cloud gespeicherten Daten – wie beispielsweise einer Online-Tabellenkalkulation , eines Textverarbeitungsdokuments , einer Datenbank oder einer Präsentation – durch verschiedene Benutzer auf verschiedenen Computern oder Mobilgeräten ermöglicht , wobei ihre Änderungen automatisch und nahezu sofort zusammengeführt werden.

Die Echtzeitbearbeitung synchronisiert automatisch, periodisch und oft nahezu verzögerungsfrei die Änderungen aller Online-Nutzer, während diese das Dokument auf ihren jeweiligen Geräten bearbeiten. Dadurch sollen Bearbeitungskonflikte vermieden oder minimiert werden .

Bei der asynchronen, kollaborativen Bearbeitung (d. h. nicht in Echtzeit, verzögert oder offline) muss jeder Benutzer seine Änderungen in der Regel manuell einreichen (veröffentlichen, übertragen oder bestätigen), aktualisieren (aktualisieren, abrufen, herunterladen oder synchronisieren) und (bei Bearbeitungskonflikten) zusammenführen. Aufgrund der verzögerten Natur der asynchronen, kollaborativen Bearbeitung können mehrere Benutzer dieselbe Zeile, dasselbe Wort, Element, dieselben Daten , dieselbe Zeile oder dasselbe Feld bearbeiten. Dies führt zu Bearbeitungskonflikten , die ein manuelles Zusammenführen oder Überschreiben der Änderungen erfordern. Der Benutzer muss dann entscheiden, welche Änderungen er verwendet, oder (abhängig vom System und der Konfiguration) werden seine eigenen oder die Änderungen anderer Benutzer automatisch überschrieben, gegebenenfalls mit einer Warnung.

Geschichte der wichtigsten Produkte

Die erste Demonstration eines kollaborativen Echtzeit-Editors erfolgte 1968 durch Douglas Engelbart in „The Mother of All Demos“ . Weit verbreitete Implementierungen des Konzepts dauerten Jahrzehnte.

Für das klassische Mac OS wurde 1991 von ON Technology eine Software namens Instant Update veröffentlicht . [ 1 ] Sie ermöglichte die Echtzeitbearbeitung eines einzelnen Dokuments durch mehrere Benutzer über ein LAN und benötigte einen Arbeitsgruppenserver .

Auf der COMDEX 2001 wurde Quickoffice Conference, eine von Jeff Musa von Cutting Edge Software entwickelte kollaborative Tabellenkalkulationssoftware , vorgestellt. Die Software ermöglichte Peer-to-Peer- und Peer-to-Multi-Peer-Konferenzen und die Zusammenarbeit und lief auf der mobilen Plattform Palm OS. [ 2 ]

Das Interesse an kollaborativer Echtzeit-Bearbeitung über das Internet führte in den Jahren 2003-2005 zur Entwicklung von MoonEdit und SubEthaEdit , kurz darauf gefolgt von Gobby .

Mit der Einführung der Ajax -Technologie und der Funktion „Inhalt bearbeitbar“ in Browsern entwickelte sich um 2005 im Zuge des Web 2.0- Phänomens die webbasierte, kollaborative Echtzeitbearbeitung von Dokumenten. Insbesondere das Produkt Writely verzeichnete ein explosionsartiges Nutzerwachstum und wurde im März 2006 von Google übernommen (das spätere Google Docs , umbenannt in Google Drive ). Writely ermöglichte die gleichzeitige Bearbeitung des gesamten Dokuments, wobei Änderungen anderer Nutzer erst nach einer Abfrage des Servers durch das Client-Programm (etwa alle 30 Sekunden) sichtbar wurden. Eine weitere frühe webbasierte Lösung war JotSpotLive, das zeilenweise, simultane Bearbeitung nahezu in Echtzeit ermöglichte. [ 3 ] Nach der Übernahme der Muttergesellschaft JotSpot durch Google im November 2006 wurde die Website jedoch eingestellt. Google Sites wurde im Februar 2007 als Refactoring von JotSpot eingeführt [ 4 ] [ 5 ] [ 6 ] [ 7 ] , bietet aber nicht die Echtzeit-Mehrbenutzerfunktionen von JotLive. Die Projekte Synchroedit (Rich-Text) und MobWrite (Plain-Text) sind zwei neuere Open-Source-Ansätze, die versuchen, die Lücke im Bereich der browserbasierten Echtzeit-Zusammenarbeit zu schließen, erreichen aber insbesondere in großen Architekturen noch keine echte Echtzeit-Performance.

2009 begann Google mit dem Betatest von Google Wave , einer Echtzeit-Kollaborationsumgebung, die E-Mail und Instant Messaging langfristig ersetzen sollte. EtherPad wurde von Google übernommen und das EtherPad-Team in das Wave-Projekt integriert. Im August 2010 gab Google jedoch in seinem Blog [ 8 ] bekannt , die Entwicklung von Wave als eigenständiges Projekt aufgrund mangelnder Nutzerakzeptanz einzustellen. Nachdem Google den Quellcode von EtherPad im Dezember 2009 als Open Source veröffentlicht hatte , übernahm die Community die Entwicklung und entwickelte Etherpad Lite , eine komplett neue Version, die vollständig in JavaScript geschrieben ist und auf Node.js basiert . Ein weiteres bemerkenswertes Tool, das auf Technologie zur Transformation von Geschäftsprozessen basiert , ist CKEditor [ 9 ] . 2020 erlebte das Konzept einen Aufschwung, da Microsoft kürzlich sein Fluid Framework veröffentlichte , das auf einer neuartigen Total Order Broadcast-Technologie (TOB) anstelle von OT oder CRDT basiert [ 10 ] . Fluid ist derzeit frameworkunabhängig. Microsoft gibt an, dass es noch nicht für den Produktiveinsatz geeignet ist. [ 11 ]

Im Juni 2016 veröffentlichte Collabora Productivity Version 1.0 von Collabora Online , einer Open-Source-Online-Office-Suite auf Basis der LibreOffice- Technologie. Sie lässt sich mit wenigen Codezeilen in jede Website integrieren. Ein Software Development Kit (SDK) mit Beispielcode für die Integration ist in verschiedenen Sprachen verfügbar: Node.js , PHP , Python , ReactJS und .NET . Diese verfügen über API- Spezifikationen, die interoperable Integrationen mit anpassbaren Benutzeroberflächen ermöglichen. [ 12 ] [ 13 ] [ 14 ] Mit Collabora Online verbleiben die Dokumente auf dem Server, und alle Benutzer bearbeiten dasselbe Dokument gleichzeitig. So kann ein Dokument interaktiv bearbeitet werden, ohne dass die Eingaben anderer Benutzer verzögert angezeigt werden. Das Sperren von Absätzen in Textdokumenten entfällt. Die Suite ermöglicht die kollaborative Echtzeitbearbeitung von Textverarbeitungsdokumenten, Tabellenkalkulationen, Präsentationen, Zeichnungen und Vektorgrafiken.

Weitere Beispiele

Die gemeinsame Bearbeitung in Echtzeit ist online in Webanwendungen wie Microsoft Office im Web (ehemals Office Online ) möglich. Diese Anwendung unterstützt die gleichzeitige Online-Bearbeitung ( webbasiert ), die Microsoft als „Co-Authoring“ bezeichnet, von Word- Dokumenten, Excel -Tabellen , PowerPoint-Präsentationen und anderen Microsoft Office- Dokumenten, die auf Office.com , OneDrive oder SharePoint gespeichert sind . Auch Google Docs und andere Google Workspace - Anwendungen ermöglichen die gemeinsame Online-Bearbeitung von Textverarbeitungs- und anderen Dokumenten, die in Google Drive gespeichert sind . Die gemeinsame Bearbeitung in Echtzeit ist auch hybrid möglich, beispielsweise mit Power Sheet BI für Excel [ 15 ]. Dabei können Desktop-Software sowie webbasierte und mobile Apps offline, webbasiert und online genutzt werden. Die Synchronisierung erfolgt automatisch, und der Versionsverlauf ist jederzeit verfügbar. Im Jahr 2020 erlebte das Interesse an der Einbettung dieser Anwendungen in sichere Webanwendungen, insbesondere für geschäftliche Anwendungsfälle, einen erneuten Aufschwung. Microsoft und Vaadin übernahmen dabei die Führung mit spezialisierten Echtzeit-Kollaborations-Backends, die die Komplexität des synchronen Datenaustauschs in Echtzeit bewältigen und von Entwicklern über APIs genutzt werden können. [ 16 ] [ 17 ] Mozilla veröffentlichte 2013 die JavaScript-Bibliothek TogetherJS, die jede Webanwendung um die kollaborative Echtzeitbearbeitung mittels eines Nachrichtensystems und optional eines Transformationsalgorithmus zur Formularsynchronisierung erweitert. [ 18 ]

Vaadin Ltd., der Anbieter der Vaadin-Plattform, veröffentlichte im Oktober 2020 Version 1.0 seiner Collaboration Engine [ 19 ]. Ziel war es, Entwicklern die schnelle Integration von Echtzeit-Kollaborations- und Bearbeitungsfunktionen in beliebige Webanwendungen mit Java-Backends zu ermöglichen – und zwar mit nur wenigen Codezeilen (für spezifische Anwendungsfälle über die noch eingeschränkten High-Level-APIs) [ 20 ] . Aktuell unterstützt diese Funktion Java. Der Anbieter weist jedoch darauf hin, dass eine TypeScript-basierte API in Kürze verfügbar sein wird. Dies entspricht der kontinuierlichen Erweiterung der Vaadin-Plattform hin zur zukünftigen Unterstützung der TypeScript-basierten UI-Entwicklung durch das kommende Fusion-Framework [ 21 ] [ 22 ] .

Technische Herausforderungen

Die Komplexität von Echtzeit-Kollaborationslösungen resultiert aus der Kommunikationslatenz. Theoretisch wäre die Entwicklung eines Echtzeit-Kollaborationseditors nicht schwieriger als die eines Einzelbenutzereditors, wenn die Kommunikation unmittelbar erfolgen würde, da ein Dokument mithilfe eines Algorithmus ähnlich dem folgenden bearbeitet werden könnte:

  1. Fordern Sie vom Server ein Token zum Bearbeiten des Dokuments an.
  2. Warten Sie, bis der Server Ihnen mitteilt, dass Sie an der Reihe sind, das Dokument zu bearbeiten.
  3. Weisen Sie den Server an, wie das Dokument bearbeitet werden soll.
  4. Geben Sie das Token „Dokument bearbeiten“ frei.

Die Kommunikationsgeschwindigkeit ist jedoch durch die Netzwerklatenz begrenzt. Dies führt zu einem grundlegenden Dilemma: Benutzer benötigen ihre Änderungen sofort im Dokument, aber aufgrund der Kommunikationslatenz müssen diese Änderungen zwangsläufig in verschiedene Versionen des Dokuments eingefügt werden.

Ein Beispiel verdeutlicht dieses Problem. Angenommen, Bob und Alice haben ein Dokument, das das Wort „Mary“ enthält . Bob löscht das „M“ und fügt dann ein „H“ ein, sodass aus „Hary“ wird . Bevor Alice eine der Änderungen von Bob erhält, löscht sie das „r“ und anschließend das „a“, sodass daraus „ My“ wird. Sowohl Bob als auch Alice erhalten dann Änderungen, die auf Dokumentversionen angewendet wurden, die auf ihren Rechnern nie existierten .

Die Herausforderung bei der kollaborativen Echtzeitbearbeitung besteht also darin, genau herauszufinden, wie Änderungen von entfernten Benutzern angewendet werden können, die ursprünglich in Versionen des Dokuments erstellt wurden, die lokal nie existierten und die möglicherweise mit den lokalen Änderungen des Benutzers in Konflikt stehen.

Die fortschrittlichsten Lösungen beheben dieses Problem ohne Server, ohne Sperren (alle Benutzer können gleichzeitig alle Teile eines Dokuments bearbeiten) und unterstützen eine beliebige Anzahl von Benutzern (begrenzt nur durch die Ressourcen der Rechner). UNA und SubEthaEdit sind Beispiele für zwei Programme, die diesen Ansatz verfolgen.

Diese ausgefeilten Ansätze ermöglichen zwar eine optimale Benutzererfahrung , ein einfacher kollaborativer Editor lässt sich aber auch im Client-Server-Modell realisieren . In einem solchen Szenario übernimmt eine der Editorinstanzen beim Öffnen des Dokuments die Rolle des Kollaborationsservers. Dieser Server sorgt für die Synchronisierung der anderen Editoren, indem er die Netzwerklatenz ermittelt und als Zeitsynchronisationsserver fungiert . Er empfängt zeitgestempelte Benachrichtigungen über Änderungen, die andere Benutzer am Dokument vornehmen. Er ermittelt, wie sich diese Änderungen auf seine lokale Kopie auswirken, und sendet sie an alle Benutzer im Kollaborationspool. In manchen Modellen werden die Änderungen erst dann auf dem Client sichtbar, wenn eine offizielle Antwort vom Server eingegangen ist, selbst wenn die Änderungen lokal vorgenommen wurden.

Dieser Ansatz ist zwar deutlich weniger leistungsstark, ermöglicht aber eine grundlegende Zusammenarbeit zu relativ geringen Kosten. Daher ist er in Situationen mit begrenzten Rechenressourcen vorzuziehen. NetSketch ist ein Beispiel für ein Programm, das dieses Modell verwendet.

In der Vergangenheit haben Microsoft und IBM daran gearbeitet, ihre bestehenden Architekturen um Kollaborationsfunktionen zu erweitern. [ 23 ] Obwohl diese „Workspace“-Ansätze als Echtzeit-Kollaboration vermarktet werden, erfordern sie entweder die Sperrung von Dokumenten (sodass immer nur eine Person sie bearbeiten kann) oder den Abgleich widersprüchlicher Änderungen, was von den Nutzern im Allgemeinen als unbefriedigend empfunden wird.

Siehe auch

Referenzen

  1. ^ „Benutzerhandbuch“ . Archiviert vom Original am 21.02.2009.
  2. ^ Castagna, Rich. „Comdex 2001: Mobile Computing wird Realität“ . ZDNET . Abgerufen am 16. Mai 2025 .
  3. ^ Michael Arrington (27.09.2005). „JotSpot Live – Das perfekte Wiki?“ . TechCrunch .
  4. ^ Michael Arrington (27.02.2008). „Es dauerte 16 Monate, aber Google startet Jotspot neu“ . TechCrunch .
  5. ^ David Chartier (28.02.2008). „Erster Eindruck: Google startet JotSpot als Google Sites neu“ . Ars technica.
  6. ^ Dan Farber (27.02.2008). „JotSpot wird als Google Sites wiedergeboren“ . CNET News . Archiviert vom Original am 15.05.2008 . Abgerufen am 19.03.2008 .
  7. ^ Mark 'Rizzn' Hopkins (27.02.2008). „Google gibt JotSpot mit Google Sites endlich frei“ . Mashable .
  8. ^ Ina Fried und Josh Lowensohn (04.08.2010). „Google stellt Google Wave ein“ . CNET .
  9. ^ Sun Chengzheng; Sun David; Ng Agustina; Cai Weiwei; Cho Bryden (04.01.2020). „Reale Unterschiede zwischen OT und CRDT unter einem allgemeinen Transformationsrahmen zur Konsistenzerhaltung in Co-Editoren“ . Proceedings of the ACM on Human-Computer Interaction . 4 : 1–26 . arXiv : 1905.01518 . doi : 10.1145/3375186 .
  10. ^ „Häufig gestellte Fragen“ . fluidframework-docs.azureedge.net . Abgerufen am 2. November 2020 .
  11. ^ „Fluid Framework“ . fluidframework-docs.azureedge.net . Abgerufen am 2. November 2020 .
  12. ^ Gathoye, William (2016-06-02). „Collabora Productivity veröffentlicht Collabora Online 1.0 „Engine“ für Hoster und Cloud-Anbieter“ . Archiviert vom Original am 2016-08-07 . Abgerufen am 2021-09-02 .
  13. ^ „Collabora Online SDK“ . Archiviert vom Original am 1. März 2021. Abgerufen am 2. September 2021 .
  14. ^ Guoan, Xiao (10.12.2020). „Integration von Collabora Online mit Nextcloud auf Ubuntu mit Docker“ . LinuxBabe . Archiviert vom Original am 14.06.2020 . Abgerufen am 02.09.2021 .
  15. ^ „Kostenlose No-Code-App, KI-gestützte Analytik, Blockchain, Excel- und Web 3.0-Kollaborationsplattform“ . PowerSheet.ai . Abgerufen am 8. Juni 2020 .
  16. ^ „Fluid Framework“ . fluidframework-docs.azureedge.net . Abgerufen am 2. November 2020 .
  17. ^ „Collaboration Engine“ . Vaadin . Abgerufen am 2. November 2020 .
  18. ^ „Mozilla Labs: TogetherJS – Technologische Übersicht“ . togetherjs.com . Mozilla Labs . Abgerufen am 12.01.2023 .
  19. ^ „Lernen Sie Collaboration Engine kennen: Der einfachste Weg, kollaborative Webanwendungen zu erstellen“ . Vaadin . Abgerufen am 2. November 2020 .
  20. ^ „Collaboration Engine“ . Vaadin . Abgerufen am 2. November 2020 .
  21. ^ „Ein erster Blick auf die zukünftigen Echtzeit-Kollaborationsfunktionen von Vaadin“ . Vaadin . Abgerufen am 2. November 2020 .
  22. ^ „Einführung in Vaadin Flow und Fusion“ . Vaadin . Abgerufen am 2. November 2020 .
  23. ^ Microsoft Live Communications, archiviert am 05.03.2008 im portugiesischen Webarchiv. Als Echtzeit vermarktet, aber nicht Echtzeit im Sinne dieses Artikels.