JerryScript e IoT.js: Javascript para IoT da Samsung

A Internet das Coisas está crescendo rapidamente e as empresas de análise revisam regularmente suas previsões sobre investimentos nessa área na Europa Ocidental. A IDC acaba de entregar uma correção e agora prevê gastos de 145 bilhões de dólares para o ano de 2016. Esses investimentos incluem equipamentos, software, serviços e conectividade. Um sucesso inegável para os próximos anos, nos próximos 4 anos, a empresa de pesquisa considera investimentos próximos de 290 bilhões de dólares.
O público em geral não é esquecido com gastos esperados de US$ 17,6 bilhões. Os casos de uso mais preocupados dizem respeito à automação residencial, com sensores de calor, umidade, energia e consumo de água.
Jerryscript
Assinado Samsung, JerryScript é um interpretador JavaScript compacto e portátil dedicado a microcontroladores. Uma solução de código aberto.
O JavaScript foi popularizado em páginas da web, antes de investir em novos mercados, chegando a encontrar um lugar em servidores, via Node.js.
A Samsung agora oferece uma versão dedicada a objetos conectados do movimento IoT (Internet of Things/Internet of Objects). JerryScript é um interpretador JavaScript capaz de rodar em microcontroladores com poucos recursos físicos.
luz
Menos de 200 KB serão, portanto, suficientes para armazenar esta ferramenta (160 KB no modo ARM Thumb-2), sendo os requisitos de RAM inferiores a 64 KB.
Esta solução utiliza bytecode e uma máquina virtual capaz de executá-lo. Uma técnica clássica em máquinas com pouca memória RAM, a transformação do código JavaScript em bytecode economiza espaço de armazenamento e simplifica muito o trabalho do interpretador.
design de jerryscript
Portátil
Escrito em C99, o JerryScript é particularmente portátil e pode ser usado em outros setores. Por exemplo, como um interpretador incorporado em um aplicativo de terceiros mais massivo.
Microcontroladores STM32F4 são suportados, assim como máquinas rodando Linux. No entanto, a Samsung deve oferecer em breve o JerryScript em seus módulos Artik dedicados à Internet das Coisas, bem como para outras plataformas de IoT.
 
O objetivo dos dois projetos da Samsung é obviamente permitir que os desenvolvedores de JavaScript criem aplicativos para a Internet das Coisas. Os dispositivos IoT têm restrições severas de desempenho de CPU e memória. Foi isso que levou a Samsung a projetar o mecanismo JerryScript para rodar em menos de 64 KB de RAM e todo o código pode caber em menos de 200 KB de ROM. A execução do código JavaScript no JerryScript se parece com isso:

{
 jerry_init (JERRY_FLAG_ENABLE_LOG);
 char script[] = "print('Olá, Mundo!');"; jerry_parse(script, strlen(script)); jerry_run(); jerry_cleanup(); }

IoT.JS
A plataforma IoT.js usa JerryScript para executar código JavaScript e libuv para E/S assíncrona e permite que os desenvolvedores criem serviços de IoT que se comunicam entre si e com o mundo exterior. O IoT.js atualmente roda em Linux e NuttX – um sistema operacional em tempo real – e tem como alvo Raspberry Pi 2 e uma placa ST, com planos para outros microcontroladores e dispositivos IoT. A API fornece funcionalidades para buffers, console, eventos, GPIO, streams, timers, entre outros.
Os diagramas a seguir mostram a arquitetura interna de aplicativos JavaScript executados em IoT.js/JerryScript. E uma comparação caso você mova o mesmo aplicativo para o Node.js.
arco iotjs
nó iotjs
Fontes:
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 – Presidente Cofundador @ JS-Republic
[separator type=”” size=”” icon=”star”] [actionbox color=”default” title=”” description=”JS-REPUBLIC é uma empresa de serviços especializada em desenvolvimento JavaScript. Somos um centro de treinamento aprovado. Encontre todos os nossos treinamentos técnicos em nosso site de parceiros dedicado ao Treinamento” btn_label=”Nosso treinamento” btn_link=”http://training.ux-republic.com” btn_color=”primary” btn_size=”big” btn_icon=”star” btn_external ="1″]