The problem of task allocation in the Internet of Things and the consensus-based approach
The realization of the Internet of Things (IoT) paradigm relies on the implementation of systems of cooperative intelligent objects with key interoperability capabilities. One of these interoperability features concerns the cooperation among nodes towards a collaborative deployment of applications taking into account the available resources, such as electrical energy, memory, processing, and object capability to perform a given task, which are often limited.In this paper, firstly, we define the issue related to resource allocation for the deployment of distributed applications in the IoT, and we describe the architecture and functionalities of a relevant middleware that represents a possible solution to this issue. Secondly, we propose a consensus protocol for the cooperation among network objects in performing the target application, which aims to distribute the burden of the application execution, so that resources are adequately shared. We demonstrate that, using the proposed protocol, the network converges to a solution where resources are homogeneously allocated among nodes. Performance evaluation of experiments in simulation mode and in real scenarios show that the algorithm converges with a percentage error of about 5% with respect to the optimal allocation obtainable with a centralized approach.