WARBLE: Programming Abstractions for Personalizing Interactions in the Internet of Things
Yosef Saputra, Jie Hua, Nathaniel Wendt, Christine Julien, Gruia-Catalin Roman · 2019
Advances in sensing and networking along with ubiquitous Internet connectivity have paved the way for today's massive Internet of Thing (IoT) market. Despite the vast potential of connecting to myriad devices across homes, office buildings, and public spaces, there is still a large need to unify the scattered protocols, hubs, and cloud services while personalizing enduser experiences. Enabling personalized IoT experiences requires an expressive and flexible middleware that enables simplified development of applications that address diverse individual needs and seamlessly cross multiple vendors and administrative domains. We introduce Warble: a middleware for such personalized IoT applications; Warble encapsulates device and protocol complexities, represents interaction with IoT devices as flexible programming abstractions, and enables applications to learn from their prior interactions in the IoT on behalf of their users. In this paper, we present Warble's architectural abstractions, API, and implementation. We then evaluate the middleware through a case study application using our Android implementation; this evaluation showcases the novelty of the Warble architecture and its programming abstractions.