03.01.2015 Views

THESE DOCTORAT EN SCIENCES APPLIQUEES ... - Toubkal

THESE DOCTORAT EN SCIENCES APPLIQUEES ... - Toubkal

THESE DOCTORAT EN SCIENCES APPLIQUEES ... - Toubkal

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

mi<br />

Université Mohamed V- Souissi Rabat<br />

Ecole Nationale Supérieure d’Informatique<br />

et d’Analyse des Systèmes<br />

Numéro d’ordre : ----<br />

UFR : Systèmes d’Information Métiers,<br />

Multimédia et Mobiles (SI3M)<br />

-<strong>EN</strong>SIAS-<br />

-<strong>EN</strong>SIAS-<br />

<strong>THESE</strong><br />

-<strong>EN</strong>SIAS-<br />

pour l‟obtention du Diplôme de<br />

<strong>DOCTORAT</strong> <strong>EN</strong> SCI<strong>EN</strong>CES <strong>APPLIQUEES</strong><br />

Spécialité : Informatique<br />

Présentée par<br />

Adil K<strong>EN</strong>ZI<br />

Sujet de thèse :<br />

Ingénierie des Systèmes Orientés Services<br />

Adaptables : Une Approche Dirigée par les Modèles<br />

Soutenue le 16/10/2010 à 10H00 devant le jury composé de :<br />

Président :<br />

M. Abdelhak MOURADI Professeur à l‟<strong>EN</strong>SIAS de Rabat, Maroc<br />

Rapporteurs :<br />

M. Djamal B<strong>EN</strong>SLIMANE Professeur à l‟Université Claude Bernard Lyon 1, France<br />

M. Bouchaib BOUNABAT Professeur à l‟<strong>EN</strong>SIAS de Rabat, Maroc<br />

M. Bernard COULETTE Professeur à l‟Université de Toulouse II-Le Mirail, France<br />

Examinateur :<br />

M.Mahmoud NASSAR Professeur Habilité à l‟<strong>EN</strong>SIAS de Rabat, Maroc<br />

Directeur de thèse :<br />

M.Abdelaziz KRIOUILE Professeur à l‟<strong>EN</strong>SIAS de Rabat, Maroc


A ma mére et mon pére<br />

A ma tante Khadija<br />

A mes sœurs et fréres


Remerciements<br />

Les travaux présentés dans le cadre de ce mémoire de thèse ont été réalisés au laboratoire<br />

Systèmes d‟Information multimédia et mobile (SI2M) à l‟Ecole Nationale Supérieure<br />

d‟Informatique et d‟Analyse des Systèmes (<strong>EN</strong>SIAS) de Rabat.<br />

Tout d‟abord, je tiens à remercier vivement mon directeur de thèse Monsieur Abdelaziz<br />

KRIOUILE, Professeur à l‟<strong>EN</strong>SIAS, pour sa sympathie, son écoute, son soutien, sa<br />

disponibilité et sa patience. Je le remercie également pour ses relectures minutieuses de ce<br />

mémoire.<br />

Je remercie également Madame Bouchra El Asri, Professeur Assistant à l‟<strong>EN</strong>SIAS pour<br />

m‟avoir co-encadré durant cette thése. Je la remercie aussi pour ses conseils précieux, sa<br />

disponibilité, son soutien ainsi que pour les nombreuses discussions que nous avons eues sur<br />

le thème de cette thèse.<br />

Je tiens aussi à remercier Monsieur Abdelhak MOURADI de m‟avoir fait l‟honneur de<br />

présider le jury de ma thèse.<br />

J‟adresse également mes vifs remerciements à Monsieur Djamal B<strong>EN</strong>SLIMANE, Professeur<br />

à l‟université Claude Bernard Lyon1, Monsieur Bernard COULETTE, Professeur à<br />

l‟université de Toulouse II et Monsieur Bouchaib BOUNABAT, Professeur à l‟<strong>EN</strong>SIAS,<br />

d‟avoir accepté de rapporter ma thèse. Je les remercie également pour les remarques et<br />

conseils prodigués.<br />

J‟exprime ma profonde gratitude à Monsieur Mahmoud NASSAR, Professeur Habilité à<br />

l‟<strong>EN</strong>SIAS pour les nombreuses discussions techniques que nous avons eues. Je le remercie<br />

également pour ses conseils et ses remarques tout au long de ces années. Je le remercie aussi<br />

pour avoir accepté d‟être examinateur de cette thèse.<br />

J‟adresse également mes remerciements à Monsieur Rdouan FAIZI, Professeur à l‟<strong>EN</strong>SIAS<br />

pour ses nombreuses relectures et ses corrections des différentes publications rédigées en<br />

Anglais.<br />

Je tiens à remercier tous ceux qui m‟ont aidé et soutenu durant cette thèse, et plus<br />

particulièrement ma famille. J‟adresse mes vifs remerciements à mes frères Jilali et Najib de<br />

m‟avoir tant soutenu aussi bien matériellement que moralement. Je tiens aussi à remercier<br />

mon frère Abdelkarim de m‟avoir soutenu et encouragé et surtout de m‟avoir orienté vers des<br />

études en informatiques. Je remercie également mon frère Hatim qui est loin de la Faculté<br />

d‟Informatique de l‟Université Technique de Dortmund, de m‟avoir encouragé et soutenu et<br />

surtout de n‟avoir ménagé aucun effort pour me fournir la meilleure documentation dans le<br />

domaine.<br />

J‟adresse également mes chaleureux remerciements à tous les amis et collègues que j‟ai<br />

côtoyés durant les années de cette thèse. Leurs conseils, leur amitié et leur bonne humeur<br />

m‟ont beaucoup encouragé durant mes travaux.<br />

Je remercie tous ceux qui ont contribué de près ou de loin à la réalisation de ce travail.


Résumé<br />

De nos jours, les Systèmes d‟information occupent une position centrale dans la stratégie de<br />

l‟entreprise. Leur capacité de communication et d‟intégration, leur agilité ainsi que leur<br />

adaptation aux utilisateurs constituent des défis majeurs pour la compétitivité des entreprises.<br />

Pour relever ces défis, l‟ingénierie logicielle est marquée particulièrement par l‟émergence de<br />

deux nouveaux paradigmes : SOC (Service Oriented Computing) et CAC (Context-aware<br />

Computing). Le paradigme SOC a pour objectif de faire face aux problèmes de<br />

l‟interopérabilité et de l‟intégration des SI ainsi que de leur agilité. Le paradigme CAC vise à<br />

relever le défi de l‟adaptabilité des SI. L‟adoption rapide et massive de ces deux paradigmes,<br />

a fait naitre de nouveaux challenges, plus particulièrement le challenge de l‟ingénierie des<br />

systèmes orientés services adaptables.<br />

L‟objectif de cette thèse est de proposer une approche d‟ingénierie dirigée par les modèles<br />

pour le développement des systèmes orientés services adaptables. Une telle approche définit<br />

principalement : (i) un profil UML 2.0 appelé VSoaML (View based Service Oriented<br />

Architecture Modeling Language) (ii) un processus de développement et (iii) un outil logiciel<br />

associé à VSoaML pour la génération automatique de code appelé VSoaMLTool.<br />

Le profil VSoaML a pour objectif la modélisation et la spécification des systèmes orientés<br />

services adaptables indépendamment des standards (WSDL, BPEL4WS, etc.) et des<br />

plateformes d‟implémentation (J2EE, dotNet, etc.). Ce profil se base essentiellement sur le<br />

concept de service multivue comme une entité de modélisation fondamentale pour le<br />

développement des systèmes orientés services adaptables et sur un ensemble de stéréotypes<br />

permettant la modélisation des systèmes orientés services adaptables. La particularité du<br />

service multivues réside dans la représentation des besoins et des spécificités des utilisateurs<br />

finals tout au début du cycle de développement des systèmes orientés services.<br />

Le processus de développement associé au profil VSoaML définit les phases, les activités et<br />

les artefacts nécessaires pour la transformation des exigences métiers en des services flexibles<br />

et adaptables. Il permet l‟identification, la spécification et l‟implémentation des services<br />

multivues à partir des besoins métier spécifiés via les diagrammes des cas d‟utilisation.<br />

L‟objectif principal d‟un tel processus est l‟élaboration des modèles à différents niveaux<br />

d‟abstraction ainsi que leur transformation pour cibler différentes plateformes<br />

d‟implémentation. Après l‟élaboration des modèles métiers en se basant sur le profil VSoaML


et sur le processus de développement y associé, l‟outil VSoaMLTool permet la génération<br />

automatique de code en se basant principalement sur deux transformations définies dans le<br />

cadre MDA ciblant différentes plateformes technologiques. Chaque transformation a été<br />

définie en deux étapes. La première étape consiste en la spécification des correspondances<br />

entre les métamodèles source et cible. La deuxième étape consiste en la définition des<br />

transformations en se basant sur le langage ATL comme langage de transformation de<br />

modèles. Les transformations définies visent essentiellement la génération de<br />

l‟implémentation et de la description de chaque service.<br />

Mots clés : UML, VSoaML, Service multivues, Adaptabilité, MDD/MDA, SOA/Services<br />

Web, Systémes d‟Information Distribués.


Table des matières<br />

Introduction générale ........................................................................................ 1<br />

I. Etat de l’art ................................................................................................. 7<br />

II.<br />

I.1. Introduction .............................................................................................................. 7<br />

I.2. Systèmes Orientés Services (SOS) : concepts et définitions .................................... 8<br />

I.3. SOS : Approches de modélisation ............................................................................ 9<br />

I.3.1. Approches à base de « Service Component »................................................................ 10<br />

I.3.2. Approches à base de « Service Component Architecture » (SCA) ............................... 12<br />

I.3.3. Approches à base de profils UML ................................................................................. 14<br />

I.3.4. Discussion ...................................................................................................................... 20<br />

I.4. SOS : Concepts d‟adaptation .................................................................................. 20<br />

I.4.1. Concept d‟adaptation : les Vues .................................................................................... 21<br />

I.4.1.1 Vues à base de l‟adaptation par rôles .................................................................... 21<br />

I.4.1.2 Vues à base de l‟adaptation contextuelle .............................................................. 23<br />

I.4.1.3 Discussion ............................................................................................................. 26<br />

I.4.2. Concept d‟adaptation : la variabilité de service ............................................................. 27<br />

I.4.2.1 Description de l‟approche ..................................................................................... 27<br />

I.4.2.2 Discussion ............................................................................................................. 30<br />

I.4.3. Concept d‟adaptation : la différenciation de service ..................................................... 30<br />

I.4.3.1 Description de l‟approche ..................................................................................... 30<br />

I.4.3.2 Discussion ............................................................................................................. 33<br />

I.5. SOS : technologies d‟adaptation ............................................................................ 34<br />

I.5.1. AWSDL et CWSDL ...................................................................................................... 34<br />

I.5.2. CBPEL et VXBPEL ...................................................................................................... 35<br />

I.5.3. Discussion ...................................................................................................................... 35<br />

I.6. SOS : Approches d‟adaptation dirigées par les modèles ........................................ 36<br />

I.6.1. Concepts et définitions .................................................................................................. 37<br />

I.6.2. Approches MDA de développement des SOS ............................................................... 39<br />

I.6.2.1 PIM (UML) vers services Web ............................................................................. 39<br />

I.6.2.2 PIM(EDOC) vers services web ............................................................................ 45<br />

I.6.3. Approches MDA d‟adaptation des SOS ....................................................................... 53<br />

I.6.3.1 Approches de gestion des propriétés non-fonctionnelles ..................................... 53<br />

I.6.3.2 Approches de gestion des droits d‟accès............................................................... 56<br />

I.6.3.3 Approches de gestion de la qualité de services ..................................................... 59<br />

I.6.3.4 Approches d‟adaptation au contexte .................................................................... 61<br />

I.6.3.5 Discussion ............................................................................................................. 62<br />

I.7. Synthèse générale ................................................................................................... 63<br />

VSoaML : Un profil UML de modélisation des systèmes orientés<br />

services adaptables .......................................................................................... 69


III.<br />

II.1. Introduction ............................................................................................................ 69<br />

II.2. Exemple illustratif : Le système d‟enseignement à distance .................................. 71<br />

II.3. Le concept de service multivues ............................................................................ 72<br />

II.3.1. Le concept de vue ...................................................................................................... 73<br />

II.3.2. Le service multivues.................................................................................................. 74<br />

II.4. Les couches d‟abstraction d‟un SOS Adaptable .................................................... 78<br />

II.5. Le profil VSoaML .................................................................................................. 82<br />

II.5.1. Le profil VSoaML : Vue d‟ensemble ........................................................................ 82<br />

II.5.2. VSoaML : les stéréotypes ......................................................................................... 88<br />

II.5.2.1 Le stéréotype Service ............................................................................................ 88<br />

II.5.2.2 Le stéréotype Message .......................................................................................... 90<br />

II.5.2.3 Le stereotype MessageAttachment ....................................................................... 91<br />

II.5.2.4 Le stéréotype Specification ................................................................................... 92<br />

II.5.2.5 Le stéréotype MVService ..................................................................................... 94<br />

II.5.2.6 Le stéréotype MVServiceSpecification ................................................................ 96<br />

II.5.2.7 Le stéréotype Collaboration .................................................................................. 98<br />

II.5.2.8 Le stéréotype ServiceChannel ............................................................................. 100<br />

II.5.2.9 Le stéréotype Requester ...................................................................................... 101<br />

II.5.2.10 Le stéréotype MVServiceInterface ..................................................................... 102<br />

II.5.2.11 Le stéréotype BaseServiceInterface .................................................................... 103<br />

II.5.2.12 Le stéréotype ViewServiceInterface ................................................................... 105<br />

II.5.2.13 Le stéréotype Provider ........................................................................................ 106<br />

II.5.2.14 Le stéréotype ServiceOperation .......................................................................... 107<br />

II.5.2.15 Le stéréotype ServiceDomain ............................................................................. 108<br />

II.5.3. Exemple illustratif DLS : Couches d‟abstraction ................................................... 109<br />

II.6. Conclusion ............................................................................................................ 116<br />

Processus de Développement Dirigé par les Modèles des Systèmes<br />

Orientés Services Adaptables ....................................................................... 117<br />

III.1. Introduction .......................................................................................................... 117<br />

III.2. Processus de développement des systèmes orientés services : phases, activités et<br />

artefacts ............................................................................................................................ 118<br />

III.3. Processus de développement MDA : phases, activités et artefacts ...................... 121<br />

III.3.1. Les types de modèles et de transformation de MDA .............................................. 121<br />

III.3.1.1 Computation Independent Model (CIM) ............................................................ 121<br />

III.3.1.2 Platform Independent Model (PIM).................................................................... 121<br />

III.3.1.3 Platform Specific Model (PSM) ......................................................................... 122<br />

III.3.2. Le processus de développement dans le contexte de MDA : .................................. 124<br />

III.4. Processus MDA de développement des SOS adaptables ..................................... 126<br />

III.4.1. Phase 1: Elaboration des modèles des cas d‟utilisation........................................... 128<br />

III.4.2. Phase 2: Identification des services par acteur ........................................................ 129<br />

III.4.3. Phase 3 : Spécification des interfaces de services ................................................... 133<br />

III.4.4. Phase 4 : Fusion des modèles visuels ...................................................................... 135<br />

III.4.5. Phase 5: Transformation des modèles et génération de code .................................. 137<br />

III.5. Conclusion ............................................................................................................ 139


IV. VSoaMLTool : Outil de génération de code automatique .............. 140<br />

IV.1. Introduction .......................................................................................................... 140<br />

IV.2. VSoaMLTool : modules et fonctionnalités .......................................................... 141<br />

IV.3. VSoaMLTooL : Transformation de modèle et génération de code...................... 143<br />

IV.4. Le PIM (VSoaML) de l‟étude de cas DLS ........................................................... 144<br />

IV.5. Le métamodèle du profil VSoaML ...................................................................... 147<br />

IV.6. Du PIM (VSoaML) vers des descriptions (MVWSDL)....................................... 148<br />

IV.6.1.1 Le Multiview WSDL pour la description des services multivues....................... 148<br />

IV.6.1.2 Du PIM(VSoaML) vers PSM(MVWSDL) ......................................................... 151<br />

IV.6.1.3 Du PSM (MVWSDL) vers le code (MVWSDL)............................................... 154<br />

IV.7. Du PIM (VSoaML) vers PSM (JaxRPC) ............................................................. 157<br />

IV.7.1. Le métamodèle JAX-RPC ...................................................................................... 158<br />

IV.7.2. Spécification des correspondances entre le métamodèle de VSoaML et le<br />

métamodèle JAX-RPC ............................................................................................................. 159<br />

IV.7.3. Les règles de transformation ................................................................................... 160<br />

IV.7.4. Le code java généré à partir des PIM(VSoaML)..................................................... 162<br />

IV.8. VSoaMLTool : déploiement selon l‟architecture SOA ........................................ 166<br />

IV.9. Conclusion ............................................................................................................ 168<br />

Conclusion générale et perspectives ............................................................ 169<br />

Liste des publications .................................................................................... 172<br />

Références ....................................................................................................... 174


Table des figures<br />

Figure 1–Métamodèle du “service component” (Zhang et al., 2006) ........................................... 11<br />

Figure 2–Composant SCA ............................................................................................................ 13<br />

Figure 3–Modélisation à base de SCA du système de l‟agence de voyage .................................. 13<br />

Figure 4–Métamodèle du profil UML (Johsnston et al., 2006). ................................................... 15<br />

Figure 5–Métamodèle du profil PIM4SOA (López-Sanz et al., 2007) ......................................... 17<br />

Figure 6 –Diagramme de classe et les rôles de l‟application «video central » (Fink et al, 2003) . 22<br />

Figure 7–Déclaration des vues en VPL (Fink et al., 2003). .......................................................... 23<br />

Figure 8–Métamodéle de vue (Maamar et al., 2005) .................................................................... 24<br />

Figure 9–Script de transformation des documents WSDL ........................................................... 26<br />

Figure 10–Types de variabilité de services (Chang et al., 2007b) ................................................ 28<br />

Figure 11–Concept de service différencié (Tao et al. , 2008) ....................................................... 32<br />

Figure 12–Conception à base des services différenciés de l‟application OPS) (Tao et al., 2007b) .<br />

....................................................................................................................................................... 33<br />

Figure 13–Types de transformations : modèle vers modèle et modèle vers code (Bezevin et al.,<br />

2004). ............................................................................................................................................ 40<br />

Figure 14–Modèle PIM de l‟étude de cas « agence de voyage » (Bezevin et al., 2004). ............. 41<br />

Figure 15–Correspondances UML/WSDL (Bezevin et al., 2004) ................................................ 42<br />

Figure 16–Correspondances UML/Java (Bezevin et al., 2004) .................................................... 43<br />

Figure 17–Méthodologie de développement des SOS (Gronmo et al., 2004a). ........................... 44<br />

Figure 18–Correspondance UML/WSDL ..................................................................................... 45<br />

Figure 19–Processus de transformation du framework défini (Yu et al , 2007) ........................... 46<br />

Figure 20–Métamodèle « Document Model » (Yu etal ., 2007) ................................................... 47<br />

Figure 21–Métamodèle WSDL (Yu et al., 2007) ......................................................................... 48<br />

Figure 22–Métamodèle Choreography (YU et al., 2007) ............................................................. 49<br />

Figure 23–Métamodèle BPEL (Yu et al., 2007) ........................................................................... 50<br />

Figure 24–Profil “Document Model” (Patrasciuo, 2004) ............................................................ 51<br />

Figure 25–Métamodèle du XML schéma ..................................................................................... 52<br />

Figure 26–Métamodèle WSDL (Patrsciou et al., 2004) ............................................................... 52<br />

Figure 27–Profil «Extra- functional Property » (Ortiz et al., 2006b) ........................................... 54<br />

Figure 28–Stéréotype « Extra-functional property » (Ortiz et al., 2006b) .................................... 54<br />

Figure 29–Service TouristService (Ortiz et al., 2006a) ............................................................... 55<br />

Figure 30–Processus de transformation ATL (Ortiz et al., 2006a) ............................................... 55<br />

Figure 31–Métamodèle cible SOAP (Ortiz et al., 2006a) ............................................................. 56<br />

Figure 32–Métamodèle Policy (Ortiz et al, 2006a) ...................................................................... 56<br />

Figure 33–Métamodèle de SECTET-UML(Hafner et al.,2009) ................................................... 58<br />

Figure 34–Métamodèle XACML .................................................................................................. 59<br />

Figure 35–Processus de développement dirigé par les modèles (D‟ambrogio, 2007) .................. 60<br />

Figure 36–Métamodèle ContextUML (Maamar et al., 2006) ....................................................... 61<br />

Figure 37–Diagramme des cas d‟utilisation du DLS .................................................................... 72<br />

Figure 38–Modèle d‟interaction des services avec leurs clients ................................................... 75<br />

Figure 39–Métamodèle de l‟interface MVServiceInterface ......................................................... 76<br />

Figure 40–Interface de service multivues du service multivues «Formation » ............................ 77


Figure 41–Couches fonctionnelles d‟un SOS (Papazoglou, 2007) ............................................... 79<br />

Figure 42–SOS adaptable : Couches d‟abstraction ....................................................................... 81<br />

Figure 43–Stéréotypes de VSoaML et leurs métaclasses de base UML2.0 ................................. 83<br />

Figure 44–Métamodèle de VSoaML ............................................................................................ 84<br />

Figure 45–Stéréotype Service ....................................................................................................... 89<br />

Figure 46–Service Agenda ............................................................................................................ 89<br />

Figure 47–Stéréotype message ..................................................................................................... 91<br />

Figure 48–Exemple d‟un message ................................................................................................ 91<br />

Figure 49–Stéréotype MessageAttachment .................................................................................. 92<br />

Figure 50–Stéréotype specification............................................................................................... 93<br />

Figure 51–Exemple de stéréotype Specification........................................................................... 94<br />

Figure 52–Stéréotype MVService................................................................................................. 95<br />

Figure 53–Exemple de service multivues ..................................................................................... 95<br />

Figure 54–Stéréotype MVServiceSpecification ........................................................................... 97<br />

Figure 55–Exemple de MVServiceSpecification.......................................................................... 97<br />

Figure 56–Stéréotype Collaboration ............................................................................................. 98<br />

Figure 57–Exemple de collaboration de services ......................................................................... 99<br />

Figure 58–Stéréotype Channel .................................................................................................... 101<br />

Figure 59–Stéréotype Requester ................................................................................................. 102<br />

Figure 60–Exemple de Requester ............................................................................................... 102<br />

Figure 61–Stéréotype MVServiceInterface ................................................................................ 103<br />

Figure 62–Exemple de MVServiceInterface .............................................................................. 103<br />

Figure 63–Stéréotype baseServiceInterface ................................................................................ 104<br />

Figure 64–Exemple de BaseServiceInterface ............................................................................. 104<br />

Figure 65–Stéréotype ViewServiceInterface .............................................................................. 105<br />

Figure 66–Exemple de ViewServiceInterface ............................................................................ 106<br />

Figure 67–Stéréotype Provider ................................................................................................... 107<br />

Figure 68–Stéréotype ServiceOperation ..................................................................................... 108<br />

Figure 69–Exemple de serviceOperation .................................................................................... 108<br />

Figure 70–Stéréotype ServiceDomain ........................................................................................ 109<br />

Figure 71–Modèle BPMN du cas d‟utilisation « Assurer Formation ». ..................................... 110<br />

Figure 72–Modèle BPMN du cas d‟utilisation « Suivre formation» ....................................... 111<br />

Figure 73–Modèle des services multivues du DLS .................................................................... 114<br />

Figure 74–Extrait du modèle d‟information du système d‟Enseignement à Distance............... 115<br />

Figure 75–Phases du cycle de vie méthodologique (Papazoglou et al., 2006) ........................... 119<br />

Figure 76–Types de transformations MDA (Blanc, 2005) ......................................................... 123<br />

Figure 77–Processus de développement MDA des systèmes logiciels ..................................... 125<br />

Figure 78–Processus de développement des systèmes orientés services multivues dans le cadre<br />

de l‟approche MDA ................................................................................................................... 127<br />

Figure 79–Cas d‟utilisation du DLS ........................................................................................... 129<br />

Figure 80–Scénario associé au cas d‟utilisation «assurer Formation» associé à l‟acteur ........... 131<br />

Figure 81–Identification des services associés à l‟acteur « Enseignant » .................................. 132<br />

Figure 82–Identification des services associés à l‟acteur «Administrateur» ............................. 133<br />

Figure 83–Identification des services associés à l‟acteur «Etudiant » ........................................ 133<br />

Figure 84–PIM raffiné associé à l‟acteur Etudiant .................................................................... 134


Figure 85– PIM raffiné associé à l‟acteur Administrateur......................................................... 135<br />

Figure 86–Extrait du résultat de l‟étape de fusion du service Formation ................................... 136<br />

Figure 87-Phase de transformation de modèle et génération du code ........................................ 138<br />

Figure 88–Modules de VSoaMLTool ......................................................................................... 142<br />

Figure 89–Processus de génération de code à partir des PIMs (VSoaML) ................................ 143<br />

Figure 90–Extrait des interfaces de service multivues des services multivues du DLS ............ 146<br />

Figure 91–Métamodèle VSoaML ............................................................................................... 147<br />

Figure 92–Structure d'un document WSDL ................................................................................ 149<br />

Figure 93–Métamodèle MVWSDL ........................................................................................... 151<br />

Figure 94–Code ATL de la règle de transformation viewinterface2WSDL ............................... 153<br />

Figure 95–Code ATL de la règle de transformation BaseInterface2WSDL ............................... 154<br />

Figure 96–Requête de génération de code MVWSDL ............................................................... 155<br />

Figure 97–Code ATL pour la génération de code MVWSDL .................................................... 155<br />

Figure 98–Code MVWSDL généré ........................................................................................... 156<br />

Figure 99–Processus de génération des implémentations des services à partir des PIMs<br />

(VSoaML) ................................................................................................................................... 157<br />

Figure 100–Métamodèle JAX-RPC ........................................................................................... 158<br />

Figure 101- Règle de transformation Domain2Package ............................................................. 161<br />

Figure 102–Règle de transformation MVService2jaxrpcClass .................................................. 161<br />

Figure 103–Règle de transformation Operation2Method ......................................................... 162<br />

Figure 104–Règle de transformation viewinterface2interface ................................................... 162<br />

Figure 105–Requête de génération de code Java ........................................................................ 163<br />

Figure 106–Code ATL pour la génération de code java ............................................................. 164<br />

Figure 107–Code java généré à partir du PIM(VSoaML) .......................................................... 165<br />

Figure 108–Architecture de déploiement des services multivues ............................................... 167<br />

Liste des tableaux<br />

Tableau 1–Stéréotypes et métaclasse de base ............................................................................... 16<br />

Tableau 2–Profil PIM4SOA ......................................................................................................... 17<br />

Tableau 3–Stéréotypes du profi l SoaML ..................................................................................... 19<br />

Tableau 4–Correspondances Model Document/Web service (YUet al., 2007) ............................ 47<br />

Tableau 5–Correspondances CCA/WSDL (Yu et al., 2007) ....................................................... 48<br />

Tableau 6–Stéréotypes du profil SECTET-UML (Alam et al., 2008) .......................................... 57<br />

Tableau 7–Synthèse des différentes approches étudiées .............................................................. 65<br />

Tableau 8–Stéréotypes du profil VSoaML ................................................................................... 88<br />

Tableau 9–Services multivues du Systéme d‟Enseignement à distance .................................... 145<br />

Tableau 10–Correspondances VSoaML/MVWSDL .................................................................. 152<br />

Tableau 11–Spécification des correspondances VSoaML/JAX-RPC ........................................ 160


Liste des abréviations<br />

Abréviation<br />

API<br />

ATL<br />

BPEL<br />

CAC<br />

DTD<br />

EMF<br />

GMF<br />

GUI<br />

HTML<br />

HTTP<br />

IDE<br />

J2EE<br />

MDA<br />

MDD<br />

MOF<br />

OCL<br />

OMG<br />

PIM<br />

PSM<br />

QVT<br />

SOC<br />

SOS<br />

SoaML<br />

SOA<br />

SOAP<br />

UDDI<br />

UML<br />

WSDL<br />

XMI<br />

XML<br />

Signification<br />

Application Programming Interface<br />

Atlas Transformation Language<br />

Business Process Execution Language<br />

Context aware Computing<br />

Data Type Definition<br />

Eclipse Modelling Framework<br />

Graphical Modelling Framework<br />

Graphical User Interfaces<br />

HyperText Markup Language<br />

HyperText Transfer Protocol<br />

Integrated Development Environment<br />

Java 2 Platform Enterprise Edition<br />

Model Driven Architecture<br />

Model Driven Development<br />

Meta-Object Facility<br />

Object Constraint Language<br />

Object Management Group<br />

Platform Independent Model<br />

Platform Specific Model<br />

Query/View/Transform<br />

Service Oriented Computing<br />

Service Oriented Systems<br />

Service Oriented Architecture Modeling Language<br />

Service Oriented Architecture<br />

Simple Object Access Protocol<br />

Universal Description, Discovery and Integration<br />

Unified Modeling Language<br />

Web Service Description Language<br />

XML Metadata Interchange<br />

Extensible Markup Language


1<br />

Introduction générale<br />

Introduction générale<br />

Les systèmes d‟information occupent aujourd‟hui une position centrale dans la stratégie de<br />

l‟entreprise. La capacité de communication et d‟intégration de ces systèmes, leur réactivité aux<br />

changements métiers et technologiques ainsi que leur facilité d‟utilisation et d‟adaptation<br />

constituent des défis majeurs pour la compétitivité des entreprises. Pour relever ces défis,<br />

l‟ingénierie logicielle n‟a cessé de fournir de nouveaux paradigmes et de nouvelles technologies.<br />

Actuellement, l‟ingénierie logicielle est marquée particulièrement par l‟émergence de deux<br />

nouveaux paradigmes : SOC (Service Oriented Computing) et l‟Informatique Sensible au<br />

Contexte (Context-aware Computing). Les travaux menés au sein de cette thèse s‟inscrivent dans<br />

l‟étude et l‟exploitation de ces paradigmes selon une approche dirigée par les modèles (MDA-<br />

Model Architecture) pour répondre à certaines attentes des systèmes d‟information en pleine<br />

évolution.<br />

En effet, SOC (Papazoglou et al., 2003) (Huhns et al., 2005) permet le développement des<br />

systèmes d‟information distribués, flexibles, agiles et interopérables. SOC s‟appuie<br />

principalement sur le concept de service qui se définit comme une entité informatique<br />

indépendante des plateformes, auto-contenue et autonome permettant le support de la<br />

composition des applications distribuées en couplage faible tout en optimisant les coûts et les<br />

délais (Papazoglou, 2007). SOC se base sur l‟architecture orientée service (SOA-Service<br />

Oriented Architecture) dont l‟objectif est d‟organiser un ensemble d‟applications isolées, en un<br />

ensemble de services interconnectés, chacun étant accessible à travers des interfaces et des<br />

protocoles de communication standards. SOA définit une approche permettant de répondre aux<br />

besoins de développement des applications en couplage faible en se basant sur les standards tout<br />

en restant indépendant de tout protocole et de toute plateforme. La technologie des services web<br />

(Gustavo et al., 2003) constitue une implémentation de l‟architecture SOA. Elle définit un<br />

ensemble de standards et de protocoles fournissant ainsi une infrastructure assurant des<br />

fonctionnalités de transport, de messagerie (SOAP), de description (WSDL) (Chinnici et al .,<br />

2001) de découverte et de publication (UDDI) (Clement et al., 2004) et de composition de


2<br />

Introduction générale<br />

services (BPEL4WS) (Andrews et al., 2003).<br />

En parallèle avec l‟émergence du SOC, l‟informatique Sensible au Contexte (Dey, 2000) a été<br />

proposée dans l‟objectif d‟adapter des applications et des systèmes logiciels aux différents<br />

contextes d‟utilisation. Ces derniers couvrent toutes les informations pouvant être utilisées pour<br />

caractériser la situation d‟une entité. Une entité peut être une personne, un lieu, ou un objet qui<br />

peut être pertinent pour l‟interaction entre l‟utilisateur et l‟application, y compris l‟utilisateur et<br />

l‟application (Dey, 2000). Bien qu‟il n‟existe pas une définition unique de ce qui est un contexte<br />

d‟utilisation, les caractéristiques des terminaux utilisés pour accéder aux systèmes et celles du<br />

réseau et surtout le profil de l‟utilisateur constituent les éléments clés du contexte d‟utilisation.<br />

Par ailleurs, l‟OMG a proposé l‟architecture dirigée par les modèles MDA (MDA-Model Driven<br />

Architecture) (OMG, 2003) pour le développement et la maintenance des systèmes<br />

d‟informations distribués et complexes. MDA propose une nouvelle manière de spécification des<br />

systèmes informatiques basée sur différents perspectives du même système. En premier lieu, les<br />

fonctionnalités et le comportement d‟un système sont décrits sans tenir compte des<br />

caractéristiques technologiques. Ensuite, la spécification des fonctionnalités et du comportement<br />

est utilisée pour créer les systèmes informatiques conformément à une technologie spécifique.<br />

La première phase dans une approche MDA, est effectuée par un modèle indépendant d‟une<br />

plate-forme technologique (PIM - Platform Independent Model) alors que la deuxième phase est<br />

effectuée par un modèle spécifique à une plate-forme technologique (PSM - Platform Specific<br />

Model). Le passage du PIM vers le PSM constitue un aspect important de cette approche et se<br />

fait en se basant sur la spécification et la définition d‟un ensemble de règles de transformation.<br />

La séparation claire et explicite entre les modèles indépendants et dépendants d‟une plate-forme<br />

permet d‟apporter plusieurs avantages au développement des systèmes logiciels. En effet, la<br />

logique métier est protégée contre les incessantes évolutions et l‟apparition des nouvelles<br />

technologies. De plus, elle apporte une plus grande réactivité quand les systèmes informatiques<br />

doivent évoluer pour utiliser une autre technologie ou atteindre d‟autres exigences. L‟approche<br />

MDA vise comme objectif de rendre les systèmes informatiques plus indépendants d‟une<br />

technologie spécifique en fournissant la portabilité et l‟interopérabilité au niveau des modèles.


3<br />

Introduction générale<br />

Cette approche permet également la maîtrise de la complexité du développement de logiciels<br />

grâce à l‟utilisation des modèles comme éléments centraux pour le développement des systèmes<br />

logiciels.<br />

Dans le but de gérer la complexité du développement des systèmes orientés services, d‟une part,<br />

et la prise en compte de l‟utilisateur, d‟autre part, il est nécessaire de fournir une méthodologie<br />

définissant concepts, Formalisme/Notation, Processus et outils. En effet, le développement des<br />

systèmes à base de service est généralement basé sur la technologie des services web qui fournit<br />

une infrastructure à base de standards incluant les standards WSDL, SOAP, UDDI et BPEL4WS<br />

permettant la description, l‟invocation, la découverte/publication et la composition de services.<br />

Certes, les technologies et les standards sont très importants pour le développement de tels<br />

systèmes, mais ils sont insuffisants pour le développement des systèmes d‟entreprise complexes<br />

et distribués vu que les différents stakeholders (e.g., les analystes métiers, les architectes, les<br />

utilisateurs finals, les développeurs, etc.) n‟ont pas forcément des connaissances techniques. Le<br />

challenge principal qui se pose aujourd‟hui est la spécification des systèmes orientés services<br />

indépendamment des technologies caractérisées par leur bas niveau d‟abstraction. Dans cette<br />

optique, plusieurs travaux de recherche ont été proposés. Pour sa part, L‟OMG est aujourd‟hui<br />

dans la phase de standardisation d‟un profil UML appelé SoaML(OMG, 2009) pour la<br />

modélisation des systèmes orientés services.<br />

L‟objectif principal de cette thèse est de définir une approche d‟ingénierie pour le<br />

développement des systèmes orientés services adaptables aux différents types d‟utilisateur, dans<br />

le cadre de l‟approche MDA. Une telle approche définit (i) un profil UML appelé VSoaML<br />

(View based Service oriented architecture Modeling Language) pour la modélisation et la<br />

spécification des systèmes orientés services adaptables (ii) un processus de développement des<br />

systèmes orientés services adaptables dans le cadre de l‟approche MDA (iii) un outil logiciel<br />

dirigé par les modèles, appelé VSoaMLTool, permettant la génération de code à partir des<br />

modèles métiers de haut niveau via un ensemble de règles de transformations.<br />

VSoaML (Kenzi et al., 2009) permet de modéliser un système orienté service adaptable à un haut<br />

niveau d‟abstraction indépendamment des plates-formes d‟implémentation (J2EE, dotNet, etc) et<br />

des standards de la technologie des services web (SOAP, WSDL, UDDI, BPEL4WS, etc.).


4<br />

Introduction générale<br />

VSoaML est centré utilisateur et il se base fondamentalement sur le concept de service multivues<br />

(Kenzi et al., 2008) comme une entité de modélisation de première classe capable de représenter<br />

les besoins et les spécificités des utilisateurs suivant leurs profils. Le service multivues est une<br />

nouvelle entité de modélisation qui fournit, en plus des interfaces de services, des interfaces<br />

multivues qui se caractérisent par leur flexibilité et leur adaptabilité aux différents acteurs<br />

interagissant avec le service. Le service multivues permet la capture des exigences des<br />

utilisateurs et de leurs spécificités tout en séparant leurs préoccupations fonctionnelles. Pour ce<br />

faire, le service multivues fournit/requiert des interfaces capables de décrire les capacités du<br />

service suivant le profil de l‟utilisateur interagissant avec le service. Une telle interface permet la<br />

représentation des fonctionnalités de service accessible seulement à un type particulier<br />

d‟utilisateur.<br />

Pour identifier les services multivues, les spécifier et les développer, nous avons défini un<br />

processus de développement dans le cadre de l‟approche MDA (Kenzi et al., 2008) (Kenzi et al.,<br />

2009). Ce processus définit les phases, les activités et les artéfacts pour transformer les exigences<br />

métier en termes d‟un ensemble de services flexibles et adaptables. La spécificité d‟un tel<br />

processus consiste en l‟identification des services en partant des modèles des cas d‟utilisation et<br />

en se basant sur un ensemble de règles de refactoring capables de faire les correspondances entre<br />

les cas d‟utilisations et les services (correspondance binaire, fusion/décomposition, etc). Ce<br />

processus de développement qui s‟inscrit dans le cadre de l‟approche MDA permet l‟élaboration<br />

des modèles et de gérer la transition d‟un modèle à un autre via des transformations de modèles.<br />

Ainsi, après l‟élaboration des modèles métier à base de service multivues, nous avons défini<br />

deux transformations pour la génération de code :<br />

La première transformation permet la génération de la description de chaque service multivues<br />

composant le PIM d‟un système donné. En effet, nous avons défini une légère extension du<br />

standard WSDL pour la description de service multivues, appelé MVWDL. Cette extension de<br />

WSDL permet la représentation en XML aussi bien des interfaces des services que les<br />

informations concernant les acteurs interagissant avec le service. Pour permettre l‟automatisation<br />

de la génération du code du MVWSDL, nous avons défini un ensemble de règles de<br />

transformation en utilisant le langage ATL comme langage de transformation de modèles.


5<br />

Introduction générale<br />

La deuxiéme transformation concerne la génération du code constituant l‟implémentation de<br />

chaque service multivues selon la plateforme cible J2EE.<br />

Chaque transformation de modèles a été décomposée en deux étapes : la première concerne la<br />

spécification de correspondances. La deuxième permet la définition des transformations en se<br />

basant sur le langage de transformation de modèle ATL. En fait, la spécification de<br />

correspondances vise à spécifier les correspondances entre les éléments des métamodèles source<br />

et cible, et la définition de transformations permet de décrire en détail et d‟exécuter les étapes de<br />

la transformation d‟un modèle en un autre modèle en respectant la spécification de<br />

correspondances. Cette approche va dans le sens même de la vision de l‟OMG pour développer<br />

les systèmes informatiques à savoir la séparation des préoccupations. En fait, une spécification<br />

de correspondances peut être vue comme un PIM et une définition de transformations comme un<br />

PSM. Les deux décrivent la même chose mais à des niveaux différents.<br />

Une fois générées la description de chaque service multivues et son implémentation, nous avons<br />

illustré comment faire l‟adaptation des services en prenant en compte les acteurs interagissant<br />

avec le service suivant l‟architecture SOA.<br />

Présentation de ce mémoire<br />

Le travail réalisé est présenté dans ce mémoire selon une structure de quatre chapitres.<br />

Le premier chapitre présente l‟état de l‟art du domaine. Dans un premier temps, nous nous<br />

intéressons plus particulièrement aux approches de modélisation et de conception des systèmes<br />

orientés service. Ensuite, nous présentons les différentes approches permettant l‟adaptation des<br />

systèmes orientés services. Après, nous décrivons les approches MDA de développement des<br />

systèmes orientés services ainsi que les approches MDA pour la prise en compte de l‟utilisateur<br />

des systèmes orientés services. Enfin, nous concluons ce premier chapitre par une synthèse de<br />

l‟état de l‟art en identifiant les fondements de chaque approche.<br />

Le deuxième chapitre expose le profil VSoaML à base des services multivues en identifiant les<br />

stéréotypes de ce profil ainsi que son métamodèle. Chaque stéréotype a été décrit tout en<br />

spécifiant les contraintes y associées. Enfin, nous illustrons la faisabilité de ce profil en se basant


6<br />

Introduction générale<br />

sur une étude de cas concernant le système d‟enseignement à distance.<br />

Le troisième chapitre est dédié à la définition du processus de développement des systèmes<br />

orientés services associé au profil VSoaML. Ce processus définit les phases, les activités et les<br />

artéfacts pour l‟identification, la spécification et l‟implémentation des services multivues.<br />

Le quatrième chapitre présente les aspects applicatifs de ce travail. Il décrit premièrement le<br />

fonctionnement de l‟outil support à VSoaML. Cet outil se base notamment sur les principes et les<br />

standards de l‟ingénierie dirigée par les modèles pour la génération de code à partir des modèles<br />

métiers de haut niveau.<br />

Enfin, nous concluons ce rapport en récapitulant les points forts de notre approche, les aspects<br />

traités et les perspectives de ce travail.


7<br />

Etat de l’art<br />

I. Etat de l’art<br />

I.1.<br />

Introduction<br />

SOC (Service-Oriented Computing) a émergé récemment comme un nouveau paradigme<br />

informatique prometteur pour le développement rapide et à moindre coût des applications<br />

distribuées, interopérables et évolutives (Papazoglou, 2007). SOC se base principalement sur<br />

l‟élément Service et sur l‟architecture orientée service SOA (Service Oriented Architecture).<br />

SOC propose une nouvelle manière de développement des systèmes distribués en se basant<br />

exclusivement sur la composition de services pour la construction d‟applications logicielles<br />

distribuées à grande échelle, évolutives, interopérables et facilement composables.<br />

SOC a introduit plusieurs défis aux différents acteurs s‟intéressant à la construction des<br />

systèmes à base de services. Plus particulièrement, le défi de l‟ingénierie de tels systèmes<br />

(Papazoglou et al., 2008) qui consiste en la définition des approches de modélisation, des<br />

processus, des techniques et outils pour faciliter la construction de ces systèmes en optimisant les<br />

coûts et les délais. La définition de ces approches est d‟une importance capitale pour la réussite<br />

de projets de développement des SOSs (Service Oriented Systems).<br />

Par ailleurs, la prise en compte de l‟utilisateur et de son environnement est d‟une importance<br />

capitale pour la construction de systèmes logiciels surtout avec l‟émergence de l‟informatique<br />

sensible aux contextes (Dey, 2000). Cette dernière insiste sur la prise en compte de l‟utilisateur<br />

final pour le développement de systèmes logiciels.<br />

L‟objectif de ce premier chapitre est de :<br />

(1) étudier les différentes approches de modélisation des systèmes orientés services<br />

(2) étudier certaines approches visant la prise en compte de l‟utilisateur dans les systèmes<br />

orientés services<br />

(3) étudier les approches MDA de développement des systèmes orientés services qui prennent en


8<br />

Etat de l’art<br />

compte de l‟utilisateur des ces systèmes.<br />

Ce chapitre est structuré en plusieurs sections. Après la présente introduction, la deuxième<br />

section a pour objectif de définir brièvement les concepts et les termes en relation avec le<br />

paradigme SOC tels que : le concept de service, l‟architecture orientée service (SOA), un<br />

système orienté service ainsi que la technologie des services Web. La troisième section traite les<br />

approches de modélisation des systèmes orientés services. La quatrième section traite les<br />

approches à même de permettre la prise en compte des différentes dimensions des besoins des<br />

utilisateurs. La cinquième section met l‟accent sur les approches MDA pour le développement<br />

des systèmes orientés services. Enfin, nous clôturons ce chapitre en dressant un bilan comparatif<br />

des différentes approches étudiées.<br />

I.2.<br />

Systèmes Orientés Services (SOS) : concepts et définitions<br />

Dans le cadre de cette thèse, nous définissons SOA comme un style d‟architecture permettant le<br />

développement des applications en couplage faible à travers des standards, et indépendamment<br />

des protocoles et plateformes. L‟architecture orientée services définit trois acteurs : le<br />

fournisseur de services, l‟annuaire de services et le client de service. Elle définit aussi trois<br />

opérations standards : find, bind et publish (Papazoglou, 2007). Le fournisseur de services qui<br />

possède l‟implémentation de service procède à la publication de la description du service dans un<br />

annuaire de services. Ce dernier contient l‟ensemble des descriptions de services publiés par les<br />

différents fournisseurs de services. Il fournit les moyens nécessaires pour la publication et la<br />

découverte des services. Le client de service pour un besoin donné, recherche dans l‟annuaire le<br />

service qui lui convient.<br />

Nous définissons aussi un Système Orienté Service (SOS par la suite) comme étant un système<br />

qui se constitue principalement des services et se base sur l‟architecture SOA comme un style<br />

architectural.<br />

La technologie des services web constitue une implémentation prometteuse de l‟architecture<br />

SOA. Un service Web est défini selon le W3C (W3C, 2004):<br />

«Un service Web est un système logiciel identifié par un identificateur uniforme de ressources


9<br />

Etat de l’art<br />

(URI), dont les interfaces publiques et les liens (binding) sont définis et décrits en XML. Sa<br />

définition peut être découverte dynamiquement par d‟autres systèmes logiciels. Ces autres<br />

systèmes peuvent ensuite interagir avec le service Web d‟une façon décrite par sa définition, en<br />

utilisant des messages XML transportés par des protocoles Internet ».<br />

La technologie des services web se base principalement sur les protocoles et les standards<br />

suivants : SOAP, WSDL et UDDI.<br />

SOAP est le protocole d‟échange de messages permettant d‟interagir avec les<br />

services Web. Ces messages sont délivrés sous la forme de documents XML<br />

qui sont structurés par : une entête contenant les informations non<br />

fonctionnelles liées au message telles que la sécurité ainsi qu‟un corps<br />

contenant les données métiers du domaine de l‟application. SOAP est<br />

générique et extensible puisque les autres spécifications sont définies par<br />

dessus en définissant par exemple de nouveaux entêtes (sécurité, garantie de<br />

livraison). Ce protocole n‟est pas lié à un type particulier de protocole de<br />

transport de données, mais il est fréquent qu‟il soit associé à HTTP ou SMTP.<br />

WSDL est le standard basé sur XML permettant de décrire les services Web.<br />

Il permet de générer des documents structurés en deux parties : une partie<br />

abstraite décrivant l‟interface fonctionnelle du service en termes d‟opérations<br />

et de messages, ainsi qu‟une partie concrète qui contient les détails des<br />

protocoles à utiliser et de l‟adresse physique des opérations.<br />

UDDI est une spécification technique définissant un registre permettant la<br />

publication et la découverte des services Web. Un registre UDDI est un<br />

registre basé sur XML qui contient des informations à propos d‟entités<br />

d‟affaire fournissant des services Web ainsi que des métadonnées concernant<br />

ces services (informations techniques ou légales). En outre, UDDI spécifie<br />

plusieurs API pour interagir avec le registre, demander ou publier un service.<br />

I.3.<br />

SOS : Approches de modélisation<br />

Aujourd'hui, le monde industriel et académique s‟intéresse de plus en plus à la modélisation des<br />

systèmes orientés services indépendamment des plates-formes technologiques ou des langages de


10<br />

Etat de l’art<br />

programmation. La modélisation est d‟une importance capitale pour le développement des SOSs<br />

(Papazoglou et al., 2008) dans la mesure où elle définit les éléments de modélisation capables de<br />

représenter de tels systèmes à un haut niveau d‟abstraction.<br />

Dans cette section, nous illustrons différentes approches de modélisation des systèmes orientés<br />

services telles que les approches à base du « service component » (Stojanovic, 2004) (Zhang,<br />

2006). Nous présentons aussi le Service Component Architecture (SCA) (Biesiegel et al. 2005)<br />

comme un ensemble de spécifications pour la modélisation des systèmes orientés services<br />

indépendamment des technologies et des standards. Finalement, nous présentons des travaux<br />

définissant des profils UML pour l‟analyse/conception des systèmes orientés services (Johnston,<br />

2006) (Amir et al., 2004) (López Sanz et al., 2007) (Ermagan et al., 2007) (Benatallah et al.,<br />

2009).<br />

I.3.1. Approches à base de « Service Component »<br />

Zhang et al. (Zhang et al., 2006) ont introduit un framework de modélisation des systèmes<br />

orientés services. Ce framework se base sur le concept de « service component » permettant<br />

l‟analyse/conception des systèmes orientés service. Le « service component » est traité comme<br />

étant une entité de modélisation de première classe permettant de capturer des unités<br />

fonctionnelles relatives à des services abstraits. Le «service component » possède plusieurs<br />

interfaces découvrables et accessibles à travers le réseau. Chaque « service component » est<br />

autonome, auto-descriptif et peut exposer et délivrer des fonctionnalités à d‟autres «service<br />

component » à travers des interfaces sans se soucier des détails d‟implémentations.<br />

Le «service component » est utilisé pour la description de la structure d‟un système loin de toute<br />

technologie ou plate-forme (intergiciel, système d‟exploitation, architecture matérielle, etc.).<br />

La figure 1 illustre le métamodèle du « service component ». Le métamodèle est présenté dans le<br />

but d‟assurer l‟interopérabilité et l‟intégration des systèmes orientés service. Le méta-modèle du<br />

« service component » se compose des éléments suivants :<br />

Specification déclare les interfaces du service et les contrats du service. Une<br />

déclaration d‟interfaces spécifie les ports du service et possède des propriétés<br />

fonctionnelles et non fonctionnelles et les contraintes associées. Le contrat du


11<br />

Etat de l’art<br />

service guide le consommateur à utiliser le service. Il spécifie le rôle que le<br />

« service component » doit jouer et il inclut les informations de configuration<br />

qui spécifient les versions des services, les pré-conditions, les post-conditions<br />

et les conditions de coordination. Ainsi, elle facilite la modification, le<br />

remplacement, et l‟évolution du service.<br />

Figure 1–Métamodèle du “service component” (Zhang et al., 2006)


12<br />

Etat de l’art<br />

Contents représente l’implémentation du composant service avec un langage<br />

donné (C, C#, Java, etc.). Les détails de cette implémentation sont invisibles au<br />

consommateur de ce service ainsi qu‟à l‟environnement extérieur.<br />

Le contexte définit l‟environnement dans lequel le service existe.<br />

La chorégraphie permet d‟indiquer si le service component est un service<br />

composite ou pas. Le patron de composition est fourni dans la spécification de<br />

la chorégraphie.<br />

Dans le même objectif que (Zhang et al, 2006), (Stojanovic et al., 2004) proposent une approche<br />

pour la modélisation et la conception des solutions SOA. Cette approche se base aussi<br />

principalement sur le concept « service component» et sur des extensions apportées au langage<br />

UML.<br />

Le « component service » est défini dans le cadre de cette approche, comme une entité logicielle<br />

autonome qui réalise des services à travers des interfaces de façon contractuelle sans exposer sa<br />

réalisation interne.<br />

Pour la modélisation et la conception des solutions SOA, deux types de « service component »<br />

de différente granularité ont été définis :<br />

Business Service Component (BSC) qui est un type de « service component »<br />

fournissant des services et des opérations significatifs, perçus avec une valeur<br />

mesurable dans le contexte Business. Il permet de réaliser des parties d‟un<br />

processus métier en coordination et en coopération avec d‟autres BSC pour<br />

réaliser des objectifs business plus compliqués.<br />

Atomic Service Component (ASC) qui est un type de « service component »<br />

fournissant des opérations de granularité fine n‟ayant pas une réelle valeur<br />

Business. Chaque ASC collabore et coordonne avec d‟autres ASC pour fournir<br />

un comportement métier représenté par un BSC qui les encapsule.<br />

I.3.2. Approches à base de « Service Component Architecture » (SCA)<br />

Le Service Component Architecture (SCA) (Biesegel et al., 2005) est un ensemble de<br />

spécifications décrivant un modèle de composant pour développer des applications SOA. Les


13<br />

Etat de l’art<br />

applications basées sur SCA sont en fait un assemblage de composants. Chaque composant<br />

modélise une partie de la logique métier et peut dépendre de services fournis par d‟autres<br />

composants.<br />

L‟objectif principal de SCA est de décrire des applications SOA en se focalisant sur la logique<br />

métier indépendamment des standards, des plateformes et des langages utilisés (i.e. Java, C#,<br />

BPEL, etc). Ainsi, avec SCA, les services se traitent tous de la même manière quelles que soient<br />

leurs caractéristiques techniques. Le fait de pouvoir s'abstraire des considérations techniques des<br />

applications, simplifie énormément leur conception en utilisant les services.<br />

Le modèle de SCA proposé, se focalise essentiellement sur les interfaces pour représenter les<br />

fonctionnalités du composant fournies à d‟autres composants. Il se base aussi sur les références<br />

pour désigner les interfaces requises que le composant peut utiliser pour répondre aux besoins de<br />

ses utilisateurs. Figure 2 présente le modèle de composant SCA.<br />

Service<br />

Component<br />

Figure 2–Composant SCA<br />

références<br />

La Figure 3 présente un modèle d‟un système d‟une agence de voyages, représenté par quatre<br />

CarReservation<br />

BookTravel<br />

HotelReservation<br />

AirReservation<br />

Figure 3–Modélisation à base de SCA du système de l’agence de voyage<br />

services avec leurs interfaces fournies et leurs références. Ce système est représenté sans tenir


14<br />

Etat de l’art<br />

compte des détails des plates-formes technologiques qui sont prises ultérieurement dans le cycle<br />

de développement des systèmes orientés services à base de SCA.<br />

I.3.3. Approches à base de profils UML<br />

UML est un langage de modélisation destiné à un grand nombre de domaines. Pour l‟adapter à<br />

un domaine particulier, il est nécessaire de définir des extensions (stéréotypes, valeurs étiquetées,<br />

contraintes) structurées et regroupées dans ce qu‟on appelle un profil. Dans le contexte de SOA,<br />

plusieurs profils ont été proposés pour la spécialisation d‟UML en vue de la modélisation des<br />

applications SOA. Dans cette section, nous présentons principalement trois profils : le profil<br />

défini par (Johnston et al., 2006), le profil défini par (López-Sanz et al., 2007) ainsi que le profil<br />

SoaML proposé par l‟OMG.<br />

Johnston et al. (Johsnston et al., 2006) ont proposé un profil UML2.0 pour la modélisation des<br />

services et des solutions orientées services. Ce profil fournit un langage commun pour la<br />

modélisation des services. Il définit aussi un ensemble d‟activités le long du cycle de vie du<br />

développement tout en fournissant un ensemble de vues des services aux différents stakeholders.<br />

De telles vues permettent de modéliser une perspective du système correspondant à un point de<br />

vue donné (stakeholder). Ainsi, le profil fournit les fonctionnalités nécessaires à l‟architecte pour<br />

organiser les services le plus tôt dans le cycle de développement en utilisant les partitions<br />

logiques pour la description de l‟ensemble de services à l‟échelle de l‟entreprise. Cette vue est<br />

raffinée par les concepteurs qui ont pour mission le développement des spécifications de services<br />

aussi bien structurelles que comportementales. Les spécifications de services jouent un rôle de<br />

contrat entre les fournisseurs de services et les clients de services. La vue message permet aux<br />

concepteurs de réutiliser les modèles d‟informations pour la définition des données manipulées<br />

par le service. La Figure 4 présente les différents stéréotypes définis ainsi que leurs relations.


15<br />

Etat de l’art<br />

Figure 4–Métamodèle du profil UML (Johsnston et al., 2006).<br />

Le tableau 1 présente chaque stéréotype, sa description ainsi que leurs métaclasses sources<br />

UML 2.0 :<br />

Nom du stéréotype Metaclasse Commentaire<br />

Message Class Ce stéréotype définit les<br />

structures de données<br />

échangées. Il spécifie aussi la<br />

propriété “Encoding” pour<br />

spécifier l‟encodage SOAP ou<br />

RPC.<br />

Message Attachment Property Ce stéréotype indique si le<br />

contenu d‟un message est un<br />

attachement ou pas<br />

Service Port Ce stéréotype permet de<br />

déterminer le couple<br />

specification/binding<br />

Service Channel Connector Ce stéréotype décrit une<br />

connexion entre services.<br />

Service Collaboration Collaboration Ce stéréotype permet la<br />

modélisation<br />

du<br />

comportement d‟un ensemble


16<br />

Etat de l’art<br />

de services qui coopèrent.<br />

Service Consumer Classifier Ce stéréotype désigne un<br />

consommateur de service.<br />

Service Gateway Port Ce stéréotype permet la<br />

modélisation d‟une connexion<br />

entre partitions<br />

Service Partition Node Ce stéréotype définit un<br />

groupement logique ou<br />

physique d‟un ensemble de<br />

services<br />

Service Provider<br />

Class<br />

Ce stéréotype permet la<br />

modélisation d‟un fournisseur<br />

d‟un ou de plusieurs services<br />

Service Specification Class, Interface Ce stéréotype permet la<br />

spécification des opérations et<br />

leurs messages associés qui<br />

définissent le service.<br />

Tableau 1–Stéréotypes et métaclasse de base<br />

Dans le même objectif (López-Sanz et al., 2007) (López Sanz et al. 2008) ont proposé des profils<br />

UML pour la modélisation des systèmes orientés services. Ainsi, Lopez-Sanz et al. (López-Sanz<br />

et al., 2007) ont défini plusieurs stéréotypes permettant la spécification des systèmes orientés<br />

services. Le tableau 2 présente les stéréotypes définis, les métaclasses UML de base, les concepts<br />

définis ainsi que leurs sémantiques.<br />

Notation Concept associé Métaclasse UML de Sémantique<br />

base<br />

Outer provider Package Un fournisseur de<br />

service externe<br />

Business contract Dependency Le contrat établi<br />

entre fournisseurs de<br />

services<br />

System Front-End Classifier Les composants qui<br />

interagissent avec<br />

l‟utilisateur<br />

Composite service Classifier Un service composé<br />

d‟autres services<br />

Basic service Classifier Ce stereotype<br />

représente une<br />

fonctionnalité<br />

basique


17<br />

Etat de l’art<br />

Orchestrator service Classifier Ce stéréotype joue le<br />

rôle d‟un<br />

orchestrateur dans<br />

une chorégraphie<br />

Service contract Association Class Ce stéréotype joue le<br />

rôle d‟un connecteur<br />

entre service<br />

Restriction clause Classifier Les pre/post<br />

conditions qui<br />

doivent être vérifiées<br />

Service operation Property Une fonctionnalité<br />

atomique d‟un<br />

service<br />

Tableau 2–Profil PIM4SOA<br />

La figure 5 présente le métamodèle du profil défini. Ce métamodèle définit la structure des<br />

différents stéréotypes ainsi que leurs associations.<br />

Figure 5–Métamodèle du profil PIM4SOA (López-Sanz et al., 2007)<br />

Pour sa part, L‟OMG est dans la phase de la standardisation d‟un profil UML appelé SoaML<br />

(Service oriented architecture Modeling Language) (OMG, 2009) dans l‟objectif de la<br />

modélisation des applications SOA. SoaML s'intéresse à l'architecture et non pas aux composants


18<br />

Etat de l’art<br />

techniques sous-jacents. Son objectif est de fournir aux utilisateurs du langage UML, les<br />

moyens de modéliser une architecture orientée services -comprenant des notions de clients et de<br />

fournisseurs de services, de collaboration de services ainsi que la notion de contrats. Le profil<br />

SoaML définit plusieurs stéréotypes. Le tableau 3 illustre les stéréotypes SoaML ainsi que leur<br />

sémantique associé.<br />

Stéréotype Métaclasse UML Sémantique<br />

Agent Class Agent est une classification<br />

d‟entités autonomes qui<br />

s‟adaptent et interagissent<br />

avec leur environnement. Les<br />

agents en SoaML sont les<br />

participants fournissant et<br />

utilisant les services.<br />

Collaboration Collaboration Collaboration permet la<br />

description d'un patron<br />

d'interaction entre les<br />

différents rôles.<br />

Attachment Property Attachment désigne une partie<br />

d‟un Message qui est un<br />

attachement.<br />

CollaborationUse CollaborationUse CollaborationUse montre<br />

comment une collaboration<br />

(ServiceContracts et<br />

ServiceArchitectures) est<br />

accomplie.<br />

MessageType Class, DataType, Signal MessageType permet la<br />

spécification des informations<br />

échangées entre les<br />

fournisseurs et les<br />

consommateurs de services.<br />

Expose Dependency Expose désigne une<br />

dépendance qui indique si un<br />

Capability doit être exposé ou<br />

pas.<br />

Milestone Comment Milestone permet d‟indiquer<br />

le progrès dans les<br />

comportements ayant une<br />

durée considérable.<br />

Participant Class participant désigne un<br />

fournisseur ou un<br />

consommateur de service


19<br />

Etat de l’art<br />

Provider Interface, Class Provider modélise le type<br />

d‟un fournisseur de services.<br />

Consumer Interface, Interface Consumer modélise un type<br />

d‟un consommateur de<br />

service.<br />

Request Port Request désigne un port qui<br />

définit un point de connexion<br />

à travers lequel un participant<br />

répond à ses besoins via la<br />

consommation des services<br />

fournis par d’autres<br />

fournisseurs.<br />

Service Port Service représente un port qui<br />

définit le point de connexion<br />

par lequel un participant offre<br />

ses capacités à ses clients.<br />

Capability Class Capability dénote une<br />

capacité d‟un service donné.<br />

Service Contract Collaboration ServiceContract est la<br />

formalisation de l‟échange<br />

d‟information, des biens et des<br />

obligations entre les parties<br />

définissant un service.<br />

Service Interface Class, Interface ServiceInterface fournit la<br />

définition d‟un service. Il<br />

définit la spécification de<br />

l‟interaction «Service» ou<br />

«Request»<br />

ServiceChannel Connector ServiceChannel désigne un<br />

chemin de communication<br />

entre requêtes et services<br />

Services Architecture Collaboration ServiceArchitecture définit<br />

une vue de haut niveau d‟une<br />

architecture orientée service<br />

qui définit comment un<br />

ensemble de participants<br />

travaillent ensemble pour<br />

atteindre un objectif donné en<br />

fournissant et utilisant des<br />

services.<br />

Tableau 3–Stéréotypes du profi l SoaML


20<br />

Etat de l’art<br />

I.3.4. Discussion<br />

Les approches de modélisation des SOS jouent un rôle très important dans la construction des<br />

SOS en définissant les concepts et les formalismes/notations nécessaires pour la description de<br />

tels systèmes indépendamment des technologies et des standards. Elles permettent de décrire les<br />

aspects structurels et dynamiques des SOS, ce qui facilite la compréhension, la vérification la<br />

validation et la simulation de tels systèmes. Tout de même, le développement des SOSs se base<br />

principalement sur la technologie des services web qui définit un ensemble de technologies<br />

(XML, etc.) et de standards (e.g., WSDL, UDDI, BPEL4WS, etc.). Cependant, pour faciliter et<br />

rationaliser le développement de tels systèmes, il faut les décrire à un haut niveau d‟abstraction<br />

vu la diversité des profils des acteurs (les analystes métier, les architectes, les développeurs, les<br />

utilisateurs finals, etc.) s‟intéressant à leur développement sans en comprendre nécessairement<br />

les détails technologiques.<br />

Par ailleurs, les différentes approches de modélisation proposées ne permettent pas de rendre<br />

productifs les modèles élaborés. Ces derniers permettent de représenter des SOS à différents<br />

niveaux d‟abstraction mais ne facilitent pas la génération automatique des artefacts d‟un SOS<br />

(Description de services WSDL, Implémentation de services en Java ou C#, Composition de<br />

services BPEL, Fichiers de configuration, etc.) en se basant sur des outils logiciels appropriés.<br />

Aussi, ces différentes propositions ne prennent pas en compte l’aspect multidimensionnel des<br />

besoins des acteurs interagissant avec le service. En effet, un service en SOC interagit avec<br />

plusieurs clients de services. Chaque client de service a un profil donné avec des besoins<br />

différents. Ainsi, les approches de modélisation doivent tenir compte de cette réalité pour mieux<br />

la représenter.<br />

I.4.<br />

SOS : Concepts d’adaptation<br />

L‟utilisateur final joue un rôle crucial dans le développement des systèmes d‟information<br />

orientés services. En effet, c‟est lui qui exploite et utilise le système. Pour prendre en compte ses<br />

besoins, plusieurs approches définissant différents mécanismes et concepts, ont été proposées.<br />

Ainsi, nous présentons dans cette section, en premier lieu, les approches utilisant les vues pour la<br />

prise en compte des différents aspects des besoins des utilisateurs tels que l‟utilisation des vues


21<br />

Etat de l’art<br />

pour l‟adaptation des services au contexte de l‟utilisateur (Benslimane et al., 2005), la gestion de<br />

ses droits d‟accès (Fink et al., 2003) et l‟adaptation des services aux types des utilisateurs de<br />

service (Fuchs, 2004). Dans un deuxième lieu, nous présentons les approches qui se basent sur la<br />

variabilité de service pour la prise en compte de l‟utilisateur final (Chang et al., 2007a). En<br />

troisième lieu, nous présentons les approches permettant l‟adaptation de services se basant sur le<br />

concept de service différencié (Tao et al., 2007a) (Tao et al., 2008). Finalement, nous présentons<br />

autres approches qui définissent des extensions aux standards de la technologie des services web<br />

pour la prise en compte de l‟utilisateur final (lopez-velasco et al., 2005) (Kouadri Mostefaoui,<br />

2006) .<br />

I.4.1. Concept d’adaptation : les Vues<br />

L‟objectif de cette section est de présenter les différents travaux combinant entre le concept de<br />

vue et celui de service pour la prise en compte de l‟utilisateur final. Généralement, les vues sont<br />

largement utilisées dans plusieurs domaines de l‟informatique. Elles sont utilisées dans les<br />

SGBD (Rafanelli et al. 2003), la gestion des connaissances, les workflows, les approches<br />

orientées objets, etc. Aussi, notre équipe a déjà développé des méthodes en se basant sur le<br />

concept de vue telles que la méthode VBOOM (Kriouile, 1995) ou l‟approche VUML (Nassar et<br />

al., 2005). De même, pour accompagner l‟évolution de l‟ingénierie logicielle vers les approches<br />

à base de composants (Szyperski, 2002), un modèle du composant multivues (El Asri, 2005) a<br />

été proposé.<br />

Dans cette section, nous nous intéressons tout particulièrement aux approches se basant sur les<br />

vues pour la prise en compte de l‟utilisateur final pour le développement des SOSs.<br />

I.4.1.1<br />

Vues à base de l’adaptation par rôles<br />

Les vues ont été largement utilisées pour l‟adaptation des services aux rôles des utilisateurs.<br />

Dans cette optique, Torsten et al. (Fink et al. 2003) proposent une approche à base de vue pour la<br />

gestion des droits d‟accès de chaque acteur interagissant avec un service donné. Cette approche<br />

se base sur un modèle appelé VBAC (View Based Access Control) et sur un langage déclaratif<br />

permettant de spécifier les différentes vues. Nous commençons par présenter l‟exemple<br />

d‟application avant d‟expliquer les concepts de base de cette approche.


22<br />

Etat de l’art<br />

(1) L’exemple d’application<br />

« Video central » est une application qui repose sur un ensemble de services web développé par<br />

IBM (IBM, 2002). Cette application définit six services web représentés par le diagramme de<br />

classe UML dans la figure 6 suivante.<br />

CustomerRentedList<br />

processAddRequest(loginBusinessGuid,loginBusinessPassword,userID,titleIDList):int<br />

processQueryRequest(loginBusinessID,loginBusinessPassword,customerGuid):String<br />

WishList<br />

processAddRequest(businessGuid,registrationKey,customerGuid,titleList):int<br />

processQueryRequest(businessGuid,registrationKey,customerGuid,maxNumRecords):String<br />

processRemoveRequest(businessGuid,registrationKey,customerGuid,titleList):int<br />

MovieSearch<br />

processRequest():String<br />

Customer<br />

CustomerInfraction<br />

processAddRequest(loginBusinessID,loginBusinessPassword,firstName,lastName):int<br />

processQueryRequest(loginBusinessID,loginBusinessPassword,customerGUID,beginDate,endDate):String<br />

BusinessRegistration<br />

processRegisterRequest():int<br />

Staff<br />

CustomerRegistration<br />

getCustomerGUID(loginBusinessID,loginBusinessPassword,firstName,lastName):int<br />

processRegisterRequest(loginBusinessID,loginBusinessPassword,firstName,lastName):int<br />

Figure 6 –Diagramme de classe et les rôles de l’application «video central » (Fink et al, 2003)<br />

« Video central » se compose de six services web représentés sous forme de diagramme de<br />

classes UML : CustomerRentedList, MovieSearch, BusinessRegistartion, CustomerRegistration<br />

et CustomerInfraction. Ce diagramme illustre aussi les rôles qui interagissent avec les différents<br />

services web : Customer et Staff. Chaque rôle a ses propres besoins sur les services. En d‟autres<br />

termes, chaque acteur a ses droits d‟accès sur un service donné. En effet, dans le cadre de cet<br />

exemple, le rôle Customer ne peut pas exécuter les opérations : processRegisterRequest, ou<br />

getCustomerGUID réservées seulement au rôle Staff.<br />

(2) Le modèle VBAC et le langage VPL<br />

VBAC est un modèle de contrôle d‟accès conçu pour supporter la conception et la gestion des<br />

politiques de contrôle d‟accès dans les systèmes distribués. VBAC (Fink et al.,2003) est une<br />

extension du modèle de contrôle d‟accès à base de rôles (RBAC) par les concepts de vue et de<br />

schéma. Une vue regroupe les permissions ou les interdictions pour la gestion de l‟accès à des<br />

objets (un fichier, une méthode,…). Chaque vue est associée à des rôles. Un sujet (un utilisateur,


23<br />

Etat de l’art<br />

un processus,…) peut accéder à un objet s‟il a un rôle auquel une vue est assignée. Si la vue<br />

n‟existe pas pour un rôle donné, le sujet ne peut pas accéder à l‟objet en question. Un schéma<br />

spécifie les assignations dynamiques aux différents rôles. Ces assignations sont effectuées<br />

automatiquement à chaque invocation d‟une opération donnée.<br />

Dans le but de spécifier les politiques VBAC, un langage déclaratif appelé VPL (View Policy<br />

Language) a été défini. VPL est utilisé pour spécifier les rôles, les vues et les schémas. Les rôles<br />

sont définis dans une déclaration en utilisant le mot clé role. Les schémas sont définis en utilisant<br />

le mot clé schema.<br />

La clause role définit les différents rôles dans la politique ainsi que leurs vues initiales. La figure<br />

7 montre la définition des rôles pour l‟application «Video central».<br />

role customer<br />

staff holds BusinessRegistration<br />

view BusinessRegistration controls BusinessRegistration restricted to staff<br />

{ processRegisterRequest }<br />

view CustomerRegistration controls CustomerRegistration restricted to staff<br />

{<br />

getCustomerGUID(loginBusinessID, , , ) if caller = loginBusinessID<br />

processRegisterRequest(loginBusinessID, , , ) if caller = loginBusinessID<br />

}<br />

view CustomerInfraction controls CustomerInfraction restricted to staff {<br />

processAddRequest( loginBusinessID, , ) if caller = loginBusinessID<br />

processQueryRequest( loginBusinessID, , , , ) if caller = loginBusinessID<br />

}<br />

Figure 7–Déclaration des vues en VPL (Fink et al., 2003).<br />

La figure 7 montre la déclaration de deux rôles : Client et Staff. Le rôle staff possède initialement<br />

la vue BusinessRegistration (mot clé holds). Le rôle Client n‟a initialement aucune vue. Une vue<br />

VPL définit les autorisations à un sous-ensemble d‟opérations d‟un seul service web. Une vue est<br />

référencée par la clause de contrôle. Par exemple, la vue BusinessRegistration donne la<br />

permission pour invoquer l‟opération processRegisterRequest du service web<br />

BusinessRegistration. Une Vue VPL peut être statiquement restreint à certains rôles.<br />

I.4.1.2<br />

Vues à base de l’adaptation contextuelle<br />

Pour adapter les services aux types de leurs utilisateurs ou à leur contexte, plusieurs approches<br />

ont adopté les vues. Ainsi, (Maamar et al. 2005) (Benslimane et al. 2005) présentent une


24<br />

Etat de l’art<br />

approche à base de vues pour faire le suivi de l‟exécution des services web composites et pour<br />

prendre les mesures correctives dans le cas où l‟exécution de services ne se conforme pas aux<br />

préférences des utilisateurs. Le concept de vue est défini dans cette approche comme étant un<br />

instantané dynamique de la spécification des services web composites selon un contexte donné.<br />

La vue permet de mettre en évidence ce qui est attendu selon les préférences des utilisateurs de<br />

ce qui s‟est produit effectivement selon les contraintes de l‟environnement.<br />

La spécification de service composite est effectuée par un diagramme de services (Service Chart<br />

Diagram) (SCD) (Maamar et al., 2003). Un SCD est une extension du diagramme d‟état UML en<br />

y ajoutant les informations du contexte de service ainsi que la localisation et le temps pour mieux<br />

manipuler les préférences des utilisateurs.<br />

Le contexte associé à une vue donnée se décompose en trois types d‟informations :<br />

Les informations du contexte de l‟utilisateur (U-Context) telles que sa<br />

localisation, ses activités,<br />

Les informations du contexte d‟un service web (WS-Context) telles que ses<br />

capacités et ses participations dans d‟autres compositions.<br />

Les informations du contexte de la composition de services (CS-context) telles<br />

que l‟état d‟exécution d‟une composition de services.<br />

La spécification de services composite est soit initiale ou dérivée. Un concepteur crée une<br />

spécification initiale qui inclut la chronologie de services et les dépendances entre eux. Le<br />

concepteur obtient une spécification dérivée en appliquant une vue, qui est associée à un<br />

contexte donné, sur la spécification initiale. La spécification dérivée peut être, à son tour, initiale<br />

ou dérivée .La figure 8 présente synthétiquement le métamodèle de vue :<br />

Figure 8–Métamodéle de vue (Maamar et al., 2005)


25<br />

Etat de l’art<br />

Par ailleurs, et dans le but d‟adapter les services web à des environnements hétérogènes et à<br />

différents groupes d‟utilisateurs, Fuchs (Fuchs, 2004) adopte le concept de vue pour la définition<br />

d‟un mécanisme appelé «service view». Un «service view» est une définition WSDL spécifiée<br />

pour un groupe d‟utilisateurs à l‟instar de la définition des vues dans les systèmes de gestion de<br />

bases de données où une vue est définie comme une combinaison d‟informations à partir de<br />

plusieurs tables associées à un utilisateur donné. Cette définition WSDL décrit un ensemble<br />

d‟opérations du service, leurs adresses, et le contenu de leurs messages suivant le type des<br />

utilisateurs interagissant avec le service. Dans ce sens, deux types d‟utilisateurs ont été<br />

identifiés : les utilisateurs internes et les utilisateurs externes. En effet, ces deux types<br />

d‟utilisateurs ont leur propre description WSDL.<br />

Les fournisseurs de services doivent créer des descriptions de service qui s‟adaptent aux types<br />

de clients. Pour cela, Fuchs définit une architecture se basant sur deux couches : la couche<br />

« service views » et la couche « rule groups » fournissant une couche d‟adaptation qui permet de<br />

manipuler les descriptions de services en changeant les noms des opérations, leurs<br />

entrées/sorties, leurs adresses ainsi que les différents mécanismes d‟authentification et<br />

d‟autorisation.<br />

Les « service View » sont implémentés en utilisant un langage de script qui permet de modifier<br />

la structure des documents WSDL et de créer de nouvelles descriptions WSDL correspondant<br />

aux besoins des clients bien définis. Ce langage de script se compose d‟un ensemble de<br />

commandes. Chaque commande permet de définir une insertion, une suppression ou à une mise à<br />

jour d‟un élément constituant la description WSDL.<br />

La figure 9 spécifie un ensemble de commande pour la génération des WSDL spécifiques aux<br />

clients de services internes et externes à partir des descriptions WSDL.<br />

<br />

<br />


26<br />

Etat de l’art<br />

location="https://.../ExternalServices"/><br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

…<br />

<br />

<br />

Figure 9–Script de transformation des documents WSDL<br />

Le script de transformation défini, permet à partir d‟un ensemble de fichiers WSDL existants de<br />

générer des WSDL qui correspondent aux besoins des clients internes et des clients externes.<br />

I.4.1.3<br />

Discussion<br />

Les vues sont largement utilisées en informatique pour divers besoins. Dans le cadre de la<br />

technologie des services web, plusieurs travaux ont adopté le concept de vue. Ainsi, Maamar et<br />

al. ont utilisé les vues comme un mécanisme d‟adaptation de services aux contextes des<br />

utilisateurs. Maamar et al. spécifient les services composites en utilisant le SCD pour intégrer les<br />

contraintes de temps et d‟espace dans les diagramme d‟état pour faciliter la dérivation des<br />

spécifications suivant un contexte donné. Cette approche permet l‟adaptation des systèmes à base<br />

de service. Néanmoins, l‟approche ne présente aucune notation ou langage pour la spécification<br />

des aspects structurels d‟un système orienté service, c'est-à-dire la spécification de leurs<br />

interfaces et des modèles de données y associées.<br />

En ce qui concerne (Fink et al. 2003) qui proposent la modélisation des droits d‟accès des<br />

différents utilisateurs dans un système distribué et notamment dans le cas des services web en se<br />

basant sur le diagramme de classe classique. Cependant, le fait de modéliser des applications<br />

orientés services en utilisant le diagramme de classe est inadéquat puisque ni le niveau de<br />

granularité d‟un service, ni son niveau d‟abstraction ne correspondent à celui d‟une classe. En<br />

outre, un service peut modéliser une activité métier et peut participer dans plusieurs processus<br />

métier. Ainsi, le diagramme de classe ne peut en aucun cas représenter un service du moment où<br />

le diagramme de classe n‟est pas pensé pour la modélisation d‟un système orienté service mais<br />

d‟un système orienté objet.


27<br />

Etat de l’art<br />

L‟approche proposée par Fuchs (Fuchs, 2004) pour l‟adaptation des descriptions de services<br />

suivant le type des utilisateurs (interne/externe), ne définit pas un formalisme ou une notation<br />

pour spécifier et développer des systèmes orientés services distribués et à large échelle.<br />

L‟adaptation de services se fait au niveau technologique et non pas au niveau métier, en utilisant<br />

un langage de commande et sur les descriptions WSDL.<br />

I.4.2. Concept d’adaptation : la variabilité de service<br />

I.4.2.1<br />

Description de l’approche<br />

Pour développer des services adaptables aux clients de service, (Chang et al., 2007b) proposent<br />

une approche se basant sur le principe de la variabilité de service. Cette approche définit les<br />

types de variabilité de service ainsi qu‟un processus d‟Analyse/Conception permettant de<br />

développer des services adaptables en se basant sur le concept de variabilité. Ce concept est<br />

largement utilisé dans les PLE (Product Line Engineering). La variabilité se définit en terme de<br />

point de variation et de variant. Un point de variation est un emplacement dans le logiciel où un<br />

changement peut survenir. Le variant est la valeur ou l‟instance qui s‟associe à un point de<br />

variation. La figure 10 illustre les différents types de variabilité ainsi que les différentes couches<br />

logicielles d‟une application SOA concernées (processus métier, services unitaires, interface de<br />

service et les composants de services) :<br />

Globalement, quatre types de variabilité de services ont été définis comme le montre la figure 10<br />

: la variabilité de Workflow, la variabilité de composition, la variabilité de l‟interface et la<br />

variabilité de la logique.<br />

La variabilité de workflow : Un processus business est réalisé à travers une séquence de services<br />

unitaires, appelée Workflow. Une partie de cette séquence peut ne pas être utilisée par certains<br />

consommateurs de services. Aussi, une partie de la séquence d‟activités peut varier d‟un<br />

consommateur à un autre. Ainsi, La variabilité de Workflow est définie comme étant la variation<br />

des workflows des processus business.<br />

La variabilité de la composition : Un processus métier fait la composition de plusieurs services<br />

unitaires (chaque service unitaire réalise une activité donnée) pour répondre aux besoins des


28<br />

Etat de l’art<br />

utilisateurs finals. Pour un service unitaire donné, plusieurs interfaces de services peuvent être<br />

découvertes. Dans ce cas, la variation consiste dans le bon choix de l‟interface qui correspond<br />

aux profils des clients de services. L‟interface choisie dépend des besoins du client de services<br />

interagissant avec le service.<br />

Business<br />

Process<br />

Layer<br />

Business<br />

Process<br />

Business<br />

Process<br />

Business<br />

Process<br />

Workflow<br />

Variability<br />

Unit<br />

Service<br />

Layer<br />

Unit<br />

Service<br />

Unit<br />

Service<br />

Unit<br />

Service<br />

Composition<br />

Variability<br />

Interface<br />

Layer<br />

Interface<br />

Variability<br />

service<br />

Component<br />

Layer<br />

<br />

<br />

<br />

Logic<br />

Variability<br />

Figure 10–Types de variabilité de services (Chang et al., 2007b)<br />

La variabilité de l‟interface : La variabilité de l‟interface se manifeste lorsque l‟interface du<br />

service unitaire ne correspond pas à la description de l‟interface de service publiée dans un<br />

annuaire de service tel que UDDI. Les descriptions de services publiées dans l‟annuaire sont<br />

généralement des descriptions générées à partir des composant services qui sont des<br />

implémentations des services avec des langages donnés (C #, Java, etc.). La variabilité de<br />

l‟interface peut concerner le nom des opérations de services, les types des entrées/sorties, le type<br />

de retour, etc.<br />

La variabilité de la logique : Le composant service contient l‟implémentation des opérations de<br />

service qui réalisent les fonctionnalités du service unitaire. L‟algorithme ou la procédure de<br />

l‟opération peut varier suivant les requêtes des clients. Cette variation est appelée la variabilité


29<br />

Etat de l’art<br />

de la logique.<br />

En se basant sur les types de variabilité définis, Kim et al. (Chang et al., 2007a) définissent un<br />

processus de développement des services adaptables. Le processus définit un ensemble de<br />

phases, d‟activités et d‟artéfacts clés pour le développement des systèmes orientés services<br />

adaptables en tenant compte les utilisateurs finals. Globalement, ce processus définit les<br />

phases suivantes :<br />

Phase 1 : La définition des services cibles<br />

L‟objectif de cette phase est l‟analyse des exigences métiers pour pouvoir définir les processus<br />

métiers qui permettent de répondre aux besoins des utilisateurs finals. Cette phase est réalisée en<br />

trois étapes : l‟acquisition des exigences de services, l‟identification des services cibles et la<br />

définition des workflows des différents processus business. L‟objectif de cette phase est la<br />

production de la spécification des services cibles comme un artéfact caractérisant cette phase.<br />

Cette spécification contient la liste des services cibles, la description des business process et<br />

leurs Worflows associés. Dans cette phase, une variabilité de workflow est associée.<br />

Phase 2 : La définition des services unitaires<br />

L‟objectif principal de cette phase est la conception des services unitaires à partir de l‟artefact de<br />

la phase précédente. La première étape de cette phase consiste à définir les caractéristiques des<br />

services en se basant sur les critères de réutilisation et de cohésion. La deuxième étape de cette<br />

phase est la définition des interfaces des services. Dans cette phase, une spécification de la<br />

variabilité est effectuée.<br />

Phase 3 : la planification de l‟acquisition des composants service<br />

Cette phase a pour finalité la planification de l‟acquisition des implémentations de services. Pour<br />

cela trois scénarios ont été adoptés : l‟utilisation des services publiés dans l‟annuaire,<br />

l‟adaptation des applications traditionnelles ou le développement de nouveaux services. Cette<br />

phase est concernée par deux types de variabilité : la variabilité de la composition et la variabilité<br />

de l‟interface.


30<br />

Etat de l’art<br />

Phase 4 : l‟acquisition des composants services :<br />

L‟objectif de cette phase est de préparer les services web en tenant compte des services<br />

découverts, des services adaptés à partir des applications existantes ou des nouveaux services<br />

web développés. Dans cette phase, la variabilité de la logique est associée aussi bien au niveau<br />

de l‟analyse qu‟au niveau de la conception.<br />

Phase 5 : la composition de services<br />

L‟objectif principal de cette phase est la définition de la composition de services. Cette<br />

composition est dérivée à partir des artefacts des phases précédentes et elle est représentée par le<br />

langage de spécification de composition BPEL. Dans cette phase, la variabilité est affinée ainsi<br />

que la finalisation de l‟architecture globale du système.<br />

I.4.2.2<br />

Discussion<br />

Chang et al.(Chang et al., 2007a) proposent le concept de la variabilité de service pour le<br />

développement des service personnalisables et adaptables aux différents profils des clients de<br />

services. Chang et al. définissent un processus de développement définissant activités, phases et<br />

artefacts permettant l‟identification, la spécification et l‟implémentation des services en prenant<br />

en compte la variabilité de services tout au long du cycle de vie de développement d‟un SOS.<br />

L‟approche permet une meilleure séparation des préoccupations fonctionnelles entre les<br />

différents clients de service et une prise en compte de la diversité des profils des utilisateurs<br />

interagissant avec le service. Cependant, cette approche ne définit ni une notation ni un outil<br />

logiciel associé en vue de rendre productif et rationnel l‟activité du développement des systèmes<br />

orientés services adaptables.<br />

I.4.3. Concept d’adaptation : la différenciation de service<br />

I.4.3.1<br />

Description de l’approche<br />

L‟adaptation de services aux profils des utilisateurs est un défi majeur pour le développement des<br />

SOSs. Dans cette optique, (Tao et al. , 2007a) (Tao et al. , 2008) proposent une approche<br />

d‟adaptation en se basant sur le concept de la différentiation de service. La différenciation de<br />

service, à l‟instar de la différenciation de services dans le domaine du réseau (i.e., l‟approche


31<br />

Etat de l’art<br />

DiffServ), consiste en la prise en compte de la diversité des profils des utilisateurs (localisation,<br />

contexte, etc.) interagissant avec un service donné. En effet, le résultat de l‟exécution du même<br />

service ainsi que la qualité requise différent d‟un utilisateur à un autre.<br />

Pour la conception des services différenciés et adaptables, l‟approche définie repose sur la<br />

séparation des activités business qui sont applicables dans toutes les circonstances et exécutées<br />

par tous les utilisateurs de service, des activités business spécifiques à des groupes d‟utilisateurs<br />

particuliers (profils particuliers). En fait, les approches d‟adaptation de services existantes se<br />

basent principalement sur l‟implémentation des aspects d‟adaptation comme des conditions<br />

d‟exécutions dans le code de chaque processus métiers implémentant le service. De telles<br />

approches rendent plus complexes la flexibilité, la maintenance, l‟extensibilité et l‟adaptabilité<br />

des services. La figure 11 partie (a) illustre le fonctionnement des approches d‟adaptation des<br />

services existantes.<br />

Pour répondre aux limites de ces approches, Aries Tao Tao et al. proposent une approche de<br />

conception de services adaptables en se basant sur les étapes suivantes :<br />

1. L‟utilisation « des processus métiers noyau » (Core Business Process) (CBP) pour la<br />

représentation des activités génériques requises par tous les utilisateurs indépendamment des<br />

contextes d‟utilisations. Le CBP qui implémente les fonctionnalités accessibles à tous les<br />

utilisateurs, est formalisé par une machine à états finis.<br />

2. La séparation des contextes d’utilisation du “processus métier noyau”. En effet, différents<br />

groupes d‟utilisateurs qui requièrent des fonctionnalités spécifiques sont modélisés comme<br />

des ensembles des contextes d‟utilisations.<br />

3. La définition des processus métiers configurés aux contextes (Configured Context<br />

Business Process)(CCBP) qui implémentent les fonctionnalités requises pour des groupes des<br />

utilisateurs spécifiques. Le CCBP est déterminé bien évidemment en appliquant les<br />

contextes d‟utilisation au CBP. Il est généré à travers l‟application des contextes<br />

d‟utilisations sur le CBP qui modélise les fonctionnalités accessibles à tous les utilisateurs en<br />

définissant plusieurs algorithmes.<br />

4. La détermination des interfaces du service en se basant sur les processus métiers configurés<br />

aux contextes. En effet, après la génération des CCBP qui correspondent à l‟application d‟un


32<br />

Etat de l’art<br />

Figure 11–Concept de service différencié (Tao et al. , 2008)<br />

5. contexte d‟utilisation sur un CBP, vient l‟étape de la dérivation de l‟interface de service. Pour<br />

chaque CCBP, une interface de service lui est associée qui correspond aux besoins des<br />

utilisateurs appartenant au groupe d‟utilisateurs associé au contexte d‟utilisation. Pour<br />

identifier cette interface de service, des algorithmes ayant pour but d‟extraire les activités du<br />

CCBP ont été définis. Ces algorithmes parcourent chaque état composant le CCBP et


33<br />

Etat de l’art<br />

stockent les activités visibles pour la construction de l‟interface du service associé au CCBP.<br />

La figure 11 partie (b) reflète l‟approche de conception des services différenciés.<br />

La figure 12 présente le CBP d‟un service de pharmacie en ligne (Online Pharmacie Service)<br />

(OPS) (Tao et al., 2007). Ce service est en interaction avec plusieurs types de clients : les<br />

clients de service fidèles et les clients infidèles. Pour les clients fidèles, une remise sur les<br />

prix de médicament est appliquée. La figure 12 présente les OPS_CBP comme une<br />

représentation des activités exécutées par tout type d‟utilisateur (les clients de services<br />

fidèles/ infidèles). Chaque type d‟utilisateur peut exécuter les activités login, display good<br />

selection, display total price, receive payment et Product Delivery. OPS_UCM permet de<br />

modéliser les activités spécifiques au contexte d‟utilisation associé au client fidèle définies<br />

par deux propriétés : context (1) et context (2). OPS_CCBP représente les activités du<br />

processus configuré au contexte d‟utilisation associé à ce contexte d‟utilisation.<br />

OPS_ServiceInteface représente l‟interface associée au contexte d‟utilisation client fidèle qui<br />

se compose essentiellement d‟opérations :<br />

Figure 12–Conception à base des services différenciés de l’application OPS) (Tao et al., 2007b) .<br />

I.4.3.2<br />

Discussion<br />

(Tao et al., 2007a) (Tao et al., 2007b) (Tao et al., 2008) proposent une approche d‟adaptation des


34<br />

Etat de l’art<br />

services aux profils des clients de services. Cette approche est fondée principalement sur le<br />

formalisme des machines à états finis. Elle permet la modélisation des fonctionnalités accessible<br />

par tous les utilisateurs et dans toutes les circonstances en se basant sur le CBP. Les<br />

fonctionnalités spécifiques associées à chaque acteur sont modélisées en se basant sur les<br />

contextes d‟utilisation (UC). Un CCBP est obtenu en appliquant un contexte d‟utilisation à un<br />

CBP. Le CCBP permet de représenter les fonctionnalités requises qui correspondent à un profil<br />

d‟utilisateur donné. A chaque CCBP est associée une interface de service qui correspond à un<br />

profil d‟un utilisateur donné qui va interagir avec le service.<br />

Cette approche bien qu‟elle fournisse un formalisme (les machines à états finis) puissant en<br />

faisant l‟adaptation de services, elle ne permet pas la modélisation des aspects structurels d‟un<br />

SOS. Elle se base sur une approche de modélisation des aspects dynamique et non pas structurels<br />

pour l‟adaptation des services aux profils des utilisateurs. Aussi, cette approche reste abstraite et<br />

ne prend pas en compte les standards et les technologies des services web pour son illustration et<br />

sa mise en œuvre.<br />

I.5.<br />

SOS : technologies d’adaptation<br />

Dans l‟objectif de l‟adaptation des services, plusieurs approches ont proposé l‟extension des<br />

standards associés aux services web. En effet, plusieurs propositions ont visé l‟extension des<br />

standards de description de services tels que AWSDL (Lopes-velsco et al. , 2005), CWSDL<br />

(Kouadri Mostefaoui et al,2005) ou l‟extension CBPEL (Ghedira et al, 2005) pour la prise en<br />

compte de l‟adaptabilité de service au niveau du standard BPEL .<br />

I.5.1. AWSDL et CWSDL<br />

AWSDL (Lopez-velasco et al., 2005) est une extension du standard WSDL pour permettre au<br />

fournisseur de service de spécifier les différentes adaptations permises par le service web. Le<br />

AWSDL se base principalement sur le concept du profil général de l‟utilisateur (PGU). Le PGU<br />

est capable de décrire les besoins d‟adaptation d‟utilisateurs. Il est destiné à offrir un cadre<br />

générique pour la description d‟un utilisateur. Il permet de décrire les caractéristiques<br />

personnelles de l‟utilisateur et celles du contexte dans lequel est utilisé l‟application cible. Les<br />

caractéristiques de l‟utilisateur sont divisées en informations permanentes (son nom, sa langue


35<br />

Etat de l’art<br />

maternelle,…) et ses caractéristiques évolutives (ses centres d‟intérêts, ses connaissances,…).<br />

Les caractéristiques du contexte constituent la seconde catégorie de descripteurs, qui se<br />

composent de deux sous-catégories : les caractéristiques de la connexion et les caractéristiques<br />

de l‟environnement. Les caractéristiques de connexion sont composées des caractéristiques du<br />

dispositif, décrit tant par ses contraintes matérielles (taille de l‟écran, type de données<br />

multimédia supporté, etc.) que logicielles (plate-forme et navigateur utilisés) et de celle du<br />

réseau (type, débit,…). La description de l‟environnement comprend la localisation physique et<br />

le contexte temporel (i.e., date et heures des sessions) établis par l‟intermédiaire d‟un dispositif.<br />

Pour formaliser le PGU, (lopez et al) (Lopez-velasco, 2005) ont utilisé deux standards W3C RDF<br />

(Klyne et al., 2004) et CC/PP (Kiss, 2007). RDF permet de décrire les ressources à l‟aide d‟un<br />

ensemble de méta données. Le second langage CC/PP permet de définir plus particulièrement les<br />

capacités des dispositifs utilisés et les préférences des utilisateurs en termes de contenu.<br />

Le CWSDL (Kouadri mostefaoui et al., 2005) est proposé en vue d‟intégrer les informations du<br />

contexte au standard WSDL pour permettre l‟adaptation des services aux contextes de leurs<br />

clients.<br />

I.5.2. CBPEL et VXBPEL<br />

Dans le même objectif d‟adaptation des services aux contextes, Ghedira et al. (Ghedira et al.<br />

2005) et Koning et al. (Koning et al. 2009) proposent une extension au standard de la<br />

composition des services (BPEL) pour faire adapter un service composite aux contextes de ses<br />

utilisateurs. CBPEL est une extension du BPEL pour l‟intégration des caractéristiques du<br />

contexte. VxBPEL est une extension du BPEL en se basant sur le concept de la variabilité des<br />

services.<br />

I.5.3. Discussion<br />

Dans l‟objectif de l‟adaptation des services, plusieurs propositions ont visé l‟extension des<br />

standards associés à la technologie des services web. Dans cette optique, Les travaux (lopezvelasco<br />

et al, kouadri mostéfaoui et al., 2005) (Maamar et al., 2006) ont étendu le standard<br />

WSDL pour la prise en compte du profil de l‟utilisateur ou de son contexte pour pouvoir adapter<br />

les services. Le problème posé avec ces approches, est que les extensions apportées aux


36<br />

Etat de l’art<br />

standards sont inaccessibles et incompréhensibles aux différents stakeholders (analystes métier,<br />

architectes, développeurs, utilisateurs finals, etc.) s‟intéressant au développement des SOS, vu<br />

leur verbosité et leur bas niveau d‟abstraction. Par ailleurs, le manque de l‟automatisation de la<br />

génération de code correspondant aux extensions apportées à ces standards pénalise largement le<br />

développement des SOS adaptables, vu que le codage manuel de ces extensions est un exercice<br />

complexe, fastidieux et «error-prone ». D‟où la nécessité d‟offrir des formalismes et des<br />

notations facilement compréhensibles par les différents stakeholders et permettant<br />

l‟automatisation de la génération de code. Ce qui va permettre une meilleure productivité et une<br />

compréhension des caractéristiques des SOS par les différentes stakeholders.<br />

I.6.<br />

SOS : Approches d’adaptation dirigées par les modèles<br />

En parallèle avec l‟émergence du SOC, le développement dirigé par les modèles (MDD-Model<br />

Driven Development) a marqué l‟ingénierie logicielle en proposant une nouvelle manière pour le<br />

développement, la maintenance, l‟évolution et l‟intégration des systèmes logiciels. Le MDD est<br />

principalement axé sur les modèles comme des entités de première classe et sur la transformation<br />

de ces modèles comme activité principale.<br />

Pour concrétiser la vision MDD, l‟OMG a proposé l‟approche MDA (Model Driven<br />

Architecture). MDA est une démarche de développement qui permet la séparation des<br />

spécifications fonctionnelles d‟un système des spécifications de son implémentation sur une<br />

plateforme donnée en les décrivant par des modèles séparés en se basant sur des standards.<br />

L‟approche MDA a apporté plusieurs avantages pour le développement des systèmes<br />

logiciels (Gerber et al., 2002): (i) elle permet l‟utilisation du même PIM pour la génération des<br />

modèles sur des plates-formes différentes (ii) elle permet l‟amélioration de la portabilité et de<br />

l‟interopérabilité des systèmes via l‟utilisation des modèles. (iii) elle permet la protection de la<br />

logique métier contre les changements ou l‟évolution des technologies et (iv) elle permet la<br />

réutilisation et la composition de modèles rendant possible la construction de systèmes<br />

complexes.<br />

Pour bénéficier de l‟approche MDA pour le développement des SOS, plusieurs travaux ont été<br />

présentés (Bezevin et al., 2004) (Lopes et al., 2004) (Yu et al., 2007) (Torkman et al.,<br />

2006)(Patrsciou et al., 2004)(Gronmo et al., 2004a)(Baina et al., 2004)(Bordbar et al., 2004).<br />

L‟objectif de cette section est d‟exposer ces différents travaux de recherche qui combinent entre


37<br />

Etat de l’art<br />

deux disciplines dans le domaine du génie logiciel le MDD et le SOC. En premier lieu, nous<br />

allons présenter les concepts de base de l‟approche MDA. En deuxiéme lieu, nous allons discuter<br />

les approches MDA de développement des SOS. En troisieme lieu, nous allons présenter<br />

quelques propositions pour la prise en compte de l‟utilisateur dans le contexte du MDA pour le<br />

développement des SOS.<br />

I.6.1. Concepts et définitions<br />

L‟approche MDA est centrée modèle. Elle définit plusieurs niveaux de modèles. Ainsi, Nous<br />

distinguons : le modèle, le métamodèle et le méta-métamodèle.<br />

Le modèle est «une simplification de quelque chose qui nous permet de voir, manipuler, et<br />

raisonner sur le sujet étudié, et qui nous aide à en comprendre la complexité inhérente ». (Mellor,<br />

2004)<br />

Un métamodèle «est un modèle qui définit le langage pour exprimer un modèle » (OMG, 2003)<br />

Un métamétamodèle «est un modèle qui définit le langage pour exprimer un métamodèle. La<br />

relation entre un métamétamodèle et un métamodèle est analogue à la relation entre un<br />

métamodèle et un modèle» (OMG, 2003).<br />

Pour définir la relation entre ces différents modèles, l‟OMG a proposé l‟architecture à quatre<br />

niveaux: le niveau M0, le Niveau M1, le Niveau M2 et le niveau M3.<br />

M0 est le niveau des données réelles. Il est composé des informations que l‟on souhaite<br />

modéliser. Ce niveau est souvent considéré comme étant le monde réel.<br />

Le niveau M1 est composé de modèles d‟informations. Lorsque l‟on veut décrire les<br />

informations de M0, le MDA considère que l‟on fait un modèle appartenant au niveau<br />

M1. Typiquement, un modèle UML appartient au niveau M1. Tout modèle est exprimé<br />

dans un langage unique dont la définition est donnée explicitement au niveau M2.<br />

Le Niveau M2 est donc composé de langage de définition des modèles d‟informations<br />

appelés aussi méta-modèles. A titre d‟exemple, le métamodèle UML qui décrit le


38<br />

Etat de l’art<br />

standard UML appartient au niveau M2 ; il définit la structure interne des modèles UML.<br />

Un méta-modèle définit donc un langage de modélisation spécifique à un domaine.<br />

Le niveau M3 est composé d‟une unique entité qui est le langage unique de définition des<br />

méta-modèles, aussi appelé le méta-méta-modèle ou le MOF (Méta-Object Facility)<br />

(OMG, 2002a). Le MOF définit la structure de tous les méta-modèles qui se trouvent au<br />

niveau M2. le MOF est réflexif, c‟est à dire que la description du MOF s‟applique au<br />

MOF lui même, ce qui permet de dire que le niveau M 3 est le dernier niveau de<br />

l‟architecture. le niveau M3 correspond donc aux fonctionnalités universelles de<br />

modélisation logicielle, alors que le niveau M2 correspond aux aspects spécifiques des<br />

différents domaines, chaque aspect particulier étant pris en compte par un métamodèle<br />

spécifique.<br />

Pour le développement des systèmes logiciels, MDA définit plusieurs types de modèles.<br />

Trois types de modèles représentant et séparant entre différentes préoccupations (e.g.,<br />

métier/technologique) ont été notamment définis : le CIM(Computation Independant<br />

Modèle) , le PIM (Platform Independent Model) et le PSM (Platform Specific Model). Le<br />

CIM permet de représenter les exigences métier d‟un système. Le PIM est un modèle ayant<br />

pour objectif la description de la logique métier d‟un système indépendamment de toute<br />

plateforme ou technologie. Le PSM qui est un modèle dépendant d‟une technologie<br />

particulière, permet de représenter une implémentation d‟un système conformément à une<br />

technologie particulière.<br />

Le passage d‟un type de modèle (e.g., CIM/PIM, PIM/PSM, etc.) à un autre se fait par<br />

transformation de modèle. Une transformation de modèles est définie comme une fonction<br />

ayant comme entrée un ensemble de modèles et qui produit en sortie un ensemble de<br />

modèles. Les modèles d‟entrée et de sortie doivent être conformes à leur métamodèle.<br />

L‟exécution d‟une transformation de modèle se fait au niveau des modèles, mais elle se<br />

spécifie au niveau des métamodèles. En effet, une transformation exprime des<br />

correspondances structurelles entre les modèles sources et cibles. Ces correspondances<br />

s‟appuient sur les métamodèles de ces modèles.


39<br />

Etat de l’art<br />

I.6.2. Approches MDA de développement des SOS<br />

Dans cette section, nous présentons des travaux de recherche qui combinent entre deux<br />

disciplines dans le domaine du génie logiciel à savoir l‟ingénierie dirigée par les modèles et les<br />

approches à base de services. En premier lieu, nous allons mettre l‟accent sur les approches<br />

MDA de développement des SOS. Ainsi, plusieurs travaux ont été présentés (Bezevin et al,<br />

2004) (Lopes et al, 2004)(Skogan et al., 2004)(Yu et al, 2007) (Torkman et al., 2006) (Patrasciou<br />

et al., 2004)(Gronmo et al., 2004a) (Baina et al., 2004). Nous avons classifié ces approches en<br />

deux classes selon le formalisme ou le langage de modélisation utilisé pour l‟élaboration des<br />

PIM. En effet, deux formalismes ont émergé pour la définition des PIMs : UML comme langage<br />

et standard universel de modélisation et le profil UML EDOC (OMG, 2002d) comme une<br />

extension d‟UML pour la modélisation des applications distribuées.<br />

En deuxième lieu, nous présentons quelques propositions pour la prise en compte de l‟utilisateur<br />

dans le contexte de MDA pour le développement des SOS.<br />

I.6.2.1<br />

PIM (UML) vers services Web<br />

(Bezevin et al., 2004) ont proposé l‟application de l‟approche MDA pour le développement des<br />

applications Internet sur des plateformes services web. Ils visent la séparation des aspects métiers<br />

des aspects technologique. Pour ce faire, Ils élaborent en premier lieu un PIM qui reflète les<br />

fonctionnalités, la structure et la dynamique d‟un système loin des détails technologiques. Un tel<br />

PIM, spécifié en UML ou EDOC, est manipulé et transformé selon des règles de transformation<br />

pour créer des PSMs basés sur trois plateformes technologiques : WSDL, J2EE, et dotNET.<br />

La figure 13 illustre les différents types de transformations définis :


40<br />

Etat de l’art<br />

Figure 13–Types de transformations : modèle vers modèle et modèle vers code (Bezevin et al.,<br />

2004).<br />

Ces différents types de transformation ont été illustrés à travers un exemple illustratif « Agence<br />

de voyage ». Cet exemple illustratif est modélisé de façon neutre comme un PIM en utilisant le<br />

langage de modélisation (UML). Ce PIM est transformé premièrement à un modèle WSDL pour<br />

la génération de la description du service web crée. Ensuite, Ce PIM est transformé vers le<br />

modèle J2EE ou dotNet pour pouvoir créer le code source du service, les fichiers de<br />

configuration et les fichiers de déploiement.<br />

La figure 14 présente le PIM de l‟agence de voyage. Ce PIM est constitué de six classes<br />

implémentant les principales caractéristiques du système de l‟exemple illustratif : Customer,<br />

ServiceTravelAg, ServiceAirLines, ServiceCarHire, ServiceHotel et ServiceBank.


41<br />

Etat de l’art<br />

Figure 14–Modèle PIM de l’étude de cas « agence de voyage » (Bezevin et al., 2004).<br />

Pour transformer le PIM (en UML) vers un PSM (WSDL), Bezevin et al.(Bezivin et al., 2004)<br />

ont défini le métamodèle source qui est UML et le métamodèle cible du WSDL ainsi que les<br />

différentes correspondances existantes entre les éléments des deux métamodèles. Les<br />

métamodèles source et cible doivent être conformes au MOF. Le métamodèle source choisi est<br />

UML qui est un standard conforme au MOF. Le métamodèle WSDL est créé à partir de son<br />

schéma conformément au MOF.<br />

La figure 15 illustre les différentes correspondances identifiées entre le métamodele UML et le<br />

métamodèle WSDL.


42<br />

Etat de l’art<br />

UML metamodel<br />

Mapping<br />

WSDL metamodel<br />

ModelElement<br />

Namespace<br />

Package<br />

AssociationEnd<br />

Class<br />

Interface<br />

Attribute<br />

Operation<br />

+specification<br />

+method<br />

Method<br />

Parameter<br />

DataType<br />

WSDLElement<br />

Documentation<br />

Type<br />

+types<br />

Part<br />

0..1<br />

0..*<br />

+part<br />

P2D<br />

+message<br />

Message<br />

0..*<br />

A2T<br />

Operation<br />

+operation 0..*<br />

C2S<br />

PortType<br />

+type<br />

0..*<br />

+portType<br />

0..*<br />

+binding<br />

Binding<br />

0..*<br />

+boperations<br />

O2O<br />

BindingOperation<br />

Port<br />

0..*<br />

+port<br />

M2Bo<br />

+service<br />

Service<br />

0..*<br />

P2Part<br />

Dt2T<br />

Definition<br />

+_targetNameSpace<br />

+name<br />

Figure 15–Correspondances UML/WSDL (Bezevin et al., 2004)<br />

Après l‟identification des correspondances, Bezevin et al.(Bezivin et al., 2004) ont utilisé le<br />

langage ATL pour la définition de transformation.<br />

La figure 16 présente les correspondances possibles entre le métamodèle UML et le métamodèle<br />

Java. Ces correspondances sont réalisées par un ensemble d‟éléments de correspondances qui<br />

spécifient les éléments du métamodele source qui sont équivalents aux metamodels cible (le<br />

métamodèle Java). A partir de chaque élément de correspondance, des règles de transformation<br />

sont définies pour transformer les éléments du modèle source en éléments du modèle cible.<br />

Après l‟identification des éléments équivalents entre les métamodèles d‟UML et java, les règles<br />

de transformations associées sont définies.


43<br />

Etat de l’art<br />

UML metamodel<br />

ModelElement<br />

Mapping<br />

Java metamodel<br />

JElement<br />

Namespace<br />

P2P<br />

Package<br />

AssociationEnd<br />

Ae2F<br />

Generaliation<br />

GeneralizableElement<br />

C2Jc<br />

Class<br />

Interface<br />

Attribute<br />

Operation<br />

+specification<br />

+method<br />

Method<br />

Parameter<br />

DataType<br />

I2I<br />

A2F<br />

OM2M<br />

Pr2Pr<br />

Dt2Jpt<br />

0..*<br />

+super<br />

0..1<br />

JPackage<br />

+nested<br />

JClassifier<br />

JClass<br />

0..*<br />

+implemetedby<br />

0..*<br />

+implements<br />

JInterface<br />

JPrimitiveType<br />

JMember<br />

JField<br />

JValue<br />

JMethod<br />

+owner<br />

+jparameters<br />

0..*<br />

0..*<br />

JParameter<br />

+type<br />

+type<br />

Figure 16–Correspondances UML/Java (Bezevin et al., 2004)<br />

(Gronmo et al., 2004b) proposent une méthodologie pour développer les SOS dans le cadre de<br />

l‟approche MDA. La figure 17 illustre cette méthodologie.<br />

Une telle méthodologie définit les étapes suivantes:<br />

• Discover Web Services : Le développeur utilise un navigateur Web et un client d‟annuaire pour<br />

chercher un service Web candidat pour la composition. Il obtient une liste de services Web et les<br />

localisations de leur description (représentée en WSDL).<br />

• Import Web Service Descriptions : Le développeur importe la description du service et la<br />

traduit en UML. Le résultat est un modèle UML conforme au WSDL.


44<br />

Etat de l’art<br />

WSDL<br />

UML<br />

Model composite Web services<br />

Service<br />

modeling<br />

Workflow<br />

modeling<br />

Discover Web<br />

Services<br />

Import Web<br />

Service Description<br />

Composite Web<br />

Service-WSDL<br />

Export Web Service<br />

Description<br />

Implement Composite<br />

Web Service<br />

Publish Composite<br />

Web Service<br />

Figure 17–Méthodologie de développement des SOS (Gronmo et al., 2004a).<br />

• Model Composite Web Service : Le développeur utilise un outil UML pour réviser et intégrer<br />

les modèles importés sous forme de modèle d‟un service composé. Cette étape est composée de<br />

la modélisation de la structure du service (Service modeling) et de la modélisation du<br />

comportement du service composé (Workflow modeling).<br />

• Export Web Services Description : Le modèle du service Web composé est exporté afin<br />

d‟obtenir un document WSDL du service Web composé.<br />

• Implement Composite Web Service : Le service Web est réalisé à partir d‟un document<br />

WSDL.<br />

• Publish Composite Web Service : Finalement, le service Web composé est publié dans un<br />

annuaire. La figure 18 présente un modèle UML et son équivalent en WSDL. Selon cette figure,<br />

une Class en UML est l‟équivalent de Types en WSDL. Une Interface en UML est l‟équivalent<br />

de PortType et Binding en WSDL. Une méthode en UML est l‟équivalent d‟Operation en<br />

WSDL. Une classe stéréotypée par BusinessServices est l‟équivalent de Service en WSDL.<br />

Ensuite, Gronmo et al. (Gronmo et al. 2004b) utilisent UMT (UML Transformation Tool)<br />

(SINTEF, 2004) pour créer les règles de transformation de UML en WSDL.


45<br />

Etat de l’art<br />

BasicWFS<br />

getCapabilities()<br />

describeFeatureType()<br />

getFeature()<br />

« Interface »<br />

TransactionWFS<br />

lockFeature()<br />

transaction()<br />

« BusinessService »<br />

MyWebService<br />

CreditCard<br />

number : string<br />

expires : date<br />

Payment<br />

validate(card :CreditCard) :<br />

boolean<br />

<br />

...<br />

<br />

...<br />

<br />

<br />

...<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

...<br />

...<br />

...<br />

...<br />

...<br />

<br />

<br />

...<br />

<br />

<br />

...<br />

...<br />

...<br />

...<br />

...<br />

<br />

...<br />


46<br />

Etat de l’art<br />

WSDL<br />

EDOC PIM<br />

BPEL<br />

Functional Decomposition<br />

Web Service<br />

EDOC<br />

PIM<br />

mapping<br />

WSD<br />

L<br />

WSD<br />

L<br />

mapping<br />

Web Service 2<br />

EDOC<br />

PIM<br />

WSD<br />

L<br />

mapping<br />

Web Service N<br />

EDOC<br />

PIM<br />

BPEL<br />

BPEL<br />

BPEL<br />

Implementation Platform 1 Implementation platform 2 Implementation platform N<br />

Figure 19–Processus de transformation du framework défini (Yu et al , 2007)<br />

(1) Des PIMs (EDOC) aux PSMs (WSDL)<br />

Chaque interface de service est décrite en utilisant le standard WSDL comme une technologie<br />

pour la description du service en se basant sur un schéma XML dédié. Pour automatiser la<br />

génération de WSDL à partir du profil EDOC-un profil UML permettant la spécification d‟un<br />

système distribué – deux transformations ont été définies. La première consiste en la génération<br />

du XMLSchema à partir du Modèle de document d‟EDOC-CCA. Pour réaliser cette<br />

transformation, un certain ensemble de règles en QVT ont été définies. Pour cela, il est<br />

nécessaire, dans un premier lieu, de disposer des métamodèles source et cible et dans un<br />

deuxième lieu d‟identifier les correspondances entre leurs éléments suivant une analyse<br />

sémantique d‟équivalence. La figure 20 illustre le métamodèle source. La figure 21 définit le<br />

métamodèle cible. Le tableau 4 définit les équivalences entre les différents éléments du<br />

métamodèle source et cible ainsi que les règles de transformation définies pour implémenter des<br />

règles en QVT.


47<br />

Etat de l’art<br />

Nom de la règle Entrée Sortie<br />

Dp2pdt DataType PrimitiveDatatype<br />

String<br />

String<br />

Integer<br />

Int<br />

Float<br />

Float<br />

Decimal<br />

Decimal<br />

Boolean<br />

Boolean<br />

Date<br />

Date<br />

En2st Enumeration SimpleType<br />

Cd2ct CompositeData ComplexType<br />

Tableau 4–Correspondances Model Document/Web service (YUet al., 2007)<br />

La deuxième transformation consiste en la génération d‟autres éléments de WSDL<br />

ProcessComponent<br />

Document Type<br />

+type<br />

DataElement<br />

Protocol<br />

uses<br />

PortOwner<br />

+owner<br />

1..* +ports<br />

Port<br />

FlowPort<br />

DataType<br />

Enumeration<br />

1<br />

+enumeration<br />

+Values<br />

*<br />

EnumerationValue<br />

OperationPort<br />

ProtocolPort<br />

0..*<br />

+attrs<br />

Attribute<br />

CompositeDataType<br />

+owner<br />

+features<br />

Figure 20–Métamodèle « Document Model » (Yu etal ., 2007)


48<br />

Etat de l’art<br />

Figure 21–Métamodèle WSDL (Yu et al., 2007)<br />

Rule Input(CCA) Output (WSDL)<br />

fp2mg FlowPort Message<br />

fp2ptop FlowPort <br />

Op2pto OperationPort <br />

Pp2PPT ProtocolPort <br />

Pp2bd ProtocolPort <br />

Pp2pt ProtocolPort <br />

Pc2s PC <br />

Pc2d PC <br />

Cca2wsdl PC WSDL File<br />

Tableau 5–Correspondances CCA/WSDL (Yu et al., 2007)


49<br />

Etat de l’art<br />

(2) Des PIM (EDOC) aux PSMs (BPEL)<br />

Dans le cadre du framework défini, tous les sous PIMs définis sont implémentés comme des<br />

services qui seront composés pour construire un Système d‟Information. Ainsi, après la<br />

génération des WSDL de chaque service, vient ensuite l‟étape de la génération des modèles<br />

BPEL pour la définition de la composition des services à partir des modèles dynamiques EDOC.<br />

0..1<br />

supertype<br />

Choreography<br />

*<br />

subtypes<br />

target<br />

+incomings<br />

Node<br />

AbstractTransition<br />

-name : String<br />

+source<br />

+outcoming<br />

s<br />

PortUsage<br />

PseudoState<br />

Transition<br />

-kind :PseudoSateKind<br />

-preCondition<br />

+represents<br />

Port<br />

<br />

PseudoStateKind<br />

-name : String<br />

-isSyne :Boolean<br />

-Transactional :Boolean<br />

-direction:DirectionType<br />

-postcondtion:Status<br />

+choice<br />

+fork<br />

+initial<br />

+join<br />

+failure<br />

Figure 22–Métamodèle Choreography (YU et al., 2007)<br />

Pour réaliser cette étape, il est nécessaire de définir les métamodèles source et cible ainsi que les<br />

correspondances entre les différents éléments des métamodèles. Le métamodèle source est celui<br />

de EDOC tandis que le métamodèle cible est celui de BPEL. La figure 22 définit le métamodèle<br />

source. La figure 23 définit le métamodèle cible. Le tableau 5 définit les éléments d‟entrée et


50<br />

Etat de l’art<br />

leurs contraintes associées ainsi que leurs correspondants dans le métamodèle cible et leurs<br />

règles associées<br />

Figure 23–Métamodèle BPEL (Yu et al., 2007)<br />

Patrasciuo et al. (Patrasciuo, 2004b) ont proposé une approche pour la transformation d‟un PIM<br />

élaboré en utilisant le profil UML EDOC vers une plateforme service web et notamment la<br />

transformation du PIM EDOC vers un modèle WSDL. Le modèle source doit être conforme au<br />

métamodèle d‟EDOC, qui à son tour doit être conforme au MOF. Le métamodèle cible est celui<br />

de WSDL, qui est élaboré en se basant sur le schéma de WSDL défini dans la spécification<br />

WSDL. Dans le but de générer le modèle WSDL à partir du modèle EDOC, un ensemble de<br />

règle de transformation a été défini en utilisant le langage YATL (Yet Another Transformation<br />

language) (Patrasciuo, 2004a). Pour valider et illustrer la transformation d‟un PIM (EDOC) vers<br />

une la plateforme services web, une étude de cas concernant l‟agence de voyage a été mise en<br />

évidence. Ainsi, la démarche adoptée consiste à définir un PIM de l‟agence de voyage en<br />

utilisant le profil EDOC. Ensuite, vient l‟étape de la définition des règles de la transformation en<br />

utilisant YATL comme langage de transformation de modèle pour la génération des descriptions<br />

WSDL de l‟agence de voyage. A signaler que pour transformer un modèle EDOC vers un


51<br />

Etat de l’art<br />

modèle WSDL, Patrascuio (Patrasciuo, 2004b) définit premièrement des règles de transformation<br />

pour la génération des schémas XML nécessaires pour la définition des types de données utilisés<br />

pour la description de message WSDL. Pour ce faire, le mapping se base sur le métamodèle<br />

«Document Model» comme métamodèle source (Cf. figure 24) et sur le «XML schema» comme<br />

métamodèle cible (cf. figure 25).<br />

Figure 24–Profil “Document Model” (Patrasciuo, 2004)<br />

Ensuite, pour la génération des autres éléments WSDL, le mapping entre les éléments de EDOC<br />

et les autres éléments du métamodèle WSDL (Cf. figure 26) a été défini.


52<br />

Etat de l’art<br />

Figure 25–Métamodèle du XML schéma<br />

Figure 26–Métamodèle WSDL (Patrsciou et al., 2004)


53<br />

Etat de l’art<br />

I.6.3. Approches MDA d’adaptation des SOS<br />

L‟approche MDA a été largement utilisée dans le cadre de la prise en compte des différents<br />

aspects des besoins de l‟utilisateur final. Dans cette optique, plusieurs travaux dans la littérature<br />

ont été proposés pour la prise en compte des propriétés non-fonctionnelles, de la gestion des<br />

droits d‟accès, de la qualité de service et du contexte.<br />

L‟objectif de cette section est de présenter ces différentes propositions.<br />

I.6.3.1<br />

Approches de gestion des propriétés non-fonctionnelles<br />

Ortiz et al. (Ortiz et al. 2006a) proposent une approche dirigée par les modèles pour la prise en<br />

compte des propriétés extra-fonctionnelles. Ces dernières concernent toutes les fonctionnalités<br />

supplémentaires qui ne font pas partie des fonctionnalités principales des systèmes (le métier des<br />

systèmes) telles que les propriétés de sécurité, de loging, du temps réel, etc. Cette approche se<br />

base essentiellement sur la définition en premier lieu d‟un profil UML pour la modélisation des<br />

propriétés extra-fonctionnelles indépendamment des standards (WS-policy ou SOAP) ou des<br />

technologies (AspectJ) (Kiczales et al., 2001). Elle se base aussi sur la définition d‟un processus<br />

de transformation dans le cadre de l‟approche MDA en définissant les métamodèles sources et<br />

cibles ainsi que les règles de transformation pour l‟automatisation de la génération de code et<br />

notamment, les différentes politiques, les aspects ou du code java.<br />

Le profil UML proposé, définit essentiellement deux stéréotypes pour la modélisation des<br />

propriétés extra-fonctionnelles : le stéréotype « extrafunctional property » et le stéréotype<br />

«service component». Ce dernier permet la modélisation des services en identifiant leurs<br />

interfaces fournies et requises via des references. Le stéréotype « extrafunctional<br />

property » étend la métaclasse « operation » ou la metaclasse « interface ». Ce stéréotype (cf.<br />

figure 27) est spécialisé en quatre stéréotypes : , , ,<br />

permettant respectivement la modélisation des informations de contrôle<br />

d‟accès, des propriétés temps réel, les informations de l‟invocation d‟opération et les<br />

informations de cryptage.<br />

La figure 27 présente le profil « extra-functional Property » avec ses métaclasses de base.


54<br />

Etat de l’art<br />

<br />

Operation<br />

<br />

Interface<br />

<br />

<br />

<br />

Extra-FunctionalProperty<br />

actionType : ActionType<br />

optional : Boolean<br />

ack : Boolean<br />

policyID : String<br />

policyDoc : String<br />

<br />

ActionType<br />

before<br />

after<br />

instead<br />

none<br />

Figure 27–Profil «Extra- functional Property » (Ortiz et al., 2006b)<br />

EFProperties<br />

<br />

Extra-functional Property<br />

<br />

Encryption<br />

<br />

Login<br />

<br />

Loging<br />

<br />

RealTime<br />

-encryptionKey : string<br />

-usersDB : string<br />

-recordFile : string<br />

-realTimeURL : string<br />

Figure 28–Stéréotype « Extra-functional property » (Ortiz et al., 2006b)<br />

Pour illustrer l‟utilisation du profil défini, une étude de cas concernant l‟E-Tourisme a été<br />

présentée. La figure 29 présente le service touristInformation. Ce service est représenté comme<br />

un composant stéréotypé serviceComponent qui fournit une interface. Pour inclure les propriétés<br />

extra-fonctionnelles au service, trois propriétés simples ont été conçues : la propriété log qui<br />

s‟applique à une opération et permet de stocker toutes les informations concernant les<br />

invocations d‟une telle opération. La propriété RealTime est requise par le client de service pour<br />

la prise en compte des propriétés temps réel lors de l‟invocation de l‟opération<br />

WetherInformation. La propriété login est utilisée pour gérer les droits d‟accès à l‟opération


55<br />

Etat de l’art<br />

«carRenting» puisqu‟il est accessible seulement aux utilisateurs qui ont un login et un mot de<br />

passe.<br />

<br />

touristServiceInterface<br />

<br />

TouristService<br />

+hotelInformation(…) :string<br />

+carRenting(…) : string<br />

+weatherInformation(…) :<br />

String<br />

<br />

actionType=after<br />

optional=false<br />

ack=true<br />

recordFile=logFL<br />

policyID=log<br />

<br />

actionType=instead<br />

optional=true<br />

ack=false<br />

realTimeURL=CNNWeathe<br />

r<br />

policyID=RealTime<br />

<br />

actionType=instead<br />

optional=false<br />

ack=true<br />

username=uName<br />

password=pw<br />

policyID=SecurityToken<br />

policyDoc=SecurityUri<br />

Figure 29–Service TouristService (Ortiz et al., 2006a)<br />

Après la modélisation de l‟application en se basant sur le profil UML défini, un processus de<br />

transformation a été défini. Ce dernier se base sur le profil défini pour l‟élaboration du PIM.<br />

Légende :<br />

CT : Conforms To<br />

Figure 30–Processus de transformation ATL (Ortiz et al., 2006a)<br />

Ensuite, ce PIM sera transformé vers les PSMs suivants : Policy Model, AOP model et SOAP<br />

Tag Model. La figure 30 présente le processus de transformation.


56<br />

Etat de l’art<br />

Le processus de transformation permet de transformer le PIM élaboré en se basant sur le profil<br />

UML. Le métamodèle de ce profil doit être conforme au MOF. Pour pouvoir le transformer vers<br />

des plateformes technologiques (aspect, SOAP Tag et Policy) dans le cadre de l‟approche MDA,<br />

il est nécessaire de définir leurs métamodèles comme le montre les figures suivante. La figure 31<br />

présente le méta modèle utilisé pour la génération des tags SOAP.<br />

SoapTagElement<br />

-name : String<br />

Package +packagess + classes PrimitiveType<br />

SoapTagClass<br />

-target : String<br />

-value : String<br />

-side : String<br />

-providerName : String<br />

Figure 31–Métamodèle cible SOAP (Ortiz et al., 2006a)<br />

La figure 32 est utilisée pour la génération des aspects. La figure 32 illustre le méta modèle<br />

utilisé pour la génération des politiques<br />

-name : String<br />

PolicyElement<br />

Package +packagess + classes<br />

PolicyClass<br />

PrimitiveType<br />

I.6.3.2<br />

-opt : String<br />

-acronym : String<br />

-target: String<br />

-targetName : String<br />

-policyRefrence: String<br />

-interface : String<br />

-service: String<br />

Figure I-32-<br />

Figure 32–Métamodèle Policy (Ortiz et al, 2006a)<br />

Approches de gestion des droits d’accès<br />

Alam et al. (Alam et al., 2007a) présentent un framework dirigé par les modèles pour la gestion<br />

de la sécurité des systèmes orientés services. La spécificité de tel framework est la gestion des


57<br />

Etat de l’art<br />

droits d‟accès des utilisateurs non pas au niveau technologique mais au niveau modèle métier,<br />

c'est-à-dire à un haut niveau d‟abstraction. Pour ce faire, le framework se base principalement sur<br />

un profil UML appelé SECTET-UML et sur un langage spécifique au domaine appelé SECTET-<br />

PL pour l‟élaboration des modèles métiers tout en y associant les informations des droits d‟accès<br />

des utilisateurs. Le framework permet dans un deuxième lieu la génération de politiques d‟accès<br />

ciblant une plateforme technologique particulière à savoir le XACML.<br />

SECTET-UML (Hafner et al., 2009) est un profil UML permettant la modélisation des services<br />

et de leurs interfaces, des informations échangées entre services ou entre clients de services ainsi<br />

que les droits d‟accès statiques. Ce profil définit un ensemble de stéréotypes étendant des<br />

métaclasses UML comme le montre le tableau 6. Ces différents stéréotypes sont utilisés pour<br />

l‟élaboration de quatre modèles définis dans le cadre de ce framework : le modèle des interfaces,<br />

le modèle des documents, le modèle des droits d‟accès et le modèle des rôles.<br />

Le modèle des interfaces (Interface Model) définit un ensemble d‟opérations abstraites fournies<br />

par chaque service à ses clients.<br />

Le modèle des documents (Document Model) permet de décrire les différents types de données<br />

échangés entre les différents partenaires dans le cadre d‟un SOS.<br />

Stereotype<br />

Metaclase UML<br />

Package<br />

Package<br />

<br />

Interface<br />

<br />

Package<br />

<br />

Class<br />

<br />

Class<br />

Package<br />

<br />

Attribute<br />

<br />

Class<br />

<br />

Interface<br />

<br />

Package<br />

Constraint<br />

Tableau 6–Stéréotypes du profil SECTET-UML (Alam et al., 2008)<br />

Le modèle de rôles (Role Model) permet de décrire les différents rôles ainsi que les droits<br />

d‟accès y associés en se basant sur les diagrammes de classes UML.<br />

Le profil SECTET-UML ne permet de modéliser que les droits d‟accès statiques, il ne permet<br />

pas la gestion des droits d‟accès dynamique. Pour faire face à cette lacune, le langage spécifique


58<br />

Etat de l’art<br />

au domaine SECTET-PL est défini. SECTET-PL associé au profil SECTET-UML , est un<br />

langage à base de prédicats inspiré du langage OCL qui permet d‟exprimer des politiques des<br />

droits d‟accès dynamiques indépendamment des technologies.<br />

SECTET-UML et SECTET-PL permettent d‟exprimer les droits d‟accès des différents<br />

utilisateurs d‟un système orienté service loin de toute technologie. Pour cibler une technologie<br />

particulière, des règles de transformations QVT ont été définies pour la génération des politiques<br />

d‟accès XACML. Ces transformations ont été effectuées en se basant sur les métamodèles des<br />

différents modèles ainsi que le métamodèle de la technologie cible à savoir la technologie<br />

XACML. La figure 33 montre le métamodèle des différents modèles définis au niveau PIM. La<br />

figure 34 illustre le métamodèle XACML.<br />

Figure 33–Métamodèle de SECTET-UML(Hafner et al.,2009)


59<br />

Etat de l’art<br />

Figure 34–Métamodèle XACML<br />

Pour la génération des politiques d‟accès XACML, le framework adopte deux transformations :<br />

une transformation modèle à modèle et une transformation modèle à code.<br />

I.6.3.3 Approches de gestion de la qualité de services<br />

D‟ambrogio et al. (D‟ambrogio, 2007) proposent une extension du standard WSDL appelé Q-<br />

WSDL pour la gestion des propriétés de la qualité des services requise par chaque client de<br />

service. Cette extension du standard WSDL est effectuée en se basant sur les standards et les<br />

principes de l‟approche MDA. Q-WSDL est utilisé principalement pour :<br />

Spécifier les exigences de la qualité de services associée aux différents services<br />

composant un système donné.<br />

Ajouter les propriétés de la qualité de services lors de la recherche des services web dans<br />

un annuaire UDDI.<br />

Définir les SLS (Service Level Specification) lors de l‟établissement des SLA (Service<br />

Level Agreement)


60<br />

Etat de l’art<br />

Automatiser la transformation des descriptions WSDL vers des descriptions Q-WSDL<br />

Supporter la transformation des modèles UML vers des descriptions WSDL.<br />

Dans l‟objectif de produire des documents Q-WSDL, un processus se composant d‟un ensemble<br />

d‟étapes a été défini. Ce processus se base principalement sur les modèles et les transformations<br />

des modèles comme le montre la figure 35.<br />

MOF<br />

Model<br />

<br />

Meta-Metamodel Layer<br />

WSDL<br />

XML<br />

Schema<br />

XMI<br />

WSDL<br />

Metamodel<br />

Metamodel<br />

transformation<br />

Q-WSDL<br />

Metamodel<br />

XMI<br />

Q-WSDL<br />

XML<br />

Schema<br />

Metamodel layer<br />

WSDL<br />

Metamodel<br />

WSDL<br />

Metamodel<br />

Model Layer<br />

Q-WSDL<br />

Model<br />

Q-WSDL<br />

Metamodel<br />

Figure 35–Processus de développement dirigé par les modèles (D’ambrogio, 2007)<br />

La première étape de ce processus consiste à élaborer le métamodèle de WSDL en s‟inspirant du<br />

schéma de WSDL. Cette étape se base sur des règles XMI (OMG, 2002b) et peut être<br />

automatisée entièrement.<br />

La deuxième étape du processus consiste en la définition d‟une extension du métamodèle WSDL<br />

pour définir le métamodèle de Q-WSDL en intégrant les propriétés de qualité de service telles<br />

que la performance, la disponibilité, le débit, etc. Le métamodèle Q-WSDL a été défini en<br />

s‟inspirant principalement de deux profils UML : UML Profile for QoS and fault tolerance<br />

(OMG, 2005a) et UML Profile for Schedulability, Performance and Time (OMG, 2005b). Il est<br />

utilisé pour faciliter la transformation d‟un modèle WSDL vers un modèle Q-WSDL dans le<br />

cadre de l‟approche MDA via la définition d‟un ensemble de règles de transformation. La<br />

troisième étape définie dans le cadre de ce processus est la génération des documents Q-WSDL<br />

suivant le métamodèle de Q-WSDL.


61<br />

Etat de l’art<br />

I.6.3.4<br />

Approches d’adaptation au contexte<br />

Dans le cadre de l‟approche MDA, plusieurs approches ont été proposées pour le<br />

développement des SOS contextuels. Ainsi, (Sheng et al., 2005) ont défini un profil UML<br />

appelé ContextUML pour la formalisation et la conception des SOSs contextuels. ContextUML<br />

se fonde sur un ensemble de stéréotypes (e.g., Context, ContextSource, ContextService,<br />

ContextServiceCommunity, ContextServiceCommunity, CAMechanism, etc. ) permettant d‟aider<br />

les concepteurs à l‟élaboration des modèles contextuels.<br />

Dans le même objectif que (Sheng et al., 2005), Maamar et al.(Maamar et al., 2006) ont défini<br />

une approche dirigée par les modèles pour le développement des SOSs contextuels. Selon<br />

Maamar et al.( Maamar et al., 2006), cette approche se diffère notamment de la proposition de<br />

(Sheng et al., 2005), en trois points : (i) la proposition de Maamar et al. étend les spécifications<br />

associées à la technologie des services web au niveau métamodèle (ii) l‟approche définie, traite<br />

les caractéristique du contexte de façon générique (ii) les caractéristiques du contexte sont prises<br />

en compte tout au long du cycle de vie du service, (e.g., définition, publication, invocation).<br />

L‟approche proposée se fonde essentiellement sur deux éléments : le premier élément est un<br />

profil UML appelé, lui aussi, ContextUML permettant la modélisation des SOS contextuels.<br />

Ce profil définit les stéréotypes suivants : Subject, CompositeSubject, AtomicSubject, Context,<br />

Visibilty, Visibility, VisibilityConstraint, Action et Description. La figure 36 présente le<br />

métamodèle du profil contextUML.<br />

Figure 36–Métamodèle ContextUML (Maamar et al., 2006)


62<br />

Etat de l’art<br />

I.6.3.5<br />

Discussion<br />

L‟ingénierie logicielle dirigée par les modèles et la technologie des services web ont émergé<br />

récemment pour le développement des SOS complexes et à large échelle. Le fait de combiner<br />

entre ces deux approches apporte plusieurs avantages, entre autres : l‟amélioration de la<br />

productivité, la facilitation de l‟évolution aussi bien technologique que métier, l‟agilité des<br />

systèmes et leur portabilité et interopérabilité.<br />

Nos constats sur l‟utilisation de l‟approche MDA pour le développement des SOS peuvent se<br />

résumer comme suit :<br />

l’absence d’un langage standard et unique pour l‟élaboration des PIM. En fait,<br />

plusieurs formalismes, profils UML et DSL, ont été proposés pour la description des<br />

PIM. Dans cette perspective, nous constatons l‟utilisation d‟UML (Bézévin et al., 2006)<br />

(Gronmo et al., 2004b), d‟EDOC( Patrasciuo, 2004) (Bézivin et al., 2004) (Yu et al.,<br />

2007), du DSL SECTET-PL(Alam et al., 2007a), d‟un profil UML à base de SCA(Ortiz<br />

et al., 2006a) (Ortiz et al., 2006b)et du profil pour la Qos (D‟amborogio et al., 2007).<br />

L’absence d’un langage de transformation unique pour la définition de transformation<br />

malgré la standardisation par l‟OMG de QVT comme un langage de transformation de<br />

modèles. Dans la littérature, plusieurs autres langages ont été utilisés tels que ATL<br />

(Bézévin et al., 2004) (Ortiz et al., 2006a), YATL(Patrasciou et al., 2007) ou QVT( Yu et<br />

al., 2007).<br />

Certaines approches permettent la prise en compte de l’utilisateur final au niveau PIM. Dans<br />

cette optique, (Alam et al, 2007a) proposent un DSL (SECTET-PL) permettant la modélisation<br />

des droits d‟accès des utilisateurs le plus tôt dans le cycle de développement des SOS. Ensuite,<br />

une automatisation de la génération des politiques XACML via un ensemble de règles de<br />

transformations. De telles politiques permettent la gestion des droits d‟accès des utilisateurs<br />

interagissant avec le service. Dans le même objectif, c‟est à dire, la prise en compte de<br />

l‟utilisateur final, D‟ambrogio permet la description de la Qos requise en utilisant le profil UML.<br />

Ensuite, et en s‟inscrivant dans le carde des standards et concepts MDA, une génération de code<br />

ciblant le QWSDL (D‟ambrogio, 2007), une extension de WSDL pour la gestion de la Qos<br />

requise par les différents utilisateurs de services. Quant à (Ortiz et al., 2006a), ils proposent une


63<br />

Etat de l’art<br />

approche MDA pour la prise en compte des propriétés non fonctionnelles (sécurité, temps réel,<br />

loging, etc). Cette approche se fonde principalement sur la description des propriétés non<br />

fonctionnelles en se basant sur un profil UML à base de SCA pour la description des propriétés<br />

non fonctionnelles au niveau PIM, ensuite une génération de code ciblant les plates-formes<br />

technologiques (Aspect, SOAP, politiques, JAX-RPC). L‟approche définie par (Maamar et al.,<br />

2007) se base sur le profil contextUML comme formalisme pour la spécification des<br />

caractéristiques du contexte. Cette approche ne traite pas la génération automatique du code<br />

selon les principes et les standards de l‟approche MDA.<br />

I.7.<br />

Synthèse générale<br />

Les travaux présentés dans ce chapitre «Etat de l‟art» s‟articulent autour de trois axes principaux:<br />

(i) les approches de modélisation des systèmes orientés services<br />

(ii) les approches d‟adaptation des SOSs<br />

(iii) les approches de développement dirigées par les modèles des SOSs.<br />

Les approches de modélisation ont défini des formalismes qui visent la spécification des SOSs<br />

indépendamment des technologies (dotNet, JWSDP, etc.) et des standards (SOAP, WSDL,<br />

UDDI, BPEL4WS, etc.). La définition de ces formalismes est d‟une importance capitale pour la<br />

maitrise de la complexité inhérente au développement des SOSs.<br />

En ce qui concerne les approches d‟adaptation des services, plusieurs propositions ont vu le jour.<br />

Elles ont visé la prise en compte des différentes dimensions des besoins de l‟utilisateur final. De<br />

telles préoccupations concernent particulièrement le contexte de l‟utilisateur, la Qos, la gestion<br />

des droits d‟accès ainsi que les propriétés non-fonctionnelles.<br />

Les approches MDA de développement des SOSs ont pour objectif de profiter des avantages de<br />

MDA (e.g., amélioration de la productivité, capitalisation des modèles métiers, amélioration de<br />

la portabilité et de l‟interopérabilité). Ces approches se fondent sur les concepts et les standards<br />

de l‟approche MDA pour la génération du code automatiquement à partir des modèles métiers.


64<br />

Etat de l’art<br />

Le tableau 7 suivant présente une synthèse des différentes approches étudiées dans le cadre de<br />

cet état de l‟art. Nous avons défini quatre critères pour faire comparer ces différentes approches :<br />

le formalisme/langage de modélisation utilisé pour la spécification des SOS, la prise en compte<br />

de l‟utilisateur (Oui, Non explicite), le niveau de prise en compte de l‟utilisateur (Le niveau PIM<br />

ou le niveau PSM), la préoccupation prise en compte de l‟utilisateur (Contexte, Droits d‟accès,<br />

Profils de l‟utilisateur, etc.) et aussi le critère de la génération automatique de code.<br />

approche<br />

Stojanovic et<br />

al.(Stojanovic<br />

et al, 2004)<br />

Zhang et<br />

al.(Zhang et<br />

al., 2006)<br />

Biesegel et<br />

al.(Biesegel<br />

et al., 2005)<br />

Johnston<br />

(LÓPEZ<br />

SANZ ET<br />

AL., 2008 )<br />

SoaML(OM<br />

G, 2009)<br />

Formalisme de<br />

modélisation<br />

UML, service<br />

component<br />

Profil UML<br />

pour SOA<br />

SoaML<br />

Automatisation<br />

de génération<br />

de code<br />

La prise en<br />

compte de<br />

l‟utilisateur<br />

Le niveau<br />

de prise en<br />

compte des<br />

utilisateurs<br />

Oui Non -- --<br />

Oui Non explicite -- --<br />

Préoccupation(<br />

s) prise(s) en<br />

compte<br />

(Fuchs ,<br />

2004)<br />

(Benslimane<br />

et al., 2005)<br />

(Maamar et<br />

al., 2006)<br />

(Sheng et al.,<br />

2005)<br />

(Lopezvelasco<br />

et<br />

al.,2005)<br />

(kouadri<br />

mostéfaoui et<br />

al., 2006)<br />

Pas de<br />

formalisme<br />

Non Oui PSM --<br />

SCD Non Oui PIM Contexte<br />

ContextUML Non Oui PIM Contexte<br />

ContextUML Non Oui PIM Contexte<br />

-- Non Oui PSM Contexte


65<br />

Etat de l’art<br />

VPL UML Oui Oui PIM Droits d‟accès<br />

Tao tao et al.,<br />

2007)<br />

Machine à<br />

états<br />

Non Oui PIM Profil de<br />

l‟utilisateur<br />

Chang et al. Notation<br />

spécifique<br />

Non Oui PIM Profil de<br />

l‟utilisateur<br />

( Bézivin et UML/EDOC Oui Non explicite -- --<br />

al., 2004<br />

(Patrasciou EDOC Oui Non explicite -- --<br />

al., 2004)<br />

(Gronmo et UML Oui Non explicite -- --<br />

al., 2004a)<br />

(Yu et al., EDOC Oui Non -- --<br />

2007)<br />

(Ortiz et al.,<br />

2007)<br />

Profil UML Oui Oui PIM Aspects non<br />

fonctionnels<br />

Alam (Alam SECTET-PL Oui Oui PIM Droits d‟accès<br />

et al. 2007a)<br />

(Alam et al.<br />

2007b)<br />

(D‟ambrogio<br />

et al., 2007)<br />

Non défini Oui Oui PIM Qos<br />

Tableau 7–Synthèse des différentes approches étudiées<br />

Comme nous le montre le tableau, il n‟y a aucune approche d‟ingénierie des SOSs adaptables qui<br />

définisse un formalisme/langage prenant en compte le profil de l‟utilisateur ou de son contexte<br />

tout en permettant la génération automatique du code conformément aux principes et standards<br />

de l‟approche MDA. La majorité de ces propositions ne se fondent pas sur des<br />

formalismes/notations adaptés à la spécification des SOSs Adaptables. En outre, elles ne<br />

permettent pas la génération automatique du code en respectant les standards de l‟approche<br />

MDA.<br />

Plus concrètement, l‟approche définie par (Maamar et al., 2005)(Benslimane et al. 2005) et<br />

l‟approche définie par (Fink et al., 2003) ne permettent pas la génération automatique de code.<br />

En ce qui concerne l‟approche définie par (Fuchs, 2004) qui se base sur les vues pour<br />

l‟adaptation des services aux types des utilisateurs (Interne/Externe), elle ne définit aucun<br />

formalisme pour la spécification des SOSs à un haut niveau d‟abstraction. Une telle approche<br />

prend en compte l‟utilisateur tard dans le cycle de développement, c‟est à dire au niveau code.


66<br />

Etat de l’art<br />

Les approches à base de la variabilité de service (Chang et al., 2007a) permettent le<br />

développement des SOSs adaptables en prenant en compte le profil de l‟utilisateur tout au long<br />

du cycle de développement. Cependant, cette proposition ne définit aucun formalisme pour la<br />

spécification des SOSs adaptables et elles ne permettent pas la génération automatique de code.<br />

L‟approche d‟adaptation à base du concept du service différencié (Tao et al., 2007) se base sur<br />

les machines à états finis pour la prise en compte des profils des utilisateurs interagissant avec le<br />

service. Cette approche prend en compte l‟utilisateur le plus tôt dans le cycle de développement.<br />

Toutefois, cette approche ne fournit aucun formalisme qui vise la représentation de la structure<br />

statique d‟un SOS. De plus, elle ne permet pas la génération automatique du code.<br />

Les approches qui ont visé l‟extension des standards associés à la technologies des services web<br />

tels que les travaux (lopez-velasco et al, kouadri mostéfaoui et al., 2006) (Maamar et al., 2006)<br />

pour la prise en compte du profil de l‟utilisateur ou de son contexte pour l‟adaptation des<br />

services posent plusieurs problèmes : (i)ces extensions ne sont pas accessibles et<br />

incompréhensibles aux différents stakeholders s‟intéressant au développement des SOSs vu leur<br />

verbosité ainsi que leur bas niveau d‟abstraction (ii) le manque de l‟automatisation de la<br />

génération de code correspondant aux extensions apportées à ces standards pénalise largement le<br />

développement des SOSs adaptables vu que le codage manuel de ces extensions est un exercice<br />

complexe, fastidieux et «error-prone». Par conséquent, il est nécessaire d‟offrir des formalismes<br />

et des notations facilement compréhensibles par les différents stakeholders et permettant<br />

l‟automatisation de la génération de code. Ce qui permet l‟amélioration de la productivité et une<br />

meilleure compréhension des SOS par les différentes stakeholders.<br />

Contrairement aux approches d‟adaptation, les approches de modélisation des SOSs ont défini<br />

différents formalismes pour la spécification des SOSs telles que les travaux à base de Service<br />

Component (Stojanovic et al, 2004) (Zhang et al., 2006), à base de Service Component<br />

Architecture (Biesegel et al., 2005) et à base de profils visant la modélisation des SOSs(Johnston<br />

et al., 2006) (LÓPEZ SANZ ET AL., 2008 et al., 2006) (Zeid et al.,2004). De telles approches<br />

ne prennent pas en compte l‟utilisateur final explicitement au début du cycle de développement.<br />

Les approches définies dans le cadre de MDA permettent l‟automatisation de la génération du


67<br />

Etat de l’art<br />

code. Toutefois, ces approches adoptent des formalismes qui ne sont pas adaptés à la<br />

spécification des SOSs. Elles se fondent sur le langage UML ou le profil EDOC. Or, ces deux<br />

formalismes ne sont pas définis pour la modélisation des systèmes orientés services. En outre, ils<br />

ne permettent pas la prise en compte de l‟utilisateur au niveau PIM.<br />

Concernant les approches MDA de développement des SOSs tout en prenant en compte<br />

l‟utilisateur final, plusieurs propositions ont été définies. Ainsi, pour la prise en compte de la<br />

qualité de service, D‟ambrogio (D‟ambrogio, 2007) s‟est basé sur un profil UML pour la<br />

spécification de la Qos. Le formalisme défini ne permet pas la spécification des SOS. Il se<br />

focalise seulement sur la représentation des caractéristiques de la qualité de service. L‟approche<br />

définie par (Alam et al., 2007a) (Alam et al. 2007b) se fonde sur un DSL dédié pour la gestion<br />

des droits d‟accès. Elle ne définit aucun formalisme pour la spécification des aspects statiques et<br />

dynamiques d‟un SOS. Quant à l‟approche définie par (Maamar et al., 2007), elle définit le<br />

profil contextUML comme formalisme pour la spécification du contexte. Cette approche<br />

n‟adopte pas les standards de l‟approche MDA pour la génération du code.<br />

L‟approche définie par (Ortiz et al., 2006a) traite les aspects non-fonctionnels (temps réels,<br />

login, etc). Certes, l‟approche permet la génération automatique du code suivant les standards et<br />

les principes de l‟approche MDA, cependant le profil défini ne permet pas la prise en compte du<br />

profil de l‟utilisateur mais elle prend en compte uniquement des aspects non fonctionnels.<br />

Pour répondre à la problématique de l‟ingénierie des systèmes orientés services, d‟une part, et<br />

l‟adaptation de tels systèmes à leurs utilisateurs finals, d‟autre part, notre travail de thèse cible à<br />

proposer une approche d‟ingénierie dirigée par les modèles pour le développement des SOSs<br />

adaptables. Une telle approche se base sur :<br />

(i) Un profil UML pour la modélisation et la spécification de ces systèmes tout en prenant en<br />

compte l‟utilisateur le plus tôt dans le cycle de développement. Ce profil définit les différents<br />

éléments de modélisation capables de représenter les différents artefacts d‟un SOS adaptables.<br />

(ii)Un processus de développement définissant les phases, les activités, les artefacts pour le<br />

développement des SOSs Adaptables.


68<br />

Etat de l’art<br />

(iii)Un outil logiciel défini dans le cadre de l‟approche MDA, permettant la génération du code à<br />

partir des modèles métier via un ensemble de règles de transformation.<br />

Dans le chapitre suivant, nous présentons notre profil UML défini pour la modélisation des SOSs<br />

adaptables. Ce profil constitue le premier élément de notre approche d‟ingénierie des SOSs<br />

adaptables.


69 VSoaML : Un profil UML de modélisation des systèmes orientés services adaptables<br />

II. VSoaML : Un profil UML de modélisation des systèmes orientés<br />

services adaptables<br />

II.1. Introduction<br />

La modélisation joue un rôle fondamental dans la maitrise de la complexité inhérente au<br />

développement des systèmes logiciels. Actuellement, la modélisation s‟est positionnée au centre<br />

du cycle de développement de ces systèmes notamment avec l‟émergence du paradigme MDD<br />

(Model Driven Development) et plus particulièrement de l‟approche MDA. MDA définit une<br />

panoplie très complète de standards et de technologies permettant la facilitation du<br />

développement, de l‟intégration, de l‟évolution et de la maintenance des systèmes en considérant<br />

les modèles comme des entités de première classe dans le processus du développement du<br />

logiciel. Dans le contexte du MDD, les modèles apportent plusieurs avantages, entre autres : (i)<br />

la facilitation de communication entre les différents stakeholders s‟intéressant au développement<br />

d‟un projet informatique (ii) l‟amélioration de la productivité en permettant la génération<br />

automatique du code à partir des modèles métiers de haut niveau (iii) la facilitation de<br />

l‟évolution (technologique ou métier) et de la maintenance.<br />

Pour tirer bénéfice des modèles dans le développement des systèmes logiciels dans le cadre du<br />

SOC, plusieurs approches de modélisation ont été proposées pour la spécification des Systèmes<br />

Orientés Services indépendamment des standards (WSDL, BPEL) et des plates-formes<br />

d‟implémentation (dotNet, J2EE, etc.), comme nous l‟avons présenté dans le chapitre I. En effet,<br />

le développement des systèmes orientés service est généralement basé sur la technologie des<br />

services web qui fournit une infrastructure incluant les standards WSDL, SOAP, UDDI et<br />

BPEL4WS lesquels permettent respectivement la description, l‟invocation, la<br />

découverte/publication et la composition de services. Certes, les technologies et les standards<br />

sont très importants pour l‟implémentation et le déploiement de tels systèmes, mais ils sont<br />

insuffisants pour le développement des systèmes d‟informations d‟entreprises complexes et<br />

distribués, vu que les différents stakeholders (les analystes métiers, les architectes, les utilisateurs<br />

finals, les développeurs, etc.) n‟ont pas forcément de connaissances techniques.


70 VSoaML : Un profil UML de modélisation des systèmes orientés services adaptables<br />

Par conséquent, il est nécessaire d‟avoir un formalisme/notation, à l‟instar de UML pour les<br />

approches orientées objets permettant de représenter les services et de leur chorégraphie à un<br />

haut niveau d‟abstraction pour qu‟ils soient compréhensibles par les différents stakeholders<br />

s‟intéressant au développement d‟un système à base de services.<br />

Par ailleurs, la prise en compte de l‟utilisateur final est devenue une préoccupation majeure dans<br />

le développement des systèmes orientés services surtout avec l‟émergence de l‟informatique<br />

sensible au contexte (Dey, 2000). Dans cette optique, plusieurs approches ont été proposées<br />

visant la prise en compte des différentes dimensions des besoins des utilisateurs finals. De telles<br />

approches se basent sur de nouveaux concepts (Toa et al., 2007) (Bouguettaya et al., 2009) de<br />

nouvelles architectures (Rolland et al., 2007) (Chang et al., 2006) ou de nouvelles technologies<br />

(Kouadri Mostefaoui et al., 2005)(Lopez-velasco et al., 2005)(Keidl et al., 2004). Ces approches<br />

ne définissent pas les formalismes et notations pour la prise en compte assez tôt de l‟utilisateur<br />

final dans le cycle de développement des systèmes orientés services.<br />

Dans la perspective de la modélisation des systèmes orientés services, d‟une part, et la prise en<br />

compte de l‟utilisateur final, d‟autre part, nous proposons, dans le cadre de ce chapitre, un profil<br />

UML pour la modélisation des systèmes orientés services adaptables aux différents types<br />

d‟utilisateurs. Ce profil appelé VsoaML (View based Service Oriented Architecture Modeling<br />

Language) se base principalement sur le concept de services multivues. Le service multivues<br />

(Kenzi et al., 2008) est une entité de modélisation de première classe capable de représenter les<br />

besoins des utilisateurs et leurs exigences au plus tôt dans le cycle de développement des<br />

systèmes orientés services. Il permet la capture des besoins des utilisateurs et de leurs exigences<br />

tout en séparant leurs préoccupations fonctionnelles. Pour ce faire, le service multivues fournit,<br />

en plus des interfaces simples qui caractérisent le service, des interfaces de service capables de<br />

décrire les capacités suivant le profil de l‟acteur interagissant avec le service.<br />

En plus du concept de service multivues, le profil VSoaML définit différents stéréotypes dans<br />

l‟objectif de spécifier et modéliser les aspects structurels et comportementaux des systèmes<br />

orientés services adaptables aux différents types d‟utilisateurs. VSoaML permet de représenter<br />

les services constituant un SOS, leurs interfaces, leurs opérations ainsi que leurs messages<br />

d‟entrée/sortie. Il permet aussi de modéliser les différents processus métiers comme des


71 VSoaML : Un profil UML de modélisation des systèmes orientés services adaptables<br />

collaborations de services pour répondre à des exigences complexes auxquels un seul service ne<br />

peut pas répondre.<br />

Ce chapitre est organisé comme suit : La section 2 décrit notre étude de cas concernant un<br />

système d‟enseignement à distance. La section 3 présente le concept de service multivues comme<br />

un élement clé de notre approche. La section 4 illustre les différentes couches d‟abstractions que<br />

nous avons définies pour la spécification des SOSs adapatables en se basant sur le service<br />

multivue. La section 5 présente notre profil VSoaML pour la modélisation des systèmes orientés<br />

services en définissant les stéréotypes de ce profil ainsi que son métamodèle. La section 6<br />

présente la modélisation du système d‟enseignement à distance en utilisant notre profil VSoaML.<br />

II.2. Exemple illustratif : Le système d’enseignement à distance<br />

Notre étude de cas est une version simplifiée d‟un Système d‟enseignement à distance (DLS-<br />

Distance Learning System) (Nassar et al., 2005). Notre objectif est d‟utiliser ce système tout en<br />

l‟étendant avec des nouvelles fonctionnalités inspirée du systéme d‟enseignement à distance<br />

Moodle (http://docs.moodle.org/fr/Accueil). Ce système est en interaction potentiellement avec<br />

trois acteurs : l‟étudiant, l‟enseignant et l‟administrateur. Pour chaque acteur, il fournit les<br />

fonctionnalités qui correspondent à ses besoins. Ainsi, le système fournit les fonctionnalités<br />

nécessaires à l‟étudiant pour faire son inscription. Il lui permet de suivre les formations,<br />

d‟accéder aux exercices, de poser les questions, de consulter les projets d‟une formation donnée,<br />

de faire des quiz et d‟envoyer des messages aux forums de discussion spécifiques à une<br />

formation donnée, de passer les examens, de télécharger le sujet des examens, de poser les<br />

questions de compréhension et de consulter ses notes. Il permet aussi aux étudiants de<br />

télécharger les documentations nécessaires (fichiers pdf, audio/video, etc).<br />

Quant à l‟enseignant, il utilise le système pour créer des cours, pour répondre aux questions des<br />

étudiants, pour proposer des exercices et pour répondre aux messages des forums de discussion.<br />

Il utilise aussi le système pour charger les documents concernant une formation spécifique ainsi<br />

que pour la mise à jour ou la suppression des contenus des cours.<br />

Le système permet à l‟administrateur de gérer les inscriptions des étudiants, de fixer les frais


72 VSoaML : Un profil UML de modélisation des systèmes orientés services adaptables<br />

d‟inscription aux différentes formations et de décider des inscriptions des étudiants. L‟acteur<br />

administrateur utilise le système pour fixer les frais d‟une formation donnée, pour gérer le<br />

calendrier d‟une formation et pour affecter les responsables des formations. Il permet à<br />

l‟enseignant de proposer un examen et de répondre aux questions des examens.<br />

La figure 37 illustre les différents cas d‟utilisation de ce système.<br />

II.3. Le concept de service multivues<br />

Figure 37–Diagramme des cas d’utilisation du DLS<br />

L‟objectif de cette section est de présenter le concept de service multivues qui a été introduit<br />

comme un moyen de flexibilité et d‟adaptabilité. Pour ce faire, nous introduisons tout d‟abord le<br />

concept de vue. Ensuite, nous présentons le concept de service multivues comme une


73 VSoaML : Un profil UML de modélisation des systèmes orientés services adaptables<br />

combinaison entre le concept de vue et le concept de service.<br />

II.3.1. Le concept de vue<br />

Le concept de vue est largement utilisé dans plusieurs domaines de l‟informatique tels que les<br />

systèmes de gestion de base de données (Abiteboul et al., 1991), les systèmes de gestion des<br />

Worflows (Chebbi et al., 2006), les approches orientées objet (Coulette et al., 1996)(Kriouile et<br />

al., 1995) et tout récemment dans le domaine de la technologie des services (Fuchs, 2004)<br />

(Maamar et al., 2005).<br />

Dans le cadre de l‟utilisation des vues pour le développement des applications orientées objet,<br />

notre équipe a défini la méthode VBOOM (View Based Oriented Object Method) (Kriouile,<br />

1995) pour analyser et concevoir des applications orientées objet en se basant sur le concept de<br />

vue. VBOOM définit un processus itératif et récursif de trois phases, chacune d'elles étant<br />

composée de trois étapes. Elle possède aussi un atelier de génie logiciel appelé VBTOOL (Hair<br />

1997, Marzak 1997, Hair et al. 1998). Dans l‟objectif de situer la méthode VBOOM dans le<br />

cadre du standard UML et de faire face à ses limites (e.g., Subjectivité dans la définition des vues,<br />

Manque d'outils performants pour le support à VBOOM, etc.), un profil UML appelé VUML(View<br />

Based Unified Modeling Language) a été défini. VUML se base sur les vues. Il offre un<br />

formalisme étendant celui d‟UML et une démarche inspirée de celle de la méthode VBOOM<br />

(Nassar, 2004). L‟ajout principal à UML est le concept de classe multivues qui est composée<br />

d‟une base (partie partagée par tous les acteurs) et d‟un ensemble de vues (extensions de la base).<br />

Chaque vue correspond aux besoins spécifiques d'un acteur (utilisateur final, développeur, ...).<br />

VUML offre des mécanismes pour gérer les droits d‟accès aux classes multivues, spécialiser une<br />

classe multivues, spécifier les dépendances entre les vues, assurer la cohérence du modèle en cas<br />

de mises à jour, administrer les vues à l‟exécution, etc. En plus du concept de classe multivues,<br />

VUML introduit aussi le concept de composant multivues (El Asri, 2005) permettant de<br />

représenter une classe multivues au niveau du diagramme des composants. La spécificité d‟un<br />

composant multivues est la possibilité d‟avoir des interfaces dont l‟accessibilité et le<br />

comportement changent dynamiquement selon le point de vue de l‟utilisateur courant du<br />

système.


74 VSoaML : Un profil UML de modélisation des systèmes orientés services adaptables<br />

Dans le but d‟accompagener l‟évolution de l‟ingénierie logicielle vers le paradigme SOC, nous<br />

adoptons le concept de vue comme un moyen permettant la séparation des préoccupations<br />

fonctionnelles. Les vues permettent la mise en évidence de ce qui est attendu par un utilisateur<br />

donné. En général, les vues apportent les avantages suivants (Maamar et al., 2005) :<br />

Elles améliorent la sécurité en cachant les éléments de la spécification des<br />

services variant d‟un utilisateur à un autre.<br />

Elles fournissent une flexibilité en identifiant les spécifications de services<br />

adaptées à chaque type de client en tenant compte son profil.<br />

Elles fournissent différentes perspectives aux différents utilisateurs avec<br />

différents niveaux d‟abstraction.<br />

Dans cette thèse, nous proposons l‟utilisation des vues comme mécanisme de séparation de<br />

préoccupations fonctionnelles, de flexibilité et d‟adaptabilité.<br />

II.3.2. Le service multivues<br />

SOC a pour objectif le développement et la maintenance des applications distribuées<br />

interopérables et agiles en optimisant les délais et les coûts. SOC se base sur le concept de<br />

service comme un élément fondamental pour le développement des Applications/Solutions. En<br />

SOC, le service est défini comme un élément informatique indépendant de la plateforme et<br />

autonome (self-contained) permettant le support de la composition des applications distribuées<br />

en couplage faible facilement et à moindre coût. Chaque service possède une description qui peut<br />

être publiée dans un annuaire de service. En se basant sur cette description, un client de service<br />

peut découvrir le service qui correspond à ses besoins pour pouvoir construire des applications<br />

composites à valeur ajoutée en faisant seulement la composition des applications existantes. Les<br />

applications à base de services sont développées comme des ensembles indépendants de services<br />

qui interagissent en fournissant des interfaces bien définies avec leurs utilisateurs potentiels.<br />

En SOC, un service peut interagir avec plusieurs utilisateurs ayant chacun un profil bien<br />

déterminé. Chaque client de service avec un profil donné, a des besoins spécifiques que le<br />

service doit y répondre. Dans le but d‟assurer une large utilisation, de la flexibilité et de<br />

l‟adaptabilité, le service doit fournir les fonctionnalités requises qui correspondent aux besoins


75 VSoaML : Un profil UML de modélisation des systèmes orientés services adaptables<br />

des utilisateurs l‟invoquant. De ce fait, le problème central qui se pose, au niveau<br />

Analyse/Conception des systèmes orientés services, est comment modéliser l‟aspect<br />

multidimensionnel des besoins des utilisateurs interagissant avec le service. La figure 38 montre<br />

la diversité des types de clients qui peuvent interagir avec le service.<br />

Publish<br />

Publish<br />

Annuaire de<br />

Services<br />

Publish<br />

Publish<br />

Find<br />

Find<br />

Find<br />

Find<br />

Client de<br />

service 1<br />

Client de<br />

service 2<br />

Client de<br />

service 3<br />

Client de<br />

service M<br />

Invoke<br />

Invoke<br />

Invoke<br />

Invoke<br />

Invoke<br />

Invoke<br />

Invoke<br />

Invoke<br />

Invoke<br />

Service 1<br />

Service 2<br />

Service 3<br />

Service N<br />

Description<br />

Description<br />

Description<br />

Description<br />

Implémentation<br />

Implémentation<br />

Implémentation<br />

Implémentation<br />

Figure 38–Modèle d’interaction des services avec leurs clients<br />

Pour faire face à ce problème, nous proposons le concept de service multivues (Kenzi et al.,<br />

2007) (Kenzi et al., 2008a) (Kenzi et al., 2008b) comme une entité de modélisation de première<br />

classe. Une telle entité permet la modélisation des besoins des utilisateurs et de leurs exigences<br />

tout au début du cycle de développement des systèmes orientés services en séparant leurs<br />

préoccupations fonctionnelles. Pour ce faire, le service multivues fournit/requiert un ensemble<br />

d‟interfaces de service visuelles(ViewServiceInterface). Chaque interface de service


76 VSoaML : Un profil UML de modélisation des systèmes orientés services adaptables<br />

visuelle(ViewServiceInterface) permet de décrire les capacités du service fournies/requises<br />

suivant le profil de l‟acteur interagissant avec le service. L‟intersection des différentes interfaces<br />

visuelles constitue une interface de service de base (baseServiceInterface) qui est accessible à<br />

tous les acteurs interagissant avec le service. L‟interface ViewServiceInterface dépend de la<br />

baseServiceInterface dans le sens où les fonctionnalités de la base sont implicitement incluses<br />

dans toutes les interfaces de service vues (ViewServiceInterface). Les interfaces de service vues<br />

(ViewServiceInterface) et l‟interface de service de base (baseServiceInterface) sont regroupées<br />

dans un package que nous appelons interface de service multivue (MVServiceInterface).<br />

A la conception, un service multivues possède un ensemble d‟interfaces de service vues. A<br />

l‟exécution, un service multivues se comporte comme un service régulier avec des interfaces<br />

régulières dont la définition à un moment donné est le résultat de la combinaison des<br />

fonctionnalités incluses dans l‟interface de service de base et les fonctionnalités incluses dans les<br />

interfaces de service vues qui correspondent à l‟acteur actif.<br />

La figure 39 illustre la métamodèle de l‟interface de service multivues.<br />

Figure 39–Métamodèle de l’interface MVServiceInterface


77 VSoaML : Un profil UML de modélisation des systèmes orientés services adaptables<br />

Dans le cadre de notre cas d‟étude, nous avons identifié le service multivues Formation. Ce<br />

service multivues est en interaction avec trois acteurs : Enseignant, Etudiant et Administrateur<br />

(cf. figure 40). Chaque acteur a ses propres besoins auxquels le service doit répondre. Le service<br />

multivues est spécifié par la spécification ‘‘Formation’’. Une telle spécification contient la<br />

description de l‟interface de service de base qui reflète les fonctionnalités communes accessible<br />

aux trois acteurs qui interagissent avec le service Formation et les fonctionnalités spécifiques à<br />

chaque acteur encapsulées dans les interfaces «ViewServiceInterface». Ainsi, les trois acteurs<br />

peuvent invoquer les opérations définies dans l‟interface de service de base « Formation »<br />

composée principalement des opérations suivantes : consulterSynopsisFormation et<br />

consulterListFormation permettant respectivement aux différents acteurs d‟avoir un synopsis<br />

d‟une formation donnée et de voir la liste des cours fournis par un DLS. Par ailleurs, les<br />

interfaces "ViewServiceInterface" Formation_administrateur, "ViewServiceInterface"<br />

Formation_Etudiant et "ViewServiceInterface" Formation_Enseignant associées respectivement<br />

à l‟Administrateur, l‟Etudiant et l‟Enseignant ne sont accessibles qu‟à leurs acteurs associés.<br />

Plus précisément, l‟acteur administrateur peut invoquer seulement les opérations appartenant à<br />

"ViewServiceInterface" Formation_Administrateur. Un acteur Etudiant peut invoquer seulement<br />

les opérations "ViewServiceInterface" Formation_Etudiant et un acteur Enseignant peut<br />

invoquer seulement les opérations appartenant à l‟interface "ViewServiceInterface"<br />

Formation_Enseignant.<br />

La figure 40 montre l‟interface de service multivues du service multivues «Formation».<br />

Formation<br />

<br />

Formation_Enseignant<br />

CreerFormation()<br />

supprimerFormation()<br />

ajouterExercice()<br />

ajouterSolutionExercice()<br />

proposerProjet()<br />

poserQuestion()<br />

proposerForum()<br />

proposerTest()<br />

proposerGroupeProjet()<br />

consulterProjet()<br />

ajouterAnnounceFormation()<br />

respondreQuestions()<br />

<br />

Formation_Etudiant<br />

consulterFormation()<br />

consulterExercice()<br />

proposerSolutionExercice()<br />

posterMessage()<br />

proposerSoultionTest()<br />

consulterRessourceProjet()<br />

consulterProjet()<br />

consulterAnnounceFormation()<br />

<br />

<br />

<br />

Formation_Administrateur<br />

ajouterNouvelleFormation()<br />

ajouterAgendaFormation()<br />

ajouterAnnounceFormation()<br />

supprimerFormation()<br />

affecterResponsableFormation()<br />

<br />

<br />

Formation_base<br />

consulterSynopsisFormation()<br />

consulterListFormation()<br />

Figure 40–Interface de service multivues du service multivues «Formation »


78 VSoaML : Un profil UML de modélisation des systèmes orientés services adaptables<br />

II.4. Les couches d’abstraction d’un SOS Adaptable<br />

Un système orienté service se compose généralement de plusieurs couches. Chaque couche se<br />

base sur les fonctionnalités de la couche sous-jacente pour mener à bien sa mission.<br />

Concrètement, six couches ont été définies (Papazoglou, 2007) comme nous illustrons dans la<br />

figure 41 :<br />

La Couche Domaine métier: Cette couche permet la segmentation de l‟activité d‟une<br />

organisation donnée, en un ensemble de domaines fonctionnels. Chaque domaine fonctionnel<br />

définit un ensemble de processus métier qui partagent des ressources et des fonctionnalités et<br />

peuvent collaborer pour atteindre les objectifs de haut de niveau de l‟entreprise. Un exemple de<br />

domaines métier dans le cadre d‟une entreprise donnée, peut être le domaine fonctionnel finance,<br />

assurance, comptabilité, etc.<br />

La couche processus métier : La couche processus métier se compose d‟une multitude de<br />

processus métier associés aux différents domaines métier. Chaque processus métier définit une<br />

séquence d‟activités en vue de répondre pertinemment aux événements métier adressés à une<br />

entreprise.<br />

La couche Services métier : un processus métier se définit en termes d‟un ensemble d‟activités.<br />

Chaque activité est automatisée par l‟exécution d‟un service donné. La couche service métier qui<br />

constitue la troisième couche d‟un système orienté service se compose ainsi des différents<br />

services constituant le système et permettant de supporter les différents processus métiers de<br />

l‟entreprise. La couche services métier est la couche principale d‟un système orienté service. En<br />

effet, le service est l‟élément fondamental permettant de réaliser et d‟automatiser les différentes<br />

activités de l‟entreprise. Chaque entreprise peut être vue comme une interconnexion de services<br />

qui s‟exécutent pour atteindre les objectifs métiers de haut niveau de l‟entreprise tout en<br />

facilitant son évolution et son agilité.<br />

La couche service d’infrastructure : la couche service d‟infrastructure assure des fonctionnalités<br />

d‟infrastructure en se basant sur des services techniques de grosse granularité et réutilisable dans<br />

le cadre de plusieurs processus métiers. Elle est responsable de la provision d‟une infrastructure<br />

technique permettant le développement, la provision et la maintenance des services et des<br />

processus métier tout en facilitant leur intégration. Elle est aussi responsable de la qualité de<br />

services, de la messagerie fiable, du routage intelligent ainsi que de la supervision et la gestion


79 VSoaML : Un profil UML de modélisation des systèmes orientés services adaptables<br />

de services. Pour assurer de telles fonctions, la couche service d‟infrastructure définit plusieurs<br />

types de services : les services utilitaires, les services d‟accès, les services de management et de<br />

monitoring ainsi que les services d‟interaction. D‟un point de vue technique, les fonctionnalités<br />

de cette couche sont assurées généralement par un logiciel spécifique à savoir le bus de service<br />

Figure 41–Couches fonctionnelles d‟un SOS (Papazoglou, 2007)<br />

de l‟entreprise. En pratique, plusieurs ESB ont émergé récemment tels que Mule ESB, etc.<br />

La couche implémentation : Chaque service possède une implémentation de service. Un service<br />

fait une séparation entre la spécification de service et l‟implémentation de service. Une<br />

implémentation de service est créée selon deux scénarios. Le premier scénario consiste à<br />

développer un service en utilisant un langage de programmation donné tels que Java, C#, etc. Le<br />

deuxième scénario est l‟adaptation des applications existantes.<br />

La couche systèmes opératoires : Cette couche est utilisée par la couche « Implémentation des<br />

services à base de composant» pour l‟implémentation des processus et des services. La couche<br />

contient les systèmes existants et les applications tels que les systèmes de CRM, d‟ERP, les<br />

SGBD et les applications existantes, etc.<br />

Dans l‟objectif de maitriser la complexité du développement des systèmes orientés services<br />

adaptables aux différents types d‟utilisateurs, il est nécessaire de définir des couches<br />

d‟abstractions permettant de décrire les différents aspects (i.e., structurels ou comportementaux)


80 VSoaML : Un profil UML de modélisation des systèmes orientés services adaptables<br />

de tels systèmes. Dans cette optique, nous avons défini plusieurs couches pour la représentation<br />

des différentes perspectives adaptées aux différents stakeholders(e.g., Analyste métier,<br />

Architecte, Développeur, Utilisateur final, etc.) d‟un SOS adaptable. Chaque couche se compose<br />

d‟un ensemble de modèles qui correspondent aux besoins des différents stakeholders.<br />

Globalement, nous identifions les couches suivantes :<br />

La couche métier (Business Layer) : la couche métier est définie en se basant sur un ensemble<br />

de modèles permettant de décrire les exigences métiers. L‟objectif de cette couche est la<br />

spécification des exigences métiers. Principalement, cette couche se compose des modèles des<br />

cas d‟utilisation et des modèles BPMN. Les modèles des cas d‟utilisation permettent la<br />

formalisation des besoins des utilisateurs associés aux différents acteurs interagissant avec le<br />

système. Les modèles BPMN permettent la description des différents scénarios de réalisation des<br />

cas d‟utilisations.<br />

La couche logique : La couche logique se compose de différents modèles. Principalement, nous<br />

avons défini les modèles suivants :<br />

(1) Les modèles de services multivues (multiview services models) : Ces modèles permettent de<br />

représenter les différents services multivues composant le système. Ils constituent l‟élément<br />

central d‟un système orienté service adaptables aux différents types d‟utilisateurs. De tels<br />

modèles ont pour objectif la représentation des différents services multivues, de leurs interfaces,<br />

des entrés/sorties en termes de messages de chaque opération constituant l‟interface de services<br />

indépendamment des plateformes technologiques et des standards. Ce modèle permet aux<br />

différents stakeholders d‟un SOS adaptable aux différents types d‟utilisateurs, de comprendre sa<br />

structure.<br />

(2) Les modèles d’information : les modèles d‟informations permettent la définition des<br />

différentes structures de données échangées entre les différents services et leurs clients. En effet,<br />

chaque service possède un ou plusieurs interfaces se composant d‟un ensemble d‟opérations qui<br />

manipulent en entrée/ sorties des messages. Ces messages sont définis principalement à partir des<br />

modèles d‟informations associés à chaque système.<br />

(3) Les modèles de composition de services multivues : En SOC, un service est indépendant et<br />

autonome, mais il est composable pour la réalisation d‟un ou de plusieurs processus métiers.<br />

Les modèles de composition de services multivues visent la modélisation de la collaboration de


81 VSoaML : Un profil UML de modélisation des systèmes orientés services adaptables<br />

plusieurs services pour accomplir des objectifs métiers qu‟un seul service atomique ne peut pas<br />

atteindre. Les modèles de composition de services multivues sont définis principalement en<br />

utilisant différents diagrammes tels que les diagrammes BPMN, ou les diagrammes d‟activités<br />

UML ainsi que les diagrammes d‟états.<br />

La couche physique : La couche physique se compose des différents artefacts d‟un système<br />

orienté service adaptable selon une plateforme donnée. Il s‟agit principalement de la<br />

représentation des descriptions de services multivues, de leurs implémentations, de leurs<br />

compositions ainsi que des différents aspects non-fonctionnels tels que les politiques de contrôle<br />

des droits d‟accès XACML.<br />

La figure 42 illustre les différentes couches d‟abstraction définies ainsi que les modèles y<br />

associées.<br />

La couche métier<br />

Modèles des cas d‟utilisation<br />

Modèles BPMN<br />

La couche logique<br />

Modèles des services multivues<br />

Modèles d‟information<br />

Modèles de composition de<br />

services multivues BPMN<br />

La couche physique<br />

Composant Service 1<br />

Description<br />

XSD<br />

Composition de services BPEL<br />

Figure 42–SOS adaptable : Couches d’abstraction


82 VSoaML : Un profil UML de modélisation des systèmes orientés services adaptables<br />

Pour l‟élaboration de ces différentes couches, nous nous appuyons sur un langage de haut<br />

niveau permettant de faciliter la communication entre les différents acteurs s‟intéressant à la<br />

construction des SOS adaptables. Ce langage permet d‟exprimer les différents modèles<br />

composant chaque couche reflétant les perspectives des différents acteurs.<br />

L‟objectif des sections suivantes est de présenter notre langage pour l‟élaboration des différents<br />

modèles composant chaque couche.<br />

II.5. Le profil VSoaML<br />

L‟objectif de cette section est de présenter VSoaML (Kenzi et al., 2009), un profil UML2.0 pour<br />

la modélisation des systèmes orientés services adaptables aux différents types d‟utilisateurs. Ce<br />

profil est une extension d‟UML2.0. Il définit les différents stéréotypes étendant les métaclasses<br />

UML2.0 dans l‟objectif de spécifier et modéliser des systèmes orientés services adaptables. Nous<br />

commençons tout d‟abord par présenter une vue d‟ensemble du profil VSoaML. Ensuite, nous<br />

présentons ses différents stéréotypes ainsi que leurs métaclasses<br />

de base UML2.0. Nous<br />

décrivons chaque stéréotype en présentant sa description, ses contraintes, ses attributs et ses<br />

associations tout en l‟illustrant avec des exemples concrets.<br />

II.5.1. Le profil VSoaML : Vue d’ensemble<br />

UML est un langage de modélisation à destination d‟un grand nombre de domaines d‟application<br />

et à tous types d‟applications logicielles. Cependant, chaque domaine a des notions particulières<br />

et des besoins spécifiques qu‟UML peut supporter par le biais de ses extensions, regroupées en<br />

«Profils UML ». Un profil UML est un moyen permettant de structurer les extensions apportées<br />

au langage standard<br />

constraints).<br />

UML via ses mécanismes d‟extension (tagged values, stereotypes et<br />

Plusieurs profils UML ont été standardisés par l‟OMG tels que EDOC (Enterprise Distributed<br />

Object Computing) (OMG, 2002d) (OMG, 2005) ou UML pour CORBA (OMG, 2002c) ou<br />

UML pour le temps réel, ou encore UML pour les EJB (Enterprise Java Beans).<br />

Un profil UML est une spécialisation du méta modèle UML pour un domaine d‟utilisation<br />

particulier. Il regroupe de manière cohérente des extensions du métamodèle UML et définit leurs<br />

règles de cohérence. Les profils UML peuvent hériter d‟autres profils, avoir des dépendances<br />

entre eux, ou encore être regroupés. Un modèle UML est construit sous un profil particulier,


83 VSoaML : Un profil UML de modélisation des systèmes orientés services adaptables<br />

c‟est à dire qu‟il est élaboré relativement à un contexte qui lui apporte une sémantique<br />

spécifique.<br />

Profil VSoaML<br />

<br />

Class<br />

<br />

Property<br />

<br />

Port<br />

<br />

Message<br />

<br />

Message Attachment<br />

<br />

Service<br />

<br />

Port<br />

<br />

Connector<br />

<br />

Collaboration<br />

<br />

MVService<br />

<br />

Service Channel<br />

<br />

Service Collaboration<br />

<br />

Package<br />

<br />

Interface<br />

<br />

Service Domain<br />

<br />

MVServiceInterface<br />

<br />

ViewServiceInterface<br />

<br />

BaseServiceInterface<br />

<br />

Artifact<br />

<br />

classifier<br />

<br />

MVServiceSpecification<br />

<br />

Specification<br />

<br />

Service Provider<br />

<br />

Service Requester<br />

Figure 43–Stéréotypes de VSoaML et leurs métaclasses de base UML2.0<br />

Comme nous l‟avons vu dans l‟état de l‟art, plusieurs profils ont été proposés pour la<br />

modélisation des applications SOA (Johnston et al., 2006) (Amir et al., 2004). Ces profils


84 VSoaML : Un profil UML de modélisation des systèmes orientés services adaptables<br />

définissent un langage de haut niveau pour la modélisation des services. Néanmoins, ces profils<br />

n‟intègrent que tardivement l‟utilisateur final dans le cycle de développement des systèmes<br />

orientés services.<br />

Dans le but de la prise en compte le plus tôt possible de l‟utilisateur final dans le cycle de<br />

développement des systèmes orientés services, nous proposons le profil VSoaML. Ce profil se<br />

base principalement sur le concept de service multivues présenté dans la section 3.<br />

Le profil VSoaML définit un ensemble de stéréotypes. La définition de ces stéréotypes est<br />

inspirée des concepts de l‟architecture SOA ainsi que des profils UML définis pour la<br />

Figure 44–Métamodèle de VSoaML


85 VSoaML : Un profil UML de modélisation des systèmes orientés services adaptables<br />

modélisation des applications SOA (Johnston et al., 2006). La figure 43 illustre les<br />

différentsstéréotypes de ce profil ainsi que leurs métaclasses de base UML2.0. La figure 44<br />

illustre le métamodèle du profil VSoaML.<br />

Le tableau 8 présente succinctement les différents stéréotypes du profil VSoaML. Dans la<br />

première colonne, nous présentons chaque stéréotype du profil VSoaML. Dans la deuxième,<br />

nous présentons la métaclasse de base de ce stéréotype. La troisième colonne présente une<br />

description succincte de chaque stéréotype.<br />

Stéréotype (VSoaML) Metaclasse Description<br />

(UML)<br />

Message<br />

Class<br />

est un élément de modélisation qui<br />

définit les structures de données échangées. Il<br />

spécifie aussi la propriété “Encoding” pour spécifier<br />

l‟encodage SOAP ou RPC.<br />

MessageAttachment<br />

Property<br />

est un élément de<br />

modélisation permettant d‟indiquer si le contenu d‟un<br />

message est un attachement ou pas<br />

Service<br />

Port<br />

est un élément de modélisation qui<br />

permet de représenter un point final de<br />

communication. Un service n‟identifie pas seulement<br />

ses interfaces fournies mais peut aussi identifier ses<br />

interfaces requises.<br />

MVService<br />

Port<br />

> est un élément de modélisation qui<br />

permet de représenter un service adaptable aux types<br />

de ses clients. La spécificité d‟un service multivues<br />

est qu‟il peut fournir comme il peut requérir des


86 VSoaML : Un profil UML de modélisation des systèmes orientés services adaptables<br />

interfaces qui s‟adaptent aux profils des utilisateurs.<br />

Channel<br />

Connector<br />

est un élément de modélisation<br />

permettant de décrire une connexion entre services. Il<br />

spécifie les liaisons avec les protocoles de transport<br />

(SOAP, HTTP, JMS, etc.)<br />

ServiceCollaboration<br />

Collaboration<br />

est un élément de<br />

modélisation qui spécifie le comportement d‟un<br />

ensemble de services ou de services multivues qui<br />

coopèrent<br />

Requester Classifier est un élément de modélisation qui<br />

représente un client de service<br />

ServiceDomain<br />

Package<br />

définit un groupement logique<br />

ou physique d‟un ensemble de services<br />

Provider<br />

Class<br />

est un élément de modélisation<br />

permettant la représentation d‟un fournisseur d‟un<br />

ou de plusieurs services.<br />

ServiceSpecification<br />

Artifact<br />

est un élément de<br />

modélisation permettant la spécification des<br />

opérations et leurs messages associés qui définissent<br />

le service.<br />

BaseServiceInterface<br />

Interface<br />

est un élément de<br />

modélisation qui représente un ensemble<br />

d‟opérations qui peuvent être invoquées par tous les


87 VSoaML : Un profil UML de modélisation des systèmes orientés services adaptables<br />

acteurs interagissant avec un service donné.<br />

permet de modéliser les<br />

fonctionalités du service accessible à tous les clients<br />

de service.<br />

ViewServiceInterface Interface<br />

permet de représenter une<br />

sorte d‟interface propres à un acteur donné<br />

interagissant avec le service. ViewServiceInterface<br />

permet de modéliser les capacités de services<br />

spécifiques à un acteur spécifique interagissant avec<br />

un service donné.<br />

MVServiceInterface Package est un élément de<br />

modélisation étendant la métaclasse Package. Ce<br />

stéréotype permet de regrouper des fonctionnalités<br />

logiquement cohésives. Il se compose d‟une interface<br />

de service de base accessible à tous types de clients<br />

de services et un ensemble des interfaces de service<br />

vues accessibles uniquement par un type particulier<br />

de clients de service.<br />

ServiceOperation Operation permet de représenter une<br />

opération d‟un service modélisant une fonctionnalité<br />

fournie d‟un service donné. La spécificité de<br />

est qu‟elle manipule des<br />

données de grosse granularité ayant une valeur dans<br />

le cadre d‟un processus métier.<br />

manipule en entrée, en sortie<br />

ou en erreur des messages.<br />

MVServiceSpecification Class permet de décrire les<br />

services multivues. Ainsi, chaque<br />

MVServiceSpecification contient la description d‟une


88 VSoaML : Un profil UML de modélisation des systèmes orientés services adaptables<br />

interface de service de base accessible à tous les<br />

acteurs et il contient la description des interfaces vue<br />

associés à un type particulier d‟acteur.<br />

> Dependency Le stéréotype permet de décrire une<br />

relation d‟inclusion entre une interface de service vue<br />

(viewServiceInterface) et une interface de service de<br />

base (baseServiceInterface)<br />

Dependency Le stéréotype permet de représenter<br />

une relation de spécification entre (Service,<br />

Specification) et entre (MVService,<br />

MVServiceSpecification).<br />

Tableau 8–Stéréotypes du profil VSoaML<br />

II.5.2. VSoaML : les stéréotypes<br />

L‟objectif de cette section est de présenter chaque stéréotype constituant le profil VSoaML.<br />

II.5.2.1<br />

Le stéréotype Service<br />

Le stéréotype Service est un élément de modélisation permettant de représenter un point final de<br />

communication. Un service n‟identifie pas seulement ses interfaces fournies mais peut aussi<br />

identifier ses interfaces requises.<br />

Ce stéréotype ne peut être utilisé qu‟avec des éléments (classes, composants, systèmes, etc.)<br />

stéréotypés comme . Un service possède un attribut binding qui permet de<br />

spécifier la liaison à utiliser telle que SOAP-HTTP ou SOAP-JMS.<br />

Le stéréotype Service étend la métaclasse Port comme métaclasse de base d‟UML2.0. La Figure<br />

45 illustre la métaclasse service et ses associations.


89 VSoaML : Un profil UML de modélisation des systèmes orientés services adaptables<br />

Figure 45–Stéréotype Service<br />

La figure 46 illustre un exemple de service. Un service fournit une ou plusieurs interfaces.<br />

Chaque interface permet de représenter les fonctionnalités fournies par le service à ses clients.<br />

Agenda<br />

<br />

<br />

Agenda<br />

ajouterEvenement(e : Evenement);<br />

updateEvent(e :Evenement);<br />

supprimerEvenement(e:Evenement);<br />

Figure 46–Service Agenda


90 VSoaML : Un profil UML de modélisation des systèmes orientés services adaptables<br />

Chaque opération de service possède un message en entrée et en sortie. Un message d‟entrée<br />

permet de représenter les données manipulées par une opération de service. Un message de sortie<br />

représente les données résultat de l‟exécution d‟une opération donné. La figure 46 présente un<br />

service Agenda. Ce service fournit une interface de service Agenda qui se compose<br />

d‟opérations : ajouterEvenement, updateEvenement, supprimerEvenement. Il permet à un<br />

l‟acteur Administrateur de gérer l‟agenda des formations. Ainsi, le service permet de créer des<br />

événements, de les modifier ou de les supprimer.<br />

II.5.2.2 Le stéréotype Message<br />

L‟objectif du stéréotype Message est la spécification des informations échangées entre un service<br />

et ses clients. Ces informations concernent les données constituant une entrée/sortie d‟une<br />

opération d‟un service donné. L‟usage de ce stéréotype peut être optionnel du moment où on<br />

peut identifier les messages à partir des paramètres d‟entrés ou de sortie des opérations<br />

constituant l‟interface de service.<br />

Le stéréotype message étend la métaclasse «Class ». Il possède un attribut encoding qui permet<br />

de définir le codage de données à utiliser (SOAP-RPC, ASN, etc.).<br />

Deux contraintes ont été associées à l‟utilisation du stéréotype Message :<br />

un message ne possède pas d‟opérations<br />

un message ne possède pas de comportements.<br />

La figure 47 illustre la métaclasse Message du profil VSoaML et ses associations.


91 VSoaML : Un profil UML de modélisation des systèmes orientés services adaptables<br />

Figure 47–Stéréotype message<br />

La figure 48 montre un exemple de messages. En effet, chaque opération possède un message en<br />

entrée et un autre en sortie. L‟opération addcourse possède en entrée un message spécifiant les<br />

informations en entrée. Ce message se compose d‟un ensemble d‟attributs. Il permet de définir le<br />

nom complet du cours, la description de ce cours, un résumé, le format du cours (hebdomadaire,<br />

thématique, etc.), le module de ce cours ainsi que sa catégorie.<br />

Figure 48–Exemple d’un message<br />

II.5.2.3<br />

Le stereotype MessageAttachment<br />

Le stéréotype MessageAttachment permet d‟indiquer qu‟une partie d‟un message est un<br />

attachement. Chaque MessageAttachment a sa propre identité et il est séparé du corps du


92 VSoaML : Un profil UML de modélisation des systèmes orientés services adaptables<br />

message. Les attachements sont généralement créés et manipulés par des applications externes.<br />

Les documents Word, image, les documents pdf et des fichiers musiques sont des exemples<br />

concrets d‟attachement.<br />

Le stéréotype MessageAttachment est une spécialisation de la métaclasse Property. Les<br />

MessageAttachment sont utilisés et transmis en format binaire suivant un encodage spécifique<br />

qui est défini en utilisant l‟attribut Encoding. Cet attribut est utilisé pour fournir les informations<br />

d‟encodage d‟un attachement contenu dans un message.<br />

Le stéréotype MessageAttachment ne peut être utilisé que comme un constituant d‟un élément<br />

message.<br />

La figure 49 montre les associations de métaclasse MessageAttachment avec les autres<br />

métaclasses constituant le profil VSoaML.<br />

Figure 49–Stéréotype MessageAttachment<br />

II.5.2.4<br />

Le stéréotype Specification<br />

Le stéréotype Specification permet de définir la description des interfaces des services fournies<br />

par un service. Un service peut fournir bien évidemment plus d‟une interface. Pour chaque<br />

service, nous pouvons associer un protocole (machine à états, diagramme d‟activité, diagramme<br />

de séquence) pour spécifier l‟ordre d‟exécutions des opérations de services. Ce protocole permet<br />

de valider chaque service non uniquement structurellement mais aussi en tenant compte ses<br />

aspects comportementaux. Ce stéréotype possède une propriété « published » qui permet


93 VSoaML : Un profil UML de modélisation des systèmes orientés services adaptables<br />

d‟indiquer si le service doit être publié dans un annuaire de service. La spécification d‟un service<br />

peut contenir aussi des informations des propriétés non fonctionnelles telles que les propriétés de<br />

la qualité de service, de sécurité ou de performance.<br />

La spécification de service ne possède pas de propriétés et toutes les opérations doivent être<br />

publiques.<br />

La figure 50 illustre la métaclasse Specification ainsi que ses associations.<br />

Figure 50–Stéréotype specification<br />

La figure 51 montre un exemple d‟une spécification de service. Dans le cas des services web,<br />

une spécification de service correspond à une description WSDL. La description WSDL permet<br />

de décrire les interfaces de service, ses opérations d‟entrée et de sortie, les ports et les formats de<br />

messages.


94 VSoaML : Un profil UML de modélisation des systèmes orientés services adaptables<br />

Agenda<br />

Agenda<br />

<br />

<br />

Agenda<br />

ajouterEvenement(e :Evenement);<br />

updateEvenement(e :Evenement);<br />

supprimerEvenement(e:Evenement);<br />

Bp : Business protocol<br />

par<br />

admin: Administrateur<br />

agenda :Agenda<br />

consultEvent(course: Course);<br />

ajouterEvenement(e :Evenement)<br />

ajouterEvenement(e :Evenement)<br />

updateEvenement(e :Evenement)<br />

II.5.2.5 Le stéréotype MVService<br />

Figure 51–Exemple de stéréotype Specification<br />

Le stéréotype MVService étend le stéréotype service. La spécificité d‟un service multivues est<br />

qu‟il peut fournir comme il peut requérir des interfaces spécifiques aux différents types<br />

d‟utilisateurs interagissant avec le service. En effet, comme nous l‟avons expliqué dans les<br />

sections précédentes, chaque service multivue fournit/requiert des interfaces de service vue<br />

permettant de représenter les fonctionnalités et les capacités de services accessible uniquement<br />

par un type d‟acteur donné.<br />

La figure 52 illustre la métaclasse MVService et ses associations.


95 VSoaML : Un profil UML de modélisation des systèmes orientés services adaptables<br />

Figure 52–Stéréotype MVService<br />

La figure 53 illustre un service multivues Formation. Ce service multivues fournit plusieurs<br />

interfaces de service vues (ViewServiceInterface). L‟intersection des différentes<br />

ViewServiceInterface constitue l‟interface de service de base qui est accessible par tous types<br />

d‟acteurs. Les interfaces (ViewServiceInterface) ne sont accessibles que par un type particulier<br />

de client. Les différents types d‟interfaces de ce MVService sont encapsulées dans un package<br />

MVServiceInterface.<br />

<br />

Course<br />

Course<br />

<br />

<br />

Course_Professor<br />

CreateCourse()<br />

deleteCourse()<br />

addExercise()<br />

addExerciseSolution()<br />

proposeProject()<br />

askQuestion()<br />

proposeForumTopic()<br />

proposeTest_Quiz()<br />

proposeGroupProject()<br />

accessProject()<br />

addAnnounceCourse()<br />

respondStudentsQuestions<br />

Message()<br />

<br />

Course_Student<br />

accessCourse()<br />

accessExercise()<br />

proposeExerciseSolution()<br />

postMessage()<br />

proposeSoultionTestQuiz()<br />

accessProjectressources()<br />

accessProjetc()<br />

accessAnnounceCourse()<br />

<br />

<br />

<br />

Course_Adiministrator<br />

addNewCourse()<br />

addCoursesCalendar()<br />

addAnnounceCourse()<br />

deleteNewCourse()<br />

assignCourseResponsible()<br />

<br />

<br />

Course_base<br />

consultSynopsisCourse()<br />

consulListCourse()<br />

Figure 53–Exemple de service multivues


96 VSoaML : Un profil UML de modélisation des systèmes orientés services adaptables<br />

II.5.2.6<br />

Le stéréotype MVServiceSpecification<br />

Le stéréotype MVServiceSpecification permet de décrire les services multivues. La spécificité de<br />

ce stéréotype est qu‟il permet la description des interfaces de service multivues de chaque service<br />

multivues. Ainsi, chaque MVServiceSpecification contient la description d‟une interface de<br />

service de base accessible à tous les acteurs et il contient la description des interfaces de service<br />

vues (ViewServiceInterface) associées à des types particuliers de clients.<br />

Le stéréotype MVServiceSpecification étend le stéréotype ServiceSpecification. Ainsi, ce<br />

stéréotype possède une propriété « published » qui permet d‟indiquer si le service doit être publié<br />

ou pas dans un annuaire de service. permet la spécification des<br />

propriétés non fonctionnelles telles que les propriétés de la qualité de service de sécurité ou de<br />

performance.<br />

La figure 54 illustre la métaclasse MVServiceSpecification et ses associations. La Figure 55<br />

illustre un exemple d‟un MVServiceSpecification.


97 VSoaML : Un profil UML de modélisation des systèmes orientés services adaptables<br />

Artifact(from UML2.0)<br />

BusinessProtocol<br />

0..*<br />

Specif ication 0..*<br />

Policy<br />

1<br />

1..*<br />

Serv iceInterf ace<br />

1<br />

MVServiceSpecification<br />

1<br />

1<br />

1..*<br />

0..1<br />

+base<br />

1<br />

BaseServiceInterface<br />

1<br />

1..*<br />

MVServiceInterface<br />

Include<br />

1<br />

1<br />

0..*<br />

0..1<br />

+view<br />

1<br />

ViewServiceInterface<br />

1..*<br />

Actor(f rom UML2.0)<br />

MVServ ice<br />

+prov ides<br />

1 +actor<br />

1..*<br />

+requires<br />

1..*<br />

1<br />

Figure 54–Stéréotype MVServiceSpecification<br />

Course<br />

<br />

<br />

Course<br />

<br />

Course_Professor<br />

CreateCourse()<br />

deleteCourse()<br />

addExercise()<br />

addExerciseSolution()<br />

proposeProject()<br />

askQuestion()<br />

proposeForumTopic()<br />

proposeTest_Quiz()<br />

proposeGroupProject()<br />

accessProject()<br />

addAnnounceCourse()<br />

respondStudentsQuestions<br />

Message()<br />

<br />

Course_Student<br />

accessCourse()<br />

accessExercise()<br />

proposeExerciseSolution()<br />

postMessage()<br />

proposeSoultionTestQuiz()<br />

accessProjectressources()<br />

accessProjetc()<br />

accessAnnounceCourse()<br />

<br />

<br />

<br />

Course_Adiministrator<br />

addNewCourse()<br />

addCoursesCalendar()<br />

addAnnounceCourse()<br />

deleteNewCourse()<br />

assignCourseResponsible()<br />

<br />

<br />

Course_base<br />

consultSynopsisCourse()<br />

consulListCourse()<br />

Figure 55–Exemple de MVServiceSpecification


98 VSoaML : Un profil UML de modélisation des systèmes orientés services adaptables<br />

Dans notre cas de figure, nous avons défini une extension à WSDL pour pouvoir décrire les<br />

services Multivues appelée MVWSDL (MultiView WSDL) (voir section MVWSDL, chapitre<br />

IV). MVWSDL est une extension légère au standard WSDL permettant la spécification des<br />

service multivues. Il s‟agit d‟un schéma XML permettant la description des interfaces du service<br />

multivues.<br />

II.5.2.7 Le stéréotype Collaboration<br />

Le stéréotype Collaboration permet de spécifier à un haut niveau d‟abstraction une collaboration<br />

de plusieurs services/services multivues pour répondre à des exigences complexes auxquels un<br />

seul service ne peut répondre. Dans le cas des services web, cela correspond à l‟utilisation du<br />

standard BPEL4WS pour la définition de la composition de services. Ainsi, l‟objectif de ce<br />

stéréotype est de spécifier le comportement de services pour pouvoir générer automatiquement la<br />

description BPEL. La figure 56 illustre la métaclasse Collaboration et ses associations<br />

Figure 56–Stéréotype Collaboration<br />

La figure 57 présente une collaboration de service. Cette collaboration de services met en<br />

évidence la participation de plusieurs services pour répondre aux exigences complexes des<br />

clients de services. Un service interagit potentiellement avec plusieurs types de clients de<br />

services. De même, une collaboration de services qui définit un processus métier interagit<br />

potentiellement avec plusieurs acteurs (pour chaque acteur est associé un rôle). Ainsi, il est<br />

nécessaire de modéliser et de définir des processus adaptables suivant l‟acteur déclenchant le


99 VSoaML : Un profil UML de modélisation des systèmes orientés services adaptables<br />

Collaboration : « SuivreFormation»<br />

Agenda<br />

« MVService »<br />

Formation<br />

« MVService »<br />

Examen<br />

«MVService»<br />

Documentation<br />

Figure 57–Exemple de collaboration de services


100 VSoaML : Un profil UML de modélisation des systèmes orientés services adaptables<br />

processus métier. Pour faire face à ce problème, nous proposons la modélisation de chaque<br />

processus comme une collaboration de services multivues ayant la caractéristique de fournir des<br />

interfaces adaptés aux différents acteurs interagissant avec le service. Une telle collaboration<br />

illustre l‟ensemble des services multivues participants ainsi que leurs interfaces qui représentent<br />

les fonctionnalités associées à un acteur spécifique. Pour chaque acteur interagissant avec la<br />

collaboration de services, seulement l‟interface correspondant à l‟acteur concerné est requise. La<br />

figure 57 illustre une collaboration de services multivues appelée « suivre Formation» dans le<br />

cadre de notre étude de cas. Le processus est conçu spécifiquement à un acteur étudiant.<br />

Seulement les interfaces associées à l‟acteur Etudiant sont utilisées dans l‟objectif de définir une<br />

collaboration de services.<br />

II.5.2.8 Le stéréotype ServiceChannel<br />

Le stéréotype Channel permet de représenter le chemin de communication entre un service et ses<br />

clients (Johsnston et al., 2006). Dans le domaine des services web, chaque service permet<br />

d‟indiquer ses liaisons associées de telle façon qu‟un client puisse y accéder. Notre profil permet<br />

de spécifier la liaison pour pouvoir invoquer deux services ou entre des clients de service et un<br />

service. Ce stéréotype possède un attribut channel pour spécifier la liaison utilisée pour générer<br />

la liaison WSDL correspondante. Un exemple de binding peut être SOAP-RPC, FTP, HTTP-<br />

GET, etc.<br />

Deux contraintes ont été associées au stéréotype Channel :<br />

[1] au moins l‟extrémité d‟une connexion doit être un service.<br />

[2] au plus une extrémité d‟une connexion doit être une classe stéréotypé ou bien<br />

un classifier stéréotypé .<br />

La figure 58 illustre la métaclasse Channel ainsi que ses associations.


101 VSoaML : Un profil UML de modélisation des systèmes orientés services adaptables<br />

II.5.2.9 Le stéréotype Requester<br />

Figure 58–Stéréotype Channel<br />

Le stéréotype Requester permet de représenter chaque classifier (Class, Component, etc.) qui<br />

peut être un consommateur de service. Ce stéréotype est utilisé pour spécifier les éléments d‟un<br />

modèle qui ne sont pas des services comme des clients de services. L‟utilisation de ce stéréotype<br />

est optionnelle.<br />

La figure 59 illustre la métaclasse Requester ainsi que ses associations.


102 VSoaML : Un profil UML de modélisation des systèmes orientés services adaptables<br />

Figure 59–Stéréotype Requester<br />

La figure 60 montre un exemple d‟un service multivues qui est en interaction avec ses clients de<br />

services (i.e requester).<br />

Course<br />

<br />

<br />

Student<br />

Teacher<br />

Figure 60–Exemple de Requester<br />

II.5.2.10 Le stéréotype MVServiceInterface<br />

Dans le contexte du profil VSoaML défini dans le cadre du nouveau paradigme SOC, le<br />

stéréotype MVServiceInterface est un élément de modélisation qui étend la métaclasse Package.<br />

Ce stéréotype permet de regrouper des fonctionnalités logiquement cohésives. Ainsi, chaque<br />

MVServiceInterface regroupe un ensemble des interfaces de services vues<br />

(ViewServiceInterface) contenant des capacités de services accessibles uniquement par un type


103 VSoaML : Un profil UML de modélisation des systèmes orientés services adaptables<br />

particulier de clients de service. Un MVService peut avoir plusieurs MVServiceInteface qui sont<br />

associés à l‟élément de modélisation MVServiceSpecification.<br />

La figure 61 illustre la métaclasse MVServiceInterface ainsi que ses associations.<br />

Package(from UML2.0)<br />

Serv iceInterf ace<br />

MVServiceInterface<br />

1<br />

1..*<br />

Include<br />

0..1<br />

+base<br />

1<br />

BaseServiceInterface<br />

1<br />

1<br />

0..1<br />

0..*<br />

+view<br />

1<br />

ViewServiceInterface<br />

1..*<br />

+actor<br />

1<br />

1<br />

Actor(from UML2.0)<br />

Figure 61–Stéréotype MVServiceInterface<br />

La figure 62 illustre un exemple d‟une MVServiceInterface.<br />

<br />

Course<br />

<br />

Course_Professor<br />

CreateCourse()<br />

deleteCourse()<br />

addExercise()<br />

addExerciseSolution()<br />

proposeProject()<br />

askQuestion()<br />

proposeForumTopic()<br />

proposeTest_Quiz()<br />

proposeGroupProject()<br />

accessProject()<br />

addAnnounceCourse()<br />

respondStudentsQuestions<br />

Message()<br />

<br />

Course_Student<br />

accessCourse()<br />

accessExercise()<br />

proposeExerciseSolution()<br />

postMessage()<br />

proposeSoultionTestQuiz()<br />

accessProjectressources()<br />

accessProjetc()<br />

accessAnnounceCourse()<br />

<br />

<br />

<br />

Course_Adiministrator<br />

addNewCourse()<br />

addCoursesCalendar()<br />

addAnnounceCourse()<br />

deleteNewCourse()<br />

assignCourseResponsible()<br />

<br />

<br />

Course_base<br />

consultSynopsisCourse()<br />

consulListCourse()<br />

Figure 62–Exemple de MVServiceInterface<br />

II.5.2.11<br />

Le stéréotype BaseServiceInterface<br />

Dans le cadre de notre profil VSoaML défini pour la modélisation des SOSs adaptables aux<br />

différents types d‟utilisateurs, le stéréotype BaseServiceInterface permet de représenter un


104 VSoaML : Un profil UML de modélisation des systèmes orientés services adaptables<br />

ensemble d‟opérations de services qui peuvent être invoquées par tous les acteurs interagissant<br />

avec un service donné. Le stéréotype BaseServiceInterface est défini dans l‟objectif de contenir<br />

les opérations de services (ServiceOperation) appartenant à toutes les ViewServiceInterface en<br />

vue de faire face au probléme de la redondance de ces opérations de services. Chaque<br />

BaseServiceInterface est incluse (la relation entre le BaseServiceInterface et<br />

ViewServiceInterface) dans une ViewServiceInterface. La figure 63 illustre le stéréotype<br />

BaseServiceInterface. La figure 64 montre un exemple du stéréotype BaseServiceInterface.<br />

Serv iceInterf ace<br />

Interface(from UML2.0)<br />

1<br />

1..*<br />

0..1<br />

+base<br />

1<br />

BaseServiceInterface<br />

1<br />

MVServiceInterface<br />

Include<br />

1<br />

0..1<br />

+view<br />

MVServ ice<br />

0..*<br />

+provides<br />

1..*<br />

+requires<br />

1<br />

ViewServiceInterface<br />

1<br />

1<br />

+actor<br />

Actor(f rom UML2.0)<br />

1..*<br />

1..*<br />

Figure 63–Stéréotype baseServiceInterface<br />

<br />

Course_Professor Course_Student<br />

CreateCourse()<br />

deleteCourse()<br />

addExercise()<br />

addExerciseSolution()<br />

proposeProject()<br />

askQuestion()<br />

proposeForumTopic()<br />

proposeTest_Quiz()<br />

proposeGroupProject()<br />

accessProject()<br />

addAnnounceCourse()<br />

respondStudentsQuestions<br />

Message()<br />

accessCourse()<br />

accessExercise()<br />

proposeExerciseSolution()<br />

postMessage()<br />

proposeSoultionTestQuiz()<br />

accessProjectressources()<br />

accessProjetc()<br />

accessAnnounceCourse()<br />

<br />

<br />

<br />

Course_Adiministrator<br />

addNewCourse()<br />

addCoursesCalendar()<br />

addAnnounceCourse()<br />

deleteNewCourse()<br />

assignCourseResponsible()<br />

<br />

<br />

Course_base<br />

consultSynopsisCourse()<br />

consulListCourse()<br />

Un exemple d‟une<br />

interface de service<br />

de base<br />

Figure 64–Exemple de BaseServiceInterface


105 VSoaML : Un profil UML de modélisation des systèmes orientés services adaptables<br />

II.5.2.12<br />

Le stéréotype ViewServiceInterface<br />

Dans le contexte du profil VSoaML défini pour la modélisation des SOSs Adaptables aux<br />

différents types d‟utilisateurs, le stéréotype ViewServiceInterface permet de représenter les<br />

capacités d‟un service qui sont propres à un acteur donné interagissant avec le service. Le<br />

stéréotype «ViewServiceInterface» est un élément de modélisation qui fait partie de l‟élément de<br />

modélisation MultiviewServiceInterface. Il se compose donc des opérations du service de grosse<br />

granularité qu‟un acteur spécifique puisse invoquer. Chaque opération de service a pour<br />

entrée/sortie un Message. En entrée, un message contient les données nécessaires pour qu‟une<br />

opération de service puisse s‟exécuter. En sortie, le message contient le résultat de l‟invocation<br />

d‟une telle opération de service. La figure 65 illustre le stéréotype ViewServiceInterface et ses<br />

associations. La figure 66 illustre un exemple de ViewServiceInterface.<br />

Serv iceInterf ace<br />

Interface(fromUML2.0)<br />

1<br />

MVServiceInterface 0..1<br />

BaseServiceInterface<br />

1<br />

+base<br />

1<br />

1..*<br />

Include<br />

0..1<br />

1<br />

+v iew 1<br />

ViewServiceInterface<br />

0..*<br />

MVServ ice<br />

1..*<br />

+requires<br />

1..*<br />

1<br />

+prov ides<br />

1<br />

1..*<br />

Actor(f rom UML2.0)<br />

+actor<br />

Figure 65–Stéréotype ViewServiceInterface


106 VSoaML : Un profil UML de modélisation des systèmes orientés services adaptables<br />

Exemple des interfaces de service<br />

vues<br />

<br />

Course_Professor<br />

CreateCourse()<br />

deleteCourse()<br />

addExercise()<br />

addExerciseSolution()<br />

proposeProject()<br />

askQuestion()<br />

proposeForumTopic()<br />

proposeTest_Quiz()<br />

proposeGroupProject()<br />

accessProject()<br />

addAnnounceCourse()<br />

respondStudentsQuestions<br />

Message()<br />

<br />

Course_Student<br />

accessCourse()<br />

accessExercise()<br />

proposeExerciseSolution()<br />

postMessage()<br />

proposeSoultionTestQuiz()<br />

accessProjectressources()<br />

accessProjetc()<br />

accessAnnounceCourse()<br />

<br />

<br />

<br />

Course_Adiministrator<br />

addNewCourse()<br />

addCoursesCalendar()<br />

addAnnounceCourse()<br />

deleteNewCourse()<br />

assignCourseResponsible()<br />

<br />

<br />

Course_base<br />

consultSynopsisCourse()<br />

consulListCourse()<br />

II.5.2.13 Le stéréotype Provider<br />

Figure 66–Exemple de ViewServiceInterface<br />

Le stéréotype Provider permet de représenter un fournisseur de services qui héberge le module<br />

logiciel implémentant un ou plusieurs services web accessibles via le réseau. Il définit une<br />

description de services et le publie en le faisant enregistrer dans un annuaire de services. Le<br />

demandeur de services invoque une opération de recherche pour trouver la description du service<br />

dans l‟annuaire de service. Il utilise alors la description du service pour établir une connexion<br />

avec le fournisseur de services et invoquer ou interagir avec l‟implémentation du service web.<br />

La figure 67 illustre la métaclasse Provider et ses associations.


107 VSoaML : Un profil UML de modélisation des systèmes orientés services adaptables<br />

Figure 67–Stéréotype Provider<br />

II.5.2.14 Le stéréotype ServiceOperation<br />

Le stéréotype ServiceOperation étend la métaclasse Operation d‟UML 2.0. Il permet de<br />

représenter une opération d‟un service qui modélise une fonctionnalité fournie par un service<br />

donné. La spécificité d‟une opération de service (ServiceOperation) est qu‟elle manipule des<br />

données de grosse granularité ayant une valeur dans le cadre d‟un processus métier. Une<br />

opération de services manipule en entrée, en sortie ou en erreur des messages.<br />

La figure 68 illustre la métaclasse ServiceOperation et ses associations. La figure 69 illustre un<br />

exemple des ServiceOperation. En effet, l‟interface de service de base (BaseServiceInterface) et<br />

l‟interface de service vue (ViewServiceInterface) se composent principalement d‟opération de<br />

services.


108 VSoaML : Un profil UML de modélisation des systèmes orientés services adaptables<br />

Figure 68–Stéréotype ServiceOperation<br />

<br />

Course_Professor<br />

CreateCourse()<br />

deleteCourse()<br />

addExercise()<br />

addExerciseSolution()<br />

proposeProject()<br />

askQuestion()<br />

proposeForumTopic()<br />

proposeTest_Quiz()<br />

proposeGroupProject()<br />

accessProject()<br />

addAnnounceCourse()<br />

respondStudentsQuestions<br />

Message()<br />

<br />

Course_Student<br />

accessCourse()<br />

accessExercise()<br />

proposeExerciseSolution()<br />

postMessage()<br />

proposeSoultionTestQuiz()<br />

accessProjectressources()<br />

accessProjetc()<br />

accessAnnounceCourse()<br />

<br />

<br />

<br />

Course_Adiministrator<br />

addNewCourse()<br />

addCoursesCalendar()<br />

addAnnounceCourse()<br />

deleteNewCourse()<br />

assignCourseResponsible()<br />

<br />

<br />

Course_base<br />

consultSynopsisCourse()<br />

consulListCourse()<br />

Un exemple d‟une<br />

opération de service<br />

Figure 69–Exemple de serviceOperation<br />

II.5.2.15 Le stéréotype ServiceDomain<br />

Le stéréotype permet de représenter les frontières logiques ou physiques<br />

d‟un système. Cet élément de modélisation joue un rôle important pour la structuration et


109 VSoaML : Un profil UML de modélisation des systèmes orientés services adaptables<br />

l‟organisation d‟un système en un ensemble de packages. Il joue un rôle important dans la<br />

définition des espaces de nommage.<br />

possède un attribut domain qui permet de regrouper les services d‟un<br />

domaine métier particulier. Un étend la métaclasse « Package » UML2.0.<br />

La figure 70 illustre le stéréotype Service Domain et ses associations.<br />

Figure 70–Stéréotype ServiceDomain<br />

II.5.3. Exemple illustratif DLS : Couches d’abstraction<br />

Pour le développement de notre système d‟enseignement à distance, nous nous basons sur notre<br />

profil VSoaML en vue de l‟élaboration des couches d‟abstraction permettant la représentation<br />

des différentes perspectives qui correspondent aux différents stakeholders (e.g., Analyste métier,<br />

Architecte, etc.). La couche métier de ce système se compose de deux artefacts clés : les modèles<br />

des cas d‟utilisation (cf. figure 37) et les modèles BPMN capables de représenter les scénarios<br />

permettant la réalisation des différents cas d‟utilisation. La figure 71 présente le modèle BPMN<br />

du cas d‟utilisation «Assurer Formation». La figure 72 illustre le modèle BPMN du cas<br />

d‟utilisation « Suivre formation».


110 VSoaML : Un profil UML de modélisation des systèmes orientés services adaptables<br />

Figure 71–Modèle BPMN du cas d’utilisation « Assurer Formation ».


111 VSoaML : Un profil UML de modélisation des systèmes orientés services adaptables<br />

Figure 72–Modèle BPMN du cas d’utilisation « Suivre formation»<br />

La couche logique est décrite par le modèle de service multivue et le modèle d‟information<br />

associés au DLS. Le modèle de service multivues se compose des services multivues suivants :<br />

Inscription, Formation, Documentation et Examen. Ces services sont multivues du moment où<br />

ils interagissent avec plusieurs acteurs : Enseignant, Etudiant et Administrateur. Le service<br />

multivue Inscription fournit les interfaces ViewServiceInterface suivantes :<br />

Inscription_Etudiant, <br />

Inscription_Enseignant, Inscription_Administrateur. Chaque<br />

interface modélise les fonctionnalités spécifiques à chaque acteur. Ainsi,<br />

Inscription_Etudiant contient les opérations de service nécessaires à<br />

un acteur Etudiant pour faire son inscription. <br />

Inscription_Administrateur contient les opérations permettant à un acteur administrateur de gérer<br />

les inscriptions des étudiants, de fixer les frais d‟inscription aux différentes formations et de<br />

décider des inscriptions des étudiants.<br />

Le service multivue Formation fournit les ViewServiceInterface suivantes :


112 VSoaML : Un profil UML de modélisation des systèmes orientés services adaptables<br />

Formation_Etudiant,<br />

<br />

Formation_Enseignant, Formation_Administrateur. L‟interface<br />

Formation_Etudiant modélise les fonctionnalités permettant à un<br />

acteur Etudiant de suivre des formations, d‟accéder aux exercices, de poser des questions, de<br />

consulter les projets d‟une formation donnée, de faire des quiz et d‟envoyer des messages aux<br />

forums de discussion spécifiques à une formation donnée. <br />

Formation_Administrateur modélise les fonctionnalités permettant à un acteur Administrateur<br />

de fixer les frais d‟une formation donnée, de gérer son calendrier et d‟affecter les responsables<br />

des formations.<br />

Formation_Enseignant modélise les fonctionnalités permettant à<br />

l‟enseignant de créer des formations, de répondre aux questions des étudiants, de proposer des<br />

exercices et de répondre aux messages des forums de discussion.<br />

Le service Documentation fournit deux interfaces : doc_Etudiant et<br />

Doc_Enseignant. La première interface modélise les fonctionnalités<br />

qui correspondent à l‟acteur Etudiant lui permettant de télécharger les documentations<br />

nécessaires (fichiers pdf, audio/video, etc.). La deuxième interface est associée à l‟acteur<br />

Enseignant. Elle lui permet de charger les documents concernant une formation spécifique, de les<br />

mettre à jour ou de les supprimer.<br />

Le service Examen fournit trois interfaces : Examen_Etudiant,<br />

Examen_Enseignant, <br />

Examen_Administrateur.<br />

Examen_Etudiant permet à l‟étudiant de télécharger le sujet d‟un<br />

examen, de poser des questions de compréhension et de consulter ses notes.<br />

Examen_Enseignant permet à un acteur Enseignant de proposer un<br />

examen et de répondre aux questions des examens. <br />

Examen_Administrateur permet à un acteur administrateur de gérer les examens ainsi que la<br />

gestion des notes.


113 VSoaML : Un profil UML de modélisation des systèmes orientés services adaptables<br />

La figure 73 illustre les différents services multivues constituant le système d‟enseignement à<br />

distance. Cette figure met en lumière la structure de différentes interfaces de service multivues.<br />

En fait, chaque interface de service multivues est composée d‟une interface de service de base<br />

qui représente les fonctionnalités communes entre les différents acteurs. Les interfaces de service<br />

vues représentent les fonctionnalités spécifiques à chaque acteur.<br />

<br />

Inscription<br />

<br />

<br />

Inscription_Etudiant<br />

<br />

<br />

Inscription<br />

demanderInscription()<br />

payerFraisInscription()<br />

<br />

<br />

Inscription_Base<br />

consulterDateLimite()<br />

consulterListeFormation()<br />

<br />

Inscription_Administrateur<br />

deciderInscription()<br />

ajouterListeAttente()<br />

fixerFraisInscription()<br />

<br />

<br />

Examen<br />

<br />

<br />

Examen_Etudiant<br />

consulterExamen()<br />

poserQuestionExamen()<br />

consulterNotes()<br />

<br />

Examen<br />

<br />

<br />

<br />

Examen_Enseignant<br />

ajouterExamen()<br />

repondreQuestionsExamen()<br />

evaluerExamen()<br />

ajouterNotes()<br />

<br />

<br />

Examen_base<br />

consulterCalendrierExamen()<br />

<br />

<br />

Examen_Admnistrateur<br />

consulterNotesEtudiant()<br />

definirCalendrierExamen()<br />


114 VSoaML : Un profil UML de modélisation des systèmes orientés services adaptables<br />

<br />

Documentation<br />

<br />

Documentation<br />

<br />

Doc_Enseignant<br />

chargerDocumentation()<br />

updateDocumentation()<br />

supprimerDocumentation()<br />

<br />

<br />

Doc_base<br />

consulterDocumentation()<br />

<br />

<br />

Doc_Student<br />

telechargerDocumentation()<br />

proposerSupplementDocumentation()<br />

<br />

Formation<br />

<br />

Formation_Administrateur<br />

<br />

ajouternouvelleFormation();<br />

ajouterCalendrierFormation() ;<br />

ajouterAnnounceFormation() ;<br />

supprimerFormation() ;<br />

affecterResponsableFormation() ;<br />

<br />

Formation<br />

<br />

Formation_Etudiant<br />

consulterFormation() ;<br />

consulterExercice() ;<br />

proposerSolutionExercice() ;<br />

posterMessage() ;<br />

proposerTestSolution() ;<br />

accessProjectRessource() ;<br />

consulterProjet() ;<br />

consulterAnnounceFormation() ;<br />

consulterForum() ;<br />

consulterTest(),<br />

consulterDevoir() ;<br />

<br />

Formation<br />

consultSynopsisFormation ;<br />

consultListFormation() ;<br />

<br />

<br />

Formation_Enseignant<br />

<br />

ajouterFormation();<br />

supprimerFormation() ;<br />

ajouterExercice() ;<br />

ajouterSolutionExercice() ;<br />

proposerProjet() ;<br />

poserQuestion() ;<br />

proposerForum() ;<br />

afficherForum() ;<br />

rechercherForum() ;<br />

proposerTest() ;<br />

ajouterGlossaire() ;<br />

rchercherGlossaire() ;<br />

ajouterTest()<br />

modifierTest(),<br />

ajouterAnnounceFormation() ;<br />

repondreQuestionsEtudiants() ;<br />

Figure 73–Modèle des services multivues du DLS


115 VSoaML : Un profil UML de modélisation des systèmes orientés services adaptables<br />

La figure 74 présente un extrait du modèle d‟information associé au modèle de services<br />

multivues. Ce modèle permet de spécifier les différents types d‟informations échangées entre les<br />

services et ses clients. En effet, chaque opération de service possède en entrée ou en sortie un<br />

message. Le modèle d‟information nous permet de définir les messages des différentes<br />

opérations de chaque service. Dans le cadre de notre étude de cas, nous avons identifié le modèle<br />

d‟informations présenté dans la figure 74. Chaque opération de notre étude de cas, possède des<br />

messages en entrée et en sortie.<br />

Figure 74–Extrait du modèle d’information du système d’Enseignement à Distance


116 VSoaML : Un profil UML de modélisation des systèmes orientés services adaptables<br />

II.6. Conclusion<br />

Dans ce chapitre, nous avons présenté un profil UML appelé VSoaML permettant la<br />

modélisation et la spécification des systèmes orientés services adaptables aux différents types<br />

d‟utilisateurs en faisant abstraction des plates-formes d‟implémentation et des standards<br />

technologiques. Nous avons par conséquent présenté les différents stéréotypes de ce profil ainsi<br />

que son métamodèle. Pour chaque stéréotype constituant le profil VSoaML, nous lui avons<br />

donné une description en spécifiant ses attributs, ses relations et les contraintes associées.<br />

Le profil VSoaML constitue l‟élément de base de notre approche d‟ingénierie des SOSs<br />

adaptables. Une telle approche se base aussi sur un processus pour maîtriser la complexité du<br />

développement des SOS adaptables aux différents types d‟utilisateurs. Ainsi, nous continuons<br />

dans le chapitre suivant à proposer un processus de développement d‟un système orienté services<br />

adaptables en se basant principalement sur le profil VSoaML et plus particulièrement sur le<br />

concept de service multivues.


117 Processus de Développement Dirigé par les Modèles des Systèmes Orientés Services Adaptables<br />

III. Processus de Développement Dirigé par les Modèles des Systèmes<br />

Orientés Services Adaptables<br />

III.1. Introduction<br />

Comme nous l‟avons présenté dans le chapitre 2, le profil VSoaML permet la modélisation et la<br />

spécification des systèmes orientés service adaptables aux différents types d‟utilisateurs<br />

facilitant ainsi la compréhension des caractéristiques de tels systèmes par les différents<br />

stakehloders concernés. VSoaML se base principalement sur le concept de service multivues<br />

comme une entité de modélisation capable de décrire les besoins et les spécificités des<br />

utilisateurs finals assez tôt dans le cycle de développement des SOSs.<br />

Certes le profil VSoaML joue un rôle important pour le développement des systèmes orientés<br />

services adaptables aux différents types d‟utilisateurs, cependant il est nécessaire de définir un<br />

processus de développement pour rationaliser leur construction.<br />

Le but principal de ce chapitre est de présenter notre processus proposé pour le développement<br />

des systèmes orientés services adaptables aux différents types d‟utilisateur. Un tel processus<br />

associé au profil VSoaML a pour objectif principal l‟identification, la spécification des services<br />

multivues et leur implémentation à partir des exigences métiers. Pour ce faire, ce processus<br />

définit les phases, les artefacts et les activités nécessaires pour la transformation des exigences<br />

métiers en termes de services multivues selon une approche dirigée par les modèles.<br />

Ce chapitre est structuré comme suit. La section 2 présente globalement les phases, les activités<br />

et les artefacts d‟un processus de développement d‟un système orienté service. La troisième<br />

section a pour objectif de présenter les spécificités des processus de développement des systèmes<br />

logiciels dans le cadre de l‟approche MDA. La section 4 présente notre processus proposé pour<br />

le développement des SOSs adaptables aux différents types d‟utilisateurs dans le cadre de<br />

l‟approche MDA, en identifiant ses phases, ses artéfacts et ses activités.


118 Processus de Développement Dirigé par les Modèles des Systèmes Orientés Services Adaptables<br />

III.2. Processus de développement des systèmes orientés services : phases,<br />

activités et artefacts<br />

SOC se base principalement sur le service comme un élément fondamental pour le<br />

développement des systèmes d‟information d‟entreprise distribués et à large échelle. L‟élément<br />

service possède des caractéristiques héritées de ses prédécesseurs tels que l‟objet ou le<br />

composant mais il ajoute d‟autres caractéristiques telles que sa grosse granularité, son<br />

indépendance, son autonomie et son couplage faible. Ainsi, les approches traditionnelles pour le<br />

développement des systèmes logiciels orientés objet ou à base de composant sont inadéquates<br />

pour le développement des systèmes orientés services. Pour faire face à ce problème, plusieurs<br />

processus de développements ont été proposés dans la littérature (Papazoglou et al., 2006)<br />

(Arsanjani et al. 2005) (Erradi et al., 2006) (Chang et al., 2007b) (Maamar et al., 2008) (Kim et<br />

al., 2006). Globalement, ces processus définissent un ensemble de directives et de principes<br />

méthodologiques pour spécifier, construire et implémenter des systèmes orientés services<br />

en se basant sur l‟élément service et sur l‟architecture SOA tout en optimisant les coûts et le<br />

temps de leur développement.<br />

Généralement, un processus de développement SOA, comme le montre la figure 75, repose sur<br />

un processus itératif et incrémental qui comporte six phases :<br />

1- Planification : la phase planification détermine la faisabilité, la nature et l‟étendu d‟une<br />

solution SOA dans le contexte d‟une entreprise. L‟objectif principal de cette phase est de<br />

comprendre l‟environnement métier et de s‟assurer que tous les contrôles nécessaires sont<br />

incorporés dans la conception des solutions SOA. Les activités principales de cette phase<br />

concernent principalement l‟analyse des besoins métiers, l‟étude des technologies et des<br />

scénarios possibles pour transformer les exigences métiers vers des implémentations de<br />

service. Trois scénarios sont identifiés (i) le premier scénario concerne l‟utilisation des<br />

applications existantes en les encapsulant dans des services (ii) le deuxième scénario<br />

concerne l‟utilisation des services d‟autres fournisseurs de services publiés dans un<br />

annuaire de services (iii) le troisième scénario concerne le développement de nouvelles<br />

implémentations de service.


119 Processus de Développement Dirigé par les Modèles des Systèmes Orientés Services Adaptables<br />

Durant cette phase, on effectue aussi une analyse financière incluant les coûts et les<br />

bénéfices ainsi qu‟un plan de développement logiciel déterminant les tâches, les<br />

livrables ainsi qu‟un programme d‟action.<br />

Plannification<br />

Analyse et<br />

conception<br />

Exécution et<br />

monitoring<br />

Construction et<br />

Test<br />

Deploiement<br />

Approvisionnement<br />

Figure 75–Phases du cycle de vie méthodologique (Papazoglou et al., 2006)<br />

2- Analyse et conception des services et des processus : L‟analyse et conception des services et<br />

des processus a pour objectif principal l‟identification et la conception des processus métier<br />

en termes d‟un ensemble de services. Cette phase permet la modélisation des services en<br />

définissant leurs interfaces indépendamment des plateformes technologiques de développement.<br />

Elle est effectuée en deux étapes. La premiére étape permet l‟identification et la spécification des<br />

services. La spécification des services se fait principalement en réalisant quatre activités : la<br />

définition de l‟interface en utilisant le langage WSDL, la spécification des messages des<br />

opérations en entrée/sortie, la définition du protocole de transport et d‟échange de données en<br />

utilisant par exemple le protocole SOAP et la définition des opérations, des liaisons à un<br />

protocole concret ainsi que la définition de l‟emplacement du service à invoquer.


120 Processus de Développement Dirigé par les Modèles des Systèmes Orientés Services Adaptables<br />

La deuxiéme étape consiste à identifier et spécifier les processus. L‟identification du processus<br />

métier consiste en l‟identification des services à faire composer. La spécification du processus<br />

se base sur trois activités (i) la définition de l‟objectif et de la structure du processus qui<br />

spécifie l‟ordre d‟exécution des services, les participants impliqués ainsi que les informations<br />

échangées entre eux, (ii) la définition des rôles que jouent les participants dans une conversation<br />

et (iii) la définition des besoins non-fonctionnels comme la sécurité des processus.<br />

3- Construction et test : Une fois la phase d‟analyse et conception des services et des processus<br />

est terminée, la phase de construction et test peut commencer. Elle comporte généralement trois<br />

activités principales. La premiére activité consiste au choix du style de programmation des<br />

services en distinguant principalement entre deux types notamment : RPC (Remote Procedure<br />

Call) et message/document. La deuxiéme activité consiste au développement des services en<br />

définissant leurs interfaces WSDL. La publication de la description WSDL est réalisée ensuite<br />

via l‟utilisation d‟un annuaire UDDI. L‟étape suivante consiste à générer le squelette du<br />

service à partir de l‟interface via l‟utilisation d‟un langage d‟implémentation donné (Java,<br />

C#). Enfin, les méthodes du service prédéfinies dans le squelette sont implémentées. La<br />

troisiéme activité est le développement des processus métier par la conception de leur<br />

logique métier à travers des spécifications exprimées par exemple en BPEL4WS.<br />

4- Approvisionnement : Dans le cadre de cette phase, différentes activités ont été identifiées<br />

pour contrôler le comportement d‟un service lors de son utilisation (gouvernance et certification<br />

des services, facturation, etc.).<br />

5- Déploiement : Dans le cadre de cette phase, trois activités ont été définies (i) la publication<br />

des interfaces de services dans un annuaire de services UDDI, (ii) le déploiement des services et<br />

des processus métiers en définissant les métadonnées necessaires pour leur execution et (iii) la<br />

publication des détails des implémentations des services en identifiant les informations y<br />

associées (e.g., liaisons aux protocoles concrets et au point d‟entrée du service) .<br />

6- Exécution : Dans le cadre de cette phase, les services ainsi que les processus métier sont<br />

déployés et opérationnels. Un client de service peut alors invoquer les opérations du service en se<br />

référant à la définition de son interface WSDL.


121 Processus de Développement Dirigé par les Modèles des Systèmes Orientés Services Adaptables<br />

III.3. Processus de développement MDA : phases, activités et artefacts<br />

Dans l‟objectif de maitriser la complexité logicielle, l‟OMG a proposé l‟approche MDA pour le<br />

développement, l‟intégration et la maintenance des systèmes à prépondérance logicielle. MDA<br />

est une démarche de développement permettant la séparation des spécifications fonctionnelles<br />

d‟un système des spécifications de son implémentation sur une plateforme technologique<br />

donnée. Ainsi, MDA se base sur plusieurs types de modèles qui définissent différentes vues<br />

d‟un système: le CIM, le PIM et le PSM. Elle se base aussi sur la transformation de modèles<br />

comme une activité principale. L‟objectif de cette section est de présenter ces différents types de<br />

modèles ainsi que les artefacts et les activités d‟un processus de développement MDA.<br />

III.3.1.<br />

Les types de modèles et de transformation de MDA<br />

III.3.1.1<br />

Computation Independent Model (CIM)<br />

Le CIM (Computation Independent Model) aussi appelé Business Model ou Domain model<br />

permet de décrire les exigences du système et la situation dans laquelle le système sera utilisé. Il<br />

ne représente pas les détails de la structure du système et reste indépendant des technologies de<br />

son implémentation. Ce modèle permet d‟exprimer les liens de traçabilité avec les modèles qui<br />

seront élaborés dans les autres phases du cycle de développement. En effet, les exigences<br />

décrites dans ce modèle doivent pourvoir à la construction d‟autres modèles (PIM et PSM) qui<br />

les implémentent et vice versa. Le CIM place le système dans son contexte opérationnel et<br />

permet de représenter ce que le système devrait réellement assurer comme fonctionnalités.<br />

Dans UML, les modèles d‟exigences sont représentés par les diagrammes de cas d‟utilisation.<br />

Ces derniers décrivent de façon abstraite les différentes fonctionnalités du système ainsi que les<br />

acteurs qui interagissent avec ce système. Cependant, MDA ne fait aucune recommandation<br />

quant à l‟utilisation d‟UML ou non pour exprimer les CIM.<br />

III.3.1.2<br />

Platform Independent Model (PIM)<br />

Le PIM est un modèle de haut niveau d‟abstraction qui est indépendant de toute plateforme<br />

(J2EE, dotNet) ou technologie. Il décrit le système en masquant les détails de son utilisation sur


122 Processus de Développement Dirigé par les Modèles des Systèmes Orientés Services Adaptables<br />

une plateforme technologique particulière. Le PIM permet de décrire la logique métier. Il décrit<br />

les systèmes logiciels comme un ensemble d‟entités fonctionnelles ainsi que leurs interactions<br />

tenant en considération seulement la logique métier des entreprises. Ce modèle doit être clair afin<br />

de permettre à des experts du domaine de le comprendre plus aisément qu‟un modèle<br />

d‟implémentation. Ainsi, ils peuvent vérifier que le PIM est complet et correct plus facilement.<br />

Le langage UML ainsi que les profils UML sont préconisés par l‟approche MDA pour<br />

l‟élaboration des PIM. L‟essentiel pour un PIM est d‟être pérenne et de faire le lien entre le<br />

modèle d‟exigences et le code de l‟application. Les modèles doivent aussi être productifs car ils<br />

constituent le socle du processus de génération de code.<br />

III.3.1.3<br />

Platform Specific Model (PSM)<br />

Le PSM est un modèle qui est dépendant de la plateforme technique. Il est utilisé principalement<br />

pour la génération automatique de code exécutable dans un environnement d‟exécution donné.<br />

Le PSM est une représentation de l‟implémentation d‟une technologie particulière. Par exemple,<br />

un PSM concernant la plateforme EJB contiendra des termes spécifiques aux EJB tels que home<br />

interface, remote interface, entity bean, session bean …<br />

Un PIM peut être transformé en un ou plusieurs PSM. En fait, pour chaque plateforme<br />

technologique spécifique, un PSM est généré. Au fur et à mesure de l‟évolution des outils de<br />

génération MDA, cette phase peut devenir de plus en plus automatisée.<br />

Pour l‟élaboration des PSM, deux approches sont préconisées. La première consiste à utiliser<br />

des profils UML pour élaborer les PSM. L‟utilisation de ces profils a le mérite de faciliter les<br />

transformations PIM vers PSM car les PIMs et les PSMs sont tous deux des modèles UML.<br />

La deuxième approche consiste en la définition de méta-modèles propres aux plates-formes.<br />

Cette approche offre une plus grande liberté dans l‟expression des plates-fromes ; cependant, elle<br />

présente l‟inconvénient de ne pas faciliter les transformations PIM vers PSM (Blanc, 2005).


123 Processus de Développement Dirigé par les Modèles des Systèmes Orientés Services Adaptables<br />

CIM<br />

PIM<br />

PSM<br />

Code<br />

Figure 76–Types de transformations MDA (Blanc, 2005)<br />

La figure 76 illustre les principales transformations de modèles définies dans le cadre de<br />

l‟approche MDA. Les transformations préconisées par MDA sont essentiellement les<br />

transformations CIM vers PIM et PIM vers PSM. Généralement, les transformations peuvent être<br />

groupées en :<br />

Transformations CIM vers PIM : Ces transformations visent à construire des<br />

modèles PIM partiels à partir des modèles CIM. Elles permettent de garantir la<br />

traçabilité entre les modèles et les besoins exprimés dans les CIM.<br />

PIM vers PIM : Ces transformations s‟effectuent pour ajouter ou soustraire des<br />

informations aux modèles. Le passage de la phase d‟analyse à la phase de<br />

conception est la plus naturelle des transformations de ce genre. De telles<br />

transformations ne sont pas toujours automatiques, et demandent l‟intervention<br />

du développeur pour ajouter ou soustraire des informations. La plus naturelle<br />

des transformations est l‟enrichissement de PIM en étapes successives afin de<br />

le rendre plus complet.<br />

PIM vers PSM : ces transformations s‟effectuent lorsque les PIM sont<br />

suffisamment enrichis avec des informations pour pouvoir être transformés sur<br />

une plate-forme technologique. Un exemple de ce genre est la transformation


124 Processus de Développement Dirigé par les Modèles des Systèmes Orientés Services Adaptables<br />

d‟un modèle métier en UML vers un modèle UML qui prend en compte la<br />

logique métier en utilisant une plate-forme comme les services Web.<br />

PSM vers PIM : ces transformations s‟effectuent pour séparer la logique métier<br />

de la plate-forme technologique. Par exemple, une transformation d‟un PSM<br />

(par exemple, un modèle UML qui utilise des profils CORBA) qui soustrait la<br />

plate-forme (par exemple, services Web) et retourne que la logique métier.<br />

Particulièrement, ce genre de transformation est le plus demandé dans les<br />

processus de reverse engineering.<br />

PSM vers PSM : ces transformations s‟effectuent lors des phases de<br />

raffinement de plates-formes technologiques, de déploiement, d‟optimisation<br />

ou de reconfiguration.<br />

III.3.2. Le processus de développement dans le contexte de MDA :<br />

MDA comme nouveau paradigme informatique a impacté les processus de développement<br />

logiciels. Certes, L‟approche MDA ne définit pas un processus de développement spécifique<br />

pour le développement des systèmes. Cependant, les modèles et les transformations de modèles<br />

jouent un rôle très important dans le processus de développement des systèmes logiciels dans le<br />

contexte de l‟approche MDA. En fait, les modèles sont les artefacts de chaque activité du<br />

processus de développement. Aussi, chaque activité consiste en une transformation de modèles<br />

d‟un niveau d‟abstraction à un autre.<br />

Un processus de développement MDA (Kadima et al., 2005) (Kleppe et al., 2005) (cf. figure 77)<br />

repose principalement sur une suite de modèles intégrant toutes les dimensions d‟un projet : du<br />

modèle métier à la génération de code. Chaque passage d‟un modèle à un autre se base sur un<br />

raffinement progressif des spécifications des applications et sur des transformations de modèles.<br />

Globalement, un processus de développement dans le cadre de l‟approche MDA définit les<br />

étapes suivantes :<br />

1- Elaboration des modèles d‟exigences (CIM).


125 Processus de Développement Dirigé par les Modèles des Systèmes Orientés Services Adaptables<br />

Phases<br />

Expression<br />

des besoins<br />

Artefacts<br />

Texte<br />

Analyse<br />

Conception de<br />

bas - niveau<br />

PIM<br />

Codage<br />

PSM<br />

Test<br />

Code<br />

Déploiement<br />

Code<br />

Figure 77–Processus de développement MDA des systèmes logiciels<br />

2- Elaboration des modèles indépendants de toute plate-forme (PIM). les PIM doivent être<br />

en théorie, partiellement générés à partir des modèles CIM afin de garantir<br />

l‟établissement des liens de traçabilité.<br />

3- Enrichissement du modèle PIM par étapes successives.


126 Processus de Développement Dirigé par les Modèles des Systèmes Orientés Services Adaptables<br />

4- Choix des plates-formes de mise en œuvre et génération des modèles spécifiques<br />

correspondants (PSM). Ces modèles sont obtenus par une transformation des PIM en y<br />

ajoutant les informations techniques relatives aux plates-formes choisies.<br />

5- Raffinement des PSM jusqu‟à l‟obtention d‟une implémentation exécutable.<br />

Comme illustré sur la figure 77, le processus de développement MDA ne semble pas si différent<br />

des modèles classiques. On y trouve les mêmes phases (partie gauche de la figure 77). Ce qui<br />

caractérise les processus de développement MDA est la nature des artéfacts (partie droite de la<br />

figure 77) générés au cours du processus de développement. En effet, les artéfacts générés dans<br />

chaque phase sont les différents modèles définis par l‟approche MDA à savoir le CIM, PIM et<br />

PSM.<br />

III.4. Processus MDA de développement des SOS adaptables<br />

Comme nous l‟avons présenté dans le chapitre II, VSoaML est un profil UML qui vise la<br />

modélisation et la spécification des systèmes orientés services adaptables indépendamment des<br />

technologies et des plateformes. VSoaML se base principalement sur le service multivues<br />

comme un élément fondamental pour le développement des systèmes orientés services<br />

adaptables.<br />

Dans l‟objectif de rationaliser le développement des systèmes orientés services adaptables aux<br />

différents types d‟utilisateurs en se basant sur VSoaML, il est nécessaire de définir un processus<br />

de développement permettant de guider le développement à partir des exigences métiers. Un tel<br />

processus définit les phases, les activités et les artefacts facilitant ainsi l‟identification, la<br />

spécification et l‟implémentation de services. Un tel processus se base principalement sur le<br />

service multivues comme élément fondamental pour le développement des systèmes orientés<br />

services adaptables. Un tel service a pour caractéristique fondamentale de fournir des interfaces<br />

de service multivues. Chaque interface de service multivues se compose d‟une interface de<br />

service de base accessible à tous les acteurs et d‟un ensemble d‟interfaces de service vues<br />

associées à chaque acteur. L‟objectif de cette section est de définir un processus de<br />

développement des systèmes orientés services adaptables qui permet d‟identifier les services


127 Processus de Développement Dirigé par les Modèles des Systèmes Orientés Services Adaptables<br />

Elaboration des modèles des cas d‟utilisation<br />

CIM<br />

Identification des services par acteur<br />

Identification des services par acteur<br />

PIM-acteur1<br />

PIM-acteur N<br />

raffiné<br />

Spécification des interfaces de services<br />

Spécification des interfaces de services<br />

PIM-acteur1<br />

raffiné<br />

PIM-acteur N<br />

raffiné<br />

Fusion des modèles visuels<br />

PIM global<br />

Transformation des modèles et génération du code<br />

Transformation des modèles PIM vers des PSM<br />

PSMs<br />

Génération du code à partir des PSM<br />

Code<br />

Figure 78–Processus de développement des systèmes orientés services multivues dans le cadre<br />

de l’approche MDA


128 Processus de Développement Dirigé par les Modèles des Systèmes Orientés Services Adaptables<br />

multivues, de les spécifier en identifiant leurs interfaces, leurs opérations et leurs messages<br />

d‟entrés/sorties, etc.<br />

La figure 78 illustre les principales phases de notre processus de développement des SOSs<br />

adaptables (Kenzi et al., 2008c) (Kenzi et al., 2009a). Ce processus est défini dans le contexte de<br />

l‟approche MDA.<br />

Les sections suivantes décrivent les différentes phases de notre processus de développement.<br />

III.4.1. Phase 1: Elaboration des modèles des cas d’utilisation<br />

La première phase de notre processus de développement est l‟élaboration des modèles des cas<br />

d‟utilisation. L‟objectif de cette phase est la capture et la spécification des besoins des utilisateurs<br />

ainsi que la description des processus métiers. Dans cette phase, nous déterminons, en premier<br />

lieu, les différents acteurs du système ainsi que les besoins de chaque acteur via les diagrammes<br />

des cas d‟utilisations. En effet, Les diagrammes cas d‟utilisation jouent un rôle très important<br />

pour l‟identification des besoins des utilisateurs. Ils décrivent de manière exhaustive les exigences<br />

fonctionnelles du système. Notre approche adopte les diagrammes des cas d‟utilisations pour<br />

plusieurs raisons : la majorité des analystes/concepteurs sont familiers avec l‟utilisation des cas<br />

d‟utilisations du fait de leur simplicité. Aussi, les cas d‟utilisations identifiés dans cette étape<br />

deviendront potentiellement des services et les relations entre les cas d‟utilisations sont un<br />

excellent indicateur de la collaboration et la composition des futurs services (Maamar et al,<br />

2007)(Ibrahim et al., 2006).<br />

L‟artefact caractérisant cette phase est le CIM qui contient les cas d‟utilisations ainsi que les<br />

différents acteurs interagissant avec eux. La figure 79 présente les cas d‟utilisation du système<br />

d‟enseignement à distance :


129 Processus de Développement Dirigé par les Modèles des Systèmes Orientés Services Adaptables<br />

Figure 79–Cas d‟utilisation du DLS<br />

III.4.2.<br />

Phase 2: Identification des services par acteur<br />

La phase «Identification des services par acteur» a pour objectif principal la transformation les<br />

exigences métiers capturées à travers les modèles des cas d‟utilisation en une collection de<br />

services. Il s‟agit principalement d‟identifier les services candidats à partir des modèles des cas<br />

d‟utilisation associés à chaque acteur.<br />

L‟artefact clé de cette phase est un ensemble de PIMs associés aux différents acteurs du<br />

système. Chaque PIM se compose des différents services permettant de réaliser les besoins d‟un<br />

acteur spécifique. L‟identification des services se fait en adoptant des règles de refactoring. En<br />

effet, Kim et al. (Kim et al., 2007) ont défini plusieurs règles de refactoring permettant


130 Processus de Développement Dirigé par les Modèles des Systèmes Orientés Services Adaptables<br />

l‟identification des services à partir des modèles de cas d‟utilisation. Chaque cas d‟utilisation est<br />

décomposé en termes d‟un ensemble de tâches permettant la réalisation des besoins des acteurs<br />

qui sont en interaction avec ce cas d‟utilisation. Chaque tâche est définie comme étant une unité<br />

de travail indivisible apportant une valeur ajoutée à l‟utilisateur dans le contexte d‟un processus<br />

métier. Une tâche fait partie des scénarios permettant de réaliser les cas d‟utilisation. Dans cette<br />

phase, un ensemble de tâches sont créés à partir des diagrammes des cas d‟utilisation pour<br />

chaque acteur. Cette phase peut être formalisée en se basant principalement sur les diagrammes<br />

de séquences définis en UML qui jouent un rôle fondamental pour la représentation des<br />

différents scénarios des cas d‟utilisation.<br />

Le refactoring des cas d‟utilisation est la redistribution des comportements en termes de tâches<br />

d‟un cas d‟utilisation à un autre. A partir des tâches des différents cas d‟utilisation, et en<br />

appliquant les règles de refactoring, nous pouvons identifier des cas d‟utilisation bien adaptés.<br />

Kim et al. (Kim et al., 2006) identifient cinq règles de refactoring : la règle de refactoring par<br />

décomposition, la règle de refactoring par équivalence, la règle de refactoring par généralisation,<br />

la règle de refactoring par fusion et la règle de refactoring par suppression.<br />

La règle de refactoring par décomposition est appliquée lorsque nous avons des cas d‟utilisation<br />

compliqués. Dans cette situation, il est nécessaire de faire décomposer ce cas d‟utilisation en des<br />

sous-cas d‟utilisation plus simples. Ceci est effectué en utilisant l‟ensemble des tâches associées<br />

à chaque cas d‟utilisation. En effet, pour chaque cas d‟utilisation, nous élaborons les tâches<br />

permettant de réaliser le cas d‟utilisation. A partir de ces tâches, nous pouvons déduire des<br />

fonctionnalités indépendantes et par conséquent, définir des sous-ensembles de tâches qui<br />

correspondent à des nouveaux cas d‟utilisations.<br />

Le refactoring par équivalence s‟applique à des cas d‟utilisations ayant des tâches équivalentes.<br />

Dans ce cas, nous pouvons conclure que les deux cas d‟utilisations ont le même comportement et<br />

on peut les traiter comme un seul cas d‟utilisation correspondant à un seul service.<br />

Le refactoring par généralisation peut s‟appliquer lorsque nous avons des cas d‟utilisation qui<br />

partagent des tâches communes. Dans ce cas, nous créons un cas d‟utilisation de base contenant<br />

les tâches communes ainsi que de nouveaux cas d‟utilisation étendant le cas d‟utilisation de base.


131 Processus de Développement Dirigé par les Modèles des Systèmes Orientés Services Adaptables<br />

Le refactoring par fusion est appliqué lorsque nous avons des cas d‟utilisation de granularité fine<br />

qui modélisent des fonctionnalités sémantiquement reliées. Dans ce cas, nous fusionnons les<br />

deux cas d‟utilisation pour avoir un cas d‟utilisation plus consistant.<br />

Le refactoring par suppression est défini lorsque nous avons un cas d‟utilisation qui n‟a aucune<br />

relation que ce soit avec les autres cas d‟utilisation ou avec les acteurs du système. Dans cette<br />

situation, le cas d‟utilisation est redondant et par conséquent on peut le supprimer du système.<br />

Dans le cadre de notre étude de cas, nous avons identifié les cas d‟utilisation qui interagissent<br />

avec un acteur prédéfini. Nous décrivons chaque cas d‟utilisation par un ensemble de tâches,<br />

comme présenté dans la figure 80 pour le cas d‟utilisation « assurer Formation » associé à<br />

l‟acteur Enseignant. Pour chaque acteur (Etudiant, Enseignant, Administrateur), nous identifions<br />

les différents modèles métiers se composant des services correspondant et répondant aux besoins<br />

d‟un acteur donné.<br />

T1. L‟enseignant consulte l‟agenda<br />

T2. L‟enseignant gére les forums<br />

T2.1 L‟enseignant consulte un forum<br />

T2.2 L‟enseignant recherche un forum donné<br />

T2.3 L‟enseignant poste un message dans un forum<br />

T3.l‟enseignant gère les tests<br />

T3.1 l‟enseignant ajoute un test<br />

T3.2 L‟enseignant consulte un test<br />

T3.3 L‟enseignant propose une solution à un test<br />

T4. L‟enseignant gére les ateliers<br />

T4.1 L‟enseignant peut consulter un atelier<br />

T4.2 L‟enseignant propose une solution à l’atelier<br />

T5.l‟enseignant gére les devoirs<br />

T5.1 L‟Enseignant peut consulter un devoir<br />

T5.2 L‟Enseignant propose une solution à un devoir<br />

T6. L‟enseignant gérer la documentation d‟une formation.<br />

T6.1 L‟enseignant peut consulter la documentation d‟une formation donnée<br />

T6.2 L‟enseignant ajoute la documentation d‟une fomation<br />

T6.3 l‟enseignant supprime la documentation d‟une formation<br />

T7. L‟enseignant peut gérer les glossaires d‟une formation donnée<br />

T7.1 L‟enseignant consulte un glossaire<br />

T7.2 L‟enseignant ajoute un article dans un glossaire<br />

T7.3 L‟enseignant recherche un article dans un glossaire<br />

T8. L‟enseignant participe dans les chats.<br />

T8.1 L‟enseignant ajoute un chat<br />

T8.2 L‟enseignant modifie un chat<br />

T8.3 L‟enseignant participe à un chat<br />

T9.L‟enseignant gére les examens<br />

T9.1 L‟enseignant consulte l‟agenda des examens<br />

T9.2 L‟enseignant propose le sujet de l‟examen<br />

T9.3 L‟enseignant corrige les copies de l‟examen<br />

T9.4 L‟Enseignant saisit les notes d‟un examen d‟une formation donnée<br />

Figure 80–Scénario associé au cas d’utilisation «assurer Formation» associé à l’acteur<br />

Enseignant


132 Processus de Développement Dirigé par les Modèles des Systèmes Orientés Services Adaptables<br />

En ce qui concerne l‟acteur Enseignant, comme illustré dans la figure 81, le cas d‟utilisation<br />

«Assurer formations» est décomposé entre trois cas d‟utilisation «Documentation», «Examen»,<br />

et «Formation». Chaque cas d‟utilisation est décrit par un ensemble de fonctionnalités<br />

indépendantes. Ainsi, chaque cas d‟utilisation devient un service. Au contraire, le cas<br />

d‟utilisation «Gestion de formations» est décrit par des fonctionnalités qui ont des relations avec<br />

le service « Formation». Dans ce cas, le service identifié sera fusionné avec le service Formation<br />

puisque les deux services fournissent des activités sémantiquement proches.<br />

PIM-Enseignant<br />

Formation<br />

Documentation<br />

Examen<br />

Agenda<br />

Figure 81–Identification des services associés à l’acteur « Enseignant »<br />

La figure 82 montre les différents services qui composent le modèle de services correspondant à<br />

l‟acteur Administrateur. Pour cet acteur, le cas d‟utilisation Inscription est décrit avec des tâches<br />

indépendantes. Dans cette situation, ce cas d‟utilisation devient automatiquement un service. Au<br />

contraire, le cas d‟utilisation «Gestion de formations» est décomposé en de sous-cas d‟utilisation<br />

Agenda, Examen et Formation. Chaque cas d‟utilisation est décrit par un ensemble indépendant<br />

des fonctionnalités indépendantes. Ainsi, chaque cas d‟utilisation deviendra un service.


133 Processus de Développement Dirigé par les Modèles des Systèmes Orientés Services Adaptables<br />

PIM-Administrateur<br />

Formation<br />

Inscription<br />

Examen<br />

Agenda<br />

Figure 82–Identification des services associés à l’acteur «Administrateur»<br />

Figure 83 illustre les différents services qui composent un modèle correspondant à l‟acteur<br />

Etudiant. Pour cet acteur, le cas d‟utilisation «Inscription» est décrit par des ensembles de tâches<br />

indépendantes. Ainsi, ce cas d‟utilisation devient un service. Au contraire, le cas d‟utilisation<br />

«Suivre formation» est décomposé en quatre cas d‟utilisations Agenda, Documentation,<br />

Examen et Formation. Chaque cas d‟utilisation est décrit par des fonctionnalités indépendantes.<br />

En conséquence, chaque cas d‟utilisation devient un service.<br />

PIM-Etudiant<br />

Formation<br />

Inscription<br />

Documentation<br />

Examen<br />

Agenda<br />

Figure 83–Identification des services associés à l’acteur «Etudiant »<br />

III.4.3.<br />

Phase 3 : Spécification des interfaces de services<br />

Un service est caractérisé par ses interfaces fournies aux différents clients du service. Dans cette<br />

phase et après l‟identification de services, vient ensuite l‟étape de la définition des interfaces de


134 Processus de Développement Dirigé par les Modèles des Systèmes Orientés Services Adaptables<br />

services. Chaque interface décrit les fonctionnalités que le service peut fournir à ses clients.<br />

Ainsi, chaque interface de service se compose des opérations fournies par le service ainsi que ses<br />

messages en entrée/sortie. Généralement, les interfaces de services, les opérations de service et<br />

les messages d‟entrée et de sortie sont identifiés lors de la description des cas d‟utilisation via un<br />

ensemble de tâches. En effet, chaque interaction entre un acteur et un service ou entre services<br />

permet l‟identification des opérations ainsi que leurs messages en entrée ou en sortie.<br />

L‟artefact clé caractérisant cette phase est un PIM raffiné qui correspond à un acteur donné. Ce<br />

PIM se base sur les PIMs définis dans la précédente phase. Il se compose des services et de la<br />

spécification de leurs interfaces. La figure 84 et la figure 85 décrivent les interfaces des services<br />

de notre étude de cas correspondant aux acteurs Etudiant et Administrateur. Nous fournissons<br />

pour chaque service ses interfaces associées aux différents acteurs.<br />

PIM raffiné-Etudiant<br />

<br />

Agenda<br />

consulterAgenda() ;<br />

<br />

Documentation<br />

consulterDocumentation()<br />

telechargerDocumentation() ;<br />

proposerSuplementDocumetation() ;<br />

<br />

Examen<br />

consulterCalendrierExamen() ;<br />

consulterExamen() ;<br />

poserQuestionExamen() ;<br />

deposerCopies() ;<br />

consulterNotes() ;<br />

<br />

Formation<br />

consulterFormation() ;<br />

consulterExercice() ;<br />

proposerSollutionExercice() ;<br />

posterMessage() ;<br />

proposerTestSolution() ;<br />

accessProjectRessource() ;<br />

consulterProjet() ;<br />

consulterAnnounceFormation() ;<br />

consultSynopsisFormation ;<br />

consultListFormation() ;<br />

consulterForum() ;<br />

afficherForum() ;<br />

rechercherFOrum() ;<br />

consulterDevoir() ;<br />

afficherDevoir() ;<br />

rechercherDevoir() ;<br />

consulterGlossaire() ;<br />

afficherGlossaire() ;<br />

ajouterArticleGlossaire() ;<br />

importerGlossaire() ;<br />

consulterTest() ;<br />

afficherTest() ;<br />

afficherChat() ;<br />

participerChat() ;<br />

Figure 84–PIM raffiné associé à l’acteur Etudiant


135 Processus de Développement Dirigé par les Modèles des Systèmes Orientés Services Adaptables<br />

PIM raffiné-Administrateur<br />

<br />

Inscription<br />

consulterDateLimite();<br />

consulterListeFormation();<br />

deciderInscription();<br />

ajouterListeAttente() ;<br />

fixerFraisInscription() ;<br />

Examen<br />

consulterCalendrierExamen();<br />

definirCalendrierExamen();<br />

consulterNotesEtudiants();<br />

Formation<br />

ajouterNouvelleFormation();<br />

ajouterAnnounceFormation();<br />

supprimerFormation();<br />

affecterResponsableFormation();<br />

consulterSynopsisFormation();<br />

consulterListFormation();<br />

Agenda<br />

ConsulterAgenda()<br />

ajouterEvenement()<br />

supprimerEvenement()<br />

Figure 85– PIM raffiné associé à l’acteur Administrateur<br />

III.4.4.<br />

Phase 4 : Fusion des modèles visuels<br />

Une fois les modèles par acteurs élaborés, la phase de fusion de ces modèles peut commencer.<br />

L‟objectif de cette phase est la production d‟un modèle global à base de services représentant les<br />

différents besoins des différents acteurs sans pour autant perdre les spécificités de chaque acteur.<br />

La première étape de la phase de fusion consiste en la comparaison des différents modèles<br />

associés aux différents acteurs élaborés dans les précédentes phases pour éventuellement détecter<br />

les incohérences ou les ambiguïtés sur les services (nommages, messages d‟entrée/sortie des<br />

opérations, interfaces de services, services). Une fois cette étape élaborée, nous procédons par la<br />

suite à produire un modèle métier global multidimensionnel représentant notre système. Dans<br />

cette phase, chaque service apparaissant dans plusieurs modèles visuels est un service multivues<br />

ayant une interface de service multivues. Cette interface se compose d‟une interface de service<br />

de base contenant les opérations communes entre les différents services identifiés dans les<br />

différents modèles associés aux acteurs, et un ensemble d‟interfaces de services vues<br />

représentant les besoins et les spécificités de chaque acteur.<br />

La phase de fusion peut être formalisée mathématiquement en se basant sur la théorie des<br />

graphes. En effet, notre équipe a déjà développé une approche à base des graphes pour la fusion<br />

des diagrammes de classes UML (Anwar, 2009) pour produire des diagrammes des classes


136 Processus de Développement Dirigé par les Modèles des Systèmes Orientés Services Adaptables<br />

multivues. Dans le cadre de notre étude de cas, le service Agenda, Inscription, Formation,<br />

Examen et Documentation apparaissent dans plusieurs modèles visuels. Dans ce cas, nous<br />

concluons que ces services sont des services multivues. En conséquence, nous procédons à la<br />

définition de leurs interfaces de service multivues.<br />

Après l‟exécution des activités de cette phase, nous obtenons un PIM global qui se compose des<br />

différents services multivues ainsi que de leurs interfaces de service multivues. La Figure 86<br />

illustre l‟interface de service multivues du service Formation.<br />

Formation<br />

<br />

Formation_Administrateur<br />

<br />

ajouternouvelleFormation();<br />

ajouterCalendrierFormation() ;<br />

ajouterAnnounceFormation() ;<br />

supprimerFormation() ;<br />

affecterResponsableFormation() ;<br />

<br />

Formation<br />

<br />

Formation_Etudiant<br />

consulterFormation() ;<br />

consulterExercice() ;<br />

proposerSollutionExercice() ;<br />

posterMessage() ;<br />

proposerTestSolution() ;<br />

accessProjectRessource() ;<br />

consulterProjet() ;<br />

consulterAnnounceFormation() ;<br />

<br />

Formation<br />

consultSynopsisFormation ;<br />

consultListFormation() ;<br />

<br />

<br />

Course_Enseignant<br />

<br />

ajouterFormation();<br />

supprimerFormation() ;<br />

ajouterExercice() ;<br />

ajouterSolutionExercice() ;<br />

proposerProjet() ;<br />

poserQuestion() ;<br />

proposerForum() ;<br />

proposerTest() ;<br />

ajouterAnnounceFormation() ;<br />

repondreQuestionsEtudiants() ;<br />

Figure 86–Extrait du résultat de l’étape de fusion du service Formation


137 Processus de Développement Dirigé par les Modèles des Systèmes Orientés Services Adaptables<br />

III.4.5.<br />

Phase 5: Transformation des modèles et génération de code<br />

L‟objectif des phases précédentes est la spécification d‟un système orienté service<br />

indépendamment des technologies d‟implémentations (dotNet, JWSDP, etc) et des standards de<br />

la technologie des services web (e.g., WSDL, UDDI, SOAP, BPEL4WS, etc). Le résultat de ces<br />

phases est un modèle métier de haut niveau se composant principalement d‟un ensemble de<br />

services multivues qui décrivent la structure et les fonctionnalités du système à concevoir. Pour<br />

la prise en compte des plates-formes technologiques, l‟objectif de cette phase est la génération de<br />

code à partir des modèles métiers définis en se basant sur un ensemble de transformations. Cette<br />

génération de code concerne la génération de l‟implémentation et de la description des services<br />

multivues.<br />

Pour atteindre ces objectifs, la phase de transformation de modèles peut être effectuée en la<br />

décomposant en plusieurs étapes : (1) la première étape consiste en la création des métamodèles<br />

ou l‟utilisation des métamodèles existants pour la construction des PIMS. Généralement, ces<br />

métamodèles doivent être conformes au MOF. Dans notre cas de figure, nous utilisons le<br />

métamodèle de notre profil défini VSoaML qui permet la modélisation et la spécification des<br />

systémes orientés services adaptables. Ce métamodèle est conforme au MOF. (2) La deuxième<br />

étape de la phase de transformation vise principalement le choix ou la création des métamodèles<br />

en vue de l‟élaboration des plateformes technologiques. Il s‟agit de choisir un métamodèle<br />

existant d‟une plateforme technologique telles que .Net ou J2EE ou créer un nouveau<br />

métamodèle qui permet la définition d‟un PSM dans le cas de l‟apparition d‟une nouvelle<br />

technologie surtout si on sache que les technologies évoluent rapidement et sans cesse.<br />

(3) la troisième étape de la phase de transformation permet la définition des correspondances<br />

entre le métamodèle source (i.e le métamodèle du PIM) et le métamodèle cible (i.e , le<br />

métamodèle du PSM). Pour chaque élément constituant le métamodèle, il faut identifier les<br />

éléments du métamodèle cible qui lui sont similaires et équivalents.<br />

(4) la quatrième étape vise la définition des règles de transformations via l‟utilisation d‟un<br />

langage de transformation donné tel que ATL (ATL ,2004), YATL, BOTL (Bidirectional Object


138 Processus de Développement Dirigé par les Modèles des Systèmes Orientés Services Adaptables<br />

oriented Transformation Language) (Marschall et al., 2003) tout en se basant sur les<br />

correspondances définies dans l‟étape précédente.<br />

(5) la cinquième étape de la phase de transformation vise l‟utilisation de la définition de<br />

transformation pour pouvoir transformer un modèle métier d‟entrée en un modèle de sortie<br />

spécifique à une plateforme (PSM). Ensuite, nous vérifions si les PSMs générés sont complets<br />

ou pas. S‟ils sont incomplets, cette étape nécessite l‟intervention des développeurs pour les<br />

compléter.<br />

(6) la dernière étape de cette phase a pour objectif la génération du code, des fichiers de<br />

configuration et de déploiement à partir des PSMs finaux générés lors des précédentes étapes.<br />

PIM(VSoaML)<br />

Tranformation des modéles<br />

PSMs<br />

Génération du code<br />

Code<br />

Figure 87-Phase de transformation de modèle et génération du code


139 Processus de Développement Dirigé par les Modèles des Systèmes Orientés Services Adaptables<br />

III.5. Conclusion<br />

Dans le cadre de ce chapitre, nous avons présenté un processus de développement des systèmes<br />

orientés services adaptables aux différents types d‟utilisateurs en se basant sur le profil VSoaML.<br />

La caractéristique principale d‟un tel processus est sa définition dans le cadre de l‟approche<br />

MDA. Ce processus définit les phases, les artéfacts et les activités nécessaires pour identifier,<br />

spécifier et implémenter les services multivues. Les phases principales de ce processus sont :<br />

(1) l‟élaboration des cas d‟utilisations permettant de formaliser les besoins métiers des differénts<br />

utilisateurs<br />

(2) l‟identification des services par acteurs (rôles)<br />

(3) la spécification des interfaces des services associées à chaque acteur<br />

(4) la fusion des différents modèles visuels,<br />

(5) la phase de transformation des différents modèles et de génération du code vers des<br />

plateformes d‟implémentation.<br />

Ce processus est illustré à travers une étude de cas concernant un système d‟enseignement à<br />

distance.<br />

Après avoir présenté le profil VSoaML (Cf.chapitre 2) ainsi que le processus de développement<br />

des SOSs, deux composantes de notre approche d‟ingénierie des SOSs adaptables, l‟objectif du<br />

chapitre suivant est de présenter la troisième composante de cette approche. Il s‟agit de l‟outil<br />

permettant l‟automatisation de la génération du code à partir des modèles métiers de haut niveau<br />

exprimé en se basant sur notre profil et élaboré selon notre processus de développement.


140 VSoaMLTool : Outil de génération de code automatique<br />

IV. VSoaMLTool : Outil de génération de code automatique<br />

IV.1. Introduction<br />

Ce chapitre présente l‟outil VSoaMLTool (Kenzi et al., 2009b) ayant pour objectif la génération<br />

de code à partir des modèles métiers abstraits de haut niveau. VSoaMLTool est défini dans le<br />

cadre de l‟ingénierie dirigée par les modèles en se basant plus particulièrement sur les standards<br />

et les concepts de l‟approche MDA. En effet, après l‟élaboration des modèles métiers,<br />

VSoaMLTool se base principalement sur des transformations ciblant différentes plateformes<br />

technologiques pour la génération des différents artéfacts d‟un Système Orienté Services.<br />

VSoaMLTool peut être vu comme étant un atelier de génie logiciel associé au profil VSoaML.<br />

Comme nous l‟avons présenté dans le chapitre 2, VSoaML permet de modéliser et de spécifier<br />

un système orienté service adaptable indépendamment des plates-formes d‟implémentation<br />

(J2EE, dotNet, etc.) et les standards de la technologie des services web (SOAP, WSDL, UDDI,<br />

BPEL4WS). VSoaML se base fondamentalement sur le concept de service multivues comme une<br />

entité de modélisation capable de représenter les besoins et les spécificités des utilisateurs<br />

suivant leurs profils. Le service multivues est une nouvelle entité de modélisation qui fournit, en<br />

plus des interfaces de services, des interfaces qui se caractérisent par leur flexibilité et<br />

adaptabilité aux différents acteurs interagissant avec le service. Ce profil est utilisé<br />

essentiellement comme formalisme de modélisation permettant l‟élaboration d‟un PIM. Ce PIM<br />

fera l‟objet de transformations en vue de la génération de la description de chaque service<br />

multivues et de son implémentation suivant différentes plateformes technologiques (e.g., J2EE,<br />

.Net).<br />

La première transformation concerne la génération de la description de chaque service multivues<br />

composant le PIM d‟un système donné. En effet, nous avons défini une légère extension au<br />

standard WSDL pour la description de service multivues, appelée MVWDL. Cette extension de<br />

WSDL permet la représentation en XML aussi bien des interfaces d‟un service donné que les<br />

informations concernant les acteurs interagissant avec ce service. Cette transformation est définie


141 VSoaMLTool : Outil de génération de code automatique<br />

par un ensemble de règles de transformation en utilisant le langage ATL comme un langage de<br />

transformation de modèles.<br />

La deuxième transformation concerne la génération du code constituant l‟implémentation de<br />

chaque service multivues ciblant principalement la plateforme d‟implémentation J2EE.<br />

Chaque transformation de modèles a été décomposée en deux étapes : la première étape concerne<br />

la spécification des correspondances. La deuxième étape permet la définition de transformations<br />

en se basant sur le langage de transformation de modèle ATL. En fait, la spécification de<br />

correspondances vise à définir les correspondances entre les éléments des métamodèles source et<br />

cible, et la définition de transformations permet de décrire en détail et d‟exécuter les étapes de la<br />

transformation d‟un modèle en un autre modèle en respectant la spécification de<br />

correspondances. Cette approche va dans le même sens que la vision de l‟OMG pour le<br />

développement des systèmes informatiques à savoir la séparation des préoccupations. En fait,<br />

une spécification de correspondances peut être vue comme un PIM et une définition de<br />

transformations comme un PSM.<br />

Une fois générées la description de chaque service multivues et son implémentation, nous<br />

illustrons comment faire le déploiement de tels artefacts suivant l‟architecture SOA.<br />

La structure de ce chapitre est la suivante. La section 2 présente un aperçu global de l‟outil<br />

VSoaMLTool en identifiant ses principaux modules et leurs fonctionnalités. La section 3 illustre<br />

les différentes transformations effectuées par l‟outil VSoaMLTool pour la génération<br />

automatique de code. La section 4 permet d‟illustrer le déploiement des artefacts générés par<br />

l‟outil VSoaMLTool selon l‟architecture SOA.<br />

IV.2. VSoaMLTool : modules et fonctionnalités<br />

VSoaML est un profil UML capable de décrire un système orienté service adaptable à un haut<br />

niveau d‟abstraction. Il permet d‟exprimer des modèles métiers indépendamment des platesformes<br />

d‟implémentation et des standards. Pour outiller ce profil, nous avons développé un<br />

outil logiciel, appelé VSoaMLTool, à l‟instar d‟Objecteering ou RSA. VSoaMLTool permet


142 VSoaMLTool : Outil de génération de code automatique<br />

l‟édition des modèles métiers, de transformer ces modèles en vue de la génération du code<br />

concret. Il permet aussi le déploiement des différents artefacts générés d‟un SOS adaptable : les<br />

descriptions des services multivues ainsi que leurs implémentations selon différentes plateformes<br />

technologiques. Le module déploiement a pour objectif principal le déploiement des différents<br />

services d‟un SOS adaptable. Il s‟agit principalement de déployer les implémentations ainsi que<br />

des descriptions de chaque service multivues suivant l‟architecture de référence de la technologie<br />

des services web. La figure 88 illustre les différents modules de l‟outil VSoaMLTool :<br />

Module Edition de<br />

modèle<br />

<br />

PIM(VSoaML)<br />

<br />

Module Transformation de modèles<br />

<br />

<br />

<br />

Description<br />

Implémentation (Java,<br />

C#)<br />

Composition de services BPEL<br />

<br />

<br />

Module Déploiement<br />

<br />

Figure 88–Modules de VSoaMLTool<br />

Dans le cadre de ce chapitre, nous nous concentrons tout particulièrement sur le module de<br />

transformation de modèles et de génération du code ainsi que le module de déploiement. Le<br />

module d‟édition des modèles n‟est pas encore développé. Nous projetons utiliser les outils<br />

associés aux DSL pour la réalisation de ce module. En particulier, le GMF (Graphical Modeling<br />

Framework) qui permet le développement de générateurs d‟éditeurs de modèles.


143 VSoaMLTool : Outil de génération de code automatique<br />

IV.3. VSoaMLTooL : Transformation de modèle et génération de code<br />

Pour bénéficier des avantages de MDA, nous avons défini une approche MDA pour le<br />

développement des systèmes orientés services adaptables. Ainsi, pour le développement d‟un<br />

système orienté services adaptable, nous définissons premièrement un PIM en se basant sur notre<br />

profil VSoaML. Ce PIM reflète la structure et les fonctionnalités d‟un système suivant les<br />

acteurs interagissant avec chaque service. Pour chaque service qui compose le système, nous<br />

représentons les exigences métiers en identifiant les fonctionnalités communes et les<br />

fonctionnalités variant d‟un acteur à un autre. Les fonctionnalités communes requises par tous les<br />

acteurs sont représentées en utilisant l‟élément de modélisation “baseServiceInterface” et les<br />

fonctionnalités spécifiques à chaque acteur sont représentées en utilisant l‟élément de<br />

modélisation “ViewServiceInterface”.<br />

Une fois le PIM élaboré en utilisant le profil VSoaML, nous définissons deux transformations :<br />

une transformation pour la génération de la description de chaque service multivues composant<br />

le système. Une deuxième transformation permettant la génération des implémentations de<br />

service multivues ciblant la plateforme J2EE.<br />

La figure 89 illustre les différentes transformations définies dans le cadre de notre approche.<br />

PIM (VSoaML)<br />

et<br />

Transformation<br />

modèle vers<br />

modèle<br />

MVWSDL(PSM)<br />

J2EE(PSM)<br />

Transformation<br />

modèle vers code<br />

Code (document<br />

MVWSDL)<br />

Code (Code Java)<br />

Figure 89–Processus de génération de code à partir des PIMs (VSoaML)<br />

La démarche MDA permettant d‟effectuer la transformation des modèles PIM en vue de la


144 VSoaMLTool : Outil de génération de code automatique<br />

génération du code selon différentes plateformes, se définit en plusieurs étapes. Premièrement,<br />

nous commençons par la création ou l‟utilisation des métamodèles existants des PIMs et des<br />

PSM. En deuxième lieu, nous spécifions les correspondances entre le métamodèle source et le<br />

métamodèle cible. Il s‟agit de définir les équivalences entre un élément du métamodèle source et<br />

les éléments qui lui sont équivalents du métamodèle cible. En troisième lieu, nous définissons les<br />

règles de transformation en utilisant un langage de transformation de modèles donné. En<br />

quatrième lieu, nous appliquons ces règles de transformation sur un modèle métier en entrée,<br />

pour obtenir, en sortie, un modèle spécifique à une plateforme donnée. En cinquième lieu, on<br />

vérifie ce PSM, s‟il est incomplet, on le complète. Dans le cas contraire, nous générons le code.<br />

Les sections suivantes illustrent le processus défini dans la figure 85. La section 4 présente le<br />

PIM de notre étude de cas à base de service multivues. La Section 5 illustre le métamodèle du<br />

profil VSoaML. La section 6 décrit la transformation du PIM(VSoaML) permettant la génération<br />

du code MVWSDL. La section7 décrit les différentes transformations permettant la génération<br />

du code java par transformation du PIM(VSoaML). La section 8 décrit le module de déploiement<br />

suivant l‟architecture SOA des artefacts générés.<br />

IV.4. Le PIM (VSoaML) de l’étude de cas DLS<br />

Notre étude de cas est une version simplifiée d‟un Système d‟enseignement à distance. Notre<br />

objectif est d‟utiliser cette version simplifiée pour illustrer et valider notre approche. Ainsi, nous<br />

avons identifié certains services multivues du DLS : Inscription, Formation, Documentation et<br />

Examen. Ces services sont multivues du moment où ils interagissent avec plusieurs acteurs :<br />

Enseignant, Etudiant et Administrateur. Le service Inscription fournit les fonctionnalités<br />

nécessaires à l‟étudiant pour faire son inscription. Il permet à l‟administrateur de gérer les<br />

inscriptions des étudiants, de fixer les frais d‟inscription aux différentes formations et décider des<br />

inscriptions des étudiants. Le service Formation fournit à l‟étudiant les fonctionnalités lui<br />

permettant de suivre des formations. Ils peuvent accéder aux exercices, poser des questions,<br />

consulter les projets d‟une formation donnée, faire des quiz et envoyer des messages aux forums<br />

de discussion spécifiques à une formation donnée. Le service Formation permet à l‟étudiant de<br />

créer des formations, de répondre aux questions des étudiants, de proposer des exercices et de<br />

répondre aux messages des forums de discussion. L‟acteur administrateur utilise le service


145 VSoaMLTool : Outil de génération de code automatique<br />

Formation pour fixer les frais d‟une formation donnée, pour gérer son calendrier et pour affecter<br />

les responsables des formations. Le service Documentation permet à un enseignant de charger les<br />

documents concernant une formation spécifique, de mettre à jour ou de supprimer leur contenu.<br />

Il permet aux étudiants de télécharger les documentations nécessaires (fichiers pdf, audio/video,<br />

etc). Le service Examen permet à l‟étudiant de passer des examens, de télécharger le sujet, de<br />

poser des questions de compréhension et de consulter ses notes. Il permet à l‟enseignant de<br />

proposer un examen, de répondre aux questions des examens.<br />

Le service multivues La spécification associée L‟interface de service multivues<br />

associée<br />

Service Formation<br />

<br />

Formation<br />

MultiviewServiceinterface<br />

Formation<br />

Service Documentation<br />

<br />

Documentation<br />

MultiviewServiceinterface<br />

Documentation<br />

Service Examen<br />

<br />

Examen<br />

MultiviewServiceinterface<br />

Examen<br />

Service Inscription<br />

<br />

Inscription<br />

MultiviewServiceinterface<br />

Inscription<br />

Tableau 9–Services multivues du Systéme d’Enseignement à distance<br />

Pour élaborer notre PIM en utilisant le profil VSoaML, nous avons pris en compte les<br />

caractéristiques du service en SOC. En effet, un service est autonome, indépendant et peut être<br />

utilisable dans plusieurs contextes et processus métiers. Ainsi, dans notre cas d‟étude nous avons<br />

identifié les services qui permettent l‟implémentation des fonctionnalités principales du DLS.<br />

Chaque service identifié est autonome, indépendant et il encapsule des fonctionnalités cohésives.


<br />

146 VSoaMLTool : Outil de génération de code automatique<br />

Le Tableau 9 présente les services multivues du DLS ainsi que leurs spécifications (chaque<br />

service a une « Specification » et chaque spécification contient la description des interfaces de<br />

services ainsi que la description des interfaces de service multivues). La figure 90 illustre les<br />

différents types d‟interfaces des différents services multivues. Cette figure illustre la structure<br />

Le PIM (VSoaML) du DLS<br />

<br />

Formation_Enseignant<br />

<br />

Formation_Enseignant<br />

<br />

Examen_Enseignant<br />

<br />

Course_Base<br />

ajouterFormation() ;<br />

supprimerFormation() ;<br />

ajouterExercice() ;<br />

ajouterSolutionExercice() ;<br />

proposerProjet() ;<br />

poserQuestion() ;<br />

ProposerForum(),<br />

repondreQuestionsEtudiants() ;<br />

proposerTest() ;<br />

proposerQuiz() ;<br />

consultSynopsisFormation() ;<br />

consultListFormation() ;<br />

<br />

ajouterExamen() ;<br />

repondreQuestionExamen() ;<br />

evaluerExamen() ;<br />

ajouterNotes() ;<br />

<br />

Exam_Student<br />

consulterCalendrierExamen() ;<br />

<br />

<br />

Formation_Etudiant<br />

<br />

<br />

consulterExamen() ;<br />

poserQuestionsExamen() ;<br />

consulterNotest() ;<br />

<br />

consulterFormation() ;<br />

consulterExercice() ;<br />

proposerSolutionExercice() ;<br />

posterMessage();<br />

proposeSolutionTest() ;<br />

consulterAnnounceFormation() ;<br />

<br />

Examen_Administrateur<br />

consulterNotesEtudiant() ;<br />

definirCalendrierExamen() ;<br />

<br />

Course_Professor<br />

ajouterNouvelleFormation();<br />

ajouterCalendrierFormation(),<br />

supprimerFormation() ;<br />

affecterResponsableFormation() ;<br />

<br />

Doc_enseignant<br />

<br />

Doc_Enseignant<br />

<br />

Inscription_Etudiant<br />

<br />

Inscription<br />

chargerDocumentation() ;<br />

updateDocumentation() ;<br />

supprimerDocumentation() ;<br />

consulterDocumentation()<br />

;<br />

demanderInscription() ;<br />

payerFraisInscription();<br />

consulterDateLimite() ;<br />

consulterListFormation() ;<br />

<br />

<br />

<br />

Insciption_Administrateur<br />

<br />

<br />

Doc_etudiant<br />

deciderInscription() ;<br />

ajouterListeAttente() ;<br />

fixerFraisInscription() ;<br />

telechargerDocumentation() ;<br />

proposerSuplementDocumentati<br />

on() ;<br />

Figure 90–Extrait des interfaces de service multivues des services multivues du DLS


147 VSoaMLTool : Outil de génération de code automatique<br />

des interfaces de services multivues. En fait, chaque interface de service multivues est composée<br />

d‟une interface de service de base qui représente les fonctionnalités communes entre les<br />

différents acteurs. Les interfaces de service vues représentent les fonctionnalités spécifiques à<br />

chaque acteur.<br />

IV.5. Le métamodèle du profil VSoaML<br />

Comme nous l‟avons expliqué dans la section IV.3, la transformation de modèle nécessite la<br />

création de nouveaux métamodèle ou l‟utilisation des métamodèles existants. Dans notre cas de<br />

Figure 91–Métamodèle VSoaML


148 VSoaMLTool : Outil de génération de code automatique<br />

figure, et dans l‟objectif de l‟automatisation de la génération de code, nous avons défini un<br />

métamodèle de notre profil VSoaML comme expliqué dans le deuxième chapitre. La figure 91<br />

illustre le métamodèle du profil VSoaML.<br />

IV.6. Du PIM (VSoaML) vers des descriptions (MVWSDL)<br />

L‟objectif de cette section est de présenter les transformations définies pour la génération des<br />

descriptions MVWSDL à partir d‟un PIM exprimé en VSoaML. Dans un premier temps, nous<br />

présentons MVWSDL notre extension du standard MVWSDL ainsi que son métamodèle. Dans<br />

un second temps, nous présentons la transformation du PIM élaboré en utilisant le profil<br />

VSoaML vers un PSM à base de MVWSDL en spécifiant les correspondances entre métamodèle<br />

source et cible et en définissant les règles de transformation en utilisant un langage de<br />

transformation de modéles tel que ATL (ATL, 2004).<br />

IV.6.1.1<br />

Le Multiview WSDL pour la description des services multivues<br />

WSDL (Web Service Description Language) est un standard W3C qui définit un format de<br />

description des services web fondé sur XML. Les services sont représentés en WSDL comme un<br />

maillage de terminaisons agissant sur des messages contenant des informations sur des<br />

documents ou des procédures indépendamment des protocoles de transport de messages utilisés.<br />

WSDL permet principalement la description d‟un service web et plus spécifiquement :<br />

Ses interfaces<br />

Ses opérations fournies<br />

Les paramètres d‟entrée/sortie<br />

Le type des paramètres de chaque opération<br />

Les points d‟entrées (URL) des différentes opérations.<br />

Dans la pratique, le standard WSDL définit un langage pour l‟élaboration des documents XML<br />

pour la description des services. Chaque document WSDL contient une ou plusieurs définitions<br />

de Services Web reprenant, pour chacun d‟entre eux, les différents composants (types de<br />

données, messages, types de port, liaisons et ports). Il est également possible d‟utiliser la balise<br />

pour fragmenter et rassembler les documents WSDL. Comme pour SOAP, la définition<br />

de WSDL mentionne des Namespaces de référence où se trouvent les définitions XMLSchema


149 VSoaMLTool : Outil de génération de code automatique<br />

des balises WSDL elles-mêmes. Le squelette général d‟un document WSDL est illustré par le<br />

schéma suivant (cf. figure 92) :<br />

<br />

<br />

…<br />

<br />

<br />

…<br />

… <br />

…<br />

<br />

<br />

…<br />

<br />

<br />

… <br />

… <br />

<br />

<br />

Figure 92–Structure d'un document WSDL<br />

Plusieurs extensions du standard WSDL ont été proposées dans la littérature pour la prise en<br />

compte de différentes préoccupations non prises en compte initialement par le standard WSDL.<br />

Dans ce sens, Q-WSDL, C-WSDL, SAWSDL(Farrel et al., 2007) ont été définies pour la prise en<br />

compte respectivement de la qualité de service, du contexte ou de la sémantique. Dans notre<br />

approche, nous proposons MVWSDL comme une légère extension du standard WSDL. En effet,<br />

le standard WSDL définit un schéma XML pour la description du service. Ce schéma XML se<br />

base sur six éléments principaux (Types, Messages, PortType, Binding, Port, Service) permettant<br />

de définir les interfaces de services, leurs opérations, les paramètres d‟entrée/sortie de chaque<br />

opération, le type de ces paramètres ainsi que les points d‟entrée (URL) de ces opérations.<br />

Cependant, ce standard ne permet pas la prise en compte du profil de l‟acteur interagissant avec<br />

le service. En effet, deux clients de service avec de profils différents peuvent avoir la même<br />

description WSDL. Ainsi, nous définissons une extension du standard WSDL pour la description<br />

d‟un service multivues. Une telle extension est appelée MVWSDL (MultiView WSDL). Cette<br />

extension permet de faire adapter chaque élément du WSDL à l‟acteur interagissant avec le<br />

service. L‟objectif de cette extension est, d‟une part, de décrire dans un seul document XML<br />

l‟ensemble des interfaces fournies des services qu‟elles soient simples ou multivues. D‟autre part,<br />

elle permet d‟adapter cette description à l‟exécution suivant le profil de l‟utilisateur interagissant


150 VSoaMLTool : Outil de génération de code automatique<br />

avec le service en fournissant à chaque utilisateur la description WSDL standard correspondant à<br />

son profil.<br />

Dans l‟objectif de génération de code conformément aux principes et aux standards de<br />

l‟approche MDA, nous avons établi le métamodèle de MVWSDL comme une extension du<br />

métamodèle WSDL pour la prise en compte du type d‟acteur interagissant avec le service via<br />

l‟ajout de la métaclasse «actor» au métamodèle WSDL. Une telle métaclasse permet de définir le<br />

type d‟acteur interagissant avec le service, et s‟associe aux principales métaclasses du<br />

métamodèle WSDL (cf. figure 93) qui doivent s‟adapter aux profils des utilisateurs.<br />

Le métamodèle de MVWSDL définit les éléments suivants :<br />

Definition : Definition est l‟élément principal du métamodèle de MVWSDL. il<br />

contient les éléments : Import, Type, Message, PortType, Binding et Service<br />

Import : cet élément permet l‟association d‟un espace de noms à la localisation<br />

d‟un document XML.<br />

Types : cet élément est utilisé pour la définition des types simples ou<br />

complexes en se basant sur un schéma XML. Dans l‟objectif de maximiser<br />

l‟interopérabilité entre plateformes hétérogènes, WSDL adopte le XSD comme<br />

un système de types.<br />

Message : cet élément permet la représentation abstraite des données que le<br />

service envoie ou reçoit. Chaque Message se compose des parties (élément<br />

Part) permettant la description d‟une partie d‟un message.<br />

PortType : cet élément permet la définition des interfaces de service. Chaque<br />

PortType se compose d‟un ensemble d‟opérations abstraites. Chaque opération<br />

possède en entrée /sortie un message. les opérations constituant les portType<br />

d‟un service sont caractérisées par les éléments onewyaoperation,<br />

RequestResponseoperation, sollicitResponse et notificationOperation.<br />

Binding : l‟élément binding permet de spécifier un protocole concret de<br />

transport (SOAP, HTTP/GET, SMTP, etc.). Il permet aussi de spécifier les<br />

formats de données pour les opérations et les messages définis dans un<br />

portType donné. L‟élément bindingOperation contient les éléments input,<br />

output et fault décrits selon la réalisation concrète de l‟appel.


151 VSoaMLTool : Outil de génération de code automatique<br />

Port : cet élément permet de spécifier une adresse d‟une liaison définissant un<br />

simple point terminal de communication.<br />

Service : cet élément permet de décrire un service en identifiant ses interfaces<br />

et leur localisation<br />

Actor : cet élément permet la définition des acteurs potentiels intéragissant avec<br />

le service. Il est en relation avec les éléments principaux du métamodèle<br />

WSDL (Types, Message, PortType, Binding, Service).<br />

Figure 93–Métamodèle MVWSDL<br />

IV.6.1.2<br />

Du PIM(VSoaML) vers PSM(MVWSDL)<br />

Dans le cadre de l‟approche MDA, la transformation d‟un PIM vers un PSM nécessite<br />

premièrement la spécification des correspondances entre le métamodèle source et le métamodèle<br />

cible. Ces correspondances sont définies en étudiant les équivalences entre les éléments du<br />

métamodèle source et les éléments du métamodèle cible. En effet, deux ou plusieurs éléments des<br />

différents métamodèles s‟ils sont compatibles et ne présentent pas de contradiction entre eux.<br />

Dans notre cas de figure, nous utilisons le métamodèle de VSoaML comme métamodèle source et


152 VSoaMLTool : Outil de génération de code automatique<br />

le métamodèle de MVWSDL comme métamodèle cible. Le tableau 10 illustre les<br />

correspondances entre les éléments de ces deux métamodèles ainsi que les règles de<br />

transformation y associées.<br />

Après l‟identification des correspondances entre les éléments des deux métamodèles, nous<br />

procédons à la définition des règles de transformation en utilisant le langage de transformation<br />

ATL (ATL, 2004). Ce dernier fournit un plugging sous Eclipse (Eclipse, 2010) dédié à<br />

l‟implémentation des règles de transformation.<br />

Eléments du<br />

métamodèle VSoaML<br />

Eléments du métamodèle<br />

MVWSDL<br />

Régle de transformation<br />

Specification Definition Speci2definition<br />

BaseServiceInterface<br />

Types, PortType,<br />

Binding, Service,<br />

BaseInterface2WSDL<br />

ViewServiceInterface<br />

Types, Portype,<br />

Binding, Service<br />

ViewInterface2WSDL<br />

Parameter Part Param2part<br />

ServiceOperation<br />

PortypeOperation,<br />

Operation2operation<br />

BindingOperation,<br />

InputMessage,<br />

ouputMessage,<br />

ComplexType<br />

dataType Types dataType2type<br />

Tableau 10–Correspondances VSoaML/MVWSDL<br />

La règle de transformation Viewinterface2WSDL permet la création des instances de cinq<br />

éléments du métamodèle du MVWSDL : PortType, Types, Binding, Port et Service. Ainsi,


153 VSoaMLTool : Outil de génération de code automatique<br />

Chaque instance de l‟élément PortType est assignée avec les valeurs des attributs et les<br />

références de l‟élément ViewServiceInterface du métamodèle du SMV. L‟attribut nom de<br />

l‟instance Porttype créée est affecté avec la valeur v.name. La référence actor est affectée avec la<br />

valeur du nom de l‟acteur (v.actor.name) associé à l‟élément viewinterface du métamodèle<br />

MVservice!viewInterface. La référence operations est affectée avec toutes les opérations créés en<br />

faisant appel à la règle de la transformation. La règle Viewinterface2WSDL crée aussi une<br />

instance de l‟élément Types associée à chaque acteur en créant un schéma XML. Pour chaque<br />

schema généré, ses attributs et références sont affectés avec les attributs et les références de<br />

l‟élément viewinterface. Dans ce sens, l‟attribut namespace est initialisée avec le nom de<br />

l‟interface alors que la référence complextype est affectée avec les types de données complexes<br />

crée avec la règle.<br />

La figure 94 illustre cette règle de transformation.<br />

rule Viewinterface2WSDL{<br />

from v: MVService!viewInterface<br />

to out : WSDL!PortType(<br />

name


154 VSoaMLTool : Outil de génération de code automatique<br />

BaseServiceInterface vers cinq éléments du métamodèle : Types, PortType, Binding, Service et<br />

Port. Cette règle est très similaire à la règle de transformation ViewInterface2ws. La différence<br />

principale consiste en l‟attribut actor. En effet, cet attribut contrairement à la précédente règle est<br />

affecté avec la valeur „allactors‟ du moment où l‟interface de service de base représente les<br />

fonctionnalités accessibles par tous les acteurs.<br />

La figure 95 illustre la règle BaseInterface2WSDL.<br />

rule BaseInterface2WSDL{<br />

from v: MVService!baseInterface<br />

to out : WSDL!PortType(<br />

name


155 VSoaMLTool : Outil de génération de code automatique<br />

le contexte de chaque élément du métamodèle MVWSDL.<br />

La figure 96 contient une requête utilisée pour effectuer la transformation modèle-rs-code.<br />

query wsdl2code_query = WSDL!Definition.allInstances()-><br />

collect(x|x.toString().writeTo('C:/SourceCodet11octobre/WSDL/'+ x.name.replaceAll('<br />

.', '/') + '/' + x.name + '.wsdl')); -- Query Template<br />

uses MVWSDL2code;<br />

Figure 96–Requête de génération de code MVWSDL<br />

La figure 97 présente le code ATL des helpers permettant la génération de code. Dans cette<br />

figure, l‟opération allInstances() retourne une collection constituée de toutes les instances de<br />

l‟élément WSDL!Definition présentes dans le modèle MVWSDL. L‟opération sur les collections,<br />

appelée collect(), permet ensuite de récupérer chaque élément de cette collection (représenté par<br />

x), et d‟invoquer l‟opération toString() sur chacun d‟eux. Cette opération est un helper en ATL<br />

défini dans la bibliothèque MVWSDL2code. Après l‟exécution de ce helper, la chaîne de<br />

caractères est écrite dans un fichier « *.wsdl » par le biais de l‟opération writeTo. L‟helper<br />

toString() défini dans le contexte de MVWSDL!PortType enchaîne aussi d‟autres appels à<br />

d‟autres helpers définis dans le contexte de Service, Port, PortType et ainsi de suite.<br />

library MVWSDL2code; -- Library Template<br />

helper context MVWSDL!Definition def: toString() : String =<br />

''+<br />

'\n' +<br />

self.printTypes() +<br />

self.printMessage() +<br />

self.printPortType() +<br />

self.printBinding() +<br />

self.printService() +<br />

'\n';<br />

...<br />

helper context MVWSDL!PortType def: toString(): String =<br />

'\n' +<br />

self.operations-> iterate(i; acc:String='' | acc+ i.toString())+<br />

'\n';<br />

…<br />

;<br />

Figure 97–Code ATL pour la génération de code MVWSDL<br />

La description MVWSDL générée représente la définition des interfaces de services multivues<br />

suivant les acteurs potentiels interagissant avec le service. Le code ci-dessous présente la


156 VSoaMLTool : Outil de génération de code automatique<br />

description MVWSDL du service „Course‟. Ce service multivues est associé à l‟interface de<br />

service multivues composée d‟une interface de service de base et des interfaces de service vues<br />

(ViewServiceInterface). Pour illustrer notre approche, nous avons choisi seulement deux<br />

<br />

<br />

<br />

...<br />

<br />

<br />

...<br />

<br />

<br />

<br />

<br />

...<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

Figure 98–Code MVWSDL généré<br />

opérations des interfaces associées à deux acteurs qui sont l'étudiant et l'enseignant (Student,<br />

Professor) et deux opérations constituant l‟interface de service de base. Cette derniére contient<br />

les opérations : String consultSynopsisCourse (Course : String) et String consultCourseList (level<br />

:String). L‟interface associée à l‟enseignant contient les opérations suivantes : String addExercice<br />

(exerciseID : integer, Exercise : String) et String addExerciseSolution (ExerciseId : integer,<br />

ExerciseSolution : String). L‟interface associée à l‟etudiant contient les opérations : String<br />

postMessageForum (Course : String, message : String) et String ProposeExerciseSolution


157 VSoaMLTool : Outil de génération de code automatique<br />

(ExerciseId : integer, Solution : String). La figure 98 illustre un extrait du code généré suivant le<br />

méta-modèle de MVWSDL. Dans cet extrait, nous nous focalisons seulement sur l‟élément<br />

PortType parce que les autres éléments se génèrent de la même façon.<br />

IV.7. Du PIM (VSoaML) vers PSM (JaxRPC)<br />

En SOC, chaque service possède une description de service ainsi qu‟une implémentation de<br />

service. Pour générer automatiquement les descriptions de services ainsi que leurs<br />

implémentations, nous avons défini deux transformations du même PIM ciblant deux platesformes<br />

différentes comme illustré dans la figure 99 (le processus de transformation selon<br />

l‟approche MDA). La première transformation permet la génération de la description des services<br />

multivues suivant le métamodèle MVWSDL discuté dans les sections précédentes. La deuxième<br />

transformation permet la génération de l‟implémentation de service ciblant la plateforme<br />

d‟implémentation JAX-RPC. En effet, JAX-RPC est un élément principal définissant des APIs et<br />

des librairies du Pack JWSDP (SUN, 2004) de la plateforme J2EE. JAX-RPC est dédié<br />

principalement à l‟implémentation des services web.<br />

PIM (VSoaML)<br />

et<br />

Transformation<br />

modèle vers<br />

modèle<br />

MVWSDL(PSM)<br />

J2EE(PSM)<br />

Transformation<br />

modèle vers code<br />

Code (document<br />

MVWSDL)<br />

Code (Code Java)<br />

Figure 99–Processus de génération des implémentations des services à partir des PIMs (VSoaML)<br />

Dans l‟objectif de la génération automatique de l‟implémentation du service multivues ciblant<br />

JAX-RPC comme plateforme d‟implémentation, nous devons, en premier lieu, définir le<br />

métamodèle JAX-RPC. En deuxième lieu, nous devons définir les correspondances entre les<br />

élements du métamodèle source à savoir le métamodèle du service multivues et les éléments du<br />

métamodèle cible à savoir le métamodèle de JAX-RPC. En troisième lieu, nous avons défini les<br />

règles de transformations permettant d‟implémenter les correspondances entre les éléments des


158 VSoaMLTool : Outil de génération de code automatique<br />

deux métamodèles. En dernier lieu, nous avons défini des helpers ATL pour la génération du<br />

code constituant le code Java constituant l‟implémentation du service multivues. Les sections<br />

suivantes ont pour objectif la description des étapes de transformation définies ci dessus.<br />

IV.7.1. Le métamodèle JAX-RPC<br />

Le processus de transformation MDA nécessite un métamodèle source et un métamodèle cible<br />

qui doivent être conformes au MOF pour pouvoir effectuer la transformation des modèles. Dans<br />

notre approche, le métamodèle source choisi est celui de VSoaML qui est conforme au MOF. Le<br />

métamodèle cible est le métamodèle JAX-RPC qui est conforme aussi au MOF.<br />

La figure 100 présente un métamodele de JAX-RPC comme une plateforme d‟implémentation.<br />

Figure 100–Métamodèle JAX-RPC<br />

Les éléments principaux du métamodèle JAX-RPC sont :<br />

JaxRpcElement – cet élément du métamodèle est une généralisation des autres<br />

éléments tels que JaxRpcPackageElement, JavaMember et JavaParameter.<br />

JaxRpcPackageElement – cet élément du métamodèle est une généralisation<br />

de JaxrpcPackage et jaxrpcClassifier.<br />

JaxrpcPackage –Cet élément du métamodèle est un conteneur des classes<br />

(jaxrpcClass) et des interfaces java (Interface). Il permet de définir les<br />

packages qui peuvent contenir des éléments JaxrpcElement.<br />

jaxrpcClassifier- Cet élément du métamodèle est la base des éléments<br />

JavaPrimitiveType, JavaClass et Interface.


159 VSoaMLTool : Outil de génération de code automatique<br />

JavaPrimitiveType - Cet élément du métamodèle définit les types primitives<br />

qui sont utilises pour l‟élaboration des modèles. Il peut être Byte, Short,<br />

Boolean, String, integer, etc<br />

jaxrpcClass –cet élément du métamodèle est une spécialisation de<br />

JavaClassifier qui posséde JavaField et JavaMethod comme membres.<br />

Chaque jaxrpcClass implémente une ou plusieurs interfaces (Interface).<br />

Interface –cet élément du métamodèle est une spécialisation de JavaClassifier<br />

qui possède les prototypes d‟un ensemble de méthodes java (JavaMethod).<br />

JavaMember – cet élément du métamodèle définit les membres de chaque<br />

classe (jaxrpcClass) et notamment ses champs et ses méthodes. Il étend<br />

l‟élément JaxrpcElement et il est associé à l‟élément jaxrpcClass pour<br />

spécifier la classe à laquelle appartient javaMember et pour spécifier son type.<br />

JavaMethod – Cet élément du métamodèle permet la définition des méthodes.<br />

Il étend l‟élément ClassMember. Il est associé à JavaParameter pour la<br />

définition des paramètres de chaque méthode.<br />

javaParameter – cet élément du métamodèle permet la définition des<br />

paramètres d‟une méthode donnée. Cet élément étend l‟élément JaxrpcElement.<br />

JavaParameter est associé à JavarpcClass et JavaMethod pour spécifier le type<br />

d‟un paramètre d‟une méthode donnée et définir la méthode à laquelle le<br />

paramètre appartient.<br />

javaField – Cet élément du métamodèle étend ClassMember. Il permet la<br />

définition des champs d‟une classe donnée.<br />

IV.7.2. Spécification des correspondances entre le métamodèle de<br />

VSoaML et le métamodèle JAX-RPC<br />

La transformation de modèles nécessite la détermination des équivalences entre le métamodèle<br />

source et le métamodèle cible. Le tableau 11 illustre les correspondances entre le métamodèle du<br />

service multivues aux éléments du métmodéle JAX-RPC. Cette correspondance (mapping) est<br />

réalisée grâce à un ensemble des règles de transformation qui spécifient les éléments du<br />

métamodèle source qui sont équivalents aux éléments du métamodèle cible. Dans cette table, la<br />

premiere colonne contient les éléments du métamodèle source. La deuxième colonne présente<br />

leurs équivalents du métamodèle JAX-RPC. La troisième colonne contient les règles de


160 VSoaMLTool : Outil de génération de code automatique<br />

transformations associées. Ces règles permettent l‟implémentation des transformations des<br />

éléments du métamodèle cible vers le métamodèle cible.<br />

Les éléments du<br />

métamodèle VSoaML<br />

Les éléments du métamodèle La régle de transformation<br />

JAX-RPC<br />

ServiceDomain JaxRpcPackage Partition2Package<br />

MVService JaxrpcClass MVService 2jaxrpcClass<br />

BaseServiceInterface Interface binterface2Interface<br />

ViewServiceInterface Interface Viewinterface2interface<br />

Parameter JavaParameter Param2part<br />

ServiceOperation Method Operation2Method<br />

dataType Types Data2Primitive<br />

Tableau 11–Spécification des correspondances VSoaML/JAX-RPC<br />

IV.7.3.<br />

Les règles de transformation<br />

La spécification des correspondances permet la détermination des équivalences entre les éléments<br />

du métamodèle source et cible. La deuxième étape dans le processus de transformation consiste<br />

en la définition des transformations en se basant sur les règles de transformation en utilisant le<br />

langage ATL pour pouvoir réaliser les correspondances (mapping) entre le métamodèle de<br />

VSoaML et le métamodèle JAX-RPC.<br />

Comme illustré dans le tableau 11, nous avons défini plusieurs règles pour la transformation des<br />

modèles. Le but de cette section est de présenter les principales règles de transformation définies.<br />

La règle Domain2Package, comme illustre la figure 101, permet la création des instances<br />

Package comme une instance du métamodèle JAX-RPC à partir de l‟élément Namespace du<br />

métamodèle du service multivues. En conséquence, les caractéristiques de chaque élément cible


161 VSoaMLTool : Outil de génération de code automatique<br />

sont affectés avec les caractéristiques de l‟élément ServiceDomain. Ainsi, le nom du package est<br />

affecté avec la valeur e.name (le nom de namespace).<br />

rule Domain2Package<br />

{<br />

from d: VSoaML!ServiceDomain<br />

to p: jaxrpc!JaxrpcPackage(<br />

name


162 VSoaMLTool : Outil de génération de code automatique<br />

rule Operation2Method {<br />

from e : MVService!Operation<br />

to out : jaxrpc!JavaMethod (<br />

name first().type,<br />

parameters select(x|x.kind'OUT')<br />

->asSequence()->collect(p|thisModule.MyP2F(p)) )<br />

}<br />

Figure 103–Règle de transformation Operation2Method<br />

La règle viewinterface2interface et la règle baseinterface2interface permettent la création des<br />

instances interface en affectant les caractéristiques de baseinterface et viewinterface. La figure<br />

104 illustre la règle viewinterafce2interface.<br />

rule viewinterface2interface {<br />

from d: MVService!viewInterface<br />

to out:jaxrpc!Interface (<br />

name


163 VSoaMLTool : Outil de génération de code automatique<br />

query jaxrpcquery = jaxrpc!JavaClass.allInstances()-><br />

collect(x | x.toString().writeTo('C:/Codesource/' + x.package.name.replaceAll('.', '/') + '/' + x.name + '.java'));<br />

uses jaxrpc2code;<br />

Figure 105–Requête de génération de code Java<br />

La figure 105 contient la requête utilisée pour déclencher la transformation modèle-code.<br />

L‟opération allInstances() retourne une collection constituée de toutes les instances de l‟élément<br />

jaxrpc!JavaClass présentes dans le modèle Java. Ensuite, une opération sur les collections appelé<br />

collect() nous permet de récupérer chaque élément de cette collection (représenté par x) et<br />

d‟appeler l‟opération toString() sur chacun d‟eux. Cette opération est un helper en ATL défini<br />

dans la bibliothèque jaxrpc2code Après l‟exécution de cet helper, la chaîne de caractères est<br />

écrite dans un fichier « *.java » par le biais de l‟opération writeTo(). L‟helper toString() défini<br />

dans le contexte de jaxrpc!JaxrpcClass et de jaxrpc!Interface enchaîne aussi d‟autres appels à<br />

d‟autres helpers définis dans le contexte de JavaField, JavaParameter, et ainsi de suite.


164 VSoaMLTool : Outil de génération de code automatique<br />

helper context jaxrpc!JaxrpcPackage def: toString() : String =<br />

self.contents ->iterate(i; acc : String = '' |<br />

acc + i.name +'.java\n' );<br />

helper context jaxrpc!Interface def : getmethods() : Set(<br />

jaxrpc1!JavaMethod)=<br />

self.javamethod->asSet()<br />

;<br />

helper context jaxrpc!JaxrpcClass def: toString() :<br />

String =<br />

'package ' + self.packagerpc.name + ';\n\n'+<br />

'\npublic class ' + self.name + ' implements '+<br />

self.interfaces ->iterate ( i ; acc: String ='' | acc + i.name + ',')<br />

+'{\n'+<br />

self.interfaces->collect ( e| e.javamember) -> iterate ( i; acc: Sequence<br />

(jaxrpc1!JavaMethod)= Sequence{}| acc ->union( i))<br />

->iterate(i; acc : String = '' |<br />

acc + i.toString()+ ' {\n\t //[Implementation Code to beCompleted]\n}' )<br />

+ '\n}';<br />

helper context jaxrpc!Interface def: toString() : String=<br />

'package ' + self.packagerpc.name + ';\n\n'+<br />

'\nimport java.rmi.Remote;'+<br />

'\nimport java.rmi.RemoteException;\n'+<br />

'\npublic interface ' + self.name + ' extends Remote {\n' +<br />

self.javamember->iterate(i; acc : String = '' |<br />

acc + i.toString()+'throws RemoteException;'<br />

)+ '\n}';<br />

helper context jaxrpc!JavaPrimitiveType def: toString() : String =<br />

if self.name = 'Integer' then 'int '<br />

else if self.name = 'Boolean' then 'boolean '<br />

else if self.name = 'String' then 'java.lang.String '<br />

else if self.name = 'Long' then 'long '<br />

else 'void '<br />

endif endif endif endif;<br />

helper context jaxrpc!JavaField def: toString() : String =<br />

self.type.name + ' ' + self.name + ';\n';<br />

helper context jaxrpc!JavaMethod def: toString() : String =<br />

'\npublic '+ self.istypeof.name + ' ' + self.name + '(' +<br />

self.parameters->iterate(i; acc : String = '' |<br />

acc +<br />

if acc = '' then ''<br />

else ', '<br />

endif + i.toString() ) +')';<br />

helper context jaxrpc!JavaParameter def: toString() : String =<br />

self.istypeof.name + ' ' + self.name;<br />

Figure 106–Code ATL pour la génération de code java<br />

La figure 107 illustre le code généré de la classe implémentant le service multivues Course avec


165 VSoaMLTool : Outil de génération de code automatique<br />

import java.rmi.Remote;<br />

import java.rmi.RemoteException;<br />

public interface Course_Teacher extends Remote {<br />

public Integer addExerciseSolution(Integer ExerciseId, String<br />

ExerciseSolution)throws RemoteException;<br />

public Integer addExercice(Integer exerciseID, String Exercise)throws<br />

RemoteException;<br />

}<br />

package DLS;<br />

import java.rmi.Remote;<br />

import java.rmi.RemoteException;<br />

public interface Course_Student extends Remote {<br />

public String postMessageForum(String Course, String message)throws<br />

RemoteException;<br />

public Integer ProposeExerciseSolution(Integer ExerciseId, String<br />

Solution)throws RemoteException;<br />

}<br />

package DLS;<br />

import java.rmi.Remote;<br />

import java.rmi.RemoteException;<br />

public interface Course_base extends Remote {<br />

public String consultCourseList(String level)throws RemoteException;<br />

public String consultSynopsisCourse(String Course)throws RemoteException;<br />

}<br />

package DLS;<br />

public class Course implements Course_Teacher,Course_Student,Course_base,{<br />

public Integer addExerciseSolution(Integer ExerciseId, String<br />

ExerciseSolution) {<br />

//[Implementation Code to beCompleted]<br />

}<br />

public Integer addExercice(Integer exerciseID, String Exercise) {<br />

//[Implementation Code to beCompleted]<br />

}<br />

public String postMessageForum(String Course, String message) {<br />

//[Implementation Code to beCompleted]<br />

}<br />

public Integer ProposeExerciseSolution(Integer ExerciseId, String Solution)<br />

{<br />

//[Implementation Code to beCompleted]<br />

}<br />

public String consultCourseList(String level) {<br />

//[Implementation Code to beCompleted]<br />

}<br />

public String consultSynopsisCourse(String Course) {<br />

//[Implementation Code to beCompleted]<br />

}<br />

}<br />

Figure 107–Code java généré à partir du PIM(VSoaML)<br />

une interface de service multivues se composant d‟une interface de service de base et de deux<br />

interfaces de service vues associées respectivement à l‟acteur Etudiant et l‟acteur Enseignant.


166 VSoaMLTool : Outil de génération de code automatique<br />

L‟interface de service de base se compose des opérations : String consultSynopsisCourse (Course<br />

: String) et String consultCourseList (level :String). L‟interface associée à l‟acteur Enseignant<br />

contient les opérations suivantes : String addExercice (exerciseID : integer, Exercise : String) et<br />

String addExerciseSolution (ExerciseId : integer, ExerciseSolution : String). L‟interface associée<br />

à l‟acteur Etudiant contient les opérations : String postMessageForum (Course: String, message :<br />

String) et String ProposeExerciseSolution (ExerciseId : integer, Solution : String).<br />

le code généré correspond à l'interface de service de base Course_base , à l'interface associé à<br />

l'acteur Etudiant (Course_Student), à l'interface associée à l'acteur Enseignant ainsi que classe<br />

(class Course ) qui doit implémenter toutes les interfaces et leurs méthodes.<br />

IV.8. VSoaMLTool : déploiement selon l’architecture SOA<br />

L‟architecture orientée service (SOA) définit principalement trois acteurs et trois opérations :<br />

le fournisseur de service qui possède l‟implémentation de service et la description du service<br />

publie (l‟opération) cette dernière dans l’annuaire des services. L‟annuaire de<br />

service permet par ailleurs à un client de service de trouver les services correspondant à ses<br />

besoins (l‟opération) et de les invoquer en leur transmettant les données métiers<br />

requises (l‟opération ). Une telle architecture ne prend pas en compte le profil de<br />

l‟utilisateur interagissant avec le service. Pour répondre à cette limite, nous avons introduit le<br />

concept de service multivues pour la prise en compte des profils des utilisateurs. Ensuite, nous<br />

avons généré pour chaque service multivues une description suivant le format MVWSDL comme<br />

nous l‟avons expliqué dans les précédentes sections.<br />

Les documents MVWSDL générés, contiennent la description des interfaces de service multivues<br />

ainsi que les informations concernant les acteurs qui vont interagir avec le service multivues. A<br />

partir des documents MVWSDL, nous devons extraire une description standard WSDL<br />

spécifique à chaque acteur interagissant avec le service. Dans cet objectif, nous avons développé<br />

un module logiciel intégré à l‟outil VSoaMLTool (Kenzi et al., 2008d)(El Asri, Kenzi et al.,<br />

2009). Ce module logiciel prend en entrée un document MVWSDL et produit en sortie une<br />

description WSDL standard spécifique à l‟acteur qui va interagir avec le service multivues. Pour<br />

ce faire, le module de déploiement de l‟outil VSoaMLTool se base sur la valeur de l‟attribut actor<br />

intégré aux éléments principaux du WSDL : Types, PortType, Binding et Service. Ce module


VSOAMLTOOL(MODULE DE DEPLOIEM<strong>EN</strong>T)<br />

167 VSoaMLTool : Outil de génération de code automatique<br />

PIM(VSoaML)<br />

Service metadata<br />

VSoaMLTool<br />

(transformer module)<br />

WSDL<br />

Acteur S1,1<br />

WSDL<br />

<br />

S1<br />

MVWSDL<br />

WSDL<br />

Acteur S1,J<br />

<br />

Acteur S1,S1max<br />

<br />

Acteur S1,1 Acteur S1,J<br />

Acteur S1,S1max<br />

WSDL<br />

<br />

S2<br />

MVWSDL<br />

WSDL<br />

Acteur S2,1<br />

<br />

<br />

WSDL<br />

Acteur S2,J<br />

Acteur S2,1 Acteur S2,J<br />

Acteur S2,S2max<br />

Acteur S2,S2max<br />

<br />

SN<br />

MVWSDL<br />

WSDL<br />

<br />

<br />

Acteur SN,1<br />

Acteur SN,1 Acteur SN,J<br />

Acteur<br />

SN,SNmax<br />

WSDL<br />

Légende<br />

WSDL<br />

Acteur SN,J<br />

input<br />

output<br />

publish<br />

Acteur SN,S1max<br />

Figure 108–Architecture de déploiement des services multivues


168 VSoaMLTool : Outil de génération de code automatique<br />

logiciel est développé en utilisant l’API DOM qui fournit un ensemble de classes et d‟interfaces<br />

dédiées spécifiquement à la manipulation des documents XML tels que MVWSDL.<br />

Concrètement, et dans le cadre de notre cas d‟étude, le MVWSDL généré représente toutes les<br />

interfaces du service multivues associées à tous les acteurs interagissant avec le service :<br />

Etudiant, Enseignant, Administrateur. Si un client de service de type Etudiant, Enseignant ou<br />

Administrateur interagit avec le service multivues, il n‟obtient que la description WSDL qui<br />

correspond à ses besoins qui n‟intègre pas les descriptions des interfaces associées aux autres<br />

acteurs. La figue 108 illustre le rôle du module de déploiement de l‟outil de VSoaMLTool.<br />

IV.9. Conclusion<br />

L‟adaptabilité est l‟une des qualités reines pour le développement de tout système informatique.<br />

Dans cette optique, nous avons proposé une approche d‟ingénierie dirigée par les modèles des<br />

systèmes orientés services adaptables aux différents types d‟utilisateurs.<br />

Ainsi, nous avons proposé dans le deuxieme chapitre, un profil UML pour la modélisation des<br />

SOS adaptables. Dans le troisiéme chapitre, nous avons proposé un processus pour le<br />

développement des SOS adaptables. Dans ce chapitre, nous avons présenté l‟outil VSoaMLTool<br />

en montrant ses fonctionnalités tout en se focalisant sur les transformations de modèles et de la<br />

génération du code. Ainsi, nous avons défini, en premier lieu, un PIM en se basant sur le profil<br />

VSoaML qui vise la modélisation d‟un système orienté service tout en identifiant les besoins et<br />

les spécificités des différents acteurs interagissant avec les services. Ensuite, nous avons défini<br />

des transformations ciblant différentes plateformes technologiques (e.g., J2EE, dotNet) et la<br />

plateforme services web et notamment notre extension du standard WSDL. Ces transformations<br />

permettent la génération du code à partir des PIMs. En particulier, la description de chaque<br />

service ainsi que leurs implémentation en java et C#. Chaque transformation est effectuée en<br />

deux étapes : une étape de spécification de correspondances et une étape de définition de<br />

transformation en se basant sur un langage de transformation de modèle à savoir le langage ATL.<br />

L‟approche que nous avons proposée durant les trois derniers chapitres, présente un ensemble<br />

d‟avantages en répondant à la problématique de l‟ingénierie des SOSs adaptable et ouvre un<br />

ensemble de perspectives décrite dans le chapitre suivant « conclusion générale ».


169 Conclusion générale et perspectives<br />

Conclusion générale et perspectives<br />

Dans le cadre de cette thèse, nous avons proposé une approche d‟ingénierie des systèmes orientés<br />

services adaptables aux différents types d‟utilisateurs. Cette approche se base principalement sur :<br />

(i) un profil UML (VSoaML) pour la modélisation des systèmes orientés services adaptables aux<br />

différents types d‟utilisateurs (ii) Un processus de développement des systèmes orientés services<br />

adaptables dans le cadre de l‟approche MDA et (iii) un outil logiciel permettant la génération du<br />

code à partir des modèles métiers de haut niveau exprimés avec le profil VSoaML. Cet outil<br />

logiciel se base sur un ensemble de règles de transformations implémentées en utilisant le<br />

langage ATL.<br />

L‟objectif principal de VSoaML est la spécification des systèmes orientés services adaptables aux<br />

différents types d‟utilisateurs indépendamment des plates-formes d‟implémentation (J2EE,<br />

dotNet, etc) et des standards de la technologie des services web (SOAP, WSDL, UDDI,<br />

BPEL4WS, etc.). VSoaML est centré utilisateur et se base fondamentalement sur le concept de<br />

service multivues comme une entité de modélisation de première classe capable de représenter les<br />

besoins et les spécificités des utilisateurs suivant leurs profils. Le service multivues est une<br />

nouvelle entité de modélisation qui fournit/requiert des interfaces qui se caractérisent par leur<br />

flexibilité et adaptabilité aux différents acteurs interagissant avec le service. Ainsi, le service<br />

multivues permet la capture des exigences des utilisateurs et de leurs spécificités tout en séparant<br />

leurs préoccupations fonctionnelles suivant le profil de l‟utilisateur interagissant avec le service.<br />

Parallèlement à la proposition du Profil VSoaML, nous avons défini un processus de<br />

développement dans le cadre de l‟approche MDA pour identifier les services multivues, les<br />

spécifier et les développer. Ce processus définit les phases, les activités et les artefacts permettant<br />

de transformer les exigences métier en termes d‟un ensemble de service flexibles et adaptables.<br />

La spécificité d‟un tel processus est l‟identification des services en partant des modèles des cas<br />

d‟utilisation métiers. Ce processus de développement qui s‟inscrit dans le cadre de l‟approche<br />

MDA, permet l‟élaboration des modèles et de gérer la transition d‟un modèle à un autre via des<br />

transformations de modèles. Ainsi, après l‟élaboration des modèles métiers à base de service<br />

multivues, nous avons défini deux transformations pour la génération de code :


170 Conclusion générale et perspectives<br />

La première transformation permet la génération de la description de chaque service multivues<br />

composant le PIM d‟un système donné. En effet, nous avons défini une légère extension du<br />

standard WSDL pour la description de service multivues appelé MVWDL. Cette extension de<br />

WSDL permet la représentation en XML aussi bien des interfaces des services que les<br />

informations concernant les acteurs interagissant avec le service. Pour permettre l‟automatisation<br />

de la génération du code MVWSDL, nous avons défini un ensemble de règles de transformation<br />

en utilisant le langage ATL comme langage de transformation de modèles.<br />

La deuxiéme transformation concerne la génération de code constituant l‟implémentation de<br />

chaque service multivues selon la plateforme cible J2EE.<br />

Chaque transformation de modèles a été effectuée en deux étapes : la première concerne la<br />

spécification de correspondances. La deuxième étape a pour objectif la définition de<br />

transformations en se basant sur le langage de transformation de modèle ATL.<br />

Une fois générées la description de chaque service multivues et son implémentation, nous avons<br />

illustré comment faire l‟adaptation des services en prenant en compte les acteurs interagissant<br />

avec le service suivant l‟architecture SOA.<br />

Travaux en cours et futurs :<br />

L‟approche que nous avons proposée pour l‟ingénierie des systèmes orientés services adaptables,<br />

demande à être développée en plusieurs points. En premier lieu, nous visons d‟inclure d‟autres<br />

caractéristiques de l‟utilisateur surtout dans le cadre de l‟Informatique Sensible au Contexte. En<br />

deuxième lieu, nous projetons de générer la totalité du code pour concrétiser vraiment la vision<br />

MDA. En toisiéme lieu, nous projetons à moyen terme d‟associer à notre approche une base<br />

mathématique solide. Enfin, nous visons à transposer l‟approche pour l‟ingénierie des<br />

applications «Cloud computing»<br />

L’adaptation des services en prenant en considération d‟autres paramètres du contexte : Dans le<br />

cadre de cette thèse, nous nous sommes concentrés tout particulièrement sur l‟adaptation des<br />

services au rôle de l‟utilisateur. Cependant, il est possible d‟adapter les services en tenant compte<br />

d‟autres caractéristiques du contexte en continuité avec nos travaux de recherche dans le domaine<br />

(Kenzi et al., 2007). En effet, l‟informatique sensible au contexte exige l‟adaptation des systèmes


171 Conclusion générale et perspectives<br />

logiciels selon plusieurs dimensions. Globalement, le contexte comprend les caractéristiques liées<br />

à l‟utilisateur, à sa localisation, à son dispositif d‟accès ou même au contexte des différents<br />

services composant le système (Maamar et al., 2006b).<br />

La génération totale du code : Nous avons adopté une approche de génération de «grosse<br />

granularité» qui vise la génération du squelette des différents services suivant une plateforme<br />

technologique. Comme perspective de cette thèse et l‟un de nos objectifs à court terme est de<br />

permettre la génération de code à granularité fine c'est-à-dire la génération du code des méthodes<br />

de chaque service via l‟utilisation des « actions semantics ».<br />

La formalisation de l’adaptation des services : Dans le domaine du SOC, plusieurs approches<br />

ont été proposées visant la définition d‟une base mathématique solide pour traiter les différents<br />

aspects d‟un SOS (statiques et dynamiques). Dans cette optique, plusieurs techniques ont été<br />

utilisées (i) la théorie des graphes (Yu et al., 2008) (Baresi et al., 2006) pour la gestion des<br />

aspects dynamiques d‟un SOS ou la définition d‟un système de gestion de services à l‟instar d‟un<br />

système de gestion de base de données dans les cas des données(ii) les réseaux de Petri en vue<br />

de gérer les différentes préoccupations liées aux SOS (iii) les machines à états finis (Tao et al.,<br />

2007) pour la formalisation de l‟adaptation des services. Ainsi, nous envisageons comme<br />

perspective de ce travail, d‟utiliser certaines des techniques précitées (Réseaux de Pétri, théorie<br />

de graphe, les machines à états finis) pour la formalisation de notre approche. Plus<br />

particulièrement, nous comptons utiliser la théorie des graphes comme une technique puissante et<br />

prometteuse pour la formalisation des aspects dynamiques d‟un système orienté service<br />

adaptable.<br />

L’ingénierie des Systémes « Cloud Computing » : l‟approche définie dans le cadre de cette<br />

thése, vise la définition d‟une approche d‟ingénierie des SOSs adaptables dans le cadre du<br />

paradigme SOC. Cependant ce paradigme évolue vers un nouveau paradigme à savoir le Cloud<br />

Computing qui se base sur trois concepts : « Software as Service », « Infrastructure as Service »<br />

et « Platform as Service ». Ainsi, nous visons à transposer notre approche d‟ingénierie des SOSs<br />

pour le développement des systémes « Cloud Computing».


172 Liste des publications<br />

Liste des publications<br />

Cette section regroupe par ordre chronologique inverse, les publications que nous avons produites<br />

pendant cette thèse<br />

1) Adil Kenzi, Bouchra El Asri, Mahmoud Nassar, Abdelaziz Kriouile., «Engineering<br />

Adaptable Service Oriented Systems: A Model Driven approach”, IEEE International<br />

Conference on Service-Oriented Computing and Applications (SOCA'09), pages 9-16,<br />

Taipei, Taiwan, 14-15 December 2009, IEEE Computer Society Press..<br />

2) Adil Kenzi, Bouchra El Asri, Mahmoud Nassar, Abdelaziz Kriouile, "A model driven<br />

framework for multiview service oriented system development," 2009 IEEE/ACS<br />

International Conference on Computer Systems and Applications(AICCSA09), pages 404<br />

– 411, Rabat, Maroc, 10-13 May 2009, IEEE Computer Society Press.<br />

3) Bouchra El Asri, Adil Kenzi, M. Nassar, A. Kriouile. Multiview Components for User-<br />

Aware Web Services, in Joaquim Filipe, José Cordeiro, Editors, Enterprise Information<br />

Systems, Volume 24, pages 196-207, LNBIP, Springer, 2009.<br />

4) Bouchra El Asri, Adil Kenzi, Mahmoud Nassar, Abdelaziz Kriouile., “Vers une<br />

architecture MVSOA pour la mise en œuvre des composants multivue.», Conférence<br />

Francophone sur les Architectures Logicielles (CAL 09), pages 1-16, Nancy, 2009,<br />

Editions Cépaduès, RNTI.<br />

5) Adil Kenzi, Bouchra El Asri, Mahmoud Nassar, Abdelaziz Kriouile, "The Multiview<br />

Service: A New Concept for the Development of Adaptable Service Oriented Systems",<br />

2008 IEEE International Symposium on Service-Oriented System Engineering<br />

(SOSE‟08), Jhongli, Taiwan, 18-19 December 2008, pages 38-43, IEEE Computer<br />

Society Press.<br />

6) Adil Kenzi, B. El Asri, M. Nassar, A. Kriouile, SOA vs MVSOA : Une architecture<br />

orientée services multivues, Colloque Africain sur la Recherche en Informatique et en<br />

Mathématiques Appliquées (CARI‟08), pages 585-592, Rabat, 27-30 Octobre 2008.<br />

7) Adil Kenzi, B. El Asri, M. Nassar, A. Kriouile, Vers une approche orientée modèle pour<br />

l’adaptation des services aux profils des utilisateurs, Proceedings of the 10th Conference<br />

on Software Engineering and Artificial Intelligence–Maghrebian Conference on<br />

Information Technologies (MCSEAI‟08), 6 pages IEEE, Oran, Algérie, 28 - 30 Avril<br />

2008.


173 Liste des publications<br />

8) Adil Kenzi, B. El Asri, M. Nassar, A. Kriouile, Multi-functional service oriented system<br />

development for user-driven adaptability, Proceedings of the 3 rd International<br />

Conference on Information & Communication Technologies: from Theory to<br />

Applications (ICTTA‟08), Pages 1431-1437, Damascus, Syria, April 7 - 11, 2008, IEEE.<br />

9) Adil Kenzi, Bouchra El Asri, Mahmoud Nassar, Abdelaziz Kriouile, “Modeling Multi-<br />

Functional services: A User Driven Approach for dynamic accessibility”, accepté mais<br />

non inscrit à la conférence ICEIS 2008.<br />

10) Adil Kenzi, Bouchra El Asri, Mahmoud Nassar, Abdelaziz Kriouile , “ A model driven<br />

approach for the development of adaptable service oriented systems”, accépté mais non<br />

inscrit à la conférence 10th International Conference on Information Integration and<br />

Web-based Applications & Services (iiWAS2008), 24-26 November 2008, Linz, Austria<br />

11) Adil Kenzi, Bouchra El Asri, Mahmoud Nassar, Abdelaziz Kriouile, “ Des composants<br />

multivues aux services web : une approche dirigée par les modèles”, 2ème Journées<br />

d'informatique et de mathématiques décisionnelles (JIMD'2008), Rabat, 3-5 Juillet, 2008.<br />

12) Adil Kenzi, B. El Asri, M. Nassar, A. Kriouile, Vers des services multivues contextuels,<br />

Actes du 1er Workshop International sur «Informatique Mobile et Applications»<br />

(WMCA‟2007), En parallèle avec NOTERE 2007 (Nouvelles TEchnologies de la<br />

REpartition), pages 129-135, Marrakech, 4-8 Juin 2007.<br />

13) Adil Kenzi, Bouchra El Asri, Mahmoud Nassar, Abdelaziz Kriouile, « Modélisation<br />

orientée service multivues des systèmes », WorkShop sur les Technologies de l'Information<br />

et de la Communication (Wotic‟07), 5-6 Juillet, Rabat.


174 Références<br />

Références<br />

[Abiteboul et al. 1991] Abiteboul S., Bonner A., “Objects and Views”, Proc. of ACM<br />

SIGMOD, 1991, pp. 238-24.<br />

[anwar, 2009] Anwar A, Formalisation par une approche IDM de la composition de modèles<br />

dans le profil VUML. Thèse de doctorat, Université de Toulouse-le-Mirail, décembre 2009.<br />

[Alam et al., 2007a] Alam M., Seifert J.P., Zhang X., “A Model-Driven Framework<br />

for Trusted Computing Based Systems”, EDOC 2007: 75-86<br />

[Alam et al., 2007b] Alam M., Breu R., Hafner M.,: Model-Driven Security<br />

Engineering for Trust Management in SECTET. JSW 2(1): 47-59 (2007)<br />

[Alam et al., 2008] Alam M., Hafner M., Breu R.,: Constraint based role based access<br />

control in the SECTET-frameworkA model-driven approach. Journal of Computer<br />

Security 16(2): 223-260 (2008)<br />

[Amir et al., 2004] Amir R., Zeid A.: A UML profile for service oriented<br />

architectures. OOPSLA Companion 2004: 192-193<br />

[Andrews et al., 2003] Andrews T., Business process execution language for Web<br />

services, Version 1.1, (2003).<br />

[Arsanjani et al., 2005] Arsanjani A., Service-oriented modeling and architecture<br />

(SOMA). http://www128.ibm.com/developerworks/webservices/library/ws-soadesign1<br />

[ATL, 2004] ATL. ATL Development Tools. INRIA, LINA et Université de Nantes,<br />

december 2004. Disponible sur http://www.sciences.univ-nantes.fr/lina/atl/,<br />

[Baina et al., 2004] Baïna, K., Benatallah, B. Casati, F, Toumani, F.. Model-Driven<br />

Web Service Development. Proc. of CAiSE‟04, Riga, Latvia, June 2004.<br />

[Baresi et al., 2006] Baresi, L., Heckel, R., Thone, S., Varro, D.: Style-based modeling<br />

and refinement of service-oriented architectures. Software and System<br />

Modeling(2006) 187-207<br />

[Benatallah et al., 2009] Benatallah, B., Casati, F., Kongdenfha, W., Skogsrud,<br />

H.,Toumani, F., “Conceptual Modeling of Service-Driven Applications”,In Service<br />

Oriented Computing, M.Papazoglou and Dimitrios Georgakopoulos, Eds.,: MIT press,<br />

2009 , pp.29-50.<br />

[Benslimane et al., 2005] Benslimane D., Maamar Z., Ghedira C., A View-based<br />

Approach for Tracking Composite Web Services. ECOWS 2005: 170-181<br />

[Bezivin et al., 2004] Bézivin J., Hammoudi S., Lopes, Jouault F., Applying MDA<br />

approach for web service platform. Proc of the 8th IEEE International Enterprise<br />

Distributed Object Computing conference (EDOC 2004).


175 Références<br />

[Biesiegel et al., 2005] Beisiegel M., Blohm H., Booz D.,et al., Service Component<br />

Architecture. Building Systems using a Service Oriented Architecture.<br />

http://download.boulder.ibm.com/ibmdl/pub/software/dw/specs/wssca/SCA_White_Paper1_09.pdf,<br />

November 2005<br />

[Blanc, 2005] Blanc X., MDA en action, Edition Eyrolles, 2005.<br />

[Bordbar et al., 2004] BORDBAR B., STAIKOPOULOS A., Automated Generation<br />

of Metamodels for Web Service Languages. Second European Workshop on Model<br />

Driven Architecture (MDA) with an emphasis on Methodologies and Transformations<br />

(EWMDA), September 2004.<br />

[Bouguettaya et al.,, 2009] Bouguettaya, A., Yang, X.,“Access to Mobile Services”,<br />

Springer, 2009.<br />

[Chang et al., 2006] Chang M., He J., Tsai, W. T., Xiao B., Chen Y., : UCSOA: User-<br />

Centric Service-Oriented Architecture. IEEE International Conference on e-Business<br />

Engineering (ICEBE 2006), 248-255<br />

[Chang et al., 2007a] Chang S.H, Kim S. D. , A Comprehensive Approach to<br />

Service Adaptation, IEEE International Conference on Services Oriented Computing<br />

and Applications (SOCA 2007), 2007<br />

[Chang et al., 2007b] Chang S.H, Kim S. D., A Service-Oriented Analysis and<br />

Design Approach to Developing Adaptable Services, pp. 204-211, IEEE International<br />

Conference on Services Computing (SCC 2007), 2007<br />

[Chebbi et al., 2006] Chebbi I., Dustdar S., Tata S., The view-based approach to<br />

dynamic inter-organizational workflow cooperation. Data Knowl. Eng. 56(2): 139-173<br />

(2006)<br />

[Chinnici et al., 2001] Chinnici R., Gudgin M.,Moreau J.-J., Schlimmer<br />

J.,Weerrawarana S., Web Services Description Language (WSDL) version 2.0 Part 1 :<br />

Core language, W3C<br />

[Clement et al., 2004] Clement L., Hately A., Riegen C., Rogers T., UDDI version<br />

3.0.2 spécifications, Technical Commitee Draft, Octobre, 2004,<br />

http://uddi.org/pubs/uddi_v3.htm<br />

[Coulette et al., 1996]Coulette B., Kriouile A., Marcaillou S., "L‟approche par points<br />

de vue dans le développement orienté objet des systèmes complexes", Revue l‟Objet,<br />

vol. 2, n°4, février 1996, pp. 13-20.<br />

[D‟Ambrogio et al., 2006] D'Ambrogio, A., A Model-driven WSDL Extension for<br />

Describing the QoS of Web Services. IEEE International Conference on Web Services<br />

(ICWS 2006), 18-22 September 2006 pages:789-796<br />

[Dey et al.,, 2000] Dey, A.K., Abowd, G.D. Towards a Better Understanding of<br />

Context and Context-Awareness. In: Procs of the Conference on Human Factors in<br />

Computing Systems (CHI‟2000), Workshop on the What, Who, Where, When, and<br />

How of Context-Awareness, April 2000, The Hague, The Netherlands.


176 Références<br />

[Eclipse, 2010] ECLIPSE TOOLS PROJECT. Eclipse Modeling Framework (EMF)<br />

version 2.0, June 2010. Disponible sur http://www.eclipse.org/emf,<br />

[El Asri et al., 2005a] El Asri B., "Vers des composants multivues distribués", Thèse<br />

nationale à l‟<strong>EN</strong>SIAS de Rabat, octobre 2005.<br />

[El Asri et al., 2005c] El Asri B., Nassar M., Coulette B., Kriouile A., "MultiViews<br />

component for information development", Proceedings of the 7th International<br />

Conference on Enterprise Information Systems (ICEIS‟2005), Miami, USA, May 24-<br />

28, 2005b. pp. 217-225.<br />

[El Asri et al., 2009a] El Asri B., Kenzi A., Nassar M., Kriouile A., Multiview<br />

Components for User-Aware Web Services, Proceedings of the 11th International<br />

Conference on Enterprise Information Systems (ICEIS‟09), 6 - 10 May 2009, Milan,<br />

Italy. (Accepted as full paper and published as a book chapter in "Enterprise<br />

Information Systems vol.24", J. Filipe, J. Cordeiro, and J. Cardoso Eds., Springer-<br />

Verlag.<br />

[El Asri et al.,2009b] El Asri B., Kenzi A., Nassar M., Kriouile A., “Vers une<br />

architecture MVSOA pour la mise en oeuvre des composants multivue.», Conférence<br />

Francophone sur les Architectures Logicielles (CAL 09), Nancy, 2009.<br />

[Ermagan et al., 2007] Ermagan V., Krüger I.H., : A UML2 Profile for Service<br />

Modeling. MoDELS 2007: 360-374<br />

[Erradi et al., 2006] Erradi A., Anand S., Kulkarni, N., SOAF: An Architectural<br />

Framework for Service Definition and Realization. IEEE International Conference on<br />

Services Computing 2006: 151-158<br />

[Farrel et al., 2007] Farrell J., Lausen, H. "Semantic Annotations for WSDL and<br />

XML Schema", W3C Candidate Recommendation 26 January 2007;<br />

http://www.w3.org/TR/sawsdl/.<br />

[Fink et al., 2003] Fink T, Manuel Koch, Cristian Oancea: Specification and<br />

Enforcement of Access Control in Heterogeneous Distributed Applications. ICWS-<br />

Europe 2003: 88-100.<br />

[Fuchs, 2004] Fuchs M, Adapting Web Services in a Heterogeneous Environment,<br />

Proc of the IEEE International Conference on Web Services (ICWS'04), 2004: 656-<br />

664<br />

[Gerber et al., 2002] Gerber A., Lawley M., Raymond, K., Steel, J., and Wood, A.,<br />

Transformation: The Missing Link of MDA. First International Conference on Graph<br />

Transformation (ICGT2002), October 2002.<br />

[Ghedira et al., 2005] Ghedira, C., Mezni, H.: Through Personalized Web Service<br />

Composition Specification: From BPEL to C-BPEL. Electr. Notes Theor. Comput.<br />

Sci.(2006) 117-132


177 Références<br />

[Gronmo et al., 2004a] GRONMO R., SKOGAN D., SOLHEIM I., OLDEVIK J.,<br />

Model-Driven Web Services Development. 2004 IEEE International Conference on e-<br />

Technology, e-Commerce and e-Service (EEE‟04), pages 42–45, March 2004.<br />

[Gronmo et al., 2004b] Gronmo R., Stogan D., Solheim I., Oldevik J., Model Driven<br />

web services Development. Int Journal Web services Res 1(4) : 1-13(2004).<br />

[Gustavo et al., 2003] Gustavo A., Fabio C., Harumi K., Vijay M., “Web services:<br />

concepts, architectures and applications”, Springer-Verlag, septembre 2003<br />

[Hafner et al.,2009] Hafner, M., Breu, R., “Security Engineering for Service-Oriented<br />

Architectures”, Springer, 2009.<br />

[Hair et al., 1998] Hair A., El Asri B., Kriouile A, Coulette B., "Outil support de la<br />

méthode VBOOM, Fonctionnalités Fusion et Génération du code", actes du 4ème<br />

Colloque Africain sur la Recherche en Informatique (CARI‟98), Dakar (Sénégal), 12-<br />

15 octobre 1998, pp. 497-508.<br />

[Huhns et al., 2005] Huhns M., Singh P., Service-Oriented Computing: Key Concepts<br />

and Principles. Journal of IEEE Internet Computing, 2005.<br />

[IBM, 2002] IBM. IBM Video Central for e-business tutorial, Version 7.2, 2002.<br />

http://www-106.ibm.com/developerworks/webservices/demos/videocentral/<br />

[Ibrahim et al., 2006] Ibrahim D., Misic, V., B., Service Views: a Coherent View<br />

Model of the SOA in the Enterprise. IEEE International Conference on Services<br />

Computing 2006: 230-237<br />

[Johnston et al.,, 2006] Johnston S. K., Brown A., “ A Model-Driven Development<br />

Approach to Creating Service-Oriented Solutions”, ICSOC 2006: 624-636<br />

[Kadima et al., 2005] Kadima H., MDA : Conception orientée objet guidée par les modèles,<br />

Dunod, 2005<br />

[Keidl et al.,, 2004] Keidl M., Kemper A., : Towards context-aware adaptable web<br />

services. WWW (Alternate Track Papers & Posters) 2004: 55-65<br />

[Kenzi et al., 2007] Kenzi A., El Asri B.,Nassar M., Kriouile A., Vers des services<br />

multivues contextuels, Actes du 1er Workshop International sur « Informatique<br />

Mobile et Applications» (WMCA‟2007), En parallèle avec NOTERE 2007 (Nouvelles<br />

TEchnologies de la REpartition), Marrakech, 4-8 Juin 2007.<br />

[Kenzi et al., 2008a] Kenzi A., El Asri B.,Nassar M., Kriouile A Vers une approche<br />

orientée modèle pour l’adaptation des services aux profils des utilisateurs,<br />

Proceedings of the 10th Conference on Software Engineering and Artificial<br />

Intelligence – Maghrebian Conference on Information Technologies (MCSEAI‟08),<br />

Oran, Algérie, 28 - 30 Avril 2008.<br />

[Kenzi et al., 2008b] Kenzi A., El Asri B.,Nassar M., Kriouile A "The Multiview<br />

Service: A New Concept for the Development of Adaptable Service Oriented Systems",<br />

2008 IEEE International Symposium on Service-Oriented System Engineering, IEEE<br />

Computer Society.<br />

[Kenzi et al., 2008c] Kenzi A., El Asri B.,Nassar M., Kriouile A Multi-functional<br />

service oriented system development for user-driven adaptability, Proceedings of the 3<br />

rd International Conference on Information & Communication Technologies: from


178 Références<br />

Theory to Applications (ICTTA‟08), April 7 - 11, 2008, Damascus, Syria, IEEE.<br />

[Kenzi et al., 2008d] Kenzi A., El Asri B.,Nassar M., Kriouile A., : SOA vs MVSOA :<br />

Une architecture orientée services multivues, Colloque Africain sur la Recherche en<br />

Informatique et en Mathématiques Appliquées (CARI‟08), Rabat, 27-30 Octobre<br />

2008.<br />

[Kenzi et al., 2009a] Kenzi A., El Asri B.,Nassar M., Kriouile A, "A model driven<br />

framework for multiview service oriented system development," 2009 IEEE/ACS<br />

International Conference on Computer Systems and Applications, IEEE Computer<br />

Society.<br />

[Kenzi et al., 2009b] Kenzi A., El Asri B.,Nassar M., Kriouile A.: Engineering<br />

Adaptable Service Oriented Systems: A Model Driven approach, IEEE International<br />

Conference on Service-Oriented Computing and Applications (SOCA'09), Taipei,<br />

Taiwan, IEEE Computer Society.<br />

[Kiczales et al., 2001] Kiczales, G., Hilsdale, E., Hugunin, J., Kersten, M., Palm, J.,<br />

Griswold, W.G.: An Overview of AspectJ. In ECOOP(2001) 327-353<br />

[Kim et al., 2006] Kim Y., Yun Y.: An Approach to Modeling Service-Oriented<br />

Development Process. IEEE SCC 2006: 273-276<br />

[Kim et al., 2007] Kim Y., Doh K.G,: The Service Modeling Process Based on Use<br />

Case Refactoring. BIS 2007: 108-120<br />

[Kiss, 2007] Kiss, C. Composite Capability/Preference Profiles (CC/PP): Structure<br />

and Vocabularies 2.0. W3C Working Draft [en ligne], 2007. Disponible sur :<br />

.<br />

[Klyne et al.,, 2004] Klyne, G., Carroll, J.J. Resource Description Framework (RDF):<br />

Concepts and Abstract Syntax. W3C Recommendation [en ligne], 2004. Disponible<br />

sur :.<br />

[Koning et al., 2009] Koning, M., Sun, C., Sinnema, M., Avgeriou, P.: VxBPEL:<br />

Supporting variability for Web services in BPEL. Information Software<br />

Technology(2009) 258-269<br />

[Kleppe et al., 2005] Kleppe, A., Warmer, J., Bast, W. MDA Explained: The Model<br />

Driven Architecture: Practice and Promise. Addison-Wesley, 2005.<br />

[Kouadri Mostefaoui et al., 2004] Kouadri Mostefaoui S., Hannes Gassert and Béat<br />

Hirsbrunner, “Context Meets Web Services: Enhancing WSDL with Context-Aware<br />

Features.” 1st International Workshop on Best Practices and Methodologies in<br />

Service-Oriented Architectures: Paving the Way to Web-services Success, held in<br />

conjunction with the OOPSLA'2004, Vancouver, British Columbia, Canada, 24 - 28<br />

october 2004. pp. 1 - 14.<br />

[Kriouile, 1995] Kriouile A., "VBOOM, une méthode orientée objet d‟analyse et de<br />

conception par points de vue", thèse d‟Etat de l‟université Mohammed V de Rabat,<br />

1995.<br />

[Lopes et al., 2003] Lopes D., Hammoudi S., : Web Services in the Context of MDA.<br />

ICWS 2003: 424-427


179 Références<br />

[Lopes et al., 2005] Lopes D., Hammoudi S., Bézivin J., Jouault F.,: Generating<br />

Transformation Definition from Mapping Specification: Application to Web Service<br />

Platform. CAiSE 2005: 309-325<br />

[Lopes, 2005] Lopes D., "Etude et applications de l‟approche MDA pour des platesfromes<br />

de Service Web", Thèse de Doctorat en Informatique, LINA, Université de<br />

Nantes, juillet 2005.<br />

[López Sanz et al., 2007] López Sanz M., Acuña C.J, Cuesta C.E., Marcos E.:<br />

UML Profile for the Platform Independent Modelling of Service-Oriented<br />

Architectures. ECSA 2007: 304-307<br />

[López Sanz et al., 2008] López Sanz M., Acuña C.J, Cuesta C.E., Marcos E.:<br />

Defining Service-Oriented Software Architecture Models for a MDA-based<br />

Development Process at the PIM level. WICSA 2008: 309-312<br />

[Lopez-Velasco et al., 2005] Lopez-Velasco C., AWSDL: une extension de WSDL<br />

pour des services Web adaptés. INFORSID 2005: 133-148<br />

[Maamar et al., 2003] Maamar Z., Benatallah B., Mansoor W.: Service Chart<br />

Diagrams - Description & Application. WWW (Alternate Paper Tracks),2003<br />

[Maamar et al., 2005] Maamar, Z., Benslimane, D., Ghedira, C., Mrissa, M.: Views in<br />

Composite Web Services. IEEE Internet Computing, (2005) , 79-84<br />

[Maamar et al., 2006a] Maamar Z., Baïna K., Benslimane D., Narendra N.C.,<br />

Chelbabi M.,: Towards a Contextual Model-Driven Development Approach for Web<br />

Services. ICEIS (3) 2006: 78-85<br />

[Maamar et al., 2006b] Maamar Z., Benslimane D, Narendra N., What can context do<br />

for web services Commun. ACM 49(12): 98-103 (2006)<br />

[Maamar et al., 2008] Maamar Z., Benslimane D., A Context-based and Policydriven<br />

Method to design and develop Composite Web services, International Journal<br />

of E-Business Research (IJEBR) 4(4), 2008.<br />

[ Marschal et al., 2003] MARSCHALL F., BRAUN P., Model Transformations for<br />

the MDA with BOTL. Proceedings of the Workshop on Model Driven Architecture:<br />

Foundations and Applications, June 2003<br />

[Mellor et al., 2004]Mellor S., Scott K., Uhl A., Weise D., MDA Distilled. Addison-<br />

Wesley, 2004.<br />

[Mitra et al., 2003] Mitra N., SOAP version 1.2 part 0: primer, W3C<br />

Recommendation, juin, 2003.<br />

[Nassar et al., 2003] Nassar M., Coulette, B., Crégut, X., Ebsersold, S., Kriouile, A.,<br />

2003. Towards a View based Unified Modeling Language. Proc. of 5th International<br />

Conference on Enterprise Information Systems (ICEIS‟2003), Angers, France.<br />

[OMG, 2002a] OMG, Meta Object Facility (MOF) specification – version 1.4,<br />

formal/01-11-02, April 2002.<br />

[OMG, 2002b] OMG, XMI, XML Metadata Interchange (XMI), v1.2, OMG, 2002b.<br />

[OMG, 2002c] OMG, CORBA Components, V3.0, formal/02-06-65, June 2002.


180 Références<br />

[OMG, 2002d] OMG, UML Profile for Enterprise Distributed Object Computing<br />

Specification, February 2002. OMG Adopted Specification ptc/02-02-05,<br />

[OMG, 2003] http://www.omg.org/docs/formal/02-04-03.pdf<br />

[OMG, 2005] Object Management Group, UML Profile for Modeling Quality of<br />

Service and Fault Tolerance Characteristics and Mechanisms, Adopted Specification,<br />

May 2005.<br />

[OMG , 2005] Object Management Group, UML Profile for Schedulability,<br />

Performance and Time Specification, v. 1.1, January 2005.<br />

[OMG, 2009] Object Management Group, Service oriented architecture Modeling<br />

Language (SoaML), http://www.omg.org/spec/SoaML, 2009<br />

[OMG, 2003] Object Management Group, MDA Guide, version 1.0.1, June 2003.<br />

[OMG, 2004] OMG. UML Profile for Enterprise Collaboration Architecture<br />

Specification, OMG formal/04-02-05, February 2004.<br />

[Ortiz et al., 2006a] Ortiz G., Hernández J.: Service-Oriented Model-Driven<br />

Development: Filling the Extra-Functional Property Gap. ICSOC 2006: 471-476<br />

[Ortiz et al., 2006b] Ortiz G., Hernández, J., Toward UML Profiles for Web Services<br />

and their Extra-Functional Properties. IEEE International Conference on Web Services<br />

( ICWS 2006) : 889-892<br />

[Papazoglou et al., 2008] Papazoglou M.P., Paolo Traverso, Schahram Dustdar, Frank<br />

Leymann: Service-Oriented Computing: a Research Roadmap. Int. J. Cooperative Inf.<br />

Syst. 17(2): 223-255 (2008)<br />

[Papazoglou et al., 2003] Papazoglou M. P., « Service Oriented Computing :<br />

Concepts, characteristics and Directions », actes de la 4° conférence WISE`03, Rome,<br />

10-12décembre 2003, Italie, IEEE Computer Society, p. 3-12.<br />

[Papazoglou et al., 2006] Papazoglou M., P., van den Heuvel W., Service-oriented<br />

design and development methodology. Int. J. Web Eng. Technol. 2(4): 412-442 (2006)<br />

[Papazoglou et al., 2007a] Papazoglou M.P, Willem-Jan van den Heuvel: Service<br />

oriented architectures: approaches, technologies and research issues. VLDB J. 16(3):<br />

389-415 (2007)<br />

[Papazoglou et al., 2007b] Papazoglou M.P. , “Web Services: Principles and<br />

Technology”, Prentice hall, 2007<br />

[Patrascoiu et al., 2004a] Patrascoiu O., "YATL: Yet Another Transformation<br />

language", in Proceedings of the 1st European MDA Workshop MDA-IA, pp. 83-90,<br />

January 2004.<br />

[Patrascoiu et al., 2004b] Patrascoiu O., Mapping EDOC to Web service using YATL.<br />

In Proceedings of the 8th IEEE International Enterprise Distributed Object Computing<br />

Conference (EDOC‟04). IEEE Computer Society, pp. 286-297.<br />

[Rafanelli et al., 2003] Rafanelli M., Multidimensional Databases: Problems and<br />

Solutions Idea Group 2003.


181 Références<br />

[Rolland et al., 2007] Rolland C., Kaabi R.S., Kraïem N.: On ISOA: Intentional<br />

Services Oriented Architecture. CAiSE 2007: 158-172<br />

[SINTEF, 2004] SINTEF. UML Model Transformation Tool (UMT), december 2004.<br />

Disponible sur http://umtqvt. sourceforge.net,<br />

[Sheng et al., 2005] Sheng, Q.Z., Benatallah, B.,ContextUML: A UML-Based<br />

Modeling Language for Model-Driven Context-Aware Web Service Development,<br />

Proc. of the 4th Intl. Conf. onMobile Business (ICMB'05), Sydney, Australia, July<br />

(2005).<br />

[SKOGAN et al., 2004] SKOGAN D., GRONMO R., SOLHEIM I., Web Service<br />

Composition in UML. Eight IEEE International Enterprise Distributed Object<br />

Computing Conference (EDOC 2004), pages 47–57, September 2004.<br />

[Stojanovic et al., 2004] Stojanovic Z., Dahanayake A., Sol H., “Modeling and design<br />

of Service Oriented Architecture”, IEEE International Conference on Systems, Man<br />

and Cybernytics, 2004.<br />

[SUN, 2004] SUN MICROSYSTEMS. JavaWeb Services Developer Pack, March<br />

2004. Disponible sur http://java.sun.com/webservices,<br />

[Szyperski,2002] Szyperski C.: Component Software - Beyond Object-Oriented<br />

Programming. Addison-Wesley, 2 édition, novembre 2002.<br />

[Tao et al., 2008] Tao A.T, Yang J.: Towards policy driven context aware<br />

differentiated services design and development. Enterprise IS 2(4): 367-384 (2008)<br />

[Tao et al., 2007a] Tao A.T, Yang J., : Context Aware Differentiated Services<br />

Development with Configurable Business Processes. EDOC 2007: 241-252<br />

[Tao et al., 2007b] Tao T.A.,Yang J., Supporting Differentiated Services With<br />

Configurable Business Processes. Proc of the IEEE International Conference on Web<br />

Services (ICWS'07), 2007.<br />

[Torkaman et al., 2006] Torkaman Rahmani A., Rafe V., Sedighian S., Abbaspour A.:<br />

An MDA-Based Modeling and Design of Service Oriented Architecture. International<br />

Conference on Computational Science (3) 2006: 578-585<br />

[Tsai et al., 2006] Tsai W.T., Malek M.,, Chen Y., Bastani F.B., : Perspectives on<br />

Service-Oriented Computing and Service-Oriented System Engineering. SOSE 2006:<br />

3-10<br />

[W3C, 2004] Web Services Architecture.W3C disponible sur<br />

http://www.w3.org/TR/ws-arch/, 2004.<br />

[Wonohoesodo et al., 2004] Wonohoesodo R., Tari Z., A Role based Access Control<br />

for Web Services. IEEE International Conference on Services Computing (SCC 2004),<br />

2004<br />

[Yu et al., 2007] Yu X., Zhang Y., Zhang T., Wang L., Hu J., Zhao J., Li X., A<br />

model-driven development framework for enterprise Web services. Information<br />

Systems Frontiers 9(4) : 391-409 ( 2007).


182 Références<br />

[Yu et al., 2008] Yu Q., Bouguettaya A.,: Framework for Web service query algebra<br />

and optimization. TWEB 2(1): (2008)<br />

[Yu et al., 2008] Yu Q., Liu X., Bouguettaya A., Medjahed B.,: Deploying and<br />

managing Web services: issues, solutions, and directions. VLDB J. 17(3): 537-572<br />

(2008)<br />

[Zhang et al., 2006] Zhang T., Ying S., Cao S., Jia X., : A Modeling Framework for<br />

Service-Oriented Architecture. QSIC 2006: 219-226

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!