The runtime reflection project establishes methods to dynamically analyse reactive distributed systems at runtime. The approach is layered and modular in that we provide the means for first detecting failures of a system by means of runtime verification and secondly, provide means for identifying their causes by means of a detailed diagnosis. As such, diagnoses can be subsequently used in order to trigger recovery measures, or to store detailed log-files for off-line analysis.
In principle, runtime reflection spans from the early development phases, e.g., systems design and specification to their actual implementation and analysis at runtime; thus, ultimately at more fault-tolerant systems.
On this project page we provide the tools which make up our framework to accomplish the above objectives. In particular, we currently offer a tool for automatically generating so-called runtime monitors from a given LTL-specification which can be used to monitor arbitrary C++-programs. The tool allows to annotate C++-code in order to generate log-records for events such as function entries and exits, unexpected exceptions, violated assertions, and passing of simple trace points. The resulting traces of a program execution can then be analysed at runtime for erroneous behaviour by the generated monitor. The tool will report a violation of a given property immediately when it is clear that it will eventually happen.
Additionally, we provide an implementation to perform the main diagnostic task; that is, based on the results of the monitors, find causes for occurred errors. The implementation is currently based on a highly optimised SAT-solver, which computes for a number of given symptoms possible conflict sets, hence diagnoses, that explain the undesired behaviour. As such, we are able to differentiate between the symptoms of a fault, and the actual fault itself.
All tools, part of the runtime reflection framework, are released under the terms of the GNU General Public License. For more information, see the according README and LICENSE documents provided with the source codes.
Last updated on October 21, 2005 by The Runtime Reflection Project Team.
Copyright © 2005 The Runtime Reflection Project Team. All rights reserved.