• Aucun résultat trouvé

Chapitre 2 Notions, Concepts de Base et Etat de l’Art

2.3 Adaptation des Applications

L’adaptation se définit comme étant la capacité d’une application à fournir un service de différentes façons [BH97]. Une application adaptable est une application capable d’adopter plusieurs comporte-ments au regard des variations de ressources disponibles dans son en-vironnement. Ce qui signifie que l’application définit des points où un comportement alternatif est proposé et qu’une tâche est exécutée en tenant compte des ressources disponibles.

2.3.2 Quelques Approches d’Adaptation

L’approche à base d’adaptation est utilisée car elle convient parfai-tement dans un environnement où la maîtrise de la gestion des res-sources n’est pas totale ou impossible. Elle a l’avantage de contrôler l’exécution de l’application conformément à la disponibilité des res-sources. Les mécanismes d’adaptation ont pour objectif l’utilisation efficace des ressources de l’environnement afin de permettre aux ap-plications de fournir une qualité de service acceptable et d’adapter leur comportement au changement des conditions du système.

[CJC+00] propose une architecture de gestion de ressources fournissant des services intégrés permettant d’adapter le comporte-ment des applications distribuées temps réel. Dans [KYO+99] et [MPT98] des systèmes multi-agents permettent de repartir les diffé-rentes tâches de gestion de la QoS des applications multimédia distri-buées. Les agents collaborent et négocient entre eux pour adapter le comportement des applications. Dans [DL02] [LN00] [LN99], l’adaptation du comportement repose sur des règles fournies au sys-tème par le concepteur. Pour [DL02], les règles permettent d’associer dynamiquement les composants fonctionnels (liés au domaine d’application) et les composants non-fonctionnels (liés aux méca-nismes d’exécution ou d’adaptation) des applications. Pour [LN00] [LN99], les applications exportent une interface pour leur reconfigu-ration et les règles permettent de sélectionner la configureconfigu-ration adé-quate en fonction de la valeur d’indicateurs. Dans [SA09], les auteurs

proposent un modèle pour l’adaptation dynamique qui peut être per-sonnalisé par les concepteurs d’applications afin de satisfaire les be-soins d’adaptation. Le modèle est basé sur un ensemble de fonction-nalités obligatoires et optionnelles. Les mécanismes d’adaptation sont associés aux entités telles que application, composant, service etc. [VD05] est basé sur un environnement d’exécution et/ou des compila-teurs pour rendre adaptables les applications. [Lou10] décrit une ap-proche pour l’adaptation dynamique au contexte en proposant une plate-forme pour la reconfiguration et le déploiement contextuel d’applications en environnement contraint. Cette plate-forme permet des reconfigurations des applications basées composants et exploite le plus possible les ressources de l’application en permettant d’utiliser tous les périphériques disponibles comme supports des composants logiciels de l’application. L’approche utilisée dans [VS03] est basée sur des techniques d’apprentissage pour adapter le comportement des applications.

L’adaptation n’est utile que si l’application présente des pos-sibilités pour changer son comportement en fonction du contexte. Ces possibilités sont prises en compte lors de la construction de l’application.

2.3.3 Constructions d’Applications

Pour fournir des capacités d’adaptation, les concepteurs d’applications doivent développer les aspects métiers des applications en prévoyant des comportements alternatifs. Les applications doivent avoir un certain degré de liberté pour le choix de leur comportement au moment de leur exécution afin de prendre en compte les fluctua-tions des ressources pour gérer leur QoS.

Lors de la construction de l’application, toutes les possibili-tés d’exécution de l’application doivent être prises en compte. Cer-tains travaux, comme par exemple [Vie05] [ASB02] [LN00] [LS01] [VSM05] [BS10b], utilisent des modèles d’applications adaptables qui proposent différents chemins d’exécution des applications en fonction des ressources disponibles. D’autres se fondent sur des envi-ronnements qui contiennent les infrastructures nécessaires pour cons-truire des applications adaptables, par exemple dans [KC03] [VD05] [RFS02].

Concrètement, dans cette thèse, le middleware pilote l’adaptation des applications en se basant sur leur description. C’est le concepteur d’applications qui doit fournir, séparément du code

mé-tier, les différentes possibilités d’exécution de l’application et les be-soins en ressources correspondants.

Après la prise en compte des possibilités d’adaptation de l’application, il convient de choisir un modèle d’adaptation : statique ou dynamique.

2.3.4 Modèles d’adaptation

Cette sous-section répond aux questions suivantes : comment l’adaptation est-elle spécifiée ? Et comment est-elle effectuée par les applications ?

2.3.4.a Modèle d’adaptation statique

Ce cas correspond à une adaptation effectuée avant l’exécution de l’application en fonction des connaissances détenues de l’environnement de déploiement. Il peut s’agir d’une adaptation de la gestion pour assurer un niveau de QoS (c'est-à-dire de choisir l’implémentation qui convient le mieux) ou d’une adaptation de la nature de QoS (choix de propriétés non-fonctionnelles considérées). C’est le cas par exemple dans AspectJ [AsJ] où la prise en compte de certains aspects est faite à la compilation. Dans [DHT+98], le fait de choisir d’implémenter les interfaces dédiées fait que le type de com-munication est choisi (c'est-à-dire adapté) statiquement en fonction des besoins de l’application.

Dans le standard des EJB (Enterprise Java Bean) [EJB], c’est également avant le déploiement des composants appelés beans que le constructeur décide de propriétés comme la persistance. Dans la même catégorie nous mettons les approches où l’adaptation est faite pendant une phase d’initialisation.

2.3.4.b Modèle d’adaptation dynamique

Cette solution consiste à prendre en compte pendant la construction de l’application les différentes possibilités d’exécution de l’application. La spécification des modes de fonctionnement est faite de manière statique (avant le lancement) mais les adaptations sont ef-fectuées dynamiquement.

C’est l’approche utilisée dans le cas des applications répar-ties classiques où les constructeurs utilisent un protocole pour la ges-tion d’un problème relié aux fluctuages-tions de l’environnement. Le choix est statique alors que le fonctionnement de ce protocole prend en compte des informations dynamiques. Dans [SAW94] l’approche a été choisie pour effectuer des adaptations en fonction du contexte où

des règles spécifiées statiquement guident les paramètres d’exécution. Dans [NSN+97] l’approche proposée concerne les systèmes mobiles. Elle met en place des solutions choisies statiquement de gestion de la déconnexion. Dans cette même catégorie se trouvent les projets utili-sant le principe de la réflexivité permettant un choix dynamique entre les implémentations existantes comme dans DART [RL98].

Cependant, l’adaptation dynamique peut être plus complexe. Elle peut aller encore plus loin et permettre non seulement d’effectuer de l’adaptation pendant l’exécution mais aussi la défini-tion et la mise en place dynamique de la stratégie d’adaptadéfini-tion.

Dans la solution que nous proposons, les comportements sont spécifiés statiquement par le concepteur d’applications mais la déci-sion d’adaptation est prise dynamiquement par le middleware en choisissant un mode opératoire approprié pour chaque application gé-rée.

Apres avoir fait un tour d’horizon des notions et concepts utilisés dans cette thèse, nous parlons dans la suite de l’ossature sur laquelle se base notre approche. La section suivante décrit les diffé-rentes architectures.

Documents relatifs