Hauptseite > Lexikon-Begriff > Operational Transformation
Operational Transformation
aus dem PadKompendium. Kategorie: Lexikon-Begriff.
Operational Transformation (OT) ist ein Algorithmus zur Konfliktauflösung in Echtzeit-Editoren. Lokal erzeugte Edits werden gegeneinander transformiert, sodass alle Clients zur selben Dokument-Repräsentation konvergieren.
Operational Transformation ist ein klassischer Ansatz, um gleichzeitige Bearbeitungen in einem geteilten Dokument konsistent zu halten. Statt das ganze Dokument zwischen Clients zu synchronisieren, werden nur Operationen (Einfügung, Löschung, Format-Änderung an einer Position) übertragen. Treffen Operationen zweier Clients aufeinander, transformiert ein Algorithmus diese gegeneinander, sodass ihre Anwendung in beliebiger Reihenfolge denselben Zustand erzeugt.
Beispiel
Zwei Personen tippen gleichzeitig am selben Dokument: Person A fügt an Position 5 das Zeichen „X” ein, Person B löscht zur selben Zeit Position 7. Wenn der Server B nach A verarbeitet, muss die Löschung um eine Position verschoben werden — Bs Position 7 ist nach As Einfügung Position 8 geworden. Diese Transformations-Regeln werden für alle Operations-Paare definiert.
Garantien
OT-Implementierungen versprechen drei Eigenschaften:
- Konvergenz — alle Clients landen am selben Zustand.
- Kausalität — eine Operation wird erst angewendet, wenn alle Operationen, von denen sie abhängt, eingetroffen sind.
- Intentions-Erhaltung — die Wirkung einer Operation entspricht der Absicht der Autorin, auch nach Transformation.
Die dritte Eigenschaft ist die schwierigste — viele frühe OT-Veröffentlichungen hatten subtile Bugs an dieser Stelle.
Verbreitung
OT lief produktiv in Google Docs ab 2007 und in Etherpad ab 2008. Beide Implementierungen nutzen ein zentrales Server-Modell, in dem der Server die kanonische Reihenfolge der Operationen festlegt.
Ablösung durch CRDT
Seit etwa 2015 verbreitet sich der konkurrierende Ansatz CRDT (siehe eigener Eintrag). Beide Verfahren haben Stärken: OT ist platzsparend und einfach an zentrale Server gekoppelt; CRDT braucht keine globale Reihenfolge und ist daher gut für offline-fähige und peer-to-peer-Editoren.