This project considered the problem of complexity in computing increasing beyond our capacity to manage it, and the need for a solution to this problem. Many authors believe that this solution will be found in nature, even to the extent of using biological analogies to discuss the increasing complexity of evolving computer systems. In 1993, Professor Carver Mead of Caltech stated:
“Engineers would be foolish to ignore the lessons of a billion years of evolution.”
(quoted in Burbeck, 2007, p.3)
Given that our computer systems increasingly appear to have a life of their own, Mead's observation is arguably even more apt today (Burbeck, 2007, p.3).
The Problem of Increasing Complexity
The problem has been likened to the rapid increase in telephone usage in the 1920s where it was believed that there would be insufficient human capacity to operate the manual switchboards of the time - an issue resolved by the later introduction of fully automated telephone exchanges. The key problem we now face is that computer systems have become essential to many areas of our lives, but at the same time increasing in complexity and moving towards a point where we will not have the human resources to manage them (Mainsah, 2002, p.2). A certain contributing factor to complexity is the increasing global interconnection of systems forming vast “systems-of-systems” with behaviour which may sometimes appear non-deterministic to System Administrators due to the scale of the systems and the cascading effects within them. The emergent complexity of future pervasive and ubiquitous systems may become overwhelming unless we develop new mechanisms to manage and regulate them (Sterritt & Hinchey, 2006, p.1). Other factors contributing to complexity put forward by Sterritt and Hinchey include:
- The number of interacting components within the system.
- A lack of domain knowledge.
- The environment within which the systems are implemented.
- The existence of undocumented and/or poorly written legacy code.
Autonomic Computing
Like many others, Mainsah (2002) states that Autonomic Computing will help provide the solution to the complexity problem, and cites IBM’s Autonomic Computing initiative, inspired by the Autonomic Nervous System, as the way forward (Horn, 2001). The discipline of Autonomic Computing has evolved in a bid to overcome increasing complexity and our inability to effectively manage current and emerging systems (Huebscher & McCann, 2008, p.7:21).
Natural Computing is an interdisciplinary field of research investigating computational techniques inspired by nature. It connects computer science with the natural sciences and abstracts computing paradigms from the natural world (Kari & Rozenberg, 2008, p.72). Figure 1 illustrates the branches of Natural Computing Kari and Rozenberg describe, and inserts an Autonomic Computing branch.

