extension du modèle de composants corba avec accès concurrent à des données partagées
Post on 19-Mar-2016
25 Views
Preview:
DESCRIPTION
TRANSCRIPT
1
Extension du modèle de composants CORBA
avec accès concurrent à des données partagées
Travail réalisé par : Landry BREUILPFE, ISIMA
Encadrants : Gabriel ANTONIUChristian PEREZ
2
BesoinApplication distribuée avec stockage de données
Lire / ÉcrireProducteur
Écrire Lire
Calculateur
Contrôleur
Données
Lancer SurveillerCalculateur
3
Plan
1. Concepts utilisés
2. Modélisations possibles
3. Mise en oeuvre
4
Concepts utilisés
1. ConceptsCCM JuxMem Proposition d'intégration
2. Modélisations possibles
3. Mise en oeuvre
5
ComposantCORBA
Réceptacles« uses »
Sources d'événements
« emits »
Puits d'événements
« consumes »
Facettes« provides »
Attributs « attributes »
Interface principale du composant
CCM : modèle de composants CORBASchématisation
6
CCM : modèle de composants CORBA
Modèle de développementséparation des rôles
indépendant du langage
Déclaration IDL3
Implémentation / Compilation
Assemblage par tierce partie
Exécution
7
Producteur
Stockage
Calculateur
Contrôleur
CCM : modèle de composants CORBAApplication = assemblage de composants
8
Producteur
Stockage
Calculateur
Contrôleur
Données
CCM : modèle de composants CORBAApplication = assemblage de composants
??
?
9
Partage de données distribuées sur grilles : JuxMem
Interface d'accès / programmation
ÉcrireAllouer
JuxMem Données
Processus
Lire / ÉcrireLire
Processus Processus
10
Proposition d'intégrationInteraction des modèles
Allouer
JuxMem Données
Lire / ÉcrireLire
Composant A Composant B
11
Rappel du besoinApplication distribuée avec stockage de données
Lire / ÉcrireProducteur
Écrire Lire
Calculateur
Contrôleur
Données
Lancer SurveillerCalculateur
12
Réponse au besoinIntégration entre CCM et JuxMem
Lire / ÉcrireAllouer
JuxMem Données
LireÉcrire
Producteur Calculateur Contrôleur
LancerSurveiller
13
Modélisations possibles
1. Concepts utilisés
2. Modélisations possiblesComposant à donnée interne
Composant et donnée externe
Proposition : un modèle intermédiaire
3. Mise en oeuvre
14
Modélisations possiblesModèle 1 : composant à donnée interne
B
CA
Données
interface data_access { boolean set(in octet value,
in short offset);octet get( in short offset);void acquire();void release();
};
component A { uses data_access data_used;
};
component B {uses data_access data_used;
};
component C { provides data_access data_shared;
};
Problème : Peu flexible, centralisé
15
Modélisations possiblesModèle 2 : composant ET données externes
B
CA
Données
interface data_access { boolean set(in octet value,
in short offset);octet get( in short offset);void acquire();void release();
};
component A supports data_access {};
component B supports data_access {};
component C supports data_access {};
Problème : Gestion explicite des accès concurrents
16
Modélisations possiblesNotre Proposition : modèle intermédiaire
B
CA
Données
Extension de l'IDL3 => IDL3+
Type de port orienté données
Mots clés «accesses» «shares»
Accès via une interface locale
Flexible
Plutôt décentralisé
Equilibrage de charge
data_ref
17
Modélisations possiblesArchitecture en couches
Système de gestion de données Données
Composant A Composant B
Couche d'abstraction de l'accès à la donnée
18
Mise en oeuvre
1. Concepts utilisés
2. Modélisations possibles
3. Mise en oeuvreExemple IDL3+
Implémentations du modèle intermédiaire
Compilation de l'IDL3+
19
Exemple IDL3+Langage IDL3 étendu
typedef Octet data_space[1000];
component A {accesses data_space data_used;
};
component B {accesses data_space data_used;
};
component C {shares data_space data_shared;
};B
CA
Données
data_ref
20
Implémentation du modèle intermédiaireFonctionnement interne d'un composant CCM
Exécuteur :écrit par le développeur
Contexte CCM :généré par le
compilateur IDL3
Conteneur CCM : généré par le compilateur IDL3
Object Request Broker
21
Implémentation du modèle intermédiaireEncapsulation de l'exécuteur
Au-dessus de CCM
Encapsulation
Redirection d'appels
Transparent / CORBA
Référence vers donnée
Gestion de données
Exécuteur Contexte intermédiaire
Conteneur intermédiaire
ContexteCCM
Conteneur CCM
Object Request Broker
22
Implémentation du modèle intermédiaireDiagramme de classes
23
JuxMem
Couche d'abstraction de l'accès à la donnée
Fichier local NFS
id = mkstemp(..);id = open(..);close(..);flock(..);lseek(..);x = read(..);write(val);
id = mkstemp(..);id = open(..);close(..);lockf(..);lseek(..);x = read(..);write(val);
juxmem_alloc(size);id = juxmem_map(..);juxmem_acquire(..);juxmem_acquireR(..);juxmem_release(..);x = juxmem_read(..);juxmem_write(val);
Implémentation du modèle intermédiaire3 systèmes de gestion de données
24
Compilation IDL3+
DescriptionIDL3+
CompilateurIDL3+
DescriptionIDL3
Code GénéréC++
CompilateurIDL3
CompilateurC++
ImplémentationC++
Code CCMC++
Binaire
Exécutif
25
Conclusion
Extension du langage IDL3 en IDL3+
Spécification d'un compilateur
Développement de prototypes
Définition de scénarios de tests
Expérimentation en cours sur Grid’5000
Suite possible projet LEGO (ANR Calcul Intensif)
top related