Ingénierie dirigée par les modèles en informatique
Ingénierie dirigée par les modèles en informatique
Spécialité Informatique
Slimane HAMMOUDI
Président du Jury
Jean-Louis Ferrier Professeur, Université d’Angers - ISTIA
Rapporteurs
Thérèse Libourel Professeur, Université de Montpellier 2 - LIRMM
Michel Léonard Professeur, Université de Genève, FSES - Suisse
Taleb-Bendiab Professeur, Université de Liverpool, JMU - UK
Examinateurs
Stéphane Loiseau Professeur, Université d’Angers - LERIA
Joaquim Filipe Professeur, Polytechnique de Setubal, EST - Portugal
Table des matières
1 Introduction 7
1.1 Contexte et domaines applicatifs . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.1.1 L’ingénierie dirigée par les modèles . . . . . . . . . . . . . . . . . . . . . . 8
1.1.2 Les services Web et applications internet . . . . . . . . . . . . . . . . . . . 8
1.1.3 L’informatique pervasive et les applications sensibles au contexte . . . . . 9
1.2 Démarche de recherche et contributions . . . . . . . . . . . . . . . . . . . . . . . 9
1.2.1 Techniques de modélisation et méta modélisation . . . . . . . . . . . . . . . . 10
1.2.2 Techniques de transformations . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.2.3 Méthodologies de développement . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.3 Organisation du mémoire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2
TABLE DES MATIÈRES 3
Bibliographie 106
Avant propos
Parcours scientifique
Mes premier pas dans la recherche ont été réalisés, le second semestre de l’année 1988 à l’uni-
versité de Montpellier II, lors de mon travail de stage de DEA. Le CRIM (Centre de Recherche
en Informatique de Montpellier) fut alors mon premier centre de recherche. Celui-ci a donné nais-
sance après fusion avec le LAM (Laboratoire d’automatique de montpellier) à une unité mixte le
LIRMM (Le Laboratoire d’informatique, de Robotique et de Microélectronique de Montpellier).
J’ai débuté mon stage de DEA sous la responsabilité des professeurs Claude Boksenbaum et Jean
Ferrier ou je devais étudier les techniques de contrôles de concurrences classiques et leur mise en
oeuvre dans les bases de données orientées objets. Ce stage entré dans le cadre d’une coopération
avec L’INRIA autour du grand projet O2 sous la conduite de Francois Bancilhon, visant à la
conception d’un système de gestion de bases de données orientée objets. Le point de départ de
mes recherches a été l’article de référence publié en 1981 : Concurrency Control in Distributed
Database Systems. ACM Comput. Survev par Philippe Bernstein ainsi que le livre publié en 1987
par le même auteur chez Addison-Wesley sur le même sujet. Au delà du mécanisme de “Contrôle
de Concurrence” étudié lors de mon stage de DEA, l’approche Orientée Objets à travers le projet
O2 initialement, a constituée sans aucun doute la base pour mes travaux de recherche futurs. Le
projet O2 initié en 1988 a engendré une intense activité de recherche autour de l’approche orientée
objet au niveau national et a donné lieu à un livre Building an Object-Oriented Database System,
The Story of O2, regroupant les principaux articles produit au cours de ce projet. La plupart
de ces articles ont constitués mes références bibliographiques initiales autour de l’approche objet.
Poursuivant et me confortant dans la voie que j’avais empruntée, j’ai décidé juste après mon
DEA, de déposer une demande de bourse d’étude afin d’entamer une thèse en informatique.
En septembre 1989 la demande de bourse m’a été accordée dans le cadre des accords franco-
algériens et j’ai ainsi continué en thèse dans l’équipe de M.Claude Boksenbaum dans le domaine
des systèmes d’information et les bases de données. Mon travail concernait la conception d’un
système d’aide à l’organisation et la réalisation de tâches dans un environnement bureautique.
Les systèmes de Workflow et de Groupware pour lesquels une intense activité de recherche a vu
le jour au début des années 1990, n’ont fait que conforter mes travaux de recherche durant ma
thèse. Le concept clé sur lequel a reposé ma thèse est celui de tâche qui permet de modéliser
l’activité d’un employé dans une organisation. Autour de ce concept, notre travail s’est décliné
en trois étapes :
L’un des principaux constat de mon travail de thèse fut que les deux principaux courants de
l’approche objet issus des langages de programmation et des bases de données, n’étaient pas
adaptés à la représentation du concept de tâche dédié à la modélisation de l’activité d’un em-
ployé. Cette dernière nécessitait une richesse sémantique et une flexibilité dans la représentation,
que n’avaient pas les deux principaux courants de l’approche objet.
4
TABLE DES MATIÈRES 5
Dès la fin de ma thèse j’ai été sollicité par un collègue brésilien pour participer dans un
nouveau programme de postgraduation au Brésil à l’Université Fédérale du Maranhão (UFMA).
Mon parcours international à démarré en Janvier 1994 avec une première expérience au Brésil
comme professeur visitant jusqu’à Août 1997. Suivi d’une expérience au Portugal de septembre
1997 jusqu’à Août 1999 comme professeur invité au département des systèmes d’information de
l’université de Minho. Les connaissances acquise durant ma thèse de doctorat sur l’approche
orientée objets et les systèmes de gestion de tâches, ont été renforcées durant les six années de
mon parcours international par le développement de deux principaux projets de recherche. Ces
projets avaient pour premier objectif l’encadrement d’étudiants en master, et ont été menés en
coopération avec d’autre collègues du Brésil, Portugal et Australie. Voici une description succinte
des deux projets :
- Le projet GOOSM 1 (1996-1998, Brésil) le principal objectif de ce projet fut la proposition
d’un modèle conceptuel dédié à la conception des bases de données avancées (orientées objets
en particulier). Ce modèle intègre d’une part la richesse structurelle des modèles sémantiques,
et d’autre part les aspects comportementaux des modèles a objets. Ce projet a donné lieu à un
travail de Master présenté à l’UFMA au Brésil .
- Le projet WEICOT 2 (1996-2000, Brésil puis Portugal) fait suite à mes travaux de thèse
sur la conception d’un système d’aide à la réalisation de tâches. Ce projet a été mené en co-
opération avec le Professeur Labidi, qui, après avoir terminé sa thèse a Nice en 1995, a rejoint
le programme de Postgraduation au Brésil. Notre constat en ce temps fut que les systèmes de
Workflow proposés n’étaient pas adaptés aux activités complexes faiblement structurées et de
longues durées. Nous avons alors étudié une extension aux systèmes de workflow existants en
proposant deux mécanismes fondamentaux pour la gestion des activités complexes : la coopéra-
tion (plusieurs acteurs sont généralement impliqué dans la réalisation d’une activité complexe)
et l’organisation temporelle (la planification des activités de longues durées). Ce projet a donné
lieu à deux travaux de Master présenté à l’UFMA au Brésil
En Septembre 1999 je suis recruté à L’ESEO (École Supérieure de l’ouest) sur Angers. En no-
vembre 2000 l’OMG (Object Management Group) a proposé une approche nommée Model Driven
Architecture (MDA™) pour le développement et la maintenance des systèmes à prépondérance
logicielle. Cette approche s’insère dans une tendance plus générale appelée Ingénierie Dirigée
par les Modèles (IDM) qui considère les modèles comme les outils de base dans la production,
le fonctionnement et l’évolution des systèmes logiciels. Suite à l’approche objet des années 80
et de son principe du « tout est objet », l’ingénierie du logiciel s’est orientée vers l’ingénierie
dirigée par les modèles et le principe du « tout est modèle ». Cette nouvelle tendance s’inscrit
en continuité avec nos précédents travaux, où l’approche par objets a toujours représentée notre
cadre conceptuel pour le modélisation et la représentation des connaissances dans les différents
domaines d’applications. En février 2002, avec l’arrivée de Denivaldo Lopes du Brésil pour réali-
ser une thèse de doctorat en France, j’ai commencé mon premier encadrement autour de l’IDM
avec l’aide d’une bourse du conseil général de Maine et Loire.
Le présent document
Traditionnellement, la phase de rédaction de rapport d’habilitation à diriger des recherches
est l’occasion de prendre du recul par rapport au travail en cours pour faire une synthèse et une
analyse sur tout ce que nous avons réalisé dans le domaine de la recherche. Il me paraît évident
que si je reproduisais la synthèse de tous mes travaux issus de mon parcours international dans ce
document, ceci apparaîtrait incohérent et son contenu éclaté. Ainsi, il ne me semble pas pertinent
de faire cohabiter, dans un même document, mes travaux sur la conception des bases de données
avancées d’une part, les systèmes de workflow d’autre part avec ceux sur l’ingénierie des modèles.
En conséquence le présent document vous présente une synthèse de mes travaux depuis 2002,
année de lancement de mon premier projet de recherche autour de l’IDM et l’inscription de
mon premier thésard sur cette nouvelle thématique. Cependant, je présenterai en annexe de
ce document un résumé des différents projets de recherche mené en coopération avec d’autre
collègues lors de mon parcours international. Ainsi, les travaux présentés ici portent sur l’étude
et l’application de l’approche IDM à deux domaines important de la dernière décennie :
– Les services Web comme plateforme de développement et d’intégration des applications
internet ;
– l’Informatique ubiquitaire et les applications sensibles au contexte.
Au delà de l’application des concepts et des techniques de l’IDM à deux domaines phares et des
contributions qui en découlent, la spécificité de ce travail et une de ses originalités est d’avoir
renforcé et mis en oeuvre un des principes essentiel du génie logiciel et fondateur de l’IDM : le
principe de la séparation des préoccupations.
Cette habilitation est en partie le fruit du co-encadrement de trois thèses de doctorat. Deux
thèses déja soutenues respectivement à l’université de Nantes et d’Angers en collaboration avec
les professeurs J. Bézivin (LINA, Nantes) et S. Loiseau (LERIA, Angers). La dernière thèse est en
phase finale et sera soutenue courant 2011 à l’université de Tunis dans le cadre d’une coopération
avec Prof. M. Gammoudi (Fac Sciences, Tunis). Cette dernière thèse est co-encadré avec Prof.
M. Huchard du laboratoire LIRMM de Montpellier.
Chapitre 1
Introduction
Nos travaux ont pour contexte l’ingénierie dirigée par les modèles (IDM), que l’on peut définir
au sens large comme une nouvelle approche qui étudie l’usage des modèles dans les processus
d’ingénierie. Comme dans tout processus d’ingénierie, le processus est indissociable du produit.
Le produit est le résultat à atteindre, tandis que le processus est le chemin qu’il faut parcourir
pour atteindre le résultat. L’ingénierie dirigée par les modèles s’inscrit dans cette perspective
qui considère les modèles comme les outils de base dans la production, le fonctionnement et
l’évolution des systèmes. Les systèmes d’information sont notre champ d’application avec deux
domaines cibles :
- les plateformes services Web ;
- l’informatique pervasive et les applications sensibles au contexte.
Ces deux domaines phares de l’ère Internet et de la mobilité sont liés. Les applications sen-
sibles au contexte ont suscité un grand intérêt en particulier depuis l’émergence des technologies
sans fil d’une part et des terminaux mobiles d’autre part. Ces applications sont, dans le cadre
d’internet, majoritairement distribuées et mobiles. D’un autre coté, les services Web ont réussi à
être les plateformes consensuelles d’interopérabilité entre applications réparties sur le Web. Au-
jourd’hui, les plateformes services Web, regroupent les technologies les plus prometteuses pour
la mise en œuvre des applications distribuées et mobiles sur internet et, en particulier, des ap-
plications sensibles au contexte. Le concept de "services sensibles au contexte" est de nos jours
un domaine à part entière.
L’objectif principal de nos travaux est l’étude et l’application de l’ingénierie dirigée par les
modèles en se focalisant sur trois de ses principaux axes :
- les techniques de modélisation et métamodélisation ;
- les techniques de transformation ;
- les méthodologies de développement.
Nos contributions s’inscrivent dans ces trois principaux axes de l’ingénierie dirigée par les modèles
et dans leurs applications à nos deux domaines cibles : les services Web et les applications sensibles
au contexte. Une des originalités de nos travaux est d’avoir suivi une approche qui respecte,
renforce et met en œuvre le principe de la séparation des préoccupations, un des principes
essentiels du génie logiciel et fondateur de l’ingénierie dirigée par les modèles. Nous allons dans
un premier temps présenter brièvement l’IDM suivi de nos deux domaines d’application afin de
préciser le contexte général de nos travaux. Nous discuterons ensuite nos principales contributions
dans la section 1.2
7
CHAPITRE 1. INTRODUCTION 8
En plus de leur standardisation par le W3C, la vraie force des services Web est dû à leur large ac-
ceptation par l’ensemble des acteurs des systèmes d’information et des logiciels sur internet. Une
plateforme service Web permet de créer, de personnaliser et d’héberger des services en utilisant
les technologies standards. Dans nos travaux nous étudions et expérimentons l’approche MDA
pour la plateforme service web. Notre démarche sera illustrée par un exemple typique d’applica-
tion internet qui est à la fois B2C (Business-to-Consumer ) et B2B (Business-to-Business). Elle
illustre donc bien la problématique des applications métiers qui mettent en œuvre des interactions
aussi bien avec les clients finaux qu’avec d’autres applications de partenaires.
Notre démarche pour l’étude et l’application de l’approche MDA est guidée par ce principe
de la séparation des préoccupations. Le point clé de notre démarche de recherche est la mise en
œuvre de ce principe dans l’ensemble des trois problématiques nous concernant : la modélisation
et la métamodélisation, la transformation et la méthodologie de développement.
Ainsi, les principales contributions de nos travaux reposent et découlent de ce principe de
la séparation des préoccupations, et s’inscrivent dans les trois principaux thèmes de l’IDM et
MDA :
- les techniques de modélisation et métamodélisation ;
- les techniques de transformation ;
- les méthodologies de développement.
Nous avons appliqué et renforcé le principe de la séparation des préoccupations lors de l’étude
et la mise en oeuvre de l’IDM à travers MDA à nos deux domaines cibles : les services Web et
les applications sensibles au contexte. Deux types de contributions résultent de nos travaux :
Celles liées aux techniques de MDA intrinsèquement (processus de transformation) et celles qui
découlent de l’application de MDA. Toutes ces contributions sont résumées dans les trois sections
ci-dessous dédiées aux trois principaux axes de MDA.
Lorsque nous avons étudié l’approche MDA et son application à la plateforme services web
pour le développement des applications internet, nous nous sommes intéressés à deux langages
standard de L’OMG : UML et EDOC. Nous avons étudié ces langages pour la représentation
d’une part des modèles métiers (PIM) et d’autre par pour la représentation de la plateforme
cible service web (PSM). Nous avons alors appliqué le principe classique de séparation des pré-
occupations de MDA (PIM-PSM), et nos contributions ont été les suivantes :
– la définition des métamodèles pour les plateformes J2EE et dotNet à partir des langages
UML et EDOC ;
CHAPITRE 1. INTRODUCTION 11
– la définition d’un modèle d’application internet et sa mise en œuvre sur les plateformes
J2EE et dotNet ;
– Une étude de l’impact du type du langage de modélisation dans une démarche MDA :
UML (type généraliste) versus EDOC (type DSL - Domain Specific Language).
L’étude des applications sensibles au contexte à partir de l’approche MDA nous a mené à nous
intéresser aux ontologies et la spécification ODM de l’OMG. En effet, les langages issus de la
mouvance des ontologies semblaient plus adaptés à la représentation des données contextuelles.
Notre principale préoccupation a été de regarder d’une part comment définir les information
contextuelles, et d’autre part comment les intégrer dans la logique métier d’une application. Nos
contributions dans cette partie sont les suivantes :
– la proposition d’un métamodèle de contexte centré utilisateur dans un environnement mo-
bile. Notre métamodèle prend en compte les entités contextuelles les plus référencées dans
l’état de l’art. Ceci nous permet de dériver des modèles de contexte au plus près des situa-
tions réelles du développement d’applications sensibles aux contexte ;
– l’application du principe de séparation des préoccupations au niveau modèles entre la
logique métier et les données contextuelles. Les modèles de contexte (CM) et les modèles
métiers (PIM) sont définis séparément puis intégrés par une technique de transformation
adaptée, qui sera discutée dans la section suivante. Nous avons proposé deux nouveaux
types de modèles désignés par CPIM (Contextual Platform Independant Model) et CPSM
(Contexual Platform Specific Model).
Dès nos premiers pas dans l’IDM, nous nous sommes intéressés au processus de transfor-
mation proposé par l’OMG [OMG, 2005]. Dans ce processus, la définition des règles de trans-
formations est faite au niveau des métamodèles et l’exécution de ces règles se fait au niveau
des modèles. En s’inspirant du domaine des bases de données et en particulier des travaux de
Bernstein [Bernstein, 2003] d’une part, et celui des ontologies d’autre part [Do et al., 2003] nous
avons appliqué le principe de séparation des préoccupations au processus de transformation, et
nos contributions ont été les suivantes :
– une méthodologie de mise en œuvre de l’approche MDA pour le développement des appli-
cations internet sur la plateforme service web. Dans cette méthodologie nous mettons en
avant le principe de la séparation des préoccupations mapping versus transformation.
Le tableau 1.1 résume les principales contributions de notre étude de l’approche IDM à travers
MDA, et de son application à nos deux domaines cibles : les services Web et les applications
sensibles au contexte. La première colonne "IDM(MDA)", présente nos contributions aux trois
principales problématiques de l’IDM à partir de MDA, indépendamment du domaine d’appli-
cation. Les deux colonnes suivantes, présentent nos contributions suite à l’application de l’IDM
à partir de MDA à nos deux domaines cibles. Les contributions qui relèvent du principe de la
séparation des préoccupations sont illustrées en italique.
le chapitre 2 présente l’ingénierie dirigée par les modèles dans le but d’une part de définir les
notions abordées dans ce mémoire, et d’autre part de situer notre contribution liée au processus
de transformation dans MDA.
le chapitre 5 présente notre approche pour la mise en œuvre d’un processus semi-automatique
de la transformation dans MDA. Ce chapitre est une synthèse des travaux en cours dans le cadre
d’une thèse co-encadré avec les professeurs Marianne Huchard (Lirmm, Montpellier) et Mohamed
Gammoudi (Fac des sciences de Tunis). La thèse sera soutenue par Wajih Alouini à la Fac des
Sciences de Tunis courant 2011.
Dans chacun des chapitres 3, 4 et 5 nous dresserons un panorama des travaux connexes et nous
situerons notre approche par rapport à l’état de l’art. Nous insisterons aussi sur les points forts
et les travaux qu’il reste à mener.
Le chapitre 6 présente la conclusion résumant les principaux apports de nos travaux et dis-
cutant des perspectives de recherche que nous entrevoyons pour les prochaines années.
Deux annexes sont également fournies. L’annexe A est dédiée à mon curriculum vitae. L’an-
nexe B contient une sélection d’articles qui balaie les projets de recherche menés.
Chapitre 2
MDA is probably not the silver bullet for software engineering, but :
there is no reasonable alternative to MDA [Bézivin, 2003].
2.1 Introduction
Avec le développement des réseaux et de l’avènement de l’internet et principalement du
Web, les systèmes d’information n’ont jamais été autant au centre de la stratégie des entreprises
que durant la dernière décennie. Les fonctionnalités qu’ils offrent, leur facilité d’utilisation, leur
fiabilité, leur performance et leur robustesse sont des qualités indéniables qui permettent aux
entreprises d’innover et d’être compétitives. De nouvelles technologies et plate-formes d’exécu-
tions et de nouvelles versions de logiciels sont proposées continuellement afin de faciliter la mise
en œuvre de ces systèmes d’information tout en accroissant leurs qualités. La dernière en date
de ces technologies et plate-forme d’exécutions est certainement la plate-forme orientée service
et l’architeture logicielle associée désignée par l’architecture orientée service (notée SOA pour
Services Oriented Architecture).
Le vrai problème de ces nouvelles technologies et plate-formes d’exécutions, est qu’elles sont
toujours plus complexes et allourdissent considérablement les contraintes imposées aux équipes de
développement. Cela met les entreprises devant un vrai dilemme, car elles hésitent entre adopter
une nouvelle plate-forme et subir le coût de la migration ou ne pas l’adopter et prendre le risque
de voir les concurrents devenir plus compétitifs en ayant adoptée la nouvelle plate-forme.
Ce dilemme est un inconvénient majeur pour l’évolution des systèmes d’information des en-
treprises. La compléxité des plates-formes d’exécutions est la cause réelle de cet inconvénient,
pourtant ces plates-formes sont conçues pour améliorer la productivité et faciliter la maintenance
des systèmes informatiques. Pour répondre à ce frein au développement des systèmes d’informa-
tion, il était nécessaire de définir une approche permettant de faire face à la compléxité. Cette
approche se devait d’être fléxible et générique afin de pouvoir s’adapter à tout type de plate-
forme.
En novembre 2000, l’Object Management Group (OMG) a proposé l’approche nommée Model
Driven Architecture (MDA™) pour le développement et la maintenance des systèmes à prépon-
dérance logicielle [Soley, 2000]. MDA applique la séparation des préoccupations entre la logique
métier des systèmes informatiques et les plates-formes utilisées et se fonde sur l’utilisation mas-
sive des modèles. Ainsi, la pérennité est l’objectif principal de MDA. Il s’agit de faire en sorte
que la logique métier des applications ne soit plus mêlée aux considérations techniques de mise
en production. Il devient dès lors possible de capitaliser les savoir-faire et d’être beaucoup plus
réactif aux chagements technologiques. Pour atteindre cet objectif, MDA vise à représenter sous
forme de modèles toute l’information utile et nécessaire à la construction et à l’évolution des
systèmes d’information. Les modèles sont au centre du cycle de vie des logiciels et des systèmes
d’information.
14
CHAPITRE 2. L’IDM, L’APPROCHE MDA ET POSITIONNEMENT. 15
Au-delà de la proposition spécifique MDA de l’OMG, l’Ingénierie Dirigée par les Modèles
(IDM), ou Model Driven Engineering (MDE) en anglais, permet d’appréhender le développement
de systèmes complexes en se concentrant sur une préoccupation plus abstraite que la program-
mation classique. Il s’agit d’une forme d’ingénièrie générative dans laquelle tout ou partie d’une
application est engendrée à partir de modèles. L’objectif de l’IDM est de définir une approche
pouvant intégrer différents espaces technologiques [Kurtev et al., 2002]. Ainsi, l’approche MDA
devient une variante particulière de l’Ingénierie Dirigée par les Modèles. L’IDM peut être vue
comme une famille d’approches qui se développent à la fois dans les laboratoires de recherche et
chez les industriels impliqués dans les grands projets de développement logiciels.
Dans ce chapitre, nous proposons dans un premier temps une présentation des concepts clés de
l’IDM et des principales approches afférentes (section 2.2) puis nous focaliserons notre discussion
sur l’approche MDA et les travaux de normalisation de l’OMG (section 2.3). Nous détaillons
les deux premiers axes principaux de l’IDM selon l’approche MDA et surlesquels portent nos
travaux de recherche : le processus de développement et la modélisation (métamodélisation).
La section 2.4 présente la transformation de modèles qui est le troisième axe clé de MDA. La
section 2.5 présente une première contribution de nos travaux de recherche liée au processus de
transformation de modèles dans MDA. Le principe de la séparation des préoccupations est alors
mis en œuvre entre d’une part la spécification des correspondances entre métamodèles, et d’autre
part la génération des règles de transformations. Nous concluons enfin par la section 2.6 avec
une discussion sur les limites actuelles de l’IDM et les travaux de recherche en cours.
cet ensemble d’informations est choisi pour être pertinent vis a vis de l’utilisation qui sera faite
du modèle. On dit alors que le modèle représente le système. On déduit de cette définition la
première relation fondamentale de l’IDM, entre le modèle et le système qu’il représente, nommée
represents dans [Atkinson et Kühne, 2003][Bézivin, 2004a]. Par analogie avec les langages de
programmation, un programme exécutable représente le système alors que le code source de ce
programme représente le modèle.
En effet, une transformation exprime des correspondances structurelles entre les modèles source
et cible. Ces correspondances structurelles s’appuient sur les métamodèles des modèles source
et cible [Blanc, 2005]. Par exemple, une transformation de modèles visant à transformer des
modèles UML vers des programmes JAVA spécifierait la règle suivante : à toute classe UML
correspond une classe JAVA. Cette même règle, exprimée selon les métamodèles, deviendrait :
à tout élément du modèle source instance de la métaclasse Class du métamodèle UML doit
correspondre un élément du modèle cible instance de la métaclasse Class du métamodèle JAVA.
Cette règle exprime bien une correspondance structurelle entre les métamodèles UML et JAVA
et plus précisément une correspondance entre les métaclasses Class (UML) et Class (JAVA).
La figure 2.3 illustre les relations entre les transformations de modèles et les métamodèles. Si la
transformation est ici binaire, avec une unique source et une unique cible, il est important de
souligner que les transformations de modèles peuvent être N-aires, c’est à dire qu’elles peuvent
avoir en entrée et en sortie plusieurs modèles.
MDA définit plusieurs fomalismes standards de modélisation, notament UML, MOF et XMI,
afin de promouvoir les qualités intrinsèques des modèles, telles que pérennité, productivité et prise
en compte des plateformes d’exécution. La section 2.3.2 présentera les principaux standards de
MDA et leur place dans le processus de modélisation et métamodélisation. Le principe clé de MDA
consiste en l’utilisation de modèles aux différentes phases de développement d’une application en
s’appuyant sur le standard UML. Plus précisément, MDA préconise l’élaboration des modèles :
– d’exigences (Computation Independant Model - CIM), dans lesquels aucune considération
informatique n’apparait,
– d’analyse et de conception (Platform Independant Model - PIM)
– de code (Platform Specific Model - PSM).
Dans la section 2.3.1 nous discuterons ces trois types de modèles et leur place dans le processus
de développement MDA. L’objectif majeur de MDA [Blanc, 2005], est l’élaboration de modèles
pérennes (PIM), indépendants des détails techniques des plateformes d’exécution (J2EE, .Net,
PHP, Oracle, ect.), afin de permettre la génération automatique de la totalité des modèles de
code (PSM) et d’obtenir un gain significatif de productivité. Cette génération automatique est
possible grâce à l’exécution des transformations de modèles. On comprend pourquoi le succés
de MDA et de l’IDM en général, repose en grande partie sur la résolution de problème de
transformation de modèle. Cette problématique a donnée lieu ces dernières années à de nombreux
travaux académiques [Jézéquel, 2004, Jouault, 2006], industriels [TOPCASED-WP5, 2008] et de
normalisation [OMG, 2002c]. Ainsi, afin de donner un cadre normatif pour l’implémentation
des différents langages dédiés à la transformation de modèles, l’OMG a défini le standard QVT
(Query/View/Transformation) [OMG, 2008]. La section 2.4 sera dédiée à la partie transformation
de modèles dans MDA.
utilisent des méthodes plus ou moins sophistiquées et plus ou moins formalisées. Les cuisiniers
parlent de recettes de cuisine, les pilotes déroulent des check-lists avant le décollage, les architectes
dessinent des plans et les musiciens suivent des règles de composition. Une méthode d’élaboration
de logiciels selon l’approche MDA doit décrire comment construire des systèmes logiciels de
manière fiable et reproductible en utilisant les différents types de modèles. La figure 2.6 illustre
le processus de développement selon l’approche MDA. Cette figure en trois couloirs est une
extension d’une première ébauche présentée dans [Kleppe et al., 2003]. Le couloir de gauche
présente les activités du processus classique de développement de logiciel. Le couloir central
présente les différents modèles impliqués dans chaque activité et les liens entre les différents
modèles. Enfin, le couloir de droite présente les principaux formalismes préconisés à chaque
étape et pour chaque type de modèle. Comme il a été remarqué dans [Kleppe et al., 2003], les
phases de développement dans MDA sont simillaires au processus classique de développement
de logiciels. La principale différence réside dans la nature des artefacts qui sont crées durant
le processus de développement. Les artefacts dans le cadre de MDA sont des modèles formels
interprétables et manipulables par une machine.
dans une approche MDA est d’être les premiers modèles pérennes. Une fois les exigences modéli-
sées, elles sont censées fournir une base contractuelle avec le client. Grâce aux liens de tracabilité
avec les autres modèles qui suivront dans le cycle de développement, un lien peut être créé depuis
les exigences jusqu’au code final.
– Transformation de modèles CIM vers PIM. Permettent d’élaborer des PIM partiels
à partir des informations contenues dans les CIM. L’objectif est de s’assurer que les besoins
exprimés dans les CIM sont bien représentés dans les PIM. Ces transformations sont es-
sentielles à la pérennité des modèles. Ce sont elles qui guarantissent les liens de traçabilité
entre les modèles et les besoins exprimés par le client.
– Transformations de modèles PIM vers PIM. Permettent de raffiner les PIM afin
d’améliorer la précision des informations qu’ils contiennent. En UML, de telles transforma-
tions, peuvent être, par exemple, l’enrichissement de classes UML à partir des diagrammes
de séquences et des diagrammes d’états transitions. Ces transformations sont omniprésentes
dans les outils d’élaboration de modèles PIM. Elles permettent d’accélerer la production
des PIM et donc de raccourcir le cycle de développement.
– Transformations de modèles PIM vers PSM. Permettent d’élaborer une bonne partie
des modèles PSM à partir des modèles PIM. Ces transformations sont les plus importantes
de MDA car elles guarantissent la pérennité des modèles aussi bien que leur productivité
et leur lien avec les plates-formes d’exécution. Nous illustrons ces transformations dans la
section 5 dédiée à notre approche de la transformation, séparant explicitement la partie
spécification des correspondances de la partie génération des règles de transformations.
– Transformations de modèles PSM vers code. Permettent de générer la totalité du
code. Ces transformations consistent en une traduction entre un formalisme structuré tel
que un diagramme UML et un formalisme textuel représentant le code final.
Cette adaptation peut se faire sur n’importe quel modèle UML et elle ne modifie en rien le
métamodèle UML. Enfin, l’OMG ne pouvait ignorer le franc succés de l’ingénièrie des ontologies
dans les domaines tel que le Web et le semantic Web. Ainsi, l’OMG a proposé le métamodèle
ODM (Ontology Definition Metamodel) qui a pour objectif de permettre la modélisation d’une
ontologie conformément au formalisme MOF. La modélisation d’ontologies en MOF permet un
héritage de tout l’outillage de ce dernier. En effet une fois qu’un langage de modélisation du Web
Sémantique comme OWL est modélisé en MOF, ses utilisateurs peuvent utiliser les capacités de
MOF pour la création, la gestion de modèles, la génération de code et l’interopérabilité avec des
modèles MOF.
Les sous sections suivantes seront dédiées à une présentation de ces différents standards de
l’OMG et de l’approche MDA. Nous évoquerons la place de chacun de ces standards dans nos
travaux de recherche.
- Le langage MOF Tous les métamodèles public de l’OMG sont réalisés avec la version 1.4
de MOF, qui est assez simple d’utilisation, contrairement à la version 1.3, qui nécessitte une
connaissance de CORBA, ou de la version actuelle 2.0, très complexe. Nos travaux de recherche
ont aussi utilisé cette version 1.4, c’est la raison pour laquelle nous la présentons ci-après. Nous
évoquerons l’état actuel de la version 2.0 en fin de cette section, car c’est elle qui permettra
d’élaborer les futurs métamodèles. Les métamodèles MOF1.4 sont définis sous forme de classes.
Les modèles conformes aux métamodèles sont considérés comme des instances de ces classes.
La figure 2.7 présente une partie de ce que pourrait être un diagramme de classe représentant
MOF1.4.
Les principaux concepts de MOF1.4 illustrés par la figure 2.7 sont les suivants :
– Class. Une classe (désignée par métaclasse dans MOF) permet de définir la structure de
ses instances (désignées par méta-objets). Un ensemble de méta-objets constitue un modèle.
Une métaclasse a un nom et contient des attributs et des opérations, aussi appelés méta-
attributs et méta-opérations. Les désignations en "méta" permettent de discerner les entités
du niveau M2 de celles du niveau M1.
– DataType. Un type de donnée permet de spécifier le type non-objet d’un méta-attribut
ou d’un paramètre d’une méta-opération.
– Association. Pour exprimer des relations entre métaclasses, MOF1.4 propose le concept
de méta-association qui est une association binaire entre deux métaclasses. Une méta-
association porte un nom, et chacune de ses extrémités peut porter un nom de rôle et une
multiplicité.
– Package. Pour grouper entre eux les différents éléments d’un métamodèle, MOF1.4 propose
le concept de Package. Un Package, aussi appelé métapackage, est un espace de nommage
servant à identifier par des noms les différents éléments qui le constituent.
La version MOF 2.0 est la version courante de MOF. Conceptuellement, l’architecture MOF2.0 ne
diffère que très peu de celle de MOF1.4. MOF2.0 est toujours l’unique métamétamodèle, et UML
2.0 est le métamodèle dédié à la modélisation d’applications orientées objets. Techniquement,
en revanche, cette version est assez déroutante [Blanc, 2005]. L’un des objectifs de MOF2.0 est
de capitaliser les points communs existants entre UML et MOF au niveau des diagrammes de
classes et d’en expliciter les différences. Pour realiser cet objectif, les moyens mis en œuvre ne
facilitent pas la compréhension de cette version.
décrire aussi bien les applications Java, Bases de données ou C#. Plusieurs outils proposent des
générateurs de code vers différents langages de programmation. Ainsi, il est évident que le mé-
tamodèle UML représente le métamodèle idéal pour la conception des modèles PIM (Platform
Independant Model). Nous avons utilisé UML pour la spécification des applications internet et
leur mise en œuvre sur les plateformes Services Web (chapitre 3). Nous discuterons dans ce cha-
pitre les limites du langage UML pour la spécification d’applications et leur mise en œuvre sur
des plateformes nécessitant une sémantique particulière.
Ainsi, UML est un langage général, et a donc été conçu pour prendre en charge une grande va-
riété d’applications et de contexte de mise en œuvre. Cependant, même avec cette intention d’être
général, UML ne peut pas couvrir tous les contextes et offre ainsi un mécanisme d’extensibilité
basé sur les profils, qui est une caractéristique fondamentale. Un profil permet la personnalisa-
tion d’UML pour prendre en charge des domaines spécifiques qui ne peuvent pas être représentés
avec UML dans son état original. Le profil est constitué de trois concepts : les stéréotypes, les
contraintes et les valeurs marquées. Un stéréotype c’est le concept central des profils, qui définit
une sous-classe d’un ou plusieurs éléments du métamodèle UML. Cette sousclasse a la même
structure que ses éléments de base, mais le stéréotype peut spécifier des contraintes et des pro-
priétés supplémentaires. Concretement, un stéreotype est une sorte d’étiquette nommée que l’on
peut coller sur n’importe quel élément d’un modèle UML. Lorsque un stéréotype est collé sur
un élément d’un modèle, le nom du stéréotype définit la nouvelle signification de l’élément. La
figure 2.10 inspirée de [Blay-Fornarino, 2008] illustre un profil UML pour rajouter le concept de
semaphore dans UML.
Les profils UML dédiés à des plateformes d’exécutions permettent, par définition, d’adapter
UML à ces plateformes. Le point intéressant à souligner dans un contexte MDA est que les mo-
dèles réalisés selon ces profils ne sont plus des modèles indépendants des plateformes d’exécutions
mais, au contraire, des modèles dépendants de ces plateformes. Ces modèles ne sont donc plus des
PIM mais des PSM (Platform Specific Model). Il est tout naturel que MDA préconise l’utilisation
des profils UML pour l’élaboration de PSM car cela à le mérite de faciliter les transformations
PIM vers PSM puisque PIM et PSM sont tous deux des modèles UML. Il est enfin important de
noter que l’OMG a standartisé certains profils tel que : CORBA, EJB et EDOC.
- Le métamodèle EDOC
EDOC (Enterprise Distributed Object Computing) est une spécification pour le développe-
ment des applications distribuées d’entreprise basées sur les composants [OMG, 2004]. La version
1.4 d’UML que nous avons utilisé lors de nos expérimentations de MDA sur la plateforme service
CHAPITRE 2. L’IDM, L’APPROCHE MDA ET POSITIONNEMENT. 28
web, n’intègre pas la notion de composant. Aujourdhui, le paradigme composant est pleinement
intégré dans la spécification UML2.0. Ainsi, nous avons eu recours à EDOC afin d’utiliser et
comparer deux standards (UML et EDOC) pour la mise en œuvre des applications Web sur les
plateformes sevice Web. EDOC, se situant dans la mouvance des DSL (Domain Specific Lan-
guage), s’est averé plus proche de la plateforme service web que le langage UML. Le chapitre 3
reviendra plus en détail sur cette partie. La spécification EDOC est indépendante d’une plate-
forme technologique, ce qui permet de réaliser son implémentation sur différents intergiciels,
comme par exemple les services Web, CORBA, EJB ou DCOM/COM. EDOC est composée de
sept spécifications [OMG, 2004]. Parmi ces specifications, l’architecture ECA (Enterprise Colla-
boration Architecture) occupe la place centrale. Celle-ci fournit quatre métamodèles et profils :
– CCA (Component Collaboration Architecture) : utilise des classes ainsi que des graphes
d’activité et de collaboration pour modéliser la structure et le comportement des compo-
sants.
– Entities model : utilise un ensemble d’extensions UML pour modéliser les entités d’un
système.
– Events Model : est un ensemble d’extensions UML pour modéliser les événements d’un
système.
– Business Process Model : compléments de CCA et du modèle de comportement du système.
Il permet de définir des processus métiers à différents niveaux de détails, en utilisant un
diagramme de tâche.
Nous nous intéressons particulièrement à la partie CCA de la spécification EDOC et de L’ECA.
En effet, cette partie de la spécification présente un métamodèle de composition générale qui
résume l’état de l’art sur les composants, la récursivité dans la composition, la spécification de
ports de communication entre composants et la notion de protocole pour représenter les dialogues
simples ou complexes entre composants. La figure 2.11 présente un fragment du métamodèle de
EDOC_CCA.
Parmi les éléments de ce fragment du métamodèle EDOC-CCA, nous distinguons :
– ProcessComponent : représente le contrat pour un composant qui réalise des actions. Un
ProcessComponent peut définir un ensemble de Ports pour l’interaction avec d’autres Pro-
CHAPITRE 2. L’IDM, L’APPROCHE MDA ET POSITIONNEMENT. 29
jectif est de modéliser les transformations de modèles et de rendre les modèles de transfor-
mation pérennes et productifs, en exprimant leur indépendance vis-à-vis des platesformes
d’exécution. Le standard MOF 2.0 QVT de l’OMG a été élaboré dans ce cadre et a pour
but de définir un métamodèle permettant l’élaboration des modèles de transformation de
modèles. Le langage de transformation de modèles ATL[Jouault, 2006] que nous avons uti-
lisé dans nos travaux de recherche est aussi dans cette mouvance. QVT ainsi que ATL
seront présentés dans la section 2.4.3.
L’approche par modélisation, même si elle est la plus complexe à mettre en œuvre, reste la plus
prometteuse, car elle offre une solution favorisant la pérennité des transformations et facilite donc
leur réutilisation. C’est dans cette approche que, se situent les techniques de transformations
développées dans nos recherches, ainsi que nos premières contributions (Voir section 2.5) liées au
processus de transformation dans MDA. La section qui suit présente plus en détail cette approche
de la transformation par modélisation.
Les règles de transformations sont basées sur les langages de transformations, tels que le
standard QVT. Le moteur de transformation prend en entrée le modèle source, exécute les
règles de transformation, et produit en sortie le modèle cible. Formellement, soit ma(s)/Ma et
mb(s)/Mb, où ma est un modèle d’un système s créé à l’aide du métamodèle Ma, et mb est
un modèle du même système s créé à l’aide du métamodèle Mb, une transformation peut par
conséquent être définie comme suit : ma(s)/Ma →mb(s)/Mb. Lorsque Ma et Mb sont conformes
au même métamétamodèle (MOF), la transformation peut être exprimée dans un langage de
transformation conforme à MOF tel que ATL ou QVT.
Les outils de transformation liés à ATL sont intégrés sous forme de plug-in ADT (ATL De-
velopment Tool) pour l’environnement de développement Eclipse. Un modèle de transformation
ATL se base sur des définitions de métamodèles au format XMI. L’environnement ADT dispose
du langage KM3 (Kernel MetaMetaModel) qui est une forme textuelle simplifiée d’EMOF per-
mettant de décrire des métamodèles et des modèles. En effet, ADT supporte les modèles décrits
dans différents dialectes d’XMI, qui peuvent par exemple être décrits au format KM3 et trans-
formés au format XMI voulu. Une fois les métamodèles décrits en KM3, ils sont mappés dans le
métamodéle Ecore pour un traitement ultérieur.
gages de métadonnées (EMOF, ECORE,. . .), de transformation de modèles (QVT, ATL,. . .), de
contraintes et de requêtes (OCL), et d’actions AS (Action Semantics).
langage de transformation type ATL. Notre approche présentée dans cette section suggère une
génération automatique de ces règles de transformations à partir de la spécification des cor-
respondances. Cette séparation des préoccupations "Correspondances versus Transformations"
permet à l’expert de se concentrer sur la partie spécification des correspondances en reliant les
éléments équivalents de deux métamodèles et en utilisant des outils bien adaptés.
La distinction et la séparation entre les techniques de mapping et de transformation ont été
mises en avant dans au moins deux domaines connexes à MDA :
– Dans les bases données [Bernstein, 2003, Fagin et al., 2008] :
"A good way to think about mapping design is as a three-step process that produces map-
pings in three successively more refined representations : correspondences, mapping
constraints, and transformations. . . ." [Bernstein, 2003], Model Management
Project.
". . . A schema mapping is a high-level specification that describes the relationship between
two database schemas. .... schema mappings constitute the essential building blocks of
data exchange...."
[Fagin et al., 2008], PODS’2008
– Dans les ontologies [Dou et al., 2003] :
"It’s important to distinguish ontology translation from ontology mapping, which is the
process of finding correspondences (mappings) between the concepts of two ontologies".
OntoMerge Project.
Dans le cadre de MDA, l’intérêt de la distinction et la séparation entre les techniques de mapping
et de transformation pour l’ensemble du processus de transformation a été discuté dans nos
différent travaux [Hammoudi et Lopes, 2005, Hammoudi et al., 2005, Lopes, 2005]. En outre, la
séparation entre les parties spécification des correspondances et la définition des transformations
constitue un premier pas vers une semi-automatisation du processus de transformation, puisque
les correspondances peuvent être découvertes (en parties) par un processus de matching entre
métamodèles. Le chapitre 5 sera dédié entierement à la problématique de la semi-automatisation
des transformations dans l’approche MDA.
Metametamodel
Level M3
conformsTo conformsTo conformsTo conformsTo
TransformationModel
Level M1
+source +target
generatedFrom
generatedFrom
TransformationDefinition
generatedFrom Level M0
TransformationProgram
+execute TransformationEngine
caractéristique particulière.
Les correspondances entre métamodèles ne sont pas toujours du type 1 : 1 (un-vers-un),
mais elles peuvent être 1 : n, n : 1 et m : n. Nous avons proposé [Lopes, 2005] une extension
au formalisme présenté sur la figure 2.17 afin de prendre en compte les différentes catégories de
correspondances.Une correspondance un-vers-un est caractérisée par un élément du métamodèle
cible présentant une structure et une sémantique similaire à un élément du métamodèle source.
Une correspondance un-vers-plusieurs est caractérisée par un ensemble non-unitaire et non-vide
d’éléments d’un métamodèle source contenant une structure et une sémantique similaire à un
élément du métamodèle cible. Une correspondance plusieurs-vers-un est caractérisée par un élé-
ment du métamodèle cible présentant une sémantique et une structure similaire à un ensemble
non-unitaire et non-vide des éléments du métamodèle source. Ce dernier type de correspondance
n’est pas directement réalisé avec des langages de transformation comme ATL, mais il peut être
simulé en utilisant une règle de transformation qui prend un seul élément du métamodèle source
et détermine les autres éléments en utilisant les relations entre eux. Une correspondance de type
plusieurs-vers-plusieurs n’est pas présentée, puisqu’elle peut être simulée par les autres types.
Ce formalisme graphique sera utilisé dans le chapitre 3 pour illustrer notre approche MDA
appliquée à la plateforme services Web.
La figure 2.18 présente notre proposition d’un métamodèle pour la spécification des correspon-
dances. Cette proposition a été discutée initialement dans un article de la revue ISI (Ingénièrie
des Systèmes d’Information) [Hammoudi et al., 2005]
Dans ce métamodèle, on considère que la correspondance pourrait être unidirectionnelle ou
bidirectionnelle. Dans la correspondance unidirectionnelle, un métamodèle source est mis en
correspondance avec un métamodèle cible. Dans la correspondance bidirectionnelle, la corres-
pondance est spécifiée dans les deux sens. Ainsi, de manière générale, les deux métamodèles sont
désignés par métamodèle source et métamodèle cible. Par la suite nous utiliserons les termes
métamodèle source (ou métamodèle gauche) et métamodèle cible (ou métamodèle droit)
Ce métamodèle de correspondances présente les éléments suivants :
– Element est une généralisation des autres éléments.
– Historic permet de préciser les différents choix pris lors de la spécification de correspon-
dances. Il comprend la date de la dernière mise à jour, une note, le numéro de la dernière
version et un ensemble de définitions représentant les différentes alternatives de correspon-
dances.
– Definition est l’élément principal qui contient toutes les définitions de correspondances
entre deux métamodèles gauche et droite (i.e. chaque correspondance possède un élément
gauche et un ou plusieurs éléments droits).
– Correspondence permet de spécifier la correspondance proprement dite entre deux ou
plusieurs éléments des métamodèles gauche et droit. La correspondance a un filtre défini
par une expression OCL. La propriété bidirectionnelle est précisée par un booléen. Deux
convertisseurs de types désignés respectivement par typeconverterRL et typeconverterLR.
L’élément typeconverterRL permet la conversion d’un élément du métamodèle droit vers
un élément du métamodèle gauche. L’élément typeconverterLR permet la conversion d’un
élément du métamodèle gauche vers un élément du métamodèle droit. En général, il est
nécessaire de préciser uniquement typeconverterLR.
– Left identifie dans une correspondance l’élément du métamodèle gauche.
– Right identifie dans une correspondance l’élément du métamodèle droit.
– MetaModelHandler permet de naviguer dans un métamodèle. Il possède les informations
CHAPITRE 2. L’IDM, L’APPROCHE MDA ET POSITIONNEMENT. 41
est utilisé pour expliciter une conversion entre les éléments en correspondance par le biais
d’une expression OCL.
4. Le modèle de correspondances peut être validé conformément à son métamodèle et peut
être utilisé pour générer une définition de transformations, en utilisant ATL par exemple.
La figure 2.20 illustre la génération des règles de transformations en ATL d’UML vers C#, ob-
tenue à partir du modèle de correspondance défini précédemment. Ce fragment de code ATL pré-
sente la définition d’un module UML2CSHARP, la règle Class2Class et la règle Interface2Interface.
Dans le corps de la règle Class2Class l’élément source Class d’UML et l’élément cible Class de
C# apparaissent, ainsi que les différents bindings comme par exemple name<-class.name. Dans
le corps de la règle Interface2Interface l’élément source Interface d’UML et l’élément cible
Interface de C# apparaissent, ainsi que les différents bindings entre les différents attributs,
name <- interface.name, nameSpace <- interface.namespace.
CHAPITRE 2. L’IDM, L’APPROCHE MDA ET POSITIONNEMENT. 43
Technologies such as Web Services and component models have been advocated as
silver bullets for the service-oriented development of e-applications. However, if we
are to draw any lessons from the past, then the most important would be : there are
no (lasting) one-fits-all technology solutions, and therefore technologies will always
differ and evolve. [Pires et al., 2004].
3.1 Introduction
Ce chapitre présente notre approche MDA pour le développement des applications Internet
sur la plateforme services Web. Les services Web ont émergé durant cette dernière décennie
comme des technologies incontournables pour, d’une part, le développement et le déploiement
d’applications Internet et d’autre part, l’intégration et la communication entre des applications
hétérogènes. Les services Web ont réussi à être la plateforme consensuelle d’interopérabilité
entre applications réparties sur Internet, là où CORBA, DCOM et Java RMI ont échoué. Le
consensus industriel sur le langage XML et les technologies qui en découlent a été décisif. Ainsi,
les services Web reposent principalement sur des technologies basées sur XML pour la structure
et le contenu de messages échangés entre services (SOAP), pour la description fonctionnelle et
non fonctionnelle des services (WSDL), pour la découverte et le courtage des services (UDDI,
WS-Discovery) et pour leurs orchestrations (BPEL). L’ensemble de ces technologies appelé WS-*,
s’articule de manière cohérente [Nezhad et al., 2006]. L’adoption très répandue de ces standards
basés sur XML a stimulé une intense activité de recherche durant cette décennie dans les milieux
universitaires et industriels, autour des problèmes liés aux services Web. Ce chapitre porte sur
le travail de recherche que nous avons initié en 2003 avec la thèse de Denivaldo Lopes. Ce travail
fut alors motivé par deux constats :
– La plupart des problématiques de recherche autour des services Web portent sur les stan-
dards technologiques basés sur XML et sur les plateformes supportant ces standards (par
exemple, J2EE et dotNET). Cependant, une solution globale séparant clairement les par-
ties métiers des parties technologiques fait défaut. Par exemple, le problème de la compo-
sition de services est traité sous un angle technique dans la plupart des approches exis-
tantes. Ainsi, la composition des services Web est réalisée selon un processus adhoc, long
et sujet aux erreurs, impliquant souvent des techniques de programmation de bas niveau
[Medjahed et al., 2003].
– Les services Web ont réussi à assurer l’intéropérabilité des applications sur Internet. Ce-
pendant, l’expérience a montré que la création d’un nouveau intergiciel (même avec des
standards 1 ) n’est pas une solution viable à long terme pour supporter le développement et
l’intégration d’applications. Par conséquent, dans un futur plus ou moins proche, de nou-
velles exigences qui dépassent les capacités des services Web devraient apparaître. Ainsi,
tout laisse à penser que d’autres intergiciels vont apparaître [Pires et al., 2004].
45
CHAPITRE 3. MDA ET PLATEFORME SERVICES WEB 46
Plan de ce chapitre
Dans un premier temps (section 3.2), nous présentons une vue d’ensemble des services Web
ainsi qu’un exemple typique d’application Internet afin d’illustrer notre approche. Le processus
de développement selon l’approche MDA sera aussi présenté dans cette section. La section 3.3
sera dédiée à la métamodélisation et la transformation. Pour la partie métamodélisation, nous
mettons face-à-face deux standards de l’OMG, UML et EDOC. Pour la partie transformation
nous présentons, d’une part, les différents scénarios de transformations expérimentés et, d’autre
part, la mise en œuvre de notre approche de transformation : spécification des correspondances
versus définition des règles de transformation. Nous présentons ensuite la mise en œuvre de notre
approche en utilisant l’outil MMT4MDE. La dernière section de ce chapitre (section 3.4) fournit
un positionnement par rapport à l’état de l’art, situe nos contributions et présente des objectifs
qui permettront de poursuivre les travaux. Nous présentons finalement une vue synthétique
de nos travaux sur MDA et la plateforme services Web en y positionnant les participants, les
coopérations et les publications.
Figure 3.1 – Modèle de référence des services Web, d’après [Medjahed et al., 2003].
aux services Web ont fait l’objet d’intenses recherches tel que la composition, la sémantique et la
sécurité. La composition des services Web peut être statique ou dynamique. Dans la composition
statique, les services sont sélectionnés et composés durant l’étape de conception, tandis que dans
la composition dynamique, ils le sont à l’étape de l’exécution. Créer des compositions de services
signifie ordonner les invocations d’opérations, router les messages, modifier les paramètres et
gérer les exceptions. Plusieurs langages de composition de services sont définis tel que WSBPEL
[Jordan et al., 2007] et SCUFL [Oinn et al ., 2004]. Les compositions de services sont au coeur
de l’architecture orientée service (SOA) [MacKenzie et al., 2006]. Celles-ci facilitent l’exposition,
l’interconnexion, la gestion et l’évolution d’applications à base de services. Dans le cadre des
services Web, nous nous intéressons plus particulièrement aux langages WSDL et BPEL. En
effet, notre objectif est de modéliser les logiques métiers en utilisant des langages de haut niveau
de type PIM (UML et EDOC), puis de transformer cette modélisation en description de services
(WSDL), ou en orchestration de services (BPEL). Pour la génération de code sur des plates-
formes concrètes, nos expérimentations se sont portées sur les plates-formes J2EE et dotNET.
Figure 3.2 – Processus MDA de développement d’applications sur la plate-forme service Web.
source) pour les futures mises en œuvres d’applications. Voici une présentation de ces 4 activités :
– Spécification du métamodèle PIM (1) : cette activité a pour but de définir le métamodèle
PIM approprié pour un domaine d’application. Deux approches peuvent être distinguées
pour cette activité : l’approche DSL (Domain Specific Language) [Jouault, 2006], où le
métamodèle PIM est un langage spécialisé adapté à un domaine d’application ; l’approche
MDA qui préconise l’utilisation des langages standard de l’OMG pour la définition des
métamodèles. L’étude de l’approche MDA est l’un de nos objectifs et nous avons donc opté
pour les deux langages standard UML et EDOC pour la métamodélisation. De plus, le
langage EDOC, tout en étant un standard de MDA, est bien dans la mouvance des DSL
puisque il est préconisé spécifiquement pour les systèmes distribués à base de composants.
En outre, nous avons utilisé les profils UML pour prendre en considération les sémantiques
particulières. Comme retour d’expérience, nous avons déduit (cf. section 3.5) que l’approche
DSL puisqu’elle met en avant des langages spécifiques est plus adaptée que l’utilisation du
langage UML beaucoup plus général.
– Spécification du métamodèle PSM (2) : cette activité a pour objectif de définir le métamodèle
PSM de la plateforme cible. Les PSM sont spécifiés dans le même formalisme que les PIM
(UML ou EDOC), mais sont de plus bas niveau car ils doivent se conformer à des contraintes
imposées par la plateforme cible, c’est-à-dire la plateforme dans laquelle l’application sera
implémentée.
– Spécification des correspondances PIM-PSM (3) : Cette activité est dédiée à la spécification
des correspondances. Elle consiste à spécifier quels éléments du PIM (par exemple d’UML)
sont équivalents ou similaires aux éléments du PSM (par exemple quels éléments d’UML
sont équivalents ou similaires aux éléments de WSDL). Conformément à notre approche
de transformation présentée dans le chapitre 2, la spécification des correspondances donne
lieu à un modèle de correspondances. Ce modèle doit être complet et cohérent afin de
permettre une génération automatique des règles de transformations.
CHAPITRE 3. MDA ET PLATEFORME SERVICES WEB 49
– Génération des règles de transformation (4) : cette activité a pour but de générer automati-
quement les règles de transformation à partir des correspondances. Ces règles constituent
un programme de transformation qui traduit un modèle PIM en un modèle PSM équi-
valent. Le modèle de mapping obtenu à la phase précédente, suite à une éventuelle mise à
jour par l’utilisateur expert, doit être complètement défini pour permettre une génération
automatique des règles de transformation. Ce modèle de transformation, qui est décrit par
un ensemble de règles de transformation, est structuré conformément au langage ATL que
nous avons utilisé dans toutes nos expérimentations.
AirLinesService
Customer
CarHire
TravelService
RentingCarService
Hotel
HotelService
BankService
Bank
A ce stade, nous pouvons considérer ce diagramme des cas d’utilisation comme notre modèle
CIM de départ à partir duquel un concepteur spécifie un modèle PIM. Dans les prochaines
sections, cet exemple illustratif de notre domaine d’application sera modélisé, transformé et
déployé sur une plate-forme service Web, avec une approche de l’ingénierie dirigée par les modèles
conforme à MDA.
IL est important de noter que la plateforme service Web (WS) représentée par le langage
WSDL, est une plateforme abstraîte car indépendante de tout langage de programmation et
d’un environnement de développement. Au contraire, J2EE avec JWSDP est une plateforme ser-
vice Web concrète ; elle permet la mise en œuvre complète des services avec le langage Java sous
l’environnement J2EE. Les sections suivantes clarifient notre approche. La section 3.3.1 définit le
modèle PIM de l’agence de voyage en utilisant le langage UML. La section 3.3.2 présente ensuite
les métamodèles permettant de spécifier les logiques métiers et les plateformes cibles. La section
3.3.3 présente la première étape du processus de transformation permettant de générer les règles
de transformations entre métamodèles. Cette section sera illustrée par notre outil MMT permet-
tant la génération des règles de transformation à partir de spécifications de correspondances. La
section 3.3.4 sera dédiée à la seconde étape de la transformation, permettant d’implanter notre
modèle métier présenté dans la section 3.3.1 sur une plateforme cible services Web.
customer airlines
Customer AirLines
+find_travel(travel_req:Travel_req) : Travel_list +find_flight(inf_req:Fly_req) : Fly_list
+reserve_travel(travel_inf:Travel_Inf) : Reserv +airlines_serv +reserve_flight(fly_sel:Fly_Inf) : Reserv
+pay_travel(pay_inf:Pay_Inf) : Ack_pay +pay_flight(pay_inf:Pay_Inf) : Ack_pay
+cancel_travel(reserv_inf:Reserv) : Ack_cancel +cancel_flight(reserv_inf:Reserv) : Ack_cancel
travelagency carhire
+travel_serv
TravelAg CarHire
+find_travel(travel_req:Travel_req) : Travel_list +find_car(car_req:Car_req) : Car_list
+carhire_serv
+reserve_travel(travel_sel:Travel_Inf) : Reserv +reserve_car(car_sel:Car_Inf) : Reserv
+pay_travel(pay_inf:Pay_Inf) : Ack_pay +pay_car(pay_inf:Pay_Inf) : Ack_pay
+cancel_travel(reserv_inf:Reserv) : Ack_cancel +cancel_car(reserv_inf:Reserv) : Ack_cancel
hotel
bank
+bank_serv Hotel
Bank +find_room(room_req:Room_req) : Room_list
+hotel_serv
+make_payment(pay_inf:Pay_Inft) : Ack_pay +reserve_room(room_sel:Room_Inf) : Reserv
+pay_room(pay_inf:Pay_Inf) : Ack_pay
+bank_serv +bank_serv +bank_serv
+cancel_room(reserv_inf:Reserv) : Ack_cancel
La figure 3.6 illustre un diagramme d’activité pour l’agence de voyages. Dans ce diagramme,
l’activité principale qui est la recherche d’un voyage implique l’invocation de trois services : le
service de recherche d’une chambre d’hôtel, celui d’une location de voiture et enfin celui d’un
billet d’avion. Pour réaliser cette activité principale, l’agence de voyages fait une composition de
trois services impliquant les trois classes ServiceAirLines, ServiceCarHire et ServiceHotel.
Concrètement, l’agence de voyages reçoit une requête d’un client illustrée par l’activité principale
ReceiveFindTravel. Ensuite, l’activité principale démarre trois activités secondaires en parallèle.
Dans chaque activité démarrée, une action d’affectation (AssignInputFlight ; AssignInputCar
ou AssignInputRoom) fait la copie des données reçues par ReceiveFindTravel dans l’entrée d’un
service (CallFlight ; CallCar ou CallRoom). Après l’éxécution des trois services l’action d’af-
fectation AssignReturn copie le résultat de chaque service pour être envoyé au client. L’action
ReplyFindTravel retourne le résultat de la recherche au client. De manière similaire, chaque mé-
thode de la classe ServiceTravelAg peut être décrite par un diagramme d’activité illustrant les
sous-activités réalisées par les autres classes. Afin de modéliser l’activité recherche d’un voyage
comme une composition de services et permettre sa transformation vers le langage standard
WSBPEL, nous utilisons des valeurs marquées d’UML pour lier le diagramme d’activité au dia-
gramme de classe. À chaque action, des valeurs marquées sont utilisées pour faire référence à une
classe ou à une opération du diagramme de classes.
Le tableau 3.1 présente des exemples de valeurs marquées avec dans la première colonne
les actions, au milieu les marques, et à droite les valeurs. Une présentation complète de ces
valeurs est faîte dans [Lopes, 2005]. L’utilisation de valeurs marquées est nécessaire car il y a une
différence syntaxique et sémantique entre le métamodèle d’UML (version 1.4) et celui de BPEL
(BPEL4WS version 1.1).
Dans le métamodèle de BPEL, chaque action est réalisée par une opération d’un service, et
chaque service est associé à un (partnerLink). Celui-ci contient les informations sur le rôle et
l’interface (PortType) du service qui réalise cette opération. Dans le métamodèle d’UML (ver-
sion 1.4), les actions (ActionState) d’un diagramme d’activité ne sont pas liées à une opération
(Operation) d’une classe. Dans ce cas, nous utilisons les valeurs marquées pour établir cette
association (action - opération - classe). De plus, les actions peuvent correspondre à une appel
(invoque en BPEL), réception (receive en BPEL) ou affectation (assign en BPEL). D’autres
travaux comme [Skogan et al., 2004], ont aussi relevé cette distance sémantique entre le dia-
CHAPITRE 3. MDA ET PLATEFORME SERVICES WEB 53
gramme d’activité d’UML et le langage BPEL, et ont proposé les profils UML pour réduire cette
distance et permettre une transformation.
La section 3.3.3.3 dédiée à la spécification des correspondances entre UML et BPEL discu-
tera plus en détail de ce problème. Il est important de noter qu’aujourd’hui, UML2.0 permet de
pallier à ce problème en proposant différents éléments (AcceptCallAction, ReplyAction, CallO-
perationAction, ReadVariableAction, WriteVariableAction) qui permettent de préciser le concept
d’action du diagramme d’activité. Dans notre approche (Table 3.1), nous avons utilisé des
marques tel que « activity » (acceptant les valeurs « receive » , « assign », « invoque » et «
reply » ), « class » (acceptant le nom d’une classe) et « operation » (acceptant le nom d’une
opération).
La figure 3.7 représente un métamodèle pour WSDL. Ce métamodèle permet de dériver des
modèles de services (documents XML) composés des éléments suivants :
– Les opérations proposées par le service Web ;
– Les données et messages échangés lors de l’appel d’une opération ;
– Le protocole de communication ;
– Les ports d’accès au service.
Dans WSDL, il existe une séparation entre deux niveaux indépendants, l’un abstrait, l’autre
concret. Le niveau abstrait regroupe les informations pouvant être réutilisées (i.e. non spécifique
à un service), tandis que le niveau concret est constitué de la description des protocoles d’accès
au service Web (i.e. spécifique à un service). Le niveau abstrait est utilisé principalement lors
du processus de sélection des services, tandis que le niveau concret est seulement utilisé lors de
l’invocation des méthodes du service Web.
La figure 3.8 présente un métamodèle pour BPEL. Ce métamodèle permet de spécifier des
modèles d’orchestration de services. Un modèle d’orchestration de services met en œuvre une
composition de services qui est un moyen efficace pour créer, exécuter et maintenir des ser-
CHAPITRE 3. MDA ET PLATEFORME SERVICES WEB 54
vices qui dépendent d’autres services. L’élément central du métamodèle BPEL est le processus
qui forme une couche au dessus de WSDL. Les processus de BPEL exportent et importent des
fonctionnalités en utilisant les interfaces de services Web uniquement (BPEL contient les ca-
ractéristiques d’un langage structuré en blocs inspiré du langage XLANG de Microsoft). BPEL
permet de modéliser deux types de processus :
– Le processus abstrait spécifie les échanges de messages entre les différentes activités, sans
spécifier le comportement interne de chaque activité.
– Le processus exécutable : spécifie l’ordre d’exécution des activités constituant le processus,
des partenaires impliqués dans le processus, des messages échangés entre ces partenaires,
et le traitement de fautes et d’exceptions.
Conformément à la figure 3.8, les principaux éléments du processus BPEL sont les suivants :
Une présentation détaillée des métamodèles de WSDL et BPEL des figures 3.7 et 3.8 se trouve
dans [Lopes, 2005]. Afin de mettre en œuvre notre approche MDA pour les services Web, nous
avons expérimenté deux plateformes concrètes dans nos travaux[Lopes, 2005] : la plateforme
J2EE et la plateforme dotNet. Nous ne présentons ici que la mise en œuvre sur la plateforme
J2EE. Celle-ci est constituée de différentes technologies, notamment le langage Java, JDBC (Java
DataBase Connectivity), JWSDP (Java Web Services Developer Pack ), EJB (Enterprise Java-
Beans) et JSP (Java Server Pages). Parmi ces technologies, nous nous intéressons particuliè-
rement au langage Java et JWSDP. Ce dernier est le framework du monde Java permettant
la programmation et le déploiement de services Web. Ainsi, nous présentons un métamodèle
de Java et un autre de JWSDP. La figure 3.9 présente un métamodèle de Java. La figure 3.10
présente d’une part (partie en haut) un template (modèle) et d’autre part (partie en bas) un
métamodèle pour JWSDP. Le template décrit la réalisation d’un service Web en JWSDP. En
réalité, le template spécifie l’utilisation de l’API de JWSDP qui se situe au niveau modèle dans
l’architecture de quatre niveaux de MDA . Un service Web est créé en JWSDP à travers une
WSClass (conforme à JClass) qui implémente une WSInterface (conforme à JInterface). Une
description détaillée des métamodèles liés à la plateforme J2EE (Java et JWSDP) est présentée
dans [Lopes, 2005].
Nous allons aborder maintenant les techniques de transformations permettant d’une part, la
génération des règles de transformations utilisées pour une transformation modèle-vers-modèle
(notée M2M) et, d’autre part, la mise en œuvre d’un modèle métier PIM sur une plateforme cible
par une transformation modèle-vers-code ( notée M2C). La première étape consiste à spécifier
les correspondances entre deux métamodèles et la génération automatique des règles de trans-
formation. Ces règles de correspondances permettront ensuite d’obtenir un premier modèle PSM
à partir d’un modèle PIM. La seconde étape consiste à transformer le modèle PSM vers le code
final propre à la plateforme. La génération de code à partir d’un modèle PSM n’est d’ailleurs pas
réellement considérée dans MDA. Celle-ci s’apparente plutôt à une traduction des PSM dans un
formalisme textuel.
CHAPITRE 3. MDA ET PLATEFORME SERVICES WEB 55
+ complexType
1..* + wsdlType BPELExtensibleElements PartnerLink
ComplexType * +name: 1..*
WSDLType +partnerLinkType:
+ wsdlType + partnerLinks + partnerLink +myRole:
+ partnerLink
PartnerLinks
SimpleType +partnerRole:
* 1..*
+ partner Partner
+ partners Partners
WSDLElement 1..* +name: 0..1
+ import * + partnerLinkType
Import Variable
* + variable PartnerLinkType
Extensible Element + variables Variables
+name:
+ types Types +name:
1..* +messageType:
0..1 *
+type:
Documentation Part
Process +element:
+ documents + part * + correlationSets CorrelationSets 1..2 + role
+ message +name: CorrelationSet
0..1 Message + correlationSet
+targetNamespace: *
* +name: Role
+ portType +abstractProcess: 1..*
+ doc Definition +properties:
PortType +name:
+ faultHandlers FaultHandlers + catch -portType:String
+name: * + type Catch
+ binding
+targetNameSpace: *
* +faultName:
* Binding
+faultVariable:
+ binding + catchAll
+ compensationHandler CompensationHandler
AcivityOrCompensateContainer
Port 0..1
+ output *
+ port *
StartWithExtension + eventHandlers EventHandlers
0..1 + service Correlations
+ input 0..1 Service * + onMessage + correlations
OnMessage
* * 0..1
Fault + fault + activity *
BindingOperation +partnerLink:
+ operation * +portType:
+name: 1..* Activity
* * + operataion Flow +operation:
0..1 + activity +name:
Operation +variable:
OneWayOperation +joinCondition:
Empty
+ oneway +suppressionJoinFailure:
OnAlarm
+ input + input + requestresponse 0..1 Invoke + activity + onAlarm
1..* +for:
ParamType RequestResponseOperation Receive Switch * +until:
+ output
+name: + solicitresponse + target
+ input Reply While
+message: SolicitResponseOperation Target
0..1 Assign Sequence
+ output + notification * +linkName:
NotificationOperation
+ fault 0..1 Wait Pick
FaultType
+ source Source
+name: * Throw Scope
+ fault +linkName:
+message: Terminate * +transitionCondition:
*
Created with Poseidon for UML Community Edition. Not for Commercial Use.
Created with Poseidon for UML Community Edition. Not for Commercial Use.
JElement
+ has * Annotation << enumeration >>
+name:String TypeName
+ jelement +expression:String
+visibility:Visibility
+byte:int
+modifier:Modifier
+short:int
* + jelements +int:int
+ throws
+ jpackage JClass +long:int
+isActive:Boolean * +float:int
JPackage
+double:int
+ enclosing 0..1 + super 0..1 + implementedby +char:int
* *
* JClassifier * + implements +boolean:int
+ nested + sub
JInterface +String:int
+ type + type
+ owner JPrimitiveType
<< enumeration >>
+ jmembers +type:TypeName Modifier
{ordered} *
config.xml
JMember +jabstract:int config-interface.xml Service WSDL
+name : String Configuration +wsdl
+final:int Configuration
+location : URI
+targetNamespace : URI +xmlns : URI
+isStatic:Boolean +regular:int
+packageName : String
+xmlns : URI +service +typeNamespace : URI
+packageName : String
+ jparameters +endpointMapping
+urlPattern : URI
Created with Poseidon for UML Community Edition. Not for Commercial Use.
Ainsi, chaque élément de correspondance sur la figure 3.11 se voit associé une règle de trans-
formation en ATL. L’élément PC2S permet de générer la règle ATL PC2S suivante :
Les figures 3.12 et 3.13 illustrent, en utilisant notre outil MMT4MDE présenté au chapitre
2, la mise en œuvre, d’une part, de la spécification des correspondances entre les métamodèles
EDOC-CCA et WSDL (figure 3.12) et, d’autre part, de la génération des règles de transformations
(figure 3.13). Une partie du code en ATL de la transformation entre les métamodèles d’EDOC-
CCA et WSDL est présentée dans figure la 3.13.
Figure 3.14 – (a) un diagramme d’activité non-structuré, (b) un diagramme d’activité structuré.
3. Fork permet la création de plusieurs processus enfants qui sont exécutés en parallèle.
4. Join permet la synchronisation entre plusieurs processus enfants avant de continuer l’exécution du processus.
CHAPITRE 3. MDA ET PLATEFORME SERVICES WEB 60
Nom Valeur
activity invoque, receive, reply, assign
class une classe liée à une action ou qui contient une
opération participant à une affectation
operation une opération liée à une action
fromOperation une opération d’entrée qui participe à une affec-
tation
toClass une classe qui contient une opération participant
à une affectation
toOperation une opération qui participe à une affectation
Nous utilisons des valeurs marquées pour étendre UML afin de diminuer la distance struc-
turelle et sémantique entre UML et BPEL et de permettre la spécification de correspondances
entre une action d’un diagramme d’activité d’UML et une activité Invoke, Assign, Receive ou
Reply de BPEL, tel qu’introduit dans la section 3.3.1. Nous utilisons aussi des valeurs marquées
pour lier une action à une opération et à une classe. Le tableau 3.2 présente un sous-ensemble
des valeurs marquées utilisées. Dans [Lopes, 2005], nous présentons toutes les valeurs marquées
utilisées .
Les figures 3.15 et 3.16 illustrent respectivement la spécification des correspondances entre
UML (digramme d’activité) et BPEL puis la génération des règles de transformation.
La figure 3.15 illustre (en grisé) l’élément de correspondance Ag2P qui met en relation l’élément
Activity-Graph d’UML avec l’élément Process de BPEL. La figure 3.16 illustre une partie des
règles de transformations générées. La règle Ag2P est associée à l’élément de correspondance de
même nom.
tons dans ce qui suit des fragments de code pour les services Web et la plateforme J2EE à partir
de la modélisation en UML illustrée par les figures 3.5 et 3.6 de la section 3.3.1. Dans la partie
synthèse en section 3.4, nous reviendrons sur nos différentes expérimentations, en mettant face-
à-face UML et EDOC d’une part, J2EE et dotNET d’autre part. Il est important de noter que
pour toute nos expérimentations nous avons utilisé plusieurs spécifications et différentes versions
de la même spécification. Le tableau 3.3 présente la version de chaque spécification utilisée dans
nos expérimentations et les principales plateformes de mise en œuvre. La figure 3.17 illustre le
principe de la transformation modèle-vers-code.
Techniquement, la transformation modèle-vers-code est obtenue par une requête ATL per-
mettant de déclencher le processus de transformation et de naviguer dans les éléments du modèle,
et par une bibliothèque de fonctions appelées helpers en ATL [Jouault, 2006], permettant la tra-
duction en code source final de tous les éléments du modèle. Dans [Lopes, 2005], nous présentons
en détail la transformation modèle-vers-code.
Les exemples 2 et 3 présentent respectivement des fragments de codes de WSDL et BPEL
générés à partir du modèle UML de l’agence de voyage (diagramme de classe et diagramme
d’activité).
Table 3.5 – Les différentes spécifications et plateformes utilisées dans nos expérimentations.
CHAPITRE 3. MDA ET PLATEFORME SERVICES WEB 63
Frankel a insisté sur la précision et la complètude des modèles métiers PIM pour assurer leurs
transformations sur les plateformes cibles. Par rapport à notre approche, la spécification des
correspondances entre UML et WSDL est proposée par Frankel sur un cas particulier et non de
manière générique entre deux métamodèles. De plus Frankel se limite à UML comme seul langage
pour la définition de la partie métier. Dans [Grønmo et al., 2004] les auteurs s’intéressent à la
composition des services Web, et proposent une méthodologie pour la mise en œuvre de cette
composition. Cette méthodologie repose sur deux types de transformation : la transformation
entre un diagramme de classe UML et un document WSDL (pour des services simples) et la
transformation entre un diagramme d’activité UML et document BPEL (pour des services com-
posites). Ce travail fut un des premiers à proposer la mise en correspondance entre un diagramme
d’activité UML et le langage BPEL. Des valeurs marquées sont alors proposées pour réduire la
distance sémantique entre le diagramme d’activité UML version 1.4 et la langage BPEL. Cepen-
dant, comme pour Frankel, l’approche préconisée par Gronmo utilise exclusivement le langage
UML pour la partie PIM et ne fournit pas des règles de transformations explicites selon un lan-
gage de transformation. Dans [Kath et al., 2004], une infrastructure pour la mise en œuvre de
l’approche MDA pour la plateforme service Web est proposée. Cette infrastructure est constituée
de différents outils qui sont assemblés pour supporter l’approche MDA. Ces outils permettent
de spécifier un métamodèle pour les services Web (WSDL), une correspondance entre EDOC et
WSDL, un métamodèle pour BPEL et une correspondance entre EDOC et BPEL. Cependant,
comme dans l’approche de Gronmo [Grønmo et al., 2004], les règles de transformations visant
à générer automatiquement des documents WSDL ou BPEL à partir de diagramme UML ne
sont pas proposées dans [Kath et al., 2004]. Dans [Baïna et al., 2004], les auteurs proposent une
méthodologie orientée modèle pour le développement de services Web simples et composites,
mais en dehors de l’approche MDA. Ils proposent un framework qui permet la génération auto-
matique de modèles de composition BPEL à partir de spécifications de protocoles fondées sur la
description de service et sur le modèle de composition de Self-Serv [Benatallah et al., 2003], une
variation des statecharts. La méthodologie proposée s’articule autour de trois phases de transfor-
mation : chaque transition est d’abord transformée dans un squelette de processus ; chaque état
est ensuite transformé dans un squelette d’états en ajoutant la transition sous-jacente à l’état ;
finalement, une fois que les squelettes individuels des transitions et des états ont été réalisés, les
squelettes des états sont liés ensemble dans un squelette de processus général selon la topologie de
statechart. Dans [Skogan et al., 2004], les auteurs proposent une méthode pour générer un docu-
ment BPEL à partir du diagramme d’activité UML 1.4. La méthode proposée suit l’approche de
Gronmo en associant des valeurs marquées au diagramme d’activité, afin de réduire la distance
CHAPITRE 3. MDA ET PLATEFORME SERVICES WEB 65
sémantique avec le langage BPEL. Cependant, comme pour Gronmo, l’approche proposée par
Skogan utilise exclusivement le langage UML pour la partie PIM et ne fournit pas des règles de
transformations explicites conformément à un langage de transformation. Des approches plus ci-
blées vers des domaines d’applications ou à des langages de spécification ont aussi été proposées.
Anzbök et Dustdar [Anzböck et Dustdar, 2005] proposent une approche dirigée par les modèles
permettant de générer semi-automatiquement une spécification BPEL à partir d’un modèle de
workflow dédié au domaine médical. Dans [Mendling et Hafner, 2006], les auteurs mettent en
avant le langage de définition de chorégraphie WS-CDL, et proposent des transformations entre
un modèle général WS-CDL et des composants BPEL impliqués dans une chorégraphie. Cepen-
dant, cette approche ignore la partie orchestration dédiée à l’exécution d’un processus métier à
travers BPEL. Plus récemment, dans [Yu et al., 2007] les auteurs proposent un environnement
de développement complet permettant de générer des document WSDL et BPEL à partir de spé-
cifications métiers en langage EDOC. L’architecture de collaboration des composants (CCA) est
la partie centrale du langage EDOC. De manière similaire à notre approche, les auteurs utilisent
la composante structurelle de CCA pour modéliser les aspects structurels des modèles métiers
PIM, alors que les aspects dynamiques sont modélisés à travers la composante CCA chorégra-
phie. Le standard QVT est utilisé pour la définition des règles de transformations lesquelles sont
écrites manuellement par un expert. Les auteurs de [Yu et al., 2007] rejoignent nos conclusions
[Lopes, 2005] quand ils considèrent que UML est un langage de modélisation général, alors que
EDOC dans la mouvance des DSLs est plus adapté pour la modélisation d’applications Internet
mises en œuvre sur la plateforme services Web. Pour terminer et compléter ce tour d’horizon
des travaux connexes, il nous semble important de présenter succinctement les deux tendances
suivantes :
Les outils CASE tel que IBM Websphere (IBM), Oracle BPEL Process Manager (Oracle), offrent
une interface visuelle conviviale pour la spécification de processus métier avec un langage d’or-
chestration graphique, puis la génération du code en BPEL. Le problème majeur est celui de la
multitude des langages d’orchestrations tel que BPML [Arkin, 2002] et WSCI [Arkin et al., 2002].
Chaque outil supporte un langage d’orchestration propre et de ce fait les concepteurs font face aux
problèmes classiques de migration et d’intéropérabilité entre langages et outils. Notre approche
suivant la démarche MDA permet de palier à ce problème, car le même modèle d’orchestration
définit de manière générique peut être transformé vers différents langages d’orchestration en
appliquant différentes règles de transformation.
La seconde tendance des travaux connexes est celle de l’approche MDA pour le développe-
ment des architectures SOA. Il existe aujourd’hui un large consensus industriel et académique sur
les architectures orientées services comme les architectures logicielles incontournables des futurs
systèmes d’information[Benatallah et al., 2003]. Parmi les axes de recherches autour de SOA, les
méthodologies de développements occupent une place importante [Ramollari et al., 2007] et l’ap-
proche MDA est largement préconisée [Emig et al., 2006]. Dans ce contexte, la notation standard
BPMN de l’OMG est alors souvent utilisée pour la définition des processus métiers et des règles
de transformations vers BPEL sont proposées [Dumas, 2009]. Le problème est que la définition
des règles de transformations est plutôt complexe du fait de la différence entre les deux langages :
les modèles de processus en BPMN sont orientés graphique, alors que dans le langage BPEL la
définition des processus suit une structure de blocs. Ainsi, la définition des règles de transfor-
mations BPMN-BPEL est directe pour certaines classes de BPMN, mais moins évidentes pour
d’autres classes.
CHAPITRE 3. MDA ET PLATEFORME SERVICES WEB 66
Les résultats de nos travaux sur l’approche MDA pour le développement d’applications In-
ternet sur des plates-formes services Web peuvent être résumés comme suit :
– Un outil simple dédié à la spécification des correspondances et à la génération des règles
de transformations.
– Un processus de développement intégrant notre approche de transformation en deux temps.
– Un cas d’étude exhaustif mettant en œuvre des services simples et composites dans le
contexte du Web (orchestration de services) .
– Une solution concrète fondée sur les profils UML (valeurs marquées) pour réduire la dis-
tance sémantique entre métamodèles (BPEL et diagramme d’activité UML).
Nous pouvons cependant regretter quelques points, et nous pourrons donc poursuivre nos inves-
tigations sur plusieurs axes :
– Dans nos expérimentations, nous avons choisi de modéliser la logique métier de notre
exemple illustratif avec une forte granularité. De plus, les spécifications de correspondances
ne prennent pas en compte les corps des méthodes. Ainsi, la plate-forme finale n’a pas pu
être complètement générée à partir de modèles.
– Le métamodèle de correspondance a été validé en utilisant UML, EDOC, les Services
Web, J2EE et dotNET. Cependant, nous ne pouvons pas encore assurer qu’il est suffi-
CHAPITRE 3. MDA ET PLATEFORME SERVICES WEB 67
sant pour être appliqué comme tel avec d’autres formalismes de modélisation et d’autres
plates-formes. Ainsi, une extension de notre métamodèle de correspondance pourrait être
nécessaire.
– La spécification de correspondance entre UML (diagramme d’activité) et BPEL a mon-
tré l’impact de la distance sémantique entre métamodèles dans l’approche dirigée par les
modèles. Nous avons utilisé des profils pour diminuer cette distance, mais cette solution a
introduit d’autres problèmes tels que la complexité des règles de transformation. La version
UML 2.0 plus riche et plus proche de BPEL (le diagramme d’activités) permet de palier à
ce problème.
Journal :
4.1 Introduction
Comme annoncé par Weiser en 1991 [Weiser, 1991], les systèmes pervasifs (aussi désignés
comme ubiquitaire) permettant de doter tout objet de la vie quotidienne de capacité de calcul et
de communication, et rendant son intelligence transparente à l’utilisateur, est une réalité de nos
jours. Dans le cadre de l’informatique et en particulier des systèmes d’information, les avancées
dans le domaine des réseaux mobiles sans fil d’une part et des terminaux mobiles d’autre part
ont ouvert une perspective nouvelle pour les systèmes pervasifs. Ainsi, les systèmes d’information
pervasifs [Satyanarayanan, 2001, Saha et Mukherjee, 2003] sont nés de l’ambition de fournir un
accès au système d’information en tout lieu, à tout moment, et sous une forme et avec un contenu
correspondant à la situation de l’utilisateur.
Contrairement au poste de travail traditionnel, l’informatique ubiquitaire se caractérise par
des changements constants de l’environnement. Le plus souvent, ces changements sont dus à
la mobilité de l’utilisateur. Dans le domaine de l’informatique ubiquitaire, une classe d’appli-
cations dites sensibles au contexte a suscité un grand intérêt en particulier depuis l’émergence
des technologies sans fils. Une application sensible au contexte peut capturer dynamiquement
un ensemble d’informations de son environnement ; ces informations représentent un contexte ;
l’application adapte son exécution à ce contexte. Aujourd’hui, les plateformes services Web et
SOA, sont parmi les technologies les plus prometteuses pour la mise en œuvre des applications
distribuées et mobiles sur internet. Les travaux autour des services sensibles au contexte sont
ainsi devenus nombreux ces dernières années [Sheng et Benatallah, 2005, de Farias et al., 2007].
Notre travail s’intéresse à la mise en œuvre de services sensibles au contexte à partir d’une ap-
proche MDA. Ces services utilisent le contexte pour réaliser des activités adaptées et fournir des
informations pertinentes à l’utilisateur sans intervention explicite de sa part. La plupart des ap-
proches existantes discutées dans [Kapitsaki et al., 2009, Truong et Dustdar, 2009] pour la mise
en œuvre des services sensibles au contexte, présentent certaines limitations :
– Les approches proposées dans [Hirschfeld et al., 2008, Vallejos et al., 2007] modélisent et
implémentent ensemble les activités métiers et contextuelles. Ceci limite les possibilités de
réutilisation et de gestion du contexte.
– Les approches proposées dans [Broll et al., 2007, Gu et al., 2005] sont dédiées à des appli-
cations ad-hoc bien ciblées : recherche de restaurant dans une ville, maison intelligente. Le
métamodèle de contexte proposé couvre alors un domaine d’applications restreint et bien
délimité.
68
CHAPITRE 4. MDA ET LES APPLICATIONS SENSIBLES AU CONTEXTE. 69
Plan de ce chapitre
Dans un premier temps (section 4.2), nous présentons une vue d’ensemble de la notion de
contexte et des applications sensibles au contexte. Notre approche COMODE à travers sa com-
posante architecture logicielle pour le développement des applications sensibles au contexte sera
aussi présentée dans cette section. La section 4.3 sera dédiée au processus de développement selon
notre approche COMODE. Les principales activités du processus sont présentées, et les différents
modèles produits par ces activités sont discutés. Quatre types d’acteurs impliqués dans le proces-
sus de développement sont identifiés. La section 4.4 présente un métamodèle de contexte pour des
applications mobiles centrées utilisateur. La section 4.5 présente les techniques de transforma-
tions permettant de tisser la logique métier d’une application et le contexte au niveau modèles.
La dernière section de ce chapitre (section 4.6) positionne nos travaux par rapport à l’état de
l’art, situe nos contributions et présente des objectifs qui permettront de poursuivre les travaux.
Nous présentons finalement la liste des publications autour de ce travail.
Cette définition permet de prendre en compte toutes les entités (abstraites ou concrètes)
considérées comme pertinentes lors d’une interaction entre un utilisateur et une application. Elle
permet de couvrir une large gamme d’applications sensibles au contexte, au delà des applications
mobiles. Cette définition a été réduite dans [Dey et al., 2001] afin de se focaliser sur une classe
d’applications. Les auteurs identifient alors quatre catégories de contextes considérés comme les
plus utilisés d’un point de vue pratique : la localisation, le profil de l’utilisateur, l’activité et enfin
le temps. La notion de sensibilité au contexte est indissociable du contexte. Un système est dit
sensible au contexte s’il peut récupérer, interpréter et utiliser des informations caractérisant le
contexte et adapter sa réponse en fonction de ces informations et de l’activité exécutée. On dis-
tingue clairement aujourd’hui entre les applications qui utilisent le contexte de manière statique,
comme par exemple un service de météo qui aura besoin d’informations de localisation et de
données temporelles pour produire un bulletin, d’autres applications qui adaptent dynamique-
ment leur comportement en fonction du contexte. L’utilisation statique du contexte n’implique
pas une modification du comportement du système.
Dey et Abowd [Dey et Abowd, 1999] introduisent une autre définition de la sensibilité au
contexte dans laquelle ils insistent sur l’utilisation du contexte et du comportement du système.
Les auteurs estiment qu’un système est sensible au contexte s’il utilise le contexte pour fournir
des informations pertinentes et/ou des services à l’utilisateur, où la pertinence dépend de la tâche
de l’utilisateur :
“a system is context-aware if it uses context to provide relevant information and/or services
to the user, where relevance depends on the user’s task”.
Dey et Abowd, expliquent comment utiliser le contexte et proposent une classification des ca-
ractéristiques des applications sensibles au contexte en s’appuyant sur les travaux de
[Schilit et Theimer, 1994, Pascoe, 1998]. Ils définissent trois catégories de fonctionnalités :
– les informations et les services qui peuvent être présentés à l’utilisateur dans le contexte
courant. Ceci inclut la sélection d’informations de proximité ("où est la banque la plus
proche ?") et de services (interface modifiable) ;
– l’exécution automatique d’un service dans un certain contexte. Ceci inclut les actions ini-
tiées par des déclencheurs de contexte ("context triggered actions"), par exemple un télé-
phone qui change son volume d’écoute en fonction du bruit ambiant ;
– l’étiquetage du contexte à l’information pour une restitution ultérieure.
Comme il a été observé et discuté dans plusieurs travaux [Chaari et al., 2007, Keidl et Kemper, 2004,
Henricksen et al., 2005], un système sensible au contexte à plusieurs composants, tel que un cap-
teur de contexte, stockage du contexte, raisonneur du contexte et consommateur du contexte,
pour ne citer qu’une partie. Ces composants sont logiquement séparés des applications qu’ils
supportent. Ainsi, dans [Truong et Dustdar, 2009], les auteurs proposent une séparation expli-
cite entre :
– Les services sensibles au contexte et les applications : ils utilisent les informations du
contexte et les outils supportés, afin de réagir "intelligemment" (être sensible au contexte).
– Les composants de la sensibilité au contexte : ils aident les applications et les services en
captant et fournissant les informations du contexte. Des exemples de ces composants sont
les capteurs, les enregistreurs de contexte et les moteurs de raisonnement sur le contexte.
Ainsi, la séparation entre la détection et l’utilisation du contexte est nécessaire afin d’améliorer
l’extensibilité et la réutilisabilité dans le système. Dans cette perspective, la figure 4.1 propo-
sée dans [Baldauf et al., 2007] illustre une architecture en couches pour les systèmes sensibles
au contexte, permettant de séparer les parties détection et utilisation, en y ajoutant la partie
interprétation et raisonnement. Une description détaillée de ces différentes couches est présentée
dans [Baldauf et al., 2007].
CHAPITRE 4. MDA ET LES APPLICATIONS SENSIBLES AU CONTEXTE. 71
partir du métamodèle de contexte. Le principal objectif ici est celui de définir les données
qui permettent de mettre en œuvre la sensibilité au contexte durant l’exécution ;
– concepteur de la sensibilité au contexte : deux principales activités sont de la responsa-
bilité de cet utilisateur. La première activité consiste en la préparation du modèle CPIM
(Contextual Platform Independent Model) obtenu à partir des techniques de transforma-
tions entre les deux modèles précédents. À ce stade le modèle PIM est complété par les
données contextuelles, mais sans leur partie sensibilité au contexte qui, elle intervient du-
rant l’exécution. Ainsi, la seconde activité de cet utilisateur est de préparer le modèle
CPSM (Contextual Platform Specific Model), qui intègre, d’une part, les caractéristiques
de la plateforme cible (plateforme service) et d’autre part, le mécanisme de sensibilité au
contexte qui assure l’adaptabilité à l’exécution ;
– l’utilisateur final : personne qui utilise un dispositif mobile «n’importe où et n’importe
quand» pour invoquer des services. Le système, de manière transparente, fournit des infor-
mations pertinentes et/ou accomplit des services en utilisant le contexte.
que cette définition soit utile pour d’autres gammes d’applications mobiles.
Nous considérons que le contexte est un ensemble d’informations structurées en trois dimen-
sions : (i) l’acteur qui est la personne entité centrale dans le système, (ii) l’environnement dans
lequel l’acteur évolue et (iii) le dispositif informatique utilisé par l’acteur pour faire appel ou
bien invoquer des services capturant les différents états de l’environnement.
La figure 4.4 illustre notre métamodèle de contexte en utilisant le langage UML. Une définition
plus complète de ce métamodèle à partir des ontologies est présentée dans [Vale et Hammoudi, 2009b].
Nous avons alors utilisé la spécification ODM de l’OMG[OMG, 2006b]. La figure 4.4 identifie et
regroupe les principales entités contextuelles génériques qui seront prises en compte dans la mo-
délisation d’une application mobile sensible au contexte. Le métamodèle proposé est composé de
six entités contextuelles génériques (grisées sur la figure 4.4), et quatre entités spécifiques à cer-
taines des applications mobiles. La classe ContextView regroupe toutes les entités contextuelles
impliquées dans une application. Elle est identifiée par un nom et elle possède deux types de
relations : l’agrégation et une association simple. La première relation précise qu’une instance
de ContextView est composée de plusieurs entités contextuelles impliquées dans une application
sensible au contexte. La seconde relation belongsTo exprime l’historique des entités contextuelles.
Cette information peut être intéressante pour la définition des vues de contextes futurs. La se-
conde entité générique du métamodèle est ContextEntity. Celle-ci est spécialisée en trois entités
génériques : Actor, ComputationalEntity et Environment.
– Actor : l’acteur peut être une personne ou bien un objet qui possède un état et un profile. Il
évolue dans un environnement et il utilise un dispositif informatique mobile pour solliciter
des services. L’état d’un acteur peut être en mouvement ou bien fixe.
– ComputationalEntity : c’est le dispositif informatique mobile utilisé par l’acteur pour ac-
céder aux services et capturer les informations contextuelles à partir de l’environnement.
Le dispositif mobile dispose des informations concernant son type qui peut être (PDA,
ordinateur portable, téléphone mobile, etc), l’application, le réseau, etc.
– Environment : l’environnement regroupe toutes les informations qui entourent l’acteur et
son dispositif mobile et qui peuvent être importantes pour l’application. Ces informations
classées sous différentes catégories : (i) spatiales (la localisation, la ville, l’immeuble, le
bureau . . .), (ii) temporelles (l’heure, la date, la saison . . .), (iii) climatique (température,
type du climat . . .).
L’entité Profile correspond au profil de l’utilisateur, il est important de la mentionner dans ce
métamodèle en raison de son rôle capital dans toute application mobile centrée utilisateur. En
outre le profile est très attaché à l’entité acteur. Il contient les informations qui le décrivent. Un
acteur peut avoir un profil dynamique et/ou statique. En effet, le profil statique regroupe les
CHAPITRE 4. MDA ET LES APPLICATIONS SENSIBLES AU CONTEXTE. 75
informations pertinentes pour toute application mobile sensible au contexte comme la date de
naissance, le nom ou le sexe de l’utilisateur. A l’opposé, le profil dynamique inclut des informa-
tions personnalisées qui dépendent de l’acteur. Le profil dynamique d’un utilisateur peut être
ses objectifs, ses préférences, ses intentions ou bien ses contraintes. Par exemple l’objectif d’un
touriste lors de la recherche d’un restaurant, c’est de diner. Le profil dans ce cas peut donner des
informations concernant ses habitudes culinaires.
d’une classe sera transformé vers un attribut XML ou vers un élément XML. Ainsi, la technique
de transformation paramétrée repose sur l’utilisation des paramètres qui serviront de balises
dans le processus de transformation. Nous l’avons adaptée à notre problématique en considérant
les paramètres comme les entités (attributs, opérations, classes,...etc) du modèle métier (PIM)
représentant le contexte. Ces entités seront complétées (et/ou enrichies) par le modèle de contexte
lors du processus de transformation. Un mécanisme de tissage est alors mis en œuvre entre le
modèle métier PIM et le modèle de contexte. La figure 4.6 illustre le principe de la transformation
paramétrée adaptée à notre problématique. Le modèle PIM est développé indépendamment du
contexte, puis durant la transformation il est enrichi par les informations contextuelles utilisées
comme des paramètres : profiles, dispositif mobile, localisation.
que certains éléments du contexte seront tissés au modèle PIM pour créer le modèle CPIM.
Comme pour le modèle métier PIM, les éléments du modèle de contexte peuvent être marqués et
sont templateables. La figure 4.8 schématise le processus de marquage lors de la transformation
paramétrée.
Concrètement, une fois que les modèles PIM et contexte sont marqués, la transformation
paramétrée est réalisée en deux processus : un processus de matching et un processus de sub-
stitution. Le processus de matching permet d’aligner les éléments du modèle PIM avec ceux du
contexte. Le processus de substitution permet d’enrichir les éléments du modèle PIM représen-
tant le contexte par leur définition issue du modèle de contexte. De manière très simplifiée, la
technique de transformation paramétrée peut être intuitivement définie par la formule suivante :
Nous allons plutôt présenter une approche qui est adaptée à notre problématique de composition
d’un modèle métier PIM et un modèle de contexte. Nous allons commencer dans la section
suivante (4.5.2.1) par une présentation succincte de la composition de modèles, ensuite dans la
section (4.5.2.2), nous présenterons l’approche de composition adaptée pour notre problématique.
La section (4.5.2.3) positionne cette approche de composition de modèles par rapport à notre
proposition de transformation paramétrée.
"Model composition in its simplest form refers to the mechanism of combining two models
into a new one" [Akehurst et al., 2007]
Ces deux définitions peuvent être traduites schématiquement par la figure 4.9. Ainsi, la com-
position de modèles peut être définie comme un processus qui prend deux ou plusieurs modèles
en entrée, les intègre au travers d’une opération de composition et produit un modèle composite
en sortie.
Le schéma de la figure 4.9 est bien sur incomplet. En effet, aucune hypothèse n’est exprimée
sur les modèles en entrée, en sortie, ni sur l’opération de composition. En réalité, chaque approche
précise les hypothèses pour le processus de composition adopté. Ainsi, une classification des
différentes approches de composition est présentée dans [Nguyen, 2008] selon les quatre volets
suivants :
– classification selon les caractéristiques des modèles en entrée ;
– classification selon les caractéristiques des modèles en sortie ;
– classification selon les caractéristiques de l’opération de composition ;
– autres caractéristiques de composition.
Six environnements dédiés à la composition de modèles ont été proposés dans l’état de l’art.
Nous les listons ci-dessous par ordre chronologique :
- Eclipse Modeling Framework [Steinberg et al., 2009].
- Kompose [Fleurey et al., 2007].
- Generic Modeling Environment [Molnar et al., 2007].
- Epsilon Merging Language [Kolovos et al., 2006].
CHAPITRE 4. MDA ET LES APPLICATIONS SENSIBLES AU CONTEXTE. 79
pour modéliser le flux des services. Les techniques de transformations de l’approche MDD et la
programmation orientée aspects sont utilisés pour la mise en œuvre finale sur une plateforme
services. Les apports de l’intégration entre l’approche MDD et la programmation par aspects
sont discutés dans [Carton et al., 2009], et représentent un des axes de nos travaux en cours et
futurs. Le chapitre 6 dédié aux perspectives de nos travaux de recherche reviendra sur cette
partie. Dans un autre travail similaire à l’approche ContextUML, les auteurs proposent un profil
UML pour le développement des applications sensibles au contexte selon une approche MDD
[Grassi et Sindico, 2007]. Le profile proposé permet de classifier le contexte en (i) le contexte
d’état (statique), qui permet de caractériser l’état courant d’une entité, et (ii) le contexte dy-
namique (orienté évènement) qui représente les changements d’états d’une entité en fonction
d’évènements. Les contraintes sont utilisées sur chacun des types de contexte afin de mettre en
œuvre la sensibilité au contexte : les contraintes d’états font référence à des points spécifiques
dans le temps, tandis que les contraintes évènementielles exploitent les données historiques des
évènements liés aux contextes. Dans [Ou et al., 2006], une approche MDA est proposée à partir
des ontologies pour la représentation des informations liées au contexte. Les concepts du modèle
de contexte sont définis à partir des métamodèles de RDFS/OWL. Une architecture dite d’in-
tégration (MDIA) est proposée pour le développement des services sensibles au contexte selon
une approche MDA. Cependant, les auteurs n’abordent pas les techniques de transformation et
la gestion du contexte est liée à la logique métier des services. Dans [de Farias et al., 2007], les
auteurs présentent différents modèles de contexte proposés dans la littérature, et proposent un
métamodèle selon le formalisme MOF intégrant les principaux concepts liés au contexte pour
des applications mobiles à base de services. Ce travail ne discute pas des techniques de trans-
formations, ni comment le contexte est associé à la logique métier des applications. L’approche
dirigée par les modèles a aussi été utilisée pour le développement des environnements intelligents
(SmartHome), où la notion de contexte trouve tout son rôle. Dans [Gu et al., 2005], les auteurs
proposent un métamodèle de contexte pour décrire l’environnement d’une maison intelligente.
Ils ont défini une ontologie de contexte hiérarchique composé de deux couches : (1) Common
upper ontologie : cette couche décrit les concepts de base comme la personne, la localisation,
les entités informatiques, l’activité de la personne, etc. (2) The domain specific ontology : Cette
deuxième couche décrit les propriétés et les détails de tous les concepts de base, par exemple
la personne possède un nom, un rôle, un état qui décrit son activité. Plus récemment dans
[Serral et al., 2010], les auteurs proposent une méthode selon l’approche MDD pour la modélisa-
tion et la mise en œuvre de services ubiquitaires associés à une maison intelligente. Les auteurs
définissent un langage de modélisation PervML qui repose sur les ontologies, à travers le langage
OWL, pour décrire les services métiers et le contexte dans des modèles indépendants. Ensuite
les auteurs proposent une stratégie de génération automatique de code java pour les services
demandés.
Au delà de l’IDM, de nombreuses recherches en gestion du contexte qui ont été menées
récemment se sont principalement concentrées sur l’acquisition, le traitement, la modélisation
et la transmission du contexte à l’application. Le travail le plus connu dans le domaine est
celui de Dey et son équipe [Salber et al., 1999]. Dey a défini une architecture pour l’acquisition,
l’interprétation et l’assemblage de données contextuelles provenant de sources diverses à base de
context widgets.
A notre connaissance, notre approche est la seule proposition qui s’intéresse aux deux facettes
de façons unifiée, les autres travaux se concentrant habituellement sur la définition d’un modèle
unique intégrant logique métier et contexte. Des techniques de transformations classiques sont
alors mises en œuvre pour aboutir à une plateforme cible. Notre approche COMODE permet
d’associer à une même logique métier différent modèles de contexte et inversement un même
modèle de contexte peut être associé à différent modèles métier. La technique de transformation
paramétrée permet au concepteur de marquer les entités du modèle métier jugées pertinentes
pour le processus d’adaptation. Ces entités représentent le contexte et seront complétées par
le modèle de contexte durant le processus de transformation. Les résultats de nos travaux sur
l’approche MDA pour les applications sensibles au contexte peuvent être résumés comme suit :
– une architecture logiciel COMODE composée de cinq vues dédiées au développement d’ap-
plications sensibles au contexte selon une approche MDA ;
– un processus de développement COMODE illustrant les principaux modèles, les principaux
utilisateurs et les principales activités, impliqués dans le développement d’applications
sensibles au contexte selon une approche MDA.
– un métamodèle de contexte intégrant les principales entités utilisées dans l’état de l’art des
applications mobiles centrées utilisateur et sensibles au contexte.
– une technique de transformation dite paramétrée permettant de tisser le contexte à la
logique métier au niveau des modèles. La logique métier se retrouve enrichie par les données
contextuelles permettant la mise en œuvre de services adaptés à l’utilisateur final.
On peut cependant regretter quelques points, et nous pourrons donc poursuivre nos investigations
sur plusieurs axes. Dans le cas de l’architecture logiciel COMODE nous ne nous sommes interessé
qu’à trois vues : métier, contexte et composition. Les vues adaptation et services, même si nous
avons présenté quelques idées dans [Vale, 2009], doivent être développées de manière détaillée
afin d’aboutir à une réalisation de l’approche COMODE. Le métamodèle de contexte est décrit
sous le formalisme UML/MOF, il manque cependant une définition plus complète des principales
entités contextuelles. Les propriétés caractérisant chacune des principales entités (Acteur, Profile,
Environnement,...ect) doivent être déclinées et leur rôle dans la sensibilité au contexte doivent
être précisé. Dans [Vale et Hammoudi, 2009a] nous avons initié une définition du métamodèle
de contexte à partir des ontologies OWL/RDF afin de bénéficier de la richesse sémantique, de
l’extensibilité et de l’interopérabilité de ces formalismes [Euzenat et al., 2008]. Ce travail sera
poursuivi dans l’objectif de définir un métamodèle de contexte complet à base d’ontologies qui
doit être (a) suffisamment général pour être utilisé par différentes applications mobiles centrées
utilisateur, (b) suffisamment spécifique pour couvrir les principales entités contextuelles proposées
dans l’état de l’art des applications mobiles sensibles au contexte (c) suffisamment flexible pour
permettre une extensibilité et la prise en compte de nouvelles entités propres à un domaine
d’application. Enfin , faute de temps et de moyens humains, nous n’avons pas implanté nos
premiers résultats concernant les techniques de transformations et le processus de développement.
La chapitre 6 réservé à nos perspectives de recherche et développement reviendra en détail sur
nos travaux futurs.
Journal :
Conférence :
Workshop
By using frameworks that explicitly model assumptions about the application do-
main and the implementation environment, automated tools can analyze models for
flaws and transform them into implementations, avoiding the need to write large
amounts of code and eliminating the errors caused by programming [Booch et al., 2004].
86
CHAPITRE 5. MDA ET LE PROCESSUS DE TRANSFORMATION 87
représentées par des modèles et métamodèles. Ceci fait l’objet de la section 5.2. Notre seconde
contribution propose une méthodologie qui illustre les différentes étapes d’un processus semi-
automatique de transformation. Ceci fait l’objet de la section 5.3. Enfin, une mise en œuvre
complète est réalisée à travers un outil désigné par SAMT4MDE (Semi-Automatic Matching
Tool for MDE). Cet outil supporte les différentes étapes de notre approche : de l’appariement
entre métamodèles jusqu’a la génération des règles de transformations. Une évaluation de notre
algorithme d’appariement entre métamodèles est réalisée par des mesures de qualités proposées
dans le domaine des bases de données. Ceci fait l’objet de la section 5.4. Nous concluons ensuite
ce chapitre par un positionnement par rapport à l’état de l’art, une synthèse des apports et des
idées pour des travaux futurs. En tout dernier lieu, nous présentons une vue synthétique des
actions que nous avons menées sur cette thématique, incluant notamment les participants et les
publications.
être représenté par une opération de gestion de modèles appelée match [Bernstein, 2003].
Cette opération prend deux métamodèles M1 et M2 en entrée et produit en sortie une
première version d’un modèle de correspondance Mm. M1 et M2 sont, respectivement,
conformes aux métamodèles correspondants MM1 et MM2. Mm est conforme au métamo-
dèle de correspondance MMm. L’opérateur → représente la relation conformsTo.
– Valider et/ou adapter les correspondances : cette activité est à la charge de l’expert humain.
Cependant, étant donné que les techniques d’appariement existantes ne donnent pas de
solution idéale pour tous les cas possibles, il serait rationnel de doter les utilisateurs-
expert d’outils interactifs pour réaliser les corrections nécessaires. Ces outils, permettent à
l’expert, de valider, supprimer ou modifier les correspondances obtenues, ou plus encore,
de spécifier des correspondances que les techniques d’appariement n’ont pas pu déterminer.
Nous appellerons cette partie fondamentale du processus de transformation, la technique
d’« Adaptation ».
– Génération des règles de transformation : cette phase a pour but de générer automatique-
ment les règles de transformation à partir des correspondances et de les formater en un
modèle de transformation de telle manière qu’elles puissent être utilisées par le programme
(de transformation) qui transforme le modèle PIM en un modèle PSM. Le modèle de cor-
respondance obtenu à la phase précédente, suite à son adaptation par l’utilisateur expert,
doit être complètement défini pour permettre une génération automatique du modèle de
transformation. Ce modèle, qui consiste en un ensemble de règles de transformation, est
un modèle structuré conformément au standard MOF2.0-QVT de l’OMG ou au langage
ATL utilisé dans nos expérimentations.
CHAPITRE 5. MDA ET LE PROCESSUS DE TRANSFORMATION 91
“the notion of semantic distance is developed to cover the notion of how close is close enough”
Une notion duale à la distance sémantique est celle de similarité entre deux schémas (schema
similarity) définie comme le "rapport entre le nombre d’éléments appariés et le nombre de tous
les éléments des deux schémas d’entrée" (SS = Nm / NT), où SS est la similarité entre schémas,
Nm est le nombre d’éléments appariés et Nt est le nombre total d’éléments des deux schémas en
entrée du processus d’appariement.
En partant de ces notions de base, plusieurs approches d’appariement de schémas ont été pro-
posées dans la littérature [Do et Rahm, 2007, Rahm et Bernstein, 2001, Shvaiko et Euzenat, 2005],
chacune ayant ses propres caractéristiques, regroupées selon une taxonomie [Rahm et Bernstein, 2001].
Dans [Hammoudi et al., 2010], nous présentons une synthèse de ces différentes approches d’ap-
pariements de schémas. Des mesures de qualités pour évaluer les différentes approches d’apparie-
ments de schémas ont été aussi proposées dans [Do et al., 2003]. Nous avons adopté ces mesures
pour évaluer notre approche d’appariement des métamodèles présentée en section 5.4.2, et nous
allons ci-dessous les introduire de manière succincte.
Ainsi, les correspondances entre les schémas peuvent être regroupées en des ensembles créés
soit manuellement soit automatiquement. Un ensemble créé manuellement par un expert peut
contenir tous les appariements valides (c.-à-d éléments appariés), alors qu’un ensemble créé auto-
matiquement peut contenir à la fois des appariements valides et d’autres non valides. Le premier
ensemble est dénommé par Real Matches (vrais appariements), et le second par Derived Matches
(appariements dérivés) (cf. Fig. 5.4).
Par ailleurs, d’autres sous-ensembles sont définis comme suit :
– A (faux négatifs) sont des appariements valides mais non identifiés automatiquement.
– B (vrais positifs) sont des appariements valides et qui ont été correctement déterminés par
l’opération automatique d’appariement.
– C (faux positifs) sont des appariements proposés d’une manière erronée par l’opération
automatique d’appariement.
– D (vrais négatif) sont de faux appariements qui ont été correctement écartés par l’opéra-
tion automatique d’appariement.
Basée sur les cardinalités de ces ensembles, les mesures de qualité d’appariement sont fournies
comme paramètres pour les benchmarks comme suit [Do et al., 2003] :
|B| |B|
P recision = |B| +|C| Recall = |A| +|B|
precision∗recall |1|
F − M easure = 2 ∗ precision+recall Overall = recall ∗ (1- precision )
La précision reflète la part des appariements pertinents parmi les appariements automati-
quement obtenus. Une plus grande précision signifie que les appariements trouvés ont plus de
chance d’être pertinents. Si le nombre de faux positifs est égal à zéro, tous les appariements
sont considérés être pertinents. Le Recall reflète la fraction des appariements pertinents par
rapport à l’ensemble des appariements concernés. Un Recall élevé exprime le fait que presque
tous les appariements pertinents ont été trouvés. Toutes ces mesures ont été développées spé-
cifiquement dans le contexte de l’appariement des schémas [Do et al., 2003, Do et Rahm, 2007,
Rahm et Bernstein, 2001]. On peut remarquer que F-mesure représente la moyenne harmonique
de la précision et du Recall. L’idée principale à travers Overall est de quantifier l’effort après
l’appariement nécessaire pour l’ajout des appariements manquant et la suppression des résultats
erronés.
CHAPITRE 5. MDA ET LE PROCESSUS DE TRANSFORMATION 94
Pour tester l’appariement des classes, des types et des énumérations, nous avons défini trois
fonctions ϕ, ϕ0 et ϕ00 [Hammoudi et al., 2010]. Chacune de ces trois fonctions est définie comme
suit :
1 si a = b (a et b sont équivalent)
ϕ (a, b) = 0 si a u b (a et b sont similaire)
−1 si a 6= b (a et b sont dif f érent)
Les notions d’équivalences et de similarités ont été définies respectivement dans
[Bernstein, 2003, Pottinger et Bernstein, 2003]. Nous les avons adoptées dans notre algorithme
d’appariement en utilisant les trois critères d’appariement suivant pour l’évaluation des fonc-
tions :
– la similarité des noms (name similarity),
– la similarité des types (type similarity),
– l’appariement de graphes (graph matching).
Ainsi, par rapport aux différentes approches d’appariements [Rahm et Bernstein, 2001], nous
avons adopté une approche hybride mixant différent critères d’appariements. Des présentations
détaillées de notre approche d’appariement ainsi que de notre algorithme se trouvent dans les
articles suivants [Lopes et al., 2006b, Lopes et al., 2006a, Hammoudi et al., 2010]. Ci-dessous la
description générale de notre algorithme en pseudo-code Java.
CHAPITRE 5. MDA ET LE PROCESSUS DE TRANSFORMATION 95
Le tableau 5.2 donne un aperçu sur les résultats obtenus dans nos différentes expérimentations
discutées dans [Hammoudi et al., 2010]. Nous avons utilisé les mesures de qualités développées
pour l’appariement des schémas en bases de données [Do et al., 2003] et présentées brièvement
en début de cette section 4.
Dans ce qui suit, nous discutons brièvement des principales leçons tirées de nos trois ex-
périmentations : UML-C #, UML-Java et UML-WSDL. Les plus grandes valeurs de similarité
de schémas et de la précision ont été obtenues pour UML-WSDL. Les meilleures valeurs des
caractéristiques de Recall et de F-mesure ont été réalisées pour l’appariement UML-Java. Ces
résultats nous permettent de tirer les conclusions suivantes :
– La distance sémantique entre les métamodèles d’UML et WSDL (ou Java) est relativement
faible, et donc de nombreuses propriétés sont appariées (schema similarity = 0.84).
– Il n’ y a aucune ambiguïté sémantique entre les propriétés des métamodèles UML et WSDL,
puisque la précision de l’appariement est totale.
– Outre que ces valeurs sont très intéressantes en termes de découverte d’appariements, nous
pensons que les transformations de qualités égales dont le code a été écrit manuellement
prendraient plus de temps pour être produites. Maintenant, nous devons donc mener des
expérimentations pour prouver ce point, et montrer que dans l’ensemble, un processus de
transformation dans une approche semi-automatique est plus efficace et prend moins de
temps qu’une transformation entièrement manuelle.
Toutefois, notre outil a montré quelque limites. Par exemple, dans l’appariement entre les méta-
modèles de UML et de C#, notre outil SAMT4MDE propose que l’élément Attribute de UML
peut correspondre à l’élément Attribute de C #. En UML, un Attribute est une caractéristique
dans un classifier qui décrit une série de valeurs dont le type est classifier, tandis que, en C #, At-
tribute est utilisé pour inclure des informations supplémentaires à un type classifier. Cette erreur
peut être justifiée, car, après l’application des relations croisées [Pottinger et Bernstein, 2003],
l’élément Attribute en UML a une relation avec un classifier UML, et l’élément Attribute C #
a une relation avec un classifier C #. En plus, les noms de ces deux éléments sont les mêmes,
mais les significations sont différentes. En d’autres termes, les deux éléments ont des structures
similaires, et une analyse préliminaire linguistique détermine qu’ils sont égaux. En fait, ces élé-
ments ont été appariés à tort et cette correspondance est un faux positif. Dans des recherches
futures, nous tâcherons d’éviter ce genre d’erreurs par l’amélioration de notre outil par une
analyse sémantique et l’utilisation des techniques d’apprentissage.
5.5.2 situe les points forts de notre travail et décline ses limites et discute les travaux futurs, la
section 5.5.3 présente la liste des publications autour de ce travail.
Parmi les approches d’appariement de métamodèles, les auteurs de [Falleri et al., 2008] pro-
posent une approche qui en trois phases qui détecte automatiquement les correspondances entre
deux métamodèles, et les utilise pour générer un alignement entre ces métamodèles. L’ap-
proche commence par la génération de graphes orientés étiquetés représentant les métamodèles
à apparier, puis, l’approche continue avec l’application de l’algorithme de Similarity Flooding
[Melnik et al., 2002] sur les graphes produits. Ces graphes sont ensuite utilisés dans un proces-
sus de calcul du point fixe dont le résultat indique les nœuds dans le premier graphe et leurs
semblables dans le second. La dernière étape consiste en la génération d’un alignement entre
les deux métamodèles. L’article évalue différentes configurations de l’algorithme similarity floo-
ding et sur plusieurs métamodèles. En comparaison avec notre approche, celle présentée dans
[Falleri et al., 2008] utilise un algorithme de matching orienté graphe avec différentes configu-
rations. Cependant, les auteurs ne proposent ni une architecture ni une méthodologie pour le
processus de transformation, et de ce fait le travail décrit pourrait être vu comme une variante
pour l’appariement des métamodèles. D’autre part, il n’est pas démontré que la transforma-
tion en graphes ne ralentit pas le processus. Dans le même ordre d’idées visant à faciliter la
génération semi-automatique de correspondances entre métamodèles et en vue d’améliorer le
modèle d’appariement pour le développement du modèle de transformation, [Voigt et al., 2010]
propose d’intégrer les approches d’appariement existantes dans un même module et de réutiliser
les résultats des appariements en appliquant différents apparieurs spécifiques de métamodèles.
Notamment, un apparieur d’instances, un apparieur de graphe, un apparieur d’annotation, un
apparieur de type de données, un apparieur de fréquence, un apparieur de patron, et une confi-
guration d’appariement basée sur la classification de types de transformation de modèles. Cette
nouvelle approche est implémentée dans un prototype combinant l’apparieur d’instance et l’ap-
parieur de type de données dans un environnement existant. Ce travail représente également
une variante du processus d’appariement dans notre architecture. Une autre tendance récente
(transformation de modèles basée sur des exemples-MTBE ) pour aider au développement de
transformations est inspirée par les approches de la programmation par l’exemple ou par la
démonstration [Lieberman, 1993]. Dans ces propositions, les règles de transformations sont géné-
rées à partir des exemples de transformations (traces composées d’exemples de correspondances).
Ainsi, des règles d’ATL sont dérivées des exemples de transformation écrits dans une syntaxe
concrète dans [Wimmer et al., 2007]. Dans [Kessentini et al., 2008], ils utilisent un algorithme
basé sur l’optimisation par essaims particulaires (particle swarm optimization) pour générer une
transformation consistante d’un modèle. La transformation d’un élément du modèle source est
codée comme une particule qui doit être située dans l’espace des transformations possibles. Les
correspondances existantes et connues des exemples de transformation indiquent ce que l’algo-
CHAPITRE 5. MDA ET LE PROCESSUS DE TRANSFORMATION 99
rithme essaie de respecter. Une autre approche MTBE est donnée dans [Varró et Balogh, 2007]où
les règles de transformation de graphes sont dérivées d’une manière semi-automatique à par-
tir des correspondances entre des modèles donnés par un utilisateur. L’analyse est alors basée
sur la logique inductive des éléments voisins du modèle, et l’interaction avec un expert. Dans
[Dolques, 2009], des informations sur les métamodèles source et cible, ainsi que sur les corres-
pondances sont codées dans des tables traitées par l’approche d’analyse formelle des concepts
(Formal Concept Analysis). Les règles de transformation sont ensuite déduites par inférence sur
la base des points communs dans la description des exemples de correspondance. L’approche
MTBE est une approche complémentaire qui exige une extension de l’architecture du processus
de transformation, car les traces et les exemples doivent être ajoutés dans le processus global.
Quand l’approche MTBE arrive à maturité, une perspective serait de la combiner avec les ap-
proches basées sur l’appariement de métamodèles pour obtenir une architecture hybride.
Journal :
Towards A Semi-Automatic Transformation Process in MDA : Architecture, Methodology and First Experiments.
Slimane Hammoudi, Wajih Alouini, Denivaldo Lopes, Marianne Huchard
International Journal of Information System Modeling and Design (IJISMD). issue No 4, 2010.
pp 1-33.
Semi-Automatic Generation of Transformation Rules in Model Driven Engineering : The Challenge and First Steps
Slimane Hammoudi, Wajih Alouini, Denivaldo Lopes, Mohamed Gammoudi
International Journal of Software Engineering and Its Applications (IJSEIA). To be published
in 2010.
Conférence :
Workshop
Ce document propose une vision unifiée des différents travaux que j’ai menés autour de
l’ingénierie des modèles et ses applications à deux domaines phare de l’ère internet : les services
Web et l’informatique pervasive sous l’angle des applications sensibles au contexte. L’application
de l’IDM aux deux domaines m’a conduit à m’intéresser et intensifier mes recherches sur les trois
axes clés de l’IDM selon l’approche MDA :
– Les techniques de modélisation et métamodélisation.
– Les techniques de transformations de modèles.
– Les méthodologies de développement.
La transformation de modèles a pris une place importante dans mes travaux de recherche et mes
contributions sur cet axe s’inscrivent sur deux problématiques :
– la semi-automatisation du processus de la transformation.
– l’application des deux techniques de transformations : la transformation paramétrée et la
composition de modèles.
Une des originalités de nos travaux est d’avoir suivi une approche qui renforce et met en œuvre
le principe de la séparation des préoccupations, un des principes essentiels du génie logiciel et
fondateur de l’ingénierie dirigée par les modèles. Nos travaux ont permis de proposer et de mettre
en œuvre une séparation entre les modèles suivants :
– modèle de correspondance versus modèle de transformation (pour le processus de transfor-
mation dans MDA)
– modèle métier versus modèle de contexte (pour le développement des services pervasifs
sensibles aux contexte).
La première séparation permet dans un premier lieu de s’afranchir des langages de transforma-
tions, et de se concentrer sur une problématique de plus haut niveau d’abstraction, la spécification
des correspondances. Dans un second lieu, la séparation entre modèle de correspondances et mo-
dèle de transformation nous à conduit à proposer une approche pour la semi-automatisation du
processus de transformation.
La seconde séparation entre modèle métier et modèle de contexte permet la réutilisabilité et la
gestion des informations contextuelles indépendemment de la partie métiers. Ainsi, un modèle
de contexte peut être défini indépendamment de la logique métier d’une application, à différents
niveaux d’abstraction, puis tissé au modèle métier par des techniques de transformation adap-
tées. Nous avons proposé deux techniques de transformations : la transformation paramétrée et
la composition de modèles.
102
CHAPITRE 6. SYNTHÈSE, DIRECTION DE RECHERCHE ET PERSPECTIVES 103
Mon projet scientifique pour les prochaines années s’inscrit dans la lignée de mes travaux
présenté dans ce document sur l’étude et l’application de l’ingénierie dirigée par les modèles. Le
vaste champ de recherche autour de l’IDM dépasse de loin ce qu’une personne, ou une équipe
peut entreprendre. l’IDM est toujours dans une phase de défrichage, encore largement empirique.
Comme il a été remarqué dans [Muller, 2006], nous manipulons des notions sans les avoir définies
formellement, ni sans avoir défini des opérateurs qui s’appliquent sur ces notions. Pour avancer
significativement, l’IDM doit se doter d’une théorie des modèles et des opérations les manipulants
afin de pouvoir d’une part raisonner sur les modèles et d’autre part afin de pouvoir construire
des outils fiables et efficaces.
Nous précisons dans chacune des sections qui suivent les recherches qui nous semblent prio-
ritaires et sur lesquelles nous comptons travailler à court terme.
Research on providing support for creating and using runtime models is in its infancy.
Providing support for changing behavior during runtime is particularly challenging. If models
are to be used to effect changes to running software, research needs to focus on how the
changes can be effected in a controlled manner [France et Rumpe, 2007].
L’architecture orientée services (SOA – Service Oriented Architecture) représente le socle des
futurs systèmes d’information des entreprises, où les services sont perçus comme des entités auto-
nomes qui peuvent être décrites, publiées, catégorisées, découvertes et composées dynamiquement
pour le développement de systèmes interopérables et évolutifs. Aujourd’hui, il est largement ad-
mis que les services Web étudiés dans le chapitre 3 de ce mémoire constituent la solution adéquate
pour implémenter les architectures orientées service. Cependant les services Web ont un code mo-
nolithique et encapsulent différentes préoccupations telles que la sécurité, l’authentification, et
de ce fait, présentent des limitations par rapport à leur adaptabilité dynamique aux changements
de la logique métier. Ces limitations affectent les fournisseurs et les consommateurs de services.
D’un coté, les fournisseurs de services n’ont pas le moyen de changer dynamiquement une im-
plémentation ou une composition de services existante. Ils sont obligés de stopper le service, de
le re-codifier puis de le redéployer. Pendant ce temps, le service est rendu indisponible pour ses
utilisateurs. D’un autre coté, comme le service est partagé par plusieurs applications clientes, si
un changement affecte la description du service WSDL ou le protocole d’interaction BPEL, les
consommateurs ne pourront plus interagir avec celui ci et aboutissent à des erreurs d’exécution.
Nous désignons par adaptation évolutive des services la possibilité de changer dynamiquement la
logique métier d’un service sans avoir à le stopper. Une autre approche d’adaptation des services
a été présentée dans le chapitre 4 sous le vocable de services sensibles aux contexte. Un service
sensible au contexte peut capturer dynamiquement un ensemble d’informations de son environne-
ment ; ces informations représentent un contexte ; le service s’adapte en cours d’exécution grâce à
ce contexte. Nous désignons par adaptation contextuelle des services la possibilité d’adapter dy-
namiquement la logique métier d’un service en fonction d’informations contextuelles. Nous avons
proposé au chapitre 4 une approche appelée COMODE pour le développement de ces services
sensibles aux contexte à partir de l’approche MDA. Cependant, la problématique de la sensibilité
au contexte, permettant à des services de s’adapter dynamiquement en fonction des données du
contexte, n’a pas été abordée.
Notre première perspective est de proposer une approche IDM permettant de prendre en
compte les deux types d’adaptation des services de la conception (design-time) et jusqu’a l’exé-
cution (runtime).
– l’adaptation évolutive des services permet de faire évoluer dynamiquement la logique métier
d’un service ou des préoccupations transversales liées aux service, tout en assurant une
disponibilité totale du service.
CHAPITRE 6. SYNTHÈSE, DIRECTION DE RECHERCHE ET PERSPECTIVES 104
– la modélisation orientée aspect [Jézéquel, 2006, Rashid et al., 2003] : permet de modéliser
dès la conception à travers les aspects, soit les évolutions possibles de la logique métier d’un
service, soit les situations contextuelles permettant d’assurer l’adaptabilité du service.
– modèle à l’exécution (Model@runtime) [Bencomo et al., 2006, Morin et al., 2009] : permet
de mettre en œuvre l’évolution d’une logique métier d’un service ou son adaptabilité à l’exé-
cution. Dans le workshop Runtime Models [Bencomo et al., 2006], Gordon Blair a identifié
certaines des problématiques de recherche autour des modèles à l’exécution.
– la composition et le tissage de modèles [Clarke, 2002, France et al., 2007] : permet dès la
conception et de manière automatique de composer des modèles pour gérer des variations
d’évolutions. Elle peut aussi être utilisée pour composer des modèles à l’exécution afin de
mettre en œuvre l’adaptabilité dynamique [Jézéquel, 2010].
Participer, modestement, à l’avancée de ces trois perspectives constitue une aventure que je
souhaite mener à bien au niveau national et international avec la communauté avec laquelle j’ai
le plaisir et la chance de travailler.
Bibliographie
[Abowd et Mynatt, 2000] Abowd, G. D. et Mynatt, E. D. (2000). Charting past, present, and
future research in ubiquitous computing. ACM Trans. Comput.-Hum. Interact., 7(1):29–58.
[Aho et al., 1986] Aho, A. V., Sethi, R. et Ullman, J. D. (1986). Compilers : Princiles,
Techniques, and Tools. Addison-Wesley.
[Akehurst et al., 2007] Akehurst, D. H., Vogel, R. et Paige, R. F. (2007). Lecture notes in
computer science. Springer,, vol. 4530,.
[Aksit, 1996] Aksit, M. (1996). Separation and composition of concerns in the object-oriented
model. ACM Comput. Surv., 28(4es):148.
[Alizon F., 2008] Alizon F., B. M. (2008). Les modèles dans l action à france télécom avec
smartqvt. In Génie Logiciel, source : Journées Neptune n° 5, 08/04/2008.
[Alouini, 2008] Alouini, W. (2008). La semi-automatisation du processus de transformation
dans l approche mda : Architecture et méthodologie. Mémoire de D.E.A., Mastère de l ISIG
(Kairouan) tunisie.
[Alouini, 2011] Alouini, W. (2011). Vers une semi-automatisation du processus de transforma-
tion dans l approche MDA. Thèse de doctorat, Fac des Sciences de Tunis - TUNISIE.
[Andrews et al., 2003] Andrews, T., Curbera, F., Dholakia, H., Goland, Y., Klein, J.,
Leymann, F., Liu, K., Roller, D., Smith, D., Thatte, S., Trickovic, I. et Weerawa-
rana, S. (2003). Business process execution language for web services. Rapport technique,
IBM.
[Anzböck et Dustdar, 2005] Anzböck, R. et Dustdar, S. (2005). Semi-automatic generation of
web services and bpel processes - a model-driven approach. In Business Process Management,
pages 64–79.
[Arkin, 2002] Arkin (2002). A. business process modeling language. Rapport technique, San
Mateo, CA : BPMI.org.
[Arkin et al., 2002] Arkin, A. et al. (2002). Web services choreography interface (wsci) 1.0.
Rapport technique, W3C.
[Atkinson et Kühne, 2003] Atkinson, C. et Kühne, T. (2003). Model-driven development : A
metamodeling foundation. IEEE Software, 20(5):36–41.
[Bachman, 1974] Bachman, C. W. (1974). Summary of current work - ansi/x3/sparc/study
group - database systems. FDT - Bulletin of ACM SIGMOD, 6(3):16–39.
[Baïna et al., 2004] Baïna, K., Benatallah, B., Casati, F. et Toumani, F. (2004). Model-
driven web service development. In CAiSE, pages 290–306.
[Baldauf et al., 2007] Baldauf, M., Dustdar, S. et Rosenberg, F. (2007). A survey on
context-aware systems. IJAHUC, 2(4):263–277.
[Benatallah et al., 2003] Benatallah, B., Sheng, Q. Z. et Dumas, M. (2003). The self-serv
environment for web services composition. IEEE Internet Computing, 7(1):40–48.
[Bencomo et al., 2006] Bencomo, N., Blair, G. S. et France, R. B. (2006). Summary of the
workshop [email protected] at models 2006. In MoDELS Workshops, pages 227–231.
[Bernstein, 2003] Bernstein, P. A. (2003). Applying model management to classical meta data
problems. In CIDR.
106
BIBLIOGRAPHIE 107
[Bézivin, 2004a] Bézivin, J. (2004a). Model engineering for software modernization. In WCRE,
page 4.
[Bézivin, 2004b] Bézivin, J. (2004b). Sur les principes de base de l ingénierie des modèles.
L’OBJET, 10(4):145–157.
[Bézivin, 2009] Bézivin, J. (2009). The three ages of mde. In 2èmesJournées surl Interopérabilité
des Applications d’Entreprise.
[Bézivin et al., 2006] Bézivin, J., Bouzitouna, S., Fabro, M. D. D., Gervais, M.-P.,
Jouault, F., Kolovos, D. S., Kurtev, I. et Paige, R. F. (2006). A canonical scheme
for model composition. In ECMDA-FA, pages 346–360.
[Bézivin et Gerbé, 2001] Bézivin, J. et Gerbé, O. (2001). Towards a precise definition of the
omg/mda framework. In ASE, pages 273–280.
[Blanc, 2005] Blanc, X. (2005). MDA en action. Eyrolles.
[Blay-Fornarino, 2008] Blay-Fornarino, M. (2008). Cours idm, master. Rapport technique,
EPU département SI, Université de Nice.
[Booch et al., 2004] Booch, G., Brown, A. W., Iyengar, S., Rumbaugh, J. et Selic, B.
(2004). An mda manifesto. url http ://www.bptrends.com/publicationfiles/. Rapport tech-
nique, IBM.
[Bordbar et Staikopoulos, 2004] Bordbar, B. et Staikopoulos, A. (2004). On behavioural
model transformation in web services. In ER (Workshops), pages 667–678.
[Broll et al., 2007] Broll, G., Hußmann, H., Prezerakos, G. N., Kapitsaki, G. et Sal-
sano, S. (2007). Modeling context information for realizing simple mobile services. Rapport
technique, Media Informatics Group, LMU, Munich, Germany.
[Bézivin, 2003] Bézivin, J. (2003). Mda : From hype to hope, and reality. keynote lecture. In
UML’2003.
[Bézivin et al., 2005] Bézivin, J., Blay, M., Bouzhegoub, M., Estublier, J., Favre, J.-M.,
Gérard, S. et Jézéquel., J. M. (2005). Rapport de synthèse de las cnrs sur le mda (model
driven architecture). Rapport technique, CNRS.
[Cappiello et al., 2006] Cappiello, C., Comuzzi, M., Mussi, E. et Pernici, B. (2006). Context
management for adaptive information systems. Electr. Notes Theor. Comput. Sci., 146(1):69–
84.
[Carton et al., 2009] Carton, A., Driver, C., Jackson, A. et Clarke, S. (2009). Model-
driven theme/uml. T. Aspect-Oriented Software Development VI, 6:238–266.
[Chaari et al., 2007] Chaari, T., Ejigu, D., Laforest, F. et Scuturici, V.-M. (2007). A
comprehensive approach to model and use context for adapting applications in pervasive en-
vironments. Journal of Systems and Software, 80(12):1973–1992.
[Clark et al., 2004] Clark, T., Evans, A., Sammut, P. et Willan., J. (2004). Applied me-
tamodelling : A foundation for language driven development. Rapport technique, Middlesex
University.
[Clarke, 2002] Clarke, S. (2002). Extending standard uml with model composition semantics.
Sci. Comput. Program., 44(1):71–100.
[Cook, 2006] Cook, S. (2006). Separating concerns with domain specific languages. In JMLC,
pages 1–3.
[Czarnecki et Eisenecker, 1999] Czarnecki, K. et Eisenecker, U. W. (1999). Components
and generative programming. In ESEC / SIGSOFT FSE, pages 2–19.
[Davis, 2003] Davis, J. (2003). Gme : the generic modeling environment. In OOPSLA Compa-
nion, pages 82–83.
[de Farias et al., 2007] de Farias, C. R. G., Leite, M. M., Calvi, C. Z., Pessoa, R. M. et
Filho, J. G. P. (2007). A mof metamodel for the development of context-aware mobile
applications. In SAC, pages 947–952.
BIBLIOGRAPHIE 108
[Gamma et al., 1993] Gamma, E., Helm, R., Johnson, R. E. et Vlissides, J. M. (1993). Design
patterns : Abstraction and reuse of object-oriented design. In ECOOP, pages 406–431.
[Gavras et al., 2004] Gavras, A., Belaunde, M., Pires, L. F. et Almeida, J. P. A. (2004).
Towards an mda-based development methodology. In EWSA, pages 230–240.
[Goranson, 2005] Goranson, H. T. (2005). Semantic Distance and Enterprise Integration, cha-
pitre Volume 183/2005, pages 39–52. Springer.
[Gordijn et al., 2006] Gordijn, J., Yu, E. et van der Raadt, B. (2006). E-service design using
i* and e3 value modeling. IEEE Software, 23(3):26–33.
[Grassi et Sindico, 2007] Grassi, V. et Sindico, A. (2007). Towards model driven design of
service-based context-aware applications. In ESSPE, pages 69–74.
[Greenfield et Short, 2003] Greenfield, J. et Short, K. (2003). Software factories : assembling
applications with patterns, models, frameworks and tools. In OOPSLA Companion, pages 16–
27.
[Grønmo et al., 2004] Grønmo, R., Skogan, D., Solheim, I. et Oldevik, J. (2004). Model-
driven web services development. pages 42–45.
[Gu et al., 2005] Gu, T., Pung, H. K. et Zhang, D. (2005). A service-oriented middleware for
building context-aware services. J. Network and Computer Applications, 28(1):1–18.
[Hammoudi et al., 2010] Hammoudi, S., Alouini, W., Lopes, D. et Huchard, M. (2010).
Towards a semi-automatic transformation process in mda : Architecture, methodology and first
experiments. International Journal of Information System Modeling and Design (IJISMD),
issue No 4:1–31.
[Hammoudi et Lopes, 2005] Hammoudi, S. et Lopes, D. (2005). From mapping specification
to model transformation in mda : Conceptualization and prototyping. In WSMDEIS, pages
110–121.
[Hammoudi et al., 2005] Hammoudi, S., Lopes, D. et Bézivin, J. (2005). Approche mda pour
le développement d’applications internet sur des plates-formes services web. modélisation,
transformation et prototypage. Ingénierie des Systèmes d’Information, 10(3):67–90.
[Hausmann et Kent, 2003] Hausmann, J. H. et Kent, S. (2003). Visualizing model mappings
in uml. In SOFTVIS, pages 169–178.
[Henricksen et al., 2005] Henricksen, K., Indulska, J., McFadden, T. et Balasubrama-
niam, S. (2005). Middleware for distributed context-aware systems. In OTM Conferences (1),
pages 846–863.
[Hirschfeld et al., 2008] Hirschfeld, R., Costanza, P. et Nierstrasz, O. (2008). Context-
oriented programming. volume 7, pages 125–151.
[Janvier, 2005] Janvier, J. (2005). Les techniques de transformations dans l approche mda et
application aux services web. Mémoire de D.E.A., Université d’Angers, LERIA.
[Jézéquel, 2004] Jézéquel, J.-M. (2004). A mda approach to model & implement transforma-
tions. In Language Engineering for Model-Driven Software Development.
[Jézéquel, 2006] Jézéquel, J.-M. (2006). Modeling and aspect weaving. In MMOSS.
[Jézéquel, 2008] Jézéquel, J.-M. (2008). Model driven design and aspect weaving. Software
and System Modeling, 7(2):209–218.
[Jézéquel, 2010] Jézéquel, J.-M. (2010). Ingénierie dirigé par les modèles : du design-time au
runtime. Génie Logiciel - Ingéniérie dirigée par les modèles, (93).
[Jordan et al., 2007] Jordan, D. et al. (2007). Web services business process execution language
version 2.0. Rapport technique, OASIS.
[Jouault, 2006] Jouault, F. (2006). Contribution à l étude des langages de transformation de
modèles. Thèse de doctorat, Université de Nantes.
[Jouault et Bézivin, 2006] Jouault, F. et Bézivin, J. (2006). Km3 : A dsl for metamodel
specification. In FMOODS, pages 171–185.
BIBLIOGRAPHIE 110
[Lopes et al., 2005] Lopes, D., Hammoudi, S., Bézivin, J. et Jouault, F. (2005). Generating
transformation definition from mapping specification : Application to web service platform.
In CAiSE, pages 309–325.
[Lopes et al., 2006b] Lopes, D., Hammoudi, S., de Souza, J. et Bontempo, A. (2006b). Me-
tamodel matching : Experiments and comparison. In ICSEA, page 2.
[MacKenzie et al., 2006] MacKenzie, m., Laskey, K., McCabe, F., Brown, P. et Metz, R.
(2006). Reference model for service oriented architecture 1.0. Rapport technique, OASIS.
[Medini, 2008] Medini (2008). Mediniqvt available at : http ://projects.ikv.de/qvt/. Rapport
technique, Medini.
[Medjahed et al., 2003] Medjahed, B., Bouguettaya, A. et Elmagarmid, A. K. (2003).
Composing web services on the semantic web. VLDB J., 12(4):333–351.
[Melnik et al., 2002] Melnik, S., Garcia-Molina, H. et Rahm, E. (2002). Similarity flooding :
A versatile graph matching algorithm and its application to schema matching. In ICDE, pages
117–128.
[Mendling et Hafner, 2006] Mendling, J. et Hafner, M. (2006). From ws-cdl choreography to
bpel process orchestration. Rapport technique, Vienna University of Economics and Business
Administration.
[Mens et Van Gorp, 2006] Mens, T. et Van Gorp, P. (2006). A taxonomy of model transfor-
mation. Electron. Notes Theor. Comput. Sci., 152:125–142.
[MICROSOFT, 2003] MICROSOFT (2003). dotnet framework, version 1.0.3 microsoft, 2003.
Rapport technique, MICROSOFT.
[Miller et Mukerji, 2003] Miller, J. et Mukerji, J. (2003). Model driven architecture (mda)
1.0.1 guide. Rapport technique, OMG.
[Milner, 2006] Milner, R. (2006). Ubiquitous computing : Shall we understand it ? Comput.
J., 49(4):383–389.
[Molnar et al., 2007] Molnar, Z., Balasubramanian, D. et Lédeczi, A. (2007). An intro-
duction to the generic modeling environment. In In Proceedings of the TOOLS Europe 2007
Workshop on Model-Driven Development Tool Implementers Forum (Zurich, Switzerland).
[Monfort et Hammoudi, 2009] Monfort, V. et Hammoudi, S. (2009). Towards adaptable soa :
Model driven development, context and aspect. In ICSOC/ServiceWave, pages 175–189.
[Monfort et Hammoudi, 2010] Monfort, V. et Hammoudi, S. (2010). When parameterized
model driven development supports aspect based soa. International Journal of E-Business
Research (IJEBR), 6:22.
[Morin et al., 2009] Morin, B., Barais, O., Jézéquel, J.-M., Fleurey, F. et Solberg, A.
(2009). Models@ run.time to support dynamic adaptation. IEEE Computer, 42(10):44–51.
[Muller, 2006] Muller, A. (2006). De la modélisation objet des logiciels à la metamodélisation
des langages informatiques. Thèse de doctorat, L Université de Rennes 1.
[Nezhad et al., 2006] Nezhad, H. R. M., Benatallah, B., Casati, F. et Toumani, F. (2006).
Web services interoperability specifications. IEEE Computer, 39(5):24–32.
[Nguyen, 2008] Nguyen, T. (2008). Codèle : Une approche de composition de modèles pour
la Construction de Systèmes à Grande Échelle. Thèse de doctorat, UNIVERSITÉ JOSEPH
FOURIER - GRENOBLE I.
[Nierstrasz et Meijler, 1995] Nierstrasz, O. et Meijler, T. D. (1995). Research directions in
software composition. ACM Comput. Surv., 27(2):262–264.
[Oinn et al ., 2004] Oinn, T. et al . (2004). A tool for the composition and enactment of bioin-
formatics workflows. Bioinformatics journal, 17(20):3045–3054.
[OMG, 2001] OMG (2001). Omg unified modeling language specification, version 1.4. Rapport
technique, OMG.
BIBLIOGRAPHIE 112
[OMG, 2002a] OMG (2002a). Meta object facility (mof) specification - version 1.4, formal/01-
11-02. Rapport technique, OMG.
[OMG, 2002b] OMG (2002b). "meta object facility (mof) specification" version 1.4. Rapport
technique, OMG.
[OMG, 2002c] OMG (2002c). Request for proposal : Mof 2.0 query/views/transformations rfp,
october 2002. disponible sur http ://www.omg.org/docs/ad/02-04-10.pdf,. Rapport technique,
OMG.
[OMG, 2002d] OMG (2002d). Xml metadata interchange (xmi) specification, version 1.2,. Rap-
port technique, OMG.
[OMG, 2004] OMG (2004). Enterprise collaboration architecture (eca) specification, omg
formal/04-02-01. Rapport technique, OMG.
[OMG, 2005] OMG (2005). Qvt final adopted spec., http ://www.omg.org/docs/ptc/05-11-01.
Rapport technique, OMG.
[OMG, 2006a] OMG (2006a). Mof2.0, http ://www.omg.org/cgi-bin/doc ?formal/06-01-01.
Rapport technique, OMG.
[OMG, 2006b] OMG (2006b). Ontology defnition metamodel. omg specification,. Rapport tech-
nique, The Object Management Group OMG, IBM, and Sandpiper Software.
[OMG, 2007] OMG (2007). Unified modeling language (uml) 2.1.2 superstructure, november
2007. final adopted specification. Rapport technique, OMG.
[OMG, 2008] OMG (2008). Qvt 2.0 transformation spec,
http ://www.omg.org/spec/qvt/1.0/pdf/. Rapport technique, OMG.
[OMG, 2009] OMG (2009). Bpmn 1.2, available at http ://www.omg.org/spec/bpmn/1.2/. Rap-
port technique, OMG.
[OMONDO., 2004] OMONDO. (2004). Omondo eclipse uml, october 2004. disponible sur
http ://www.omondo.com,. Rapport technique, Omondo.
[Ou et al., 2006] Ou, S., Georgalas, N., Azmoodeh, M., Yang, K. et Sun, X. (2006). A
model driven integration architecture for ontology-based context modelling and context-aware
application development. In ECMDA-FA, pages 188–197.
[Parnas, 1972] Parnas, D. L. (1972). On the criteria to be used in decomposing systems into
modules. Commun. ACM, 15(12):1053–1058.
[Pascoe, 1998] Pascoe, J. (1998). Adding generic contextual capabilities to wearable computers.
In Press, I. C., éditeur : 2nd International Symposium on Wearable Computers, pages 92–99,
Los Alamitos, California.
[Picek, 2009] Picek, R. (2009). Suitability of modern software development methodologies for
model driven development. JIOS, NO. 2, 33:285–295.
[Pickin et al., 2007] Pickin, S., Jard, C., Jéron, T., Jézéquel, J.-M. et Traon, Y. L. (2007).
Test synthesis from uml models of distributed software. IEEE Trans. Software Eng., 33(4):252–
269.
[Pires et al., 2004] Pires, L. F., van Sinderen, M. J., de Farias, C. R. G. et Almeida, J.
P. A. (2004). Use of models and modelling techniques for service development. In Mendes,
M. J., Suomi, R. et Passos, C., éditeurs : Third IFIP Conference on e-Commerce, e-Business
and e-Government (I3E 2003), Guarujá, São Paulo, Brazil, pages 441–456. Kluwer Academic
Publishers.
[Pottinger et Bernstein, 2003] Pottinger, R. et Bernstein, P. A. (2003). Merging models
based on given correspondences. In VLDB, pages 826–873.
[Prezerakos et al., 2007] Prezerakos, G. N., Tselikas, N. D. et Cortese, G. (2007). Model-
driven composition of context-aware web services using contextuml and aspects. In Proceedings
of 2007 IEEE International Conference on Web Services (ICWS 2007), pages 320–329, Salt
Lake City, Utah, USA. IEEE Computer Society.
BIBLIOGRAPHIE 113
[Vale et Hammoudi, 2009a] Vale, S. et Hammoudi, S. (2009a). Comode : A framework for the
development of context-aware applications in the context of mde. In ICIW, pages 261–266.
[Vale et Hammoudi, 2009b] Vale, S. et Hammoudi, S. (2009b). Odm-based architecture for
the development of mobile context-aware applications. In PETRA.
[Vallejos et al., 2007] Vallejos, J., Ebraert, P., Desmet, B., Cutsem, T. V., Mostinckx,
S. et Costanza, P. (2007). The context-dependent role model. In DAIS, pages 1–16.
[Varró et Balogh, 2007] Varró, D. et Balogh, A. (2007). The model transformation language
of the viatra2 framework. Sci. Comput. Program., 68(3):214–234.
[Voigt et al., 2010] Voigt, K., Ivanov, P. et Rummler, A. (2010). Matchbox : combined meta-
model matching for semi-automatic mapping generation. In SAC, pages 2281–2288.
[W3C, 2001] W3C (2001). Web services description language (wsdl) 1.1. Rapport technique,
W3C.
[Warmer, 2002] Warmer, J. (2002). The role of ocl in the model driven architecture. In FIDJI,
page 202.
[Weiser, 1991] Weiser, M. (1991). The computer for the 21st century. Human-computer inter-
action : toward the year 2000, 0:933–940.
[Willink, 2003] Willink, E. (2003). Umlx - a graphical transformation language for mda. In
Workshop on Model Driven Architecture Foundations and Applications, , pages 13-24, June
2003.
[Wimmer et al., 2007] Wimmer, M., Strommer, M., Kargl, H. et Kramler, G. (2007). To-
wards model transformation generation by-example. In HICSS, page 285.
[Yu et al., 2007] Yu, X., Zhang, Y., Zhang, T., Wang, L., Hu, J., Zhao, J. et Li, X. (2007).
A model-driven development framework for enterprise web services. Information Systems
Frontiers, 9(4):391–409.