Tuesday 31 December 2013

The Challenges of Community Resilience

In my last post I discussed collective forms of resilience. I now focus on a particular aspect of this “social resilience”, namely what is largely discussed as Community Resilience.

According to RAND,

“Community resilience is a measure of the sustained ability of a community to utilize available resources to respond to, withstand, and recover from adverse situations. […] Resilient communities withstand and recover from disasters. They also learn from past disasters to strengthen future recovery efforts. The Resilience in Action website offers toolkits, training, multimedia, newsletters, and other resources to help communities build and strengthen their resilience.”
From the above definition we can observe that resilience in this case also includes a community’s ability to learn from the past and become more robust in so doing – a sort of social antifragility.

As important asset to understanding Community Resilience is paper “COMMUNITY RESILIENCE: LESSONS FROM NEW ORLEANS AND HURRICANE KATRINA,” by C. E. Colten, R. W. Kates, and S. B. Laska, research report 3 of the Community and Regional Resilience Institute (CARRI). The three Scholars provide an insightful discussion of several important factors that resulted in the resilience behaviors that emerged during the Hurricane Katrina events. Their definition of resilience is slightly different from RAND’s; it is
“a community or region’s capability to prepare for, respond to, and recover from significant multi-hazard threats with minimum damage to public safety and health, the economy, and national security.”
Accordingly, the authors identify four major “activities” responsible for the emergence of resilience: anticipation of threats; response to threatening events; disaster recovery; and vulnerability reduction.

It is interesting to note that in this case vulnerability reduction is carried out, so to say, “outside” the system: the greater resilience is reached by strengthening the protection and emergence infrastructures, thus it is not a consequence of a system’s learning processes but rather of the processes of the designers and the managers of the system; it is thus more enhancing elasticity rather than achieving antifragility.

After analyzing weaknesses and strengths of New Orleans and discussing the above major activities, the authors discuss anticipation/response/recovery/reduction before, during, and after Hurricane Katrina. Ongoing and future action to improve the performance of the above activities is reported. Lessons learned are finally summarized.

A remarkable fact observed by the authors is that the response to the disaster was far from ideal:

“Through extensive media coverage, the world saw remarkably inadequate rescue operations, the failure of complete evacuation, […] What amazed many worldwide was that these extensive failures, often attributed to conditions in developing countries, occurred in the most powerful and wealthiest country in the world.”
This is particularly surprising in that the severity of the situation was well known, as it was also well known how the New Orleans area would have had difficulties in the face of catastrophic events:
“New Orleans was a catastrophe waiting to happen with extensive and repeated warnings from both scientists and the media that the “big one” would eventually hit the city.”
This fact in particular stirred my imagination. I was born in a land rich with seismic and volcanic activity, though considerably less wealthy and powerful, which made it quite obvious to me that it would be preferable to learn about Community Resilience failures in an indirect way.

The major lesson that I derived from this case is that an event like Katrina disrupts several concentric “social layers” at the same time, and that one of the major problems following the event is one of coordination. Multiple concurrent responses are triggered in each of the social layers, including

  • the individual, the family, people sharing the same location, citizens, etc.;
  • pre-existing organizations of the city, the region, the state, the nation;
  • pre-existing organizations for civil protection, defense, order, etc.
A major classification among the above responders is that of Institutional responders (namely the social layers corresponding to the above pre-existing organizations) and informal responders (non-institutional responders, originating in “households, friends and family, neighborhoods, non-governmental and voluntary organizations, businesses, and industry” and corresponding to informal care-givers in ambient assisted living).

Coordination failures derive from a number of reasons, the most important of which are possibly the following ones:

  • Conflicting goals and conflicting actions among the triggered responders. Multiple uncoordinated efforts often result in wasting resources and in some cases they mask each other out.
  • As a simplistic way to avoid or recover from this kind of failures, institutional responders tend to refuse or do not blend their action with that of informal responders.
  • Resources owned by institutional responders are not shared dynamically according to the experienced needs.
