JerryScript & IoT.js : le Javascript pour l’IoT par Samsung

L’Internet des objets est en pleine croissance et les cabinets d’analystes révisent assez régulièrement leurs prévisions sur les investissements dans ce domaine en Europe occidentale. IDC vient de livrer un rectificatif et anticipe maintenant des dépenses de 145 milliards de dollars pour l’année 2016. Ces investissements comprennent les équipements, les logiciels, les services et la connectivité. Un succès qui ne se dément pas pour les prochaines années, dans les 4 ans qui viennent, le cabinet d’études envisage des investissements proches des 290 milliards de dollars.

Le grand public n’est pas oublié avec des dépenses attendues de 17,6 milliards de dollars. Les cas d’usage les plus concernés portent sur la domotique, avec les capteurs de chaleur, d’humidité, la consommation d’énergie, d’eau.

jerryscript
Signé Samsung, JerryScript est un interpréteur JavaScript compact et portable dédié aux microcontrôleurs. Une solution Open Source.

Le JavaScript a été popularisé sur les pages web, avant d’investir de nouveaux marchés, allant jusqu’à se faire une place sur les serveurs, via Node.js.

Samsung en propose maintenant une mouture dédiée aux objets connectés de la mouvance IoT (Internet of Things / Internet des Objets). JerryScript est un interpréteur JavaScript capable de fonctionner sur des microcontrôleurs disposant de peu de ressources physiques.

Léger

Moins de 200 Ko seront ainsi suffisants pour stocker cet outil (160 Ko en mode ARM Thumb-2), les besoins en RAM étant de moins de 64 Ko.

Cette solution utilise du bytecode et une machine virtuelle capable de l’exécuter. Une technique classique sur les machines disposant de peu de RAM, la transformation du code JavaScript en bytecode permettant de gagner en espace de stockage et de simplifier grandement le travail de l’interpréteur.

jerryscriptdesign

Portable

Écrit en C99, JerryScript se montre particulièrement portable et pourra être utilisé dans d’autres secteurs. Par exemple comme interpréteur embarqué au sein d’un applicatif tiers plus massif.

Les microcontrôleurs STM32F4 sont supportés, ainsi que les machines fonctionnant sous Linux. Samsung devrait toutefois prochainement proposer JerryScript sur ses modules Artik dédiés à l’Internet des Objets, ainsi que pour d’autres plates-formes IoT.

 

Le but des deux projets de Samsung est bien évidement de permettre aux développeurs JavaScript de créer des applications pour l’Internet des objets. Les dispositifs IoT ont des contraintes sévères en termes de performances du processeur et de la mémoire. C’est ce qui à poussé, Samsung a concevoir le moteur JerryScript pour fonctionner dans moins de 64KB de RAM et l’ensemble du code peut entrer  dans moins de 200Ko de ROM. L’exécution du code JavaScript sur JerryScript ressemble à ceci:

{
 jerry_init (JERRY_FLAG_ENABLE_LOG);

 char script [] = "print ('Hello, World!');";
 jerry_parse (script, strlen (script));

 jerry_run ();

 jerry_cleanup ();
}

iot.js

La plateforme IoT.js utilise JerryScript pour exécuter du code JavaScript et libuv pour les E/S asynchrones, et permet aux développeurs de créer des services IoT qui communiquent les uns avec les autres et avec le monde extérieur. IoT.js fonctionne actuellement sur Linux et NuttX – un système d’ exploitation en temps réel – et cible Raspberry Pi 2 et une carte ST , avec des plans pour d’ autres microcontrôleurs et périphériques IdO. L’ API fournit des fonctionnalités pour les buffers, console, events, GPIO, streams, timers, entre autres.

Les schémas suivants montrent l’architecture interne des applications JavaScript qui fonctionnent sur IoT.js / JerryScript. Et une comparaison au cas où vous déplacez la même application dans Node.js.

iotjs-arch

iotjs-node

Sources :
http://www.silicon.fr/jerryscript-javascript-internet-des-objets-154291.html#hSreWIfFqoi3lIJ9.99
http://www.silicon.fr/145-milliards-de-dollars-dinvestissements-dans-liot-en-2016-151701.html#TxytPR12OSWuwwHP.99
https://www.infoq.com/news/2015/08/iotjs-jerryscript-samsung

Sébastien Berten – Président Co-fondateur @ JS-Republic

JS-REPUBLIC est une société de services spécialisée dans le développement JavaScript. Nous sommes centre de formation agréé. Retrouvez toutes nos formations techniques sur notre site partenaire dédié au Training

No comments

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *