# Autonomique

L'autonomique ou la gestion autonomique est un concept métaphoriquement inspiré de certaines boucle de rétroaction (éventuellement multiples ou en cascade) observées par la biologie et de la physiologie, mais ici appliqué aux interfaces complexes du génie logiciel et de l'intelligence artificielle, par exemple dans le domaine de l'Internet, de la gestion de la connaissance et de la gestion des données (en data center par exemple$^,$) ou encore de la domotique en réseau et/ou des smartgrids.
Son principal développement est l'autonomic computing (ou informatique autonomique).
L'« autonomique » cherche à faciliter et fiabiliser, y compris pour des utilisateurs non-experts la gestion de la complexité dans les grands réseaux et systèmes informatiques civils ou militaires qui sont à la fois hétérogènes, rapides et dynamiques, et de plus en plus évolutifs et ouverts, « à de multiples niveaux de granularité (ressource, organisation de ressources, zone géographique, etc.) ».

## Histoire

À la fin du XXe siècle, les systèmes informatiques deviennent de plus en plus complexes, et ils tendent à être inter-connectés, d'abord par les réseaux de télécommunication classiques, puis par l'Internet, le Wi-Fi et la perspective du nuage (Cloud se dessine, ainsi que d'autres environnements complexes de virtualisation du stockage du big-data notamment), des informaticiens ont eu l'idée de s'inspirer des modes de gestions développés par les êtres vivants au cours de plus de 3 milliards d'années d'évolution et en particulier dans le système nerveux autonome (dit Autonomic nervous system en anglais). Ce système est considéré comme essentiellement localisé dans la colonne vertébrale chez les vertébrés, qui est un des sous-système du système nerveux central et qui permet une relative autonomie adaptative des individus dans la société et leur environnement matériel, si ce n'est écologique.
Les ingénieurs et informaticiens d'IBM pressentent (et annoncent dans un manifeste en 2001) une crise imminente de la complexité des logiciels si rien n'est fait, et ils lancent un projet basé sur une vision "autonomique" de l'informatique présenté en 2003 dans un article fondateur de Kephart JO et Chess (article cité 4651 fois par d'autres articles spécialisés entre sa date de publication et le 13 novembre 2014 selon Google scholar. Pour A.G Ganek (IBM Software Group) le tout début des années 2000 peut être considéré comme le début de l'« ère de l'autonomique », et dès 2001 IBM a intégré ce concept dans une initiative et un projet à long terme visant à développer des systèmes informatiques capables d'auto-gestion, de surmonter la complexité rapidement croissante de leur environnement informatique et informationnel (noosphère) tout en réduisant la barrière que constitue ces complexités intrinsèques et extrinsèques en les cachant aux opérateurs et plus encore aux utilisateurs.
Dans le contexte d'un internet en croissance rapide et de plus en plus pervasif, cette approche conduit notamment à élaborer des modèles décisionnel d'agent pour une supervision adaptative des systèmes distribués.
Selon F Nguengang (2010) « Face à cette complexité sans cesse grandissante, les architectures et paradigmes de gestion implémentés massivement par les systèmes de supervision actuels semblent totalement inadaptés pour assurer, de manière rentable (cost effective), la disponibilité quasi permanente des services réseaux. C'est la raison pour laquelle un nouveau paradigme de gestion dit autonomique a vu le jour au cours de la dernière décennie »

## Éléments de définition

Le système nerveux autonomique relève de l'inconscient et des systèmes réflexe. En lien avec le système endocrinien, il joue un rôle essentiel pour l'entretien et la protection des fonctions vitales de l'organisme (système cardiovasculaire, sens de l'équilibre, digestion, respiration...). Le néocortex, ainsi libéré de ces tâches peut alors être mobilisé pour des activités « de haut niveau d'abstraction » et pour certaines relevant clairement de l’activité consciente.
Métaphoriquement, un système informatique est dit autonomique s'il présente des propriétés comparables, étant par exemple capable de maintenir de manière autonome (dans ce cas : « sans intervention extérieure d'un administrateur humain ». Ces propriétés sont
* l'auto-configuration : le système est dit auto-apprenant, c'est-à-dire qu'il est conçu pour pouvoir se modifier de lui-même et proactivement s'adapter à un contexte changeant, sans intervention extérieure de l'Homme ;
* l'auto-protection : le système se protège contre les "menaces extérieures" et cherche à anticiper les variations de son environnement pour - dans les limites de ses capacités - s'y adapter ;
* l'auto-réparation : un système autonomique diagnostique ou détecte certaines failles ou « erreurs internes » et les répare ou développe une procédure de compensation ;
* l'auto-optimisation et auto-adaptation : le système est programmé pour rechercher des solutions optimales (au regard de la consommation d'énergie, de la rapidité, de la sécurité) face aux tâches pour lesquelles il a été programmé, par exemple dans une architecture informatique de self-benchmarking.
Le système peut ainsi prendre des « décisions » en se basant sur des « méthodes de haut niveau » ; il s'auto-diagnostique en permanence, vérifie et optimise son statut et s'adapte automatiquement à des conditions changeantes. Les informaticiens parlent de « boucle de contrôle autonomique », par exemple pour garantir « l'élasticité du 'nuage' ».
De manière simplifiée, l'informatique autonome est un « système multi-agents » constituée de sous-systèmes ou composants autonomes (CA) interagissant les uns avec les autres. Un CA peut être modélisé selon deux grands types de boucles de régulation (locales et globales), avec des capteurs (pour l'auto-surveillance), des effecteurs (pour l'auto-adaptation, les mises-à-jour, les réparations...), qui sont aussi des bases rudimentaires de ce que l'on appelle l'intelligence artificielle. Cette approche peut par exemple être appliquée à la domotique
À la différence du système biologique pris en référence, les systèmes autonomiques informatiques peuvent généralement également ou théoriquement être, à tout moment analysé et contrôlé par l'homme.

## Exemples d'utilisation
### Dans le domaine de la Gestion des réseaux sans fil

Le développement de l'internet sans fil et des réseaux sans fil (IEEE 802.11, etc.) a encouragé un pilotage des réseaux, sur des bases de type autonomique$^,$.

### Dans les domaines de la domotique et de ses évolutions

Ce concept présent dans la science-fiction, s'est peu à peu concrétisé en s'appuyant sur l'électronique, des capteurs matériels ou leurs équivalents virtuels, puis le précâblage (câblage par fil, câblage réseau) avant d'intégrer plus largement l'internet.
Il tend maintenant à intégrer une « coordination » à grande échelle par l'informatique autonomique$^,$$^,$$^,$$^,$ et les objets communicants et de petits smartgrids "autonomiques".

## Limites et freins

Outre des limites sociopsychologiques et des prudences justifiées par l'éthique (concernant l'accès aux données personnelles ou données d'intérêt commercial sur les activités des usagers de l'internet et des systèmes connectés par exemple), il existe des limites imposées par la complexité, la variété et l'évolution rapide des systèmes, des objets connectés et des contextes... qui demandent un effort constant de recherche et de construction de nouveaux types d'interface homme-machine, ainsi que des efforts de standardisation et/ou d'interopérabilité. L'un des défis que les informaticiens doivent relever est « de permettre à des non informaticiens, spécialistes de l’ergonomie, de définir et de mettre en place des interfaces appropriées ».