A survey of software runtime monitoring

With the wide application of complex software systems in various fields of social life, how to ensure the reliability of software systems at runtime becomes a hot issue to be solved. By observing the behavior information of the running software, software runtime monitoring can support the credibility of the software behavior, and can be used for software fault analysis and localization. In this paper, starting from the basic concepts of software runtime monitoring, the basic architecture and monitoring levels of software runtime monitoring are introduced. Then the typical software runtime monitoring methods are presented and classified. Moreover, these different monitoring methods are analyzed and compared. Finally, the existing problems are discussed, and possible future research directions are given.

[1]  Hanêne Ben-Abdallah,et al.  A Monitoring and Checking Framework for Run-time Correctness Assurance , 1998 .

[2]  Mahesh Viswanathan,et al.  Verisim: Formal analysis of network simulations , 2000, ISSTA '00.

[3]  Grigore Rosu,et al.  An overview of the MOP runtime verification framework , 2012, International Journal on Software Tools for Technology Transfer.

[4]  Marcelo d'Amorim,et al.  A Formal Monitoring-Based Framework for Software Development and Analysis , 2004, ICFEM.

[5]  Wang Huaimin,et al.  Research and implementation of trusted software constitution based on monitoring , 2009 .

[6]  Ragunathan Rajkumar,et al.  Runtime monitoring of timing constraints in distributed real-time systems , 2005, Real-Time Systems.

[7]  David Luckham,et al.  Two Dimensional Pinpointing: An Application of Formal Specification to Debugging Packages , 1989 .

[8]  Carl A. Gunter,et al.  Requirements for a Practical Network Event Recognition Language , 2002, RV@FLoC.

[9]  Klaus Havelund,et al.  Runtime Verification of C Programs , 2008, TestCom/FATES.

[10]  Insup Lee,et al.  Monitoring, Checking, and Steering of Real-Time Systems , 2002, Electron. Notes Theor. Comput. Sci..

[11]  Insup Lee,et al.  Run-Time Checking of Dynamic Properties , 2006, Electron. Notes Theor. Comput. Sci..

[12]  Narciso Martí-Oliet,et al.  Maude: specification and programming in rewriting logic , 2002, Theor. Comput. Sci..

[13]  Ann Q. Gates,et al.  A taxonomy and catalog of runtime software-fault monitoring tools , 2004, IEEE Transactions on Software Engineering.

[14]  Sriram Sankar,et al.  Concurrent runtime monitoring of formally specified programs , 1993, Computer.

[15]  Grigore Rosu,et al.  An Overview of the Runtime Verification Tool Java PathExplorer , 2004, Formal Methods Syst. Des..

[16]  Chinya V. Ravishankar,et al.  Monitoring and debugging distributed realtime programs , 1992, Softw. Pract. Exp..

[17]  Grigore Rosu,et al.  JavaMOP: Efficient parametric runtime monitoring framework , 2012, 2012 34th International Conference on Software Engineering (ICSE).

[18]  Grigore Rosu,et al.  Mop: an efficient and generic runtime verification framework , 2007, OOPSLA.

[19]  Hanêne Ben-Abdallah,et al.  Formally specified monitoring of temporal properties , 1999, Proceedings of 11th Euromicro Conference on Real-Time Systems. Euromicro RTS'99.

[20]  Marc Donner,et al.  Run-time monitoring of real-time systems , 1991, [1991] Proceedings Twelfth Real-Time Systems Symposium.

[21]  Murat Karaorman,et al.  jContractor: Introducing Design-by-Contract to Java Using Reflective Bytecode Instrumentation , 2005, Formal Methods Syst. Des..

[22]  Heike Wehrheim,et al.  Jass - Java with Assertions , 2001, RV@CAV.

[23]  Mahesh Viswanathan,et al.  Runtime Assurance Based On Formal Specifications , 1999, PDPTA.

[24]  Grigore Rosu,et al.  Efficient monitoring of safety properties , 2004, International Journal on Software Tools for Technology Transfer.

[25]  Jeffrey J. P. Tsai,et al.  A Noninterference Monitoring and Replay Mechanism for Real-Time Software Testing and Debugging , 1990, IEEE Trans. Software Eng..

[26]  Wen Jing Toward a Software Architectural Design Approach for Trusted Software Based on Monitoring , 2010 .

[27]  Wang Huaimin General thread monitor platform based on aspect-oriented programming , 2007 .

[28]  Grigore Rosu,et al.  Hardware Runtime Monitoring for Dependable COTS-Based Real-Time Embedded Systems , 2008, 2008 Real-Time Systems Symposium.

[29]  Grigore Rosu,et al.  Java-MOP: A Monitoring Oriented Programming Environment for Java , 2005, TACAS.

[30]  Zhe Chen,et al.  Parametric Runtime Verification of C Programs , 2016, TACAS.

[31]  Alwyn E. Goodloe,et al.  Monitoring Distributed Real-Time Systems: A Survey and Future Directions , 2010 .

[32]  Luciano Baresi,et al.  A comparison framework for runtime monitoring approaches , 2017, J. Syst. Softw..

[33]  M. Leucker,et al.  Model-based runtime analysis of distributed reactive systems , 2006, Australian Software Engineering Conference (ASWEC'06).

[34]  Zibin Zheng,et al.  A Runtime Verification Based Trace-Oriented Monitoring Framework for Cloud Systems , 2014, 2014 IEEE International Symposium on Software Reliability Engineering Workshops.

[35]  Vern Paxson,et al.  Bro: a system for detecting network intruders in real-time , 1998, Comput. Networks.

[36]  Zhu Jun,et al.  A Runtime Monitoring Web Services Interaction Behaviors Method Based on CPN , 2011 .