Towards Distributed Runtime Monitoring with C++ Contracts

Rolf Schmedes and Philipp Ittershagen and Kim Grüttner
2nd International Workshop on Embedded Software for Industrial IoT (ESIIT) at DATE'19
Design by Contract supports the specification of the intended behavior of a software component at its interfaces. Out of these specifications, runtime monitors can be generated. While those monitors check the correct behavior of the software component, they are usually executed on the same processor as the monitored software and therefore prone against the same possible hardware failures.This work proposes an approach for distributed runtime monitors in order to increase the overall robustness of the system. The runtime monitors are derived from the contract specifications and check the fulfillment of assumptions and guarantees at runtime. While deployed onto a multi-processing system the contract checks can detect permanent hardware failures. Also, there are some scenarios where the concurrent execution of the contract checks might be sensible. Therefore, this approach arguably increases the safety benefit of contracts and at the same time, leaves potential to further decrease the added execution time overhead.
03 / 2019
Sicherer Automatischer Software-Entwurf für Industrieanlagen