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

Carzaniga, A., Gorla, ., A:, M., A, ., Perino, N., Pezze', M. (2013). Automatic Recovery from Runtime Failures. In Proceedings of the international Conference on software Engineering (pp.782-791). IEEE Press [10.1109/ICSE.2013.6606624].

Automatic Recovery from Runtime Failures

PEZZE', MAURO
2013

Abstract

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
paper
self-healing software systems, autonomic software systems, intrinsic redundancy, automatic workaround
English
International Conference on Software Engineering (ICSE) May 18-26
2013
Notkin, D; Cheng, B; Pohl, K
Notkin, D; Cheng, B; Pohl, K
Proceedings of the international Conference on software Engineering
978-1-4673-3076-3
2013
782
791
6606624
none
Carzaniga, A., Gorla, ., A:, M., A, ., Perino, N., Pezze', M. (2013). Automatic Recovery from Runtime Failures. In Proceedings of the international Conference on software Engineering (pp.782-791). IEEE Press [10.1109/ICSE.2013.6606624].
File in questo prodotto:
Non ci sono file associati a questo prodotto.

I documenti in IRIS sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/10281/43684
Citazioni
  • Scopus 80
  • ???jsp.display-item.citation.isi??? 48
Social impact