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

25
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

Upload: robert

Post on 19-Mar-2016

25 views

Category:

Documents


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

Page 1: 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

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

2

BesoinApplication distribuée avec stockage de données

Lire / ÉcrireProducteur

Écrire Lire

Calculateur

Contrôleur

Données

Lancer SurveillerCalculateur

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

3

Plan

1. Concepts utilisés

2. Modélisations possibles

3. Mise en oeuvre

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

4

Concepts utilisés

1. ConceptsCCM JuxMem Proposition d'intégration

2. Modélisations possibles

3. Mise en oeuvre

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

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

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

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

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

7

Producteur

Stockage

Calculateur

Contrôleur

CCM : modèle de composants CORBAApplication = assemblage de composants

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

8

Producteur

Stockage

Calculateur

Contrôleur

Données

CCM : modèle de composants CORBAApplication = assemblage de composants

??

?

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

9

Partage de données distribuées sur grilles : JuxMem

Interface d'accès / programmation

ÉcrireAllouer

JuxMem Données

Processus

Lire / ÉcrireLire

Processus Processus

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

10

Proposition d'intégrationInteraction des modèles

Allouer

JuxMem Données

Lire / ÉcrireLire

Composant A Composant B

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

11

Rappel du besoinApplication distribuée avec stockage de données

Lire / ÉcrireProducteur

Écrire Lire

Calculateur

Contrôleur

Données

Lancer SurveillerCalculateur

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

12

Réponse au besoinIntégration entre CCM et JuxMem

Lire / ÉcrireAllouer

JuxMem Données

LireÉcrire

Producteur Calculateur Contrôleur

LancerSurveiller

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

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

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

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é

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

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

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

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

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

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

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

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+

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

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

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

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

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

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

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

22

Implémentation du modèle intermédiaireDiagramme de classes

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

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

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

24

Compilation IDL3+

DescriptionIDL3+

CompilateurIDL3+

DescriptionIDL3

Code GénéréC++

CompilateurIDL3

CompilateurC++

ImplémentationC++

Code CCMC++

Binaire

Exécutif

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

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)