Title: Extension du
1- Extension du
- modèle de composants CORBA
- avec accès concurrent
- à des données partagées
Travail réalisé par Landry BREUIL PFE,
ISIMA Encadrants Gabriel ANTONIU Christian
PEREZ
2BesoinApplication distribuée avec stockage de
données
Lancer
Surveiller
Lire / Écrire
Lire
Écrire
3Plan
- 1. Concepts utilisés
- 2. Modélisations possibles
- 3. Mise en oeuvre
4Concepts utilisés
- 1. Concepts
- CCM
- JuxMem
- Proposition d'intégration
- 2. Modélisations possibles
- 3. Mise en oeuvre
5CCM modèle de composants CORBASchématisation
Interface principale du composant
Facettes provides
Réceptacles uses
Puits d' événements consumes
Sources d' événements emits
Attributs attributes
6CCM modèle de composants CORBA
- Modèle de développement
- séparation des rôles
- indépendant du langage
- Déclaration IDL3
- Implémentation / Compilation
- Assemblage par tierce partie
- Exécution
7CCM modèle de composants CORBAApplication
assemblage de composants
8CCM modèle de composants CORBAApplication
assemblage de composants
?
?
?
9Partage de données distribuées sur grilles
JuxMem Interface d'accès / programmation
Allouer
Lire / Écrire
Écrire
Lire
10Proposition d'intégrationInteraction des modèles
Allouer
Lire / Écrire
Lire
11Rappel du besoinApplication distribuée avec
stockage de données
Lancer
Surveiller
Lire / Écrire
Lire
Écrire
12Réponse au besoinIntégration entre CCM et JuxMem
Lancer
Surveiller
Calculateur
Allouer
Lire / Écrire
Lire
Écrire
13Modélisations possibles
- 1. Concepts utilisés
- 2. Modélisations possibles
- Composant à donnée interne
- Composant et donnée externe
- Proposition un modèle intermédiaire
- 3. Mise en oeuvre
14Modélisations possiblesModèle 1 composant à
donnée interne
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
Données
Problème Peu flexible, centralisé
15Modélisations possiblesModèle 2 composant ET
données externes
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
Données
Problème Gestion explicite des accès concurrents
16Modélisations possiblesNotre Proposition
modèle intermédiaire
- Extension de l'IDL3 gt 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
Données
17Modélisations possiblesArchitecture en couches
18Mise en oeuvre
- 1. Concepts utilisés
- 2. Modélisations possibles
- 3. Mise en oeuvre
- Exemple IDL3
- Implémentations du modèle intermédiaire
- Compilation de l'IDL3
19Exemple IDL3Langage IDL3 étendu
typedef Octet data_space1000 component A
accesses data_space data_used component B
accesses data_space data_used component C
shares data_space data_shared
data_ref
Données
20Implémentation du modèle intermédiaireFonctionnem
ent interne d'un composant CCM
Object Request Broker
21Implémentation du modèle intermédiaireEncapsulati
on de l'exécuteur
- Au-dessus de CCM
- Encapsulation
- Redirection d'appels
- Transparent / CORBA
- Référence vers donnée
- Gestion de données
Object Request Broker
22Implémentation du modèle intermédiaireDiagramme
de classes
23Implémentation du modèle intermédiaire3 systèmes
de gestion de données
juxmem_alloc(size) id juxmem_map(..) juxmem_ac
quire(..) juxmem_acquireR(..) juxmem_release(..)
x juxmem_read(..) juxmem_write(val)
id mkstemp(..) id open(..) close(..) lockf(
..) lseek(..) x read(..) write(val)
id mkstemp(..) id open(..) close(..) flock(
..) lseek(..) x read(..) write(val)
24Compilation IDL3
Description IDL3
Implémentation C
Exécutif
Compilateur IDL3
Compilateur C
Code Généré C
Binaire
Compilateur IDL3
Description IDL3
Code CCM C
25Conclusion
- 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 Grid5000
- Suite possible projet LEGO (ANR Calcul Intensif)