Cohérence des données dans les environnements d édition collaborative



Documents pareils
Réplication optimiste et cohérence des données dans les environnements collaboratifs répartis

Réplication des données

Cohérence de Données en Environnement Mobile

Systèmes de gestion de code source

Differential Synchronization

Évaluation de l occupation mémoire des CRDTs pour l édition collaborative temps-réel mobile 1

Élaborer une production dans un contexte collaboratif. Michel Futtersack, Faculté de Droit, Université Paris Descartes, Sorbonne Paris Cité

Conception Exécution Interopérabilité. Déploiement. Conception du service. Définition du SLA. Suivi du service. Réception des mesures

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

Les systèmes de gestion de version

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

Cours Bases de données

Rappels sur les suites - Algorithme

Communiquer avec un ou plusieurs interlocuteurs. Michel Futtersack, Faculté de Droit, Université Paris Descartes, Sorbonne Paris Cité

Outils de développement collaboratif

Systèmes et algorithmes répartis

SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles)

Conception des systèmes répartis

Edition collaborative massive sur réseaux Pair-à-Pair

Edition collaborative des documents semi-structurés

Urbanisme du Système d Information et EAI

Bases de données et sites WEB Licence d informatique LI345

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Base de données II Module 3b

Mise en œuvre des serveurs d application

Outlook Présentation.

Manuel d utilisation de l outil collaboratif

Les outils collaboratifs : bonnes pratiques, bons réflexes. Christine LOURDELET et Hélène TELLITOCCI

«Les documents référencés ci-dessus étant protégés par les droits d auteur et soumis à la déclaration au Centre Français d exploitation du droit de

Améliorer le contenu d une encyclopédie collaborative. Faire preuve d esprit critique

D5 Travailler en réseau, communiquer et collaborer. D5 Travailler en réseau, communiquer et collaborer

Objet du document. Version document : 1.00

Algorithmes de Transmission et de Recherche de l Information dans les Réseaux de Communication. Philippe Robert INRIA Paris-Rocquencourt

Les transactions 1/46. I même en cas de panne logicielle ou matérielle. I Concept de transaction. I Gestion de la concurrence : les solutions

Notes de cours : bases de données distribuées et repliquées

Qualité du logiciel: Méthodes de test

Un modèle générique de Garbage Collection pour les éditeurs collaboratifs basé sur l approche TO dans les environnements P2P et mobiles

Informations sur l utilisation du webmail du CNRS. Webmail du CNRS. Manuel Utilisateur

Découverte du tableur CellSheet

Model checking temporisé

PROGRAMME DU CONCOURS DE RÉDACTEUR INFORMATICIEN

Chapitre 4 : Exclusion mutuelle

Groupe Eyrolles, 2004 ISBN :

Portail de Management de Visioconférence As a Service

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Réseaux Locaux. Objectif du module. Plan du Cours #3. Réseaux Informatiques. Acquérir un... Réseaux Informatiques. Savoir.

Module BDR Master d Informatique (SAR)

Algorithmique répartie

Contrôle de versions et travail collaboratif. Organisation du travail collaboratif. Organisation du travail collaboratif

TP JAVASCRIPT OMI4 TP5 SRC

Les BRMS Business Rules Management System. Groupe GENITECH

Comprendre «le travail collaboratif»

TCAO. *CSCW = Computer Supported Cooperative Work

Cours 1 : La compilation

Cours de Systèmes d Exploitation

I - PUISSANCE D UN POINT PAR RAPPORT A UN CERCLE CERCLES ORTHOGONAUX POLES ET POLAIRES

Cours Bases de données 2ème année IUT

Etude d Algorithmes Parallèles de Data Mining

IN Tech - 12 janvier 2010 Open Source et innovation : le Libre comme méthodologie de développement

Partage avec collaboration Important : Ce type de partage exige la connexion à un serveur CmapServer.

Les application Collaboratifs dans les entreprises

FAMILLE EMC RECOVERPOINT

MANUEL D UTILISATION DE LA SALLE DES MARCHES APPEL D OFFRES OUVERT ACCES ENTREPRISES. Version 8.2

Messagerie asynchrone et Services Web

0.1 Mail & News : Thunderbird

