Serveur d`IHM pour plate-forme IDM : architecture générique
Transcription
Serveur d`IHM pour plate-forme IDM : architecture générique
Serveur d’IHM pour plate-forme IDM : architecture générique et implémentation Olivier Beaudoux1 , Arnaud Blouin2 , Mickaël Clavreul2 1 2 Groupe ESEO, GRI, Angers, INRIA, Équipe Triskell, Rennes Atelier IHM-IDM 2010 L’utilisation de l’IDM dans le contexte des IHM vise essentiellement à générer le code de l’application finale à partir d’une modélisation exhaustive de ladite application[8]. La modélisation et la génération de code sont préalablement réalisées via une plate-forme IDM, alors que l’application finale s’exécute a posteriori sur une ou plusieurs plates-formes IHM. Le code généré doit par conséquent inclure, pour chacune des plates-formes IHM visées, l’implémentation de mécanismes utilisés pour exécuter l’IHM. Ces mécanismes peuvent par exemple inclure les liaisons dynamiques entre l’interface abstraite, l’interface concrète et les données qu’elle manipule, ou/et la gestion de la persistance des données (et éventuellement de l’interface abstraite). Une telle approche induit une contrainte forte d’implémentations multiples de tels mécanismes. Cet article propose une approche originale dans laquelle la plate-forme IDM joue, en plus du rôle de plate-forme de modélisation, le rôle de plate-forme d’exécution, rôle partagé avec la plate-forme IHM. Il devient alors possible d’implémenter les mécanismes évoqués ci-dessus une seule fois sur la plate-forme IDM. La liaison entre les plates-formes IDM et IHM se fait via un serveur graphique, lequel intervient exclusivement au niveau PDM (« Platform Dependant Model »). La figure 1 page suivante donne le synoptique global de notre approche. L’application est décomposée en différents éléments : les données du domaine (D), leurs présentations abstraite (PA) et concrète (PC), et l’interface utilisateur (UIC) qui intègre les trois types de composants que sont les présentations concrètes, les conteneurs et les interacteurs [2, 4]. Les éléments D, PA et PC sont modélisés sous la plate-forme IDM, ici Kermeta [7], via trois fichiers Ecore ; ils sont également gérés par Kermeta lors de l’exécution de l’application. L’interface utilisateur est entièrement construite par l’outil de conception fourni par la plate-forme IHM, ici FlexBuilder (fichier MXML) ; elle s’exécute in fine sur la plate-forme IHM Flex [6]. Nous présentons dans cet atelier l’architecture client/serveur graphique générique (partie non grisée de la figure 1 relative au niveau PDM), ainsi que son implémentation pour les plates-formes Kermeta (client graphique) et Flex (serveur graphique). Une telle architecture donne à Kermeta l’accès à différentes plates-formes d’IHM afin de gérer les niveaux PIM 1 Plate-forme IDM (Kermeta) Plate-forme IHM (Flex, ou autres) Client Graphique Ecore Présentation concrète (PC) Présentation concrète (PC) Interacteurs et conteneurs MXML Ecore Présentation abstraite (PA) Serveur Graphique Ecore Interface concrète (IUC) Données (D) PIM PDM Figure 1: Synoptique de l’approche (« Platform Independant Model ») et PDM de l’application, depuis leur modélisation jusqu’à leur exécution. A court terme seront implémentés les serveurs graphiques pour les platesformes Swing et Gtk, compatibles avec le client graphique Kermeta. A plus long terme et en fonction des besoins, d’autres implémentations pourront être fournies. Cette approche sera en particulier utilisée conjointement au modèle proposé côté PIM (décomposition D/PA/PC de la figure 1), lequel peut être implémenté de différentes façons [3, 1, 5]. Références [1] Olivier Beaudoux, Arnaud Blouin, and Slimmane Hammoudi. Transformations actives dédiées aux IHM. In Cinquièmes Journées sur l’Ingénierie Dirigée par les Modèles, 2009. [2] Arnaud Blouin. Un modèle pour l’ingénierie des systèmes interactifs dédiés à la manipulation de données. PhD thesis, Université d’Angers, 2009. [3] Arnaud Blouin, Olivier Beaudoux, and Stéphane Loiseau. Malan : A mapping language for the data manipulation. In DocEng ’08 : Proceedings of the 2008 ACM symposium on Document engineering, pages 66–75. ACM Press, 2008. [4] Gaëlle Calvary, Joëlle Coutaz, David Thevenin, Q. Limbourg, L. Bouillon, and Jean Vanderdonckt. A unifying reference framework for multi-target user interfaces. Interacting With Computers, 15(3) :289–308, 2003. [5] Mickael Clavreul, Olivier Barais, and Jean-Marc Jézéquel. Integrating legacy systems with mde. In Proc. of ICES 2010, 2010. [6] Chafic Kazoun and Joey Lott. Programming Flex 2.0. O’Reilly Media, 2007. [7] Pierre-Alain Muller, Franck Fleurey, and Jean-Marc Jézéquel. Weaving executability into object-oriented meta-languages. In Proceedings of MODELS/UML’2005, volume 3713 of LNCS, pages 264–278. Springer, 2005. [8] Pedro Szekely. Retrospective and challenges for model-based interface development. In Proc. of DSV-IS’96, pages 1–27. Springer-Verlag, 1996. 2