WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

Réconciliation par consensus des mises à  jour des répliques partielles d'un document structuré.

( Télécharger le fichier original )
par Milliam Maxime Zekeng Ndadji
Université de Dschang - Master 2 2016
  

précédent sommaire suivant

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

Abstract

The work presented in this master thesis belongs to CSCW (Computer Supported Cooperative Work) research field; precisely, it is a contribution to the cooperative editing of documents and its goal is, the production of an algorithm that can merge partial replicas of a structured document. In fact, in an asynchronous cooperative editing workflow of a structured document, each of the co-authors receives in the different phases of the process, a copy of the document in which he inserts his contribution. Sometimes, to increase confidentiality and cooperation, this copy may only be a partial replica containing just some parts of the (global) document which are of demonstrated interest for the considered co-author. Note that some parts may interest more than one co-author; those parts will therefore be accessible and editable concurrently. When comes the synchronization time (at the end of a phase of the process for example), a merging of all contributions of all authors in a single document should be made. Due to the asynchronism of edition and to the potential existence of the document parts offering concurrent access, conflicts may arise when merging and make partial replicas unmergeable in their entirety: those replicas are inconsistent or in conflict. We propose in this master thesis, a merging approach (based on the cooperative edition model presented in [BTT08, BTT07, TT09]) said by consensus of such partial replicas using tree automata. Specifically, from the updated partial replicas, we build a tree automaton that accepts and/or generates exactly the maximum prefixes containing no conflict of partial replicas merged. These maximum prefixes are the consensus documents.

Keywords : Structured documents, Worflow of cooperative edition, Merging partial replicas, Conflict, Consensus, Tree automata, Automata product, Lazy evaluation, TinyCE v2.

1

Introduction

Sommaire

Le contexte du travail 1

La problématique étudiée 2

Le travail réalisé 3

Organisation du manuscrit 3

Le contexte du travail

La coopération et la collaboration apparaissent de nos jours comme des valeurs essentielles pour les entreprises, les différentes instances municipales et gouvernementales, les établissements de santé, les grandes institutions d'enseignement et autres... Réunir plusieurs acteurs (spécialistes) autour d'un objectif commun est donc devenu un véritable challenge [Gir14]. C'est dans ce contexte que le Travail Coopératif Assisté par Ordinateur (TCAO ou CSCW - Computer Supported Cooperative Work - en anglais) a vu le jour et a évolué. Le domaine du CSCW a favorisé la mise sur pied de nombreux logiciels (group-ware ou systèmes de CSCW) et de plusieurs approches scientifiques pour la résolution des problèmes causés par le CSCW : ces problèmes sont liés essentiellement aux contraintes d'espace (la situation géographique de chaque acteur) et de temps (le mode de communication entre les acteurs). Les systèmes de CSCW permettent de mettre en relation plusieurs acteurs répartis dans le temps, l'espace et à travers les organisations afin que ces derniers coordonnent leurs actions pour l'accomplissement d'une tâche précise.

Un exemple très présent de CSCW est l'édition coopérative des documents. En effet, on rencontre de plus en plus le scénario des auteurs situés sur des sites géographiquement éloignés qui se coordonnent pour éditer de façon asynchrone un même document (c'est le cas par exemple de plusieurs chercheurs rédigeant un même article de recherche). D'autres cas de CSCW reposent parfois sur l'édition coopérative des documents; puisque ceux ci (les documents) sont de plus en plus utilisés pour l'échange des informations entre applications. Les documents constituent de ce fait, une véritable aide à la coordination.

Les documents électroniques peuvent être répartis en trois groupes : les documents linéaires, les documents semi-structurés et les documents structurés [Bon98]. Nous nous intéressons ici aux documents structurés.

Les documents structurés