The report by Colten, Kates, and Laska provides rich and valuable knowledge, which helps understand how relevant the above reasons were in determining the quality of resilience and the speed of the recovery after Katrina. It also provides us with a major challenge, which the authors enunciate as follows:
“[Responders] would have been able to do more if the tri-level system (city, state, federal) of emergency response was able to effectively use, collaborate with, and coordinate the combined public and private efforts. How to do so, in advance of hazard events, is a central task of enhancing community resilience.
Is it possible to find a satisfactory answer to the above challenge? Which tools, which form of organizations may serve as an effective foundation on top of which community resilience may be built? Let me just focus on the response to the events. The answer, in my humble opinion, should be characterized by the following attributes:
  • Scalable: The building blocks of the response organization should be applicable at all social layers, ranging from micro scale (individual or small groups) up to macro level (national or world-wide institutions).
  • Fractal: The building blocks of the response organizations should be free from the hard restrictions of pure hierarchical organizations. The action and role of each social layer should not be restricted by its hierarchical level into that of a controller or that of a controlled, but rather dynamically defined.
  • Context-driven: The above mentioned action and role should be defined through an assessment of the context and situations at hand, possibly involving multiple collaborating entities and layers.
  • Self-servicing: Forms of mutualistic collaboration should be identified so that common requirements may become mutually satisfactory.
  • Service-oriented: Services and assets should be easily and quickly localizable, shareable, and accountable.
  • Semantic: Services and assets across the social layers should be semantically described in a uniform way allowing for quick service matching.
  • Collaborative: Collaboration among entities in different social layers should be easy to settle and result in the spontaneous emergence of new temporary inter-layered “social responders”. Said “social overlay networks” would combine responders of different scale and different originating social layers and exist until some originating purpose is being reached.
  • Modular: Self-similar collaborative “patterns”, or modules, should be reusable at different scales. A dynamic ranking mechanism should allow the performance of modules in a given context to be tracked.

My next post will describe an organization matching the above attributes – the fractal social organization.

Creative Commons License
The Challenges of Community Resilience by Vincenzo De Florio is licensed under a Creative Commons Attribution-NoDerivatives 4.0 International License.
Permissions beyond the scope of this license may be available at mailto:vincenzo.deflorio@gmail.com.

Tuesday 17 December 2013

The Need for Collective Forms of Resilience

It is remarkable how, in the course of its history, mankind has time and again locked in on biases and privileged directions that confine its progress and welfare. A classic example is given by the geocentric model of the Ptolemaic system. Two other examples of such lock-ins are represented by the concepts of individualism and competition, both of them eloquently captured in Hobbes’ definition of the “natural state of things” as “the war of every one against everybody”. In fact the individual-centric and purely competitive models became heavy cornerstones of our societies and were celebrated in many an important work. Examples of this may be found in Locke’s “Essay Concerning Human Understanding” (1689) and Smith’s conjecture of the “Invisible Hand”, which influenced and reverberated for centuries in the work of many scholars and philosophers.

A strong argument against any theory only considering individualism and competition was issued by Darwin, whose principle of mutual struggle appeared to bring irrefutable scientific evidence to the supremacy of the concepts of competition and the individual.As a matter of fact, Darwin himself was well aware that competition and mutual struggle are an important strategy though not the only one, and that in nature in certain cases it is collective cooperation rather than individualistic struggle that results in the winning strategy. In fact in his “Descent of Man” Darwin refers to the "power of sympathy" and states that

"those communities, which included the greatest number of the most sympathetic members, would flourish best, and rear the greatest number of offspring".
Among the first ones to highlight that both cooperation and competition coexisted in Darwin’s treatises was probably Pëtr A. Kropotkin. In his work "Mutual Aid: A Factor of Evolution" Kropotkin raised an important question:
"Who are the fittest? Are those organisms the fittest which are constantly waging a war of extermination against every other organism in the struggle for existence, or, are those the fittest which cooperate with each other in the preservation of the common life of all?"
Kropotkin’s answer is the same as Darwin’s: through several examples in the societies of animals and men he remarks how both competition and collaboration are important strategies towards survival and welfare of animal species and societies:
It is evident that no review of evolution can be complete unless these two dominant currents are analyzed [...] The struggle between these two forces make, in fact, the substance of history.

More recently, the limitations of the pure individual-centric, competitive-oriented model—especially when the environment becomes resource-scarce and turbulent—were masterfully discussed by Hardin in his “Tragedy of the Commons”. In that celebrated treatise the great scholar remarks how such model, coupled with an ever increasing overpopulation, results in the rapid exhaustion and pollution of earth resources and is introducing unprecedented turbulent and chaotic scenarios in our global ecosystem.

