A Self-Healing Framework for General Software Systems

Decanato - Facoltà di scienze informatiche

Data d'inizio: 31 Gennaio 2014

Data di fine: 1 Febbraio 2014

You are cordially invited to attend the PhD Dissertation Defense of Nicolò Perino on Friday, January 31st 2014 at 14h30 in room A22 (Red building)

Abstract:
Modern systems must guarantee high reliability, availability, and efficiency. Their complexity, exacerbated by the dynamic integration with other systems, the use of third-party services and the various different environments where they run, challenges development practices, tools and testing techniques. Testing cannot identify and remove all possible faults, thus faulty conditions may escape verification and validation activities and manifest themselves only after the system deployment. To cope with those failures, researchers have proposed the concept of self-healing systems. Such systems have the ability to examine their failures and to automatically take corrective actions. The idea is to create software systems that can integrate the knowledge that is needed to compensate for the effects of their imperfections. This knowledge is usually codified into the systems in the form of redundancy. Redundancy can be deliberately added into the systems as part of the design and the development process, as it occurs for many fault tolerance techniques. Although this kind of redundancy is widely applied, especially for safety-critical systems, it is however generally expensive to be used for common use software systems.

We have some evidence that modern software systems are characterized by a different type of redundancy, which is not deliberately introduced but is naturally present due to the modern modular software design. We call it intrinsic redundancy. This thesis proposes a way to use the intrinsic redundancy of software systems to increase their reliability at a low cost. We first study the nature of the intrinsic redundancy to demonstrate that it actually exists. We then propose a way to express and encode such redundancy and an approach, Java Automatic Workaround, to exploit it automatically and at runtime to avoid system failures. Fundamentally, the Java Automatic Workaround approach replaces some failing operations with other alternative operations that are semantically equivalent in terms of the expected results and in the developer’s intent, but that they might have some syntactic difference that can ultimately overcome the failure. We qualitatively discuss the reasons of the present of the intrinsic redundancy and we quantitatively study four large libraries to show that such redundancy is indeed a characteristic of modern software systems. We then develop the approach into a prototype and we evaluate it with four open source applications. Our studies show that the approach effectively exploits the intrinsic redundancy in avoiding failures automatically and at runtime.

Dissertation Committee:

  • Prof. Mauro Pezzè, Università della Svizzera italiana, Switzerland (Research Advisor)
  • Prof. Matthias Hauswirth, Università della Svizzera italiana, Switzerland (Internal Member)
  • Prof. Nate Nystrom, Università della Svizzera italiana, Switzerland (Internal Member)
  • Prof. Oscar Nierstrasz, University of Bern, Switzerland (External Member)
  • Prof. Sebastián Uchitel, Imperial College London, United Kingdom/Universidad de Buenos Aires, Argentina (External Member)

 

Facoltà

Eventi
22
Luglio
2024
22.
07.
2024

PyTamaro Summer Academy 2024

Facoltà di scienze informatiche
30
Luglio
2024
30.
07.
2024
01
Agosto
2024
01.
08.
2024
13
Agosto
2024
13.
08.
2024

Cinema and Audiovisual Futures Conference 2024

Facoltà di comunicazione, cultura e società

The Future of Survival Public Event: AI and Generative humanity

Facoltà di comunicazione, cultura e società
14
Agosto
2024
14.
08.
2024

The Future of Survival Public Event: Digital Migrations

Facoltà di comunicazione, cultura e società