2021腾讯数字生态大会直播预约通道开启!技术内容大爆发,开发者必看! 了解详情
写点什么

三星电子打造基于 JavaScript 和 Node.js 的 IoT.js 平台

2015 年 8 月 12 日

最近几年,物联网技术开始得到各大国际公司的重视,并迅速发展,由此诞生了各种物联网产品。未来,物联网势必会为人们生活和工作带来巨大改变。根据 IDC 公司的分析报告,IoT 技术及服务到 2020 年在全球的开支将达到 8.9 万亿。但是,在迅速发展的同时,物联网发展仍然面临着很多挑战。其中之一就是如何把应用或服务轻松部署到不同的设备中。根据以往服务器、桌面和手机等设备中跨平台应用程序部署的经验,一个十分高效的方法就是在设备中支持 JavaScript 。这样,基于 JavaScript 的应用就可以轻松运行在不同的设备中。然而,JavaScript 运行时需要耗费大量的内存和计算资源,并不适合资源有限的嵌入式设备。为此,三星电子最近开始进行基于JerryScript 和Node.js 的IoT.js 项目的研究。接下来,本文就对该项目进行简要介绍。

IoT.js 平台由轻量化 JavaScript 引擎—— JerryScript 构成,是轻量级的 Node.js
首先,JerryScript 是三星电子提出的另外一个开源项目。JavaScript 虽然能够很好的支持跨平台应用,但它一般都需要比较多的内存和计算资源。这样,该技术就很难应用到灯泡或者温度计等轻量化的物联网设备中。因此,JerryScript 这一轻量化的 JavaScript 引擎被提出。JerryScript 同样以 JavaScript 应用作为输入。其主要特点在于面向嵌入式物联网设备,试图在资源受限(RAM 资源小于 64KB、存储代码的 ROM 空间小于 200KB)的环境下运行 JavaScript 应用。而且,JerryScript 引擎支持设备中编译和执行,并提供对外围设备的访问。目前,该项目已经托管在 GitHub 中。用户只需要下载源代码,进行编译即可调用相应的 API ,执行程序的相关功能。另外一方面,Node.js 是一个基于 Chrome JavaScript 运行时建立的服务器端平台, 用于方便地搭建响应速度快、易于扩展的网络应用。Node.js 所使用的事件驱动、非阻塞 I/O 模型使得其轻量和高效,从而可以很好的用于跨分布式设备的数据密集型实时应用程序。

通过以上分析可以看出,JerryScript 提供了在资源受限的物联网设备中执行 JavaScript 应用的引擎,但无法支持服务器端的服务;Node.js 虽然提供了 JavaScript 的服务器端平台,却需要消耗较多的计算和内存资源。因此,二者都无法支持物联网设备中的 JavaScript 服务器端平台。为了解决这一问题,IoT.js 项目被提出。在 JerryScript 和 Node.js 的基础上,IoT.js 项目旨在提供 IoT 世界中基于网页技术的互操作平台。该平台利用 JerryScript 来运行 JavaScript 代码,并利用 libuv 进行异步 I/O。其目标是在只有若干 KB RAM 资源的微型控制器或其他设备上正常运行。这样,绝大部分物联网设备就可以支持 IoT.js,从而运行不同的服务。目前,IoT.js 可以运行在 Linux 系统和实时嵌入式操作系统 NuttX 上。其面向的设备包括 Raspberry Pi 2 and ST 开发板。

此外,IoT.js 与现存的技术是完全兼容的。开发人员完全可以利用现在的开发方法来轻松开发 IoT 版本的应用。而且,IoT.js 项目是开源的,代码托管在 GitHub 中。三星电子软件中心的副主管 Kyeongwoon Lee 表示,公司希望通过 IoT.js 项目来增强更多设备间的互操作性。同时,开源方式表明三星希望能够与软件开发人员一起来进行 IoT.js 项目研究。

除了 IoT.js 和 JerryScript 项目,三星电子还在可穿戴设备 Gear 系列、 ARTIK 系列的 IoT 模块以及智能电视等方面进行IoT 技术的研发。通过这些项目,该公司正在积极增强物联网设备的互操作性。这些设备涵盖了从家用电器、手机和电视等复杂的电子设备到灯泡、温度计、开关和传感器等小型设备。最终,这些互连的设备可以让人们享受更加智能、便捷的生活。


感谢徐川对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群)。

2015 年 8 月 12 日 18:243634
用户头像

发布了 268 篇内容, 共 105.0 次阅读, 收获喜欢 20 次。

关注

评论

发布
暂无评论
发现更多内容

工厂模式——这一篇真够了

海星

Java 架构 面试 设计模式 工厂模式

Jenkins 插件开发之旅:两天内从 idea 到发布(上篇)

donghui

DevOps jenkins jenkins-plugin

露营之美,在乎山水之间也

李冬梅

k8s上运行我们的springboot服务之——在linux安装docker并搭建docker私服

柠檬

Docker k8s

k8s上运行我们的springboot服务之——上传服务到docker私服

柠檬

Docker springboot

真香!谷歌终与美国国防部合作,签署百万美金云服务合同

神经星星

云计算 互联网巨头 互联网 谷歌Google

系统化服务构建-调用链管理

图南日晟

微服务 全链路监控 链路追踪

2020年4月云主机性能评测报告

博睿数据

云计算 百度云 ucloud 性能测试 公有云

Neo4j执行计划

脚动两轮男之漂流小王子

Jenkins 插件开发之旅:两天内从 idea 到发布(下篇)

donghui

DevOps jenkins jenkins-plugin

一文搞懂RSA算法

somenzz

投机者

Neco.W

投机 口罩 头盔 投机者

你不知道的JSON.stringify(上)

前端黑板报

Java json

如何参与开源项目

郭旭东

GitHub 开源

DDD 实践手册(番外篇: 事件风暴-实践)

Joshua

领域驱动设计 DDD 事件风暴 事件驱动 Event Storming

k8s上运行我们的springboot服务之——k8s 1.16.0安装

柠檬

k8s

H2 的全文检索功能

Page

全文检索 lucene H2 内存数据库

奈学教育分享:Hadoop分布式系统HDFS工作原理

奈学教育

hadoop hdfs 分布式

【有奖调研】大数据与人工智能从业者有奖需求用研

Apache Flink

大数据 flink 流计算 实时计算 大数据处理

职场“潜”规则(二)

俊毅

职场 感悟 个人提升 人才

那个业务大拿死在了这个地方

小眼睛聊技术

Java 学习 高效工作 程序员 个人成长

1分钱秒杀!疫情季,如何为孩子的升学保驾护航?

极客编

JVM源码分析之堆内存的初始化

猿灯塔

职场提问的“唐太宗”原则

大伟

游戏夜读 | 数据整理的难题?

game1night

北大学子手写实现《统计学习方法》书中全部算法!

GitHubDaily

人工智能 GitHub 学习 程序员

unittest框架

Flychen

Python 自动化测试 unittest

聊一聊采访外籍人员时需要注意的几点事项

李冬梅

态度 体验 感悟

招联金融助力经济复苏 致力成为“智慧生活的消费金融专家”

极客编

Java 简介

编号94530

Java jdk java简介 jdk8

系统服务构建-BFF 助力前后端分离

图南日晟

php 微服务 BFF

英特尔On技术创新峰会

英特尔On技术创新峰会

三星电子打造基于JavaScript和Node.js的IoT.js平台-InfoQ