Formal Methods in System Design

, Volume 41, Issue 3, pp 269–294 | Cite as

Safer asynchronous runtime monitoring using compensations

  • Christian Colombo
  • Gordon J. Pace
  • Patrick Abela


Asynchronous monitoring relieves the system from additional overheads induced through online runtime monitoring. The price paid with such monitoring approaches is that the system may proceed further despite having reached an anomalous state. Any actions performed by the system after the error occurring are undesirable, since for instance, an unchecked malicious user access may perform unauthorized actions. In this paper we investigate the use of compensations to enable the undoing of such undesired actions, thus enriching asynchronous monitoring with the ability to restore the system to the original state just after the anomaly had occurred. Furthermore, we show how adaptive synchronisation and desynchronisation of the monitor with the system can also be achieved and report on the use of the proposed approach on an industrial case study of a financial transaction handling system.


Asynchronous runtime monitoring Compensations Synchronisation techniques 


  1. 1.
    Andrews JH, Zhang Y (2003) General test result checking with log file analysis. IEEE Trans Softw Eng 29(7):634–648 CrossRefGoogle Scholar
  2. 2.
    Barringer H, Groce A, Havelund K, Smith M (2009) An entry point for formal methods: Specification and analysis of event logs. In: Formal methods in aerospace (FMA). Electronic proceedings in theoretical computer science (EPTCS) Google Scholar
  3. 3.
    Bruni R, Melgratti H, Montanari U (2005) Theoretical foundations for compensations in flow composition languages. In: Principles of programming languages (POPL). ACM, New York, pp 209–220 Google Scholar
  4. 4.
    Butler MJ, Ferreira C (2004) An operational semantics for StAC, a language for modelling long-running business transactions. In: COORDINATION. Lecture notes in computer science, vol 2949, pp 87–104 Google Scholar
  5. 5.
    Butler MJ, Hoare CAR, Ferreira C (2004) A trace semantics for long-running transactions. In: 25 years communicating sequential processes. Lecture notes in computer science, vol 3525. Springer, Berlin, pp 133–150 CrossRefGoogle Scholar
  6. 6.
    Caires L, Ferreira C, Vieira HT (2008) A process calculus analysis of compensations. In: Trustworthy global computing (TGC). Lecture notes in computer science, vol 5474. Springer, Berlin Google Scholar
  7. 7.
    Chang F, Ren J (2007) Validating system properties exhibited in execution traces. In: Automated software engineering (ASE). ACM, New York, pp 517–520 Google Scholar
  8. 8.
    Colombo C, Pace GJ, Schneider G (2008) Dynamic event-based runtime monitoring of real-time and contextual properties. In: Formal methods for industrial critical systems (FMICS). Lecture notes in computer science, vol 5596. Springer, Berlin, pp 135–149 CrossRefGoogle Scholar
  9. 9.
    Colombo C, Pace GJ, Schneider G (2009) Larva—safer monitoring of real-time Java programs (tool paper). In: Software engineering and formal methods (SEFM). IEEE, New York, pp 33–37 Google Scholar
  10. 10.
    Colombo C, Gauci A, Pace GJ (2010) Larvastat: Monitoring of statistical properties. In: Runtime verification (RV). Lecture notes in computer science, vol 6418. Springer, Berlin, pp 480–484 CrossRefGoogle Scholar
  11. 11.
    Colombo C, Pace GJ, Abela P (2010) Compensation-aware runtime monitoring. In: Runtime verification (RV). Lecture notes in computer science, vol 6418. Springer, Berlin, pp 214–228 CrossRefGoogle Scholar
  12. 12.
    Cronin E, Kurc A, Filstrup B, Jamin S (2004) An efficient synchronization mechanism for mirrored game architectures. Multimed Tools Appl 23(1):7–30 CrossRefGoogle Scholar
  13. 13.
    D’Angelo B, Sankaranarayanan S, Sánchez C, Robinson W, Finkbeiner B, Sipma HB, Mehrotra S, Manna Z (2005) Lola: Runtime monitoring of synchronous systems. In: Temporal representation and reasoning (TIME). IEEE, New York Google Scholar
  14. 14.
    Ezust SA, Bochmann GV (1995) An automatic trace analysis tool generator for Estelle specifications. In: Applications, technologies, architectures, and protocols for computer communication (SIGCOMM). ACM, New York, pp 175–184 CrossRefGoogle Scholar
  15. 15.
    Garcia-Molina H, Salem K (1987) Sagas. In: SIGMOD international conference on management of data. ACM, New York, pp 249–259 Google Scholar
  16. 16.
    Gray J (1981) The transaction concept: Virtues and limitations (invited paper). In: Very large data bases, pp 144–154. VLDB endowment Google Scholar
  17. 17.
    Guidi C, Lucchi R, Gorrieri R, Busi N, Zavattaro G (2006) SOCK: A calculus for service oriented computing. In: Service-oriented computing (ICSOC). Lecture notes in computer science, vol 4294. Springer, New York, pp 327–338 Google Scholar
  18. 18.
    Havelund K, Roşu G (2002) Synthesizing monitors for safety properties. In: Tools and algorithms for the construction and analysis of systems. Springer, Berlin, pp 342–356 CrossRefGoogle Scholar
  19. 19.
    Jefferson D (1983) Virtual time. In: International conference on parallel processing (ICPP). IEEE, New York, pp 384–394 Google Scholar
  20. 20.
    Mauve M, Vogel J, Hilt V, Effelsberg W (2004) Local-lag and timewarp: consistency for replicated continuous applications. IEEE Trans Multimed 6(1):47–57 CrossRefGoogle Scholar
  21. 21.
    Roşu G, Havelund K (2001) Synthesizing dynamic programming algorithms from linear temporal logic formulae. Technical report, RIACS Google Scholar
  22. 22.
    Roşu G, Havelund K (2005) Rewriting-based techniques for runtime verification. Autom Softw Eng 12(2):151–197 CrossRefGoogle Scholar
  23. 23.
    Vaz C, Ferreira C, Ravara A (2009) Dynamic recovering of long running transactions. Trust Glob Comput 5474:201–215 CrossRefGoogle Scholar

Copyright information

© Springer Science+Business Media, LLC 2012

Authors and Affiliations

  • Christian Colombo
    • 1
  • Gordon J. Pace
    • 1
  • Patrick Abela
    • 2
  1. 1.Dept. of Computer ScienceUniversity of MaltaMsidaMalta
  2. 2.Ixaris LtdTa XbiexMalta

Personalised recommendations