Download PDF

Cross Layer Optimisation of Dynamic IoT Systems

Publication date: 2017-07-10

Author:

Ramachandran, Gowri Sankar

Abstract:

The Internet of Things (IoT) embeds sensors, actuators and computation into everyday "things" such as lights, thermostats, and coffee machines. These things can be controlled and monitored from remote locations by connecting them to Internet. The application development for IoT, however, is challenging because of the resource constraints of IoT platform, wireless communication demands, and dynamic nature of IoT applications. IoT devices have limited resources for computation, storage and communication. And, the wireless communication dominates the energy consumption in IoT devices. Since IoT applications are expected to last for long periods on a single battery, application developers has to optimise the resource usage, while fulfilling the desired application functionality. In addition, IoT applications are subject to run-time reconfigurations due to change in application requirements and the operational environment,. Such run-time reconfigurations alter the resource requirements of IoT platforms. In such cases, it is important to allocate the desired resources to ensure functional correctness. This dissertation contributes cross-layer optimisation approaches for IoT systems. Due to the proliferation of technologies for IoT system, this dissertation performs an empirical analysis of IoT operating systems and programming model. In order to choose the right programming model for dynamic IoT systems, an energy model is developed and evaluated in real-world IoT systems. Following the results of empirical analysis and the lessons learned from the energy model, this dissertation chooses a modular operating system extended with a middleware as the representative software platform. Real-world IoT deployments are employing both short range and long range communication technologies, which lead to the selection of these technologies for this dissertation. In IoT deployments, wireless communication is the major source of energy consumption, and it can be minimised using data aggregation approaches. Since the existing approaches for data aggregation are either application-specific or operates at the network layer, which makes the application developer to create new data aggregation approach for each application. This dissertation contributes Hitch Hiker, a generic application-aware data aggregation approach in the form of a prioritised binding model, which allow the application developer to classify the bindings as high and low priority. Low-priority traffic is than piggybacked with high-priority transmissions using the overlay network created by Hitch Hiker. This prioritised binding model provides developers with a low-effort mechanism to manage data aggregation, while minimising the energy consumption. The dynamic nature of IoT applications coupled with the traffic heterogeneity leads to sub-optimal bandwidth reservation in IoT networks. Over-provisioning bandwidth to account for the worst case increases energy consumption, while under-provisioning bandwidth results in packet loss. This dissertation contributes Dawn, an autonomous middleware for dynamic IoT systems. Dawn reserves bandwidth for IoT platforms taking into account their application requirements. Whenever there is an application reconfiguration, Dawn recomputes and allocate the optimal bandwidth to ensure both performance and energy-efficiency. To support further research in the area of dynamic IoT systems, this dissertation contributes an application and network layer testbeds. The application layer testbed is deployed in DR Congo to support development projects. This testbed allowed our colleagues to develop and deploy a smart fridge application for monitoring critical medical supplies such as blood and vaccines in Kikwit, DR Congo. Furthermore, a network layer testbed, DeltaIoT, is developed for assisting researchers working in the area of self-adaptive systems. Preliminary results of DeltaIoT shows that it is very useful experimentation of self-adaptive approaches in real-world systems.