Runtime Instrumentation for Reactive Components

Authors Luca Aceto , Duncan Paul Attard , Adrian Francalanza , Anna Ingólfsdóttir



PDF
Thumbnail PDF

File

LIPIcs.ECOOP.2024.2.pdf
  • Filesize: 1.37 MB
  • 33 pages

Document Identifiers

Author Details

Luca Aceto
  • Reykjavik University, Iceland
  • Gran Sasso Science Institute, L'Aquila, Italy
Duncan Paul Attard
  • University of Glasgow, UK
Adrian Francalanza
  • University of Malta, Msida, Malta
Anna Ingólfsdóttir
  • Reykjavik University, Iceland

Acknowledgements

We thank our reviewers and the Artefact Evaluation Committee for their feedback. Thanks also to Keith Bugeja, Simon Fowler, Simon Gay, and Phil Trinder for their input.

Cite AsGet BibTex

Luca Aceto, Duncan Paul Attard, Adrian Francalanza, and Anna Ingólfsdóttir. Runtime Instrumentation for Reactive Components. In 38th European Conference on Object-Oriented Programming (ECOOP 2024). Leibniz International Proceedings in Informatics (LIPIcs), Volume 313, pp. 2:1-2:33, Schloss Dagstuhl – Leibniz-Zentrum für Informatik (2024)
https://doi.org/10.4230/LIPIcs.ECOOP.2024.2

Abstract

Reactive software calls for instrumentation methods that uphold the reactive attributes of systems. Runtime verification imposes another demand on the instrumentation, namely that the trace event sequences it reports to monitors are sound - that is, they reflect actual executions of the system under scrutiny. This paper presents RIARC, a novel decentralised instrumentation algorithm for outline monitors meeting these two demands. Asynchrony in reactive software complicates the instrumentation due to potential trace event loss or reordering. RIARC overcomes these challenges using a next-hop IP routing approach to rearrange and report events soundly to monitors. RIARC is validated in two ways. We subject its corresponding implementation to rigorous systematic testing to confirm its correctness. In addition, we assess this implementation via extensive empirical experiments, subjecting it to large realistic workloads to ascertain its reactiveness. Our results show that RIARC optimises its memory and scheduler usage to maintain latency feasible for soft real-time applications. We also compare RIARC to inline and centralised monitoring, revealing that it induces comparable latency to inline monitoring in moderate concurrency settings where software performs long-running, computationally-intensive tasks, such as in Big Data stream processing.

Subject Classification

ACM Subject Classification
  • Software and its engineering → Software verification and validation
Keywords
  • Runtime instrumentation
  • decentralised monitoring
  • reactive systems

Metrics

  • Access Statistics
  • Total Accesses (updated on a weekly basis)
    0
    PDF Downloads

