Abstract
This paper presents the open-source runtime verification tool MESA (MEssage-based System Analysis), implemented in Scala, which supports concurrent monitors using the Actor model. Furthermore, the tool supports indexing (slicing) on the data values occurring in data-carrying events, for each individual monitor. The tool is generic in the sense that any monitoring system can be used for creating monitors. In this paper, we use the internal Scala DSL Daut for programming such data-parameterized state machines and temporal logic. To illustrate MESA/Daut, we present a case study that monitors flights from live U.S. airspace data streams, verifying that they conform to planned routes. With base in the case study, we then perform an extensive empirical study of the potential benefits from monitoring slices of a single property in concurrently executing actors. Due to the overhead of scheduling “small” actors (one for each slice or a small number of slices), it is not obvious that concurrent execution of such is beneficial. However, as a main result, we demonstrate that concurrent monitoring of slices to handle data-carrying events can provide considerable speed gains.
Similar content being viewed by others
References
Aceto, L., Achilleos, A., Francalanza, A., Ingólfsdóttir, A., Lehtinen, K.: An operational guide to monitorability with applications to regular properties. Softw. Syst. Model. 20(2), 335–361 (2021). https://doi.org/10.1007/s10270-020-00860-z
Aceto, L., Attard, D.P., Francalanza, A., Ingólfsdóttir, A.: On benchmarking for concurrent runtime verification. In: Guerra, E., Stoelinga, M. (eds.) Fundamental Approaches to Software Engineering, pp. 3–23. Springer, Berlin (2021). https://doi.org/10.1007/978-3-030-71500-7_1
Agrawal, S., Bonakdarpour, B.: Runtime verification of k-safety hyperproperties in HyperLTL. In: 2016 IEEE 29th Computer Security Foundations Symposium (CSF), pp. 239–252 (2016). https://doi.org/10.1109/CSF.2016.24
Akka (2020). http://doc.akka.io/docs/akka/current/scala.html
Artho, C., Havelund, K., Kumar, R., Yamagata, Y.: Domain-specific languages with Scala. In: Butler, M., Conchon, S., Zaïdi, F. (eds.) Formal Methods and Software Engineering. Lecture Notes in Computer Science, vol. 9407, pp. 1–16. Springer, Berlin (2015). https://doi.org/10.1007/978-3-319-25423-4_1
Attard, D.P., Francalanza, A.: Trace partitioning and local monitoring for asynchronous components. In: Cimatti, A., Sirjani, M. (eds.) International Conference on Software Engineering and Formal Methods. Lecture Notes in Computer Science, vol. 10469, pp. 219–235. Springer, Berlin (2017). https://doi.org/10.1007/978-3-319-66197-1_14
Avrekh, I., Matthews, B.L., Stewart, M.: RNAV adherence data integration system using aviation and environmental sources. Tech. rep., NASA Ames Research Center (2018)
Barre, B., Klein, M., Soucy-Boivin, M., Ollivier, P.A., Hallé, S.: MapReduce for parallel trace validation of LTL properties. In: Qadeer, S., Tasiran, S. (eds.) International Conference on Runtime Verification. Lecture Notes in Computer Science, vol. 7687, pp. 184–198. Springer, Berlin (2013). https://doi.org/10.1007/978-3-642-35632-2_20
Barringer, H., Havelund, K.: TraceContract: a Scala DSL for trace analysis. In: Butler, M., Schulte, W. (eds.) International Symposium on Formal Methods. Lecture Notes in Computer Science, vol. 6664, pp. 57–72. Springer, Berlin (2011). https://doi.org/10.1007/978-3-642-21437-0_7
Basin, D., Caronni, G., Ereth, S., Harvan, M., Klaedtke, F., Mantel, H.: Scalable offline monitoring of temporal specification. Form. Methods Syst. Des. 49, 75–108 (2016). https://doi.org/10.1007/s10703-016-0242-y
Basin, D.A., Dardinier, T., Heimes, L., Krstic, S., Raszyk, M., Schneider, J., Traytel, D.: A formally verified, optimized monitor for metric first-order dynamic logic. In: Peltier, N., Sofronie-Stokkermans, V. (eds.) Automated Reasoning. Lecture Notes in Computer Science, vol. 12166, pp. 432–453. Springer, Berlin (2020). https://doi.org/10.1007/978-3-030-51074-9_25
Basin, D., Gras, M., Krstić, S., Schneider, J.: Scalable online monitoring of distributed systems. In: Deshmukh, J., Nickovic, D. (eds.) Runtime Verification - 20th International Conference, RV 2020, Los Angeles, CA, USA, October 6–9, 2020. Lecture Notes in Computer Science vol. 12399, pp. 197–220. Springer, Berlin (2020). https://doi.org/10.1007/978-3-030-60508-7_11
Berkovich, S., Bonakdarpour, B., Fischmeister, S.: Runtime verification with minimal intrusion through parallelism. Form. Methods Syst. Des. 46, 317–348 (2015). https://doi.org/10.1007/s10703-015-0226-3
Burlò, C.B., Francalanza, A., Scalas, A.: On the monitorability of session types, in theory and practice (extended version). CoRR (2021). arXiv:2105.06291. https://doi.org/10.4230/LIPIcs.ECOOP.2021.20
Clarkson, M.R., Schneider, F.B.: Hyperprop. J. Comput. Secur. 18(6), 1157–1210 (2010). https://doi.org/10.3233/JCS-2009-0393
Colombo, C., Francalanza, A., Mizzi, R., Pace, G.J.: polyLarva: runtime verification with configurable resource-aware monitoring boundaries. In: Eleftherakis, G., Hinchey, M., Holcombe, M. (eds.) Software Engineering and Formal Methods. Lecture Notes in Computer Science, vol. 7504, pp. 218–232. Springer, Berlin (2012). https://doi.org/10.1007/978-3-642-33826-7_15
Department of Transportation, Federal Aviation Administration: Implementation of Descend via into Boston Terminal area from Boston ARTCC (2015)
El-Hokayem, A., Falcone, Y.: Can we monitor all multithreaded programs? In: Colombo, C., Leucker, M. (eds.) International Conference on Runtime Verification. Lecture Notes in Computer Science, vol. 11237, pp. 64–89. Springer, Cham (2018). https://doi.org/10.1007/978-3-030-03769-7_6
El-Hokayem, A., Falcone, Y.: On the monitoring of decentralized specifications: semantics, properties, analysis, and simulation. ACM Trans. Softw. Eng. Methodol. 29(1), 1:1–1:57 (2020). https://doi.org/10.1145/3355181
Falcone, Y., Havelund, K., Reger, G.: A tutorial on runtime verification. In: Broy, M., Peled, D., Kalus, G. (eds.) Engineering Dependable Software Systems. NATO Science for Peace and Security Series - D: Information and Communication Security, vol. 34, pp. 141–175. IOS Press, Amsterdam (2013). https://doi.org/10.3233/978-1-61499-207-3-141
Finkbeiner, B., Hahn, C., Stenger, M., Tentrup, L.: Monitoring hyperproperties. Form. Methods Syst. Des. 54(3), 336–363 (2019). https://doi.org/10.1007/s10703-019-00334-z
Finkbeiner, B., Oswald, S., Passing, N., Schwenger, M.: Verified Rust monitors for Lola specifications. CoRR (2020). arXiv:2012.08961. https://doi.org/10.1007/978-3-030-60508-7_24
Francalanza, A., Seychell, A.: Synthesising correct concurrent runtime monitors. Form. Methods Syst. Des. 46(3), 226–261 (2015). https://doi.org/10.1007/s10703-014-0217-9
Francalanza, A., Pérez, J.A., Sánchez, C.: Runtime Verification for Decentralised and Distributed Systems pp. 176–210. Springer, Cham (2018). https://doi.org/10.1007/978-3-319-75632-5_6
Hallé, S., Khoury, R.: Event stream processing with BeepBeep 3. In: Reger, G., Havelund, K. (eds.) An International Workshop on Competitions, Usability, Benchmarks, Evaluation, and Standardisation for Runtime Verification Tools, Seattle, WA, USA, September 15, 2017. Kalpa Publications in Computing, vol. 3, pp. 81–88. EasyChair (2017). https://doi.org/10.29007/4cth
Hallé, S., Khoury, R., Gaboury, R.: Event stream processing with multiple threads. In: Lahiri, S., Reger, G. (eds.) International Conference on Runtime Verification. Lecture Notes in Computer Science, vol. 10548, pp. 359–369. Springer, Cham (2017). https://doi.org/10.1007/978-3-319-67531-2_22
Harris Corporation: FAA Telecommunications Infrastructure NEMS User Guide (2013)
Havelund, K.: Data automata in Scala. In: Symposium on Theoretical Aspects of Software Engineering Conference, Changsha, China, pp. 1–9 (2014). https://doi.org/10.1109/TASE.2014.37
Havelund, K.: Daut (2022). https://github.com/havelund/daut
Havelund, K.: TraceContract (2022). https://github.com/havelund/tracecontract
Hewitt, C., Bishop, P., Steiger, R.: A universal modular ACTOR formalism for artificial intelligence. In: Proceedings of the 3rd International Joint Conference on Artificial Intelligence, pp. 235–245. Kaufmann, San Francisco (1973)
HOCON: Human Optimized Config Object Notation (2020). https://github.com/typesafehub/config/blob/master/HOCON.md
International Air Line Pilots Associations: FAA Suspends OPD Arrivals for Atlanta International Airport (2016)
International Civil Aviation Organization (ICAO): Performance-based Navigation (PBN) Manual, 3rd edn. (2008)
JMH - Java Microbenchmark Harness (2020). https://openjdk.java.net/projects/code-tools/jmh/
Joyce, J., Lomow, G., Slind, K., Unger, B.: Monitoring distributed systems. ACM Trans. Comput. Syst. 5(2), 121–150 (1987). https://doi.org/10.1145/13677.22723
Kurklu, E., Havelund, K.: A flight rule checker for the LADEE Lunar spacecraft. In: Pun, V.K.I., Stolz, V., Simao, A. (eds.) Theoretical Aspects of Computing - ICTAC 2020, pp. 3–20. Springer, Berlin (2020). https://doi.org/10.1007/978-3-030-64276-1_1
Lavery, P., Watanabe, T.: An actor-based runtime monitoring system for web and desktop applications. In: Hochin, T., Hirata, H., Nomiya, H. (eds.) International Conference on Software Engineering, Artificial Intelligence, Networking and Parallel/Distributed Computing, pp. 385–390. IEEE Comput. Soc., Los Alamitos (2017). https://doi.org/10.1109/SNPD.2017.8022750
Leucker, M., Schallhart, C.: A brief account of runtime verification. J. Log. Algebraic Program. 78(5), 293–303 (2009). https://doi.org/10.1016/j.jlap.2008.08.004
Mehlitz, P.: RACE (2022). http://nasarace.github.io/race/
Mehlitz, P., Shafiei, N., Tkachuk, O., Davies, M.: RACE: building airspace simulations faster and better with actors. In: Digital Avionics Systems Conference (DASC), pp. 1–9 (2016). https://doi.org/10.1109/DASC.2016.7777991
Meredith, P.O., Jin, D., Griffith, D., Chen, F., Roşu, G.: An overview of the MOP runtime verification framework. Int. J. Softw. Tools Technol. Transf. 14(3), 249–289 (2012). https://doi.org/10.1007/s10009-011-0198-6
MESA - MEssage-based System Analysis (2022). https://github.com/NASA-SW-VnV/mesa
NASA WorldWind (2022). https://worldwind.arc.nasa.gov/
Neykova, R., Yoshida, N.: Let it recover: multiparty protocol-induced recovery. In: Wu, P., Hack, S. (eds.) International Conference on Compiler Construction, pp. 98–108. ACM, New York (2017). https://doi.org/10.1145/3033019.3033031
Rasmussen, S., Kingston, D., Humphrey, L.: A brief introduction to unmanned systems autonomy services (UxAS). In: 2018 International Conference on Unmanned Aircraft Systems (ICUAS), pp. 257–268 (2018). https://doi.org/10.1109/ICUAS.2018.8453287
Reger, G.: Rule-based runtime verification in a multicore system setting. Master’s thesis, University of Manchester (2010)
Reger, G., Cruz, H.C., Rydeheard, D.: MarQ: monitoring at runtime with QEA. In: Baier, C., Tinelli, C. (eds.) International Conference on Tools and Algorithms for the Construction and Analysis of Systems. Lecture Notes in Computer Science, vol. 9035, pp. 596–610. Springer, Berlin (2015). https://doi.org/10.1007/978-3-662-46681-0_55
Reger, G., Rydeheard, D., Barringer, H.: MAIL - an interaction layer for exploring the use of multicore in runtime monitoring. (unpublished)
Richards, M., Monson-Haefel, R., Chappell, D.A.: Java Message Service, 2nd edn. O’Reilly Media, Inc., Newton (2009)
Roestenburg, R., Bakker, R., Williams, R.: Akka in Action, 1st edn. Manning Publications Co., Greenwich (2015)
Shafiei, N., Havelund, K., Mehlitz, P.: Actor-based runtime verification with MESA. In: Deshmukh, J., Ničković, D. (eds.) Runtime Verification, pp. 221–240. Springer, Cham (2020). https://doi.org/10.1007/978-3-030-60508-7_12
Shafiei, N., Havelund, K., Mehlitz, P.: Empirical Study of Actor-based Runtime Verification. Tech. rep., NASA Ames Research Center (2020)
Stewart, M., Matthews, B.: Objective assessment method for RNAV STAR adherence. In: DASC: Digital Avionics Systems Conference (2017). https://doi.org/10.1109/DASC.2017.8102034
SWIM flight data publication service (2020). https://www.faa.gov/air_traffic/technology/swim/sfdps/
U.S. Department of Transportation. Federal Aviation Administration: Performance Based Navigation PBN NAS Navigation Strategy (2016)
U.S. Department of Transportation. Federal Aviation Administration: Instrument Procedures Handbook (IPH) (2017)
Author information
Authors and Affiliations
Corresponding author
Additional information
Publisher’s Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Rights and permissions
Springer Nature or its licensor (e.g. a society or other partner) holds exclusive rights to this article under a publishing agreement with the author(s) or other rightsholder(s); author self-archiving of the accepted manuscript version of this article is solely governed by the terms of such publishing agreement and applicable law.
About this article
Cite this article
Shafiei, N., Havelund, K. & Mehlitz, P. Concurrent runtime verification of data rich events. Int J Softw Tools Technol Transfer 25, 481–501 (2023). https://doi.org/10.1007/s10009-023-00713-2
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10009-023-00713-2