Ce sont des documents qui présentent une structure régulière définie par un modèle générique appelé modèle de document : ce sont généralement des grammaires (modèles

La problématique étudiée 2

Mémoire - ZEKENG NDADJI Milliam Maxime LIFA

grammaticaux). La structure régulière et l'interopérabilité de tels documents en ont fait de véritables outils d'échange entre applications hétérogènes ou non. Les documents structurés facilitent la coopération et la coordination des actions de plusieurs personnes. Toutes ces caractéristiques couplées à la puissance toujours croissante des réseaux de communication en terme de débit et de sûreté, ont révolutionné la façon d'éditer de tels documents. On est passé du modèle classique, dans lequel un auteur édite son document en local, à un modèle selon lequel plusieurs co-auteurs participent à l'édition asynchrone d'un même document. On peut imaginer plusieurs scénarios pour la réalisation de ce modèle d'édition en ce qui concerne les documents structurés.

L'édition coopérative des documents structurés

Le processus d'édition coopérative d'un document structuré est enclenché par l'un des co-auteurs; en effet, il crée sur le serveur central, un document initial conforme à un modèle donné. Ensuite, ledit document est distribué à tous les co-auteurs pour qu'ils y insèrent, sur leurs sites respectifs (en local), leurs contributions (phase de distribution). Une fois que tous les différents co-auteurs ont édité leurs copies respectives (conformément à un modèle local) du document, il faut fusionner toutes leurs contributions, pour obtenir un document global : on parle de synchronisation. Le document global obtenu, pourra éventuellement être redistribué pour la suite de l'édition.