In more recent times the necessity to extend the purely individualistic and competitive model so as to include other forms of interaction emerged in several domains. Ecology, biology, mathematics, computer science, sociology, and economy, are examples of disciplines that time and again put to the foreground the efficacy of other forms of interaction in systems ranging from bacteria to business ecosystems. As an example, beginning with the 1980s economy and management science experienced a crisis of the traditional concept of organization- environment relations: The classic model of a so-called focal organization taking individual actions to capture value under a system of pure competition revealed intrinsic weaknesses when facing ever more complex and turbulent environments. The awareness of the need to go beyond the purely individual models of organization and strategic choice and of pure competition initiated a process of rethinking that led to the emergence of concepts such as collective strategies, co-opetition, and business ecosystems.

Collective resilience strategies are not new; they are the default strategy used in nature to protect the individual and the species. Individuals unite either to become a social predator or a social prey; the unite to augment artificially their perception; to benefit from different features in different contexts, and so on. It is only through collaboration that the individual and the species compensate for the very slow speed of evolution with respect to the onset of change. Thus I believe an important requirement for the resilience of future cyber-physical societies will be the ability to learn from both nature and practice how to establish dynamically mutualistic relationships as exemplified, e.g. in the Canary Agent and Miner Agent scenario discussed here.

Creative Commons License
The Need for Collective Forms of Resilience by Vincenzo De Florio is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
Permissions beyond the scope of this license may be available at mailto:vincenzo.deflorio@gmail.com.

Monday 25 November 2013

The Black Holes of complexity

Is it good or is it bad if the hardware and software complexity are hidden to the software designer? If you're a designer, you will probably tend to say "It's very good! Why the hell should I be interested in the type of transport protocol my software's going to use? What difference would it make if I knew what system calls are being executed in the background? Or if my software stores local data in SDRAM memory chips or elsewhere??" I'm sure the general opinion would be that all the above choices don't really matter that much — apart maybe from some difference in performance!

What is certainly true is that the road to complexity hiding provided the developer with abstract ways to compose ever larger "blocks" of functionality in short time and in easy and intuitive ways. First modules and layered organization; then object orientation; and more recently visual languages, services, components, aspects, and models, provided the developer with tools to compose and orchestrate highly powerful and sophisticated software systems in a relatively short amount of time.

But... there is a but regrettably. First of all, though hidden, still such complexity is part of the overall system being developed. And secondly, as it's become so easy to deal with complexity, more and more functionality is being put in place. In other words, software (and in general, computer systems) have become sort of black holes of complexity: they attract more and more complexity that simply disappears from our sight although makes the system more and more "heavy" — hard to predict and control.

As I mentioned somewhere else,
Across the system layers, a complex and at times obscure “web” of software machines is being executed concurrently by our computers. Their mutual dependencies determine the quality of the match of our software with its deployment platform(s) and run-time environment(s) and, consequently, their performance, cost, and in general their quality of service and experience. At our behest or otherwise, a huge variety of design assumptions is continuously matched with the truth of the current conditions.
A hardware component assumed to be available; an expected feature in an OSGi bundle or in a web browser platform; a memory management policy supported by a mobile platform, or ranges of operational conditions taken for granted at all times — all are but assumptions and all have a dynamically varying truth value. Depending on this value our systems will or will not experience failures. Our societies, our very lives, are often entrusted to machines driven by software; weird as it may sound, in some cases this is done without question — as an act of faith as it were. This is clearly unacceptable. The more we rely on computer systems — the more we depend on their correct functioning for our welfare, health, and economy — the more it becomes important to design those systems with architectural and structuring techniques that allow software complexity to be decomposed, but without hiding in the process hypotheses and assumptions pertaining e.g. the target execution environment and the expected fault- and system-models.

How to deal with this problem is still a matter of discussion. My idea is that it should be made possible to express, manage, and execute "probes" on the dynamic values of our design assumptions. While the "black hole" would remain largely hidden, those probes would help "enlight" on the likelihood that our hypotheses are actually met by the current conditions of the system and its deployment environment. A possible way to organize those probes could be maybe that of a distributed organization of cooperating autonomic digital entities, each of them representing a different unit of information encapsulation: a layer, an object, a service, etc., mimicking the structure and organization of the corresponding entities. A fractal social organization of said probes could provide with autonomic ways to deal with ever growing amounts of complexity without reaching the event horizon of unmanageability.

