Institut de la Francophonie pour |’ Informatique Ecole Nationale Supérieure des Télécommunications de Bretagne mo =<sens† Bretagne MEMOIRE DE FIN D’ETUDES MASTER D’ INFORMATIQUE Injection d’algorithmes de répartition de données dans un composant de communication par transformation de modéle PHUNG-KHAC An Responsables de stage : Antoine BEUGNARD et Eveline KABORE Ce stage a été réalis¢ au scin du Département informatique de l’Ecole Nationale Supérieure des Télécommunications de Bretagne GET - ENST Bretagne Hanoi, 5 octobre 2006 Remerciements Je voudrais tout d’abord remercier Antoine Beugnard pour m’avoir accucilli dans son équipe de recherche de l’Ecole Nationale Supérieure des Télécommunications de Bretagne (ENST Bre- tagne). Je tiens 4 remercier tout particuliérement Antoine Beugnard et Eveline Kaboré pour m’avoir encadré pendant ces six mois. Je les remercie de leur contact chaleureux, leurs conscils et encouragements, leur soutien permanent et la liberté de recherche qu’ils ont bien voulu me laisser. Mes plus sincéres remerciements vont également & tous les professeurs et les personnels de l'Institut de la Francophonie pour l’Informatique (IFI) pour m’avoir donné des cours de trés bonne qualité et pour leur soutien tout au long de mes études a IFT.
Un grand merci aux thésards et aux autres stagiaires 4 VENST Bretagne pour une ambiance de travail particuliérement favorable. Je remercie chaleureusement mes camarades de la promotion X pour leur amitié sans faille et je leur souhaite bonne chance pour la soutenance. Merci enfin 4 mes parents, ma femme et mes amis pour leur soutien et leur encouragement A tout Vinstant. Résumé Le travail de ce stage est mené dans le cadre du projet Amadéus.
Ce projet fédére la recherche en Bretagne sur les techniques de transformation de modéle. A L’ENST Bretagne, oll ce stage est réalisé, ces techniques sont appliquées au cadre trés spécifique des composants de communication afin d’étudier les problémes de répartition et de déploiement de code. Composant de communication est un composant logiciel qui réifie une abstraction de com- munication. Une application est construite en interconnectant plusicurs composants de com- munication et des composants métiers ou fonctionnels.
Afin de différencier ces deux types de composant, on appelle les composants de communication des médiums. Cette notion de médium est proposée par Eric Cariou et Antoine Beugnard 4 l’ENST Bretagne. Dans leur recherche, ils donnent aussi une méthodologie de spécification des médiums en UML et construisent un processus de raffinement de médium qui permet de transformer une spécification abstraite de médium en une ou plusieurs spécifications d’implémentation prenant en compte l’architecture de déploiement et différents choix de conception ou d’implémentation. Le médium est proposé dans le contexte des systémes distribués.
Dans ces systémes, on a besoins de gérer des données distribuées par des algorithmes de répartition de données. Le premier but de ce stage est de chercher une solution d’injection de ces algorithmes dans un mé- dium pendant le processus de raffinement. La spécification finale d’implémentation de médium contient donc des parties représentant l’algorithme choisi et l'utilisation de cet algorithmes dans le médium. Dans la terminologie de l’approche MDA (Model-Driven Architecture) de TOMG, le proces- sus de raffinement sert 4 transformer une spécification de niveau PIM (Platform Independent Model) en une ou plusieurs spécifications de niveau PSM (Platform Specific Model).
Cette transformation peut étre réalisée par des outils automatisés. Le deuxiéme but de ce stage est de construire un programme qui peut automatiquement transformer une spécification abstraite de médium en une ou plusieurs spécifications d’implémentation prenant en compte les différents choix d’algorithme de répartition de donnés. Mots-clés : composant de communication, processus de raffinement de médium, répartition de données, métamodélisation, transformation de modéle. il Abstract This work of the internship is carried out within the scope of the Amadeus project.
This project federates research in Brittany on model transformation techniques. At ENST Bretagne, these techniques are applied to the very specific framework of the communication components in order to study the problems of data distribution and code deployment. Communication component is a software component which reifies a communication abs- traction. An application is built by inter-connecting several communication components and business or functional components.
In order to differentiate these component types, communi- cation components are named mediums. This concept of medium is proposed by Eric Cariou and Antoine Beugnard at ENST Bre- tagne. They give also a medium specification methodology in UML and build a refinement process which enables the transformation of an abstract specification of medium into one or several implementation specifications, conforming to their deployment architecture and to the design or implementation choices. The medium is proposed in the context of the distributed systems.
In these systems, they need to use distributed algorithms for data management. The first goal of this internship is to find a solution for injection of distributed algorithms into a medium during the refinement process. The final implementation specification of medium thus contains representation of dis- tributed algorithm. In the OMG’s MDA (Model-Driven Structures) terminology, the refinement process enables the transformation of a specification of level PIM (Platform Independent Model) into one or several specifications of level PSM (Platform Specific Model).
This transformation can be carried out by automated tools. The second goal of this internship is to build an application which can transform a abstract specification of medium into one or several implementation specifications, conforming to various choices of distributed algorithm. Key-words : communication component, medium rafinement process, data distribution, me- tamodeling, model transformation. 1H Table des matiéres Résumé il Abstract ili 1 Introduction Ff 1.2 Motivation et objectifs du stage.3 Environnement de traval .5 Plan du document .00 eee ee ee eee G3 2 Médium et Processus de raffinement mm H 2.1 Composant de communication ou médium .1 Construction « classique » d’une application 4 l’aide de composants.2 Nouvelle construction de application utilisant les médiums .2 Spécification de médium en UML .3 Exemple de spécification de médium : médium de réservation .1 Description du systéme de gestion de parking .2 Spécification du médium de réservatlon .3 Déploiement du médium de réservatlon.4 Conclusion de exemple.
e eee ee eee 2.4 Processus de raffinement de médium .1 Etapes du processus .000 000 cee ee ee 2.2 Exemple : Processus de raffinement de médium de réservation. Résumé du processus de rafinement. On ee 1V 3 Injection d’algorithmes de répartition de données dans un médium 21 3.1 Algorithme de répartition de données.2 Processus d’injection d’algorithmes distribués dans un médium .1 Notre utilisation d’algorithmes distribués dans un médium.2 Etapes du processus d’injection d’algorithmes distribués dans un médium 24 3.3 Résumé du processus.0 00 ee HQ HH ga 28 3. ee 30 4 Programme de transformation de médium 31 4.1 Choix de langage de transformation: Kermeta.1 Architecture du Kermeta .2 Transformation de modéle utilisant Kermeta.1 Structure du programme.2 Démarche du programme en Kermeta .3 Métamodéles de médium.6 Evaluation et concÏlusion.
LH HQ ee eee Al 5 Conclusions et perspectives 42 Bibliographie 45 A Programme 46 Table des figures 1.1 Transformation automatique dans l’approche MDA .1 Aspect adaptation des composants pour réaliser application .2 Aspect déploiement physique de application .3 Eléments réutilisables dans la gÌu.4 Communication des composants via la glu et les médiums .9 Aspect déploiement d’une application utilisant des médiums .6 Relation générique entre un rédle et un médium .7 Diagramme d’états générique d’un médium .8 Description de l’application de gestion de places de parking .9 Diagramme de collaboration du médium de réservation.10 Vue dynamique de la collaboration du médium de réservation .11 Architecture de déploiement du médium de réservation .12 Relation générique entre un réle, un gestionnaire et un médium .13 Introduction des gestionnaires sur le diagramme de collaboration .14 Premier choix de conception : gestion centralisée .15 Deuxième choix de conception : gestlon distribuée.16 Déploiement de la version centralisée, avec le gestionnaire de réservation autonome 19 2.17 Etapes du processus de raffinement pour le médium de réservation .1 Injection d’un gestionnaire de données distribuées dans un médium .2 Introduction des gestionnaires de réle et des gestionnaires de données sur le diagramme de collaboration du médium de réservation .3 Injection d’un type abstrait de données dans un médium .4 Relation générique entre un réle, un gestionnaire de réle et un gestionnaire de données distribuées dans un médium .0 Diagramme de collaboration du médium de réservation, version distribuée, l’ago- rithme Chord est utilisé pour la gestion des identificateurs sur les gestionnaires de réserveur .6 Architecture de déploiement du médium de réservation avec l’agorithme Chord 3.7 Résumé du processus d’injection d’algorithmes dans un médium appliquant dans le médium de réservation.8 « Point de JoncflOn».1 Package kermeta : :language : :sifUCEUT©. Q Q Q HQ HH Ha 4.2 Transformation modéle-A-modéle dans Kermeta .3 Spécifications de médium dans le processus d’injection .4 Chaine des transformations réifiant le processus d’injection.5 Démarche du programme de transformation du médium en Kermeta .6 Structure des fichiers de code source du programme .7 Structure des fichiers de test du programme. AI Métamodéle de médiums .0 0 eee ee eee ee ne A.2 Métamodéle de stratégie de répartition de données. vil Chapitre 1 Introduction 1.1 Problématique Le MDA (Model-Driven Architecture) est une approche de spécification et de conception des applications, proposée par OMG de puis 2001.
L’idée fondamentale est que les fonctionnalités du systéme a développer sont définies dans un modéle indépendant de la plate-forme (Platform Independent Model, PIM), en utilisant un langage de spécification approprié, puis traduites dans un ou plusieurs modéles spécifiques 4 la plate-forme (Platform Specific Model, PSM) pour Vimplémentation concréte du systéme. La transformation du PIM aux PSMs est normalement effectuée 4 l’aide des outils auto- matisés, par des langages de transformation de modéle (Model Transformation Language). Le passage du PSM 4 la génération du code est la suite logique de ce traitement. PP 1 Transformation >———_—_—Ý ! ` | automatique Modèle PSM (Platform-Specific Model) Fic.1 — Transformation automatique dans l’approche MDA Suivant cette approche, Eric Cariou, Antoine Beugnard et Jean-Marc Jézéquel ont proposé dans leur recherche sur un processus de réification d’abstractions de communication [2] un 1 1.2 Motivation et objectifs du stage 2 processus de raffinement d’entités logiciclles appelées des composants de communication.
Is définissent tout d’abord le composant de communication : Un composant de communication ou d’interaction est un composant logiciel qui réifie une abstraction de communication. Une application est construite en interconnec- tant des composants de communication et des composants métiers ou fonctionnels. Afin de différencier ces deux types de composant, nous appelons les composants de communication des médiums. Puis, ils proposent une méthodologie de spécification de médium en UML (cette spécification est abstraite et indépendante de tout implémentation) et une architecture de déploiement de médiums.
Enfin, ils construisent un processus de raffinement qui permet de transformer une spécification abstraite de médium en des spécifications d’implémentation prenant en compte Varchitecture de déploiement et différents choix de conception ou d’implémentation. Dans la terminologie du MDA, ce processus de raffinement sert 4 transformer une spécification de niveau PIM aux spécifications de niveau PSM. Le médium et le processus de le raffiner sont proposés dans un contexte particulier : les systémes distribués. Pendant le processus de raffinement, on a plusieurs choix de conception ou d’implémentation (tels que la « gestion centralisée » ou la « gestion distribuée » des systémes répartis).
Afin de préciser les choix dans ce contexte, la thése d’Eveline Kaboré est initialisée depuis trois ans. Elle cherche un processus plus raffiné dans lequel il y a plusieurs choix de conception ou d’implémentation. La démarche est de spécifier ou d’implémenter les choix (tels que les stratégies ou les algorithmes de répartition de données). Ce stage est un petit travail qui s’inscrit dans sa thése.2 Motivation et objectifs du stage Dans les systémes distribués, on a besoins d’utiliser les algorithmes de répartition de don- nées.
Ce stage a pour but de chercher une solution d’injecter ces algorithmes dans un médium et intégrer cette solution dans le processus de raffinement, et puis, réifier ce processus par un programme de transformation de modéle. Le programme construit peut automatiquement transformer une spécification en UML d’un médium abstrait vers des versions plus concrétes (plus proche a la version de déploiement).