Optimizing Elastic IoT Application Deployments,

Vögler, Michael and Schleicher, Johannes M. and Inzinger, Christian and Dustdar, Schahram

Applications in the Internet of Things (IoT) domain need to integrate and manage large numbers of heterogenous devices. Traditionally, such devices are treated as external dependencies that reside at the edge of the infrastructure and mainly transmit sensed data or react to their environment. Recently however, a fundamental shift in the basic nature of these devices is taking place. More and more IoT devices emerge that are not only simple sensors or transmitters, but provide limited execution environments. This opens up an opportunity to utilize this previously untapped processing power in order to offload parts of the application logic directly to these edge devices. To effectively exploit this new type of device, the design of IoT applications needs to change to explicitly consider devices that are deployed in the edge of the infrastructure. This will not only increase the overall flexibility and robustness of IoT applications, but also reduce costs by cutting down expensive communication overhead. Therefore, to allow the flexible provisioning of applications whose deployment topology evolves over time, a clear separation of independently executable application components is needed. In this paper, we present a framework for the dynamic generation of optimized deployment topologies for IoT cloud applications that are tailored to the currently available physical infrastructure. Based on a declarative, constraint-based model of the desired application deployment, our approach enables flexible provisioning of application components on edge devices deployed in the field. Using our framework, applications can furthermore evolve their deployment topologies at runtime in order to react on environmental changes, such as changing request loads. Our framework supports different IoT application topologies and we show that our solution elastically provisions application deployment topologies using a cloud-based testbed.