Formal Aspects of Computing

, Volume 29, Issue 6, pp 951–986 | Cite as

Concurrency-preserving and sound monitoring of multi-threaded component-based systems: theory, algorithms, implementation, and evaluation

  • Hosein Nazarpour
  • Yliès FalconeEmail author
  • Saddek Bensalem
  • Marius Bozga
Original Article


This paper addresses the monitoring of logic-independent linear-time user-provided properties in multi-threaded component-based systems. We consider intrinsically independent components that can be executed concurrently with a centralized coordination for multiparty interactions. In this context, the problem that arises is that a global state of the system is not available to the monitor. A naive solution to this problem would be to plug in a monitor which would force the system to synchronize in order to obtain the sequence of global states at runtime. Such a solution would defeat the whole purpose of having concurrent components. Instead, we reconstruct on-the-fly the global states by accumulating the partial states traversed by the system at runtime. We define transformations of components that preserve their semantics and concurrency and, at the same time, allow to monitor global-state properties. Moreover, we present RVMT-BIP, a prototype tool implementing the transformations for monitoring multi-threaded systems described in the Behavior, Interaction, Priority (BIP) framework, an expressive framework for the formal construction of heterogeneous systems. Our experiments on several multi-threaded BIP systems show that RVMT-BIP induces a cheap runtime overhead.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. BBBS08.
    Basu A, Bidinger P, Bozga M, Sifakis J (2008) Distributed semantics and implementation for systems with interaction and priority. In: Higashino KST, El-Fakih KYK (eds) Formal techniques for networked and distributed systems—FORTE 2008, 28th IFIP WG 6.1 international conference, Tokyo, Japan, June 10–13, 2008, proceedings. Lecture notes in computer science, vol 5048. Springer, pp 116–133Google Scholar
  2. BBF15.
    Berkovich S, Bonakdarpour B, Fischmeister S (2015) Runtime verification with minimal intrusion through parallelism. Form Methods Syst Des 46(3): 317–348CrossRefzbMATHGoogle Scholar
  3. BBJ+12.
    Bonakdarpour B, Bozga M, Jaber M, Quilbeuf J, Sifakis J (2012) A framework for automated distributed implementation of component-based models. Distrib Comput 25(5): 383–409CrossRefzbMATHGoogle Scholar
  4. BBS06.
    Basu A, Bozga M, Sifakis J (2006) Modeling heterogeneous real-time components in BIP. In: Fourth IEEE international conference on software engineering and formal methods (SEFM 2006), 11–15 September 2006, Pune, India. IEEE Computer Society, pp 3–12Google Scholar
  5. BCL+04.
    Bruneton E, Coupaye T, Leclercq M, Quéma V, Stefani J-B (2004) An open component model and its support in Java. In: International symposium on component-based software engineering. Springer, pp 7–22Google Scholar
  6. BF12.
    Bauer AK, Falcone Y (2012) Decentralised LTL monitoring. In: Giannakopoulou D, Dominique M (eds) 18th international symposium on formal methods: FM 2012, Paris, France, August 27–31, 2012, proceedings. Lecture notes in computer science, vol 7436. Springer, pp 85–100Google Scholar
  7. BF16.
    Bauer A, Falcone Y (2016) Decentralised LTL monitoring. Form Methods Syst Des 48(1–2): 46–93CrossRefzbMATHGoogle Scholar
  8. BLS10.
    Bauer A, Leucker M, Schallhart C (2010) Comparing LTL semantics for runtime verification. J Log Comput 20(3): 651–674CrossRefzbMATHMathSciNetGoogle Scholar
  9. BLS11.
    Bauer A, Leucker M, Schallhart C (2011) Runtime verification for LTL and TLTL. ACM Trans Softw Eng Methodol 20(4):14:1–14:64Google Scholar
  10. BS07.
    Bliudze S, Sifakis J (2007) The algebra of connectors: structuring interaction in bip. In: Proceedings of the 7th ACM & IEEE international conference on embedded software. ACM, pp 11–20Google Scholar
  11. CF16.
    Colombo C, Falcone Y (2016) Organising LTL monitors over distributed systems with a global clock. Form Methods Syst Des 49(1–2): 109–158CrossRefGoogle Scholar
  12. DKL10.
    Dormoy J, Kouchnarenko O, Lanoix A (2010) Using temporal logic for dynamic reconfigurations of components. In: Barbosa LS, Lumpe M (eds) Proceedings of the 7th international workshop on formal aspects of component software (FACS 2010). LNCS, vol 6921. Springer, pp 200–217Google Scholar
  13. FCF14.
    Falcone Y, Cornebize T, Fernandez J-C (2014) Efficient and generalized decentralized monitoring of regular languages. In: Ábrahám E, Palamidessi C (eds) Formal techniques for distributed objects, components, and systems—34th IFIP WG 6.1 international conference, FORTE 2014, held as part of the 9th international federated conference on distributed computing techniques, DisCoTec 2014, Berlin, Germany, June 3–5, 2014, proceedings. Lecture notes in computer science, vol 8461. Springer, pp 66–83Google Scholar
  14. FFM09.
    Falcone Y, Fernandez J-C, Mounier L (2009) Runtime verification of safety-progress properties. In: Bensalem S, Peled D (eds) Proceedings of the 9th international workshop on runtime verification (RV 2009), selected papers. LNCS, vol 5779. Springer, pp 40–59Google Scholar
  15. FFM12.
    Falcone Y, Fernandez J-C, Mounier L (2012) What can you verify and enforce at runtime. STTT 14(3): 349–382CrossRefGoogle Scholar
  16. FJMP16.
    Falcone Y, Jéron T, Marchand H, Pinisetty S (2016) Runtime enforcement of regular timed properties by suppressing and delaying events. Syst Control Lett 123: 2–41Google Scholar
  17. FJN+11.
    Falcone Y, Jaber M, Nguyen T-H, Bozga M, Bensalem S (2011) Runtime verification of component-based systems. In: SEFM 2011, pp 204–220Google Scholar
  18. FJN+15.
    Falcone Y, Jaber M, Nguyen T-H, Bozga M, Bensalem S (2015) Runtime verification of component-based systems in the BIP framework with formally-proved sound and complete instrumentation. Softw Syst Model 14(1): 173–199CrossRefGoogle Scholar
  19. FS15.
    Francalanza A, Seychell A (2015) Synthesising correct concurrent runtime monitors. Form Methods Syst Des 46(3): 226–261CrossRefzbMATHGoogle Scholar
  20. Hoa78.
    Hoare CAR (1978) Communicating sequential processes. In: The origin of concurrent programming. Springer, pp 413–443Google Scholar
  21. KW14.
    Kouchnarenko O, Weber J-F (2014) Adapting component-based systems at runtime via policies with temporal patterns. Lecture notes in computer science, vol 8348. Springer, Cham, pp 234–253Google Scholar
  22. KW15.
    Kouchnarenko O, Weber J-F (2015) Decentralised evaluation of temporal patterns over component-based systems at runtime. Lecture notes in computer science, vol 8997. Springer, Cham, pp 108–126Google Scholar
  23. MB15.
    Mostafa M, Bonakdarpour B (2015) Decentralized runtime verification of LTL specifications in distributed systems. In 2015 IEEE international parallel and distributed processing symposium, IPDPS 2015, Hyderabad, India, May 25–29, 2015. IEEE Computer Society, pp 494–503Google Scholar
  24. Mil95.
    Milner R (1995) Communication and concurrency. Prentice Hall International (UK) Ltd., HertfordshireGoogle Scholar
  25. Naz.
    Nazarpour H. Website of RVMT-BIP, a tool for the runtime verification of multi-threaded BIP systems.
  26. NFB+16.
    Nazarpour H, Falcone Y, Bensalem S, Bozga M, Combaz J (2016) Monitoring multi-threaded component-based systems. In: Abraham E, Huisman M (eds) Proceedings of the 12th international conference on integrated formal methods. LNCSGoogle Scholar
  27. SG03.
    Sen A, Garg VK (2003) Detecting temporal logic predicates in distributed programs using computation slicing. In: Papatriantafilou M, Hunel P (eds) Principles of distributed systems, 7th international conference, OPODIS 2003 La Martinique, French West Indies, December 10–13, 2003 revised selected papers. Lecture notes in computer science, vol 3144. Springer, pp 171–183Google Scholar
  28. SG07.
    Sen A, Garg VK (2007) Formal verification of simulation traces using computation slicing. IEEE Trans Comput 56(4): 511–527CrossRefMathSciNetGoogle Scholar
  29. SVAR06.
    Sen K, Vardhan A, Agha G, Rosu G (2006) Decentralized runtime analysis of multithreaded applications. In: 20th international parallel and distributed processing symposium (IPDPS 2006), 25–29 April 2006, proceedings, Rhodes Island, Greece. IEEEGoogle Scholar
  30. TG97.
    Tomlinson AI, Garg VK (1997) Monitoring functions on global states of distributed programs. J Parallel Distrib Comput 41(2): 173–189CrossRefGoogle Scholar
  31. vGV97.
    van Glabbeek R, Vaandrager F (1997) The difference between splitting in n and n + 1. Inf Comput 136(2): 109–142CrossRefzbMATHMathSciNetGoogle Scholar

Copyright information

© British Computer Society 2017

Authors and Affiliations

  • Hosein Nazarpour
    • 1
  • Yliès Falcone
    • 1
    Email author
  • Saddek Bensalem
    • 1
  • Marius Bozga
    • 1
  1. 1.Inria, CNRS, VERIMAG, LIGUniv. Grenoble AlpesGrenobleFrance

Personalised recommendations