• Aucun résultat trouvé

L’architecture présentée, propose un cadre de travail pour la conception de systèmes ambiants et donc sensibles au contexte (FIGURE 3.15). Elle propose d’organiser les différentes approches de traitement du contexte et d’adaptation que nous trouvons dans la littérature de manière à répondre au mieux à un certain nombre des contraintes définies dans l’introduction.

FIGURE3.15 – Modèle architectural sur quatre niveaux.

– Grâce à l’indépendance des couches et à la hiérarchie établie entre elles, basée sur leurs temps de réponse ainsi que leur gestion de l’état de l’environnement, elle permet de respecter les diverses dynamiques d’évolution de l’environnement. Ainsi, elles garantissent la pertinence temporelle de l’adaptation tout en autorisant le maintient de la pertinence logique du système. – De plus, les traitements étant indépendants les uns des autres, lorsqu’un processus de prise

en compte du contexte complexe (par exemple dans les niveaux tactiques ou stratégiques) est lancé, les processus plus simples (réflexes) restent toujours en fonctionnement et l’application également. La continuité de service est maximale.

– La conception du système peut être entièrement top-down, puisque les niveaux les plus abstraits permettent de déployer les plus concrets, ou relever d’un compromis entre conception top-down et bottom-up lorsqu’une certaine émergence est réalisée par les niveaux réflexes puis contrôlée par les niveaux tactiques et stratégiques.

– L’architecture est suffisamment générique pour permettre l’utilisation en son sein des diffé- rentes approches de décision et d’adaptation que nous avons vu dans l’état de l’art. Par consé- quent, le mécanisme d’adaptation qui assurera le management tardif des comportements ré- flexes doit garantir une bonne indépendance entre les adaptations, être extensible et par consé- quent résoudre les potentiels conflits d’adaptation. Pour cela, il doit offrir une bonne modularité et reposer sur le principe de la séparation des préoccupations. La composition de ces entités doit pouvoir être totalement maîtrisée à travers l’expression de contraintes entre les entités d’adap- tation ou la plus flexible.

Nous allons maintenant proposer un mécanisme d’adaptation susceptible d’être couplée à notre ar- chitecture. Le mécanisme d’adaptation proposé respectera les caractéristiques que nous avons définies dans l’état de l’art, et devra pouvoir être associé à la plupart des types de mécanismes de décision, du plus contraint au plus flexible. Nous étudierons quelles sont les contraintes que cela implique. En- fin, nous conserverons à l’esprit la préoccupation transversale de conservation de temps de réponse faibles.

Mécanisme d’adaptation : la séparation

des préoccupations poussée à son

paroxysme

« Non, ne nous trompons pas ! C’est un exercice continuel d’adaptation et d’évolution qui nous attend et menace notre équilibre de façon constante. » Daniel Desbiens.

Sommaire

4.1 Retour sur les contraintes . . . 88 4.2 Approche proposée : des cascades d’aspects . . . 89 4.2.1 Adaptation structurelle et dynamique . . . 89 4.2.2 Décomposer et réutiliser pour mieux gérer la variabilité . . . 91 4.2.3 Composition opportuniste, déterministe et symétrique pour autoriser l’im-

prévisibilité . . . 94 4.2.4 Temps de réponse maîtrisés et adaptés . . . 104 4.2.5 Synthèse . . . 104 4.3 Les Aspects d’Assemblage . . . 105 4.3.1 Principes et formalisation . . . 105 4.3.2 Le tisseur d’Aspects d’Assemblage . . . 113 4.3.3 Présentations détaillées du processus du tissage . . . 116 4.3.4 Propriétés logiques . . . 125 4.4 Les Cascades d’Aspects d’Assemblage . . . 126 4.4.1 Principes . . . 126 4.4.2 Combinaisons d’AAs et décomposition fonctionnelle . . . 127 4.4.3 Des models@runtime pour minimiser les modifications dans l’application

s’exécutant . . . 132 4.5 Propriétés temporelles . . . 137 4.5.1 Approche mono-cycle . . . 137 4.5.2 Approche multi-cycles . . . 138 4.5.3 Synthèse . . . 139 4.5.4 Étude approfondie sur un cycle de tissage . . . 140

C