Espace de stockage intermédiaire. Compte de Messagerie. Communication «Asynchrone» «Compte de Messagerie»

GOOGLE, OUTILS EN LIGNE

Algorithmique et structures de données I

STAGE IREM 0- Premiers pas en Python

FAITES DU PAIEMENT UN VECTEUR DE PERFORMANCE POUR VOS VENTES ONLINE ET MULTICANALES.

Concurrence et Conscience de Groupe dans l Édition Collaborative sur

Cours d algorithmique pour la classe de 2nde

Initiation à l algorithmique

Le travail collaboratif et l'intelligence collective

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

ROUTEURS CISCO, PERFECTIONNEMENT

Déjeuner EIM Enterprise Information Management. Mardi 16 novembre 2010 Restaurant l Amourette Montreuil Thomas Dechilly CTO Sollan

UE 8 Systèmes d information de gestion Le programme

Bases de données avancées Concurrence d'accès et reprise

Algorithmique et Programmation, IMA

Systèmes de fichiers répartis

OmniVista 2700 Application complémentaires pour l OmniVista 2500 Network Management

Cours de Base de Données Cours n.12

Steganos présente Security Suite 2007, son incontournable suite de sécurité pour PC.

Présentation des technologies pour la collaboration Étude des logiciels pour les groupes (groupware)

Résolution de systèmes linéaires par des méthodes directes

MANUEL UTILISATEUR BALADEUR SANTÉ AUXILIAIRES MÉDICAUX ET SAGES-FEMMES C.D.C 1.40

Objectif : Passer de l analyse métier et fonctionnelle à la définition des applications qui

Bien architecturer une application REST

Méthodes et outils employés pour développer des logiciels libres

Cours d Analyse. Fonctions de plusieurs variables

Probabilités. Rappel : trois exemples. Exemple 2 : On dispose d un dé truqué. On sait que : p(1) = p(2) =1/6 ; p(3) = 1/3 p(4) = p(5) =1/12

Formation logiciel ZSH Gestion commerciale. F.Krebs. Sommaire :

Gestionnaire de réseaux Linux et Windows

Utiliser ma messagerie GMAIL

Manuel d'utilisation du client VPN Édition 1

Gestion répartie de données - 1

Mémoire présenté par. Faiza BENACER. En vue de l'obtention du diplôme de. Magister en informatique THÈME. Soutenue publiquement devant le jury:

Introduction à la B.I. Avec SQL Server 2008

Transcription:

1 / 66 Cohérence des données dans les environnements d édition collaborative Pascal Molli Nancy-Université Habilitation à diriger des recherches 26 avril 2007

2 / 66 Introduction Édition Collaborative : Produire des documents à plusieurs en étant distribué dans le temps, l espace et à travers les organisations. Production de code avec des équipes virtuelles (SourceForge), production de pages wiki (Wikipedia), écriture de manuels... Fournir des modèles et des outils pour rendre la coopération efficace...

3 / 66 Introduction Partager les données de FTP au Gestionnaire de configuration... Communiquer Mail, Messagerie instantanée, visio-conférence, partage d application... Se Coordonner Procédés, de la TodoList au Workflow, Conscience de groupe Qui fait quoi? quand? comment? pourquoi? qu ont-ils fait pendant mon absence? Que vont ils faire?

4 / 66 Problèmes scientifiques Gestion des données partagées dans un environnement collaboratif: Données critiques en accès Write/Write... Risque de corruption des données, risque de pertes de mise-à-jours Risque de travail sur données obsolètes Risque de modifications en aveugle (travail concurrent inutile)... 1 système collaboratif = 1 système distribué avec accès concurrents Cohérence des données : Quels critères de cohérence? Quels protocoles? Comment gérer le facteur humain?

Plan de la présentation 5 / 66 1 Introduction 2 État de l art Éviter les conflits Réplication optimiste 3 Coo-sérialisabilité 4 Transformées opérationnelles SAMS SO6 VOTE Tombstone Transformation Functions 5 WOOT 6 Conclusions et Perspectives Annulation de groupe Gestion de conflits en P2P Perspectives générales...

