• Aucun résultat trouvé

Organisation des mécanismes d’exploitation du contexte et d’adaptation dans

3.3 Une architecture 4 couches pour l’informatique ambiante

3.3.3 Organisation des mécanismes d’exploitation du contexte et d’adaptation dans

Les quatre types de combinaisons <traitement-exploitation du contexte> sont donc organisés dans les quatre couches de l’architecture en fonction de leurs caractéristiques présentées dans le tableau récapitulatif 3.1. Les approches les plus lentes mais permettant des raisonnements complexes seront dans les niveaux les plus éloignés de l’application. Nous allons maintenant détailler chacun de ces niveaux. A chaque description, nous associerons un tableau récapitulatif de ces caractéristiques.

TABLE3.1 – Caractéristiques des différentes combinaisons traitement-exploitation du contexte.

Combinaison Capacités de rai-

sonnement

Extensibilité de

l’adaptation Temps de réponse

Logique en temps non-fini

Maximales (avec état)

Oui (si adaptation compositionnelle)

Important sans ga- rantie d’obtenir un résultat Logique en temps fini Très bonnes (avec état)

Oui (si adaptation

compositionnelle) Important mais finis

Physique-

compositionnelle Limitées (sans état) Oui

Faibles et finis mais plus important

que dans l’ap-

proche physique- paramétrée

Physique-

paramétrée Limitées (sans état)

Limitée aux para- mètres définis

Les plus faibles et bornés

3.3.3.1 Niveau 0, réflexe interne : traitement physique et adaptation paramétrée

Le premier niveau, que nous appellerons réflexe interne, équivalent au niveau « contrôleur » de l’architecture 3T, a pour objectif de mettre en relation capteurs et actionneurs et ainsi de créer des applications. Il s’agit donc du niveau permettant la composition des entités logicielles de l’infrastructure. Il devra donc être en mesure de prendre en compte dynamiquement les apparitions/- disparitions de ces entités logicielles. Il se composera donc d’une plateforme d’exécution permettant de réaliser des adaptations compositionnelle. La plateforme doit permettre la création d’applications modulaires. Nous avons donc vu en SECTION 2.2.2.2 que les approches orientées composants sont particulièrement adaptés à cela. Par conséquent, ce niveau repose sur une plateforme d’exécution à base de composants qui offre des capacités d’introspection et doit permettre l’ajout et le retrait de composants/liaisons. D’autre part, la plateforme doit disposer d’un mécanisme notifiant de tout changement dans l’assemblage.

Les processus de traitements des informations contextuelles et d’adaptation se trouvant à ce ni- veau sont donc internalisés dans l’application et prennent la forme d’assemblages de composants. Les temps de réponse à ce niveau devant être les plus faibles possibles, les traitements du contexte seront physiques et l’adaptation paramétrée. Les paramètres seront alors le moyen de modifier le comporte- ment des composants instanciés. D’autre part, des composants spécifiques pourront être déployés afin de permettre de filtrer les interactions entre composants, comme cela est proposé dans [86]. De cette manière, des comportements (SECTION3.2.1), appelés réflexes internes, pourront être déployés par le

niveau supérieur dans l’application sous la forme d’assemblage de composants.

3.3.3.2 Niveau 1, réflexe externe : traitement physique et adaptation compositionnelle

Le second niveau, que nous appellerons réflexe externe, prend la forme d’un ensemble de comportements dont l’objectif est de réaliser des adaptations compositionnelles du niveau inférieur. Ces comportements utilisent un traitement des informations contextuelles physique et une adaptation compositionnelle. Ils pourront déployer, retirer ou modifier des réflexes internes. Cela consiste en l’ajout ou retrait de composants ou liaisons. Ce niveau permet donc de répondre à une problématique

TABLE3.2 – Caractéristiques du niveau réflexe interne.

Objectif : Garantir l’exécution de routine du système ambiant dans une situation donnée.

Mise en œuvre :

Approche physique et adaptation paramétrée. Plateforme d’exécution adaptative et implémentation de comportements dans l’application par assemblage de composants.

Impact par rapport au comportement global du système :

Impact à court terme : ce niveau n’est valide que le temps d’une situation et pour une infrastructure qui ne change pas. Apport concernant la

pertinence temporelle :

• Permet de réagir rapidement aux changements de contexte considérés.

• La durée de l’adaptation est courte.

Ce qui peut entraver la pertinence logique :

• Erreurs, dysfonctionnements, dans la routine. • Disparition de dispositifs.

• Les comportements déployés ne sont plus adaptés au contexte.

du niveau inférieur, à savoir le manque d’extensibilité des approches paramétrées.

Tous les comportements sont au même niveau et sans hiérarchie. Nous avons vu qu’un système ambiant doit respecter plusieurs dynamiques dont une obligatoirement et de la manière la plus réactive possible : celle de l’infrastructure d’une application ambiante. Chaque comportement de ce niveau doit prendre en compte les évolutions de l’infrastructure de l’application. Dans le plus simple des cas, à l’adaptation est associé un unique mécanisme de décision chargé de vérifier si l’infrastructure permet bien sa mise en œuvre.

Nous avons également vu que ce type d’adaptation doit être externalisé de l’application dans ce que l’on appel une approche transparente [50]. Parmi les niveaux externalisés, il est le plus rapide. Comme le premier niveau, celui-ci est également alimenté en informations contextuelles. De plus, il est informé des modifications intervenant au niveau inférieur. Le mécanisme d’adaptation associé à ce niveau peut reposer sur une approche de type models@runtime. Si tel est le cas, il utilisera les capacités d’introspection de la plateforme sous-jacente afin d’être synchronisé avec le niveau inférieur. Les adaptations décrites à ce niveau doivent respecter l’ensemble des caractéristiques que nous avons définies en SECTION 2.6. En particulier, puisque divers mécanismes de décision pourront leur être associés, y compris les plus flexibles, le mécanisme d’adaptation devra incorporer un mécanisme de gestion des conflits d’adaptation.

