Abstract

The Internet of Things (IoT) connects a wide range of entities and can be applied to various types of environments. In addition, IoT environments can be dynamically changed at runtime; thus, IoT systems can be deployed in various environments. To support stable operation, IoT systems must adapt to dynamic environmental changes. The self-adaptive software aims to adjust various artifacts or attributes of software to adapt the detected context by itself, and various studies have applied self-adaptive methods in IoT-related research. In this study, we proposed a self-adaptive software framework with master–slave architecture-based finite-state machine modeling. In addition, model checking is applied, which is a formal method to verify IoT systems at runtime, and a cache-based mechanism is applied to reduce the computational time required for verification. To demonstrate the efficiency of the proposed framework, an empirical evaluation was performed with several model-checking tools (RINGA, NuSMV, nuXmv, and CadenceSMV), and the results showed the efficiency of the proposed framework with the cache-based mechanism. In addition, an example application was investigated with smart greenhouse scenarios, and the application was implemented on Android and Arduino. The application was operated in physical environments, and the results showed the practical usability of the proposed framework with verification at runtime.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call