当前位置: X-MOL 学术Softw. Pract. Exp. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
ThingsMigrate: Platform‐independent migration of stateful JavaScript Internet of Things applications
Software: Practice and Experience ( IF 3.5 ) Pub Date : 2020-12-05 , DOI: 10.1002/spe.2936
Kumseok Jung 1 , Julien Gascon‐Samson 2 , Shivanshu Goyal 1 , Armin Rezaiean‐Asel 1 , Karthik Pattabiraman 1
Affiliation  

The Internet of Things (IoT) has gained wide popularity both in academic and industrial contexts. Unlike traditional embedded devices with specialized firmwares, modern IoT devices accommodate general‐purpose operating systems, allowing developers to run more sophisticated applications written in high‐level languages like JavaScript. Because IoT devices are subject to resource constraints like available battery power, we need to dynamically migrate a running process between different devices to prevent losing state. However, it is challenging to apply migration techniques using memory snapshots across the heterogeneous pool of IoT devices. We present ThingsMigrate, a middleware providing platform‐independent migration of JavaScript processes across IoT devices. Prior to execution, ThingsMigrate instruments the source code of a given program to expose its internal state. During run‐time, the transformed program produces on demand a JSON snapshot of its current state, from which new code is generated to resume execution. Thus, ThingsMigrate enables process migration entirely in the application space without any modifications to the underlying virtual machine (VM), providing VM‐independence. We present three versions of ThingsMigrate, each building on the previous to optimize for run‐time latency and memory consumption. We report on the experience of building each successive version and discuss the insights gained and the learning outcomes. We evaluated ThingsMigrate against standard benchmarks, over two IoT platforms and a cloud‐like environment. We show that it can migrate even highly CPU‐intensive applications, with average run‐time latency overhead of 33% and memory overhead of 78%. ThingsMigrate supports multiple subsequent migrations without introducing additional overhead over each subsequent migration.

中文翻译:

ThingsMigrate:独立于平台的有状态 JavaScript 物联网应用程序迁移

物联网 (IoT) 在学术界和工业界都广受欢迎。与具有专用固件的传统嵌入式设备不同,现代物联网设备支持通用操作系统,允许开发人员运行使用 JavaScript 等高级语言编写的更复杂的应用程序。由于物联网设备受到可用电池电量等资源限制,我们需要在不同设备之间动态迁移正在运行的进程以防止丢失状态。然而,在异构物联网设备池中应用使用内存快照的迁移技术具有挑战性。我们介绍 ThingsMigrate,这是一个中间件,提供跨 IoT 设备的 JavaScript 进程的平台独立迁移。在执行之前,ThingsMigrate 检测给定程序的源代码以暴露其内部状态。在运行时,转换后的程序按需生成其当前状态的 JSON 快照,从中生成新代码以恢复执行。因此,ThingsMigrate 可以完全在应用程序空间中进行进程迁移,而无需对底层虚拟机 (VM) 进行任何修改,从而提供 VM 独立性。我们展示了 ThingsMigrate 的三个版本,每个版本都建立在前一个版本的基础上,以优化运行时延迟和内存消耗。我们报告了构建每个连续版本的经验,并讨论了获得的见解和学习成果。我们在两个物联网平台和一个类似云的环境中根据标准基准对 ThingsMigrate 进行了评估。我们表明它甚至可以迁移高度 CPU 密集型的应用程序,平均运行时延迟开销为 33%,内存开销为 78%。ThingsMigrate 支持多个后续迁移,而不会为每个后续迁移引入额外的开销。
更新日期:2020-12-05
down
wechat
bug