Creative Commons License
The Black Holes of complexity by Vincenzo De Florio is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License.
Permissions beyond the scope of this license may be available at http://win.uantwerpen.be/~vincenz/.

Saturday 16 November 2013

ANTIFRAGILE 2014: 1st Workshop "From Dependable to Resilient, from Resilient to Antifragile Ambients and Systems"

As well-known, 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 goes one step further and 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 N. 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 and ambients 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 promises to enable realizing 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, and energy efficiency; to personalize their aspects and behaviors after each and every user. And to learn how to get better while doing it.

The ambition and mission of ANTIFRAGILE is to enhance the awareness of the above challenges and to begin a discussion on how computer and software engineering may address them. As a design aspect cross-cutting through all system and communication layers, antifragile engineering will require multi-disciplinary visions and approaches able to bridge the gaps between “distant” research communities so as to

  • propose novel solutions to design and develop antifragile systems and ambients;
  • devise conceptual models and paradigms for antifragility;
  • provide analytical and simulation models and tools to measure systems ability to withstand faults, adjust to new environments, and enhance their resilience in the process;
  • foster the exchange of ideas and lively discussions able to drive future research and development efforts in the area.
The main topics of the workshop include, but are not limited to:
  • Conceptual frameworks for antifragile systems, ambients, and behaviours;
  • Dependability, resilience, and antifragile requirements and open issues;
  • Design principles, models, and techniques for realizing antifragile systems and behaviours;
  • Frameworks and techniques enabling resilient and antifragile applications;
  • Antifragile human-machine interaction;
  • End-to-end approaches towards antifragile services;
  • Autonomic antifragile behaviours;
  • Middleware architectures and mechanisms for resilience and antifragility;
  • Theoretical foundation of resilient and antifragile behaviours;
  • Formal modeling of resilience and antifragility;
  • Programming language support for resilience and antifragility;
  • Machine learning as a foundation of resilient and antifragile architectures;
  • Antifragility and resiliency against malicious attacks;
  • Antifragility and the Cloud;
  • Service Level Agreements for Antifragility;
  • Verification and validation of resilience and antifragility;
  • Antifragile and resilient services.
ANTIFRAGILE is co-located with the 5th International Conference on Ambient Systems, Networks and Technologies, June 2 - 5, 2014, Hasselt, Belgium.

For more information please visit ANTIFRAGILE 2014.

Tuesday 12 November 2013

Lessons From the Past

I must confess that until a few time ago I didn't know the extinction of dinosaurs is not the only or the most severe of the extinction events our Earth has experienced. Citing from Wikipedia,
"the Cretaceous–Paleogene (K–Pg) extinction event [..] was a mass extinction of some three-quarters of plant and animal species on Earth—including all non-avian dinosaurs—that occurred over a geologically short period of time 66 million years ago".
This certainly sounds quite bad, but in fact not as bad as the so-called Great Dying,
the "Permian–Triassic (P–Tr) extinction event [..] that occurred 252.28 million years ago. [..] It is the Earth's most severe known extinction event, with up to 96% of all marine species and 70% of terrestrial vertebrate species becoming extinct. It is the only known mass extinction of insects. Some 57% of all families and 83% of all genera became extinct."
Thus some 252 million years ago a chain of events produced a catastrophe that affected so deeply the terrestrial ecosystem that it is conjectured "it took some 10 million years for Earth to recover" from it. Nevertheless, the Earth ultimately did recover from it, which led to so big a change in natural history that scientists had to clearly separate what was before from what followed, the Paleozoic ("Old Life") from the Mesozoic (the "Middle Life"). Among the many important questions that raise when considering so catastrophic an event, some that I feel are particularly relevant here are:
  • Q1: Was there any "common reasons" behind the P–Tr extinction event? In other words—were there "common triggers" causing such a widespread correlated failure?
  • Q2: What was the key ingredient—the key defensive strategies that is—that made it possible for the Earth to survive in spite of so harsh a blow?
