• Aucun résultat trouvé

Mise en œuvre de l’auto-organisation et / ou émergence

Par la suite, nous considérerons un système auto-organisé comme un système possédant à la fois les propriétés propres à l’auto-organisation et à l’émergence.

1.3 Mise en œuvre de l’auto-organisation et / ou émergence

Parmi les systèmes mettant en œuvre les principes d’auto-organisation et / ou d’émergence nous trouvons les systèmes de calcul inspirés organique (organic computing), les systèmes de

calcul autonome (autonomic computing) et les systèmes multi-agents (multi-agent systems). Ces

systèmes sont caractérisés par une complexité et une taille très élevées. D’une manière générale, ils sont caractérisés par une composition et une structuration de plusieurs entités simples ou de complexité moindre.

1.3.1 Systèmes de calcul autonome - Autonomic computing

La complexité croissante des systèmes à concevoir et les attentes de plus en plus exi-geantes des systèmes en terme d’organisation et de gestion dans des environnements évolu-tifs, ont conduit aux développements de nouvelles approches de conception. Un exemple d’une telle approche est la conception des systèmes de calcul autonome (autonomic computing

sys-tems) [KJCD03]. Cette approche, à l’initiative de la société IBM, met au premier plan à la fois l’hétérogénéité grandissante des composants constituant les systèmes actuels et leurs intercon-nectivités de plus en plus complexes rendant les méthodes de conception existantes incapables à anticiper ou à prévoir les interactions des constituants des systèmes lors de leur fonctionne-ment. Ainsi, dans le but de répondre à de nouvelles exigences, une nouvelle approche inspirée des systèmes naturels (systèmes biologiques, sociétés) caractérisés par une grande autonomie

et une autogestion est considérée [KJCD03]. D’où le terme autonome associé à ces systèmes

en référence au système nerveux autonome capable de gérer « automatiquement » toutes les fonctions du corps humain (respiration, digestion, fréquence cardiaque, tension artérielle, etc).

La base d’un système de calcul autonome est un système autogestionnaire, libérant des administrateurs du système de la supervision de travaux de bas niveau tout en fournissant un comportement optimal et adapté aux besoins actuels de l’environnement dans lequel il exerce

[KJCD03, NB07]. Les systèmes de calcul autonome sont gérés et contrôlés sans intervention

directe ou indirecte humaine et reposent sur un ensemble de règles générales définissant le comportement global du système. Les systèmes de calcul autonome sont caractérisés par quatre grands principes (les auto - * propriétés, eng. self-* properties) :

– L’auto-configuration (self-configuration) : configuration automatique des composants du système,

– L’auto-optimisation (self-optimization) : contrôle automatique des ressources assurant un fonctionnement optimal du système dans des conditions définies,

– L’auto-curation (self-healing) : détection automatique des défauts et leurs corrections, – L’auto-protection (self-protection) : identification et protection proactive contre des

at-taques arbitraires.

A ces quatre grands principes, de nouveaux principes ont été depuis introduit [PST+05,

BDK+03,NOR03] :

– Récupération du système des routines de traitement provoquées par des changements environnementaux inattendus,

– Optimisation continue des états du système,

– Augmentation des connaissances sur les composants et le système lui-même (forme d’auto-aprentissage). Element contrôlé manager autonome savoir action analyse observation planning

FIG. 1.4 – Élément de base d’un système de calcul autonome - (autonomic element).

La brique fondamentale d’un système de calcul autonome est l’« élément autonome »

(auto-nomic element) dont le schéma synoptique est présenté sur la figure1.4. L’élément autonome est composé d’un ou plusieurs éléments contrôlés (managed element) couplé(s) avec un contrôleur

autonome (autonomic manager). L’élément contrôlé peut être soit une ressource matérielle (par

exemple un processeur), soit une ressource logicielle (par exemple une base de donnée) ou bien une combinaison des deux. Le contrôleur autonome récolte toutes les informations relatives à l’élément contrôlé dans l’environnement, les analyse et planifie les actions appropriées devant être appliquer par l’élément contrôlé.

Chaque élément d’un système de calcul autonome est responsable de la gestion de son état, de sa structure interne et des interactions avec son milieu environnant et les autres éléments

1.3. Mise en œuvre de l’auto-organisation et / ou émergence

à différents niveaux d’abstraction de façon précise et transparente par rapport à ses voisins, à travers des règles établies au cours de la conception du système. Chaque élément autonome peut assurer seul ou en interaction avec d’autres éléments du système un nombre de « services » se-lon les règles prédéfinies par le concepteur dans la phase de conception. Un élément autonome ne pourra jamais accepter de faire partie d’un service ou d’une action qui enfreindra ses règles de base. En résumé, un système de calcul autonome est défini comme une somme d’éléments

autonomes délivrant des « services » définis initialement par son concepteur.

Les caractéristiques principales et les politiques de gestion (policy management) de tels

systèmes de calcul autonome sont décrites dans [WHW+04, ALL05]. La conception de ces systèmes autonomes, d’inspiration autonomique, pose néanmoins des problèmes de standardi-sation et il manque les mécanismes d’auto-gestion rendant un système autonome auto-organisé