État de l art Éviter les conflits... Verrouillage partiel ou complet... travail sur données disjointes... 6 / 66 Mail + Données disjointes... Turn taking: Netmeeting en synchrone. Partage d application et passage du jeton entre les utilisateurs connectés. Pas de support asynchrone... Liste de diffusion en asynchrone. Chaque personne modifie à son tour le document et passe au prochain destinataire. Pas de parallélisation... Verrouillage. L utilisateur ou le système verrouille la zone qu il est en train d éditer. Pas de modification concurrente sur cette zone. Période de verrouillage non prévisible...

7 / 66 Approche réplication optimiste Convergence... Chaque intervenant travaille sur une copie... Quand le système est au repos toutes les copies sont identiques... Multi-version, fusion d état... Copier-modifier-fusionner... (SCM), Toutes les 10s avec Google doc... Sérialisation et gestion de conflits... Undo/do/redo (Bayou)... Approche base de données multi-maître ou transactions longues Résolution de contraintes (IceCube)... Transformées opérationnelles...

Plan de la présentation 8 / 66 1 Introduction 2 État de l art Éviter les conflits Réplication optimiste 3 Coo-sérialisabilité 4 Transformées opérationnelles SAMS SO6 VOTE Tombstone Transformation Functions 5 WOOT 6 Conclusions et Perspectives Annulation de groupe Gestion de conflits en P2P Perspectives générales...

9 / 66 Coo-Sérialisabilité Les utilisateurs accèdent aux données à travers des transactions... Étendre la sérialisabilité pour supporter des exécutions non-sérialisable... Certaines opérations Read/Write ne servent qu à coopérer et ne contribuent pas au résultat final opérations ignorées Si Les opérations restantes sont sérialisables : OK Sinon, on groupe les transactions qui doivent converger vers un résultat commun...

10 / 66

11 / 66 Limitations Dans le cas coopératif: Oblige les transactions à converger pour terminer... Finalement Sérialisabilité Convergence Changer de monde : Réplication optimiste et convergence... Choix des transformées opérationnelles : Indépendant du type des données (vs approche Bd Multi-master), Gestion de la cohérence sans site central (vs Bayou ou IceCube), Cadre théorique fort (vs Gestionnaire de conf).

Plan de la présentation 12 / 66 1 Introduction 2 État de l art Éviter les conflits Réplication optimiste 3 Coo-sérialisabilité 4 Transformées opérationnelles SAMS SO6 VOTE Tombstone Transformation Functions 5 WOOT 6 Conclusions et Perspectives Annulation de groupe Gestion de conflits en P2P Perspectives générales...

13 / 66 Transformées opérationnelles (OT) Modèle de réplication optimiste issu des éditeurs temps-réel considère n sites, chacun avec une réplique... une opération est : 1 exécutée localement, 2 diffusée aux autres sites, 3 reçue sur un site, 4 transformée par rapport aux op concurrentes, 5 re-exécutée.

2 composants : un algorithme d intégration : diffusion, intégration générique : GOT, GOTO, SOCT2,3,4,5, Adopted, COT des fonctions de transformation dépendant des types données. Correction Les algorithmes garantissent causalité et convergence si les fonctions de transformation vérifient au moins C 1 pour SOCT4, COT et GOT: C 1 : op 1 T(op 2, op 1 ) op 2 T(op 1, op 2 ) et aussi C 2 pour GOTO, SOCT2,3, adopted...: C 2 : T(op 3, op 1 T(op 2, op 1 )) = T(op 3, op 2 T(op 1, op 2 )) 14 / 66

15 / 66 Problématique : Convergence Intégration incorrecte d opérations concurrentes... Lorsque le système est stable, les répliques doivent converger Site 1 : user 1 Site 2 : user 2 efect efect Op 1 Op 2 Ins(2,f) Ins(6,s) effect efects Ins(6,s) Ins(2,f) effecst effects

