One of the most important things in distributed systems is to monitor not only the system as a whole, but also its individual components. In 2014 we wrote a Scientific Students’ Associations Report about model-driven software development for distributed systems, and we built a demostrator system to show the capabilities of the deployed software. However, extensive monitoring was not part of the research, thus it was not implemented as part of the report, but it is also a fundamental criteria to provide such features.
One of the biggest challenge of monitoring distributed systems is the fact that every component has its respective clock. To obtain reliable data about the system in operation, these clocks must be synchronized with each other. In order to solve this problem, many solutions have already been developed as of today. The most important difference between these solutions is their accuracy. To achieve more accurate results in synchronization, the model-driven paradigm can be used to efficiently develop the components.
In this thesis I present the most common methods for time synchronization, and demonstrate why I chose PTP protocol to resolve this problem. Later I explain why model-driven development is useful in general, and I introduce the Yakindu modeling environment which was chosen for the implementation of a test application.
I have created an environment as well as a test application to measure timings of event occurrences and state transitions within the demonstrator system. By using the monitoring application that I have created, I have generated statistics and an analysis report from the collected data. In the last chapter I present and interpret these results, and explain the problems behind the detected anomalies.