3.3.3.3 Niveau 2, tactique : traitement logique en temps fini

Le troisième niveau, que nous appellerons tactique, prend la forme d’un ou plusieurs com- portements s’appuyant sur le niveau inférieur, dont l’objectif est de déployer, sélectionner ou désélectionner des comportements réflexes externes. Il permet de gérer la bonne cohérence de ces derniers, par exemple en les bloquant ou encore en leur indiquant une politique de mise en œuvre. Pour ce faire, ces comportements utilisent un traitement des informations contextuelles logique. Ce

TABLE3.3 – Caractéristiques du niveau réflexe externe.

Objectif : Réagir aux changements familiers et qui étaient prévisibles dans cette situation.

Mise en œuvre : Approche physique et adaptation compositionnelle, permet- tant ajout/retrait de composants/liaisons.

Impact par rapport au comportement global du système :

Impact à court terme : ce niveau n’est valide que le temps d’une situation.

Apport concernant la pertinence temporelle :

• Permet de réagir rapidement aux changements de contexte considérés et plus particulièrement aux disparitions de dis- positifs.

• La durée de l’adaptation est courte. Ce qui peut entraver la

pertinence logique :

• Les comportements déployés ne sont plus adaptés au contexte.

niveau est donc également alimenté en informations contextuelles ainsi qu’en informations relatives à l’état du niveau inférieur.

Les comportements déployés dans ce niveau n’ont pas nécessairement besoin d’avoir une dynamique aussi proche que les réflexes de l’application et de l’environnement. Toutefois, ils doivent quand même offrir des temps de réponse raisonnables et finis. Le traitement logique mis en œuvre dans ce niveau doit par conséquent être fini. Nous pouvons donc associer à ce niveau une base de connaissance ou tout autre mécanisme jouant le rôle de serveur de contexte. C’est à ce niveau que nous pourrons trouver les différents mécanismes de décisions plus ou moins flexibles présentés en SECTION2.5. Par exemple, dans le cas d’un mécanisme de décision contraint basé sur un automate à états finis, chaque état de ce dernier définirait les comportements réflexes et donc les adaptations à déployer. Dans une approche moins contrainte, utilisant par exemple un diagramme de feature, la sélection d’une feature pourrait correspondre au déploiement d’un comportement.

Enfin, ce niveau peut définir des politiques de mise en place des comportements du niveau infé- rieur. Par exemple, il pourra décider que la réalisation de certains comportements ne peut se faire que dans des intervalles réguliers. Une autre politique peut consister à réaliser au plus tôt les adaptations dues à des disparitions de dispositifs et à demander validation des adaptations dues à des apparitions de dispositifs. Une telle approche permettant de coller aux critères définis en SECTION1.2.4.

3.3.3.4 Niveau 3 Stratégique : traitement logiques en temps non-finis

Le quatrième niveau, que nous appellerons stratégique, a pour objectif de permettre la réaction du système à des situations inconnues et imprévues. Ce niveau étant le plus complexe, mais aussi celui de plus haut niveau, il est difficile à décentraliser ou encore à concevoir comme un ensemble de comportements. Le niveau stratégique peut reposer sur des mécanismes complexes dont les temps de réponse ne sont ni bornés ni finis et n’offrent aucune garantie de résultat. La dynamique de ce niveau est totalement décorrélée de celle de l’environnement. Ces mécanismes peuvent se baser sur des techniques d’apprentissage ou encore mettre en jeu des utilisateurs (administrateur ou encore utilisateur final). Pour cela, comme les autres niveaux, il est alimenté en informations contextuelles.

TABLE3.4 – Caractéristiques du niveau Tactique.

Objectif : Réagir aux accidents non familiers à cette situation (déclen- cher le changement de situation.)

Mise en œuvre : Approche logique. Déploiement ou sélection de nouveaux ré- flexes externes.

Impact par rapport au comportement global du système :

Impact à moyen terme : ce niveau est valide tant que l’on reste dans ce qui pouvait être prévu.

Apport concernant la

pertinence temporelle : • Temps de réponse finis. Ce qui peut entraver la

pertinence logique : • Activer des règles inadaptées.

Il s’appuie sur le niveau tactique et a pour objectif d’ajouter de nouvelles règles aux comportements tactiques existants ou d’en déployer de nouveaux. Par exemple, dans les approches basées sur des types, ajouter de nouvelles contraintes permet de générer un nouvel espace de solutions. Dans les approches proposant de l’émergence contrôlée, il s’agit d’un moyen supplémentaire de gérer les trois axes d’imprévisibilité en modifiant la partie contrôle du mécanisme de décision. Ceci aurait pour conséquence la modification en cascade des niveaux inférieurs, comme par exemple, le déploiement de nouveaux comportements dans les niveaux inférieurs.

TABLE3.5 – Caractéristiques du niveau Stratégique.

Objectif :

Réagir aux changements considérés comme anormaux et non prévus. S’adapter à des situations non prévues et non connues.

Mise en œuvre :

Approche logique. Mise à jour du niveau tactique (ajout/re- trait/modifications de règles dans un format dépendant des modèles sous-jacents).

Impact par rapport au comportement global du système :

Impact à long terme : vision globale du système et de ces objectifs.

Apport concernant la

pertinence temporelle : • Temps de réponse inadaptés. Ce qui peut entraver la

pertinence logique :

• Déployer des règles inadaptées. • Ne pas trouver de solution.

Documents relatifs