Pour contrer les bugs, les réseaux s'inspirent du système immunitaire

Par 29 janvier 2010
Mots-clés : Smart city, Europe

De même que le corps produit des anticorps, Dimmunix repère la signature des bugs et l'empêche de se produire. Utilisé au sein des réseaux, cet apprentissage devient collectif et élimine les dysfonctionnements à grande échelle.

Dans le but de mieux gérer les bugs dans les programmes informatiques, une équipe de chercheurs suisses de l’école polytechnique fédérale de Lausanne (EPFL) s'inspire de l'humain. Et plus particulièrement de la capacité du corps à produire des anticorps quand il est confronté à un virus. Ces derniers lui permettant de combattre plus efficacement la fois suivante. Le produit de leur recherche a été baptisé Dimmunix. "Les bugs apparaissent quand un fil d’exécution se produit dans un certain ordre", explique à L’Atelier le professeur George Candea, responsable du projet. "Lorsque cela arrive, Dimmunix garde une trace de cette séquence d’applications". C’est la signature du bug. Dans une deuxième étape, le système observe le fonctionnement du programme. Chaque fois que ce dernier sera sur le point d’effectuer les mêmes actions et dans le même ordre, il sera capable de le reconnaître et l’empêcher.
Changer légèrement la séquence d’applications
Le fil d’exécution sera changé légèrement de manière à ce que le programme fonctionne correctement mais sans provoquer de dysfonctionnement. Le système ne s'appliquera pas uniquement à l'échelle d'un utilisateur isolé : les chercheurs veulent permettre à des réseaux d'ordinateurs de coopérer et d'échanger les signatures. Plusieurs possibilités existent. Les éditeurs de logiciels pourraient envoyer une mise à jour à intervalle régulier, ou l’échange pourrait s’effectuer au sein de communautés P2P. "Les entreprises sont un bon exemple de communauté", explique encore George Candea. "Les services IT pourraient installer le logiciel sur les ordinateurs de sorte que les ordinateurs des employés partagent leurs signatures de bugs". Techniquement, le système s'appliquera aux bugs que l’on trouve dans ce qu’on appelle les programmes parallèles.
Permettre cet échange au sein de communautés d’utilisateurs
C’est à dire des logiciels exécutant plusieurs tâches en parallèle, comme les navigateurs Internet par exemple. C’est également le cas des logiciels programmés en Java, en C ou en C++. Plusieurs tâches étant gérées simultanément, les séquences d’applications s’enchaînent et s’entremêlent. L’ordre propre à chaque tâche est conservé pour être sûr que celle-ci s’exécute sans accroc. Ce qui est modifié, c’est la manière dont les séquences de deux ou plusieurs tâches s’enchevêtrent. Si par malheur ce nouvel ordonnancement provoque un nouveau bug, celui-ci est également répertorié et vient compléter la base de données. "Dans la version actuelle du programme, il n’est plus nécessaire de rencontrer un bug pour y être immunisé", explique le professeur suisse. A l’heure actuelle le logiciel s’adresse plutôt aux développeurs, mais l’équipe entend proposer une version au grand public dans le courant de l’année.

Mentions légales © L’Atelier BNP Paribas