Modélisation d'Applications Adaptables
Modélisation d'Applications Adaptables
Présentée devant
Pour obtenir
LE GRADE DE DOCTEUR
Spécialité : INFORMATIQUE
Par
M O H A M AD - FI RA S ALH AL AB I
Ingénieur en informatique
Titre :
Jury
Gilles MOTET Professeur, Laboratoire LATTIS – Rapporteur
INSAT, Toulouse
Lionel SEINTURIER Professeur, Laboratoire LIFL –INRIA Rapporteur
– Université des Sciences et
Technologies de Lille
Ahmed LBATH Professeur, Laboratoire LIG –IMAG Examinateur
Université Joseph Fourier, Grenoble
Mathieu MARANZANA Maître de conférence – Laboratoire Examinateur
LIESP – INSA de Lyon
Jean-Louis SOURROUILLE Professeur, Laboratoire LIESP – Directeur de thèse
INSA de Lyon
Mots clés :
Gestion de la QoS ; Composant UML ; Adaptation ; MDD (Model Driven
Development) ; Planification ; Cadre Générique ; Applications Distribuées.
ABSTRACT
Key-words:
QoS Management; UML Component; Adaptation; MDD (Model Driven
Development) ; Generic Framework; Distributed Applications.
REMERCIMENT
Ce travail de thèse n‟aurait pas été aussi fructueux sans l‟aide de plusieurs
personnes. Je remercie tous ceux qui ont contribué, de près ou de loin à
réaliser ce travail. Je tiens à adresser mes remerciements aux membres du
laboratoire que j‟ai pu côtoyer durant la période de ma thèse et qui ont su
rendre mon travail agréable. Mes remerciements vont tout d‟abord à
Monsieur Jean-Louis SOURROUILLE, Professeur enseignant au
département Informatique de l‟INSA de Lyon, pour son encadrement
continu, pour les remarques qu‟il m‟a fournies ainsi que pour ses conseils
durant toute la période de cette thèse.
Ma gratitude, mon profond respect et mes remerciements vont à
tous les membres du jury et à tous les rapporteurs pour leur attention
consacrée à l‟égard de mon travail :
Monsieur Mathieu MARANZANA, Maître de Conférences à
l‟INSA de Lyon, d‟avoir accepté de participer au jury et pour ses remarques
et ses conseilles durant ce travail.
Monsieur Gilles MOTET, Professeur au laboratoire LATTIS à
l‟INSAT, d‟avoir accepté de rapporter mon mémoire de thèse et d‟avoir
accepté de participer au jury.
Monsieur Lionel SEINTURIER, Professeur au laboratoire LIFL à
l‟université des Sciences et Technologies de Lille, d‟avoir accepté de
rapporter mon mémoire de thèse et d‟avoir accepté de participer au jury.
Je remercie également Monsieur Ahmed LBATH, Professeur au
laboratoire LIG-IMAG à l‟université Joseph Fourier, d‟avoir accepté de
participer au jury.
Je pense, bien sûr à ma famille mais les mots ne suffiront pas à
leur témoigner ce dont je leur suis redevable.
Sommaire
Chapitre 1 Introduction Générale -------------------------------------------------------- 11
1.1 Introduction --------------------------------------------------------------------------------------- 11
1.2 Contexte et Motivation -------------------------------------------------------------------------- 12
1.3 Objectifs de la thèse ----------------------------------------------------------------------------- 13
1.4 Contributions ------------------------------------------------------------------------------------- 15
1.5 Structure du mémoire ---------------------------------------------------------------------------- 16
Chapitre 2 Notions et Concepts de base ------------------------------------------------- 18
2.1 Introduction --------------------------------------------------------------------------------------- 18
2.2 Systèmes autonomes et gestion de la QoS ---------------------------------------------------- 18
2.3 Notion de QoS ------------------------------------------------------------------------------------ 19
2.4 Niveau de QoS ----------------------------------------------------------------------------------- 20
2.5 Problématique de la QoS ------------------------------------------------------------------------ 21
2.5.1 Limitation des ressources -------------------------------------------------------------------- 22
2.5.2 Gestion de la dégradation -------------------------------------------------------------------- 22
2.6 Définition de l’adaptation ----------------------------------------------------------------------- 23
2.6.1 Principe ---------------------------------------------------------------------------------------- 23
2.6.2 Approche intrusive --------------------------------------------------------------------------- 23
2.6.3 Approche non-intrusive ---------------------------------------------------------------------- 24
2.6.4 Approche mixte ------------------------------------------------------------------------------- 24
2.6.5 Adaptation statique/dynamique ------------------------------------------------------------- 25
2.7 Notions relatives à la gestion de la QoS ------------------------------------------------------ 25
2.7.1 Catégories de QoS ---------------------------------------------------------------------------- 25
2.7.2 Gestionnaire de QoS -------------------------------------------------------------------------- 26
2.7.3 Contrat de QoS -------------------------------------------------------------------------------- 26
2.7.4 Mode et Utilité -------------------------------------------------------------------------------- 26
2.7.5 Les fonctions de gestion de la QoS --------------------------------------------------------- 27
2.8 Notions relatives au développement à base de modèles et de langages ------------------- 30
2.8.1 L'approche MDA ------------------------------------------------------------------------------ 30
2.8.2 Profil UML ------------------------------------------------------------------------------------ 32
2.8.3 DSL/DSM Domain Specific [Modeling] Language -------------------------------------- 33
2.8.4 Software Product Line ----------------------------------------------------------------------- 34
2.9 Conclusion ---------------------------------------------------------------------------------------- 34
Chapitre 3 Application et Environnement d’Exécution ------------------------------- 36
3.1 Introduction --------------------------------------------------------------------------------------- 36
3.2 Modèle de l’application ------------------------------------------------------------------------- 36
3.2.1 Structure des applications ------------------------------------------------------------------- 37
3.2.2 Graphe d'exécution et Phases --------------------------------------------------------------- 38
Firas ALHALABI 5
Thèse en Informatique / 2009
Institut National des Sciences Appliquées de Lyon
3.2.3 Amélioration du modèle --------------------------------------------------------------------- 39
3.2.4 Langage de description des applications --------------------------------------------------- 40
3.2.5 Exemple ---------------------------------------------------------------------------------------- 41
3.3 Gestion centralisée vs. décentralisée ---------------------------------------------------------- 43
3.3.1 Gestion centralisée --------------------------------------------------------------------------- 43
3.3.2 Gestion décentralisée ------------------------------------------------------------------------- 43
3.3.3 Estimation des coûts -------------------------------------------------------------------------- 46
3.3.4 Comparaison : échanges de messages ------------------------------------------------------ 47
3.3.5 Résultats graphiques -------------------------------------------------------------------------- 55
3.4 Conclusion ---------------------------------------------------------------------------------------- 56
Chapitre 4 Approche à base de Composants et Méthodologie de Développement 58
4.1 Introduction --------------------------------------------------------------------------------------- 58
4.2 Définition du composant ------------------------------------------------------------------------ 58
4.3 Différentes catégories --------------------------------------------------------------------------- 59
4.4 Composant UML 2.0 ---------------------------------------------------------------------------- 59
4.4.1 Définition -------------------------------------------------------------------------------------- 59
4.4.2 Deux vues complémentaires du composant UML 2.0 ------------------------------------ 60
4.4.3 Imprécision dans UML ----------------------------------------------------------------------- 61
4.4.4 Présentation des éléments du modèle de composant en UML 2.0 ---------------------- 62
4.4.5 Solutions et Précisions ----------------------------------------------------------------------- 63
4.4.6 Héritage de composants ---------------------------------------------------------------------- 65
4.4.7 Substitution de composants ------------------------------------------------------------------ 70
4.5 Méthodologie de développement -------------------------------------------------------------- 74
4.5.1 Description du domaine : profil générique ------------------------------------------------ 75
4.5.2 Modélisation : Architecture ----------------------------------------------------------------- 76
4.5.3 Préparation de la dérivation : profil commun --------------------------------------------- 78
4.5.4 Dérivation : Profil de dérivation ------------------------------------------------------------ 80
4.5.5 Transformation de modèles ------------------------------------------------------------------ 82
4.5.6 Dérivation de modèles spécifiques --------------------------------------------------------- 83
4.5.7 Spécialisation : profil spécifique ----------------------------------------------------------- 85
4.5.8 Raffinement et Implémentation ------------------------------------------------------------- 85
4.5.9 Génération de code et retour d’expérience ------------------------------------------------ 87
4.6 Comportement dynamique ---------------------------------------------------------------------- 87
4.6.1 Description ------------------------------------------------------------------------------------ 87
4.6.2 Problème de l’incohérence lié à la suppression ------------------------------------------- 88
4.7 Conclusion ---------------------------------------------------------------------------------------- 89
Chapitre 5 Architectures Existantes et Cadre Générique pour la Gestion de la QoS
90
5.1 Introduction --------------------------------------------------------------------------------------- 90
5.2 Besoin d’une architecture générique ---------------------------------------------------------- 91
5.3 Les architectures existantes --------------------------------------------------------------------- 92
5.3.1 Le standard ISO ------------------------------------------------------------------------------- 92
5.3.2 Architecture QoS-A -------------------------------------------------------------------------- 92
5.3.3 Architecture OMEGA ------------------------------------------------------------------------ 93
5.3.4 Architecture DART --------------------------------------------------------------------------- 95
5.3.5 Architecture RTARM ------------------------------------------------------------------------ 95
5.3.6 Architecture QuO ----------------------------------------------------------------------------- 98
5.3.7 Architectures développées par notre équipe ----------------------------------------------- 98
5.3.8 Architectures dédiées aux systèmes multimédia ---------------------------------------- 101
5.4 Commentaires sur les travaux existants ----------------------------------------------------- 102
5.5 Cadre générique pour une famille de systèmes de gestion de la QoS ------------------- 103
5.5.1 Description du domaine : Profil générique proposé ------------------------------------ 104
5.5.2 Modélisation : architecture ---------------------------------------------------------------- 106
Firas ALHALABI 6
Thèse en Informatique / 2009
Institut National des Sciences Appliquées de Lyon
5.5.3 Commentaires et Discussion -------------------------------------------------------------- 113
5.5.4 Préparation de la dérivation : contraintes de dérivation ------------------------------- 114
5.5.5 Scénario possible du fonctionnement ---------------------------------------------------- 115
5.6 Dérivation : le modèle PMQDA-------------------------------------------------------------- 116
5.6.1 Principe de dérivation ---------------------------------------------------------------------- 117
5.6.2 Contraintes spécifiques -------------------------------------------------------------------- 118
5.6.3 Le modèle de PMQDA dérivé ------------------------------------------------------------- 118
5.7 Conclusion -------------------------------------------------------------------------------------- 120
Chapitre 6 Conclusion et Perspectives -------------------------------------------------- 122
6.1 Implémentation --------------------------------------------------------------------------------- 122
6.2 Conclusion générale --------------------------------------------------------------------------- 123
6.3 Perspectives ------------------------------------------------------------------------------------- 124
Firas ALHALABI 7
Thèse en Informatique / 2009
Institut National des Sciences Appliquées de Lyon
Liste des Figures
Figure 1-1 : Une communication simple entre l‟application et le middleware. ---------------- 12
Figure 1-2 : Schéma illustratif concernant la partie méthodologie de développement. ------- 14
Figure 1-3 : Schéma illustratif concernent la partie application. --------------------------------- 15
Figure 2-1 : La définition d‟un nouveau stéréotype dans UML. --------------------------------- 33
Figure 3-1 : La communication entre l‟application et le middleware. --------------------------- 37
Figure 3-2 : Modèle générique des applications sous forme de graphe. ------------------------ 37
Figure 3-3 : Modèle de l‟application avec la définition des phases. ----------------------------- 38
Figure 3-4 : Améliorations du modèle générique. -------------------------------------------------- 39
Figure 3-5 : Le modèle UML d'une application. ---------------------------------------------------- 40
Figure 3-6 : Un exemple d‟application sous forme de diagramme d‟activité en UML. ------ 42
Figure 3-7 : L‟architecture de déploiement de la politique centralisée. ------------------------- 44
Figure 3-8 : L‟architecture de déploiement de la politique décentralisée complète. ---------- 45
Figure 3-9 : L‟architecture de déploiement de la politique décentralisée partielle. ----------- 46
Figure 3-10 : Exemple de planification des ressources, illustrant le décalage d‟étapes. ----- 48
Figure 3-11 : La synchronisation des étapes pour notre exemple d‟application. -------------- 50
Figure 3-12 : Les échanges des messages nécessaires pour décaler l‟étape (a) qui utilise la
ressource globale Net. ----------------------------------------------------------------------------------- 51
Figure 3-13 : L‟admission de l‟étape (c) utilisant la ressource globale Net. ------------------- 52
Figure 3-14 : La synchronisation des activités de notre exemple. ------------------------------- 53
Figure 3-15 : Le nombre de messages échangés Msg = f(Sync), Node 6. -------------------- 55
Figure 3-16 : Le nombre de messages échangés Msg = f(Shift) pour Node 10. ------------- 56
Figure 4-1 : Le modèle de composant dans UML 2.0. --------------------------------------------- 59
Figure 4-2 : Les vues externe (a) et interne (b) du composant dans UML 2.0. ---------------- 60
Figure 4-3 : Un composant primitif contenant quatre classes. ------------------------------------ 64
Figure 4-4 : Le composant composite dans UML 2.0. --------------------------------------------- 64
Figure 4-5 : L‟héritage de composants comme il est défini dans [Boc04]. --------------------- 66
Figure 4-6 : Héritage de composants selon le standard UML : X, Y, et p sont implicitement
hérités. ----------------------------------------------------------------------------------------------------- 68
Figure 4-7 : La définition du stéréotype «BlackBox_Inheritance». ------------------------------ 68
Figure 4-8 : La définition du stéréotype «PortToPort_Inheritance» entre deux composants.
-------------------------------------------------------------------------------------------------------------- 69
Figure 4-9 : La substitution absolue de composants. ----------------------------------------------- 71
Figure 4-10 : La substitution contextuelle pour des interfaces requises. ----------------------- 72
Figure 4-11: La substitution contextuelle pour des interfaces fournies. ------------------------ 72
Figure 4-12 : Machines à états associés aux interfaces des composants A et B. -------------- 73
Figure 4-13 : La description de notre méthodologie de développement. ----------------------- 75
Firas ALHALABI 8
Thèse en Informatique / 2009
Institut National des Sciences Appliquées de Lyon
Figure 4-14 : La définition des notions du domaine de SOA par des stéréotypes. ------------ 76
Figure 4-15 : Le modèle de l‟architecture de SOA. ------------------------------------------------ 77
Figure 4-16 : L‟application du stéréotype «remove» sur un modèle. ---------------------------- 79
Figure 4-17 : Le modèle de l‟architecture de SOA avec les stéréotypes de la variabilité ---- 81
Figure 4-18 : Un modèle spécifique possible dérivé du modèle générique. -------------------- 84
Figure 4-19 : la spécialisation d‟un stéréotype générique pour le modèle spécifique. -------- 85
Figure 4-20 : Un modèle spécifique dérivé du modèle générique avec raffinement. --------- 86
Figure 4-21: Le modèle de PSM en utilisant la plateforme EJB.--------------------------------- 86
Figure 4-22 : Un diagramme de composants et son diagramme de séquence. ----------------- 88
Figure 4-23 : Conserver la cohérence entre les diagrammes au moment de la dérivation. --- 88
Figure 5-1 : Le modèle de l‟architecture RTARM. ------------------------------------------------- 97
Figure 5-2 : Le modèle de l‟architecture DCBL -------------------------------------------------- 101
Figure 5-3 : Une architecture générique à base de composants pour une famille de systèmes
de gestion de la QoS. ---------------------------------------------------------------------------------- 108
Figure 5-4 : Le diagramme de séquence générique relatif à un cycle de négociation. ------ 114
Figure 5-5 : Le déroulement de l‟application. ----------------------------------------------------- 116
Figure 5-6: Schéma illustrant la dérivation. ------------------------------------------------------- 119
Figure 5-7 : Le modèle spécifique PMQDA dérivé de notre architecture générique. ------- 120
Figure 6-1 : Exemple de transformation de modèle. --------------------------------------------- 123
Firas ALHALABI 9
Thèse en Informatique / 2009
Institut National des Sciences Appliquées de Lyon
Liste des tableaux
Tableau 2-1 : La traduction des paramètres de QoS. ----------------------------------------------- 28
Tableau 3-1 : Un exemple d'une application de transfert de données. -------------------------- 41
Tableau 3-2 : La définition des variables utilisées. ------------------------------------------------ 48
Tableau 3-3 : Résumé des nombres de messages échangés pour les politiques de gestion
centralisée et décentralisée de la QoS. --------------------------------------------------------------- 54
Tableau 5-1 : Comparaison entre différentes architectures de gestion de la QoS. ---------- 103
Tableau 5-2 : Les stéréotypes du profil générique. ----------------------------------------------- 105
Tableau 5-3 : Propriétés associées aux stéréotypes définis.------------------------------------- 106
Firas ALHALABI 10
Thèse en Informatique / 2009
Institut National des Sciences Appliquées de Lyon
Chapitre 1 Introduction Générale
1.1 Introduction
Firas ALHALABI 11
Thèse en Informatique / 2009
Institut National des Sciences Appliquées de Lyon
directement les modèles représente une avancée majeure dans le domaine
du génie logiciel. Le problème est qu‟UML offre peu de notions natives
pour la description de la QoS, mais heureusement il peut être étendu à
l‟aide de profils qui décrivent les nouvelles notions (stereotype), leurs
propriétés (tagged value) et les contraintes relatives à leur utilisation.
Application
start()
Inactive Middleware
do/activity Active Communication
stop() Protocol
Firas ALHALABI 12
Thèse en Informatique / 2009
Institut National des Sciences Appliquées de Lyon
selon le système choisi tout en essayant de respecter un modèle générique
pour tous les systèmes de gestion qui existent dans la littérature.
Pour résumer, la conception de ce type d‟application va orienter
les développeurs vers une modélisation basée conjointement sur les aspects
fonctionnels et non fonctionnels. Pour cela, nous choisissons de définir à la
fois un modèle générique pour toutes les applications et un cadre générique
pour une famille des systèmes de gestion. À partir de ce cadre, les systèmes
de gestion dérivés contrôlent l‟exécution des applications afin que ces
dernières puissent s‟adapter à leur contexte. La gestion de la QoS peut être
effectuée par le biais d‟un protocole commun de communication définissant
les échanges de messages entre l‟application et le système de gestion.
Nous pouvons définir de nombreux messages qui composeraient
ce protocole. Nous en citons quelques-uns :
L‟application demande son admission avec des besoins de QoS et
attend des directives ;
L‟application demande un service avec une certaine qualité ;
Le système de gestion alerte l‟application en cas de dépassement d‟un
seuil prédéfini pour la consommation de ressources ;
Le système demande à une application de se tuer.
L‟enjeu est de définir un cadre générique pour la gestion de QoS
d‟une part et de modéliser l‟application qui sera exécutée sous le contrôle
d‟un système de gestion spécifique dérivé de ce cadre générique de l‟autre.
Firas ALHALABI 13
Thèse en Informatique / 2009
Institut National des Sciences Appliquées de Lyon
Development, MDD), nous utilisons le principe des lignes de produits
logiciels (Software Product Line, SPL) et/ou de la programmation
générative pour définir un langage dédié au domaine (Domain Specific
Language, DSL) basé sur un profil UML (UML Profile). De façon plus
particulière, cette méthodologie nous permettra de développer un cadre
générique pour une famille de systèmes de gestion de la QoS ( QoS
Management System, QMS) se basant sur les connecteurs (Connector) et les
composants UML (Component). Ce dernier facilitera la dérivation d‟un
système de gestion spécifique par transformation de modèles. La Figure
1-2 présente, sous forme d‟un réseau sémantique, un modèle illustrant les
notions concernées pour le développement de notre méthodologie. Les
différents éléments du modèle représentent les notions qui seront plus ou
moins utilisées tout au long de ce mémoire. Ces notions sont représentées
par des boîtes étiquetées par les mots correspondants. Les liens entre ces
boîtes expriment les relations sémantiques entre les notions.
QMS
Domain Specific
System Family
apply for
derived from
based on Development define based on
Methodology Generic
MDD DSL
Framework
use the principle of
Use
based on based on
SPL
Model
Described in UML Profile Component
is a Extension UML
for
PM PIM PSM
Connector
Firas ALHALABI 14
Thèse en Informatique / 2009
Institut National des Sciences Appliquées de Lyon
Graph QoS
Model Level
described by optimize
controled by based on
Application QoS Management
System Adaptation
is a
controlled by constraints is a is a
Static Dynamic
soft hard Management Management
Mode policy
is a
is a
intrusive non-intrusive
Centralized Decentralized
is a
Fully Partial
Decentralized Decentralized
1.4 Contributions
Firas ALHALABI 15
Thèse en Informatique / 2009
Institut National des Sciences Appliquées de Lyon
modèles pour passer d‟un cadre (framework) générique à une
description spécifique. Notre méthodologie est fondée sur le
développement à base de modèles (MDD).
5. Nous avons identifié les composants nécessaires pour construire un
cadre générique d‟une famille de systèmes de gestion de QoS par
adaptation de comportement. Pour ce faire, nous avons effectué une
étude bibliographique sur les différentes architectures de gestion de
QoS existantes. Cela nous a permis de faire le premier pas vers la
définition d‟un langage dédié (c‟est-à-dire, un DSL) pour le domaine
de la gestion de la QoS.
6. Nous avons étudié le problème d‟instanciation de modèle et les
possibilités d‟automatiser le processus de dérivation d‟un modèle
spécifique à partir d‟un cadre générique. Dans cette étape, nous avons
traité le problème lié à l‟incohérence produit particulièrement par la
suppression d‟un composant ou un connecteur pendant la dérivation.
Le travail présenté dans cette thèse est lié à deux domaines de recherche :
la modélisation à base de composants et le développement conduit par des
modèles d‟une part et la gestion de la QoS globale du système par
adaptation du comportement de l‟application de l‟autre. Nous présentons
les principaux concepts, définitions et travaux étudiés de chacun de ces
deux domaines. Ensuite, nous proposons quelques précisions pour
l‟utilisation d‟UML concernant en particulier l‟héritage et la substitution de
composants. Puis, nous proposons une méthodologie de développement à
base de composants et de profils UML. Nous détaillons enfin la mise en
œuvre de cette méthodologie pour le domaine de gestion de QoS.
Ce mémoire de thèse est organisé en six chapitres de la manière
suivante. Après avoir présenté le contexte, la motivation et l‟objectif ainsi
que la contribution de ces travaux dans ce premier chapitre, le Chapitre 2
présentera les notions de base qui sont nécessaires pour comprendre la
problématique et les travaux de recherche menés dans cette thèse.
Le Chapitre 3 a pour but de modéliser les applications et de
décrire l‟environnement dans lequel s‟exécutent ces applications. Dans ce
chapitre, nous proposons un modèle générique pour la conception des
applications sous forme de graphe et nous comparons ensuite les différentes
politiques de gestion.
Le Chapitre 4 expose les extensions apportées au langage UML
concernant plus particulièrement l‟héritage et la substitution de
Firas ALHALABI 16
Thèse en Informatique / 2009
Institut National des Sciences Appliquées de Lyon
composants. Ensuite, ce chapitre décrira notre méthodologie de
développement à base de composants et de profils UML.
Le Chapitre 5 est consacré à la présentation des architectures
existantes de gestion de la QoS. Puis, nous détaillons la mise en œuvre de
notre méthodologie de développement pour développer un cadre générique
d‟une famille de systèmes de gestion de la QoS. Un système de gestion
spécifique appelé PMQDA sera ensuite dérivé de notre cadre générique.
Pour finir, le Chapitre 6 commence par présenter une partie de
l‟implémentation que nous avons réalisée pour la mise en œuvre de nos
propositions. Puis, nous conclurons ce mémoire en récapitulant les travaux
réalisés et en proposant des directions pour les travaux futurs.
Firas ALHALABI 17
Thèse en Informatique / 2009
Institut National des Sciences Appliquées de Lyon
Chapitre 2 Notions et Concepts de base
2.1 Introduction
Dans ce chapitre, nous présentons les notions et les concepts utilisés dans
notre démarche.
Ce chapitre est organisé de la manière suivante : la section 2.2
présente la définition des systèmes autonomes. Le domaine sélectionné
pour ces systèmes autonomes est la gestion de la QoS. Pour cela, les
sections 2.3 et 2.4 présentent la notion de QoS et la section 2.5 décrit la
problématique de la QoS.
La QoS peut être gérée par adaptation du comportement de
l‟application. C‟est la raison pour laquelle, la section 2.6 décrit le
mécanisme d‟adaptation et présente des types de gestion. La section 2.7
décrit des notions relatives à la gestion de la QoS.
Enfin, la section 2.8 conclut ce chapitre en présentant des notions
et des langages qui seront discutés par la suite dans ce mémoire.
Firas ALHALABI 18
Thèse en Informatique / 2009
Institut National des Sciences Appliquées de Lyon
2.3 Notion de QoS
Firas ALHALABI 19
Thèse en Informatique / 2009
Institut National des Sciences Appliquées de Lyon
le travail présenté dans [VKV95], qui définit la QoS comme l‟ensemble des
caractéristiques qualitatives et quantitatives de tout système qui a des
contraintes sur le temps de réponse, l‟accès à ses ressources ou encore sur
la qualité du flux de données sortant nécessaire à l‟accomplissement des
fonctionnalités d‟une application. Dans ce travail, nous adoptons la
définition de [VKV95] et nous nous focalisons sur la gestion de la QoS de
haut niveau. De ce fait, la QoS a pour but de fournir des garanties quant
aux conditions d‟exécution d‟une application.
Dans cette direction, nous considérons que l‟application doit
posséder des degrés de liberté. Par exemple, chaque application possède
des modes de fonctionnement dans lesquels elle consomme plus ou moins
de ressources : si l‟application ne peut plus transférer 25 images par
seconde, une adaptation possible pour faire face à une surcharge
momentanée serait de n‟en transférer que 12.
Firas ALHALABI 20
Thèse en Informatique / 2009
Institut National des Sciences Appliquées de Lyon
3. Probabiliste : le niveau de QoS peut être meilleur si une optimisation
de l‟utilisation des ressources est faite en garantissant l‟accès aux
ressources avec un certain degré de confiance. Par exemple, un service
qui garantit que son échéance sera respectée dans 90% des cas. La
difficulté de cette solution est d‟estimer le bon niveau de confiance.
Nous proposons une solution qui tire avantage des deux premières
approches best effort et déterministe. Cette solution consiste à fournir la
meilleure QoS possible (best effort) tout en essayant de respecter les
échéances (déterministe) par le biais de la planification de toutes les
ressources du système.
En plus des niveaux de QoS présentés ci-dessus, deux types de
contraintes de temps peuvent être définis : les contraintes temps-réel dur et
les contraintes temps-réel mou :
Les contraintes temps-réel dur : regroupent les contraintes qui doivent
être respectées quelque soit le contexte d‟exécution ;
Les contraintes temps-réel mou : ces contraintes nécessitent des
garanties temporelles, qualitatives et sécuritaires moins contraignantes
que pour le temps-réel dur. Ces contraintes peuvent tolérer la perte de
quelques informations dans la mesure où cela n‟est pas clairement
perçu et peut être négligé.
Puisqu‟il est impossible de respecter strictement les contraintes
temps-réel dur dans les systèmes ouverts où la loi d‟arrivée des événements
est inconnue, seules les applications à contraintes temps-réel mou seront
considérées dans la suite de ce travail.
Les recherches qui ont traité la QoS considèrent principalement les moyens
d‟assurer un niveau donné de QoS : pour que l‟on puisse fournir les
services demandés (aspect fonctionnels) de manière satisfaisante, une
application a besoin d‟un certain niveau de QoS (aspects non fonctionnels)
pour s‟exécuter.
Il est important de pouvoir maintenir le niveau de QoS malgré les
fluctuations et/ou changements du contexte d‟exécution. Ces fluctuations
proviennent principalement de variations de la disponibilité des ressources
(par exemple, le processeur) qui varie dans le temps. Pour arriver à
maintenir le niveau de QoS il faut donc prendre en compte ces différentes
variations et gérer la QoS en conséquence.
Le fait de spécifier comment un système contrôlera sa QoS est un
problème complexe à plusieurs dimensions. Nous distinguons
Firas ALHALABI 21
Thèse en Informatique / 2009
Institut National des Sciences Appliquées de Lyon
essentiellement deux dimensions relativement liées entre elles qui sont la
limitation des ressources et la gestion de la dégradation.
Comme nous l‟avons mentionné, les systèmes autonomes ont pour but de
fonctionner malgré des changements de leur contexte d‟exécution. Dans ce
cas, il s‟agit non seulement de mettre en œuvre un service exigé, mais il
s‟agit aussi de concevoir un service capable de s‟exécuter dans le pire cas
(par exemple, en cas de surcharge du système) et même si cette exécution
s‟effectue à un niveau très dégradé. Pour ce faire, nous supposons que les
applications obéissent à une interface avec un gestionnaire de QoS ( QoS
Manager), ce qui permet au système de gestion de la QoS de dégrader
harmonieusement (Adaptation au sens général du terme) les applications en
cas de fluctuation du contexte et/ou de procéder à des négociations avec les
applications. Comme nous verrons plus tard dans ce mémoire, cette
approche nécessite la définition d‟un protocole commun entre les
applications et le gestionnaire de QoS. La section suivante détaille le
principe de l‟adaptation et présente différentes approches permettant sa
mise en œuvre.
Firas ALHALABI 22
Thèse en Informatique / 2009
Institut National des Sciences Appliquées de Lyon
2.6 Définition de l’adaptation
2.6.1 Principe
Firas ALHALABI 23
Thèse en Informatique / 2009
Institut National des Sciences Appliquées de Lyon
L‟architecture présentée dans [CS03] est un exemple typique de
gestion intrusive. La gestion de la QoS consiste à exécuter d‟abord les
tâches les plus importantes, et ensuite les autres tâches en fonction du
temps disponible.
Dans ce type de gestion, l‟adaptation est mise en œuvre (ou pilotée) par
l‟environnement de l‟application. Cette adaptation peut être réalisée de
deux façons : (i) le système d‟exploitation gère la QoS, par exemple en
répartissant le temps processeur. Il suffit seulement de lui ajouter des
fonctions supplémentaires. L‟avantage essentiel de cette solution est que
toutes les applications s'exécutant sur le même système d'exploitation
bénéficient des mêmes services puisqu‟elles ne sont pas modifiées. Les
besoins de QoS sont décrits de façon séparée, typiquement dans un fichier
accompagnant toute application [HV99] ; (ii) une couche intermédiaire
(middleware) entre l‟application et le système d‟exploitation gère la QoS
[AGB02]. L‟avantage supplémentaire de cette technique par rapport à la
précédente est qu‟elle pourrait être réutilisable pour plusieurs systèmes
d‟exploitation avec un moindre effort.
L‟approche proposée dans [AAG02] décrit un exemple intéressant
de gestion non-intrusive pour un serveur. Elle propose de changer la taille
des pages html et d‟ignorer les références et/ou les images en cas de
dégradation. L‟adaptation se fait à l‟extérieur de l‟application (Serveur) par
la redéfinition dynamique de chemins d‟accès (par exemple, des liens soft
UNIX).
Nous proposons une approche tirant parti des avantages des deux approches
précédentes. C‟est un compromis entre l‟approche intrusive et non-
intrusive. Pour cette approche, les applications sont conçues de façon
spécifique et exportent leurs besoins de ressources : elles fournissent leurs
différentes configurations qui sont associées à des besoins en ressources, et
la configuration la plus adaptée sera ensuite sélectionnée. Cependant, il faut
une relation privilégiée (interface) entre l‟application d‟une part et le
système de gestion de la QoS de l‟autre. Pour cela, une couche
intermédiaire (middleware, cas de l‟approche non-intrusive) est utilisée
entre l‟application et le système d‟exploitation gérant la QoS. Cette
technique permet au gestionnaire de contrôler les ressources depuis
l‟extérieur. Il choisit le meilleur mode opérationnel possible en fonction
des ressources disponibles dans le contexte d‟exécution.
Firas ALHALABI 24
Thèse en Informatique / 2009
Institut National des Sciences Appliquées de Lyon
Avec cette approche, comme dans le cas de l‟approche intrusive,
les fonctionnalités spécifiques et la logique métier sont implémentées du
côté des applications (c‟est-à-dire, l‟application participe à la gestion),
alors que le système de contrôle de l‟adaptation est commun pour toutes ces
applications comme dans le cas de l‟approche non-intrusive (pilotage
externe).
Firas ALHALABI 25
Thèse en Informatique / 2009
Institut National des Sciences Appliquées de Lyon
Concernant l‟adaptation du comportement de l‟application, nous
considérons qu‟il n‟existe pas d‟intervention de l‟extérieur par des
utilisateurs et que l‟application est suffisamment autonome pour faire des
requêtes (par exemple, demander un service). De ce fait, la description de
ces besoins en QoS est uniquement fournie par les applications elles -
mêmes.
Firas ALHALABI 26
Thèse en Informatique / 2009
Institut National des Sciences Appliquées de Lyon
une consommation de ressources. Un mode peut être défini par un niveau
de QoS, par exemple mode normal ou dégradé.
L‟utilité est une mesure abstraite de la QoS. C‟est la traduction
numérique des niveaux de QoS. Il faut s‟arranger pour que chaque mode de
fonctionnement soit associé à une valeur d‟utilité qui permette de juger de
son intérêt par rapport aux ressources disponibles. Par exemple, la valeur 7
pour "résolution 800*600 et FPS de 25". Cette valeur de 7 est relative par
rapport à d‟autres exigences/possibilités de la combinaison de "résolution"
et "FPS". Un mode est donc associé à une utilité pour rendre compte de
l‟intérêt d‟utiliser ce mode plutôt qu‟un autre pour un même service.
Typiquement, le système de gestion peut agir sur le mode, l‟utilité
ou les ressources. Comme nous allons voir dans le Chapitre 3, une
succession d‟actions est liée à un choix de modes, d‟où un comportement
différent dans l‟exécution de l‟application.
Firas ALHALABI 27
Thèse en Informatique / 2009
Institut National des Sciences Appliquées de Lyon
nécessaire pour éventuellement compresser/décompresser ces données, le
temps de processeur, la quantité de mémoire, etc.
Il faut attirer l‟attention sur le peu de travaux faits actuellement
sur la traduction des paramètres de QoS. Il faut noter également que la
traduction des paramètres de QoS devrait être bidirectionnelle pour
permettre à l‟application de négocier avec le système [NS95], mais cette
technique est difficile à mettre en œuvre puisque les travaux réalisés sur la
traduction des paramètres de QoS sont pour le moment basés uniqueme nt
sur des estimations [SC00].
Étant donné la diversité des applications et des environnements
d‟exécution, il n‟existe pas, à l‟heure actuelle, d‟algorithmes génériques
pour la traduction des paramètres de QoS. Ainsi toutes les solutions
proposées (par exemple, [HV98], [NCN98], [WFA99], [SC00]) dans la
littérature sont des heuristiques. Ces solutions réalisent, en effet, la
traduction d‟une manière statique. Il manque encore des approches
rigoureuses et complètes visant à réaliser cette traduction. Pour cette
raison, nous allons prévoir une technique de traduction (QoS Mapping),
mais nous ne détaillons pas sa mise en œuvre. Un exemple de traduction
(QoS Mapping) statique est représenté dans le Tableau 2-1. L‟idée est
inspirée de [MM03] et les valeurs des paramètres dans ce tableau sont
basées sur une estimation.
Bande
Paramètre Processeur Mémoire Mode Utilité
Passante
Excellent/Good 60% 50 Mo 10 KBps 1 7
Firas ALHALABI 28
Thèse en Informatique / 2009
Institut National des Sciences Appliquées de Lyon
d‟atteindre cette quantité sans perturber la consommation des autres
applications du système. Si ce n‟était pas le cas, d‟autres décisions doivent
être généralement prises (rejet de l‟application, négociation, etc.).
[Link] Négociation
[Link] Surveillance
Firas ALHALABI 29
Thèse en Informatique / 2009
Institut National des Sciences Appliquées de Lyon
surveillance (Monitoring) avertit l‟application via le gestionnaire de QoS.
Dans ce cas, le gestionnaire informe l‟application de l‟arrivée d‟un message
d‟alerte ou d‟erreur. L‟application peut alors décider d‟arrêter l‟exécution
de cette partie ou demander une renégociation. Ensuite, le processus
d‟adaptation dynamique peut/doit être déclenché.
[Link] Adaptation
Firas ALHALABI 30
Thèse en Informatique / 2009
Institut National des Sciences Appliquées de Lyon
techniques utilisées dans l‟approche MDA sont donc essentiellement des
techniques de construction de modèles d‟une part et des techniques de
transformation de modèles d‟autre part.
Firas ALHALABI 31
Thèse en Informatique / 2009
Institut National des Sciences Appliquées de Lyon
Enfin, il faut noter que notre proposition sera définie
indépendamment de la démarche MDA, mais elle se place dans le même
courant de pensée dans la mesure où elle se propose de faciliter le
développement d‟une famille de systèmes dans un domaine en utilisant d es
modèles.
Firas ALHALABI 32
Thèse en Informatique / 2009
Institut National des Sciences Appliquées de Lyon
dans [PL01]. La Figure 2-1 illustre la définition d‟un nouveau stéréotype
«Service» qui étend la méta-classe Class.
Les tagged values sont équivalentes aux méta-attributs des méta-
classes. Elles sont attachées aux stéréotypes et elles spécifient les
propriétés de la nouvelle pseudo méta-classe.
Les contraintes sont utilisées pour définir des restrictions
d‟utilisation pour la nouvelle méta-classe [SK05]. Elles sont associées aux
stéréotypes modélisant un élément UML. Les contraintes peuvent être
spécifiées soit via un langage de contraintes dédié comme OCL ( Object
Contraintes Language) [OMG06], soit en langage naturel.
Un élément marqué par un stéréotype doit respecter les contraintes
définies pour ce stéréotype et définir les propriétés associées. Enfin, il faut
noter que nous pouvons appliquer plusieurs profils différents sur le même
modèle.
«metaclass»
Class
«stereotype»
Service
Firas ALHALABI 33
Thèse en Informatique / 2009
Institut National des Sciences Appliquées de Lyon
la définition de chaque DSL pour modéliser les concepts d‟un domaine
demande de définir un nouveau méta-modèle. Ceci augmente la charge de
développement d‟un DSL comparé aux résultats espérés, alors que le profil
UML est basé sur le méta-modèle UML lui-même.
Les principales limitations des DSLs non-basés sur UML et qui
nous ont freinés pour choisir cette solution sont :
1. Il peut être nécessaire de fournir un DSL pour décrire chaque aspect du
système (par exemple, la performance). Cette situation pose le
problème d‟intégration de tous ces langages. Pour éviter un tel
problème, nous allons utiliser uniquement le langage UML.
2. Il n‟est pas simple de faire évoluer un langage alors que, comme nous
l‟avons vu, UML inclut un mécanisme de profil qui lui permet d‟être
contraint et spécialisé pour des domaines et/ou des plates -formes
spécifiques, mais aussi de faire des extensions pour ajouter des notions
supplémentaires.
3. Nous pouvons ajouter les coûts de développement du DSL et de
l‟outillage associé pour chaque domaine.
Une ligne de produit logiciel (Software Product Line, SPL) est un ensemble
de systèmes partageant un ensemble de propriétés communes et satisfaisant
des besoins spécifiques pour un domaine particulier [ZJ06]. Cependant, les
préoccupations des lignes de produits logiciels sont relatives aux
entreprises industrielles qui veulent mieux gérer le développement de leurs
systèmes [BHJ03]. Bien qu‟elles soient proches de nos travaux, elles visent
à représenter des produits qui répondent à la demande de segments de
marché à faible couplage, alors que notre approche porte sur les concepts et
la sémantique d'un domaine avec une grande cohésion.
Puisqu‟un segment de marché est plus large qu‟un domaine, SPL
introduit pas mal de points de variation, alors que, comme nous allons voir,
notre cadre traite d'une grande partie commune avec peu de variabilités. De
même que dans l‟approche SPL, dans notre approche, certaines
transformations génériques communes seront réalisées automatiquement.
2.9 Conclusion
Nous avons vu dans ce chapitre que la QoS des applications est spécifiée
par un sous-ensemble de propriétés non-fonctionnelles. La gestion de la
QoS consiste à trouver le meilleur niveau de satisfaction des contraintes
Firas ALHALABI 34
Thèse en Informatique / 2009
Institut National des Sciences Appliquées de Lyon
spécifiées par ces applications. La problématique principalement
considérée était celle de la disponibilité de ressources et de la garantie d‟un
niveau de QoS.
Étant principalement reliée au problème de changement dans le
contexte d‟exécution, la réalisation de la gestion de la QoS trouve une
solution dans la technique de l‟adaptation. Cette technique permet aux
applications distribuées ou non distribuées de fournir, du moins
partiellement, leurs services malgré les changements et les variations des
environnements d‟exécution.
La problématique autour de la QoS évolue sans cesse. Aujourd‟hui
la communauté scientifique s‟intéresse également à la question de la
facilité de programmation et de modification de la QoS d‟une application à
un haut niveau d‟abstraction. L‟expérience acquise lors des études
présentées et la motivation de vouloir éviter la reprogrammation complète
de l‟application ont orienté les recherches vers la modélisation, la méta-
modélisation et la construction d‟une famille de systèmes voisins au lieu
d‟un seul système.
La fin de ce chapitre a été consacrée à la présentation de notions
qui serviront à décrire notre proposition. Le chapitre suivant propose un
modèle générique pour la conception des applications contrôlées par un
système de gestion de la QoS. Nous décrivons également l‟architecture de
gestion avec les différentes politiques de gestion de la QoS. Une
comparaison de ces politiques est aussi présentée.
Firas ALHALABI 35
Thèse en Informatique / 2009
Institut National des Sciences Appliquées de Lyon
Chapitre 3 Application et Environnement
d’Exécution
3.1 Introduction
Pour gérer la QoS globale du système via une couche logicielle commune à
toutes les applications, nous avons besoin d‟un modèle générique des
applications. En s‟appuyant sur le modèle générique, les applications
pourront échanger des messages avec le système de gestion de la QoS en
utilisant un protocole commun. De plus, pour cet échange de messages, il
faudra décrire l‟environnement dans lequel les applications s‟exécutent.
Dans ce chapitre, nous présentons dans un premier temps notre
modèle générique des applications. Puis, nous améliorons ce modèle pour
qu‟il prenne en compte d‟autres aspects comme la synchronisation. Enfin,
nous présentons l‟exemple d‟une application de transfert de données.
Le deuxième point principal de ce chapitre concerne l‟architecture
du système de gestion. Nous définissons trois politiques de gestion :
centralisée, décentralisée complète et décentralisée partielle. Ensuite, nous
comparons ces politiques en s‟appuyant sur le nombre de messages
échangés pour chacune de ces politiques. Nous concluons ce chapitre par la
présentation de résultats graphiques.
Firas ALHALABI 36
Thèse en Informatique / 2009
Institut National des Sciences Appliquées de Lyon
Not Application Communication
Loaded Protocol
Middleware
Load/ Send(m,EndOfStep)
Loaded m:
a:
/Send(m,EndOfStep) Application Middleware
Running Waiting
NextStep(operatingMode)
do/activity
EndOfStep()
NextStep(operatingMode)
Action Node N2
Firas ALHALABI 37
Thèse en Informatique / 2009
Institut National des Sciences Appliquées de Lyon
cycle dans le graphe, l‟état réel de l‟application est a priori différent à
chaque fois que l‟on repasse dans un point de décision. Le graphe n‟est
donc pas un diagramme d‟états UML, mais un parcours.
Pour adapter le comportement de façon continue, il suffirait
d‟avoir des points de décision infiniment proches afin de pouvoir changer
le comportement à tout moment. En pratique, cela signifierait pouvoir
arrêter le traitement en cours à tout moment pour commencer un nouveau
traitement, ce qui est difficilement réalisable par essence ( l‟exécution des
instructions est discrète). Dans le modèle discret proposé, il suffira de
rapprocher suffisamment les points de décision pour obtenir une adaptation
quasi continue.
Les sous-sections suivantes complètent notre modèle d‟application
et clarifient les possibilités de choix.
Emergency
a : Applicatio n mo no-thread
Normal
b : Applicatio n multi
-thread c : Application avec plusieurs plans de choix
Firas ALHALABI 38
Thèse en Informatique / 2009
Institut National des Sciences Appliquées de Lyon
parcourus en parallèle. Avec un système de préemption, une application
peut être arrêtée au cours de son chemin mais cela n‟a pas d‟influence sur
les principes. Sauf en cas (anormal) de destruction de l‟application, elle
reprend son cours sur son chemin lorsque les ressources nécessaires lui sont
attribuées.
Pour augmenter et clarifier les possibilités de choix, une
application peut définir des "phases" et leurs associe un ensemble de choix
d‟arcs différents. Les phases sont par exemple : initialisation, normal, etc.
Au moment du changement de phase de l‟application, tout se passe comme
s'il y avait un changement de plan avec de nouvelles possibilités : l‟action
en cours se termine et l‟action suivante sera choisie dans le nouveau plan
(Figure 3-3c). À cet effet, les applications pourraient encore s‟adapter à
leur contexte en demandant la modification de leurs phases d‟exécution.
Dans ce cas l‟exécution se déroulera comme si elle était dans le nouveau
plan.
Cette solution a été retenue pour le système de gestion présenté
dans [CS03]. Les phases y sont par exemple : initialisation, normal,
panique, urgent. L‟application change la phase en sélectionnant le nouveau
plane.
A2
P2
Firas ALHALABI 39
Thèse en Informatique / 2009
Institut National des Sciences Appliquées de Lyon
3.2.4 Langage de description des applications
Application LocalApplication
1 #schedulingUnits
#refRdV
0..1 #next
SchedulingUnit
RdV
delay : Time
pathId parallel : Boolean
0..1 #rdv
{ordered}
1..n #activities
1 1..n
Activity modeId Mode Step
PhaseId #mode utility Aect
: Integer #steps
* {ordered}
Hardware
#phase
0..n #requirements
Resource
global : boolean
Firas ALHALABI 40
Thèse en Informatique / 2009
Institut National des Sciences Appliquées de Lyon
Les applications distribuées sur plusieurs nœuds sont associées à
plusieurs applications locales (LocalApplication, LA), chacune s‟exécutant
sur un nœud. Une application locale sera associée à un nœud physique au
moment de l‟exécution.
Pour toutes les applications qui s‟exécutent sur un même matériel
(Hardware), il ne sera créé qu‟une seule occurrence de la class Hardware.
Etant donné qu‟une application doit pouvoir s‟exécuter sur n‟importe quel
matériel, à la création d‟une "LocalApplication", le matériel sur lequel
celle-ci s‟exécutera lui est inconnu. Ce lien sera créé dynamiquement.
De plus, un mécanisme de rendez-vous (RdV dans la Figure 3-5)
permet de synchroniser l‟exécution de deux étapes n‟appartenant pas à la
même application locale.
3.2.5 Exemple
Unité de
Activité Utilité Node
planification Mode étape (Step)
(Activity) (Utility) (Nœud)
(SU)
Load N1
1
Start Initialisation 100
Load N2
Firas ALHALABI 41
Thèse en Informatique / 2009
Institut National des Sciences Appliquées de Lyon
Noeud 1 Noeud 2
Rendez-vous
Activity Acquisition
Decision Point
Mode
[2] [1]
Compression
Transmission 1 Reception 1
Transmission 2 Reception 2
Decompression
[1] [2]
Display 1 Display 2
Final State
Firas ALHALABI 42
Thèse en Informatique / 2009
Institut National des Sciences Appliquées de Lyon
3.3 Gestion centralisée vs. décentralisée
En plus du modèle générique des applications que nous avons proposé dans
la section 3.2, la description de l‟architecture de gestion joue un rôle très
important pour le développement d‟un système de gestion de la QoS.
Nous rappelons qu‟une application est distribuée sur plusieurs
nœuds (LocalApplication). Par exemple, une application app1 peut être
distribuée entre le nœud N 1 (app1.1) et le nœud N2 (app 1.2).
Afin de gérer au mieux la QoS globale des systèmes distribués,
nous discutons dans ce qui suit les différentes possibilités qui permettent de
mettre en œuvre cette gestion. Nous distinguons deux politiques de gestion
[ANA08] : politique centralisée (Centralized Policy) et politique
décentralisé (Decentralized Policy). Cette dernière est, à son tour, divisée
en deux sous-types : décentralisée complète (Fully Decentralized) et
décentralisée partielle (Partial Decentralized). Nous présentons une étude
comparative entre ces trois politiques de gestion.
Firas ALHALABI 43
Thèse en Informatique / 2009
Institut National des Sciences Appliquées de Lyon
N1 N2
LM1 LM2
app1.1 app1.2
Net Net
app3 app2.3
N0 Application and
environment
GM descriptions with
local and global
plannings
N4 N3
Net Net
LM4 LM3
app2.2
app2.1
app4
Firas ALHALABI 44
Thèse en Informatique / 2009
Institut National des Sciences Appliquées de Lyon
Dans cette approche, chaque nœud détient la description des
applications (qui exécutent sur lequel) ainsi que le planning des ressources
locales. Un nœud central possède la description de l‟environnement, la
description des applications et le planning des ressources globales. De cette
manière, la gestion des ressources est effectuée en deux étapes : (i) Sur
app3 app2.3
Net Net
Net Net
N4 N3
Net LM3
LM4
Local4 and Local3 and
global planning global planning app2.2
app2.1 with application with application
and environment and environment app4
description description
Firas ALHALABI 45
Thèse en Informatique / 2009
Institut National des Sciences Appliquées de Lyon
Loca1 planning Local2 planning N2
N1
with application with application
description description LM2
LM1
app1.1 app1.2
Net
Net
app3 app2.3
N0
Global Planning,
Full application
GM & environnement
description
N4 N3
Net Net LM3
LM4
app2.2
app2.1 Loca4 planning Loca3 planning
with application with application
app4
description description
Firas ALHALABI 46
Thèse en Informatique / 2009
Institut National des Sciences Appliquées de Lyon
4. Chaque décalage d‟une étape synchronisée dans le planning entraîne le
décalage de son étape associée et le cas échéant des étapes précédentes
(Figure 3-10).
5. Chaque introduction d‟étapes synchronisées peut entraîner des
décalages successifs sur les nœuds dont les étapes sont déjà
synchronisées. Les décalages s‟effectuent en remontant dans le temps
donc, les modifications déjà effectuées sur un nœud ne sont pas remises
en cause par les nouvelles modifications.
6. Le coût des communications locales (c‟est-à-dire les communications
entre les gestionnaires locaux et les applications et vice -versa) est
négligé (ce sont les mêmes pour toutes les approches).
7. Le coût de planification est évalué en nombre d‟échanges (c‟est-à-dire
messages échangés) entre les nœuds.
Dans cette section, notre discussion est limitée au coût des échanges étant
donné que le coût de planification varie très peu d‟une approche à l‟autre et
qu‟il est de plus négligeable devant le temps nécessaires pour l‟échange de
messages entre les nœuds du système (nous avons utilisé une différence
d‟un facteur 1000 mesuré sur le système présenté dans [VSM05]).
Afin de calculer le coût total des échanges, nous utilisons notre exemple du
Tableau 3-1. En s‟appuyant sur cet exemple, nous considérons deux
phases : (i) La phase de l‟admission ; (ii) La phase de gestion des étapes
qui concerne l‟exécution de ces étapes et leur synchronisation. Les
diagrammes de séquences seront utilisés pour montrer les messages
échangés et compter leur nombre.
Comme nous l‟avons vu, les applications pourraient être exécutées
dans plusieurs modes de fonctionnement. Par souci de simplification, nous
supposons qu‟il existe un seul mode par point de décision. Le Tableau 3-2
définit les variables que nous allons utiliser pour calculer le nombre de
messages échangés entre les nœuds pour les trois politiques de gestion
proposées.
Firas ALHALABI 47
Thèse en Informatique / 2009
Institut National des Sciences Appliquées de Lyon
Tableau 3-2 : La définition des variables utilisées.
Variable Description
d1
Now
d
d2
c
loc
CPU1 (N1)
d
loc c
CPU2 (N2)
d
c
e b a
Net (N0)
loc a loc
CPUi (Ni)
e loc a
CPUn (Nn)
Firas ALHALABI 48
Thèse en Informatique / 2009
Institut National des Sciences Appliquées de Lyon
indique que deux étapes utilisent la même ressource globale (par exemple,
la ressource globale Net est utilisée par l‟étape (a) sur la Figure 3-10). La
ressource globale est gérée par un gestionnaire global sur le nœud dédié N0 .
Les étapes loc sont locales dans le sens où elles utilisent uniquement des
ressources locales. De ce fait, pour l‟approche décentralisée, le coût des
échange (c‟est-à-dire, le nombre de messages échangés) entre deux nœuds
est très grand en comparaison au coût de traitement local (c‟est -à-dire, pour
les étapes loc). Les applications strictement locales sont planifiées et
contrôlées localement ce qui limite les échanges de messages pour le
contrôle de ce type d‟applications. Enfin, chaque flèche verticale sur la
figure représente une échéance d‟étape.
Afin de compter le nombre de messages échangés, pour simplifier
nous considérons uniquement une admission et un nombre donné d‟étapes.
En s‟appuyant sur le planning de la Figure 3-10, pour chacune des
politiques de gestion, la position du planning (ou une partie de celui-ci)
ainsi que les messages échangés seront décrits dans les sous sections
suivantes.
[Link] Centralisée
Firas ALHALABI 49
Thèse en Informatique / 2009
Institut National des Sciences Appliquées de Lyon
N1:LM1 N0:GM N2:LM2
1: NextStep(mode) // Load
unique mode
Admission
2: NextStep(mode) // Load
in fact
3: EndOfStep()
4: EndOfStep()
5: mode=modeScheduling()
6: NextStep(mode) // Transmission
Gestion d’étapes
7: NextStep(mode) // Reception
8: EndOfStep()
9: EndOfStep()
Firas ALHALABI 50
Thèse en Informatique / 2009
Institut National des Sciences Appliquées de Lyon
pour accomplir l‟admission. Ainsi, nous avons (Node-1+ 1+1+1=Node+2)
messages concernant l‟admission d‟une application.
Afin d‟éviter une collision des ressources globales (ressource
communes), l‟insertion de certaines étapes dans le planning nécessite un
décalage d‟étapes. Par exemple, afin d‟admettre l‟étape (d) dans le planning
(Figure 3-10), il est nécessaire d‟avancer l‟étape (a). La Figure 3-12 illustre
les échanges des messages nécessaires pour le décalage qui concerne
l‟étape (a). Le décalage de l‟étape (a) entraîne la modification (ou
décalage) en cascade de la planification des couples d‟étapes (b) et (e) sur
le nœud du gestionnaire global N 0.
Durant l‟admission, les deux nœuds qui sont concernés par un
décalage d‟étapes échangent des messages : (2*Shift) messages sont
échangés dans le cas où le test d‟admission requiert le déplacement de Shift
étapes.
Chaque nœud envoie un message de validation aux autres nœuds,
nous avons donc au plus (Node-1) messages pour valider. Ainsi, durant la
phase du test d‟admission, il existe au plus (Node+2+ 2*Shift+ Node-1=
2*Shift+2*Node+1) messages.
1: shift(a)
2: shift_ok()
3: shift(a)
4: shift_ok()
5: validate()
6: validate()
Figure 3-12 : Les échanges des messages nécessaires pour décaler l‟étape (a)
qui utilise la ressource globale Net.
Firas ALHALABI 51
Thèse en Informatique / 2009
Institut National des Sciences Appliquées de Lyon
exemple, Transmission1 du nœud N 1 et Reception par N2. Puisque Sync est
le nombre d‟étapes qui utilisent des ressources globales, Pour Sync étapes,
il existe (2*Sync) messages.
Résultat : au final, nous avons donc (2*Sync+2*Shift+2*Node+1)
messages pour cette approche.
1: admit(app,c)
2: admit(app,c)
3: reply(ok)
4: reply(ok)
Firas ALHALABI 52
Thèse en Informatique / 2009
Institut National des Sciences Appliquées de Lyon
exemple, l‟étape (a)) deux nœuds sont concernés (N i et N n). Dans ce cas, 1
message est envoyé à chaque nœud pour décaler l‟étape concernée
(message shift(a) sur la Figure 3-12). Ensuite, chaque nœud répond en
envoyant 1 message (message shift_ok() sur la Figure 3-12).
Pour (Shift) étapes globales (c‟est-à-dire les étapes qui utilisent
des ressources globales) déplacées, il existe (2*Shift) messages échangés au
moment de l‟admission. En plus, nous avons (Node-1) messages maximum
pour valider (Validate()).
Au final, nous avons 4 messages pour le test d‟admission de
l‟étape (c) qui utilise une ressource globale (cas facile sans décalage) et
(2*Shift+Node-1+4) pour le test d‟amission de l‟étape (d) (cas plus
difficile avec décalage).
Gestion d’étapes : concernant la phase de gestion d‟étapes,
puisque pour cette politique, seuls les gestionnaires locaux (LM) qui gèrent
les ressources locales, il n‟existe aucun message échangé pour gérer les
étapes locales. De cette manière, il n‟existe ni un message pour indiquer la
fin de l‟étape (EndOfStep()), ni un message pour exécuter l‟étape suivante
(NextStep()). Cependant, il est important de savoir qu‟avant d‟utiliser une
ressource globale, 1 message est envoyé du gestionnaire local au
gestionnaire global pour savoir si le second nœud est prêt pour la
synchronisation (Figure 3-14). Par exemple, pour synchroniser
1: I_am_ready()
2: are_you_ready()
3: yes ()
4: mode= modeSelelection()
5: NextStep(mode) // Transmission
6: NextStep(mode) // Reception
7: EndofStep()
8: EndofStep()
Firas ALHALABI 53
Thèse en Informatique / 2009
Institut National des Sciences Appliquées de Lyon
Transmission 1 avec Reception 1 sur les nœuds N 1 et N2 , les deux nœuds
doivent être prêts. À cet effet, N 1 envoie 1 message (I_am_ready()) à N0
(qui accueille le GM) pour savoir si la transmission est possible. À son tour
N0 envoie 1 message (Are_you_ready()) à N 2 pour savoir s‟il est prêt.
Après la réponse du nœud N 2 par 1 message (message yes() dans la Figure
3-14), les deux nœuds N1 et N2 sont notifiés par le GM hébergé sur le nœud
N0 , et les étapes Transmission/Reception sont lancées (NextStep(mode)
dans la Figure 3-14).
Nous avons donc 1+1+1=3 messages échangés pour chaque étape
globale utilisée. Rappelons que Sync est le nombre d‟étapes qui utilisent
des ressources globales. Par conséquence, le nombre de messages échangés
pour gérer Sync étapes synchronisées est donc (3*Sync).
Résultat : au final, nous avons (4+3*Sync) messages pour l‟étape
(c) (cas facile sans décalage). Cependant, le nombre total de messages
échangés est (2*Shift+3*Sync+Node-1+4) pour le cas complexe de
l‟admission (c‟est-à-dire, admission de l‟étape (d) qui utilise la ressource
globale Net).
Le Tableau 3-3 résume les nombres de messages échangés que
nous avons obtenus pour chacune de nos politiques de gestion.
Décentralisée partielle
4
(cas simple)
3*Sync
Décentralisé partielle
2*Shift + Node -1 +4
(cas complexe)
Firas ALHALABI 54
Thèse en Informatique / 2009
Institut National des Sciences Appliquées de Lyon
3.3.5 Résultats graphiques
60
50
Exchanged messages
40
30
20
10
0
1 2 3 4 5 6 7 8 9
Sync
Firas ALHALABI 55
Thèse en Informatique / 2009
Institut National des Sciences Appliquées de Lyon
Centralized Partial decentralized Fully decentralized
Exchanged messages 60
50
40
30
20
10
0
1 2 3 4 5 6 7 8 9
Shift
Figure 3-16 : Le nombre de messages échangés Msg = f(Shift) pour Node 10.
3.4 Conclusion
Firas ALHALABI 56
Thèse en Informatique / 2009
Institut National des Sciences Appliquées de Lyon
de modèle du système de gestion. Le rôle de ce système est de
communiquer avec les applications en utilisant un protocole commun afin
d‟assurer leur adaptation au contexte d‟exécution. Dans un souci de
garantir la réutilisabilité du système de gestion résultant, nous nous basons
sur les principes de développement à base de composants permettan t
d‟intégrer notre méthodologie de développement d‟une famille de systèmes
voisins.
Firas ALHALABI 57
Thèse en Informatique / 2009
Institut National des Sciences Appliquées de Lyon
Chapitre 4 Approche à base de
Composants et Méthodologie de
Développement
4.1 Introduction
Firas ALHALABI 58
Thèse en Informatique / 2009
Institut National des Sciences Appliquées de Lyon
4.3 Différentes catégories
4.4.1 Définition
A B
:B :C :B1 :B2
Firas ALHALABI 59
Thèse en Informatique / 2009
Institut National des Sciences Appliquées de Lyon
points d‟interactions appelés ports (Figure 4-2).
[HM06] clarifie la définition du composant UML 2.0 : il le définit
comme un paquetage logique composé d‟éléments. Chacun de ces éléments
(i) peut être développé et livré indépendamment, (ii) possède explicitement
une ou plusieurs interfaces bien définies pour les services qu‟il fournit à
son environnement, (ii) possède explicitement une ou plusieurs interfaces
bien définies pour des services qu'il attend d'autres composants ou de son
environnement, (iv) peut se composer d'autres sous éléments (v) peut
posséder des propriétés internes (des attributs et/ou des méthodes). Cette
définition semble la plus complète, elle admet la possibilité de modéliser
un composant en utilisant des niveaux d‟abstraction autres que le niveau
d‟implémentation. Dans notre étude, nous allons adopter la définition de
[HM06] en ajoutant le fait que les interfaces de composants peuvent être
potentiellement exposées par l‟intermédiaire de ports.
À partir de la deuxième version UML 2.0, deux vues pour les composants
ont été définies : une vue de type boîte noire (vue externe) et une vue de
type boîte blanche (vue interne).
La vue de type boîte noire : cette vue considère qu'un composant
est une entité d‟encapsulation caractérisée uniquement par ses interfaces
requises et/ou fournies. Cette vue montre donc les propriétés publiques
d‟un composant. D‟autres diagrammes UML (par exemple, diagramme de
séquence, d‟activités) peuvent être utilisés pour détailler le comportement
du composant. En plus, une machine à états peut décrire le mode
Port
A Delegation
c2:C
Figure 4-2 : Les vues externe (a) et interne (b) du composant dans UML 2.0.
Firas ALHALABI 60
Thèse en Informatique / 2009
Institut National des Sciences Appliquées de Lyon
d‟utilisation du port et/ou de l‟interface ou le comportement du composant
lui-même.
La vue de type boîte blanche : cette vue définit la structure
interne du composant. Le composant est constitué de sous composants
appelés parties (parts) et peut contenir des connecteurs internes pour
connecter ces sous composants. Cette vue montre donc les propriétés
privées d‟un composant car la partie interne d‟un composant est cachée et
n‟est accessible qu‟au travers de ses interfaces (Figure 4-2).
Cette vue interne montre les relations entre les différents éléments
et les connecteurs qui les relient. Le lien entre les deux vues est réalisé par
délégation des traitements à des connecteurs sur les ports qui sont
connectés à des parties internes. La Figure 4-2 donne une représentation
schématique d‟un composant avec ses deux vues interne et externe.
Firas ALHALABI 61
Thèse en Informatique / 2009
Institut National des Sciences Appliquées de Lyon
4.4.4 Présentation des éléments du modèle de composant en UML 2.0
Dans cette section, nous allons présenter les éléments qui nous servent pour
combler les faiblesses d‟UML pour le développement à base de
composants.
[Link] Interface
[Link] Port
[Link] Connecteur
Les interactions entre les composants sont décrites par des connecteurs. Un
connecteur est une entité qui relie deux ports et/ou deux interfaces de
composant.
UML 2.0 définit deux types de connecteurs (voir Figure 4-4) : Les
connecteurs de délégation (delegation connector) et les connecteurs
d‟assemblage (assembly connector). La distinction entre ces deux types
relève de la nature des interfaces mises en connexion :
Firas ALHALABI 62
Thèse en Informatique / 2009
Institut National des Sciences Appliquées de Lyon
Delegation connector : le connecteur de délégation joint
l‟interface externe publique d‟un port à une partie interne (part) réalisant
cette interface. C‟est le cas d‟un composant qui offre un service réalisé par
un de ses sous composants et dont l‟interface est compatible avec
l‟interface du composant englobant.
Assembly connector : lorsque les interfaces interconnectées sont
de natures différentes (requises/fournies), on parle cette fois -ci du
connecteur d‟assemblage.
Composant primitif
Firas ALHALABI 63
Thèse en Informatique / 2009
Institut National des Sciences Appliquées de Lyon
de ports ou d‟interfaces (requises et fournies) vers d‟autres composants du
système. Nous considérons qu‟un composant primitif est implémenté par
une (ou plusieurs) classes et des relations entre ces classes ( Figure 4-3). La
description du comportement de tels composants est fondée sur des
machines à états ou des diagrammes de séquences.
b:B c:C
d:D e:E
Composant composite
A Delegation
connector
Provided
c2:C Required
interface
interface
d:D e:E
Firas ALHALABI 64
Thèse en Informatique / 2009
Institut National des Sciences Appliquées de Lyon
indique le nombre de rôles dans la partie.
Si un des sous composants d'un composant A est, à son tour,
composé d'autre sous composants (par exemple, le composant B dans la
Figure 4-4), nous représentons le composant A en considérant deux étapes :
Dans la première étape, nous retrouvons le composant A avec ses sous
composants (B et C) qui jouent des rôles différents (b: B et c 1, c 2: C). Dans
la deuxième étape, nous modélisons chacun de ces sous composants (si
composite) avec ses propres sous composants (D et E) et ainsi de suite.
Dans un composant composite, les sous composants sont des propriétés (de
type property dans le méta-modèle UML). En principe, la création d‟un
composant composite implique la création des instances des propriétés,
mais la création d‟une instance de composant n‟a pas de sémantique
précise.
En effet, la définition de ce que nous appelons une instance de
composant a été beaucoup changée dans la littérature. Par exemple les
auteurs de [ACC03], dans son livrable 1.4, ont proposé de représenter une
instance de composant de la même façon qu‟une instance de classe. Cette
solution s‟applique plus difficilement sur les composants que sur les classes
car il existe des différences entre les deux concepts. Par exemple, la
création d‟un composant n‟a pas le même sens que la création d‟une classe.
Pour remédier à ce problème, nous supposons que les instances ne sont
crées que pour des propriétés de type Class.
[Link] Connexion
Firas ALHALABI 65
Thèse en Informatique / 2009
Institut National des Sciences Appliquées de Lyon
Chaque concepteur définit le lien d‟héritage entre les composants
qui répond à ses propres besoins. Par exemple [Sto05] définit deux types
d‟héritage de composant : (i) l‟héritage de l‟implémentation est défini de la
manière suivante : un composant hérite le code logiciel de son composant
de base. Le composant héritant doit avoir au moins les mêmes
fonctionnalités que son ancêtre ; (ii) l‟héritage de la spécification est défini
par le fait qu‟un composant hérite seulement les signatures (déclarations)
des interfaces et développe (implémente) ses propres fonctionnalités. Ce
type d'héritage est lié à la vue boîte noire du composant. Les interfaces
seront héritées avec une possibilité de raffinement de la multiplicité des
ports. Autrement dit, lors de la spécialisation d‟un composant, ses ports
peuvent subir des redéfinitions en changeant leur cardinalité ou en
remplaçant une interface par l‟une de ses spécialisations (interfac es héritant
de celle-ci) [ICG04]. La définition de [Sto05] ne peut pas être adoptée dans
notre travail car il considère que le composant est uniquement déployable
au niveau implémentation comme dans UML1.x et pas au niveau
conceptuel.
Dans [Boc04], Conrad Bock a proposé de traduire l‟héritage de
composant par l‟héritage de chacune de ses parties internes ( Figure 4-5).
Cependant, dans sa définition il propose qu‟un composant puisse posséder
uniquement un ensemble fini de classes et pas de sous composants. Dans ce
cas, un des inconvénients majeurs est la perte des niveaux d‟abstraction de
la forme composant composite/sous-composants. En plus, il est évident que
b:B c:C
d:D
IBD
AA AAA
d:DD d:DDD
IBD IBD
Firas ALHALABI 66
Thèse en Informatique / 2009
Institut National des Sciences Appliquées de Lyon
la définition de [Boc04] restreint la définition de l‟héritage car selon la
Figure 4-5, cet héritage est uniquement au niveau des instances et pas au
niveau des classifiers (par exemple, classe ou composant) [Doc05].
Une solution a été proposée par [MP06]. Cette solution consiste à
définir l‟héritage de composant par la conservation des interfaces fournies
et requises et aussi la structure interne entre les deux composants en même
temps : le composant hérité acquiert non seulement les interfaces fournies
et requises de son ancêtre mais aussi sa structure interne. Cette définition
est uniquement acceptable si toutes les interfaces ainsi que la structure
interne du composant sont connues, mais le problème se pose dans le cas où
le composant fourni sans exposer sa structure interne (vue boîte noire).
Pour clarifier la définition de l‟héritage de composants et en
essayant de prendre en compte les limites des définitions précédentes, nous
allons définir deux nouveaux types d‟héritage de composants.
Firas ALHALABI 67
Thèse en Informatique / 2009
Institut National des Sciences Appliquées de Lyon
C_Base
X Y p
C_Specialized
/X /Y Z /p
C_Base
X Y p
«BlackBox_Inheritance»
C_Specialized
Z /p
Firas ALHALABI 68
Thèse en Informatique / 2009
Institut National des Sciences Appliquées de Lyon
parties. Par exemple, le composant Z est ajouté au composant
C_Specialized dans la Figure 4-7. La contrainte associée au stéréotype
«BlackBox_Inheritance» est exprimée en OCL et restreint les membres
hérités de l‟élément Composant (Component) de la façon suivante :
Le deuxième type d‟héritage que nous avons défini est l‟héritage des
ports. Nous avons défini un stéréotype «PortToPort_Inheritance». Ce
stéréotype étend la méta-classe Generalization en précisant les
contraintes entre les interfaces des ports. La Figure 4-8 illustre le
stéréotype «PortToPort_Inheritance» en utilisant nos deux composants
C_Base et C_Specialized. La redéfinition du port p par p_Spec implique
des règles similaires à celles de pré/post-conditions. En considérant une
interface comme un contrat, nous spécifions deux contraintes pour ce
type d‟héritage :
Le port p_Spec ne peut pas requérir plus de services que p.
L‟interface requise du port p_Spec est donc incluse dans
l‟interface requise du port p, par exemple, I_Base_Required hérite
de I_Specialized_ Required;
Le port p_Spec doit fournir au moins les services du port p.
L‟interface fournie du port p est donc incluse dans l‟interface
fournie du port p_Spec, par exemple, I_Specialized_Provided
hérite de I_Base_Provided.
La contrainte OCL associée à ces deux conditions s‟exprime sous
p
Port q is inherited I_Base_Provided
C_Base
implicitly q
I_Base_Required
«PortToPort_Inheritance»
{redefines p}
p_Spec
C_Specialized I_Specialized_Provided
I_Specialized_Required
Firas ALHALABI 69
Thèse en Informatique / 2009
Institut National des Sciences Appliquées de Lyon
la forme suivante (à l‟aide de l‟outil Borland Together [Bor09]) :
Le composant peut être vu comme un type qui est défini par l‟ensemble de
ses interfaces. Pourtant, la substitution d‟un composant A par un composant
B sur la base de la conformité des interfaces n‟est pas toujours bien
spécifiée. Comme nous le verrons plus loin, ceci suppose généralement
d‟étudier des informations complétant la déclaration des interfaces, comme
les machines à état associées.
La substitution de composants est importante car nous en avons
besoin notamment pour remplacer un composant par un de ses descendants.
Pour cette raison, nous allons étudier et clarifier les modes de substitution
de composants en distinguant la substitution absolue, la substitution
contextuelle et la substitution dynamique.
Firas ALHALABI 70
Thèse en Informatique / 2009
Institut National des Sciences Appliquées de Lyon
De son point de vue, l‟OMG a défini la substitution en UML de la
manière suivante "A substitution is a relationship between two classifiers
which signifies that the substituting Classifier complies with the contract
specified by the contract classifier. This implies that instances of the
substituting Classifier are runtime substitutable where instances of the
contract classifier are expected" [OMG07].
En conséquence, afin de remplacer un composant par un autre, il
faut que ses interfaces externes soient compatibles. Cependant, peu
d‟informations concernant cette compatibilité se trouve dans la
spécification, ce qui représente encore un manque important. Pour cette
raison, nous avons proposé une idée pour la substitution de composants.
Cette idée est synthétisée de la manière suivante :
Supposons deux composants A et B (Figure 4-9). Le composant A
possède une interface fournie (notée IF A) et une interface requise (notée
IRA). Le composant B, quant à lui, possède une interface fournie (notée
IF B) et une interface requise (notée IR B). On dit que le composant A peut se
substituer au composant B si l‟interface IF B hérite de (ou est égale à) IF A et
si IR A hérite de (ou est égale à) IR B. Nous avons appelé ce type de
substitution "Substitution Absolue" car il existe une relation explicite (ici
l‟héritage) entre les deux interfaces de ces composants.
IFA
«Interface» «Interface»
IRB IFA A
IRA
IRB
Dans le cadre de cette thèse, nous avons introduit une autre définition pour
la substitution de composants. Nous avons constaté que la substitution peut
être possible uniquement dans un contexte donné et pas pour des critères
indépendants du contexte comme dans le cas de la substitution absolue.
Nous avons appelé ce type de substitution "Substitution Contextuelle".
Firas ALHALABI 71
Thèse en Informatique / 2009
Institut National des Sciences Appliquées de Lyon
Dans la substitution contextuelle, une interface fournie (requise)
d‟un composant est mise en relation avec une interface requise (fournie)
seulement dans un contexte donné, par exemple dans la Figure 4-10, un
composant A avec une interface requise I A ayant deux services S 1 et S 2. Le
composant A est assemblé au composant C qui possède une interface
fournie IC ayant des services S 1, S2 , S 3, S4 (IC hérite de l‟interface I A).
Supposons maintenant un composant B ayant une interface requise I B
vérifiant la condition suivante (I A IB IC). Dans ce contexte-là, le
composant B est substituable à A, mais dans d‟autres context es cette
substituabilité n‟est probablement pas possible. Ce type de substitution est
envisageable sans prouver la possibilité de substitution car nous ne
IA I C
A C
IA={S1, S2}
IC={S1, S2, S3, S4}
IB
B
IB={S3, S4}
(IA IB IC)
JA JC
A C
Firas ALHALABI 72
Thèse en Informatique / 2009
Institut National des Sciences Appliquées de Lyon
[Link] Substitution dynamique
S [Pre
- S'
Condition] methode/[Post-Condition]
On
Protocole P1 State A1 State A2
Off
On On
Protocole P2 State B1 State B2 State B3
Off
Firas ALHALABI 73
Thèse en Informatique / 2009
Institut National des Sciences Appliquées de Lyon
même comportement [Sou99]). Nous acceptons que B soit substituable à A
si P 1=P2 (Figure 4-12). Une étude détaillée sur ce point est nécessaire, mais
elle sort du cadre de ce travail.
Firas ALHALABI 74
Thèse en Informatique / 2009
Institut National des Sciences Appliquées de Lyon
le développement pour une réutilisation (development for reuse) ; (ii) Les
développeurs qui dérivent le modèle générique pour obtenir chacun son
propre modèle spécifique. C‟est le développement avec une réutilisation
(development with reuse). Nous pouvons aussi ajouter le rôle de l‟expert en
UML qui peut aider l‟architecte du domaine ainsi que les développeurs des
systèmes spécifiques à définir les profils. Notre processus de
développement est détaillé au sein des sous-sections suivantes.
(d)
Expert
UML
Common
Profile
describe (a)
Family of systems Generic
Architect
(b)
(2) design
(6) Derivation
Generic Model
Profile
(c)
automatic
Specific
Scope of profile
TModel Profile
feedback
Developer
manuala (3)
utomatic
Specific
Model
(4) refinement
PSM
(5)
Code
Firas ALHALABI 75
Thèse en Informatique / 2009
Institut National des Sciences Appliquées de Lyon
Generic Profile
Figure 4-14 : La définition des notions du domaine de SOA par des stéréotypes.
Firas ALHALABI 76
Thèse en Informatique / 2009
Institut National des Sciences Appliquées de Lyon
connecteurs, ports, interfaces et contraintes. La Figure 4-15 schématise le
modèle générique d‟une architecture dans le domaine de SOA. D‟après
cette figure, nous constatons que le modèle générique de SOA possède trois
composants principaux : le composant G_ServiceProvider qui rend des
services au composant G_ServiceRequester via le connecteur req. Le
composant G_ServiceRegister est un composant composite qui contient la
description des services, c‟est-à-dire les sous composants G_WebService et
G_LocationService. Le composant G_ServiceRequester possède également
une référence publish au G_ServiceProvider et une autre au
G_ServiceRequester, appelée find.
«ServiceRegister»
G_ServiceRegister
«WebService» «LocationService»
:G_WebService :G_LocationService
find publish
«ServiceRequester» «ServiceProvider»
req
:G_ ServiceRequester :G_ ServiceProvider
«WebService»
G_WebService
«PortToPort_Inheritance»
«WebServiceA» «WebServiceB»
G_WebServiceA G_WebServiceB
Firas ALHALABI 77
Thèse en Informatique / 2009
Institut National des Sciences Appliquées de Lyon
4.5.3 Préparation de la dérivation : profil commun
Firas ALHALABI 78
Thèse en Informatique / 2009
Institut National des Sciences Appliquées de Lyon
Dans cette étape, les développeurs partent du modèle générique,
marquent les éléments avec les stéréotypes du profil commun, définissent et
exécutent ensuite le Model Mapping en interprétant ces marqueurs à l‟aide
d‟un langage de transformation de modèle comme QVT [OMG05] pour
obtenir à la fin un modèle temporaire nommé TModel. La Figure 4-16
«ComponentC»
G_C
assocBC
assocAC
«remove»
«ComponentA»
assocAB «ComponentB»
:G_ A :G_ B
«PortToPort_Inheritance»
«ComponentD» «remove»
«ComponentE»
G_D
G_E
«ComponentC»
G_C TModel
assocAC
«ComponentA»
assocAB «ComponentB»
:G_ A :G_ B
«ComponentD»
G_D
Firas ALHALABI 79
Thèse en Informatique / 2009
Institut National des Sciences Appliquées de Lyon
illustre un exemple simple d‟application du stéréotype «remove» sur des
éléments d‟un modèle pour obtenir le TModel. Dans cette figure, le
stéréotype «remove» est appliqué sur le connecteur AssocBC, mais dans ce
cas les ports des composants reliés par ce connecteur doivent aussi être
supprimés avec une règle générale : "lorsqu‟on supprime un élément du
modèle, il faut également supprimer tout ce qui y fait référence, par
exemple les connecteurs, les ports, les interfaces".
Puisque le profil commun contient des éléments qui sont
indépendants de la description du domaine, les deux stéréotypes que nous
avons introduits en vue d‟améliorer le développement à base de composants
sont inclus dans ce profil (c‟est-à-dire, «BlackBox_Inheritance» et
«PortToPort_Inheritance»).
Firas ALHALABI 80
Thèse en Informatique / 2009
Institut National des Sciences Appliquées de Lyon
En s‟appuyant sur le domaine de SOA, la Figure 4-17 illustre un
exemple sur l‟héritage de composants qui indique que durant la dérivation
les développeurs des systèmes spécifiques peuvent garder/supprimer le
composant G_WebServiceA ou G_WebServiceB mais pas les deux à la fois.
Un exemple d‟application de ces stéréotypes sur la composition est donné
par le composant G_ServiceRegister qui contient deux variantes relatives
aux composants G_WebService et G_LocationService. Sur le modèle, les
«Variation»
«ServiceRegister»
G_ServiceRegister
«Variant» «Variant»
«WebService» «LocationService»
:G_WebService :G_LocationService
find
«optional» publish
«ServiceRequester» «ServiceProvider»
req
:G_ ServiceRequester :G_ ServiceProvider
«Variation»
«WebService»
G_WebService
«PortToPort_Inheritance»
«Variant» «Variant»
«WebServiceA» «WebServiceB»
G_WebServiceA G_WebServiceB
Firas ALHALABI 81
Thèse en Informatique / 2009
Institut National des Sciences Appliquées de Lyon
4.5.5 Transformation de modèles
[Link] Principe
Firas ALHALABI 82
Thèse en Informatique / 2009
Institut National des Sciences Appliquées de Lyon
4.5.6 Dérivation de modèles spécifiques
Firas ALHALABI 83
Thèse en Informatique / 2009
Institut National des Sciences Appliquées de Lyon
Cela peut introduire des incohérences qui proviennent en
particulier de la suppression de composants pendant la dérivation. Les
développeurs doivent donc vérifier la cohérence entre les modèles. Un des
moyens pour conserver la cohérence de modèles pendant la dérivation
pourrait être d‟utiliser un langage de transformation de modèles. Mais,
formaliser les actions de dérivations qui sont très spécifiques au domaine
serait une charge trop lourde par rapport aux bénéfices obtenus.
En résumé, pour dériver des modèles spécifiques, dans un premier
temps, l‟architecte fournit les contraintes de dérivation à l‟aide d‟un expert
UML. Ensuite, les développeurs dérivent leurs propres modèles à partir du
modèle du cadre générique. Ils appliquent les actions de transformation,
testent automatiquement les contraintes OCL, et vérifient manuellement les
contraintes sémantiques exprimées en langage naturel. Dans tous les cas,
nous supposons que les développeurs utilisent un environnement de
développement intégré de traitement des profils et des contraintes, et
fournissant un moyen facile pour décrire et tester les contraintes.
La Figure 4-18 schématise un modèle spécifique dérivé du modèle
générique présenté dans la Figure 4-17. Le développeur part du modèle
générique et obtient le modèle spécifique en trois étapes : (i) Il garde les
composants marqués par «ServiceRequester» et «ServiceProvider» ; (ii) Il
garde le composant «ServiceRegister» avec son sous composant
«WebService» ; (iii) Il prend la décision de substituer (comme décrit dans
la Section 4.4.7) le composant «WebService» par un de ses descendants
«WebService» de type B, c‟est-à-dire, S_WebServiceB.
«ServiceRegister»
S_ServiceRegister
«WebServiceB»
:S_WebServiceB
find publish
«ServiceRequester» «ServiceProvider»
req
:S_ ServiceRequester :S_ ServiceProvider
Firas ALHALABI 84
Thèse en Informatique / 2009
Institut National des Sciences Appliquées de Lyon
4.5.7 Spécialisation : profil spécifique
«ServiceRequester»
G_ServiceRequester
«PortToPort_Inheritance»
«SpecificServiceRequester»
S_ServiceRequester
Firas ALHALABI 85
Thèse en Informatique / 2009
Institut National des Sciences Appliquées de Lyon
«ServiceRequester» «ServiceProvider»
req
:S_ ServiceRequester :S_ ServiceProvider
«EJBSessionBean» «EJBSessionBean»
«SRequester» «SProvider»
«EJBRealizeRemote»
«EJBRealizeRemote»
* *
«EJBImplementation» «EJBImplementation»
SRequesterImplementation SProviderImplementation
«EJBRealizeHome»
«EJBRealizeHome»
«EJBSessionRemoteInterface» «EJBSessionRemoteInterface»
Request Provide
e
«EJBCreateMethod» request() «EJBCreateMethod» Send()
instantiate instantiate
«EJBSessionHomeInterface» «EJBSessionHomeInterface»
HomeRequest HomeProvid
«EJBCreateMethod» Create() e
«EJBCreateMethod» Create()
Firas ALHALABI 86
Thèse en Informatique / 2009
Institut National des Sciences Appliquées de Lyon
4.5.9 Génération de code et retour d’expérience
4.6.1 Description
Firas ALHALABI 87
Thèse en Informatique / 2009
Institut National des Sciences Appliquées de Lyon
m1() belongs to the
interface IA SD Generic Scenario
A
a :A b :B c :C d :D
b :B
IA IA m1()
IBC m2()
«Interface»
IBC
c :C m3()
m2()
m8()
m4()
m5()
d :D
SD Specific Scenario
A
b :B a :A b :B d :D
IA IA
m1() C is
removed
C is removed
m4()
d :D
Firas ALHALABI 88
Thèse en Informatique / 2009
Institut National des Sciences Appliquées de Lyon
développeur n‟a plus besoin d‟un composant. Afin de conserver la
cohérence des diagrammes de séquence, deux cas peuvent être considérés :
1. Si le modèle spécifique (comme dans la Figure 4-22) n‟a pas besoin du
composant C qui est englobé dans le composant A, alors les messages
m2(), m3() et m5() qui passent par C doivent être supprimés du
diagramme de séquence (Figure 4-23).
2. Si le composant qui déclenche le message initial (le message m1() dans
la Figure 4-23) n‟est plus requis dans le modèle spécifique, le
diagramme en entier doit être effacé.
4.7 Conclusion
Firas ALHALABI 89
Thèse en Informatique / 2009
Institut National des Sciences Appliquées de Lyon
Chapitre 5 Architectures Existantes et
Cadre Générique pour la Gestion de
la QoS
5.1 Introduction
Firas ALHALABI 90
Thèse en Informatique / 2009
Institut National des Sciences Appliquées de Lyon
la QoS. Nous dérivons ensuite un système de gestion de la QoS spécifique
développé par notre équipe.
Firas ALHALABI 91
Thèse en Informatique / 2009
Institut National des Sciences Appliquées de Lyon
identification. Ceci nous permet de faire une comparaison entre les travaux
existant pour trouver les éléments communs de notre modèle générique.
Il faut remarquer qu‟il existe de nombreuses autres architectures
de gestion (comme celles présentées dans [Cam96], [ZES97], [SLC99],
[KR00], [SC00], [XXH00], etc.). Nous avons étudié ces architectures, mais
dans l‟ensemble elles sont couvertes par les architectures qui seront
décrites par la suite.
Dans le cadre du projet ISO [Int95] [Int96], des recherches ont été menées
sur les différentes manières d‟aborder la QoS. Une résultante de leurs
travaux est la nécessité d‟introduire une architecture de QoS. Cette
déduction provient de l‟étude des besoins des différentes applications, par
exemple les applications multimédia. Celles-ci doivent permettre aux
utilisateurs d‟exprimer certains besoins de QoS (Specification). Le système
doit être en mesure de les analyser et de les traduire afin de respecter les
contraintes exprimées par les applications (Mapping). Les applications
faisant intervenir des flux continus induisent des besoins importants de
QoS. Ces applications ont des contraintes de temps de bout en bout
relativement fortes. Ces travaux ont défini certaines fonctions nécessaires
pour la gestion de la QoS et ils ont concerné plutôt le niveau réseau.
En s‟appuyant sur le cadre ISO et sur des travaux existants, nous
avons déduit les composants indispensables à inclure dans un cadre
générique pour une famille de systèmes de gestion de la QoS. Nous allons
détailler les principales architectures que nous avons étudiées.
Firas ALHALABI 92
Thèse en Informatique / 2009
Institut National des Sciences Appliquées de Lyon
L‟architecture QoS-A est composée d‟un ensemble de plans
verticaux et de couches horizontales.
La couche supérieure est constituée des plates-formes des
applications distribuées augmentées de services pour permettre les
communications multimédias et la spécification de la QoS dans les
environnements orientés objet. Une couche d‟orchestration sous -jacente
(joue le rôle du gestionnaire) permet de traiter la synchronisation [CCG92].
La couche inférieure (la couche transport) fournit un ensemble de
mécanismes et de services configurables de QoS. Les dernières couches
forment la base pour le support de la QoS au niveau du réseau. Trois plans
sont définis :
Le plan protocolaire distinguant des protocoles différents au niveau de
chaque couche ;
Le plan de maintenance (adaptation) de la QoS contenant un ensemble
de gestionnaires de QoS spécifiques à chaque couche et responsables
de la surveillance et de la maintenance (par adaptation) de leurs entités
protocolaires correspondantes ;
Le plan de gestion des flux qui a pour rôle l‟établissement du flux
(contrôle d’admission, réservation de ressources, routage en fonction
de la QoS), la traduction des paramètres de QoS et l’adaptation.
Les couches reflètent la division hiérarchisée des services comme
dans le modèle de référence ISO [Int95]. Les plans verticaux montrent la
partition des fonctions de gestion dans les couches.
Cette architecture est mise en œuvre sur un environnement
distribué à base de micronoyau et utilise un réseau local ATM [CCR95]. e
micronoyau a été étendu par des abstractions spécifiques pour les flux de
médias continus.
Firas ALHALABI 93
Thèse en Informatique / 2009
Institut National des Sciences Appliquées de Lyon
les systèmes d‟exploitation sont capables de fournir les niveaux de QoS
exigés. Dans cet objectif, elle se concentre essentiellement sur la gestion et
la réservation de ressources de bout en bout en intégrant des techniques
spécifiques aux protocoles d‟établissement des sessions multimédia. Ces
travaux sont similaires à ceux de [HV99] dont le noyau du système est un
broker (gestionnaire) qui se charge de traduire la QoS depuis l‟interface de
l‟utilisateur et de partager les ressources disponibles aux différentes
applications distribuées.
OMEGA joue le rôle d‟un pont interconnectant l‟application et les
protocoles de transport. Le fonctionnement d‟OMEGA est spécifié par deux
modèles : le modèle de communications et le modèle de ressources. Ces
modèles correspondent respectivement à deux tâches principales : la
gestion des communications et la gestion des ressources. Chaque modèle
comprend des informations des couches application et transport. Dans le
modèle de communications, le gestionnaire de QoS appelé QoS broker a la
responsabilité d‟effectuer un contrôle d’admission et de négocier les
exigences de l‟application avec l‟offre du système pour établir une
connexion de bout en bout. D‟une façon similaire, le modèle de ressources
contient toutes les informations de QoS des équipements matériels et
logiciels de bout en bout (QoS Specification) pour réaliser la gestion de la
QoS afin de garantir les ressources de bout en bout. Ces ressources se
divisent en trois groupes : application (par exemple, flot du média,
équipements d‟acquisition), système (par exemple, système d’exploitation
nommé OS) et réseau (par exemple équipements du réseau, trafic).
La communication est établie après une phase d‟initialisation où
l‟application spécifie ses besoins à l‟aide des paramètres de QoS. Le niveau
de la QoS est ensuite négocié et les garanties sont fournies à plusieurs
niveaux entre l‟application, le système de communication et le système
d‟exploitation. Dans [LKN01], une amélioration a vu l‟ajout d‟un service
de renégociation qui permet aux applications de modifier leur niveau de
QoS.
L‟idée d‟OMEGA a été développée avec certaines architectures
comme 2K Q [NWX00] et Agilos [Li00] en respectant la vision initiale des
couches et des modèles. Ces deux travaux, qui sont en fait des recherches
approfondies et étendues d‟OMEGA, se focalisent sur l‟amélioration des
mécanismes de spécification et d’adaptation en appliquant l‟approche
middleware et orientée objet. Néanmoins, la compatibilité entre ces
modèles au niveau implémentation reste encore indéterminée.
L‟architecture Agilos se concentre sur l’adaptation et la prédiction de la
sélection des ressources en utilisant des mécanismes intelligents, tandis que
Firas ALHALABI 94
Thèse en Informatique / 2009
Institut National des Sciences Appliquées de Lyon
2K Q porte sur la traduction des paramètres de QoS en appliquant
l‟approche orientée objet [NWX00].
Firas ALHALABI 95
Thèse en Informatique / 2009
Institut National des Sciences Appliquées de Lyon
Schématiquement, l‟architecture RTARM est une hiérarchie de
gestionnaires en distinguant deux groupes de SM : le gestionnaire de
services au bas niveau (Low-Level Service Manager, LSM) et le
gestionnaire de services de haut niveau (High-Level Service Manager,
HSM). Un LSM se charge de planifier les ressources locales. Les HSM
communiquent afin de contrôler l‟exécution de toutes les applications du
système. Tandis que chaque HSM est un nœud de la hiérarchie, les LSM
sont les feuilles (c‟est-à-dire chaque HSM supervise un ou plusieurs LSMs).
En général, chaque SM, à son tour, peut contenir un ensemble de sous-
composants qui sont responsables de tâches différentes, mais chaque
composant n‟a pas besoin de tous les autres sous-composants pour pouvoir
fournir des services. Par exemple, pour réaliser la négociation un LSM n‟a
pas besoin d‟un composant de traduction (Mapping) car les paramètres de
QoS à ce niveau sont des valeurs quantitatives. Cependant, le composant de
la traduction de la QoS dans HSM est indispensable pour traduire les
besoins en QoS du niveau application au niveau ressource.
Le modèle de RTARM est présenté sur la Figure 5-1. Dans cette
figure, les sous composants ainsi que les composants connectés sont
présentés comme des sortes d‟instances sans nom de rôle (par exemple,
":Application"). Cependant, pour l‟héritage, ce sont les composants eux-
mêmes qui sont utilisés.
L‟architecture RTARM prend en compte deux types
d’adaptation de la manière suivante (prend de décision) :
Une renégociation des contrats de QoS pour définir les services alloués
à chacune des applications. La renégociation des contrats n‟a lieu qu‟à
des points précis que sont l’admission d‟une nouvelle application et le
départ d‟une application. Cette renégociation s‟appuie sur une
hiérarchie de gestionnaires de service et un protocole de validation de
transaction à deux phases, appliqué récursivement à chacun des
services de la hiérarchie. Tandis que la première phase teste la
disponibilité des services et se charge de la réservation de ressources,
la seconde valide ou annule les réservations de la transaction.
Une boucle de contrôle fermée (QoS Monitoriong) pour maintenir la
QoS fournie au niveau de la QoS désirée. La boucle de contrôle fermée
permet de corriger périodiquement le comportement de l‟application
(adaptation du comportement). À chaque point de décision (à chaque
période dans ce cas), l‟application précise son point de fonctionnement
courant (les valeurs associées à chacune des dimensions de QoS) et le
gestionnaire de service contacté renvoie les changements pour
maintenir la QoS de l‟application dans la région désirée (par exemple,
en modifiant la fréquence d‟échantillonnage).
Firas ALHALABI 96
Thèse en Informatique / 2009
Institut National des Sciences Appliquées de Lyon
* supervise
:Application :LSM :HSM
*
* 0..1
1
1
:OS
HSM
LSM
:Admission :Monitoring
Decision Admission
:Adaptation
:RippleScheduling :Negotiation
Firas ALHALABI 97
Thèse en Informatique / 2009
Institut National des Sciences Appliquées de Lyon
5.3.6 Architecture QuO
Firas ALHALABI 98
Thèse en Informatique / 2009
Institut National des Sciences Appliquées de Lyon
Specification), et collectivement, ils s'accordent pour rendre le meilleur
service possible en fonction du contexte d‟exécution (adaptation). Le
contrôle s'effectue à partir d‟une description en UML des éléments de QoS,
des objets et de leurs adaptations. La description s'effectue via un outil
(Rational Rose) à partir duquel le code relatif à la QoS est engendré
automatiquement en s'appuyant sur un noyau à base de méta-objets. Dans
ARTO, un contrat entre le client (l‟application qui demande le service) et le
serveur (qui est le fournisseur de service) peut être établi et négocié (QoS
Negotiation). Ce projet est orienté vers le temps-réel mou et fournit une
"dégradation gracieuse" des applications (Adaptation).
Firas ALHALABI 99
Thèse en Informatique / 2009
Institut National des Sciences Appliquées de Lyon
[Link] Architecture DCBL
* *
1
1
:OS
Manager
:Perception :Monitor
Manager
Monitor
:Adaptation :Policy
Policy
:ExpertSystem :ReinforcementLearning
Caractéristiques Composants
[Link] Stéréotypes
«LocalApplication»
Numéro de la partie locale de
PartNum : int
l‟application (instance).
«DecisionMaking» «DecisionMaking»
G_DecisionMaking
G_DecisionMaking
«Optional» «Policy»
«Negotiation» «Adaptation» «PortToPort_Inheritance»
«Policy»
G_Policy
«PortToPort_Inheritance»
«MixedPolicy»
G_MixedPolicy «Optional» «Optional»
«Optional» «Optional» «SimplePolicy» «MixedPolicy»
«Learning» «ExpertSystem» G_SimplePolicy G_MixedPolicy
:G_Learning :G_ExpertSystem
«PortToPort_Inheritance»
Figure 5-3 : Une architecture générique à base de composants pour une famille de systèmes
de gestion de la QoS.
Au sein de notre cadre générique, les stéréotypes sont utiles pour identifier
les composants pendant et après la dérivation. Dans la suite de ce mémoire,
le symbole «X» fait référence soit à un composant marqué par le stéréotype
«X», soit à un composant qui hérite d‟un autre composant qui est lui -même
marqué par ce stéréotype. Les rôles des composants seront utilisés pour
discriminer les instances multiples du même composant.
Il faut attirer l‟attention sur le fait que notre cadre générique est
destiné à être applicable à n‟importe quel système de gestion de la QoS.
Pour cela, ce cadre devait être le plus générique possible et ses composants
sd Negotiation
negotiate(operatingModes)
negotiate(operatingModes)
negotiate(operatingModes)
decision(reply, mode)
reject(mode)
Possible mode
(2)
Exit()
End
Outside the Application Execution Application
Application
automatic
transformations
PMQDA Temporary
Model manual Model Tags to guide the
transformations automatic transformations
manual
transformations
«PortToPort_Inheritance» «PortToPort_Inheritance»
«BlackBox_Inheritance» «BlackBox_Inheritance»
«GlobalManager» «SpecificLM»
PM_ GlobalManager PM_ LocalManager
«GlobalManager»
«SpecificLM» PM_ GlobalManager
PM_ LocalManager «Admission» «DecisionMaking»
:PM_ Admission :PM_ DecisionMaking
«DecisionMaking»
«DecisionMaking»
PM_ DecisionMaking
PM_ DecisionMaking
«Planning» «PortToPort_Inheritance»
«Adaptation»
«Admission»
:PM_ Adaptation :PM_ Planning
PM_ Admission
5.7 Conclusion
6.1 Implémentation
Règles de
modèle source modèle cible
transformation
source1 cible1
source2 cible2
transforme
source3 cible3
copie
source4 source4
............
............
6.3 Perspectives
Les travaux réalisés dans le cadre de cette thèse ouvrent diverses perspective s
intéressantes et plusieurs travaux futurs peuvent être envisagés :
[AMS08] Firas Alhalabi, Mathieu Maranzana, and Jean-Louis Sourrouille, "A UML
based methodology to ease the modeling of a set of related systems".
The 3rd International Conference on Software Engineering Advances
(ICSEA'08), p. 51-57, Sliema, Malta, 2008.
+
[ANA 08] Firas Alhalabi, Batouma Narkoy, Régis Aubry, Mathieu Maranzana,
Lionel Morel, and Jean-Louis Sourrouille, "Centralized vs. Decentralized
QoS Management Policy". 3rd International IEEE Conference on
Information and Communication Technologies From Theory to
Applications (ICTTA’08), p. 1-6, Damascus, Syria, 2008.
+
[AVM 06] Firas Alhalabi, Patrice Vienne, Mathieu Maranzana, and Jean-Louis
Sourrouille, "Code Generation from the Description of QoS-Aware
Applications". 2nd International IEEE Conference on Information and
Communication Technologies From Theory to Applications (ICTTA’06) ,
Vol 2, p. 3216-3221, Damascus, Syria, 2006.
+
[BCO 02] Franck Barbier, Corine Cauvet, Mourad Oussalah, Dominique Rieu,
Sondes Bennasri, and Carine Souveyet, "Composants dans l'ingénierie
+
[BHJ 03] Andreas Birk, Gerald Heller, Isabel John, Klaus Schmid, Thomas von
der Masen, and Klaus Muller, "Product Line Engineering: The State of
the Practice". IEEE Software, vol 20, no. 6, p. 52-60, 2003.
[BJB08] Mikaël Barbero, Frédéric Jouault, and Jean Bézivin, "Model Driven
Management of Complex Systems: Implementing the Macroscope’s
Vision". 15th Annual IEEE International Conference and Workshop on
Engineering of Computer Based Systems (ECBS'08), p. 277-286,
Belfast, Northern Ireland, 2008.
+
[BNB 98] Scott Brandt, Gary Nutt, Toby Berk, and Marty Humphrey, "Soft real-
time application execution with dynamic quality of service assurance".
Quality of Service 1998, (IWQoS'98) Sixth International Workshop on,
p. 154-163, Napa, CA, USA, 1998.
[BV05] Ken Birman, and Alexey Vaysburd, "Adaptive Quality of Service for
Availability (AQuA)", Intelligent Distributed Computing Department
Distributed Systems Technology Group Projects, 2005,
[Link]
+
[CCG 92] Andrew Campbell, Geoff Coulson, Francisco Garcia, and David
Hutchkon, "A Continuous Media Transport and Orchestration Service".
In Proc. ACM SIGCOMM ‘92, Maryland, USA, 1992.
[CCH94] Andrew Campbell, Geoff Coulson, and David Hutchison, "A Quality of
Service Architecture". ACM SIGCOMM Computer Communications
Review, p. 6-27, 1994.
+
[CCR 95] Geoff Coulson, Andrew Campbell, Phillipe Robin, S. Blair Gordon,
Michael Papathomas, and David Hutchison, "Support for Continuous
Media in Distributed Systems". IEEE Journal on Selected Areas in
[CJC+00] Ionut Cardei, Rakesh Jha, Mihaela Cardei, and Allalaghatta Pavan,
"Hierarchical Architecture for Real-Time Adaptive Resource
Management". Middleware 2000, Heidelberg, Springer Verlag, p. 415-
434, New York, USA, 2000. (LNCS 1795)
+
[CMS 04] Eric Cariou, Raphaël Marvie, Lionel Seinturier, and Laurence
Duchien, "Model Transformation Contracts and Their Definition in UML
and OCL", Technical Report, N° 2004-08, Laboratoire d’Informatique
Fondamentale de Lille (LIFL), Université des Sciences et Technologies
de Lille, 2004.
[CS01] José Lino Contreras, and Jean Louis Sourrouille, "A Framework for QoS
management". TOOLS'39, p. 183-193, Santa Barbara, CA, USA, 2001.
[CS03] José Lino Contreras, and Jean-Louis Sourrouille, "Adaptable Objects for
Dependability". Dependable Computing, LADC 2003, Heidelberg,
Springer Verlag, p. 181-196, Grenoble, 2003. (LNCS 284)
+
[DSN 97] Brian D. Noble, M. Satyanarayanan, Dushyanth Narayanan, James Eric
Tilton, Jason Flinn, and Kevin R. Walker, "Agile Application -Aware
Adaptation for Mobility". in 16th ACM Syposium in Operating System
Principles (SOSP'97), Vol 31, N° 5, p. 276-287, Saint Malo, France,
1997.
[GHJ+95] Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides,
"Design Patterns, Elements of Reusable Object-Oriented Software".
Reading (Mass.) : Addison-Wesley, 1995. ISBN 0-201-63361-2.
[GLK+06] Hyun Gi Min, Jin Yeal Lee, Sung Ahn Kim, and Soo Dong Kim, "An
Effective Method to Design CBD Components in Enterprise JavaBeans
(EJB)". International Conference on Software Engineering Research,
Management and Applications (SERA'06) (SERA'06), p. 49-56, Seattle,
Washington, 2006.
+
[GWB 99] Steven Gribble, Matt Welsh, Eric Brewer, and David Culler. "The
MultiSpace: an Evolutionary Platform for Infrastructural Services". In
Proceeding of the 1999 Usenix Annual Technical Conference, Monterey,
California, USA, 1999.
[HM06] Kim Hamilton, and Russell Miles, "Learning UML 2.0". Sebastopol, CA :
O'Reilly, 2006. ISBN 0-596-00982-8
[HWC99] Jiandong Huang, Yih Wang, and Feng Cao, "On Developing Distributed
Middleware Services for QoS and Criticality-Based Resource
Negotiation and Adaptation". Journal of Time-Critical Computing
Systems, Vol 16, p. 187-221, 1999.
+
[ICG 04] James Ivers, Paul Clements, David Garlan, Robert Nord, Bradley
Schmerl, Jaime Rodrigo, and Oviedo Silva, "Documenting Component
and Connector Views with UML 2.0", Technical Report, N° CMU/SEI-
2004-TR-008, ESC-TR-2004-008, Carnegie Mellon University U.S.,
2004.
[KK03] Geng-Sheng Kuo, and Po-Chang Ko, "Dynamic RSVP protocol". IEEE
Communications Magazine, Vol 41, N° 5, p. 130-135, 2003.
[KR00] Fabio Kon, and Manuel Román, "The dynamic TAO Reflective ORB",
2000, [Link]
+
[KYO 99] Masakatsu Kosuga, Tatsuya Yamazaki, Nagao Ogino, and Jun Matsuda,
"Adaptive QoS Management Using Layered Multi-Agent System for
Distributed Multimedia Applications". International Conference on
Parallel Processing (ICPP'99), Vol 1, p. 388-394, Aizu-Wakamatsu,
Fukushima, Japan, 1999.
[LKN01] Baochun Li, William Kalter, and Klara Nahrstedt, "A Hierarchical Quality
of Service Control Architecture for Configurable Multimedia
Applications". Journal of High Speed Networks, Special Issue on
Management of Multimedia Networking, Vol 9, N° 3-4, p. 153-174,
2001.
[MP06] Vladimir Mencl, and Matej Polak, "UML 2.0 Components and Fractal: An
Analysis". 5th Fractal Workshop Leveraging an European open source
community around the Fractal component model, (part of ECOOP'06),
p. 1-4, Nantes, France, 2006.
[NQ96] Klara Nahrstedt, and Lintian Qiao, "Tuning System for Distributed
Multimedia Applications", Technical Report, N° UIUCDCS-R-96-1958,
UILU-ENG-96-1721, University of Illinois, Urbana, IL, 1996.
[PP05] Dan Pilone, and Neil Pitman, "UML 2.0 in a Nutshell". Paris : O'Reilly ,
Jun 2005. ISBN 0-596-00795-7
[Roo03] Azam Roomi, "One step further towards a generic framework using
XML" PhD thesis, Royal Institute of Technology, Stockholm, 2003,
[SC00] Frank Siqueira, and Vinny Cahill, "Quartz: A QoS Architecture for Open
Systems". IEEE International Conference on Distributed Computing
Systems (ICDCS'00), p. 197-204, Los Alamitos, CA, USA, 2000.
[SJ98] Frolund Svend, and Koisten Jari, "QML: A Language for Quality of
Service Specification", Technical Report, N° HPL-98-10. USA : Hewlett
Packard Laboratories, 1998, pp. 63.
[SK05] Miroslaw Staron, and Ludwik Kuzniarz, "Guidelines for creating "good"
stereotypes". Proceedings of the NWUML 2005: The 3rd Nordic
Workshop on UML and Software Modeling, Tampere, Finland, 2005.
[SLC99] Douglas Schmidt, David Levine, and Chris Cleeland, "Architectures and
Patterns for developing High-performance, Real-time CORBA Object
Request Brokers". In Advances in Computers, Ed., Academic Press,
Marvin Zelkowitz, 1999.
+
[VKV 95] Andreas Vogel, Brigitte Kerhervk, Gregor V. Bochmann, and Jan
Gecsei, "Distributed Multimedia and QoS: A survey". IEEE Multimedia
Jornal, Vol 2, N° 2, p. 10-19, 1995.
[VS03] Patrice Vienne, and Jean Louis Sourrouille, "DCBL: A framework for
Dynamic Control of Behavior based on Learning". Proc. of ACM
ESEC/FSE Int. Workshop on Intelligent Technologies in Software
Engineering (WITSE'03), Vol 1, p. 44-47, Helsinki, Finland, 2003.
[WFA99] Varuni Witana, Michael Fry, and Mark Antoniades, "A Software
Framework for Application Level QoS Management". in Proceedings of
Seventh International Workshop on Quality of Service (IEEE/IFIP
IWQoS'99), p. 52-61, London, UK, 1999.
[XXH00] Chen Xiaomei, Lu Xichen, and Wang Huaimin, "The Design of QoS
Management Framework Based on CORBA A/V Stream Architecture".
IEEE Computer Society, The Fourth International Conference/Exhibition
Proceedings on High-Performance Computing in the Asia-Pacific
Region, Vol 1, p. 542-547, Beijing, China, 2000.
[ZES97] John A. Zinky, David E. Bakken, and Richard E. Schantz, "Architectu ral
Support for Quality of Service for CORBA Objects". TAPOS - Theory and
Practice of Object Systems, CORBA Object Syst, Vol 3, N° 1, p. 55-73,
1997.