References

  1. Francisco Lopez-Sancho Abraham. Akka in Action. Manning, 2023. Google Scholar
  2. Luca Aceto, Antonis Achilleos, Elli Anastasiadi, and Adrian Francalanza. Monitoring Hyperproperties with Circuits. In FORTE, volume 13273 of LNCS, pages 1-10, 2022. Google Scholar
  3. Luca Aceto, Antonis Achilleos, Duncan Paul Attard, Léo Exibard, Adrian Francalanza, and Anna Ingólfsdóttir. A Monitoring Tool for Linear-Time μHML. In COORDINATION, volume 13271 of LNCS, pages 200-219, 2022. Google Scholar
  4. Luca Aceto, Antonis Achilleos, Duncan Paul Attard, Léo Exibard, Adrian Francalanza, and Anna Ingólfsdóttir. A Monitoring Tool for Linear-time μhml. Sci. Comput. Program., 232:103031, 2024. Google Scholar
  5. Luca Aceto, Antonis Achilleos, Adrian Francalanza, Anna Ingólfsdóttir, and Karoliina Lehtinen. Adventures in Monitorability: From Branching to Linear Time and Back Again. PACMPL, 3:52:1-52:29, 2019. Google Scholar
  6. Luca Aceto, Antonis Achilleos, Adrian Francalanza, Anna Ingólfsdóttir, and Karoliina Lehtinen. An Operational Guide to Monitorability with Applications to Regular Properties. Softw. Syst. Model., 20:335-361, 2021. Google Scholar
  7. Luca Aceto, Duncan Paul Attard, Adrian Francalanza, and Anna Ingólfsdóttir. On Benchmarking for Concurrent Runtime Verification. In FASE, volume 12649 of LNCS, pages 3-23, 2021. Google Scholar
  8. Luca Aceto, Duncan Paul Attard, Adrian Francalanza, and Anna Ingólfsdóttir. Runtime Instrumentation for Reactive Components. CoRR, abs/2406.19904, 2024. Google Scholar
  9. Luca Aceto, Anna Ingólfsdóttir, Kim Guldstrand Larsen, and Jiří Srba. Reactive Systems: Modelling, Specification and Verification. Cambridge University Press, 2007. Google Scholar
  10. Gul Agha, Ian A. Mason, Scott F. Smith, and Carolyn L. Talcott. A Foundation for Actor Computation. JFP, 7:1-72, 1997. Google Scholar
  11. Gene M. Amdahl. Validity of the Single Processor Approach to Achieving Large Scale Computing Capabilities. In AFIPS Spring Joint Computing Conference, volume 30 of AFIPS Conference Proceedings, pages 483-485, 1967. Google Scholar
  12. Joe Armstrong. Programming Erlang: Software for a Concurrent World. Pragmatic Bookshelf, 2007. Google Scholar
  13. Joe Armstrong. Erlang. Commun. ACM, 53(9):68-75, 2010. Google Scholar
  14. Stavros Aronis. Effective Techniques for Stateless Model Checking. PhD thesis, Uppsala University, Sweden, 2018. Google Scholar
  15. Duncan Paul Attard. Runtime Instrumentation for Reactive Components (Artefact). Software, version 2.0. (visited on 2024-08-05). URL: https://doi.org/10.5281/zenodo.10634182.
  16. Duncan Paul Attard, Luca Aceto, Antonis Achilleos, Adrian Francalanza, Anna Ingólfsdóttir, and Karoliina Lehtinen. Better Late than Never or: Verifying Asynchronous Components at Runtime. In FORTE, volume 12719 of LNCS, pages 207-225, 2021. Google Scholar
  17. Duncan Paul Attard, Ian Cassar, Adrian Francalanza, Luca Aceto, and Anna Ingólfsdóttir. Introduction to Runtime Verification. In Behavioural Types: from Theory to Tools, Automation, Control and Robotics, pages 49-76. River, 2017. Google Scholar
  18. Duncan Paul Attard and Adrian Francalanza. A Monitoring Tool for a Branching-Time Logic. In RV, volume 10012 of LNCS, pages 473-481, 2016. Google Scholar
  19. Duncan Paul Attard and Adrian Francalanza. Trace Partitioning and Local Monitoring for Asynchronous Components. In SEFM, volume 10469 of LNCS, pages 219-235, 2017. Google Scholar
  20. Roberto Baldoni, Achour Mostéfaoui, and Michel Raynal. Causal Delivery of Messages with Real-Time Data in Unreliable Networks. Real Time Syst., 10(3):245-262, 1996. Google Scholar
  21. Howard Barringer, Yliès Falcone, Klaus Havelund, Giles Reger, and David E. Rydeheard. Quantified Event Automata: Towards Expressive and Efficient Runtime Monitors. In FM, volume 7436 of LNCS, pages 68-84, 2012. Google Scholar
  22. Ezio Bartocci, Yliès Falcone, Adrian Francalanza, and Giles Reger. Introduction to Runtime Verification. In Lectures on Runtime Verification, volume 10457 of LNCS, pages 1-33. Springer, 2018. Google Scholar
  23. Basho. Bench, 2017. URL: https://github.com/basho/basho_bench.
  24. David A. Basin, Felix Klaedtke, and Eugen Zalinescu. Failure-Aware Runtime Verification of Distributed Systems. In FSTTCS, volume 45 of LIPIcs, pages 590-603, 2015. Google Scholar
  25. Andreas Bauer and Yliès Falcone. Decentralised LTL Monitoring. FMSD, 48:46-93, 2016. Google Scholar
  26. André Bento, Jaime Correia, Ricardo Filipe, Filipe Araújo, and Jorge Cardoso. Automated Analysis of Distributed Tracing: Challenges and Research Directions. J. Grid Comput., 19(1):9, 2021. Google Scholar
  27. Shay Berkovich, Borzoo Bonakdarpour, and Sebastian Fischmeister. Runtime Verification with Minimal Intrusion through Parallelism. FMSD, 46:317-348, 2015. Google Scholar
  28. Stephen M. Blackburn, Robin Garner, Chris Hoffmann, Asjad M. Khan, Kathryn S. McKinley, Rotem Bentzur, Amer Diwan, Daniel Feinberg, Daniel Frampton, Samuel Z. Guyer, Martin Hirzel, Antony L. Hosking, Maria Jump, Han Bok Lee, J. Eliot B. Moss, Aashish Phansalkar, Darko Stefanovic, Thomas VanDrunen, Daniel von Dincklage, and Ben Wiedermann. The DaCapo Benchmarks: Java Benchmarking Development and Analysis. In OOPSLA, pages 169-190, 2006. Google Scholar
  29. Eric Bodden. The Design and Implementation of Formal Monitoring Techniques. In OOPSLA Companion, pages 939-940, 2007. Google Scholar
  30. Eric Bodden, Laurie J. Hendren, Patrick Lam, Ondrej Lhoták, and Nomair A. Naeem. Collaborative Runtime Verification with Tracematches. J. Log. Comput., 20:707-723, 2010. Google Scholar
  31. Borzoo Bonakdarpour, Pierre Fraigniaud, Sergio Rajsbaum, David A. Rosenblueth, and Corentin Travers. Decentralized Asynchronous Crash-Resilient Runtime Verification. In CONCUR, volume 59 of LIPIcs, pages 16:1-16:15, 2016. Google Scholar
  32. Jonas Bonér, Dave Farley, Roland Kuhn, and Martin Thompson. The Reactive Manifesto, 2014. Google Scholar
  33. Jonas Bonér and Viktor Klang. Reactive Programming š Reactive Systems. Technical report, Lightbend Inc., 2016. Google Scholar
  34. Christian Bartolo Burlò, Adrian Francalanza, and Alceste Scalas. On the Monitorability of Session Types, in Theory and Practice. In ECOOP, volume 194 of LIPIcs, pages 20:1-20:30, 2021. Google Scholar
  35. Rajkumar Buyya, James Broberg, and Andrzej M. Goscinski. Cloud Computing: Principles and Paradigms. Wiley-Blackwell, 2011. Google Scholar
  36. Bryan Cantrill. Hidden in Plain Sight. ACM Queue, 4:26-36, 2006. Google Scholar
  37. Ian Cassar and Adrian Francalanza. On Synchronous and Asynchronous Monitor Instrumentation for Actor-based Systems. In FOCLASA, volume 175 of EPTCS, pages 54-68, 2014. Google Scholar
  38. Ian Cassar and Adrian Francalanza. On Implementing a Monitor-Oriented Programming Framework for Actor Systems. In IFM, volume 9681 of LNCS, pages 176-192, 2016. Google Scholar
  39. Ian Cassar, Adrian Francalanza, Luca Aceto, and Anna Ingólfsdóttir. A Survey of Runtime Monitoring Instrumentation Techniques. In PrePost iFM, volume 254 of EPTCS, pages 15-28, 2017. Google Scholar
  40. Ian Cassar, Adrian Francalanza, Duncan Paul Attard, Luca Aceto, and Anna Ingólfsdóttir. A Suite of Monitoring Tools for Erlang. In RV-CuBES, volume 3 of Kalpa Publications in Computing, pages 41-47, 2017. Google Scholar
  41. Ian Cassar, Adrian Francalanza, and Simon Said. Improving Runtime Overheads for detectEr. In FESCA, volume 178 of EPTCS, pages 1-8, 2015. Google Scholar
  42. Francesco Cesarini and Simon Thompson. Erlang Programming: A Concurrent Approach to Software Development. O'Reilly Media, 2009. Google Scholar
  43. Bernadette Charron-Bost, Friedemann Mattern, and Gerard Tel. Synchronous, Asynchronous, and Causally Ordered Communication. Distributed Comput., 9(4):173-191, 1996. Google Scholar
  44. Natalia Chechina, Kenneth MacKenzie, Simon J. Thompson, Phil Trinder, Olivier Boudeville, Viktoria Fordós, Csaba Hoch, Amir Ghaffari, and Mario Moro Hernandez. Evaluating Scalable Distributed Erlang for Scalability and Reliability. IEEE Trans. Parallel Distributed Syst., 28(8):2244-2257, 2017. Google Scholar
  45. Feng Chen and Grigore Rosu. Java-MOP: A Monitoring Oriented Programming Environment for Java. In TACAS, volume 3440 of LNCS, pages 546-550, 2005. Google Scholar
  46. Feng Chen and Grigore Rosu. Mop: An Efficient and Generic Runtime Verification Framework. In OOPSLA, pages 569-588, 2007. Google Scholar
  47. Feng Chen and Grigore Rosu. Parametric Trace Slicing and Monitoring. In TACAS, volume 5505 of LNCS, pages 246-261, 2009. Google Scholar
  48. Maria Christakis, Alkis Gotovos, and Konstantinos Sagonas. Systematic Testing for Detecting Concurrency Errors in Erlang Programs. In ICST, pages 154-163. IEEE Computer Society, 2013. Google Scholar
  49. Christian Colombo and Yliès Falcone. Organising LTL Monitors over Distributed Systems with a Global Clock. FMSD, 49:109-158, 2016. Google Scholar
  50. Christian Colombo, Adrian Francalanza, and Rudolph Gatt. Elarva: A Monitoring Tool for Erlang. In RV, volume 7186 of LNCS, pages 370-374, 2011. Google Scholar
  51. Christian Colombo, Adrian Francalanza, Ruth Mizzi, and Gordon J. Pace. polyLarva: Runtime Verification with Configurable Resource-Aware Monitoring Boundaries. In SEFM, volume 7504 of LNCS, pages 218-232, 2012. Google Scholar
  52. Christian Colombo and Gordon J. Pace. Runtime Verification - A Hands-On Approach in Java. Springer, 2022. Google Scholar
  53. Christian Colombo, Gordon J. Pace, and Gerardo Schneider. LARVA - Safer Monitoring of Real-Time Java Programs (Tool Paper). In SEFM, pages 33-37, 2009. Google Scholar
  54. Markus Dahm. Byte Code Engineering with the BCEL API. Technical report, Java Informationstage 99, 2001. Google Scholar
  55. Jeffrey Dean and Sanjay Ghemawat. MapReduce: Simplified Data Processing on Large Clusters. Commun. ACM, 51:107-113, 2008. Google Scholar
  56. Mathieu Desnoyers and Michel Dagenais. The LTTng Tracer: A Low Impact Performance and Behavior Monitor for GNU/Linux. Technical report, École Polytechnique de Montréal, 2006. Google Scholar
  57. Jean Dollimore, Tim Kindberg, and George Coulouris. Distributed Systems: Concepts and Design. Addison-Wesley, 2005. Google Scholar
  58. Eclipse/IBM. OpenJ9, 2021. URL: https://www.eclipse.org/openj9.
  59. Antoine El-Hokayem and Yliès Falcone. Monitoring Decentralized Specifications. In ISSTA, pages 125-135, 2017. Google Scholar
  60. Antoine El-Hokayem and Yliès Falcone. On the Monitoring of Decentralized Specifications: Semantics, Properties, Analysis, and Simulation. ACM Trans. Softw. Eng. Methodol., 29:1:1-1:57, 2020. Google Scholar
  61. Úlfar Erlingsson. The Inlined Reference Monitor Approach to Security Policy Enforcement. PhD thesis, Cornell University, US, 2004. Google Scholar
  62. Úlfar Erlingsson and Fred B. Schneider. SASI Enforcement of Security Policies: A Retrospective. In NSPW, pages 87-95, 1999. Google Scholar
  63. Yliès Falcone, Klaus Havelund, and Giles Reger. A Tutorial on Runtime Verification. In Engineering Dependable Software Systems, volume 34 of NATO Science for Peace and Security Series, D: Information and Communication Security, pages 141-175. IOS Press, 2013. Google Scholar
  64. Yliès Falcone, Srdan Krstic, Giles Reger, and Dmitriy Traytel. A Taxonomy for Classifying Runtime Verification Tools. STTT, 23:255-284, 2021. Google Scholar
  65. Yliès Falcone, Hosein Nazarpour, Saddek Bensalem, and Marius Bozga. Monitoring Distributed Component-Based Systems. In FACS, volume 13077 of LNCS, pages 153-173, 2021. Google Scholar
  66. Yliès Falcone, Hosein Nazarpour, Mohamad Jaber, Marius Bozga, and Saddek Bensalem. Tracing Distributed Component-Based Systems, a Brief Overview. In RV, volume 11237 of LNCS, pages 417-425, 2018. Google Scholar
  67. Apache Software Foundtation. JMeter, 2020. URL: https://jmeter.apache.org.
  68. Pierre Fraigniaud, Sergio Rajsbaum, and Corentin Travers. On the Number of Opinions Needed for Fault-Tolerant Run-Time Monitoring in Distributed Systems. In RV, volume 8734 of LNCS, pages 92-107, 2014. Google Scholar
  69. Adrian Francalanza. A Theory of Monitors. Inf. Comput., 281:104704, 2021. Google Scholar
  70. Adrian Francalanza, Luca Aceto, Antonis Achilleos, Duncan Paul Attard, Ian Cassar, Dario Della Monica, and Anna Ingólfsdóttir. A Foundation for Runtime Monitoring. In RV, volume 10548 of LNCS, pages 8-29, 2017. Google Scholar
  71. Adrian Francalanza, Jorge A. Pérez, and César Sánchez. Runtime Verification for Decentralised and Distributed Systems. In Lectures on RV, volume 10457 of LNCS, pages 176-210. Springer, 2018. Google Scholar
  72. Adrian Francalanza and Aldrin Seychell. Synthesising Correct Concurrent Runtime Monitors. FMSD, 46:226-261, 2015. Google Scholar
  73. Sukumar Ghosh. Distributed Systems: An Algorithmic Approach. CRC, 2014. Google Scholar
  74. Patrice Godefroid. Model Checking for Programming Languages using Verisoft. In POPL, pages 174-186. ACM Press, 1997. Google Scholar
  75. Susanne Graf, Doron A. Peled, and Sophie Quinton. Monitoring Distributed Systems Using Knowledge. In FORTE, volume 6722 of LNCS, pages 183-197, 2011. Google Scholar
  76. Susan L. Graham, Peter B. Kessler, and Marshall K. McKusick. gprof: A Call Graph Execution Profiler. In SIGPLAN Symposium on Compiler Construction, pages 120-126. ACM, 1982. Google Scholar
  77. Jim Gray. The Benchmark Handbook for Database and Transaction Processing Systems. Morgan Kaufmann, 1993. Google Scholar
  78. Radu Grigore, Dino Distefano, Rasmus Lerchedahl Petersen, and Nikos Tzevelekos. Runtime Verification Based on Register Automata. In TACAS, volume 7795 of LNCS, pages 260-276, 2013. Google Scholar
  79. Duncan A. Grove and Paul D. Coddington. Analytical Models of Probability Distributions for MPI Point-to-Point Communication Times on Distributed Memory Parallel Computers. In ICA3PP, volume 3719 of LNCS, pages 406-415, 2005. Google Scholar
  80. Eric A. Hall. Internet Core Protocols: The Definitive Guide. O'Reilly Media, 2000. Google Scholar
  81. Klaus Havelund, Giles Reger, Daniel Thoma, and Eugen Zalinescu. Monitoring Events that Carry Data. In Lectures on Runtime Verification, volume 10457 of LNCS, pages 61-102. Springer, 2018. Google Scholar
  82. Carl Hewitt, Peter Boehler Bishop, and Richard Steiger. A Universal Modular ACTOR Formalism for Artificial Intelligence. In IJCAI, pages 235-245, 1973. Google Scholar
  83. Yongqiang Huang and Hector Garcia-Molina. Exactly-Once Semantics in a Replicated Messaging System. In ICDE, pages 3-12. IEEE Computer Society, 2001. Google Scholar
  84. Shams Mahmood Imam and Vivek Sarkar. Savina - An Actor Benchmark Suite: Enabling Empirical Evaluation of Actor Libraries. In AGERE!@SPLASH, pages 67-80, 2014. Google Scholar
  85. Justin Iurman, Frank Brockners, and Benoit Donnet. Towards Cross-Layer Telemetry. In ANRW, pages 15-21. ACM, 2021. Google Scholar
  86. Richard Jones, Antony Hosking, and Eliot Moss. The Garbage Collection Handbook: The Art of Automatic Memory Management. CRC, 2020. Google Scholar
  87. Nicolai M. Josuttis. SOA in Practice: The Art of Distributed System Design: Theory in Practice. O'Reilly Media, 2007. Google Scholar
  88. Saša Jurić. Elixir in Action. Manning, 2019. Google Scholar
  89. Bill Kayser. What is the expected distribution of website response times?, 2017. URL: https://blog.newrelic.com/engineering/expected-distributions-website-response-times.
  90. Gregor Kiczales, Erik Hilsdale, Jim Hugunin, Mik Kersten, Jeffrey Palm, and William G. Griswold. An Overview of AspectJ. In ECOOP, volume 2072 of LNCS, pages 327-353, 2001. Google Scholar
  91. Moonzoo Kim, Mahesh Viswanathan, Sampath Kannan, Insup Lee, and Oleg Sokolsky. Java-MaC: A Run-Time Assurance Approach for Java Programs. FMSD, 24:129-155, 2004. Google Scholar
  92. Hermann Kopetz. Real-Time Systems: Design Principles for Distributed Embedded Applications (Real-Time Systems Series). Springer, 2011. Google Scholar
  93. Ajay D. Kshemkalyani and Mukesh Singhal. Distributed Computing: Principles, Algorithms, and Systems. Cambridge University Press, 2011. Google Scholar
  94. Roland Kuhn, Brian Hanafee, and Jamie Allen. Reactive Design Patterns. Manning, 2016. Google Scholar
  95. Leslie Lamport. Time, Clocks, and the Ordering of Events in a Distributed System. Commun. ACM, 21(7):558-565, 1978. Google Scholar
  96. Leslie Lamport, Robert E. Shostak, and Marshall C. Pease. The Byzantine Generals Problem. ACM Trans. Program. Lang. Syst., 4:382-401, 1982. Google Scholar
  97. Julien Lange and Nobuko Yoshida. Verifying Asynchronous Interactions via Communicating Session Automata. In CAV, volume 11561 of LNCS, pages 97-117, 2019. Google Scholar
  98. Paul Lavery and Takuo Watanabe. An Actor-Based Runtime Monitoring System for Web and Desktop Applications. In SNPD, pages 385-390. IEEE Computer Society, 2017. Google Scholar
  99. Philipp Lengauer, Verena Bitto, Hanspeter Mössenböck, and Markus Weninger. A Comprehensive Java Benchmark Study on Memory and Garbage Collection Behavior of DaCapo, DaCapo Scala, and SPECjvm2008. In ICPE, pages 3-14, 2017. Google Scholar
  100. Bryon C. Lewis and Albert E. Crews. The Evolution of Benchmarking as a Computer Performance Evaluation Technique. MIS Q., 9:7-16, 1985. Google Scholar
  101. Jay Ligatti, Lujo Bauer, and David Walker. Edit Automata: Enforcement Mechanisms for Run-Time Security Policies. Int. J. Inf. Sec., 4:2-16, 2005. Google Scholar
  102. Zhen Liu, Nicolas Niclausse, and César Jalpa-Villanueva. Traffic Model and Performance Evaluation of Web Servers. Perform. Evaluation, 46:77-100, 2001. Google Scholar
  103. Qingzhou Luo and Grigore Rosu. EnforceMOP: A Runtime Property Enforcement System for Multithreaded Programs. In ISSTA, pages 156-166, 2013. Google Scholar
  104. Deep Medhi and Karthik Ramasamy. Chapter 3 - routing protocols: Framework and principles. In Network Routing (Second Edition), The Morgan Kaufmann Series in Networking, pages 64-113. Morgan Kaufmann, 2018. Google Scholar
  105. Silvana M. Melo, Jeffrey C. Carver, Paulo S. L. Souza, and Simone R. S. Souza. Empirical Research on Concurrent Software Testing: A Systematic Mapping Study. Inf. Softw. Technol., 105:226-251, 2019. Google Scholar
  106. Patrick O'Neil Meredith, Dongyun Jin, Dennis Griffith, Feng Chen, and Grigore Rosu. An Overview of the MOP Runtime Verification Framework. STTT, 14:249-289, 2012. Google Scholar
  107. Patrick O'Neil Meredith and Grigore Rosu. Efficient Parametric Runtime Verification with Deterministic String Rewriting. In ASE, pages 70-80, 2013. Google Scholar
  108. Microsoft. MSDN, 2021. URL: https://msdn.microsoft.com.
  109. Ian Molyneaux. The Art of Application Performance Testing 2e. O'Reilly Media, 2014. Google Scholar
  110. Menna Mostafa and Borzoo Bonakdarpour. Decentralized Runtime Verification of LTL Specifications in Distributed Systems. In IPDPS, pages 494-503, 2015. Google Scholar
  111. Nicholas Nethercote and Julian Seward. Valgrind: A Framework for Heavyweight Dynamic Binary Instrumentation. In PLDI, pages 89-100. ACM, 2007. Google Scholar
  112. Rumyana Neykova. Multiparty Session Types for Dynamic Verification of Distributed Systems. PhD thesis, Imperial College London, UK, 2017. Google Scholar
  113. Rumyana Neykova and Nobuko Yoshida. Let it Recover: Multiparty Protocol-Induced Recovery. In CC, pages 98-108, 2017. Google Scholar
  114. Rumyana Neykova and Nobuko Yoshida. Multiparty Session Actors. LMCS, 13, 2017. Google Scholar
  115. Nicolas Niclausse. Tsung, 2017. URL: http://tsung.erlang-projects.org.
  116. Scott Oaks. Java Performance: In-Depth Advice for Tuning and Programming Java 8, 11, and Beyond. CRC, 2020. Google Scholar
  117. Martin Odersky, Lex Spoon, Bill Venners, and Frank Sommers. Programming in Scala. Artima Inc., 2021. Google Scholar
  118. Kevin Quick. Thespian, 2020. URL: https://thespianpy.com/doc.
  119. Giles Reger, Helena Cuenca Cruz, and David E. Rydeheard. MarQ: Monitoring at Runtime with QEA. In TACAS, volume 9035 of LNCS, pages 596-610, 2015. Google Scholar
  120. Sartaj Sahni and George L. Vairaktarakis. The Master-Slave Paradigm in Parallel Computer and Industrial Settings. J. Glob. Optim., 9:357-377, 1996. Google Scholar
  121. Raja R. Sambasivan, Ilari Shafer, Jonathan Mace, Benjamin H. Sigelman, Rodrigo Fonseca, and Gregory R. Ganger. Principled Workflow-Centric Tracing of Distributed Systems. In SoCC, pages 401-414. ACM, 2016. Google Scholar
  122. Torben Scheffel and Malte Schmitz. Three-Valued Asynchronous Distributed Runtime Verification. In MEMOCODE, pages 52-61, 2014. Google Scholar
  123. Fred B. Schneider. Enforceable Security Policies. ACM Trans. Inf. Syst. Secur., 3:30-50, 2000. Google Scholar
  124. Joshua Schneider, David A. Basin, Frederik Brix, Srdan Krstic, and Dmitriy Traytel. Scalable Online First-Order Monitoring. Int. J. Softw. Tools Technol. Transf., 23:185-208, 2021. Google Scholar
  125. Koushik Sen, Grigore Rosu, and Gul Agha. Runtime Safety Analysis of Multithreaded Programs. In ESEC / SIGSOFT FSE, pages 337-346, 2003. Google Scholar
  126. Koushik Sen, Grigore Rosu, and Gul Agha. Online Efficient Predictive Safety Analysis of Multithreaded Programs. Int. J. Softw. Tools Technol. Transf., 8:248-260, 2006. Google Scholar
  127. Koushik Sen, Abhay Vardhan, Gul Agha, and Grigore Rosu. Efficient Decentralized Monitoring of Safety in Distributed Systems. In ICSE, pages 418-427, 2004. Google Scholar
  128. Eric Stenman. The erlang runtime system, 2023. Google Scholar
  129. Sasu Tarkoma. Overlay Networks: Toward Information Networking. Auerbach, 2010. Google Scholar
  130. The Pony Team. Ponylang, 2021. URL: https://tutorial.ponylang.io.
  131. Ulf T. Wiger, Gösta Ask, and Kent Boortz. World-Class Product Certification using Erlang. ACM SIGPLAN Notices, 37(12):25-34, 2002. Google Scholar
  132. Jiali Yao, Zhigeng Pan, and Hongxin Zhang. A Distributed Render Farm System for Animation Production. In ICEC, volume 5709 of LNCS, pages 264-269, 2009. Google Scholar
  133. Teng Zhang, Greg Eakman, Insup Lee, and Oleg Sokolsky. Overhead-Aware Deployment of Runtime Monitors. In RV, volume 11757 of LNCS, pages 375-381, 2019. Google Scholar
Questions / Remarks / Feedback
X

Feedback for Dagstuhl Publishing


Thanks for your feedback!

Feedback submitted

Could not send message

Please try again later or send an E-mail