12
Programmer les objets avec JavaScript et Hop.js Vincent Prunet Hop.js CEO & founder Hop.js - une startup Inria soutenue par l’incubateur PACA-EST

Programmer les objets avec JavaScript et Hop · Quelques applications développées avec Hop.js Smart Rollator Matia Foundation Companion Robot Ormylia Foundation Patient monitoring

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Programmer les objets avec JavaScript et Hop · Quelques applications développées avec Hop.js Smart Rollator Matia Foundation Companion Robot Ormylia Foundation Patient monitoring

Programmer les objets avecJavaScript et Hop.js

Vincent Prunet

Hop.js

CEO & founder

Hop.js - une startup Inria soutenue par l’incubateur PACA-EST

Page 2: Programmer les objets avec JavaScript et Hop · Quelques applications développées avec Hop.js Smart Rollator Matia Foundation Companion Robot Ormylia Foundation Patient monitoring

HétérogénéitéPlateformes

OutilsLangages

ComplexitéArchitecture distribuée

ProtocolesSécurité

Expérience utilisateur

EnjeuAgilité et time to marketMaîtrise technologique

Maîtrise du budget

Tous les métiers, ou presque, ont besoin d’IoT

BesoinSimplifier

Unifier

Edge CloudUtilisateur

Page 3: Programmer les objets avec JavaScript et Hop · Quelques applications développées avec Hop.js Smart Rollator Matia Foundation Companion Robot Ormylia Foundation Patient monitoring

JavaScript surMicro-contrôleur ?

CompétencesBibliothèquesEvènementsCopy and run

JavaScript pour IoT : une solution?

Standard sur client web

JavaScript serveur

Disponible sur passerelle

Page 4: Programmer les objets avec JavaScript et Hop · Quelques applications développées avec Hop.js Smart Rollator Matia Foundation Companion Robot Ormylia Foundation Patient monitoring

Espruino (2012) : le précurseur

JavaScript OS pour MCUExtensions en C et JavaScripttype ARM Cortex M3 …48kB RAM, 256kB Flashhttps://github.com/espruino

MatérielGamme de modules prêts à l’emploiProgrammables en JavaScripthttps://www.espruino.com

Pour les makers!

Page 5: Programmer les objets avec JavaScript et Hop · Quelques applications développées avec Hop.js Smart Rollator Matia Foundation Companion Robot Ormylia Foundation Patient monitoring

JerryScript (2014) : le fédérateur

Machine virtuelle JavaScriptConforme : ES 5.1Compact : pour MCU (64kB RAM, 200kB Flash)Portable : écrit en C, pour RTOS ou bare metal : Nuttx,

Tizen RT, mbed, Zephyr OS, Riot, Posix

Extensible : API C (livré sans extensions)

JS Foundation (origine Samsung et université de Szeged)http://jerryscript.nethttps://github.com/jerryscript-project/jerryscript

Le socle commun de tous les projets JS industriels

Page 6: Programmer les objets avec JavaScript et Hop · Quelques applications développées avec Hop.js Smart Rollator Matia Foundation Companion Robot Ormylia Foundation Patient monitoring

IoT.js (2015) : Environnement JS sur JerryScript

Version réduite de node.js pour MCUJerryScript, libtuvEcrit en C et JavaScriptOS Linux, Nuttx, Tizen RTMin 128kB RAM

STM32F4, Artik 5, Raspberry Pi

Projet Open Source de Samsunghttp://iotjs.nethttps://github.com/Samsung/iotjs

Le plus complet

Modules :fs, module, timer, event, net, http, …

Extensions I/O :ADC, BLE, GPIO, I2C, PWM, SPI, UART

Modules tiers compatibles

Page 7: Programmer les objets avec JavaScript et Hop · Quelques applications développées avec Hop.js Smart Rollator Matia Foundation Companion Robot Ormylia Foundation Patient monitoring

Les environnements JavaScript dédiés à un RTOS

mbed.js (ARM)

https://developer.mbed.org/javascript-on-mbed/JerryScript + mbedOS5Binding automatique des libs mbed Plus de 100 plateformes

Zephyr.js (Intel)

https://www.zephyrproject.org/community/blog/introducing-javascript-runtime-zephyr-oshttps://github.com/01org/zephyr.js

JerryScriptArduino 101, FRDM-K64F (NXP), nRF52

Couplage JavaScript/OS build

Page 8: Programmer les objets avec JavaScript et Hop · Quelques applications développées avec Hop.js Smart Rollator Matia Foundation Companion Robot Ormylia Foundation Patient monitoring

JavaScript pour passerelle IoT

Processeur applicatif ARM Cortex A, Intel, …

LinuxApplication Framework

(e.g. Legato)

Node.jsIoT.js

A développer:Liaisons HW et

Application Framework

Page 9: Programmer les objets avec JavaScript et Hop · Quelques applications développées avec Hop.js Smart Rollator Matia Foundation Companion Robot Ormylia Foundation Patient monitoring

Hop.js : environnement JavaScript distribué pour IoT

Multi-plateformes

Prêt à l’emploi

Pour le développement agile

Page 10: Programmer les objets avec JavaScript et Hop · Quelques applications développées avec Hop.js Smart Rollator Matia Foundation Companion Robot Ormylia Foundation Patient monitoring

Caractéristiques de Hop.js

Langage de programmation

JavaScript étendumulti-tiers

Syntaxe HTMLServices distribués

Server events

API communes à toutes les

plateformes

Environnement d’exécution

Serveur (linux, Posix)moteur JS, workersserveur http natifWebSockets nativescompilateur

Clienttout client web JSMCU JavaScript

Interopérabilité

API node.jsNPM packages

Frameworks client

Web servicesclient ou serveur

Page 11: Programmer les objets avec JavaScript et Hop · Quelques applications développées avec Hop.js Smart Rollator Matia Foundation Companion Robot Ormylia Foundation Patient monitoring

Quelques applications développées avec Hop.js

Smart RollatorMatia Foundation

Companion RobotOrmylia Foundation

Patient monitoringCHU Nice

Page 12: Programmer les objets avec JavaScript et Hop · Quelques applications développées avec Hop.js Smart Rollator Matia Foundation Companion Robot Ormylia Foundation Patient monitoring

Roadmap Hop.js

Hop.js pour Linux, PC et SBChttp://hop.inria.fr

https://github.com/manuel-serrano/hop

Hop.js pour STM32F4 DiscoveryHop.js pour MangoH (Linux + Legato)

Autres plateformes MCU : nous [email protected]

A venir :Developer Studio

Composants logiciels métier

Hop.js recrute!