Responsive Decentralized Composition of Service Mashups for the Internet of Things
Abstract
Applications envisioned for the Internet of Things (IoT) would generally have to fulfill their design goals by mashing up devices and digital services in a manner that is both flexible, such that they can adapt to dynamic environments, and responsive, such that they can react to sensor and user input in a timely fashion. Most existing approaches for the development of IoT applications rely on precompiled mashups that are highly responsive, but inflexible due to their static nature. At the other end of the spectrum, fully automatic composition of services results in IoT mashups that are highly flexible, but responsive only for small numbers of IoT services. This paper presents a middle ground approach: goal-driven software agents are equipped with precompiled mashups and cooperate with one another to compose their mashups at runtime in pursuit of their goals. Agents are interconnected via relations that enable them to discover and interact with one another in a flexible manner. To support our approach, we provide an open-source platform that facilitates application development. We used this platform to implement a realistic IoT application that achieves its design goal by mashing-up multiple heterogeneous devices at runtime. Evaluation results suggest that applications remain responsive when scaling to many devices and for relatively large mashup compositions.