The Internet of Things, characterized by hardware heterogeneity, siloed hardware and software platforms that stifle interoperation, and systems that are distributed by nature, represents a challenging domain for application developers. Many industrial and academic efforts have produced tools seeking to remedy this situation, but they typically operate at a low level of abstraction centered on individual devices or give developers little control over the deployment and execution of their applications. Most IoT development frameworks are designed around the notion of integrating connected edge devices with cloud-based services, ignoring an intermediate collection of local resources, such as workstations and servers, that can help satisfy many applications' requirements while also protecting user privacy by keeping sensitive data off of the cloud. We propose a distributed IoT runtime system to assist developers in the creation, deployment, and management of their applications. This system is intended to incorporate edge devices, local resources, and cloud servers while also giving developers precise control over where and how their software is executed. We motivate our system through a case study accompanied by microbenchmarks, present a preliminary system design, and discuss the issues raised by our proposal.




Download Full History