Aller au contenu. | Aller à la navigation

Outils personnels

Navigation

Vous êtes ici : Accueil / Articles / L'architecture de TranS

L'architecture de TranS

Par Amen Souissi publié 11/01/2012 15:35, Dernière modification 12/01/2012 19:19
Dans cet article nous parlerons de l'architecture de TranS composée et fondée essentiellement sur trois parties ; le métamodèle MATS(Modeling and Analysis of Transformation Strategy), les activités et les exécuteurs. Nous parlerons, aussi, de la relation entre ces parties.

1 Introduction :

Pour développer TranS nous avons suivie une démarche basée sur la réutilisation jusqu'aux organes de TranS lui même ce qui nous permet de réutiliser ses fonctionnalités par exemple le moteur. L'architecture de TranS est fondée sur trois parties principales (voire figure suivante) qui sont ; le métamodèle MATS(Modeling and Analysis of Transformation Strategy), les activités et les exécuteurs.

Architecture de TranS

2 MATS :

Le metamodèle MATS est composé de trois metamodèles ; le cœur, le métamodèle des stratégies et enfin le métamodèle des activités. Seuls le métamodèle des stratégies et celui des activités seront détaillés. En effet, le cœur nous permet de capter les concepts abstraits.

2.1 le métamodèle des stratégies :

Un modèle de stratégie est avant tous un modèle permettant de décrire un procédé logiciel[1] dans le cadre de l'IDM. En contraire avec le diagramme d'activité UML un modèle de stratégie ne peut avoir plusieurs Lane (définissant l'ensemble des tâches pour un acteur donné). Le seul acteur dans un modèle de stratégie est le système puisque, dans notre cas, le bute est d'automatiser toute la stratégie de transformations. Les stratégies que nous modélisons sont centrées sur les données. Dans ce modèle les données et les relations entre les données sont précisément présentées. L'ordre d’exécution des activités est, donc, défini par la disponibilité ou non des données d'entrée. Sur ce point un modèle de stratégie est en commun avec le diagramme de composant UML.

Dans un modèle de stratégie centré sur les données nous pouvons identifier cinq concepts clef qui sont ;

  • Les instances des activités (ActivityPart) qui présentent le comportement désiré. Ces activités sont comparables aux composants, pour fonctionné elles ont besoin d'un ensemble de paramètres d'entrée de sorti ou d'entré sorti de différents types. Dans notre métamodèle les instances des transformations de modèles des générations de code des exécuteurs et enfin des stratégies sont considérées comme des instances d'activité . Une instance d'une activité, dans notre métamodèle, nous permet de représenter une même activité plusieurs fois dans le bute de la réutilisé.
  • Les données permettant ainsi d'initialiser les paramètres. Ces données peuvent être dynamiques sous forme d'expression calculer à l’exécution. Nous trouvons différents types de donnés par exemple les ressources ou les données primitives. En parallèle, il existe différents types de ressources par exemple les fichiers, les dossiers ou les modèles. Ces derniers peuvent avoir une URI dynamique permettant ainsi de référencer des ressources dynamiquement.
  • Les flots de données qui permettent de transiter une donnée d'une source à une destination. La source et la destination peuvent être des paramètres ou des données. Un flot de données peut être bloqué ou pas selon l'évaluation de la guard qu'il porte. Il est considéré comme une dépendance de données entre la destination et la source.
  • Les dépendances des données nous permettent de décrire la relation entre les données. En effet les flots des donnés sont considérés comme des dépendances de donnés explicite il n'exprime pas, donc, les dépendances implicites ou cachées que nous pouvons trouvé dans les stratégies dynamiques.
  • Enfin les nœuds de branchement qui nous permet d'avoir une présentation plus simple des flots des données. Dans une stratégie centrée sur les données, nous pouvons identifier un seul type de nœud de branchement. Le nœud parallèle qui permet de recevoir plusieurs flots entrants et propager l'ensemble de données sur les flots sortants.

2.2 le métamodèle des activités :

Pour représenter les activités dans un modèle décrivant une stratégie nous utilisons les ActivityPart. Cette dernière référence les activités présentes dans le système.

Une activité (Activity) est, donc, une description, une vue abstraite contenant les métadonnées d'une implémentation donnée. Dans notre métamodèle une transformation de modèles, une génération de code, un exécuteur et enfin une stratégie sont considérés comme des activités qui peuvent être référencées par des instances (Part).

Ce modèle est totalement indépendant des technologies utilisées. En effet les types des activités (au niveau technologique) sont détectés automatiquement (voir figure précédente).

3 les activités (niveau implémentation) :

les implémentations des activités sont décrites par le métamodèle des activités de MATS est peuvent être de natures différentes (boite noire, transformations, exécuteurs....). Les fonctionnalités de TranS sont implémentées sous forme d'activité ce qui nous permet de les réutiliser et les maintenir facilement.

Pour ajouter une activité dans TranS nous nous basant sur la notion des points d’extension d'Eclipse ce qui permet au métamodèle MATS de détecté les activités enregistrées.

4 les exécuteurs (niveau implémentation) :

les exécuteurs présente les technologies utilisées dans TranS. Ils peuvent être considérés comme des activités ce qui permet de les réutiliser dans une stratégie dans le but d'exécuter dynamiquement des transformations par exemple. Dans TranS seulement l’exécuteur universel et le moteur sont enregistrés comme activité.

Le moteur de TranS est un exécuteur permettant d'interpréter le modèle de stratégie. D'une manière simplifiée le moteur commence par faire un ordonnancement des activités puis les exécute en s'appuyant sur l’exécuteur universel qui lui fait appel au bon exécuteur. Ce moteur gère, aussi, les interactions avec l'utilisateur. En effet pour les paramètres à saisir par l'utilisateur le moteur génère un modèle d'interface graphique présentant un formulaire permettant enfin de saisir les données. Le modèle de l'interface graphique est décrit par le métamodèle UI est permet de faire un rendue graphique d'une manière dynamique.

Pour ajouter une technologie dans TranS nous nous basant sur la notion des points d’extension d'Eclipse ce qui permet au métamodèle MATS de détecté les technologies enregistrées.

5 Conclusion et perspectives :

Dans cet article nous avons présenté l'architecture de TranS qui suit une démarche basée sur la réutilisation et l’extensibilité. Comme travaux futurs nous voulons générer à partir du modèle de stratégie la structure des projets des activités ce qui faciliteras le développement et l'utilisation dans le cadre de l'environnement TranS. Des travaux en cours se concentrent sur la partie concernant l'interface graphique pour les formulaires pour les rendre plus adaptés au besoin de l'utilisateur.


[1] Environnement de procédé extensible pour l’orchestration Application aux services web, Sonia JAMAL,2005.