Difference between revisions of "VT2016 JerryScript"

From air
Jump to navigation Jump to search
Line 53: Line 53:
   
 
Toujours dans l'idée d'être accessible, Samsung a développé une plateforme qui permet de développer en JavaScript : IoT.js.
 
Toujours dans l'idée d'être accessible, Samsung a développé une plateforme qui permet de développer en JavaScript : IoT.js.
IoT.js est une version allégée de Node.js, interpréteur JavaScript dédié aux applications réseau. IoT.js permet une certaine compatibilité ascendate avec Node.js, c'est-à-dire que les applications développées avec Node.js sont compatibles avec IoT.js.
+
IoT.js est une version allégée de Node.js, interpréteur JavaScript dédié aux applications réseau. IoT.js permet une certaine compatibilité ascendante avec Node.js, c'est-à-dire que les applications développées avec Node.js sont compatibles avec IoT.js.
   
 
IoT.js est écrit en JavaScript et se base donc sur JerryScript pour l'interprétation. Il se base également sur une librairie d'évènements I/O asynchrone développée également par Samsung : libtuv.
 
IoT.js est écrit en JavaScript et se base donc sur JerryScript pour l'interprétation. Il se base également sur une librairie d'évènements I/O asynchrone développée également par Samsung : libtuv.

Revision as of 19:23, 26 November 2016

Présentation

  • Sujet : JerryScript et IoT.js
  • Auteur : Elsa Navarro
  • Enseignants : Didier DONSEZ, Georges-Pierre BONNEAU
  • Date : 25/11/2016

File:VT2016 JerryScript.png

Résumé

JerryScript et IoT.js sont deux projets développés par Samsung pour l'internet des objets (IoT). Ces deux projets sont complémentaires et permettent de développer des applications dédiées à l'IoT. Le but du projet développé par Samsung est de sensibiliser la grande communauté de développeurs JavaScript à l'IoT et de le rendre accessible à un plus grand nombre de développeurs.

  • JerryScript est un moteur JavaScript spécifique à l'IoT, c'est-à-dire qu'il respecte ses contraintes de mémoire, de performance et de portabilité.
  • IoT.js est une plateforme qui se base sur JerryScript et qui permet de développer des applications IoT en JavaScript.

Synthèse

JerryScript

JerryScript est un moteur JavaScript destiné à des objets petits et embarqués. Il a donc été soumis à différentes contraintes lors de son développement.

  • Mémoire

Pour toucher un maximum d'objets IoT, il est important de s'intéresser à l'espace de stockage (ROM) du dispositif. En effet, pour des raisons de place et de batterie la plupart des objets ne disposent pas de la même configuration qu'un ordinateur. Il a donc été envisagé par Samsung de développer un moteur capable tenir sur moins de 200 KB de mémoire. On peut également souligner le fait que JerryScript propose la technologie bytecode, qui permet d'embarquer sur l'objet connecté uniquement le code JavaScript compilé et donc d'obtenir un gain de place significatif.

  • Performance du système

Les objets connectés sont souvent accompagnés d'une faible performance CPU, ce qui a motivé Samsung à contraindre leur moteur JavaScript à tourner sur moins de 64KB de RAM.

  • Standard

JerryScript respecte la norme ECMAScript 5.1, c'est donc un interpréteur JavaScript standardisé.

  • Portabilité

JerryScript est écrit en C99 ce qui lui permet une très grande portabilité dans le domaine de l'IoT.

Voici un exemple d'utilisation de JerryScript pour JavaScript :

{
  jerry_init (JERRY_FLAG_ENABLE_LOG);

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

  jerry_run ();

  jerry_cleanup ();
}

Pour conclure, le but de Samsung étant de rendre l'IoT accessible à un maximum de développeurs, leur projet est OpenSource et disponible sur GitHub.

IoT.js

Toujours dans l'idée d'être accessible, Samsung a développé une plateforme qui permet de développer en JavaScript : IoT.js. IoT.js est une version allégée de Node.js, interpréteur JavaScript dédié aux applications réseau. IoT.js permet une certaine compatibilité ascendante avec Node.js, c'est-à-dire que les applications développées avec Node.js sont compatibles avec IoT.js.

IoT.js est écrit en JavaScript et se base donc sur JerryScript pour l'interprétation. Il se base également sur une librairie d'évènements I/O asynchrone développée également par Samsung : libtuv.

On peut donc schématiser le fonctionnement du langage de la façon suivante :

VT2016 NodeJS Structure.png

Améliorations & release

Samsung a donc apporté tout un environnement de développement dédié à l'IoT permettant de développer des applications en JavaScript avec JerryScript et IoT.js. Mais cet environnement n'est pas encore complet et de nombreuses amélioraitons sont encore à prévoir pour les prochaines release du projet.

Dans un premier temps, JerryScript ne fonctionne actuellement que sur les cartes STM32F4 et sur les machines linux, ce qui réduit considérablement leur champ d'action le but étant, à terme, de fonctionner sur un maximum d'objets. Dans la même optique, les performances seront optimisées à l'avenir tout comme la mémoire, afin d'être compétitif et performant dans le domaine de l'IoT.


Bibliographie

http://iotjs.net/ http://jerryscript.net/ https://github.com/Samsung/iotjs https://github.com/Samsung/jerryscript http://events.linuxfoundation.org/sites/events/files/slides/openiot-summit-2016-iotjs.pdf https://www.infoq.com/news/2015/08/iotjs-jerryscript-samsung https://www.youtube.com/watch?v=afSHg2-CPjo