Runtime Verification for Decentralized and Distributed Systems ∗

This chapter surveys runtime verification research related to distributed systems. We report solutions that study how to monitor system with some distributed characteristic, solutions that use a distributed platform for performing a monitoring task, and foundational works that present semantics for decomposing monitors or expressing specifications amenable for distributed systems. We will identify some characteristics that distinguish distributed monitoring from centralized monitoring, and characteristics that allow to classify distributed runtime verification works based on features of the executing platforms, the specification language and the system description. Then, we will use these characteristics to describe and compare the distributed runtime verification solutions proposed in the research

[1]  Nobuko Yoshida,et al.  Practical Interruptible Conversations - Distributed Dynamic Verification with Session Types and Python , 2013, RV.

[2]  Grigore Rosu,et al.  Parametric Trace Slicing and Monitoring , 2009, TACAS.

[3]  Adrian Francalanza,et al.  Runtime Adaptation for Actor Systems , 2015, RV.

[4]  Nobuko Yoshida,et al.  The Scribble Protocol Language , 2013, TGC.

[5]  Amir Pnueli,et al.  PSL Model Checking and Run-Time Verification Via Testers , 2006, FM.

[6]  Adrian Francalanza,et al.  On synchronous and asynchronous monitor instrumentation for actor-based systems , 2014 .

[7]  Hagit Attiya,et al.  Distributed Computing: Fundamentals, Simulations and Advanced Topics , 1998 .

[8]  LamportLeslie Time, clocks, and the ordering of events in a distributed system , 1978 .

[9]  Vijay K. Garg,et al.  Techniques and applications of computation slicing , 2003, Distributed Computing.

[10]  Pierre Fraigniaud,et al.  On the Number of Opinions Needed for Fault-Tolerant Run-Time Monitoring in Distributed Systems , 2014, RV.

[11]  Pierre Fraigniaud,et al.  Decentralized Asynchronous Crash-Resilient Runtime Verification , 2016, CONCUR.

[12]  Colin J. Fidge,et al.  Logical time in distributed computing systems , 1991, Computer.

[13]  Koushik Sen,et al.  Efficient decentralized monitoring of safety in distributed systems , 2004, Proceedings. 26th International Conference on Software Engineering.

[14]  Friedemann Mattern,et al.  Virtual Time and Global States of Distributed Systems , 2002 .

[15]  Adrian Francalanza,et al.  On Implementing a Monitor-Oriented Programming Framework for Actor Systems , 2016, IFM.

[16]  Anca Muscholl,et al.  A Note on Monitors and Büchi Automata , 2015, ICTAC.

[17]  Gordon J. Pace,et al.  Distributed system contract monitoring , 2013, J. Log. Algebraic Methods Program..

[18]  Leslie Lamport,et al.  Distributed snapshots: determining global states of distributed systems , 1985, TOCS.

[19]  Adrian Francalanza,et al.  Investigating Instrumentation Techniques for ESB Runtime Verification , 2015, SEFM.

[20]  Martin Leucker,et al.  Runtime Verification for LTL and TLTL , 2011, TSEM.

[21]  Keith Marzullo,et al.  Consistent detection of global predicates , 1991, PADD '91.

[22]  Vijay K. Garg,et al.  Detecting Temporal Logic Predicates on Distributed Computations , 2007, DISC.

[23]  Christian Colombo,et al.  Organising LTL Monitors over Distributed Systems with a Global Clock , 2014, RV.

[24]  Grigore Rosu,et al.  Rewriting-Based Techniques for Runtime Verification , 2005, Automated Software Engineering.

[25]  Vijay K. Garg,et al.  Partial Order Trace Analyzer (POTA) for Distributed Programs , 2003, RV@CAV.

[26]  Luca Aceto,et al.  Monitorability for the Hennessy–Milner logic with recursion , 2017, Formal Methods Syst. Des..

[27]  Konrad Slind,et al.  Monitoring distributed systems , 1987, TOCS.

[28]  Laura Bocchi,et al.  Timed runtime monitoring for multiparty conversations , 2017, Formal Aspects of Computing.

[29]  Vijay K. Garg Elements of distributed computing , 2002 .

[30]  Ivan Lanese,et al.  Foundations of Session Types and Behavioural Contracts , 2016, ACM Comput. Surv..

[31]  Vijay K. Garg,et al.  Solving Computation Slicing Using Predicate Detection , 2007, IEEE Transactions on Parallel and Distributed Systems.

[32]  Vasco Thudichum Vasconcelos,et al.  Language Primitives and Type Discipline for Structured Communication-Based Programming Revisited: Two Systems for Higher-Order Session Communication , 1998, SecReT@ICALP.

[33]  Limin Jia,et al.  Policy auditing over incomplete logs: theory, implementation and applications , 2011, CCS '11.

[34]  Adrian Francalanza,et al.  Elarva: A Monitoring Tool for Erlang , 2011, RV.

[35]  Jorge A. Pérez,et al.  Event-based run-time adaptation in communication-centric systems , 2016, Formal Aspects of Computing.

[36]  Yliès Falcone,et al.  Decentralised LTL monitoring , 2011, Formal Methods in System Design.

[37]  Joseph Sifakis,et al.  From high-level component-based models to distributed implementations , 2010, EMSOFT '10.

[38]  Ezio Bartocci,et al.  Sampling-based Decentralized Monitoring for Networked Embedded Systems , 2013, HAS.

[39]  Mennatallah Hasabelnaby,et al.  Decentralized Runtime Verification of LTL Specifications in Distributed Systems , 2016 .

