1 / 25

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

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.

robert
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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

  2. Calculateur Calculateur Producteur Contrôleur Données BesoinApplication distribuée avec stockage de données Lancer Surveiller Lire / Écrire Lire Écrire

  3. Plan • 1. Concepts utilisés • 2. Modélisations possibles • 3. Mise en oeuvre

  4. Concepts utilisés • 1. Concepts • CCM • JuxMem • Proposition d'intégration • 2. Modélisations possibles • 3. Mise en oeuvre

  5. Composant CORBA CCM : 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 »

  6. CCM : 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

  7. Calculateur Producteur Contrôleur Stockage CCM : modèle de composants CORBAApplication = assemblage de composants

  8. Calculateur Producteur Contrôleur Stockage Données CCM : modèle de composants CORBAApplication = assemblage de composants ? ? ?

  9. Processus Processus Processus Données JuxMem Partage de données distribuées sur grilles : JuxMem Interface d'accès / programmation Allouer Lire / Écrire Écrire Lire

  10. Composant A Composant B Données JuxMem Proposition d'intégrationInteraction des modèles Allouer Lire / Écrire Lire

  11. Calculateur Calculateur Producteur Contrôleur Données Rappel du besoinApplication distribuée avec stockage de données Lancer Surveiller Lire / Écrire Lire Écrire

  12. Producteur Contrôleur Données JuxMem Réponse au besoinIntégration entre CCM et JuxMem Lancer Surveiller Calculateur Allouer Lire / Écrire Lire Écrire

  13. Modé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

  14. A C B Modé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é

  15. A C B Modé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

  16. A C B Modélisations possiblesNotre Proposition : modèle intermédiaire • 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 Données

  17. Composant B Composant A Couche d'abstraction de l'accès à la donnée Données Système de gestion de données Modélisations possiblesArchitecture en couches

  18. Mise 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+

  19. A C B 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; }; data_ref Données

  20. Contexte CCM : généré par le compilateur IDL3 Exécuteur : écrit par le développeur Conteneur CCM : généré par le compilateur IDL3 Implémentation du modèle intermédiaireFonctionnement interne d'un composant CCM Object Request Broker

  21. Contexte intermédiaire Exécuteur Contexte CCM Conteneur intermédiaire Conteneur CCM 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 Object Request Broker

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

  23. Couche d'abstraction de l'accès à la donnée Fichier local NFS JuxMem Implémentation du modèle intermédiaire3 systèmes de gestion de données juxmem_alloc(size); id = juxmem_map(..); juxmem_acquire(..); 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);

  24. Compilation 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++

  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)

More Related