The contradiction between the limited capability of lightweight Internet-of-Things (IoT) devices and ever-increasing user demands is a fundamental and challenging problem in the era of IoT. One of the most important challenges is that lightweight IoT devices are generally embedded with fixed applications on resource-constrained hardware, and cannot enable on-demand service provisioning. In this paper, we propose BOAT, a block-streaming application execution scheme based on transparent computing (TC), which can remotely retrieve the necessary parts of traditional applications from edge servers on demand and run them on IoT devices locally. Specifically, we first exploit TC to build a scalable IoT system, where the applications of lightweight IoT devices are stored in edge servers or cloud but can be dynamically loaded on IoT devices in a block-streaming way. Moreover, we present a code partition approach to split the codes of a whole service into numerous functional blocks at the edge side. Such that, IoT devices only need to load necessary blocks of an application to obtain the requested services without loading the whole application codes. A lightweight I/O virtualization mechanism and a fine-grained relocation technology are then developed to support the block-streaming service loading. Our experimental results on a lightweight wearable device demonstrate that the proposed scheme can efficiently achieve flexible service provisioning with improved scalability and reduced service loading delay and energy consumption.
Read full abstract