Préservation des Intentions et Maintien de la Cohérence des Données Répliquées en Temps Réel
Résumé en français :
L’édition collaborative en temps réel permet à plusieurs utilisateurs d’éditer un même document simultanément grâce à des outils informatiques. Les applications d’édition collaborative en temps réel, telles GoogleDocs ou Etherpad, répliquent les données éditées chez chaque utilisateur, pour garantir une édition des données réactive et possible à chaque instant. Les conflits d’édition sont fréquents, et doivent être gérés automatiquement par l’application. L’application doit faire converger toutes les répliques vers un document commun, qui contient toutes les modifications exprimées par tous les utilisateurs.
Les algorithmes actuels fonctionnent de manière satisfaisante pour des types de données simples (des documents linéaires) et des possibilités d’édition minimes (insérer ou supprimer du texte). Lorsque le document est plus complexe (document XML, texte structuré), ou qu’il peut être édité avec un ensemble élargi d’opérations (déplacement de texte, styliser du texte), lors de la résolution de conflits d’édition, les algorithmes échouent à proposer un contenu qui convienne aux utilisateurs. Les intentions des utilisateurs ne sont pas respectées. L’objectif de cette thèse est de proposer des algorithmes d’édition collaborative en temps réel qui respectent mieux les intentions des utilisateurs que les algorithmes actuels.
La première contribution de cette thèse est un algorithme basé sur l’approche des transformées opérationnelles (OT), qui permet d’éditer et de styliser du texte hiérarchisé tout en respectant les intentions de style, de déplacement ou d’insertion de texte ou de paragraphes.
La deuxième contribution est basée sur l’approche des modèles de données répliquées commutatives (CRDT), et propose un algorithme capable de respecter l’intention de mise à jour d’un élément, tout en améliorant les performances globales de l’approche par rapport aux autres CRDTs.
Abstract in English :
Real-time collaborative editors, like GoogleDocs or Etherpad, allow the simultaneous edition of a document by several users. These applications need to replicate the edited document, for the so called real-time purpose of permitting a fast and reactive editing by any user at any time. Editing conflicts frequently occur, and must be automatically handled by the application, in order to provide every users with the same copy of the document, containing every modifications issued.
Most of current real-time collaborative editing algorithms were designed for simple data structures, like linear text, and simple editing ways, like inserting or removing a character only. These algorithms fail to offer an appropriate editing conflict resolution when used with a complex data structure, like XML, or with complex operations, like moving some text or adding some style. Copies are the same but users’ intentions are not preserved. The goal of this thesis is to design new real-time collaborative editing algorithms that ensure a better preservation of users’ intentions.
The first contribution of this thesis is an algorithm based on the Operational Transformation approach (OT). Our contribution is designed to handle rich text document (with stylized text and paragraphs) and to preserve the intentions of a set of high editing level operations (add style, merge paragraphs…).
The second contribution uses the Commutative Replicated Data Types approach (CRDT), and offers an algorithm which preserves the update intention, while improving global performance of the approach when dealing with large blocs of data.