Wednesday, 30 October 2013

From Dependable to Resilient, from Resilient to Antifragile

Dependability refers to a system's trustworthiness and measures several aspects of the quality of its services – for instance how reliable, available, safe, or maintainable those services are. Resilience differs from dependability in that it focuses on the system itself rather that its services; it implies that the system when subjected to faults and changes
  1. will continue distributing its services
  2. without losing its peculiar traits, its identity: the system will “stay the same”.
Antifragility suggests that certain systems could actually “get better”, namely improve their system-environment fit, when subjected to some system-specific extent) to faults and changes. Recent studies of Professor Taleb introduced the concept of antifragility and provided a characterization of the behaviors enacted by antifragile systems. The engineering of antifragile computer-based systems is a challenge that, once met, would allow systems to self-evolve and self-improve by learning from accidents and mistakes in a way not dissimilar to that of human beings. Learning how to design and craft antifragile systems is an extraordinary challenge whose tackling is likely to reverberate on many a computer engineering field. New methods, programming languages, even custom platforms will have to be designed. The expected returns are extraordinary as well: antifragile computer engineering would enable to realize truly autonomic systems and ambients able to meta-adapt to changing circumstances; to self-adjust to dynamically changing environments and ambients; to self-organize so as to track dynamically and proactively optimal strategies to sustain scalability, high-performance, energy efficiency; to personalize their aspect and behaviors after each and every user. And to learn how to do better while doing it.