Autonomic Computing originated at the IBM Research Division as a holistic approach to solving the growing problem of complexity in computing, a problem which is growing at an exponential rate (Horn, 2001; Lightstone, 2007). Horn states that the problem is not about maintaining pace with Moore’s Law, which originally stated that transistor counts would double every year, but with the problems arising from there being insufficient skilled IT workers available to maintain and administer the ever increasing numbers of interconnected computer systems and associated devices such as Personal Digital Assistants (PDAs), Smartphones, and other internet-enabled devices (Moore, 1965). He goes on to say that increasingly powerful systems are being developed to improve productivity through the automation of mundane tasks, thus allowing people to concentrate on new tasks, but that this automation has the effect of causing complexity as a byproduct, requiring increasing numbers of skilled IT workers to manage that complexity. This was confirmed by Mainsah (2002) in his review of Horn’s Autonomic Computing initiative, and he also concluded Autonomic Computing to be the solution to the complexity problem and corresponding skills shortage. To put a quantitative figure on the shortage of skilled IT workers, the overall perceived shortage of IT skills in the UK rose from 4.2% in 2007 to 6.8% in 2008, with 40% of respondents reporting recruitment and retention issues, up from 29% the previous year (NCC, 2008). The cause of increasing complexity has also been attributed to the complexity of the real-world problems software is now trying to address. Gabriel and Goldman (2006) of Sun Microsystems discuss the problem of increasing software complexity, arguing that software complexity arises from the complexity of the problems it is trying to solve, and that currently there are a lack of good models describing how complex systems are organised. They believe that software will eventually become self-repairing and self-sustaining, comparable to a living organism.
Autonomic Computing was inspired by the human autonomic nervous system as a self-managing, self-regulating, system which carries out its functions in the background without conscious effort on the part of the individual (Horn, 2001). As an example of this self-regulating autonomy, Horn describes how people do not consciously increase their heart and respiratory rates when running for a train – the autonomic nervous system performs those tasks automatically – allowing humans to think about what they want to do rather than how to do it. This is the metaphor Horn proposes to build computer systems capable of running themselves – self-regulating and self-managing. Autonomic systems need to be endowed with self-management capabilities which enable them to carry out the detail of their management tasks according to high-level objectives specified by humans (Kephart, 2005). These autonomic self-* properties were expanded into the self-CHOP system at IBM, and Miller (2005) of IBM describes the four constituent elements of the self-CHOP autonomic system: self-Configuring, self-Healing, self-Optimising and self-Protecting. He concludes that, whilst a useful way of characterising aspects of autonomic computing, the four disciplines of self-CHOP should not be considered in isolation, but should be integrated. Sterritt and Hinchey (2005) expect to see more self-* behaviours emerging as requirements for autonomic systems, including: self-Anticipating, self-Critical, self-Defining, self-Destructing, self-Diagnosis, self-Governing, self-Organised, self-Reflecting and self-Simulation. This project considered the role of self-Destruct in computing systems.
Marshall and Dai (2005) state that with increased complexity, conventional systems suffer a degradation in reliability because of the accumulation of errors in the system, and argue that Autonomic Computing will help resolve this issue and thus produce more reliable systems. Describing the properties of an autonomic self-CHOP system, they argue:
- self-Configuration improves reliability by reducing configuration errors made by people due to their inability to optimally configure large, complex and dynamically evolving systems.
- self-Healing allows a system to automatically diagnose, and then recover from, faults. Reliability is improved because the system will repair only the part which has failed, without bringing down the whole system, thus retaining at least some resource availability.
- self-Protection improves reliability by allowing an autonomic system to protect itself from both internal and external attack.
Hart et al., (2007) support the above arguments, stating that autonomic systems must be able to “heal” themselves by having the ability to recover from both routine and extraordinary events. They add that autonomic systems must be aware of their environments and surrounding activity, and be able to act on them accordingly.
Horn (2001) said that the level of automated functionality which might be possible through Autonomic Computing might seem like a panacea for the next era of computing, leading Sterritt and Hinchey (2005) to ask whether Autonomic Computing is panacea or poppycock? In other words, is Autonomic Computing a remedy for all the industry’s computing ills or simply nonsense? After reviewing a number of success stories from early Autonomic Computing systems, they concluded that the autonomic metaphor had much to offer in the advancement of complex systems and the future of computing, arguing that future autonomous systems will rely on autonomic properties for their viability and very existence, but that the autonomic community should be wary of portraying it as the next Silver Bullet. Huebscher and McCann (2008) highlight a number of open challenges in Autonomic Computing on which the autonomic community should now focus, including how to evaluate the performance of an autonomic system and the need to establish a distributed trust mechanism between systems. They do however conclude that in the future Autonomic Computing will be as accepted and widespread as distributed computing is today.
References
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.
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.
Kephart, J., 2005. Research challenges of autonomic computing. In Software Engineering, 2005. ICSE 2005. Proceedings. 27th International Conference on., 2005.
Lightstone, S., 2007. Foundations of Autonomic Computing Development. In Engineering of Autonomic and Autonomous Systems, 2007. EASe '07. Fourth IEEE International Workshop on., 2007.
Mainsah, E., 2002. Autonomic computing: the next era of computing. Electronics & Communication Engineering Journal, 14, pp.2-3.
Marshall, T. & Dai, Y., 2005. Reliability Improvement and Models in Autonomic Computing. In Parallel and Distributed Systems, 2005. Proceedings. 11th International Conference on., 2005.
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].
Moore, G.E., 1965. Cramming more components onto integrated circuits. Electronics, 38.
NCC, 2008. IT skills shortages re-emerge. [Online] National Computing Centre Available at: www.ncc.co.uk/aboutncc/press_rel/IT_skills_shortages.cfm [Accessed 02 August 2009].
Sterritt, R. & Hinchey, M., 2005. Autonomic computing - panacea or poppycock? In Engineering of Computer-Based Systems, 2005. ECBS '05. 12th IEEE International Conference and Workshops on the., 2005.