Automatic recovery from runtime failures

Automatic recovery from runtime failures
复制标题

DOI:
10.1109/icse.2013.6606624
复制
发表时间:
2013-05
期刊:
2013 35th International Conference on Software Engineering (ICSE)
影响因子:
--
通讯作者:
A. Carzaniga;Alessandra Gorla;Andrea Mattavelli;Nicolò Perino;M. Pezzè
A. Carzaniga;Alessandra Gorla;Andrea Mattavelli;Nicolò Perino;M. Pezzè
中科院分区:
其他
文献类型:
--
作者:
A. Carzaniga;Alessandra Gorla;Andrea Mattavelli;Nicolò Perino;M. Pezzè

文献摘要

被引文献

相似文献

我们提出了一种技术,使应用程序恢复故障。这种技术的目的是在开发人员进行永久性和根本性修复的同时,在现场维护故障应用程序的功能。我们针对基于可重用组件构建的应用程序中的现场故障。特别是,该技术通过识别由避免故障的故障组件的替代用途组成的变通方案来利用这些组件的固有冗余。该技术目前是为Java应用程序实现的,但对应用程序的性质几乎没有假设,并且在不中断应用程序的执行流和不重新启动其组件的情况下工作。我们证明和评估这种技术的四个中型应用程序和两个流行的库的可重用组件受真实的和种子故障。在这些情况下,该技术是有效的,根据应用程序的不同,可以在19%到48%的故障导致错误的情况下保持应用程序的完整功能。实验还表明,该技术在所有情况下都会产生可接受的运行时开销。
We present a technique to make applications resilient to failures. This technique is intended to maintain a faulty application functional in the field while the developers work on permanent and radical fixes. We target field failures in applications built on reusable components. In particular, the technique exploits the intrinsic redundancy of those components by identifying workarounds consisting of alternative uses of the faulty components that avoid the failure. The technique is currently implemented for Java applications but makes little or no assumptions about the nature of the application, and works without interrupting the execution flow of the application and without restarting its components. We demonstrate and evaluate this technique on four mid-size applications and two popular libraries of reusable components affected by real and seeded faults. In these cases the technique is effective, maintaining the application fully functional with between 19% and 48% of the failure-causing faults, depending on the application. The experiments also show that the technique incurs an acceptable runtime overhead in all cases.