Title: Rconciliation de donnes dans un environnement mobile
1Réconciliation de données dans un environnement
mobile
- Gérald Oster, Doctorant
- Pascal Molli, Maître de Conférence
- oster, molli_at_loria.fr
- LORIA, INRIA-Lorraine
- Equipe ECOO
2Introduction
- Mobilité
- Cycles travail connecté/déconnecté
- Réplication des données
- Copies divergent en mode déconnecté
- Problème
- Réconcilier les copies à la reconnection
3État de lart
- Synchroniseurs fichiers/données
- 2 copies, réconciliation grossière et peu sûre,
gestion des conflits primaire (HotSync,
ActiveSync, Intellisync) - Gestionnaires de configuration
- Gestion de versions et outils de fusions (diff3,
Flexible merge, XmlMerge) - Système distribués
- Cohérence causale, linéarisabilité
- Base de données
- Réplication et consistance faible
- Éditeurs collaboratifs temps réels
- Approche transformationnelle (dOPT, adOPTed, GOT,
GOTO, SOCTx)
4Approche transformationnelle
. . .
O
O
O
Site 2
Site 3
Site n
opi(O)
opi(O)
opi(O)
1
generation
opi(O)
2
broadcast
O
3
reception
Site 1
4
execution
Object O operations op1, op2,.., opn
5Approche transformationnelle
- Propriétés de cohérence
- Respect de la causalité,
- Respect de lintention,
- Convergence
6Causalité
7Convergence et Intention
8Problématique
- Approche transformationnelle
- Conçu pour des divergences faibles
- Côté arbitraire des transformations
- Feedback synchrone insuffisant
- Adaptations actuelles de lapproche
transformationnelle - Intégration de gestion de versions (MOVIC)
- Explosion combinatoire
- Nabordent pas le problème de la résolution
9Proposition
- Converger vers un état contenant des Conflits
- Nouvel objet typé Conflit
- Résolution négociée des conflits
- Questions
- Comment définir les Objets Conflit ?
- Quand les créer ?
- Quand les détruire ?
- Comment les représenter ?
10Un nouvel objet typé Conflit
- CreateConflict CC(cid, op1, op2)
- AddInConflict AC(cid, op)
- RemoveInConflict RC(cid, op)
- RemoveConflict IC(cid)
- Détruit le conflit/Confirme le choix arbitraire
du système - ChooseOpInConflict COIC(cid, op)
- Elit une nouvelle opération comme choix
11Initialement
- État initial
- Opérations concurrentes
- EditFile(/Dir/SubDir/File2)
- Remove(/Dir/SubDir)
12Convergence
- Conflit
- C
- op1 EditFile(/Dir/SubDir/File2),
- op2 Remove(/Dir/SubDir)
-
Histoire op1 EditFile('/Dir/SubDir/File2')
op2' CreateConflict(c, op1,
Remove('/Dir/SubDir'))
13Résolution Alternative 1
- Conflit
- C
- op1 EditFile(/Dir/SubDir/File2),
- op2 Remove(/Dir/SubDir)
-
Histoire op1 EditFile('/Dir/SubDir/File2')
op2' CreateConflict(c, op1,
Remove('/Dir/SubDir')) op3
RemoveConflict(c)
14Résolution Alternative 2
- Conflit
- C
- op1 EditFile(/Dir/SubDir/File2),
- op2 Remove(/Dir/SubDir)
-
Histoire op1 EditFile('/Dir/SubDir/File2')
op2' CreateConflict(c, op1,
RemoveDir('/Dir/SubDir')) op3
ChooseOpInConflict(c, op2) Annuler(op1),
op2, RemoveConflict(c)
15Conclusions et Perspectives
- Réconciliation des copies en milieu mobile
- Approche transformationnelle
- Ajout des objets conflits pour supporter les
divergences fortes - Perspectives
- Preuve des propriétés de causalité, convergence
et intention en présence dobjet Conflits - Comment représenter les conflits ?