• Aucun résultat trouvé

Rythme des adaptations dans une architecture verticale

Toutefois, ces architectures verticales peuvent avoir diverses granularités en fonction des entités auxquelles elles sont attachées, qu’il s’agisse d’entités locales comme un composant ou du système global. Par exemple, Gaia [106], un intergiciel sensible au contexte, permet la gestion d’espaces ambiants. Il prend la forme d’un système d’exploitation dans lequel tous les observables sont stockés dans une même entité : le « context file system ». Il en va de même pour SAFRAN [71] à une échelle plus locale. En effet, à un composant, peut être associé un contrôleur, contenant l’ensemble des règles

de décision, qui fait la liaison entre WildCAT et les adaptations. Ceci s’applique également aux intergiciels Rainbow [80], Genie [55] ou encore aux approches présentées dans [98] ou [63]. Enfin, certains travaux, plus particulièrement orientés vers la collecte d’informations contextuelles, c’est-à- dire ne proposant pas de mécanisme d’adaptation, offrent des mécanismes totalement décentralisés permettant de poursuivre plusieurs dynamiques comme CoWSAMI [53] ou encore SOCAM [83].

Les architectures verticales permettent donc difficilement de prendre en compte les multiples dy- namiques d’évolution de leur contexte. Il devient alors difficile de réagir avec des temps de réponse adaptés à chaque phénomène observé. En particulier, il n’est pas aisé de réagir au plus vite aux change- ments nécessitant des temps de réponse faibles. Ces problématiques s’étaient également posées dans le domaine de la robotique. Les architectures réactives, inspirées par le comportement animal, puis les architectures sur 3 niveaux y ont apportées des solutions.

3.2

Une architecture tirée de la robotique : l’architecture 3T

Dans le cadre de la robotique, les architectures réactives, aussi appelées architectures horizon- tales, permettent la conception de systèmes capables de prendre en compte les multiples dynamiques d’évolution de l’environnement. A l’origine, le constat était le suivant : lorsque les systèmes sont découpés comme une séquence de processus utilisant une représentation interne de leur environne- ment, il leur est difficile de suivre plusieurs dynamiques. Les traitements, ainsi que la maintenance de cette représentation, peuvent mener à une désynchronisation entre l’environnement et sa représenta- tion [120], de telle manière que la réponse apportée n’est plus en adéquation avec l’environnement. Les architectures horizontales apparues dans le milieu des années 80, avec l’architecture de subsump- tion de R. Brooks [118], reposent sur une décomposition comportementale qui apporte une solution à cette limitation. Malheureusement, nous allons voir qu’elle souffre également de limitations que d’autres architectures de la robotique, appelées « 3-Layers » ou parfois « 3T », se proposent de solu- tionner. Nous allons maintenant présenter cette décomposition comportementale puis les architectures 3-layers de la robotique. Ensuite, nous étudierons comment ces dernières ont pu être portées dans le domaine du self-management. Enfin, nous présenterons notre évolution de ces architectures pour le cadre de l’informatique ambiante.

3.2.1 A l’origine : une décomposition comportementale

Les architectures horizontales sont tirées du monde de la robotique et de l’intelligence artifi- cielle. Il s’agit de spécialiser un cœur, minimal, d’application avec des composantes particulières (horizontales) [117]. Les composantes sont indépendantes les unes des autres et s’exécutent en parallèle. Chaque composante peut alors être connectée au monde via des capteurs et agir sur son environnement via des actionneurs. Ce type d’architecture introduit une nouvelle approche de décomposition : « la décomposition comportementale ».

D’après Bryson [119], la décomposition comportementale est une approche architecturale qui décompose l’intelligence en termes de comportements tels que manger ou marcher, plutôt qu’en des processus génériques comme planifier ou observer. Un comportement correspond alors à une composante horizontale et des activités peuvent se composer d’ensembles de comportements managés, faisant ainsi émerger un nouveau comportement global du robot. Une contribution forte de ces approches est de ne pas voir le système comme une séquence de processus mais plutôt comme

une parallélisation de processus et donc de comportements qui, ensemble, peuvent produire une activité cohérente. Il s’agit en réalité de décomposer le système en comportements (composantes horizontales) et ainsi, de décomposer des comportements complexes en de plus simples avec une stratégie « divide and conquer ». Les comportements peuvent avoir différents niveaux de complexité et ne pas être connectés au monde via des mécanismes de perception. Ainsi, le comportement le plus simple sera sans perception ni état [119] (par exemple un comportement pour un robot qui serait « rouler en continu »).

Ces architectures telles que définies par Brooks, respectent les caractéristiques suivantes :

• Chaque composante capture directement dans l’environnement ce qui est pertinent pour elle de manière à ce qu’elles puissent mettre en œuvre leur comportement.

• Il n’y a pas de représentation globale de l’environnement pour une approche décentralisée : « le monde est lui-même sa meilleure représentation » [118]. Les seules données exactes sur l’environnement sont les données obtenues immédiatement par les capteurs. Moins il y a d’états internes (de représentations de l’environnement), plus le comportement pourra être synchronisé avec l’environnement [120].

• Ces architectures comprennent de nombreuses composantes horizontales de faible complexité pour une réactivité maximale.

Les architectures horizontales requièrent un mécanisme de coordination (un gestionnaire) afin de combiner les données générées par chaque composante pour obtenir un comportement final global cohérent. Dans les premières architectures horizontales de Brooks [118], les « subsumption architec- tures », il s’agit d’un mécanisme de subsomption1, c’est-à-dire qu’un comportement de niveau N+1 peut subsommer le rôle des comportements inférieurs en supprimant leurs sorties. Ce mécanisme est intéressant car peu complexe et peu coûteux en énergie ainsi qu’en mémoire [123]. A l’origine, dans cette architecture, pour garantir la bonne indépendance des niveaux et leur parallélisation, les dif- férents niveaux étaient conçus comme des circuits différents. Plus le mécanisme est simple, plus sa réactivité est élevée et plus il pourra être mise en œuvre souvent. Il aura une influence d’autant plus grande sur le système. De plus, des temps de réponse faibles permettent d’avoir des comportements les plus synchronisés possibles avec leur environnement. A partir de ces caractéristiques, nous pouvons définir une activité comme un ensemble managé de comportements (FIGURE3.4).

Documents relatifs