tion(op 1, O i ) = Intention(T (op 1, op 2 ), O i+1 ) Introduction État de l art Coo-sérialisabilité Transformées opérationnelles WOOT Conclusions et Perspectives Transformer les opérations... Site 1 : user 1 Site 2 : user 2 efect efect Op 1 Op 2 Ins(2,f) Ins(6,s) effect T(Ins(6,s),Ins(2,f))= efects Ins(7,s) Op 2 Ins(7,s) Ins(2,f) T(Ins(p 1, c 1 ), Ins(p 2, c 2 )) : if (p 1 < p 2 ) return Ins(p 1, c 1 ) else return Ins(p 1 + 1, c 1 ) endif effects effects T(op. 2.13 Intégration 2 :opération, op avec transformation 1 :opération) = op 2 op 1 et op 2 concurrentes, définies sur le même état S op 2 a fonction de transformation même effets de que la op 2, mais sur l état S.op 1 16 / 66 figure 2.14.

17 / 66 OT : Convergence - condition C 1 Site 1 Site 2 op1 op2 op2' op1' op 1 T(op 2, op 1 ) op 2 T(op 1, op 2 )

18 / 66 OT : Convergence - condition C 2 Site 1 Site 2 Site 3 op1 op2 op3 op2' op1' op3' op3'' T(op 3, op 1 T(op 2, op 1 )) = T(op 3, op 2 T(op 1, op 2 ))

19 / 66 C 1 et/ou C 2 SOCT4 et COT ne nécessite que C 1 mais force l utilisation d un ordre total continu: site central ou algorithmes de consensus GOT nécessite un ordre total discontinu mais utilise la stratégie du undo/do/redo. Pas performant (et peut-être pas juste aussi...) GOTO, SOCT2,3, Adopted nécessite C 2 mais ne requiert aucun ordre spécial. Pas de sites centraux, pas de consensus...

20 / 66 OT : Problèmes Conception et vérification des fonctions de transformation écriture de T pour chaque couple d opérations T(ins, ins), T(ins, del), T(del, ins), T(del, del) vérification des conditions C 1 et C 2 combinatoire (> 100 cas pour une chaîne de caractères), processus itératif, tâche répétitive et laborieuse

21 / 66 Objectifs Utiliser OT pour faire autre chose que des éditeurs temps réel Faire des éditeurs multi-synchrones... Faire des gestionnaires de configuration... Faire des synchroniseurs...

Plan de la présentation 22 / 66 1 Introduction 2 État de l art Éviter les conflits Réplication optimiste 3 Coo-sérialisabilité 4 Transformées opérationnelles SAMS SO6 VOTE Tombstone Transformation Functions 5 WOOT 6 Conclusions et Perspectives Annulation de groupe Gestion de conflits en P2P Perspectives générales...

23 / 66 SAMS : Éditeur Synchrone, Asynchrone, Multi-Synchrone [2001] Basé sur SOCT4+Transformées vérifiant C 1. SAMS : Utiliser le meilleurs mode de travail au meilleur moment pour tout ou partie du groupe... Pouvoir opter à tout moment pour un mode de travail synchrone ou asynchrone... Toujours une bonne idée aujourd hui... : Google docs avec support deconnecté (FireFox3) = éditeur SAMS

24 / 66 Pol switch to synchronous mode

Plan de la présentation 25 / 66 1 Introduction 2 État de l art Éviter les conflits Réplication optimiste 3 Coo-sérialisabilité 4 Transformées opérationnelles SAMS SO6 VOTE Tombstone Transformation Functions 5 WOOT 6 Conclusions et Perspectives Annulation de groupe Gestion de conflits en P2P Perspectives générales...

SO6 : un gestionnaire de configuration Un outil de gestion de configuration reposant OT Centralisé car C 1 +ordre total [Vidot00] estampilleur commit update update update client 1 client 4 client 2 client 3 26 / 66 Des fonctions de transformations pour : Système de fichiers, texte et XML. Extensible à de nouveaux types de données Distribué commercialement et de façon libre

27 / 66 So6 et Dataflow

28 / 66 Limitations So6 Topologie en arbre... Sinon, la convergence peut être violée. L ordre n est plus total continu. Pour n importe quelle topologie : C 2, Mais problèmes de preuves.

Plan de la présentation 29 / 66 1 Introduction 2 État de l art Éviter les conflits Réplication optimiste 3 Coo-sérialisabilité 4 Transformées opérationnelles SAMS SO6 VOTE Tombstone Transformation Functions 5 WOOT 6 Conclusions et Perspectives Annulation de groupe Gestion de conflits en P2P Perspectives générales...