[40]  Nobuko Yoshida,et al.  Practical interruptible conversations: distributed dynamic verification with multiparty session types and Python , 2015, Formal Methods Syst. Des..

[41]  Vijay K. Garg,et al.  A Distributed Abstraction Algorithm for Online Predicate Detection , 2013, 2013 IEEE 32nd International Symposium on Reliable Distributed Systems.

[42]  Grigore Rosu,et al.  EnforceMOP: a runtime property enforcement system for multithreaded programs , 2013, ISSTA.

[43]  Thanh-Hung Nguyen,et al.  Runtime verification of component-based systems in the BIP framework with formally-proved sound and complete instrumentation , 2015, Software & Systems Modeling.

[44]  Laura Bocchi,et al.  Monitoring Networks through Multiparty Session Types , 2013, FMOODS/FORTE.

[45]  Claudio Antares Mezzina,et al.  Reversible Sessions Using Monitors , 2016, PLACES.

[46]  Yliès Falcone,et al.  What can you verify and enforce at runtime? , 2012, International Journal on Software Tools for Technology Transfer.

[47]  Nobuko Yoshida,et al.  SPY: Local Verification of Global Protocols , 2013, RV.

[48]  Vijay K. Garg,et al.  Detecting Temporal Logic Predicates in Distributed Programs Using Computation Slicing , 2003, OPODIS.

[49]  Sebastian Fischmeister,et al.  Runtime verification with minimal intrusion through parallelism , 2015, Formal Methods Syst. Des..

[50]  Claudio Antares Mezzina,et al.  Reversibility in session-based concurrency: A fresh look , 2017, J. Log. Algebraic Methods Program..

[51]  Ilaria Castellani,et al.  Self-Adaptation and Secure Information Flow in Multiparty Structured Communications: A Unified Perspective , 2014, BEAT.

[52]  Srdjan Marinovic,et al.  Monitoring Compliance Policies over Incomplete and Disagreeing Logs , 2012, RV.

[53]  Vijay K. Garg,et al.  Detection of global predicates: Techniques and their limitations , 1998, Distributed Computing.

[54]  Adrian Francalanza,et al.  Synthesising correct concurrent runtime monitors , 2015, Formal Methods Syst. Des..

[55]  Adrian Francalanza,et al.  Synthesising Correct Concurrent Runtime Monitors - (Extended Abstract) , 2013, RV.

[56]  Adrian Francalanza,et al.  A Theory of Monitors - (Extended Abstract) , 2016, FoSSaCS.

[57]  Robin Milner,et al.  A Calculus of Mobile Processes, II , 1992, Inf. Comput..

[58]  Matthew Hennessy,et al.  A Theory of System Behaviour in the Presence of Node and Link Failures , 2005, CONCUR.

[59]  Koushik Sen,et al.  Decentralized runtime analysis of multithreaded applications , 2006, Proceedings 20th IEEE International Parallel & Distributed Processing Symposium.

[60]  George Coulouris,et al.  Distributed systems - concepts and design , 1988 .

[61]  Pierre Fraigniaud,et al.  Challenges in Fault-Tolerant Distributed Runtime Verification , 2016, ISoLA.

[62]  Multiparty asynchronous session types , 2008, POPL '08.

[63]  Ilaria Castellani,et al.  Self-adaptation and secure information flow in multiparty communications , 2016, Formal Aspects of Computing.

[64]  Flaviu Cristian,et al.  The Timed Asynchronous Distributed System Model , 1999, IEEE Trans. Parallel Distributed Syst..

[65]  Vijay K. Garg,et al.  Detection of Weak Unstable Predicates in Distributed Programs , 1994, IEEE Trans. Parallel Distributed Syst..

[66]  Felix Klaedtke,et al.  Failure-aware Runtime Verification of Distributed Systems , 2015, FSTTCS.

[67]  Gordon J. Pace,et al.  polyLarva: Runtime Verification with Configurable Resource-Aware Monitoring Boundaries , 2012, SEFM.

[68]  Vijay K. Garg,et al.  On slicing a distributed computation , 2001, Proceedings 21st International Conference on Distributed Computing Systems.

[69]  Limin Jia,et al.  Monitors and blame assignment for higher-order session types , 2016, POPL.

[70]  Franz Baader,et al.  Runtime verification using the temporal description logic ALC-LTL revisited , 2014, J. Appl. Log..

[71]  Vijay K. Garg,et al.  Formal Verification of Simulation Traces Using Computation Slicing , 2007, IEEE Transactions on Computers.

[72]  Adrian Francalanza,et al.  Improving Runtime Overheads for detectEr , 2015, FESCA.

[73]  Bernd Finkbeiner,et al.  LOLA: runtime monitoring of synchronous systems , 2005, 12th International Symposium on Temporal Representation and Reasoning (TIME'05).

[74]  Colin J. Fidge,et al.  Timestamps in Message-Passing Systems That Preserve the Partial Ordering , 1988 .

[75]  Joseph Sifakis,et al.  Automated conflict-free distributed implementation of component-based models , 2010, International Symposium on Industrial Embedded System (SIES).

[76]  Max Felser,et al.  Real-Time Ethernet - Industry Prospective , 2005, Proceedings of the IEEE.

[77]  Oleg Sokolsky,et al.  SMEDL: Combining Synchronous and Asynchronous Monitoring , 2016, RV.

[78]  Adrian Francalanza,et al.  A Monitoring Tool for a Branching-Time Logic , 2016, RV.