RS2.7 : un Canevas Adaptable de Duplication
-
Upload
brittany-lynch -
Category
Documents
-
view
15 -
download
0
description
Transcript of RS2.7 : un Canevas Adaptable de Duplication
![Page 1: RS2.7 : un Canevas Adaptable de Duplication](https://reader036.fdocuments.in/reader036/viewer/2022081603/568134f7550346895d9c41da/html5/thumbnails/1.jpg)
RS2.7 : un Canevas Adaptable de Duplication
Stéphane Drapeau1,2, Claudia L. Roncancio2, Pascal Déchamboux1
1 France Télécom R&D, Meylan2 Laboratoire LSR IMAG, Saint Martin d’Hères
![Page 2: RS2.7 : un Canevas Adaptable de Duplication](https://reader036.fdocuments.in/reader036/viewer/2022081603/568134f7550346895d9c41da/html5/thumbnails/2.jpg)
2
Contexte
De nouvelles contraintes dans la mise en place des infrastructures :
Non connaissance de l’architecture Systèmes évolutifsRessources offertes très différentes
Solution : séparation des considérationsAspects fonctionnels : code applicatif
Aspects non fonctionnels : transactions, requêtes persistance, duplicationEJB, CORBA, .Net, AOP, Systèmes réflexifs
![Page 3: RS2.7 : un Canevas Adaptable de Duplication](https://reader036.fdocuments.in/reader036/viewer/2022081603/568134f7550346895d9c41da/html5/thumbnails/3.jpg)
3
Le projet NODS Networked Open Database Services
« Déconstruire » les SGBD sous forme de services afin d'en répartir les fonctions
Rendre adaptable les aspects non fonctionnels
Duplication
PersistanceTransactions
Requêtes Médiateurs
Communication, Env. d’exécution
![Page 4: RS2.7 : un Canevas Adaptable de Duplication](https://reader036.fdocuments.in/reader036/viewer/2022081603/568134f7550346895d9c41da/html5/thumbnails/4.jpg)
4
Objectifs concernant la duplication
Offrir un support adaptable de la duplication
Donner la propriété d’adaptabilité au support
Adaptabilité pour être adaptable :A l’application
Utilisation avec des applications différentes
Au contexte non fonctionnel
Utilisation dans divers contextes
Dans les protocoles supportés
Afin de supporter de nouveaux besoins
![Page 5: RS2.7 : un Canevas Adaptable de Duplication](https://reader036.fdocuments.in/reader036/viewer/2022081603/568134f7550346895d9c41da/html5/thumbnails/5.jpg)
5
Problématique (1)
Séparation des aspects : isolation de la duplication
Définition des interactions
Avec l’application
Avec les autres aspects non fonctionnels
Prise en compte de divers protocoles de duplication
![Page 6: RS2.7 : un Canevas Adaptable de Duplication](https://reader036.fdocuments.in/reader036/viewer/2022081603/568134f7550346895d9c41da/html5/thumbnails/6.jpg)
6
Mémoire 1
Mémoire 3
Mémoire 2
Problématique (2)
ObjetApplicatif
C
CopieA1
CopieA3
ObjetApplicatif
A
ObjetApplicatif
B
ObjetApplicatif
C
CopieB2
CopieB3
CopieB1
Cohérence locale
Cohérence locale
Cohérenceglobale
![Page 7: RS2.7 : un Canevas Adaptable de Duplication](https://reader036.fdocuments.in/reader036/viewer/2022081603/568134f7550346895d9c41da/html5/thumbnails/7.jpg)
7
Plan
RS2.7 : un canevas adaptable de duplication
Adaptabilité au contexte non fonctionnel
Décomposition de l’aspect duplication
Mise en oeuvre
Travaux similaires
Conclusion et perspectives
RS2.7 : un canevas adaptable de duplication
![Page 8: RS2.7 : un Canevas Adaptable de Duplication](https://reader036.fdocuments.in/reader036/viewer/2022081603/568134f7550346895d9c41da/html5/thumbnails/8.jpg)
8
Contexte transactionnel
Application
Contexte mobile
Application
Un canevas adaptable de duplication
Canevas
Maître/esclave impatient
Maître/esclave paresseux
Canevas pour construire des services de duplication appropriés :
A l’application
Au contexte
Aux besoins
![Page 9: RS2.7 : un Canevas Adaptable de Duplication](https://reader036.fdocuments.in/reader036/viewer/2022081603/568134f7550346895d9c41da/html5/thumbnails/9.jpg)
9
Service de duplication
Met en oeuvre la gestion des copies
Rôle minimum d’un service de duplication :
Gestion du cycle de vie des copies
Gestion de la mise en cohérence des copies = protocole de cohérence locale
![Page 10: RS2.7 : un Canevas Adaptable de Duplication](https://reader036.fdocuments.in/reader036/viewer/2022081603/568134f7550346895d9c41da/html5/thumbnails/10.jpg)
10
Politique de duplication
Quand ?Combien ?
Où ?Comment ?
Canevas de Duplication
Service de Duplication
Politique de duplication
Protocole de cohérence locale
Gestion du cycle de vie
Comment ?
Quand ?
Où ?Combien?
+
=
Tolérance aux fautesPartage de charge,
…Application
Couche de transparence
![Page 11: RS2.7 : un Canevas Adaptable de Duplication](https://reader036.fdocuments.in/reader036/viewer/2022081603/568134f7550346895d9c41da/html5/thumbnails/11.jpg)
11
Modèle de cohérence locale (coherency model)
Nombreux protocoles de duplicationAugmentation des performances
Tolérance aux fautes
Différents niveaux de cohérence
Modèle de cohérence localeContrat spécifiant la cohérence entre les copies
Comment les utilisateurs perçoivent les copies d’un même objet
![Page 12: RS2.7 : un Canevas Adaptable de Duplication](https://reader036.fdocuments.in/reader036/viewer/2022081603/568134f7550346895d9c41da/html5/thumbnails/12.jpg)
12
4 modèles de cohérence locale
Copie unique : toutes les copies ont la même histoire
Copies divergentes : les copies ont des histoires différentes
+ garanties sur la divergence
Copies convergentes avec L sur les copies divergentes :les copies ont des histoires différentes
+ même histoire à certains moments
+ copies non à jour consultables
Copies convergentes avec E sur les copies divergentes: idem
+ copies non à jour modifiables
![Page 13: RS2.7 : un Canevas Adaptable de Duplication](https://reader036.fdocuments.in/reader036/viewer/2022081603/568134f7550346895d9c41da/html5/thumbnails/13.jpg)
13
Protocole de cohérence locale
Méthode choisie pour garantir un modèle de
cohérence locale
Pour un même modèle différents protocoles
Exemple protocoles à copie unique : ROWA, ROWAA
Capte les informations destinées aux copies
Interactions avec d’autres aspectsCopies équivalentes : forte contrainte sur le contrôle
de concurrence Copies divergentes : peu de contraintes
![Page 14: RS2.7 : un Canevas Adaptable de Duplication](https://reader036.fdocuments.in/reader036/viewer/2022081603/568134f7550346895d9c41da/html5/thumbnails/14.jpg)
14
Plan
RS2.7 : un canevas adaptable de duplication
Adaptabilité au contexte non fonctionnel
Décomposition de l’aspect duplication
Mise en oeuvre
Travaux similaires
Conclusion et perspectives
![Page 15: RS2.7 : un Canevas Adaptable de Duplication](https://reader036.fdocuments.in/reader036/viewer/2022081603/568134f7550346895d9c41da/html5/thumbnails/15.jpg)
15
Modèles de cohérence globale (consistency models)
Spécification de comment apparaissent les données
Mémoires partagées réparties Modèles forts : séquentiel, causal, PRAM, etc. Modèles faibles : à l’entrée, au relâchement, etc.
Dans les SGBD répartis Sérialisabilité Sérialisabilité sur une copie
Remis en cause par la duplicationInteractions entre cohérence globale et locale
![Page 16: RS2.7 : un Canevas Adaptable de Duplication](https://reader036.fdocuments.in/reader036/viewer/2022081603/568134f7550346895d9c41da/html5/thumbnails/16.jpg)
16
Modèle de cohérence globale/locale
Pro
toco
le d
eco
hére
nce
glob
ale
App
licat
ion
Modèle decohérence
globale
Protocole decohérence locale
Protocole decohérence locale
Modèle decohérence locale
Contrôle deconcurrenceContrôle deconcurrence
Cou
che
deco
mm
unic
atio
n
Tolérance auxfautes
Tolérance auxfautes
![Page 17: RS2.7 : un Canevas Adaptable de Duplication](https://reader036.fdocuments.in/reader036/viewer/2022081603/568134f7550346895d9c41da/html5/thumbnails/17.jpg)
17
Duplication et contrôle de la concurrence
Deux niveaux de contrôle de la concurrence
Au niveau des objets applicatifs
Au niveau des copies
BD1
BD2
A1
A2
B1B2
T1ecrire(A)ecrire(B)
T1ecrire(A)ecrire(B)
T2ecrire(A)T2ecrire(A)
acquerirVerrou(A)
acquerirVerrou(B)
acquerirVerrou(A1)acquerirVerrou(B1)
acquerirVerrou(A2)acquerirVerrou(B2)
Contexte transactionnelGlobale : sérialisabilité
Locale : copie unique
![Page 18: RS2.7 : un Canevas Adaptable de Duplication](https://reader036.fdocuments.in/reader036/viewer/2022081603/568134f7550346895d9c41da/html5/thumbnails/18.jpg)
18
Plan
RS2.7 : un canevas adaptable de duplication
Adaptabilité au contexte non fonctionnel
Décomposition de l’aspect duplication
Mise en oeuvre
Travaux similaires
Conclusion et perspectives
![Page 19: RS2.7 : un Canevas Adaptable de Duplication](https://reader036.fdocuments.in/reader036/viewer/2022081603/568134f7550346895d9c41da/html5/thumbnails/19.jpg)
19
Protocole de cohérence locale abstrait
Niveau d’abstraction
Décomposition structurelle des protocoles de cohérence locale
AccèsSoumission d’une requête à un objet dupliqué
CoordinationTraitements préliminaires à l’exécution de la requête
ExécutionExécution de la requête
ValidationVérification du résultat obtenu par les copies
RéponseRenvoi du résultat de la requête exécutée
![Page 20: RS2.7 : un Canevas Adaptable de Duplication](https://reader036.fdocuments.in/reader036/viewer/2022081603/568134f7550346895d9c41da/html5/thumbnails/20.jpg)
20
Décomposition structurelle
Différences entre les protocoles dues :
A l’approche utilisée (implantation) dans chaque phase et
A l’ordre d’exécution des phases
![Page 21: RS2.7 : un Canevas Adaptable de Duplication](https://reader036.fdocuments.in/reader036/viewer/2022081603/568134f7550346895d9c41da/html5/thumbnails/21.jpg)
21
Exemple : protocole ROWA
Copie
Objet applicatifAccès
Réponse
Coordination
Coordination
Coordination
Exécution
Exécution
Exécution
ExécutionValidation
Validation
Validation
ROWA : read one, write all
Copie
Copie
Copie
![Page 22: RS2.7 : un Canevas Adaptable de Duplication](https://reader036.fdocuments.in/reader036/viewer/2022081603/568134f7550346895d9c41da/html5/thumbnails/22.jpg)
22
Exemple : protocole ROWAA
Objet applicatifAccès
Réponse
Exécution
Exécution
Exécution
ExécutionCoordination
Coordination
Coordination
ROWAA : read one, write all available
Copie
Copie
Copie
Copie
ValidationValidation
Exécution
Exécution
Exécution
ValidationValidation
Coordination
Coordination
![Page 23: RS2.7 : un Canevas Adaptable de Duplication](https://reader036.fdocuments.in/reader036/viewer/2022081603/568134f7550346895d9c41da/html5/thumbnails/23.jpg)
23
Architecture fonctionnelle des protocoles
Fonctionnalités présentes dans de nombreux protocoles
Extraction des fonctionnalités communesRéutilisationFlexibilitéIsolation d’interactions avec d’autres aspects
Chaque phase du protocole abstrait
=
Ensemble de fonctionnalités
![Page 24: RS2.7 : un Canevas Adaptable de Duplication](https://reader036.fdocuments.in/reader036/viewer/2022081603/568134f7550346895d9c41da/html5/thumbnails/24.jpg)
24
Quatre catégories de composant (1)
Composants primitifsNiveau de base pour construire des protocoles primitifs
Interface avec le service de communication, gestionnaire d’accès aux copies, etc.
Composants communs à tous les modèles de cohérence locale
Composants liés à la gestion de la synchronisation
Déclencheur de synchronisation, gestionnaire de suivi des mises à jour, …
![Page 25: RS2.7 : un Canevas Adaptable de Duplication](https://reader036.fdocuments.in/reader036/viewer/2022081603/568134f7550346895d9c41da/html5/thumbnails/25.jpg)
25
Quatre catégories de composant (2)
Composants dépendants du modèle de cohérence locale
Gestionnaire de rôle, détecteur de conflit, résolveur de conflits, etc.
Composants dépendants du protocole de cohérence locale
Composants spécifiques au protocoles de cohérence
Gestionnaire du groupe en lecture ou en écriture, consensus, etc.
![Page 26: RS2.7 : un Canevas Adaptable de Duplication](https://reader036.fdocuments.in/reader036/viewer/2022081603/568134f7550346895d9c41da/html5/thumbnails/26.jpg)
26
Plan
RS2.7 : un canevas adaptable de duplication
Adaptabilité au contexte non fonctionnel
Décomposition de l’aspect duplication
Mise en oeuvre
Travaux similaires
Conclusion et perspectives
![Page 27: RS2.7 : un Canevas Adaptable de Duplication](https://reader036.fdocuments.in/reader036/viewer/2022081603/568134f7550346895d9c41da/html5/thumbnails/27.jpg)
27
Principes
Protocole de cohérence locale
=
Chaîne de liaison entre les différentes copies du même objet applicatif
Objet dupliqué accédé par l’intermédiaire de la chaîne de liaison
![Page 28: RS2.7 : un Canevas Adaptable de Duplication](https://reader036.fdocuments.in/reader036/viewer/2022081603/568134f7550346895d9c41da/html5/thumbnails/28.jpg)
28
Accès à un objet dupliqué
CopieA1
ObjetApplicatif
B
Représentantobjet de liaison
Mémoire 1
Mémoire 3
Mémoire 2Copie
A2
CopieA3
Représentantobjet de liaison
Représentantobjet de liaison
![Page 29: RS2.7 : un Canevas Adaptable de Duplication](https://reader036.fdocuments.in/reader036/viewer/2022081603/568134f7550346895d9c41da/html5/thumbnails/29.jpg)
29
Utilisation d’un service de RS2.7
Mémoire 1
Mémoire 2
Binder
Binder binder = new BinderImpl(nameFactory);
np lo
Name np = binder.export(lo);
llo.write(((Field)new FieldImplem("Nom")), ((Value)new ValueString("Simpson")));
Binding lo = binder.resolve(np);
Mémoire 1
Mémoire 2
Person p = new Person("Smith", "john", 27);
pBinding lo = new BindingImpl();LocalLogicalObject llo = lo.create(p); p
Représentantobjet de liaison
LocalLogicalObject llo = lo.add();
Représentantobjet de liaison
p
![Page 30: RS2.7 : un Canevas Adaptable de Duplication](https://reader036.fdocuments.in/reader036/viewer/2022081603/568134f7550346895d9c41da/html5/thumbnails/30.jpg)
30
Construire un protocole de cohérence locale
Un protocole de cohérence locale est réparti sur chacune des copies :
A chaque copie on associe un représentant de liaison
Chaque représentant est une composition de phases
Chaque phase est composée d’un ensemble de fonctionnalité
Chaque fonctionnalité est un composant
![Page 31: RS2.7 : un Canevas Adaptable de Duplication](https://reader036.fdocuments.in/reader036/viewer/2022081603/568134f7550346895d9c41da/html5/thumbnails/31.jpg)
31
Copie A1
Copie A2
Accès Coordination Exécution Validation Réponse
Accès Coordination Exécution Validation Réponse
ReadWriteMethod
BeginEndAbort
ReadWriteMethod
BeginEndAbort
Zoom sur un protocole de cohérence locale
LockUnlock
LockUnlock
Représentant de liaison
Représentant de liaison
![Page 32: RS2.7 : un Canevas Adaptable de Duplication](https://reader036.fdocuments.in/reader036/viewer/2022081603/568134f7550346895d9c41da/html5/thumbnails/32.jpg)
32
Protocole paresseux maître/esclaves
Représentant objet de liaison Maître
Exécution
Replicaaccessor
Accès
Role manager
CoordinationUpdates
logSynchro.
messagesfactory
StartingSynchro.
Com. manager
Exécution
Replicaaccessor
Role manager
Dispatcher
Accès
ecrire(x,3)
Représentant objet de liaison Esclave
Copie A2Copie A1
ObjetApplicatif
B
CoordinationSynchro.
messagesreader
![Page 33: RS2.7 : un Canevas Adaptable de Duplication](https://reader036.fdocuments.in/reader036/viewer/2022081603/568134f7550346895d9c41da/html5/thumbnails/33.jpg)
33
Protocole paresseux maître/esclaves
Représentant objet de liaison Maître
Exécution
Replicaaccessor
Accès
Role manager
CoordinationUpdates
logSynchro.
messagesfactory
StartingSynchro.
Com. manager
Exécution
Replicaaccessor
Role manager
Dispatcher
Accès
Représentant objet de liaison Esclave
Copie A2Copie A1
CoordinationSynchro.
messagesreader
![Page 34: RS2.7 : un Canevas Adaptable de Duplication](https://reader036.fdocuments.in/reader036/viewer/2022081603/568134f7550346895d9c41da/html5/thumbnails/34.jpg)
34
Protocole paresseux maître/esclaves
Représentant objet de liaison Maître
Exécution
Replicaaccessor
Accès
Role manager
CoordinationUpdates
logSynchro.
messagesfactory
StartingSynchro.
Com. manager
Exécution
Replicaaccessor
Role manager
Dispatcher
Accès
Représentant objet de liaison Esclave
Copie A2Copie A1
Objet Applicatif
C
CoordinationSynchro.
messagesreader
ecrire(x,4)
![Page 35: RS2.7 : un Canevas Adaptable de Duplication](https://reader036.fdocuments.in/reader036/viewer/2022081603/568134f7550346895d9c41da/html5/thumbnails/35.jpg)
35
Travaux similaires
Orientés tolérance aux fautesGarf, OGS, Ethernal, etc.
Nombre limité de protocole
Travaux supportant plus de protocolesCore, Globe
Séparation duplication autres aspects pas claire
Contexte bases de donnéesProtocoles ad-hoc
Orientés adaptation et non adaptabilité
![Page 36: RS2.7 : un Canevas Adaptable de Duplication](https://reader036.fdocuments.in/reader036/viewer/2022081603/568134f7550346895d9c41da/html5/thumbnails/36.jpg)
36
Conclusions
ContributionsIsolation de la duplication
L’adaptabilité au contexte non fonctionnel
Décomposition structurelle et fonctionnelle
Mise en oeuvrePrototype en Java + Jonathan (Corba & RMI)
Plate-forme pour mondes virtuels (PING)
Expérimentations sur l’adaptabilité
![Page 37: RS2.7 : un Canevas Adaptable de Duplication](https://reader036.fdocuments.in/reader036/viewer/2022081603/568134f7550346895d9c41da/html5/thumbnails/37.jpg)
37
Perspectives
Utilisation d’un canevas de composition afin d’obtenir :
l’adaptabilité dynamique et
l’optimisation de la composition