30 / 66 VOTE : Approche 42 Chapitre 3. Conception et validation de fonctions de Vérification formelle et automatique = sans erreur de calcul = plus rapide Entrée : Conditions C 1 et C 2, Fonctions T Sortie : OK, KO + contre-exemple ajout d'une opération début spécification formelle (syntaxe VOTE) traduction spécification formelle (syntaxe SPIKE) vérification automatique SPIKE succès spécification prouvée echec correction contre-exemple fin

31 / 66 VOTE : Contre-exemple [Ellis 89] 56 Chapitre 3. Conception et validation de fo Operations : op1 = Ins(p1,c1,pr1) op2 = Del(p2,pr2) Conditions : p1 < length(u5) and p2 <= length(u5) and p1 = p2 and pr1 <> pr2 Site 1 : user 1 abc axbc Site 2 : user 2 abc Op 1 Op 2 Ins(2,x,1) Del(3,2) Del(2,2) ac Op 2 Op 1 Ins(1,x,1) axc xac

32 / 66 VOTE : Résultats Une approche pour concevoir et vérifier T : Retrouver les contre-exemples pour [Ellis 89], [Ressel 96], [Sun 98] De nouvelles fonctions vérifiant C 1 (système de fichiers, fichier texte, XML) De nouveaux contre-exemples pour [Suleiman 98], [Sun 00], [Imine 03], [Imine 05] Aucune fonction ne satisfait C 1 et C 2

33 / 66 VOTE : Problème récurrent site 1 "abc" site 2 "abc" site 3 "abc" op 1 = ins(2, x) op 2 = del(2) op 3 = ins(3, y) axbc ac abyc x a b/ c y doit converger vers axyc

34 / 66 VOTE : Problème récurrent site 1 "abc" site 2 "abc" site 3 "abc" op 1 = ins(2, x) op 2 = del(2) op 3 = ins(3, y) axbc ac abyc ins(2,x) axyc?ayxc? ins(2,y) x a b/ c y doit converger vers axyc positionnement absolu est sujet à des pertes d informations différentes propositions OT cherchent à retrouver ces informations

Plan de la présentation 35 / 66 1 Introduction 2 État de l art Éviter les conflits Réplication optimiste 3 Coo-sérialisabilité 4 Transformées opérationnelles SAMS SO6 VOTE Tombstone Transformation Functions 5 WOOT 6 Conclusions et Perspectives Annulation de groupe Gestion de conflits en P2P Perspectives générales...

36 / 66 Tombstone Transformation Functions Idée: ne pas détruire... Différencier modèle et vue... View a b y c ins(3, y) Model h/ a b n/ y c ins(5, y)

37 / 66 TTF T(ins(p 1, c 1, sid 1 ), ins(p 2, c 2, sid 2 )) : if (p 1 < p 2 ) return ins(p 1, c 1, sid 1 ) else if (p 1 = p 2 and sid 1 < sid 2 ) return ins(p 1, c 1, sid 1 ) else return ins(p 1 + 1, c 1, sid 1 ) T(del(p 1, sid 1 ), ins(p 2, c 2, sid 2 )) : if (p 1 < p 2 ) return del(p 1, sid 1 ) else return del(p 1 + 1, sid 1 ) T(ins(p 1, c 1, sid 1 ), del(p 2, sid 2 )) : return ins(p 1, c 1, sid 1 ) T(del(p 1, sid 1 ), del(p 2, sid 2 )) : return del(p 1, sid 1 )

38 / 66 TTF Delta Model... View a b y c ins(3, y) Model h/ a b n/ y c ins(5, y) (a) TTF uncompacted model View a b y c ins(3, y) Model (a,+2) (b,+1) (y, +2) (c, +1) (C e, +1) ins(5, y)

39 / 66 Limitations TTF... Les algorithmes de transformées doivent détecter la concurrence. Utilisation de vecteurs d états proportionnels aux nombres de sites. Le nombre de site peut devenir très grand. Problème de passage à l échelle de l approche.

Plan de la présentation 40 / 66 1 Introduction 2 État de l art Éviter les conflits Réplication optimiste 3 Coo-sérialisabilité 4 Transformées opérationnelles SAMS SO6 VOTE Tombstone Transformation Functions 5 WOOT 6 Conclusions et Perspectives Annulation de groupe Gestion de conflits en P2P Perspectives générales...

