Dies ist weniger eine Frage mit einer einfachen, praktischen Antwort als vielmehr eine Frage zur Förderung der Diskussion über das Thema Echtzeit-Datenaustausch.
Ich möchte mit einem Beispiel beginnen:
Google Wave ist im Kern eine asynchrone Echtzeit-Datensynchronisationsmaschine. Wave unterstützt (oder plant, dies zu tun) die gleichzeitige (Echtzeit-) Zusammenarbeit an Dokumenten, die unverbundene (Offline-) Bearbeitung von Dokumenten, die Lösung von Konflikten, den Verlauf und die Wiedergabe von Dokumenten mit Zuordnung und die Serverföderation.
Ein zentraler Bestandteil von Wave ist die Operational Transformation Engine: http://www.waveprotocol.org/whitepapers/operational-transform
Die OT-Engine verwaltet den Zustand der Dokumente. Änderungen zwischen den Clients werden zusammengeführt, und jeder Client hat zu jeder Zeit eine vernünftige und konsistente Ansicht des Dokuments; das endgültige Dokument ist schließlich zwischen allen verbundenen Clients konsistent.
Meine Frage ist: Ist dieses System abstrakt oder allgemein genug, um als Bibliothek oder generisches Framework verwendet werden, auf denen Web-Anwendungen, die Echtzeit, asynchrone Zustand in jedem Client synchronisieren zu bauen?
Wird das Wave-Protokoll von aktuellen Webanwendungen (außer dem Google-Client) direkt verwendet? Wäre es sinnvoll, es direkt für die allgemeine Zustandssynchronisation in einer Webanwendung zu verwenden?
Welche anderen vorhandenen Bibliotheken oder Frameworks würden Sie bei der Entwicklung einer solchen Webanwendung verwenden?
Wie viel Code in einer solchen Anwendung könnte Domänen-spezifische Logik im Vergleich zu generischen Zustand Synchronisation Logik sein? Oder anders ausgedrückt: Wie durchlässig könnten die Abstraktionen der Zustandssynchronisierung sein?
Kommentare und Diskussionen sind willkommen!