Springer Nature is making SARS-CoV-2 and COVID-19 research free. View research | View latest news | Sign up for updates

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

  • 63 Accesses

  • 4 Citations

Abstract

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.

This is a preview of subscription content, log in to check access.

References

  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–133

  2. BBF15

    Berkovich S, Bonakdarpour B, Fischmeister S (2015) Runtime verification with minimal intrusion through parallelism. Form Methods Syst Des 46(3): 317–348

  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–409

  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–12

  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–22

  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–100

  7. BF16

    Bauer A, Falcone Y (2016) Decentralised LTL monitoring. Form Methods Syst Des 48(1–2): 46–93

  8. BLS10

    Bauer A, Leucker M, Schallhart C (2010) Comparing LTL semantics for runtime verification. J Log Comput 20(3): 651–674

  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:64

  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–20

  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–158

  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–217

  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–83

  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–59

  15. FFM12

    Falcone Y, Fernandez J-C, Mounier L (2012) What can you verify and enforce at runtime. STTT 14(3): 349–382

  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–41

  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–220

  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–199

  19. FS15

    Francalanza A, Seychell A (2015) Synthesising correct concurrent runtime monitors. Form Methods Syst Des 46(3): 226–261

  20. Hoa78

    Hoare CAR (1978) Communicating sequential processes. In: The origin of concurrent programming. Springer, pp 413–443

  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–253

  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–126

  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–503

  24. Mil95

    Milner R (1995) Communication and concurrency. Prentice Hall International (UK) Ltd., Hertfordshire

  25. Naz

    Nazarpour H. Website of RVMT-BIP, a tool for the runtime verification of multi-threaded BIP systems. http://www-verimag.imag.fr/~nazarpou/rvmt.html

  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. LNCS

  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–183

  28. SG07

    Sen A, Garg VK (2007) Formal verification of simulation traces using computation slicing. IEEE Trans Comput 56(4): 511–527

  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. IEEE

  30. TG97

    Tomlinson AI, Garg VK (1997) Monitoring functions on global states of distributed programs. J Parallel Distrib Comput 41(2): 173–189

  31. vGV97

    van Glabbeek R, Vaandrager F (1997) The difference between splitting in n and n + 1. Inf Comput 136(2): 109–142

Download references

Author information

Correspondence to Yliès Falcone.

Additional information

Naijun Zhan

Rights and permissions

Reprints and Permissions

About this article

Verify currency and authenticity via CrossMark

Cite this article

Nazarpour, H., Falcone, Y., Bensalem, S. et al. Concurrency-preserving and sound monitoring of multi-threaded component-based systems: theory, algorithms, implementation, and evaluation. Form Asp Comp 29, 951–986 (2017). https://doi.org/10.1007/s00165-017-0422-6

Download citation