Now in order to attempt an answer to the above question I recall the following facts:
  • F1: "Mineralized skeletons confer protection against predators" [Knoll]
  • F2: "Skeleton formation requires more than the ability to precipitate minerals; precipitation must be carried out in a controlled fashion in specific biological environments" [Knoll]
  • F3: "The extinction primarily affected organisms with calcium carbonate skeletons, especially those reliant on ambient CO2 levels to produce their skeletons" [Wikipedia].
In other words, one of nature's many independent evolutionary paths was particularly successful (F1) and thus become widespread; regrettably, the adoption of the solution implies a strong dependence on predefined and stable environmental conditions (F2); and, finally, a correlation exists between the class of species that adopted the solution and that of the species that were affected most by the P–Tr extinction event (F3).

If we read the above with the lingo of computer dependability and resilience we could say that:

  • A given solution became widespread (for instance a memory technology, a software library, a programming language, an operating system, or a search engine).
  • The solution introduced a weakness: for instance, a dependence on a hidden assumption, or a "bug" depending on certain subtle and very rare environmental conditions.
  • This translated in a common trigger, a single-point-of-multiple-failures: one or a few events "turned on" the weakness and hit hard on all the systems that made use of the solution.
A good example of this phenomenon is probably given by the so-called Millennium Bug.

What can we conclude from the above facts and analogies? That solutions that work well in the "common case" are those that become more widespread. Regrettably this decreases disparity, namely inter-species diversity. Species that externally appear considerably different from each other in fact share a common trait -- a common design template. This means that whenever the "common case" is replaced by the very rare and very bad "Black Swan", a large portion of the ecosystem is jeopardized. In fact the rarest the exceptional condition, the more widespread is the template and the larger the share of species that will be affected. This provides some elements towards an answer for question Q1: yes, there were common triggers that ultimately produced the P–Tr extinction event by increasing the diffusion of the same "recipes" thus paving the way to large amounts of correlated failures. On the other hand, the Earth did survive the Great Dying and other extinction events. Why? My guess for an answer to Q2 is that Nature introduces systemic thresholds that make sure that disparity never goes beyond some minimum. The key ingredient to guarantee this is diversity: it is not by chance that mutation is an intrinsic method in genetic evolution. Mutation and possibly other mechanisms make sure that, at any point in time, not all of the species share the same design templates. In turn this guarantees that, at any point in time, not all the species share the same fate.

Interestingly enough, similar solutions are sought also when designing computer systems. In order to decrease the chance of correlated failures multiple diverse replicas are executed in parallel or one after the other. It's called design diversity and it's often based on design templates such as N-version programming or Recovery Blocks.

