archy13 - stock.adobe.com
Embarqué : MicroEJ, le spécialiste français de la virtualisation
Le spécialiste nantais MicroEJ a su se faire un nom avec sa technologie de virtualisation pour l’embarqué, un monde dans lequel l’adhérence entre le logiciel et le matériel ralentit traditionnellement les processus de développement.
Plus de 100 millions d’équipements IoT propulsés par sa technologie et pas moins de 35 millions de dollars de R&D. Voilà les chiffres que l’entreprise nantaise MicroEJ aime utiliser pour se présenter. La société fondée en 2004 s’est fait un nom auprès des spécialistes de la domotique, des concepteurs de produits grand public, mais aussi des industriels et des équipementiers automobiles. SEB, Leroy Merlin, Atlantic, Thales, Moulinex, Continental, Bosch, Siemens, EDF, Airbus et d’autres emploient ses solutions.
Ce spécialiste de l’embarqué développe deux produits intrinsèquement liés. Au centre de son dispositif se trouve MicroEJ VEE (pour Virtual Execution Environment), une technologie de conteneurisation à faible empreinte mémoire taillée pour différentes architectures matérielles (ARM Cortex, Renesas RX, Infineon Tricore, x86, Tensilica Xtensa, etc.).
« Sur le versant technique, la mission de MicroEJ est de proposer un conteneur logiciel permettant d’isoler les couches applicatives du reste de l’électronique », avance Régis Latawiec, COO de MicroEJ.
VEE, un conteneur pour les systèmes embarqués
VEE prend en charge les outils & compilateurs C du marché. Une couche d’abstraction s’exécutant sur différents RTOS (QNX, Zephir, FreeRTOS, ThreadX, etc.) accueille un processeur 32 bits virtualisé, nommé MEJ32. MicroEJ adapte les sets d’instructions ISA pour le rendre compatible avec les différentes architectures listées ci-dessus.
L’éditeur intègre deux types de librairies dans son conteneur. L’une inclut des outils C/asm/C++, pour intervenir sur les couches basses, ce que MicroEJ appelle la librairie fondation qui prend en charge le Board Support Package (BSP) et qui permet de programmer le comportement des drivers, du RTOS et des ports des appareils (Ethernet, module BLE, etc.).
Une autre librairie d'add-ons s'intègre par dessus la libraire fondation. Elle comprend les briques nécessaires pour gérer les interfaces REST, supporter le format JSON, administrer le chiffrement des données, disposer de Widgets, etc. Le tout est écrit en Java et la librairie est rassemblée dans un seul fichier JAR.
Régis LatawiecCOO, MicroEJ
Ces deux bibliothèques permettent de bâtir une application hébergée dans un environnement sandbox. Une application peut être composée en Java ou en JavaScript. Suivant leurs besoins, les développeurs peuvent sélectionner les packages stockés dans un dépôt central sur le site Web de MicroEJ.
« Nous dépassons un peu la notion de conteneur, c’est un environnement avec plusieurs fonctionnalités. Nous avons une sémantique d’exécution pour vérifier que le code s’exécute correctement. Nous avons un certain nombre d’API pour accéder à un cloud, à un composant matériel, un coffre-fort dédié aux clés de chiffrement et aux certificats, etc. », résume Régis Latawiec.
L’intérêt ? Rendre abordable à un plus grand nombre de programmeurs le développement embarqué, mais aussi favoriser la réutilisation du code applicatif.
« Les systèmes électroniques qui ne sont pas des smartphones, des serveurs ou des PC sont extrêmement fragmentés, très peu standards. S’il y a une adhérence entre l’application et l’électronique, cela crée des barrières pour utiliser des logiciels d’un produit à un autre », indique Régis Latawiec. « Les éditeurs et les équipementiers ont amené les notions de virtualisation et de conteneurisation sur des PC et des serveurs. Nous apportons exactement les mêmes concepts sur des produits beaucoup plus contraints, qui disposent de 1 à 2 MB d’espace de stockage ».
L’isolation, vecteur de sécurité selon MicroEJ
La sécurité de l’internet des objets est un sujet complexe, mais là encore MicroEJ pense pouvoir tirer son épingle du jeu.
« Notre conteneur isole l’application des fonctions primaires de l’objet, des ressources de l’OS et matériels pour ne pas les rendre accessibles à partir de l’application. Nous prenons le parti qu’un logiciel n’est pas très fiable », défend Régis Latawiec. « Nous allons pouvoir également observer le comportement de l’application. Si elle a un comportement suspect, par exemple, elle utilise beaucoup de mémoire ou de CPU, ce qui a un impact sur la durée de vie de la batterie, le système peut mettre en pause l’application, voire l’arrêter et complètement la désinstaller », poursuit-il.
« Cela a énormément d’importance dans l’IoT industriel parce que le crash d’une application a des coûts énormes en maintenance. Même dans le monde grand public pour des systèmes domotiques, le déplacement d’un technicien coûte entre 80 et 100 euros ».
Le multi-app pose un défi supplémentaire, mais les mécanismes embarqués dans les processeurs permettent d’isoler les applications des unes des autres, selon Régis Latawiec.
VEE est le runtime présent sur plus de 100 millions d’appareils conçus par les clients de MicroEJ. Les deux autres produits sont un SDK (et Studio, sa variante plus accessible) et Forge.
« Pour que nos clients installent ce runtime, le personnalisent et l’utilisent, nous avons un SDK. Il leur permet de manipuler la quarantaine de versions de conteneurs qui ont toutes la même spécification, mais des implémentations différentes suivant l’architecture matérielle », précise le COO.
Le SDK sert à déployer les contrôleurs logiciels des couches basses et VEE. « Ensuite, les développeurs vont pouvoir bâtir des applications comme il le ferait sur Android ».
« Simuler » les développements embarqués
Mais le SDK a une autre fonctionnalité. « Il permet de créer un simulateur, un “virtual device”. Ce virtual device sert à deux choses. La première c’est d’anticiper les développements avec des simulations et du prototypage afin de mieux définir les spécifications, de réduire les risques en prévoyant les problèmes ou en les résolvant très en amont d’un projet, assure Régis Latawiec. La deuxième chose, c’est que ce virtual device permet de continuer à développer du logiciel en parallèle de la fabrication de l’électronique.
« Habituellement dans l’embarqué, ces deux procédés sont séquentiels : pour pouvoir développer des applications, il faut d’abord le hardware et connaître ses spécifications détaillées. Avec un PC ou un serveur, les standards sont éprouvés. Nos clients développent des montres, des machines à laver ou tout autre système embarqué : cela n’a rien à voir », illustre Régis Latawiec. « Ici, les couches applicatives peuvent être développées en amont et en parallèle du cycle de développement du matériel ».
Régis LatawiecCOO, MicroEJ
Cette parallélisation des processus de conception permettrait de diviser par « deux à trois la durée de développement produit » pour les clients de MicroEJ.
Forge est une option. Historiquement, MicroEJ proposait des conteneurs « mono-application ». « Nous pouvons aussi fournir des conteneurs multiapplications. Ils incluent plusieurs sandbox pour accueillir des applications pouvant être chargées à partir d’une plateforme cloud. Forge est un back-end sur le cloud hébergé par nos clients ».
Ce back-end peut se connecter par exemple à un CRM pour gérer les abonnements à un service domotique et donner accès à certaines applications qui peuvent être chargées dans une gateway ou une centrale domotique. « Forge délivre les applications comme un App Store vers les produits pouvant être enrichis par le fabricant, ou qui permet à l’utilisateur final de télécharger une app ».
Amoindrir les effets de la pénurie
La domotique n’est qu’un seul cas d’usage. « La faible empreinte mémoire de VEE, quelques kilo-octets de mémoire, fait que nous avons des clients dans différents domaines », vante le COO.
Des fabricants de brosses à dents connectées, de smartwatches dédiées au sport, des objets connectés liés à la santé emploient les solutions de MicroEJ.
« Dans l’industrie, les fabricants de compteurs d’eau, de gaz et d’électricité font appel à nous. Ils ont des problématiques de séparation des applications, certaines certifiées, d’autres non. Les logiciels deviennent de plus en plus complexes. Ils ont également des défis de connexion sécurisée au cloud en sus d’une problématique de coût, car des dizaines de millions d’exemplaires de compteurs sont confectionnés par an », illustre Régis Latawiec.
Le fabricant d’imprimantes professionnelles Zebra, notamment celles installées et utilisées dans les zones d’expédition, recourt à MicroEJ pour y déployer des applications en Java.
« L’enjeu de ces équipementiers, c’est que les ventes se font par projet auprès de gros clients. Il faut que le dispositif et son logiciel répondent à un cahier des charges précis, ce qui demande de personnaliser les développements. Or, ils n’ont pas forcément les ressources humaines ou cela pèse trop sur leur coût », explique le COO. « Avec une solution comme la nôtre, ces fabricants peuvent proposer à leurs clients de faire appel à des prestataires afin de personnaliser les applications et ainsi déléguer le coût d’ingénierie. Pour le client final, cela revient au même ».
Oui, mais la crise sanitaire a provoqué une pénurie de semiconducteurs qui met à mal l’activité de bon nombre d’acteurs de l’embarqué, dont les fabricants automobiles et de produits grand public.
« La pénurie de semiconducteurs est un inconvénient pour nos clients puisqu’il y a moins de déploiement. Forcément, c’est moins intéressant pour nous. Mais en fait, c’est aussi une opportunité. Avec notre conteneur nous favorisons la réutilisation des assets logiciels qui ont été développés », assure Régis Latawiec.
« Nous avons des clients fabricants de produits grand public qui ont décidé de dupliquer l’implémentation de l’électronique afin de doubler les sources d’approvisionnements et d’améliorer les chances de mettre leurs produits en rayon. Ils ont pu récupérer les assets logiciels écrits avec MicroEJ. Au lieu que cette migration d’une plateforme matérielle à une autre réclame un an et demi, ces acteurs ont pu le faire en trois à quatre mois », vante-t-il.
Un engagement à long terme nécessaire
Cela ne dit en rien le coût d’une telle opération pour un fabricant. « MicroEJ est une société de propriété intellectuelle. Notre modèle économique repose sur un engagement pluriannuel avec nos clients », déclare Régis Latawiec.
« Nous vendons notre IP pour un usage sur plusieurs années parce que nos clients vont utiliser leurs assets logiciels à travers un certain nombre de produits. Cette approche est assez intéressante pour nos clients : ils bénéficient d’une visibilité sur le prix de la propriété intellectuelle, parfois jusqu’à 10 ans dans le monde industriel. Ces contrats à long terme créent davantage une relation entre partenaires industriels que de clients-fournisseurs. Le client a un intérêt à nous ouvrir sa feuille de route, à nous expliquer ses initiatives stratégiques pour que l’on puisse faire les bons investissements pour le servir et nous avons tout intérêt à répondre à ses futurs besoins pour éviter qu’ils remettent en cause notre solution. […] C’est quelque chose de très vertueux », assure-t-il.
Quid de la réversibilité ? « C’est un sujet très souvent abordé par nos clients, comme ils travaillent sur des cycles de développement qui durent trois à cinq ans, sur lesquels ils ne changeront pas leurs technologies, sauf coup dur. Au bout de trois à cinq ans, ils réfléchissent à un nouveau cycle. Et c’est là que ces clients renouvellent ou non leurs contrats avec nous », explique le COO.
Du même coup, cet engagement à long terme demande des évaluations approfondies. « Comme nos solutions sont au cœur des usines logicielles, la décision remonte en général au niveau des COMEX ». Techniquement, l’adhérence avec l’existant serait assez faible, selon Régis Latawiec.
Faire le pont avec le monde Android
En ce qui concerne sa feuille de route, MicroEJ compte ajouter de nouveaux langages de programmation orientés objet, en commençant par le support de Kotlin. « Notre moteur d’exécution supporte très bien Java et JavaScript. Et comme Kotlin est très proche de ces deux langages, nos tests se sont avérés concluants », indique Régis Latawiec.
Supporter Kotlin n’est pas anodin pour l’entreprise nantaise. Kotlin est porté par Google qui veut en faire le langage de référence pour le développement sur Android. « Certains de nos clients souhaitent obtenir une certaine interopérabilité entre le monde Android et le monde MicroEJ. Pourquoi ? Parce qu’ils veulent réutiliser du code dans un environnement beaucoup plus contraint, plus sobre en consommation énergétique en embarquant leurs applications sur VEE et des appareils moins puissants », constate le COO.
MicroEJ veut donc renforcer son partenariat technologique avec Google afin de favoriser le développement de « sous-ensemble de fonctionnalités qui peuvent à la fois s’exécuter sur Android et VEE ».
Commercialement, MicroEJ est également présent aux États-Unis et poursuit son développement en Allemagne, en Autriche, en Suisse, en Corée du Sud, au Japon, à Taiwan et en Chine. L’entreprise française a pour ambition de recruter une soixantaine de salariés supplémentaires pour atteindre 120 collaborateurs d’ici 2025.