Lettre du LAAS

Publication trimestrielle du Laboratoire
d'analyse et d'architecture des systèmes du CNRS

Schéma du modele de référence d'un système résilient

© LAAS-CNRS

L'évolution des systèmes est aujourd'hui un impératif à considérer dès leur conception. Les systèmes peuvent évoluer selon différentes dimensions, les ressources bien sûr, mais aussi les menaces auxquelles ils sont confrontés. Les applications elles-mêmes changent en vie opérationnelle par la succession de nouvelles versions. Ces systèmes informatiques doivent donc s'intégrer dans un environnement qui est dynamique. Face à ce dynamisme, il est nécessaire de permettre au système de s'adapter tout en conservant la sûreté de son fonctionnement.

La propriété de résilience de ces systèmes évolutifs vise à garantir la « persistance de la sûreté de fonctionnement en dépit des changements ». Pour obtenir la résilience, il faut concevoir des mécanismes de sûreté adaptables, et définir les bonnes abstractions pour modéliser l'évolution de ces systèmes tout en garantissant la sûreté. Pour obtenir des mécanismes de sûreté adaptables, plusieurs approches existent. Une approche consiste à adapter les mécanismes eux-mêmes. L'approche développée au LAAS  consiste à concevoir des mécanismes de sûreté spécialisés et composables et à s'adapter aux évolutions du contexte. L'originalité de ces travaux est de combiner la modification en ligne des  mécanismes eux-mêmes avec la façon dont ils sont composés entre eux. La conception de ces systèmes se fait à l'aide de deux outils : les patrons de conception UML et les architectures à composants. En particulier, une implémentation dans le cadre du middleware FraSCAti a été développée au moyen de composants réflexifs, et une étude de cas sur un réseau de capteurs est envisagée dans le cadre de l'ANR Murphy en collaboration avec l'Inria. L'adaptation repose sur l'exécution d'algorithmes de transition d'une configuration logicielle à une autre.

Schéma du modele de référence d'un système résilient

© LAAS-CNRS

Concevoir des mécanismes de sûreté adaptables n'est pas tout, encore faut-il savoir quand déclencher ces adaptations et comment assurer le monitoring au cours de celles-ci. En effet, le monitoring a pour tâche de vérifier que le système assure les propriétés de sûreté comportementales et temporelles requises, c'est à dire vérifier que le système reste sûr et sans danger. Le risque est que ce système, au cours d'une reconfiguration, viole certaines de ces propriétés et devienne ainsi dangereux. Il faut donc concevoir un mécanisme de supervision du système qui surveille (ou "monitore") les propriétés de sûreté à tout instant, même au cours des reconfigurations. Pour cela est proposée une approche basée sur les réseaux de Pétri (RdP) temporisés. Sur le plan théorique sera introduite une extension aux RdP temporisés, afin de les adapter à une exécution dans un environnement perturbé tel que celui d'un système en reconfiguration. Ainsi sont ajoutés aux RdP des jetons négatifs. Ils marquent le franchissement d'une transition uniquement sur réception d'un événement temporisé. C'est ainsi un franchissement spéculatif : le jeton négatif attend, pendant la fenêtre de validité de cet événement temporisé, l'arrivée du jeton positif correspondant. Si celui-ci arrive hors de la fenêtre de validité, le signalement d'une erreur est déclenché.  Grâce à cette approche formelle sont dérivés des algorithmes permettant de mettre place un système de moniteurs réparti. On peut ainsi distribuer les moniteurs à travers un réseau et optimiser leur placement par rapport aux événements qu'ils ont la tache de surveiller. Pour obtenir des systèmes informatiques résilients, ce sont donc à la fois les méthodes d’adaptation en ligne des mécanismes de sûreté et les méthodes de vérification associées à ces adaptations qui sont développées.