(It is worth remarking how the adoption of the design diversity templates also decreases disparity... yes, it's a never ending story.)

The major lesson we need to learn from all this is that diversity is an essential ingredient of resilience. Bring down diversity and you decrease the chance the ecosystem will be able to withstand the Black Swan when it will show up. (And, given enough time, rest assured it will show up). High diversity means that a large number of systems will be put to test with new conditions when the Big One strikes. Even when most of the system-environment fits will decree extinction (or system failure), still a few systems, by chance so to say, will have the right elements to pass through the sieves of the Black Swan with limited damage. And it's those limited few that are going to inherit the Earth.

Creative Commons License
Lessons from the Past by Vincenzo De Florio is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License.
Permissions beyond the scope of this license may be available at http://win.uantwerpen.be/~vincenz/.

Saturday 9 November 2013

What system is the most resilient?

"What system is the most resilient": it probably sounds like a silly question, but before jumping to conclusions I invite you to consider a few facts. A human being is a "system" generally considered as the highest peak of evolution. Certainly human beings are more 'advanced' than, e.g., dogs. But how do the superior qualities of mankind translate in terms of resilience? Under stressful or turbulent conditions, often a wo/man will result "better" than a dog: superior awareness, consciousness, manual and technical dexterity, and reasoning; advanced ability to thesaurize experience, learn, develop science, and so on and so forth, they all lead to the 'obvious' conclusions that mankind has a greater ability to adapt and survive. And though, it's quite easy to find counterexamples. If a threat comes with ultrasonic noise, a dog may perceive the threat and react -- for instance by running away -- while the man may stay unaware until too late. Or consider the case of miners: inability to perceive toxic gases makes them vulnerable to, e.g. carbon monoxide and dioxide, methane, and other lethal gases. A simpler system able to perceive the threat would have more chances to survive.
From the above reasoning we can conclude a first fact: Resilience is not an absolute figure; it is the result of a match with a reference environment. Whatever its structure, organization, architecture, capabilities, and resources, a system is only resilient as long as its "provisions" match the current environmental conditions. A better way to express the resilience of a system, say s, could then be by saying that s is E-resilient, where E represents in some form the reference environment. (E could be expressed, e.g., as a vector of dynamic systems, each of which representing the evolution in time of a given context figure). I think it is important to realize that, with reference to an E-resilient system s, a key distinguishing factor is whether or not E is practically immutable and beyond any possibility of revision for s. "Practically" here means that the revisions should occur on a time scale comparable with that of the onset of change.

So surprise, surprise!, what do we end up with here? With yet another blow to our vaunted superiority and our fabled central role in the design of all things universal. Our homocentrism leads us to consider ourselves as Top of the Evolutionary Heap, but we must admit that this is yet another of man's misconceptions.

What I want to come to is that it would be more accurate to state that man is (likely to be) the most advanced natural system. The adjective is important, because all natural systems change their system-environment fit through natural evolution, which is an inefficient and very slow way to cope with change. Nature's answers to this problem include a change of scale -- moving from the individual to the species, from the species to the ecosystem, in a fractal organization of all things. Thus a role may disappear but the whole she-bang still goes on. But on an individual scale, and even at the level of species, our inability to quickly revise our system structure and organization leaves us as evolutionary sitting ducks: it takes literally ages to reshape our features, which often leads to resilience failures for the individual or the species.

Thus what system could be considered as more resilient than this? Most definitely that would be a system able to self-evolve very quickly; a system that is that may be better modeled as a E(t)-resilient system. Of course this does not immediately make a cyber-physical thing more resilient than a man; but its system structure is free of the limitations that burden natural systems. We must admit, I believe, that natural systems have reached an evolutionary dead-end. Even though not as sophisticated as a human being, a cyber-physical thing can in a matter of seconds assess large-scale situations, perform collective strategies, establish mutualistic relationships, self-organize into a swarm. Soon non-trivial forms of collective intelligence are likely to emerge. At that point, what system will be the most resilient?
Creative Commons License
What system is the most resilient? by Vincenzo De Florio is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License.
Based on a work at http://eraclios.blogspot.be/2013/11/what-system-is-most-resilient.html.
Permissions beyond the scope of this license may be available at http://win.uantwerpen.be/~vincenz/.

Sunday 3 November 2013

Resilient and Antifragile Essences in Actor-Network Theory

Actor-Network Theory (ANT) is a complex social theory based on social constructivism and the central idea that essences (viz., individuals and societies) are to be interpreted not as “containers” characterized by a physical dimension, e.g., a surface or a sphere, but rather as networks of nodes that have as many dimensions as they have “ties” (i.e., connections). Such ties are “weak by themselves”, though they achieve robustness (“material resistance”) through their social nature: “Each tie, no matter how strong, is itself woven out of still weaker threads [..] Strength does not come from concentration, purity and unity, but from dissemination, heterogeneity and the careful plaiting of weak ties” [Latour, 1996]. “Strength” here refers to the ability of the “essences” to retain their identity in spite of environmental conditions affecting their ties and nodes. A fragile essence is one characterized by one or more points-of-diffusion-failures — as it is the case for instance in centralized and hierarchical organizations; conversely, an essence is robust (resilient) if it tolerates discontinuities and other information diffusion failures. Be it an individual or a society, an ANT essence is not a static, immutable entity: It “starts from irreducible, incommensurable, unconnected localities, which[..] sometimes end [up] into provisionally commensurable connections” [Latour, 1996]. Strength is sought by conserving identity despite the changes of scale that are necessary to counterbalance turbulent environmental conditions. The above mentioned “careful plaiting of weak ties” is meant to guarantee that a network “is the same” (cf. definition of resilience), though “stronger” (which leads to Taleb's Antifragility). In this paper I conjectured that a geometrical interpretation to the ANT concept of strength may be given by the structured addition of complexity that naturally emerges in Fractal Social Organizations.

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.

Monday 28 October 2013

On Resilience and Elasticity

Computer systems are not dissimilar from critical infrastructures in which different mutually dependent components — in fact, infrastructures themselves — contribute to the emergence of an intended service. Thus, in computer systems the software infrastructure relies on the quality of the hardware infrastructure, and vice-versa a hypothetically perfect hardware would not result in the intended service without a corresponding healthy software infrastructure. Software resilience refers to the robustness of the software infrastructure and may be defined as the trustworthiness of a software system to adapt itself so as to absorb and tolerate the consequences of failures, attacks, and changes within and without the system boundaries. As a resilient body is one that “subjected to an external force is able to recover its size and shape, following deformation” (McGraw Hill, 2003), likewise software is said to be resilient when it is able to recover its functional and non-functional characteristics — its “identity” — following failures, attacks, and environmental changes. As critical infrastructures call for organizational resilience, likewise mission- and business-critical computer systems call for software resilience. Understanding and mastering software resilience are key prerequisites towards being able to design effective services for complex and ever changing deployment environments such as those characterizing ubiquitous and pervasive environments. Thus, how can we define (software) resilience? The term Resilience refers to a system’s ability to retain its intended function in spite of endogenous conditions, external actions, and environmental changes. The concept of resilience goes back to Aristotelian idea of entelechy (Aristotle, 1986), a central topic in Aristotle’s philosophy whose meaning and relationship with resilience is ingeniously captured by Sachs’ translation (1995): Entelechy is an entity’s ability of “being-at-work-staying-the-same”. This definition tells us that an entity — be it e.g. a physical person, an organization, or a cyber-physical system — is resilient when both the following two conditions hold:
  • The entity is able to exert purposeful active behavior (Rosenblueth, Wiener & Bigelow, 1943) to continuously adjust their functions in order to compensate for foreseen and/or unpredicted changes in its execution environment. This corresponds to the first part of Sachs’ definition: “Being at work.”
  • As a result of the above behavior, the entity is able to retain their “identity” — namely their peculiar and distinctive functional and non-functional features — in the face of the above mentioned conditions, actions, and changes, and despite the adjustments carried out by the entity so as to improve its system-environment fit. This refers to the second part of Sachs’ definition: “Staying the same”.
Another way to refer to resilience is through the concept of elasticity, namely “the ability of a body that has been subjected to an external force to recover its size and shape, following deformation” (McGraw-Hill, 2003). In this case the system does not exert any purposeful behavior but it only makes use of its internal characteristics and resources so as to mask the action of external forces. An example of the use of elasticity to achieve resilience can be found in a classic strategy of organizational resilience (Stephenson, Vargo, and Seville, 2010). In the cited reference it is remarked how organizations often interpret resilience as the result of the “redundancy of their physical resources such as plant and machinery, locations or buildings, and the lifelines infrastructure on which they rely”. Software resilience is the application of elasticity and resilience to entities in the software layers: The trustworthiness of a software system to adapt itself so as to absorb and tolerate the consequences of failures, attacks, and changes within and without the system boundaries.

References

  • Anonymous (2003). McGraw-Hill Dictionary of Architecture and Construction. McGraw-Hill Companies, Inc.
  • Aristotle (1986). De anima (On the Soul) (H. Lawson-Tancred, Trans.). Penguin classics. Penguin Books.
  • Sachs, J. (1995). Aristotle’s physics: A guided study. Masterworks of Discovery. Rutgers University Press.
  • Rosenblueth, A., Wiener, N., and Bigelow, J. (1943). Behavior, Purpose and Teleology. Philosophy of Science, 10(1), 18–24.
  • Stephenson, A., Vargo, V., and Seville, E. (2010). Measuring and Comparing Organisational Resilience in Auckland. The Australian Journal of Emergency Management, 25(2), 27-32.

Saturday 26 October 2013

Fidelity

Elasticity, robustness, resilience, antifragility — these properties all refer to an important aspect of individual and collective systems, namely the compliance between corresponding figures of interest in two separate but communicating domains. I will refer to this property as FIDELITY. A special case of fidelity is given by real-timeliness and synchrony, in which the figure of interest is the physical and the system's notion of time. Here I will discuss about several aspects of fidelity in individual and collective systems. A first issue that I intend to address is to clarify what is meant by the above properties and what is their distinctive character as well as their peculiar differences — in Aristotelian terms, what is their genus and what are their differentia.