|title:||A monitoring solution for multi-language software|
Correctness of software is very important. In some applications a software failure may cause serious |even physical| damage, for example when the software manages railroad switches. In other applications the results of a software failure might not be so dramatic, but preventing failures is still essential in order to provide a good user experience.
Runtime monitoring is a method for ensuring software correctness that can be used in addition to the more conventional software testing and model checking. Runtime monitoring is applied at runtime in production environments, as opposed to software testing and model checking which are only applied in a development environment.
Currently there are no runtime monitoring frameworks available for software consisting of multiple components written in dierent languages, even though runtime monitoring can be very useful for such complex systems. This report presents an architecture and prototype implementation for such a system. This architecture is very extensible and highly extensible in order to support many very dierent components and programming languages.