Over the past two years, we have been working on techniques to integrate
runtime verification technology into the Open Payments Ecosystem (OPE), an industrial system developed by Ixaris Ltd., which is planned to handle high
volumes of financial transactions across different user applications and financial
institutions. Compliance to legislation and correctness are critical in this domain,
and the risk of failure due to the runtime verification module had to be mitigated.
The runtime verification tools we typically used in our previous projects
(Larva and pollyRV) were developed in an academic setting and in an
iterative manner - with waves of students and researchers adding and changing
features over the years. In the
context of the OPE, it was decided, however, that a general-purpose runtime
verification tool should be rebuilt from scratch - with just about sufficient features
for the required functionality, and developed in a more software-engineering
robust manner. This is how Valour came to be...
Valour is a language that allows users to define rules that can be used to monitor a system at
runtime. These rules will allow the user to define what circumstances of interest happening in
the system will trigger events to be monitored, and how to react to these events. The rules may
react to these events by maintaining some form of state about the system, notifying the system
(or some alerting module) about specific situations, and performing some actions in order to
influence the system's operation.
Design and development
The design of the Valour specification language has been carried out by Gordon Pace and Christian Colombo, while the implementation has been done by Edward Mallia with support from Jean Paul Ebejer.