L’autonomique dans les réseaux et le besoin en connaissances
Définition des réseaux autonomiques
Les réseaux autonomiques sont des réseaux qui offrent des capacités “d’auto-*” sans aucune intervention externe. D’un point de vue architectural, ils sont basés sur un ensemble d’éléments autonomes appelés Autonomic Elements (AEs). Comme décrit dans la figure 1.1, un AE a 4 caractéristiques 28 Chapitre 1. L’autonomique dans les réseaux et le besoin en connaissances principales [Sterritt et al., 2005] : — se connaître soi-même (self-awareness), — connaître son environnement (environment-awareness), — s’auto-monitorer (self-monitoring), — s’auto-ajuster (self-adjusting). Ces caractéristiques constituent les conditions nécessaires pour qu’un système autonome puisse assurer les 4 objectifs décrits par Sterritt et al. [2005] : — auto-configuration (self-configuring), — auto-réparation (self-healing), — auto-optimisation (self-optimising), — auto-protection (self-protecting), Figure 1.1 – Propriétés d’un système autonomique.
Caractéristiques d’un réseau autonomique
Du point de vue architectural, un AE se doit de répondre à quatre caractéristiques : self-awareness, environment-awareness, self-monitoring et selfadjusting [Kephart and Chess, 2003 ; Kephart, 2005]. Nous définissons, dans la suite, chacune d’entre elles : – Self-awareness est la capacité d’un individu de se connaître soi-même indépendamment de l’environnement et des autres individus. D’un point de vue philosophique, la connaissance de soi même peut être résumée par la citation : « cogito ergo sum » (Je pense, donc je suis). Du point de vue purement technique, un AE doit donc avoir connaissance de ses propres ressources, ses composants, ses performances et son état interne. – Environment-awareness (connaître son environnement) consiste à connaître l’ensemble des mécanismes avec lesquels le système est en interaction. Cette caractéristique a une incidence sur la faculté du système à s’adapter aux différents contextes. – Self-monitoring (auto-monitoring) est la faculté d’un système de suivre par soi-même et régulièrement son comportement et son évolution en vue de pouvoir évoluer et s’améliorer en fonction du contexte. – Self-adjusting (auto-ajustement) est la capacité d’un système de s’adapter au changement de son environnement et de rétablir ses fonctionnalités après perturbation, sans aucune intervention externe.
Objectifs d’un réseau autonomique
Du point de vue fonctionnel, un système autonome se doit d’assurer quatre automatismes à la fois : l’auto-réparation, l’auto-configuration, l’autooptimisation et l’auto-protection [Kephart and Chess, 2003 ; Kephart, 2005]. Nous définissons, dans la suite, chacune d’entre elles : – Auto-réparation : Les systèmes qui s’auto-réparent peuvent automatiquement identifier, analyser, résoudre et réparer les problèmes. L’objectif étant de maintenir de façon continue la disponibilité des réseaux et des services et de gagner du temps par rapport aux approches actuelles où parfois un certain temps est requis pour le traitement du problème. La plateforme Open Object Request Broker (OpenORB) [Blair et al., 2002] décompose le mécanisme d’auto-réparation en deux entités : — La première, dite entité de monitoring, observe le comportement des couches fonctionnelles sous-jacentes, collecte les informations liées à la Qualité de Service (QdS) et fait part d’un comportement anormal, — La deuxième, dite entité de contrôle, s’occupe de sélectionner une stratégie d’adaptation appropriée basée sur les rapports émis par le mécanisme de monitoring.
L’autonomique dans les réseaux et le besoin en connaissances – Auto-configuration
Elle couvre le besoin de rendre la configuration et la reconfiguration d’un système et de ses entités dynamiques et autonomes, en particulier, dans les phases d’installation et de suppression d’un nouveau composant dans le système. Ce dernier pourra ainsi autodéterminer la bonne configuration à adopter et éviter les nombreuses erreurs de configuration liées au facteur humain. L’auto-configuration doit être réalisée dans le but d’atteindre le comportement attendu. Citons comme exemple la proposition de Molinier et al. [2012] concernant l’auto-configuration des équipements dans un réseau de domicile. Dans cette approche, un agent intelligent est placé sur chaque équipement. Il est censé s’occuper de la configuration des interfaces, de la découverte du voisinage et du choix du chemin et du médium de communication d’une manière tout à fait transparente à l’utilisateur. – Auto-optimisation : L’optimisation d’un système est une tâche difficile à effectuer compte tenu du nombre de paramètres en jeu. Afin d’éviter à l’administrateur de paramétrer lui même les équipements et les réseaux pour fonctionner correctement, les systèmes doivent continuellement chercher à améliorer leurs performances et optimiser leurs opérations. L’auto-optimisation concerne donc l’automatisation de la gestion des performances des systèmes. Celles-ci doivent être optimisées et évaluées de façon continue. – Auto-protection : Elle concerne les capacités d’un système à se protéger et à se sécuriser. L’automatisation de la sécurité a pour but de développer un comportement pouvant détecter les situations où la stabilité des réseaux et des services peut être remise en cause par le biais d’actions volontaires ou non et de se protéger en conséquence pour ne pas perturber les usagers. Comme exemple, Luo et al. [2002] proposent un service distribué d’authentification dans le contexte des réseaux ad-hoc. Dans cette solution, de multiples nœuds collaborent afin de traduire le comportement d’un serveur fournissant la certification et l’authentification pour d’autres nœuds du réseau ad-hoc. – Autres fonctions D’autres auto-fonctions ont été définies dans divers travaux de recherche (auto-gestion, auto-localisation, …) au regard d’un besoin particulier du contexte étudié. Généralement, cette diversification mène à un chevauchement des objectifs. Par exemple, l’auto-gestion couvre à la fois certains attributs de l’auto-configuration et d’autres relatifs à de l’auto-optimisation. Après avoir présenté les caractéristiques et les objectifs d’un système autonome, nous décrirons, dans la suite, l’architecture de ce dernier.
Architecture d’un réseau autonomique
Un système autonome est constitué d’une collection d’éléments autonomes (Autonomic Elements, AEs), capables de gérer leur comportement interne ainsi que les relations avec les autres éléments autonomes sans aucune intervention humaine. Pour ce faire, ils s’appuyent sur la connaissance acquise ou apprise par le biais des approches déductives ou inductives déployées dans le réseau. En Intelligence Artificielle (IA), le module qui se charge d’une telle gestion est nommé “agent”.
Vision agent du paradigme
Un agent est un système informatique, situé dans un environnement, et qui agit d’une façon autonome pour atteindre les objectifs pour lesquels il a été conçu [Wooldridge and Jennings, 1994]. En distribuant les agents sur chaque équipement (comme le montre la figure 1.2), le système peut alors traiter localement tout problème l’impactant localement et du coup, diminuant de fait sa répercussion sur le système global. Dans la majorité des situations, les problèmes sont plus facilement gérables quand ils sont contenus localement. De plus, un problème local est détecté beaucoup plus rapidement que dans une approche dite “centralisée”. Pour accomplir sa tâche, un agent doit être [Wooldridge and Jennings, 1994] : – Situé : l’agent est capable d’agir sur son environnement à partir des entrées sensorielles qu’il reçoit de ce même environnement, – Autonome : l’agent est capable d’agir sans l’intervention d’un tiers (humain ou agent) et contrôle ses propres actions ainsi que son état interne, – Proactif : l’agent doit exhiber un comportement proactif et opportuniste, tout en étant capable de prendre l’initiative au bon moment, – Réactif : l’agent doit être capable de percevoir son environnement et d’élaborer une réponse dans le temps requis, – Social : l’agent doit être capable d’interagir avec d’autres agents (automatiques ou humains). Un ensemble d’agents interconnectés entre eux forment un Système MultiAgents (SMA). Ce système peut doter la machine de l’intelligence requise et des capacités d’apprentissage lui permettant de tirer profit d’une expérience particulière pour faire face à une nouvelle situation.