Abstract
Complex distributed systems such as the ones induced by Internet of Things (IoT) deployments, are expected to operate in compliance to their requirements. This can be checked by inspecting events flowing throughout the system, typically originating from end-devices and reflecting arbitrary actions, changes in state or sensing. Such events typically reflect the behavior of the overall IoT system – they may indicate executions which satisfy or violate its requirements. This article presents a service-based software architecture and technical framework supporting runtime verification for widely deployed, volatile IoT systems. At the lowest level, systems we consider are comprised of resource-constrained devices connected over wide area networks generating events. In our approach, monitors are deployed on edge components, receiving events originating from end-devices or other edge nodes. Temporal logic properties expressing desired requirements are then evaluated on each edge monitor in a runtime fashion. The system exhibits decentralization since evaluation occurs locally on edge nodes, and verdicts possibly affecting satisfaction of properties on other edge nodes are propagated accordingly. This reduces dependence on cloud infrastructures for IoT data collection and centralized processing. We illustrate how specification and runtime verification can be achieved in practice on a characteristic case study of smart parking. Finally, we demonstrate the feasibility of our design over a testbed instantiation, whereupon we evaluate performance and capacity limits of different hardware classes under monitoring workloads of varying intensity using state-of-the-art LPWAN technology.
Highlights
Our life is increasingly dependent on the correct functioning of complex distributed systems, which are expected to operate in compliance to their requirements
The former entails considering a real scenario. The latter requires measurements of propagation of events that include both processing and networking overhead, over various workloads. 6.1 Case Study: Parking availability in LA Parking Internet of Things (IoT) devices within Los Angeles, USA are equipped with sensors, and produce readings when a car enters or leaves the corresponding parking spot [20]
6.2 Testbed experiments we present a set of experiments aiming (i) to demonstrate the feasibility of our design and implementation to operate in resource-constrained edge computing environments, (ii) to evaluate the performance and capacity limits of different hardware classes, from small singleboard computers (SBC) to server-class data center hosts under monitoring workloads of varying intensity, and under different deployment strategies
Summary
Our life is increasingly dependent on the correct functioning of complex distributed systems, which are expected to operate in compliance to their requirements Such is the case within contemporary pervasive systems, as the ones induced by Internet of Things (IoT) deployments, composed of resource-constrained devices, edge and cloud services alike. Runtime verification (RV) is a lightweight verification technique based on observing information from a system while in operation, and identifying if the observed behaviors satisfy or violate certain properties It has emerged as a practical application of formal verification, checking properties upon a sequence of events arising from system execution, scaling well in systems involving complex and highthroughput events. Monitors are instead constructed from formal property specifications, which detect if an incoming event sequence violates them in an online manner
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