41 / 66 WOOT Modifier le profil des opérations : ins(p c n) : insère le caractère c entre p et n del(c) : supprime le caractère c site 1 "abc" site 1 "abc" ins(3, 1 ) ins(b 1 c) site 2 "abc" del(3) site 2 "abc" del(c) ab1c ab1c ab abc/

42 / 66 WOOT : Commutativité site 1 "abc" site 2 "abc" site 1 "abc" site 2 "abc" op 1 = ins(b 1 c) op 2 = del(c) ab1c abc/ op 2 op 1 op 1 = del(b) op 2 = del(c) ab/c abc/ op 2 op 1 ab1c/ ab1c/ del()/ins() commutent del()/del() commutent = ins()/ins() à rendre commutatif ab/c/ ab/c/

WOOT:Problème Ins/Ins site 1 "ab" site 2 "ab" site 3 "ab" ins(a 2 b) ins(a 1 b) a2b a1b a1b a 1 b ins(a 3 1) a31b 43 / 66

WOOT:Problème Ins/Ins site 1 "ab" site 2 "ab" site 3 "ab" ins(a 2 b) ins(a 1 b) a2b a1b a1b ins(a 3 1) a 1 b 2 a31b 44 / 66

WOOT:Problème Ins/Ins site 1 "ab" site 2 "ab" site 3 "ab" ins(a 2 b) ins(a 1 b) a2b a1b a1b ins(a 3 1) a 1 b 2 a12b a31b 45 / 66

46 / 66 WOOT:Problème Ins/Ins site 1 "ab" site 2 "ab" ins(a 2 b) ins(a 1 b) site 3 "ab" a2b a1b a1b ins(a 3 1) 3 a 1 b 2 a12b a31b

47 / 66 WOOT:Problème Ins/Ins site 1 "ab" site 2 "ab" ins(a 2 b) ins(a 1 b) site 3 "ab" a2b a1b a1b ins(a 3 1) 3 a 1 b 2 a12b a31b a312b

WOOT:Problème Ins/Ins site 1 "ab" site 2 "ab" ins(a 2 b) ins(a 1 b) site 3 "ab" a2b a1b a1b 3 a 1 b a12b ins(a 3 1) a31b a312b 48 / 66

49 / 66 WOOT:Problème Ins/Ins site 1 "ab" site 2 "ab" ins(a 2 b) ins(a 1 b) site 3 "ab" a2b a1b a1b ins(a 3 1) 3 a 1 b 2 a12b a31b a312b

50 / 66 WOOT:Problème Ins/Ins site 1 "ab" site 2 "ab" ins(a 2 b) ins(a 1 b) site 3 "ab" a2b a1b a1b ins(a 3 1) 3 a 1 b 2 a12b a312b a31b a231b? a321b? a312b?

51 / 66 Idée de l algorithme de WOOT a 3 1 2(arrive...) Comparer les nouveaux caractères aux caractères concurrents en suivant l ordre causal... Les caractères concurrents sont les caractères apparaissant entre les relations de la nouvelle opération Ordre causal : 1 est arrivé avant 3 Donc on compare 2 d abord avec 1 b

52 / 66 WOOT : Correction algorithme de réplication optimiste reposant sur un calcul : d une extension linéaire de indépendant des autres sites Nous avons vérifié : la convergence (model-checking) (spécification TLA)

53 / 66 Limitations WOOT Passe à l échelle mais: Pas générique comme OT+TTF... Pas encore de preuve comme dans OT...

Plan de la présentation 54 / 66 1 Introduction 2 État de l art Éviter les conflits Réplication optimiste 3 Coo-sérialisabilité 4 Transformées opérationnelles SAMS SO6 VOTE Tombstone Transformation Functions 5 WOOT 6 Conclusions et Perspectives Annulation de groupe Gestion de conflits en P2P Perspectives générales...

