Architecture for mixed criticality resource management in Internet of Things
We believe that the next big step in the field of Internet of Things (IoT) is to realize a virtual computing platform that provides access to heterogeneous group of device resources present in our living environments. By enabling 3rd party developers to access sensor and actuator resources present in a given environment in a same way they can access resources of a single mobile phone, the virtual computing platform would open a new market for the 3rd party IoT applications like the smart phones have done for mobile apps. To accomplish this vision, the virtual computing platform must be able to manage resource sharing between applications with differing criticality requirements for ensuring that the whole IoT system runs optimally. The main challenge is that the approach should be generic and extendable for future needs. To tackle this issue, we propose a two-level resource management architecture, where the necessary information about applications and resources are represented with machine-interpretable semantic descriptions based on the Semantic Web technologies. At the system level, these descriptions are used by the global resource manager for allocating resources to the applications based on their criticality and needs. At local level, each device is assigned with a local resource manager that schedules the access to resources provided by the device so that the performance of the more critical applications could be optimized at the expense of the less critical ones. To evaluate our approach in practice, we have implemented a reference implementation of the proposed architecture and demonstrated it through several applications with differing criticality levels. The results are very promising for managing mixed criticality applications in IoT.