Cyber-Physical Systems (CPS) establish cooperation between the physical and the cyber worlds. Applications of CPS is widespread all over the world: smart homes, autonomous vehicles, aerospace, healthcare, agriculture, industrial manufacturing.
CPS systems are often critical as the failure of the system can cause severe damages in the physical world. This risk is why it is crucial that CPS systems should be trustworthy.
The CPS Framework guides the design process of the CPS. The goal of the framework is to provide analysis aspects to be covered and procedures to create CPS systems.
Modern CPSs are often systems-of-systems based on the integration of subsystems. During the long lifecycle of a CPS, it can change multiple times, for instance, because of updates, patches, and functional upgrades. These subsystems are specialized, and the intelligence of the system originates in the integration of these subsystems. Advanced middleware facilitates an easy component integration.
In CPS systems a commonly used middleware is the Data-Distribution Service (DDS). The DDS is a data-centric publisher-subscriber protocol designed for real-time and embedded systems. The DDS assures the compliance with the requirements (low latency, reliability, security, robustness, scalability) of the critical CPSs based on their specification.
Monitoring of the CPS is mandatory to guarantee their trustworthiness. Designing a monitor necessitates the inclusion of common mode failures potentially simultaneously affecting the monitor and the supervised system. Design for diversity is a solution to cope with these failures. When creating monitors, a critical parameter is their throughput, which limits the sampling frequency of observations, and the reaction time for events to failures.
In my thesis I created patterns for designing and monitoring CPSs based on DDS. The middleware allowed me to integrate separete implementations. During my research, I examined how to use simple and open source tools in the runtime monitoring of a given DDS system. To do this, I compared subsystems based on the same logical specification.