Brevet FR3047862A1 (20170818)
REVENDICATIONS1.- Système embarqué (10) fournissant une fonctionnalité de contrôle / commande critique, caractérisé en ce qu'il comporte : - une couche matérielle (12) comportant une pluralité de calculateurs (Ci) connectés entre eux par au moins un réseau de communication (14,\n<CLM>\1\t; - une couche logicielle (13) comportant : - une pluralité de systèmes d'exploitation (24) temps réel, chaque calculateur exécutant un système d'exploitation ; - un intergiciel (26) distribué ; - au moins une première instance (A1.1) d'une application (A1) correspondant à ladite fonctionnalité de contrôle / commande critique, ladite première instance (A1.1) étant exécutée sur un premier calculateur (C1) et une second instance (A1.2) de ladite application, ladite seconde instance (A1.2) étant exécutée sur un second calculateur (C2) différent du premier calculateur, l'intergiciel fournissant : - un service de communication mettant en oeuvre un protocole de communication, dit protocole VSN pour « Virtual Safe Network », permettant l'établissement d'un canal sécurisé et authentifié entre la première instance (A1.1) et la seconde instance (A1.2) pour l'échange de messages de service cryptés entre la première instance et la seconde instance ; - un service de vérification d'alignement fonctionnel propre à calculer une signature pour la première instance (A1.1), respectivement la seconde instance (A1.2), à partir d'une pluralité de données contextuelles de la première instance (A1.1), respectivement de la seconde instance (A1.2), et propre à comparer entre elles les signatures de manière à déterminer si une instance est défaillante ; - un service d'isolement d'une instance défaillante parmi les première et seconde instances, identifiée par le service de vérification d'alignement fonctionnel, en utilisant l'autre instance , considérée comme valide, pour rompre le canal entre les première et seconde instances. 2.- Système embarqué selon la revendication 1, dans lequel les composants de la couche matérielle (12) sont des composants qui ne sont pas validés de manière à présenter un taux de défaillance déterminé. 3047862 24 3.- Système embarqué selon la revendication 1 ou la revendication 2, dans lequel l'intergiciel (26) comporte également un service de réamorçage de la redondance. 4.- Système embarqué selon l'une quelconque des revendications 1 à 3, dans 5 lequel le service de vérification d'alignement fonctionnel met en oeuvre un processus de vote entre les données de sortie générées par les première et seconde instances, les données de sortie constituant un type particulier de signature. 5.- Procédé de fonctionnement (200) d'un système embarqué selon l'une 10 quelconque des revendications 1 à 4, caractérisé en ce qu'il comporte les étapes consistant à : établir (210), lors de l'initialisation du système embarqué (10), un canal sécurisé et authentifié entre la première instance (A1.1) et la seconde instance (A1.2) d'une même application (A1), pour l'échange de messages de service 15 entre la première instance et la seconde instance ; puis, au cours du fonctionnement du système embarqué, vérifier (220) périodiquement l'alignement fonctionnel entre les première et seconde instances (A1.1 ; A1.2), en calculant une signature pour chaque instance à partir d'une pluralité de données contextuelles relative à l'instance 20 considérée, puis en comparant entre elles les signatures calculées ; et, en cas de désaccord entre les signatures, isoler (230) une instance considérée comme défaillante parmi les première et seconde instances, par rupture, par l'instance valide, du canal vers l'instance défaillante. 25 6.- Procédé de fonctionnement selon la revendication 5, dans lequel l'étape d'isolement est suivie d'une étape de rétablissement de la redondance requise par l'application (A1), consistant à : démarrer une nouvelle instance de l'application en redondance de 30 l'instance défaillante isolée et vérifier (240) que la nouvelle instance a démarré correctement et avec un paramétrage approprié ; si l'exécution de la nouvelle instance dépend de données de configuration contextuelles, recopier (250) les données d'une instance active de l'application ; exécuter (260) la nouvelle instance avec les données d'entrée appliquées 35 également à l'instance active de l'application, et vérifier l'alignement fonctionnel de 3047862 25 chaque instance de l'application ; et si aucune divergence n'est détectée pendant une durée prédéterminée, établir (270) un canal sécurisé entre la nouvelle instance et la ou chaque autre instance active de l'application. 5 7.- Procédé de déploiement (100) d'un système embarqué conforme à l'une quelconque des revendications 1 à 4, caractérisé en ce qu'il comporte, pour dimensionner ledit système embarqué (10) les étapes consistant à : - spécifier (110) les caractéristiques non-fonctionnelles de la ou de chaque 10 application à déployer sur le système embarqué ; - choisir (120), pour chaque application, un patron de déploiement spécifiant pour ladite application un ensemble d'attributs de sûreté de fonctionnement ; - déterminer le nombre d'instances associées à une application devant être exécutées sur le système embarqué à partir des patrons de déploiement choisis pour 15 l'application correspondante ; - dimensionner (130) les besoins calculatoires du système embarqué en fonction des caractéristiques non-fonctionnelles de chaque application et du nombre d'instances déterminé pour chaque application ; - déterminer (140,\n<CLM>\1\tun plan de déploiement à partir du nombre d'instances de 20 chaque application et des besoins calculatoires ; - dimensionner (160) le réseau de communication, en vérifiant que la charge du réseau est compatible avec le plan de déploiement et, - configurer (170) le système embarqué conformément au plan de déploiement. 25 8.- Procédé de déploiement selon la revendication 7, dans lequel l'étape de configuration du système embarqué (170) comporte : - le chargement de chaque instance de chaque application sur un calculateur associé conformément au plan de déploiement ; et, - l'implémentation des patrons de déploiement associés à chaque application par 30 configuration des services de l'intergiciel réparti (26) de la couche logicielle du système embarqué. 35