Joseph Sifakis, Prix Turing : "il faut réduire les coûts de production des systèmes embarqués "
Rencontre avec le Prix Turing 2007, Joseph Sifakis, directeur de recherche au CNRS, qui parle à l'occasion de l'Embedded Systems Week à Grenoble, des particularités de la programmation de l'embarqué et des contraintes du marché.
LeMagIT : Existe-t-il plusieurs types de systèmes embarqués ?
Joseph Sifakis : Il existe plusieurs types de logiciels embarqués. Ceux critiques et d'autres moins critiques, et entre les deux, les méthodes de développement diffèrent.
Dans l'embarqué, il ya de fortes exigences de fiabilité et une nécessaire bonne gestion des ressources qui marquent une rupture vis à vis de logiciels plus traditionnels.
On remarque plusieurs écoles dans le logiciel embarqué. On ne développe pas de la même manière s'il s'agit d'Airbus ou pour un téléphone portable, même si sur ce dernier appareil, il existe de vraies problématiques d'optimisation. On les appelle les systèmes « Best effort », ceux où on ne va pas chercher la pleine disponibilité du service à 100%, parce qu'on peut finalement facilement le restaurer.
LeMagIT : Quels sont les défis de l'embarqué ?
J.S : Avoir des systèmes embarqués critiques à des coûts raisonnables. Il existe des blocages dans le domaine des voitures, car aujourd'hui intégrer la technologie des avions dans les autos coûte trop cher. Même constat pour les applications médicales ou encore la robotique. L'enjeu est donc de réduire les coût de production pour les systèmes embarqués critiques.
Un autre défi pourrait également être "comment intégrer des systèmes embarqués avec des caractéristiques techniques différentes tout en assurant des services globaux ?". Comment intégrer le logiciel que vous avez dans votre voiture avec celui qui se trouve chez vous en quelque sorte. Un vrai problème lié à l'Internet des objets et à l'interopérabilité.
Enfin, un défi réside également dans la sécurité et la sureté. Lorsqu'on reçoit des données, mais que l'on ferme une boucle. Dans ce cas, il faut vérifier que les manipulations qu'on opère sont bien réalisées. Un véritable défi quand on sait que l'infrastructure actuelle est pleine de trous de sécurité. Tant que l'on télécharge des documents, tout se passe bien, mais si vous contrôlez la production d'une usine ou que vous interagissez avec des appareils critiques, il faut prendre un certain nombre de précautions.
LeMagIT : Où se situe le marché ?
J.S : Le marché est partout. Mais certains segments sont plus avancés que d'autres. Dans le médical, par exemple, pour suivre des patients chez eux, on a l'ensemble des éléments technologiques pour le faire. Le patient est localisé chez lui, on transmet des données à un médecin à l'hôpital qui peut suivre en temps réel son patient. Le marché est évident d'autant qu'il peut aider à réaliser des économies d'échelle énormes.
Reste ensuite à déterminer si la personne qui transmet ses données est la bonne personne référencée à l'hôpital. Comment identifier la responsabilité des personnes qui prennent des décisions ? Des problèmes juridiques sont également présents. Côté technologie, nous sommes devant un mur et il va falloir passer par les certifications pour l'abattre.
Il y a aussi le marché des services globaux, qui repose sur la gestion de l'énergie. Comme par exemple le SmartGrid. On aura plusieurs fournisseurs d'énergie, y compris les particuliers, toute la question est alors de savoir comment coordonner la consommation des appareils domestiques en fonction de la source.
LeMagIT : Quelles sont les exigences de la programmation de systèmes embarqués ?
J.S : Il existe un certain nombre d'exigences techniques pour l'embarqué. Je ne peux pas aller rebooter parce que le système est caché, y compris s'il est planté ! autres exigences la réactivité et l'autonomie. Cette dernière implique une bonne gestion de la mémoire et in fine, une bonne gestion de l'énergie que le développeur doit apprendre à maîtriser. L'écriture de lignes de code pour l'embarqué est très rigoureuse. Dans les systèmes critiques – comme par exemple un système pour Airbus -, cela repose sur des règles de programmation. Au regard de la criticité, une ligne de code dans l'embarqué peut couter jusqu'à 10 fois plus cher !
Ces règles existent pour apporter de la transparence au code. Quand on reprend le code, on comprend ce qu'il fait. Il est de plus certifié et fortement documenté. Dans un logiciel commercial, le code est souvent illisible.
L'ensemble nécessite également de la sécurité – on se prémunie contre la malveillance – et de la sureté – les appareils ne font pas d'erreurs.
Dans cette même perspective, on ne peut également pas utiliser le même OS dans l'embarqué critique que dans les ordinateurs grand-public. Donc les industriels de l'embarqué bénéficient d'une opportunité de développer d'autres technologies.
D'ailleurs l'Europe est très bien positionnée sur ce segment. Et si la masse critique était atteinte, l'Europe aurait sa carte à jouer.
LeMagIT : La forte imbrication entre le matériel et le logiciel engendre-t-elle des contraintes?
J.S : L'imbrication entre le hard et le soft, qui constitue l'un des points clé de l'embarqué, va se durcir de plus en plus avec le multi-coeur. Aujourd'hui, lorsque la plate-forme cible a plusieurs processeurs, on utilise des méthodes empiriques pour prendre en compte la bonne gestion des ressources.
Mais avec quelques centaines de processeurs, il va falloir automatiser ce processus. Et actuellement, on ne sait pas le faire. Aujourd'hui par exemple, je ne sais pas prévoir le comportement dynamique d'une application, à savoir "comment va-t-elle réagir si je la change de plate-forme matérielle ?". On ne connait pas à l'avance les temps d'exécution, par exemple. Vous implémentez le logiciel, qui est un ensemble de fonctions, sur du matériel, il va tourner plus ou moins vite selon la plate-forme d'exécution. Ce n'est pas important pour un portable ou pour un serveur, mais cela est très important pour l'embarqué ! Par exemple, ma télé reçoit des frames que le logiciel embarqué doit afficher selon un rythme particulier. Ce rythme peut différer selon le matériel sur lequel le logiciel est installé. On parle alors du caractère non-déterministe des plate-formes car il y a beaucoup d'imprévus. Et les temps de réaction peuvent varier de 1 à 300 !!
Là encore, les européens ont un vrai savoir-faire en la matière pour maîtriser ces processus extra-fonctionnel. Des méthodes que n'ont pas les développeurs classiques.
LeMagIT : Existe-t-il des éditeurs clé ?
J.S : Le marché de l'embarqué est relativement fragmenté. Même dans le domaine du critique, les technologies diffèrent d'un secteur à l'autre. Les systèmes critiques dans l'avionique ne sont pas les mêmes que dans l'automobile. Il n'y a pas d'unification, notamment parce que les éditeurs travaillent sur des niches. On développe des solutions propres à chaque secteur. Le middleware Autosar en est une illustration [AUTomotive Open System Architecture, une architecture logicielle standardisée et ouverte pour les voitures, développée par un groupement d'industriels du secteur automobile, NDLR]. Donc applicatifs et infrastructure demeurent encore très spécifiques.
L'unification pourrait venir de standards par exemple. On aurait des outils et des méthodes plus généraux. Mais il y a aussi un risque pour l'Europe de voir un gros éditeur émergé, comme IBM par exemple. Aujourd'hui il n'y a quasiment pas de marché pour les outils de développement de systèmes. Et surtout pas de grands acteurs. Si standardisation il y a, le marché suivra. Et cela créera certainement un danger pour l'Europe.