Upload
charline-marechal
View
102
Download
0
Embed Size (px)
Citation preview
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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 relachement, 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
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
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
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
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
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
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
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
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
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, …
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épendant du protocole de cohérence locale
Composants spécifiques au protocoles de cohérence
Gestionnaire du groupe en lecture ou en écriture, consensus, etc.
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
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
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
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
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
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
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
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
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)
35
Travaux similaires
Orientés tolérance aux fautesGarf, OGS, Ethernal, etc.
Nombre limité de protocole supporté
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é
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é
37
Perspectives
Utilisation d’un canevas de composition afin d’obtenir :
l’adaptabilité dynamique et
l’optimisation de la composition