Contributions Transformées opérationnelles (OT) WOOT SAMS : Le premier éditeur multi-synchrone... SO6 : un gestionnaire de configuration basé sur OT: transfert industriel (http://www.libresource.org/) VOTE : un environnement de conception et de vérification pour OT : Vérification de toutes les fonctions de transformation existantes... TTF : Les premières fonctions de transformation vérifiant C 2. un nouvel algorithme de réplication optimiste pour des structures linéaires qui passe à l échelle... 55 / 66

56 / 66 Perspectives à court terme Encore la cohérence : gérer l annulation de groupe... De la conscience de groupe : Gérer les conflits en P2P... Vers des données plus complexes : Travailler avec des arbres XML, des systèmes de fichiers : combinaison TreeOpt + TTF,

Plan de la présentation 57 / 66 1 Introduction 2 État de l art Éviter les conflits Réplication optimiste 3 Coo-sérialisabilité 4 Transformées opérationnelles SAMS SO6 VOTE Tombstone Transformation Functions 5 WOOT 6 Conclusions et Perspectives Annulation de groupe Gestion de conflits en P2P Perspectives générales...

58 / 66 Annulation de groupe Pouvoir annuler n importe quelle opération n importe quand... site 1 op 4 = R(op 1 ) op 1 op 2 op 3 op 4 = T(op 4, op 2 op 3 )

59 / 66 Impossibilité d annuler dans les TTF État initial: "a" 1 "c" 2 "d" 3 État après Ins(2, b) "a" 1 "b" 2 "c" 3 "d" 4 État après annuler(ins(2,b)) "a" 1 "b/" 2 "c" 3 "d" 4 Impossibilité de retourner à l état initial Prendre une approche basée sur la compensation...

60 / 66 La compensation A chaque opération (de compensation ou non) est associée une opération de compensation, Ensemble des opérations de compensation fini, opération + son opération de compensation état acceptable. Écrire des fonctions de transformation pour toutes les opérations (y compris les opérations de compensation) vérifiant C 1, C 2 et C c,

61 / 66 La condition de compensation C c Condition de Compensation: C c T(R(op), T(seq, op)) = R(T(op, seq)) Avec op l opération que l on souhaite compenser, seq une séquence d opération et R(op) la fonction qui associe une opération de compensation à l opération op. Écritures des fonctions TTF avec opérations de compensation + vérification des C 1, C 2, C c par VOTE...

Plan de la présentation 62 / 66 1 Introduction 2 État de l art Éviter les conflits Réplication optimiste 3 Coo-sérialisabilité 4 Transformées opérationnelles SAMS SO6 VOTE Tombstone Transformation Functions 5 WOOT 6 Conclusions et Perspectives Annulation de groupe Gestion de conflits en P2P Perspectives générales...

63 / 66 Gestion des conflits en environnement P2P Dans 1 modèle copier-modifier-fusionner, la dernière version est toujours produite par un humain... En P2P, 2 utilisateurs peuvent produire des modifications concurrentes et le temps de propagation dans le réseau P2P peut faire en sorte que ce soit le moteur de synchronisation qui génère l état visible.

64 / 66 Exemple site 1 "2+2" "=4" site 2 "2+2" "=4" op 1 = ins(0, 1 + 1 ) op 2 = del(0) et déconnections... "1+1" "2+2" "=4" "=4" op 2 op 1 "1+1" "=4" "1+1" "=4"

65 / 66 Gestion des conflits en réseaux P2P Comment avertir les utilisateurs que cette page a été générée automatiquement? Comment mettre en avant ou sont exactement situés les changements conflictuels sans avoir à relire tout le document?

Perspectives 66 / 66 WikiWikiWeb Wikipedia, Citizendium, Wikia, Wiki d entreprise Collaboration massive... Gestion de configuration : Clearcase, CVS [1986], puis Subversion [2001], Arch, Darcs [2005], Baazar [2005], Monotone, GIT [2005], Mercurial [2005] Collaboration décentralisée, P2P Éditeur en ligne : Google Docs and Spreadsheets [Sep 2006], Zoho suite [2007], EditGrid [2006], Firefox3 Outils collaboratifs on-line Éditeur temps réel : Co-word [2005], Subethaedit, Gobby [2005], ACE [2005] Collaboration temps-réel Fusion à terme Environnement de collaboration massive, P2P, on-line, multi-synchrone...