Automatic workarounds as failure recoveries

Mechanisms to automatically recover from problems are key elements to designing self-managed software systems. So far most research on self-managed systems focused on non-functional problems, such as architectural mismatches, performance problems and configuration incompatibilities. In our work, we focus on techniques for automatically recovering from functional failures. We aim to exploit the intrinsic redundancy of many complex software systems that can produce the same results in several ways. We are investigating techniques that, in case of failure, look for execution sequences that are equivalent to the one that leads to the failure, and can thus be executed in alternative to the failing one to produce the expected results. We refer to sequences that are equivalent to failing ones and can recover from failures as automatic workarounds. The contribution of the thesis will be the definition of techniques to automatically generate equivalent sequences from different models, and to identify automatic workarounds within sets of equivalent sequences, and a thorough evaluation of the techniques in the context of self-healing software systems.

[1]  Andreas Zeller,et al.  Mining object behavior with ADABU , 2006, WODA '06.

[2]  Israel Koren,et al.  Fault-Tolerant Systems , 2007 .

[3]  Luciano Baresi,et al.  Self-healing BPEL processes with Dynamo and the JBoss rule engine , 2007, ESSPE '07.

[4]  George Candea,et al.  JAGR: an autonomous self-recovering application server , 2003, 2003 Autonomic Computing Workshop.

[5]  Rui Zhang Modeling Autonomic Recovery in Web Services with Multi-tier Reboots , 2007, IEEE International Conference on Web Services (ICWS 2007).

[6]  Jeff Magee,et al.  Self-Managed Systems: an Architectural Challenge , 2007, Future of Software Engineering (FOSE '07).

[7]  Petr Jan Horn,et al.  Autonomic Computing: IBM's Perspective on the State of Information Technology , 2001 .

[8]  George Candea,et al.  Microreboot - A Technique for Cheap Recovery , 2004, OSDI.

[9]  Alessandra Gorla,et al.  Healing Web applications through automatic workarounds , 2008, International Journal on Software Tools for Technology Transfer.

[10]  Gerald C. Gannod,et al.  A Self-Healing Framework for Web Services , 2007, IEEE International Conference on Web Services (ICWS 2007).

[11]  Jeffrey O. Kephart,et al.  The Vision of Autonomic Computing , 2003, Computer.

[12]  Bradley R. Schmerl,et al.  Increasing System Dependability through Architecture-Based Self-Repair , 2002, WADS.

[13]  DoongRoong-Ko,et al.  The ASTOOT approach to testing object-oriented programs , 1994 .

[14]  Alessandra Gorla,et al.  Self-healing by means of automatic workarounds , 2008, SEAMS '08.

[15]  Phyllis G. Frankl,et al.  The ASTOOT approach to testing object-oriented programs , 1994, TSEM.

[16]  Amer Diwan,et al.  Discovering Documentation for Java Container Classes , 2007, IEEE Transactions on Software Engineering.

[17]  Laura L. Pullum,et al.  Software Fault Tolerance Techniques and Implementation , 2001 .

[18]  Peyman Oreizy,et al.  An architecture-based approach to self-adaptive software , 1999, IEEE Intell. Syst..

[19]  Stefano Modafferi,et al.  SH-BPEL: a self-healing plug-in for Ws-BPEL engines , 2006, MW4SOC '06.

[20]  Carlo Ghezzi,et al.  Efficient recovery of algebraic specifications for stateful components , 2007, IWPSE '07.

[21]  Luca Cavallaro,et al.  An approach to adapt service requests to actual service interfaces , 2008, SEAMS '08.

[22]  Ada Diaconescu A framework for using component redundancy for self-adapting and self-optimising component-based enterprise systems , 2003, OOPSLA '03.

[23]  M. Muztaba Fuad,et al.  Transformation of Existing Programs into Autonomic and Self-healing Entities , 2007, 14th Annual IEEE International Conference and Workshops on the Engineering of Computer-Based Systems (ECBS'07).

[24]  Leonardo Mariani,et al.  Inferring state-based behavior models , 2006, WODA '06.

[25]  Ada Diaconescu,et al.  A Framework for Using Component Redundancy for self-Optimising and self-Healing Component Based Systems , 2003 .