Developing Agent-Based Smart Objects for IoT Edge Computing
Software agents have been exploited to handle the inherent dynamicity in the Internet of Things (IoT) systems, as agents are capable of autonomous, reactive and proactive operation in response to changes in their local environment. Agents, operating at the network edge, enable leveraging cloud resources into the proximity of the user devices. However, poor interoperability with the existing IoT systems and the lack of a systematic methodology for IoT system development with the agent paradigm have hindered the utilization of software agent technologies in IoT. In this paper, we describe the development process and the system architecture of a mobile crowdsensing service, provided by an agent-based smart object that comprises agents in both edge and user devices. Mobile crowdsensing is an example of such an application that relies on large-scale participatory sensor networks, where participants have active roles in producing information about their environment with their smartphones. This scheme introduces challenges in handling dynamic opportunistic resource availability, due to mobility and unpredicted actions of the participants. We present how ACOSO-Meth (Agent-oriented Cooperative Smart Object-Methodology) guidelines the development process systematically from the analysis to the actual agent-based implementation of a crowdsensing service. The implementation is done with the ROAgent framework that utilizes resource-oriented architecture and REST principles to integrate agent-based smart objects seamlessly with the programmable Web.