E CHAPITRE présente un mécanisme d’adaptation pouvant être intégré dans notre architecture à quatre niveaux. Il peut être utilisé par des mécanismes de décision plus ou moins flexibles. L’approche proposée est construite à partir des constats que nous avons tirés de l’analyse de l’état de

l’art et respecte donc les contraintes que nous en avons extrait.

Dans un premier temps, nous reviendrons sur ces contraintes imposées aux mécanismes d’adapta- tion dans le cadre de l’informatique ambiante. Nous verrons ensuite l’approche proposée et de quelle manière elle respecte ces contraintes. Afin de pouvoir trouver sa place dans l’architecture sur 4 ni- veaux comme un mécanisme permettant l’adaptation du niveau réflexe interne, la solution proposée devra pouvoir être utilisée, dans les couches supérieures, par des mécanismes de décision rigides comme flexibles. L’ensemble des adaptations est donc extensible et elles sont indépendantes les unes des autres. Pour ce faire, l’approche proposée, de type « models@runtime » et permettant de réaliser des adaptations compositionnelles, doit permettre de définir l’adaptation comme une préoccupation transverse homogène et hétérogène tout en garantissant un ensemble de propriétés logiques que nous étudierons dans ce chapitre. Enfin, nous présenterons une mise en œuvre de cette approche que nous évaluerons en termes de temps réponse.

4.1

Retour sur les contraintes

L’analyse de l’état de l’art nous a mené à la définition d’un ensemble de contraintes que doivent respecter les mécanismes d’adaptation en informatique ambiante. L’ensemble de celles-ci est résumé dans le tableau 4.1.

TABLE4.1 – Contraintes pour les mécanismes d’adaptation en informatique ambiante.

Adaptation dynamique π1

Adaptation compositionnelle π2

Adaptation portée sur des modèles à l’exécution π3

Adaptation comme préoccupation transverse ho-

mogène et hétérogène π4

Opération d’adaptation déterministe π5

Ensemble des adaptations extensibles π6

Temps de réponse maîtrisés et adaptés π7

Le contexte peut évoluer fréquemment ; s’y adapter peut être à l’origine de nombreuses évolu- tions du système. Il n’est donc pas envisageable d’arrêter et de redéployer le système à chaque fois qu’une évolution est nécessaire. Nous avons donc, tout d’abord, identifié le besoin de disposer d’un mécanisme permettant de réaliser des adaptations dynamiques. De plus, ces adaptations doivent être à minima compositionnelles. De cette manière, il sera possible d’intégrer, à l’exécution, de nouvelles briques logicielles qui peuvent être des entités se trouvant dans l’infrastructure logicielle de l’appli- cation et qui ne sont pas nécessairement modifiables. D’autre part, puisqu’elles peuvent être mobiles, l’hypothèse de leur existence à un instant donné ne peut être ni émise ni même anticipée. Ce type d’adaptation nécessitant d’interrompre le fonctionnement d’au moins une partie de l’application, il est important de minimiser ce phénomène. L’adaptation doit donc perturber le moins possible le bon fonctionnement du système et le résultat de l’adaptation doit être analysé avant son application. Pour ce faire, nous utiliserons des modèles de l’application à l’exécution. Enfin, l’adaptation doit être décrite et gérée comme une préoccupation transverse dans l’optique de réduire l’enchevêtrement du code pour augmenter la réutilisabilité et l’indépendance des adaptations. Ces préoccupations trans- verses peuvent être homogènes ou hétérogènes. Ces entités, qui sont alors indépendantes, doivent être composées et le mécanisme d’adaptation doit garantir le déterminisme du résultat. Lorsque le

mécanisme d’adaptation est associé à un mécanisme de décision flexible, il doit être possible d’ajouter des entités d’adaptation à l’exécution sans se préoccuper des autres adaptations présentes, c’est-à-dire sans spécifier de quelle manière les composer les unes avec les autres. L’ensemble des adaptations doit donc être extensible et les adaptations doivent être indépendantes les unes des autres. De la même manière, elles doivent pouvoir être déclenchées indépendamment les unes des autres. Pour cela, le mé- canisme d’adaptation doit inclure un système de gestion des conflits entre adaptations. Parallèlement à tous cela, le mécanisme d’adaptation doit remplir tous ces critères tout en garantissant des temps de réponse maîtrisés et adaptés.

Documents relatifs