L'édition coopérative des documents structurés est un problème d'actualité en raison de la forte utilisation de ces derniers dans les systèmes informatiques modernes. Une approche d'édition coopérative asynchrone des documents structurés [BTT08, BTT07, TT09] consiste, pour des raisons de confidentialité, à associer une"vue" à chaque co-auteur. La vue d'un co-auteur donné indique ainsi, les parties du document auxquelles ce dernier a accès. De ce fait, pour chaque co-auteur, le document global est répliqué suivant sa vue (on dit qu'il est projeté), et la copie présente sur chaque site est donc une réplique partielle du document global. Quand arrive un point de synchronisation, on réalise la projection inverse de chaque réplique partielle, pour obtenir des documents conformes au modèle global, puis on fusionne les documents ainsi obtenus en un document global.

La fusion des documents est une problématique assez ancienne qui a déjà été étudiée dans plusieurs contextes : le contexte des documents structurés XML [Ask94, CSGM, CSR+, LF02, Lin04, Man01], le contexte des bases de données, le contexte des programmes informatiques [Men02]... En ce qui concerne l'édition coopérative des documents structurés, il existe une approche de fusion des répliques partielles basée sur les automates d'arbres [BTT08, BTT07, TT09].

La problématique étudiée

Pendant la fusion des documents structurés, on recherche un document global intégrant les mises à jour de tous les co-auteurs. À ce niveau, il peut surgir deux problèmes :

L'ambiguïté : on peut trouver plusieurs documents satisfaisant ce critère de recherche. Ce problème est en général dû à un défaut de conception du modèle de document et une bonne analyse pourrait permettre d'y remédier.

Les conflits : les modifications portées par les différents co-auteurs peuvent ne pas être compatibles. Cet état de chose rend impossible l'obtention d'un document global qui intègre les mises à jour de tous les co-auteurs. Pour éviter (anticiper) ce problème, on pourrait contrôler les éditions locales afin d'assurer la cohérence et ainsi, la compatibilité des

L'organisation du manuscrit 3

Mémoire - ZEKENG NDADJI Milliam Maxime LIFA

répliques partielles. On pourrait aussi, à posteriori, réconcilier les différentes répliques partielles : c'est à dire remettre en cause certaines actions d'édition pour rendre les répliques fusionnables.

Le problème que nous étudions dans ce mémoire est celui de la réconciliation des répliques partielles d'un document structuré; plus précisément nous voulons proposer un algorithme capable de détecter et d'annuler les actions d'édition menant aux conflits puis de fusionner les nouvelles répliques obtenues.

Le travail réalisé

Un document en cours d'édition est représenté par un arbre contenant, potentiellement au niveau des feuilles, des noeuds ouverts ou bourgeons. Éditer un document, consiste à développer (remplacer) un ou plusieurs de ses bourgeons par un ou plusieurs sous-arbres conformément au modèle de document.

Fusionner consensuellement les mises à jour t1 ···tn de n répliques partielles d'un document t, consiste à trouver un document tc, conforme au modèle de document (appelé modèle global dans la suite), intégrant tous les noeuds des ti non en conflit et dans lequel, tous les noeuds en conflit sont remplacés par des bourgeons. L'algorithme de fusion consensuelle présenté dans ce mémoire est une adaptation de celui de fusion proposé dans [BTT08] qui ne gère pas les conflits. Techniquement, la démarche permettant d'obtenir les documents faisant partie du consensus est la suivante:

1. Pour chaque mise à jour tma j

i d'une réplique partielle, nous associons un automate d'arbre à états de sortie (i) reconnaissant les arbres (conforme au modèle global) dont tma j

i est une projection.

2. L'automate consensuel (sc) engendrant les documents du consensus est obtenu en effectuant un produit synchrone des automates (i) au moyen d'un opérateur commutatif noté ØÙ : (sc) = ØÙ i (i) que nous définissons.

L'automate consensuel obtenu est celui qui produit les documents du consensus : c'est à dire les préfixes maximaux sans conflits de la fusion des documents issus des différentes expansions des diverses répliques partielles mises à jour.

Nous avons aussi proposé une implémentation en Haskell de notre algorithme, puis nous avons construit un prototype de réconciliateur graphique en Java pour pouvoir réaliser nos tests.

L'organisation du manuscrit

La suite de ce mémoire est structurée en quatre chapitres et deux annexes organisés comme suit:

Chapitre 1 - Notions d'édition coopérative et de conflits. Nous présentons ici la notion de travail coopératif et les notions qui lui sont connexes (groupware, workflow...). Nous nous focalisons ensuite sur la notion d'édition coopérative des documents (les types de documents édités, la détection des conflits, la résolution des conflits) et sur le rôle et la circulation de ceux-ci dans les procédures d'entreprise.

Chapitre 2 - L'édition coopérative des documents structurés. Dans ce chapitre, nous présentons une approche d'édition coopérative et les outils formels issus de la littérature (grammaires algébriques, automates d'arbre...) que nous utilisons pour la spécification et

L'organisation du manuscrit 4

Mémoire - ZEKENG NDADJI Milliam Maxime LIFA

la manipulation des documents structurés, puis nous introduisons de façon plus formelle et en accord avec [BTT08, BTT07, TT09] les définitions relatives aux notions de vues, de projection, de projection inverse et de fusion des répliques partielles d'un document structuré.

Chapitre 3 - Fusion consensuelle des mises à jour des répliques partielles. Nous présentons dans ce chapitre notre solution au problème de la réconciliation des répliques partielles d'un document structuré.

Chapitre 4 - Un prototype d'éditeur coopératif désynchronisé. Dans ce chapitre, nous présentons TinyCE v2 (a Tiny Cooperative Editor version 2, prononcer"taï-ni-ci-i"), un prototype expérimental d'éditeur coopératif désynchronisé inspiré de TinyCE (prononcer "tennesse") [TT10] et qui nous permet de mettre en oeuvre les algorithmes présentés dans ce travail et d'en faire la démonstration.

Conclusion générale. Nous réalisons le bilan de notre travail et nous répertorions quelques perspectives d'amélioration de ce dernier.

Annexe A - Un autre exemple complet de fusion consensuelle. Dans cette annexe, nous illustrons notre algorithme de fusion consensuelle en l'appliquant à un workflow d'édition sans conflit et dont les répliques partielles mises à jour ne sont pas forcément des documents clos.

Annexe B - Quelques fonctions Haskell pour le calcul des consensus. Nous donnons le code Haskell des algorithmes qui ont été présentés ainsi que quelques commentaires nécessaires pour une bonne compréhension.

5

précédent sommaire suivant






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy








"Piètre disciple, qui ne surpasse pas son maitre !"   Léonard de Vinci