License: Creative Commons Attribution 3.0 Unported license (CC BY 3.0)
When quoting this document, please refer to the following
DOI: 10.4230/LIPIcs.ECOOP.2018.18
URN: urn:nbn:de:0030-drops-92236
Go to the corresponding LIPIcs Volume Portal

Gascon-Samson, Julien ; Jung, Kumseok ; Goyal, Shivanshu ; Rezaiean-Asel, Armin ; Pattabiraman, Karthik

ThingsMigrate: Platform-Independent Migration of Stateful JavaScript IoT Applications

LIPIcs-ECOOP-2018-18.pdf (1 MB)


The Internet of Things (IoT) has gained wide popularity both in academic and industrial contexts. As IoT devices become increasingly powerful, they can run more and more complex applications written in higher-level languages, such as JavaScript. However, by their nature, IoT devices are subject to resource constraints, which require applications to be dynamically migrated between devices (and the cloud). Further, IoT applications are also becoming more stateful, and hence we need to save their state during migration transparently to the programmer. In this paper, we present ThingsMigrate, a middleware providing VM-independent migration of stateful JavaScript applications across IoT devices. ThingsMigrate captures and reconstructs the internal JavaScript program state by instrumenting application code before run time, without modifying the underlying Virtual Machine (VM), thus providing platform and VM-independence. We evaluated ThingsMigrate against standard benchmarks, and over two IoT platforms and a cloud-like environment. We show that it can successfully migrate even highly CPU-intensive applications, with acceptable overheads (about 30%), and supports multiple migrations.

BibTeX - Entry

  author =	{Julien Gascon-Samson and Kumseok Jung and Shivanshu Goyal and Armin Rezaiean-Asel and Karthik Pattabiraman},
  title =	{{ThingsMigrate: Platform-Independent Migration of Stateful JavaScript IoT Applications}},
  booktitle =	{32nd European Conference on Object-Oriented Programming  (ECOOP 2018)},
  pages =	{18:1--18:33},
  series =	{Leibniz International Proceedings in Informatics (LIPIcs)},
  ISBN =	{978-3-95977-079-8},
  ISSN =	{1868-8969},
  year =	{2018},
  volume =	{109},
  editor =	{Todd Millstein},
  publisher =	{Schloss Dagstuhl--Leibniz-Zentrum fuer Informatik},
  address =	{Dagstuhl, Germany},
  URL =		{},
  URN =		{urn:nbn:de:0030-drops-92236},
  doi =		{10.4230/LIPIcs.ECOOP.2018.18},
  annote =	{Keywords: JavaScript, Code Migration, Closures, IoT, Node.js}

Keywords: JavaScript, Code Migration, Closures, IoT, Node.js
Collection: 32nd European Conference on Object-Oriented Programming (ECOOP 2018)
Issue Date: 2018
Date of publication: 10.07.2018

DROPS-Home | Fulltext Search | Imprint | Privacy Published by LZI