Figure 1 - Natural Computing Disciplines
Apoptotic Computing
This project investigated Apoptotic Computing, which is the application of the concept of Apoptosis from the field of cellular biology abstracted into a computing paradigm. Apoptosis in biology is a genetic mechanism of intentional cell suicide whereby the cell shrinks and breaks up in a controlled manner, with little or no swelling or leakage of its contents onto its neighbours (Majno & Joris, 1995, pp.7-8). The process can be initiated either from within the cell or by agents external to the cell, providing a form of programmed cell death that allows the organism to rid itself of unwanted cells without harming neighbouring cells (Bullinger, 2005, p.7794).
Apoptosis occurs in all animals, indeed animals cannot survive without it, and in a mature human cell death exactly balances cell division. In contrast, when a cell dies accidentally through injury the process is not controlled and it dies through a process called Necrosis whereby the cell swells and bursts, spilling its contents onto the surrounding tissue. A cell can sometimes recognise when it has been damaged and initiate Apoptosis, moreover, cells will kill themselves routinely unless they regularly receive Apoptosis-suppressing signals from their environment, so that they survive when needed and kill themselves when they are not – for the greater good of the animal as a whole (Raff, 1998).
In terms of the disciplines of Natural Computing shown in Figure 1, the Apoptosis metaphor can be viewed within the context of Artificial Immune Systems (Saudi et al., 2008). Here, the concept of Apoptosis is applied to computer system security whereby a system is built from many small units and if one becomes “damaged” e.g. through a computer virus it either initiates, or is instructed to initiate, Apoptosis, without affecting surrounding system components – the analogy being an animal cell invaded by a virus and the immune system recognising the foreign body and attacking it. Creating such an artificial immune system for a self-managing autonomic computer system, i.e. a system capable of self-configuring, self-healing, self-optimising and self-protecting, has been described as somewhat of a Holy Grail inspiring a plethora of research papers (Miller, 2005; Hart et al., 2007). The autonomic computing paradigm is based on the biological metaphor of the Autonomic Nervous System in that it is self-managing without conscious input from the user, and is gaining ground as a way of designing and building systems capable of dealing with increasing cost and complexity. It is argued that Apoptosis will make a valuable contribution to future autonomic systems (Sterritt & Hinchey, 2005a). Indeed, Gabriel and Goldman (2006) expect software to become like self-sustaining and self-repairing living organisms continually adapting to its environment.
Agent Based Systems
An example of a computer system built from many small units is a system which utilises Mobile Agents. A Mobile Agent is a digital object which is not bound to the system on which it originated, but has the ability to move from one networked host to another, carrying its state and data with it, and once it reaches its destination host is able to interact with, and utilise the services of, the destination host agent system (OMG, 2000). Mobile agent-based systems have gained in popularity as a replacement for more traditional client/server based models, with the advantages that they can reduce network traffic and function independently of their originating host system, reporting back to the originating host later with small amounts of information (Staneva & Dobreva, 2004; Staneva & Gacheva, 2004). The following 7 features have been proposed as good reasons for the use of Mobile Agents (Lange & Oshima, 1999, pp.88-89):
- Agents reduce the load on the network. This is due to the fact that the agent carries out its work at the destination host rather than using communication protocols to send messages (and thus traffic) back and forth across the network. Rather than pulling data across the network from a remote host for processing, an agent can visit the host, process the data in-situ, then return home.
- Agents can overcome network latency. For example, in a critical real-time system where the time taken for instructions/commands/updates to cross a complex network might be unacceptable, an agent can act in-situ in the system to make decisions in real-time without network latency.
- Agents encapsulate protocols. This allows changes to be made in the proprietary protocols used for communication between the agent and its host environment, whilst allowing the agent to cross the network using established standard communications protocols.
- Agents execute autonomously and asynchronously. Unlike with a client/server system, a continuously open network connection between the system which creates an agent, and the target system where it will perform its work is not required. The agent can transfer to the target system and perform the work independently of the process which originally created it. The tasks which the agent must perform are embedded into it.
- Agents can adapt dynamically. Agents are aware of their host environment and can respond to it without reference to a centralised command and control system. They can also interact with other agents within the host.
- Agents are naturally heterogeneous. Agents are generally dependant only on their execution environment, and are independent of computer architectures, operating systems and network transport layers. This allows them to operate in heterogeneous systems built from multiple types of systems.
- Agents are fault-tolerant and robust. It is easier to built fault-tolerant and robust systems when agents can respond to their host environment, for example by persisting themselves to disk or moving to another host when the environment indicates it is closing down.
However, various security issues have been cited as reasons why agent-based systems have not been fully utilised (Ahmed, 2005). These issues include the need to protect:
- the destination host from malicious agents
- the mobile agent from a malicious host
- the mobile agent from other mobile agents
- the network on which they operate.
The Apoptosis metaphor has been suggested as a means of improving the robustness of Mobile Agents within an autonomic computer system, allowing the system to attempt to repair malfunctioning agents and, if unsuccessful, induce them to self destruct then replace them with new ones. It is argued that this process will require few resources and not interfere with the continuous operation of the overall system (Olsen et al., 2008). Nature has evolved robust solutions to challenging problems and by learning from these solutions more robust systems can be developed in the future. Deploying systems with a large number of (possibly often-unreliable) Mobile Agents requires a mechanism to adapt to a wide variety of possible failures without user intervention, and Apoptosis looks to be such a mechanism (George et al., 2003).
References
Ahmed, T., 2005. Generating mobile agent securely by using MASL. Distributed Computing Systems Workshops, 2005. 25th IEEE International Conference on, pp.291-96.
Bullinger, E., 2005. System Analysis of a Programmed Cell Death Model. In Proc. and 2005 European Control Conference Decision and Control CDC-ECC '05. 44th IEEE Conference on., 2005.
Burbeck, S., 2007. Complexity and the Evolution of Computing: Biological Principles for Managing Evolving Systems. [Online] (V2.2) Available at: http://evolutionofcomputing.org/Complexity%20and%20Evolution%20of%20Computing%20v2.pdf [Accessed 16 September 2009].
Gabriel, R.P. & Goldman, R., 2006. Conscientious software. In Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications. Portland, 2006. ACM.
George, S., Evans, D. & Marchette, S., 2003. A biological programming model for self-healing. In Proceedings of the 2003 ACM workshop on Survivable and self-regenerative systems: in association with 10th ACM Conference on Computer and Communications Security., 2003. ACM.
Hart, E., Davoudani, D. & McEwan, C., 2007. Immunological inspiration for building a new generation of autonomic systems., 2007. ICST (Institute for Computer Sciences, Social-Informatics and Telecommunications Engineering).
Horn, P., 2001. AUTONOMIC COMPUTING: IBM's Perspective on the State of Information Technology. IBM Corporation.
Huebscher, M.C. & McCann, J.A., 2008. A survey of autonomic computing---degrees, models, and applications. ACM Comput. Surv., 40, pp.1-28.
Kari, L. & Rozenberg, G., 2008. The many facets of natural computing. Commun. ACM, 51, pp.72-83.
Lange, D.B. & Oshima, M., 1999. Seven good reasons for mobile agents. Commun. ACM, 42, pp.88-89.
Mainsah, E., 2002. Autonomic computing: the next era of computing. Electronics & Communication Engineering Journal, 14, pp.2-3.
Majno, G. & Joris, I., 1995. Apoptosis, Oncosis, and Necrosis: An Overview of Cell Death. American Journal of Pathology, 146, pp.3-15.
Miller, B., 2005. The autonomic computing edge: Can you CHOP up autonomic computing? [Online] IBM Available at: http://www.ibm.com/developerworks/autonomic/library/ac-edge4/ [Accessed 16 March 2009].
Olsen, M.M., Siegelmann-Danieli, N. & Siegelmann, H.T., 2008. Robust artificial life via artificial programmed death. Artif. Intell., 172, pp.884-98.
OMG, 2000. Mobile Agent Facility Specification. 140 Kendrick Street, Building A, Suite 300, Needham, MA 02494 USA, USA: Object Management Group, Inc. Object Management Group.
Raff, M., 1998. Cell suicide for beginners. NATURE, 396, pp.119-22.
Saudi, M.M., Woodward, M., Cullen, A.J. & Noor, H.M., 2008. An overview of apoptosis for computer security. In Proc. International Symposium on Information Technology ITSim 2008., 2008.
Staneva, D. & Dobreva, D., 2004. MAPNET: a.NET-Based mobile-agent platform. In CompSysTech '04: Proceedings of the 5th international conference on Computer systems and technologies., 2004. ACM.
Staneva, D. & Gacheva, P., 2004. The communication infrastructure of the MAPNET mobile-agent platform. In CompSysTech '04: Proceedings of the 5th international conference on Computer systems and technologies., 2004. ACM.
Sterritt, R. & Hinchey, M., 2005b. Engineering ultimate self-protection in autonomic agents for space exploration missions. In Proc. 12th IEEE International Conference and Workshops on the Engineering of Computer-Based Systems ECBS '05., 2005.
Sterritt, R. & Hinchey, M.G., 2006. Biologically-inspired concepts for self-management of complexity. In Proc. Engineering of Complex Computer Systems. 2006. ICECCS 2006. 11th IEEE International Conference on., 2006.