Projet ANR-10-BLAN-0306 – MURPHY : Mécanismes d'évaluation de la robUstesse de Réseaux
de capteurs par injection de fautes PHYsiques et logicielles.
Programme : Sciences de l'information, de la matière et de l'ingénierie : Matériels et logiciels pour les systèmes, les calculateurs, les communications (Blanc SIMI 3) 2010
Année de financement : 2010
Coordinateur du projet : Madame SAILHAN Francoise (CONSERVATOIRE NATIONAL DES ARTS ET METIERS (CNAM))
Partenaires : Laboratoire d'Analyse et d'Architecture des Systèmes; Laboratoire d'Automatique, de Mécanique et d'Informatique Industrielles et Humaines; Conservatoire national des arts et métiers; Inria Centre Paris - Rocquencourt; SMARTGRAINS
Montant : 588720.0 euros
Date de début : 2011
Durée : 40 mois
Résumé : Les réseaux de capteurs sont potentiellement le support idéal de nombreuses
applications de l'intelligence ambiante (par exemple pour le suivi de circulation dans une ville, pour la
maison intelligente ou dans les scénarios de sauvetage après une catastrophe). Cependant, ils possèdent
une limitation intrinsèque, celle de s'exécuter sur des support limités en ressources, tant énergétiques que
de calcul. Leur utilisation dans des environnements de plus en plus critiques et industriels impose de
nouvelles contraintes sur leur robustesse et leur fiabilité.
Ainsi, dans le paysage actuel, les réseaux de capteurs sont très efficaces pour collecter des informations,
mais n'offrent aucune garantie de fonctionnement correct. Les résultats des campagnes de déploiement 
récentes montrent généralement soit la difficulté d'obtenir le résultat attendu, soit l'impossibilité d'y 
développer une application fiable. 
Le projet Murphy se propose se faciliter le développement d'applications pervasives sûres de fonctionnement
sur des réseaux de capteurs robustes, en permettant de détecter au plus tôt dans le processus de
développement les erreurs potentielles, et en offrant un support à l'évaluation de la fiabilité du
futur déploiement. Ce projet s'appuie sur trois axes :
- Développement de capacités de détection d'erreur basées sur un système de surveillance permettant
le traitement des évènements dans le réseau, leur corrélation, et ainsi la détection au plus tôt
d'une erreur ou d'un dysfonctionnement.
- Conception et développement d'un mécanisme d'injection de fautes pour accélérer l'occurrence
des fautes, guider le déploiement du réseau, et évaluer la fiabilité d'une application.
- Développement d'un outil avancé de dissémination et de reconfiguration du code au sein
du réseau, permettant (i) l'injection dynamique et distribuée d'erreurs contrôlées dans le
système, et (ii) de cacher à l'utilisateur la gestion complexe du processus, en offrant une
interface simple et claire.
Ces composants permettront de détecter automatiquement certains dysfonctionnements du
système, d'en diagnostiquer les causes et ainsi de guider l'utilisateur pour augmenter la
fiabilité de l'application s'exécutant sur le réseau de capteur.
À la croisée de l'intelligence ambiante, des systèmes sûrs de fonctionnement et de l'auto-configuration
dans les réseaux de capteurs, notre projet pose des problèmes difficiles à aborder au vu 
du fossé qui sépare le support d'exécution, peu fiable, des besoins élevés de résilience des
applications s'exécutant sur le réseau. Notre approche s'appuie sur la détection d'erreur utilisant
des informations de contexte et issues du réseau, sur la distribution à la volée de code sur
les nœuds du réseau pour faciliter l'implémentation de notre système d'évaluation.
Ces travaux seront conduits selon une approche à la fois formelle (utilisation de spécifications
pour la vérification des propriétés de fiabilité du système) et expérimentale, par l'implémentation
d'un prototype et son évaluation sur des applications réelles. 
Nous utiliserons ainsi deux applications réelles (un système de surveillance en cas d'alerte
incendie au CNAM, et une application de surveillance de places de parking développée
par la société SmartGrains) pour raffiner nos solutions et identifier les vrais problèmes posés lors
du déploiement d'une application basée sur un réseau de capteurs.
Notre projet est articulé autour de trois modules de travail. Le module WP1 s'intéresse
à l'identification des besoins des applications visées, à la définition d'une architecture et
d'un modèle, le module WP2 a pour but l'évaluation de la fiabilité en se basant sur l'injection
de fautes distribuée, adaptée aux capacités réduites des réseaux de capteurs, et le module
WP3 sera dédié au test, à la validation et à la démonstration de l'approche.