Extension du modèle de composants CORBA avec accès concurrent à des données partagées

Post on 19-Mar-2016

25 views 3 download

description

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. Calculateur. Calculateur. Producteur. Contrôleur. Données. - PowerPoint PPT Presentation

Transcript of Extension du modèle de composants CORBA avec accès concurrent à des données partagées

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)