Computer Science; Embedded Systems; System-Level Programming
Autonomic computing is a subfield of computer science that focuses on enabling computers to operate independently of user input. First articulated by IBM in 2001, the concept has particular relevance to fields such as robotics, artificial intelligence (AI), and machine learning.
Autonomic computing is a branch of computer science aimed at developing computers capable of some autonomous operation. An autonomic system is one that is, in one or more respects, self-managing. Such systems are sometimes described as “self-*” or “self-star.” The asterisk, or “star,” represents different properties of autonomic systems (self-organization, self-maintenance). Autonomic computing aims to develop systems that require less outside input, allowing users to focus on other activities.
The concept of autonomic computing is based on autonomic systems found in nature. Examples of such systems include the autonomic nervous system of humans and the self-regulation of colonial insects such as bees and ants. In an autonomic system, the behaviors of individual components lead to higher-order self-maintenance properties of the group as a whole.
The properties that a system needs to function autonomically are often called self-star properties. One is self-management, meaning that the system can manage itself without outside input after an initial setup. Computer scientists disagree about what other self-star properties a system must have to be considered autonomic. Proposed properties include:
self-stabilization, the ability to return to a stable state after a change in configuration;
self-healing, the ability to recover from external damage or internal errors;
self-organization, the ability to organize component parts and processes toward a goal;
self-protection, the ability to combat external threats to operation; and
self-optimization, the ability to manage all resources and components to optimize operation.
Autonomic systems may also display self-awareness and self-learning. Self-awareness in a computer system differs from self-awareness in a biological system. In a computer system, self-awareness is better defined as the system's knowledge of its internal components and configuration. Self-learning is the ability to learn from experiences without a user programming new information into the system.
An autonomic computer system is typically envisioned as having autonomic components (ACs), which are at least partly self-managing. An example of an AC is bootstrapping. Bootstrapping is the process by which a computer configures and initiates various processes during start-up. After a user turns on the computer, the bootstrapping process is self-managed. It proceeds through a self-diagnostic check and then activates various hardware and software components.
Semi-autonomic software and hardware systems are commonly used. Peer-to-peer (P2P) systems for social networking and communication generally have some autonomic properties, including self-configuration, self-tuning, and self-organization. These systems can determine a user's particular computer setup, tune themselves to function in various environments, and self-organize in response to changing data or configuration. Most modern computing systems contain ACs but are not considered fully autonomic, as they still require some external management.
The main goal of autonomic computing is to enable computer systems to perform basic maintenance and optimization tasks on their own. Maximizing the number of automated functions that a computer can handle allows engineers and system administrators to focus on other activities. It also enhances ease of operation, especially for those less adept at data management or system maintenance. For instance, the bootstrapping system and the self-regulatory systems that detect and correct errors have made computing more friendly for the average user.
Autonomic computer systems are particularly important in robotics, artificial intelligence (AI), and machine learning. These fields seek to design machines that can work unaided after initial setup and programming. The science of autonomic computing is still in its infancy, but it has been greatly enhanced by advancements in processing power and dynamic computer networking. For instance, the AI system Amelia, developed by former IT specialist Chetan Dube, not only responds to verbal queries and answers questions but can also learn by listening to human operators answer questions that it cannot answer. To some, systems that can learn and alter their own programming are the ultimate goal of autonomic design.
—Micah L. Issitt
Bajo, Javier, et al., eds. Highlights of Practical Applications of Agents, Multi-Agent Systems, and Sustainability. Proc. of the International Workshops of PAAMS 2015, June 3–4, 2015, Salamanca, Spain. Cham: Springer, 2015. Print.
Berns, Andrew, and Sukumar Ghosh. “Dissecting Self-* Properties.” SASO 2009: Third IEEE International Conference on Self-Adaptive and Self-Organizing Systems. Los Alamitos: IEEE, 2009. 10–19. Andrew Berns: Homepage. Web. 20 Jan. 2016.
Follin, Steve. “Preparing for IT Infrastructure Autonomics.” IndustryWeek. Penton, 19 Nov. 2015. Web. 20 Jan. 2016.
Gibbs, W. Wayt. “Autonomic Computing.” Scientific American. Nature Amer., 6 May 2002. Web. 20 Jan. 2016.
Lalanda, Philippe, Julie A. McCann, and Ada Diaconescu, eds. Autonomic Computing: Principles, Design and Implementation. London: Springer, 2013. Print.
Parashar, Manish, and Salim Hariri, eds. Autonomic Computing: Concepts, Infrastructure, and Applications. Boca Raton: CRC, 2007. Print.