[HMG05].

1.3.2 Systèmes de calcul inspirés organique - Organic computing

Une autre approche cherchant à mettre en œuvre le principe d’auto-organisation dans les

systèmes apparaît dans les systèmes de calcul inspiré organique (Organic Computing) [Sch05,

MS04]. Cette approche repose sur l’étude et l’analyse des structures organiques à tous les

ni-veaux d’abstraction (au niveau moléculaire, organisme, cognitif et social), dans le but d’extraire des connaissances qui peuvent contribuer à la conception de systèmes de calcul. L’objectif de cette démarche est de réaliser des systèmes de calcul capables de gérer tout changement de la même manière qu’un « être » organique le réalise.

Un système est appelé organique si tous ses composants et sous-systèmes sont

coordon-nés d’une manière utile et réfléchie [ORG]. Les structures organiques sont des processus

hié-rarchiquement imbriqués les uns aux autres, structurés de façon à répondre à des change-ments inattendus des environnechange-ments dans lesquels ils évoluent à travers des réactions « but-orientées » (goal-oriented reactions). De tels systèmes doivent être réactifs et « conscients » de leur environnement. Cette « conscience environnementale » s’obtient à travers un interfaçage avec de nombreux capteurs fournissant à ces systèmes des informations sur leur « voisinage » et leur environnement. Tandis que leurs réactivités sont reflétées à travers les tâches accomplies par leurs actionneurs agissant uniquement sous ordre du système lui-même. Contrairement aux systèmes classiques de calcul, la notion de calcul organique ne repose pas sur une répartion algo-rithmique des tâches à réaliser, mais sur des processus d’évolution, de développement, d’auto-organisation, d’adaptation, d’apprentissage et de réactions but-orientées. De tels systèmes de

calcul inspirés organique doivent « incarner » la vie dans le sens propre du terme [ORG]. Ils

doivent être à la fois robuste, flexible, fiable et sûr dans la mesure du possible. D’autre part, ils doivent être capable d’effectuer des « auto - * actions » telles que organiser,

Les méthodes de conception actuelles des systèmes complexes, qui reposent

majoritaire-ment sur des approches de type top-down,4 ne sont pas adaptées à la conception des systèmes

de calcul organique [MS04, Sch05], caractérisés par des comportements émergents et

auto-organisés. En effet, les approches de conception des systèmes organiques doivent se focaliser principalement sur les relations entre les composants du système dont les interactions défi-nissent le comportement global du système. Actuellement, aucune discipline scientifique ne propose de méthodologie permettant la mise en œuvre du principe d’auto-organisation. Dans ce contexte, l’élaboration d’une approche de conception de systèmes électroniques devant pos-séder des caractéristiques d’une structure organique, nécessite une interdisciplinarité (biologie, informatique, électronique, etc).

1.3.3 Systèmes multi-agents (Multi-agents Systems - MAS)

Afin de réduire la complexité croissante des systèmes informatiques et de les rendre distri-bués et répartis, le concept de systèmes « multi-agents » a fait son apparition dans les années 70 pour évoluer depuis les années 90 sur les concepts actuels des systèmes multi-agents.

Les systèmes « multi-agents » sont des systèmes constitués d’un ensemble d’entité (« agent ») évoluant dans un même environnement. Le terme « agent » est un terme générique se rap-portant à des entités de nature différente (biologique, des robots autonomes, des logiciels

in-formatiques et leurs composants) [FG97]. Un agent présente une entité physique ou virtuelle

évoluant dans un environnement dont il n’a qu’une représentation partielle et sur lequel il peut

agir [Fer95,DC96]. Par ailleurs, un agent est capable de communiquer avec d’autres agents et

est doté d’un comportement autonome et flexible. Dans ce contexte, on attend d’un système multi-agent une flexibilité, une réactivité (réponses aux changements environnementaux), une pro-activité (un système qui génère et satisfait des objectifs) et une sociabilité correspondant

à sa capacité d’interaction avec d’autres systèmes [Woo99]. La figure 1.5 illustre un schéma

synoptique d’un agent.

D’une manière plus concrète, un système multi-agents est constitué d’un ensemble de pro-cessus s’exécutant simultanément dans le temps, communicants entre eux et partageant des ressources communes. Du fait d’une communication importante entre les agents, les systèmes multi-agents sont caractérisés par un comportement global émergent. Ainsi, à partir d’un en-semble d’agents ou entités pas forcément intelligents, on élabore des systèmes complexes dont

l’intelligence émerge d’un comportement global [Gas92]. De plus, un système multi-agents

dans sa globalité doit être modulaire et extensible. La modularité correspond au fait que le sys-tème multi-agents est composé de plusieurs sous-syssys-tèmes mis en relation et ayant chacun leur

4Approche descendante - méthode d’élaboration de structures nanométriques, qui consiste à réduire

progressi-vement la taille de matériaux existants, en les découpant ou les sculptant, jusqu’à ce qu’ils possèdent les dimensions et les caractéristiques voulues. [GRD]