ThingsJS: Towards a Flexible and Self-Adaptable Middleware for Dynamic and Heterogeneous IoT Environments

Julien Gascon-Samson, Mohammad Rafiuzzaman, and Karthik Pattabiraman, Workshop on Middleware and Applications for the Internet of Things (m4IoT), co-held with the 2017 Middleware Conference. [ PDF | Talk ] (ThingsJS code)

Abstract: The Internet of Things (IoT) has gained wide popularity both in academic and industrial contexts. Nowadays, such systems exhibit many important challenges across many dimensions. In this work, we propose ThingsJS, a rich Javascript-based middleware platform and runtime environment that abstracts the inherent complexity of such systems by providing a high-level framework for IoT system developers, built over Javascript. ThingsJS abstracts several large-scale distributed systems considerations, such as scheduling, monitoring and self-adaptation, by means of a rich constraint model, a multi-dimensional resource prediction approach and a SMT-based scheduler to properly schedule and manage the execution of high-level, large-scale distributed applications on heterogeneous physical IoT devices. ThingsJS also provides a rich inter-device communication framework built on top of the widely-used publish/subscribe/MQTT paradigm. Finally, ThingsJS also proposes a rich inter-device Javascript-based code migration framework to support the transparent migration of live IoT components between heterogeneous devices.