Autonomic computing means computer systems are capable of self-management. The vision of autonomic computing (AC) was formulated by the IBM Researchers Jeffrey O. Kephart and David M. Chess: "systems manage themselves according to an administrator's goals. New components integrate as effortlessly as a new cell establishes itself in the human body. These ideas are not science fiction, but elements of the grand challenge to create self-managing computing systems." The goal of AC is to realize software systems and applications that can manage themselves in accordance with high-level guidance from humans, in order to avoid brittle, unmanageable and complex software systems.
The "Autonomic Computing" initiative or vision has been inspired by biological systems and the autonomic nervous system. This nervous system controls important bodily functions (e.g. respiration, heart rate, and blood pressure) without any conscious intervention.
Autonomic Computing (AC) is intended to reduce the burden of management and installation for administrators. Another goal is the reduction of costs for installing, managing and upgrading distributed systems. A general problem of modern distributed computing systems is that their complexity is increasingly becoming the limiting factor in their further development. Companies and institutions are employing large-scale computer networks for communication and computation. The distributed applications running on these computer networks are diverse and deal with many different tasks, ranging from internal control processes to presenting web content and to customer support.
Typical for AC are control loops, managed elements and self-* properties. Control loops are used to monitor and analyze the behavior of managed elements. A closed control loop in a self-managing system monitors some resource (software or hardware component) and autonomously tries to keep its parameters within a desired range. According to the original IBM vision, hundreds or even thousands of these control loops are expected to work in a large-scale self-managing computer system.
- ...must be self-aware: it needs to "know itself" and it should possess a sense of (it)self
- ...must be self-reconfigurating: it should be able to configure and reconfigure itself automatically under varying conditions, and be able to adapt to changes in its environment
- ...must be self-optimizing: it should always look for ways to optimize its workings, it should constantly strive to improve its performance
- ...must be self-healing: it should be able to discover problems and recover itself from faults and errors, it should be able to heal itself when it is damaged
- ...must be self-protecting: it should be able to detect and identify various types of attacks, and to defend itself against attackers
- ...must be self-adapting/context-aware: it should know its environment and the context surrounding its activity, and act accordingly
- ...must be open, embedded and interoperable: it should implement and communicate according to open standards, it should be able to exchange resources with unfamiliar systems
- ...must be autonomous and simple: it sould anticipate all needed resources while hiding the complexity from the user
The four main self-management capabilities of an autonomic computing system are point 2-5: self-configuration, self-optimization, self-healing, and self-protection. According to IBM's vision, they are the four basic self-* properties of AC:
- Self-Configuration: Automatic configuration of components;
- Self-Healing: Automatic discovery, and correction of faults;
- Self-Optimization: Automatic monitoring and control of resources to ensure the optimal functioning with respect to the defined requirements;
- Self-Protection: Proactive identification and protection from arbitrary attacks.
In a self-managing system Autonomic System, the human operator takes on a new role: He does not control the system directly. Instead, he defines general policies and high-level rules that serve as an input for the self-management process.
Problems and Challenges
Many things in AC from development models to application construction are still a matter of research. A key challenges of AC is defining appropriate abstractions, frameworks and models for specifying, understanding, controlling, and implementing autonomic behaviors. Control loops alone are not sufficient, since interwoven and interrelated control loops can cause oscillations and chaotic behavior. Complex interdependencies between autonomic elements can render an autonomic system unusable. Thus major AC challenges are:
- different control loops and autonomic managers can collide with each other. If plans of one autonomic manager contradict the plans, goals and aims of other managers, then oscillations, conflicts and chaos can be the result
- there is no "magic bullet" or "one-size-fits-all" solution. Different servers (SQL server, Web Server, Application Server) require completely different configuration and optimization. Even servers of the same kind (IBM D2, Oracle or Microsoft SQL Server) are different for each vendor.
- if an autonomic computing system sets its own configuration parameters, how should the supervisors be informed ? Can they still understand the system configuration ? If changes are made by both people and computers it is difficult to understand the current state of the system, how the system got to this state at all, and why which changes have been made.
Although it is certainly useful to have a certain degree of autonomy in a single system, many autonomic elements cause new problems. A main challenge in autonomic systems with many autonomic elements is to achieve effective interoperation among autonomic elements. The challenge is very similar to those in Multi-Agent Systems, which contain by definition many autonomic elements.
|AC Approach||Agent Approach|
Autonomic Computing System
The dawning of the autonomic computing era A. G. Ganek und T. A. Corbi, IBM SYSTEMS JOURNAL, VOL 42, NO 1, 2003
The Vision of Autonomic Computing Jeffrey O. Kephart and David M. Chess
An architectural blueprint for autonomic computing White Paper, IBM
Research challenges of autonomic computing, Jeffrey O. Kephart, Proc. 27th ICSE (2005) 15-22
Autonomic Computing: An Overview M. Parashar, and S. Hariri
Self-Management: The Solution to Complexity or Just Another Problem? Klaus Herrmann, Gero Mühl and Kurt Geihs, IEEE Distributed Systems Online, vol. 6, no. 1, 2005.