Introduction IBM manifesto (2001): The main obstacle to further progress in the IT industry is a looming software complexity problem Consequence: Installing, Configuring, Tuning and Maintaining applications is beyond human capabilities What about the dream of pervasive computing? Autonomic computing: Computing systems that can manage themselves given high level objectives from administrators
Self-Management Free system administrators from the details of system operation and maintenance and provide users with a machine that runs at peak performance 24/7 Adjust system’s operation in the face of changing components, workloads, demands and external conditions The autonomic system monitor its own use, check for components upgrade, install them, reconfigure itself and run a regression test.
Milestones toward fully autonomic computing Collect and aggregate information to support decisions by administrators Serve as advisors to humans Making and acting on lower level decisions Ultimately using the benefits of fully autonomic systems IBM cites four aspects of self-management: Self- configuration, self-optimization, self-healing, self- protection
Architectural Considerations Autonomic systems as collections of autonomic elements: contain resources and deliver services to humans and other autonomic elements Autonomic element consists of one or more managed elements with a single autonomic manager. Managed elements could be hardware or software resource Each autonomic element is responsible for managing its own internal state and interactions with the environment At lower levels an autonomic element’s range of interactions may be limited but at higher level its more flexible and mostly goal oriented
Life cycle of an autonomic element Design, test and verification Extending web services with programming tools and techniques Tools to represent high goals and map them to lower-level actions Testing in large-scale systems is more challenging Impossible to build test systems with realistic system size Installation and configuration Elements register itself in a directory service with their name and capabilities Use the discovery service to find suppliers that provide required services Monitoring and problem determination: Monitor themselves, suppliers and customers Monitor to find a failure, try to diagnose or find a new supplier Need tools for tracing, simulation and problem determination in complex dynamic environment
Relationships among autonomic elements Specification Services should be expressed in a standard format It can register itself in a directory service such as UDDI Locating Needs to locate other elements by searching directory service Reliability and trustworthiness of potential partners Negotiation Negotiate for obtaining a service after finding the element First-come, first-serve or posted-price There should be effective negotiation strategies and languages for expressing agreements Provision After reaching agreement they must provision their internal resources It maybe establishing relations to subcontractors
Relationships among autonomic elements Operation They operate under negotiated agreement The service provider’s autonomic manager oversees the operation of its managed element, monitoring it to ensure that the agreement is being honored; the service requester might similarly monitor the level of service. If the agreement is violated, one or both elements would seek an appropriate remedy Termination Freeing the internal resources for other uses Record pertinent information about service relationship locally or in a database for reputation of elements
Systemwide issues Security, privacy and trust Challenges confront electronic commerce: authentication, authorization, encryption, signing, … The autonomic systems infrastructure must let autonomic elements identify themselves, verify the identities of other entities with which they communicate, verify that a message has not been altered in transit, and ensure that unauthorized parties do not read messages and other data. At larger scale autonomic elements will be agents. Autonomic systems will be inhabited by middle agents that serve various types including directory services, matchmakers, brokers, auctioneers, security analysts and …
Goal specification Humans provide the goals and constraints that governs autonomic systems actions Two engineering challenges: Ensure that goals are specified correctly in the first place, and ensure that systems behave reasonably even when they are not Goals could be multidimensional, conflicting and complex How to define the utility functions? Autonomic systems will need to protect themselves from input goals that are inconsistent, implausible, dangerous, or unrealizable with the resources at hand
Scientific challenges Behavioral abstractions and models Defining appropriate models for understanding, controlling, and designing emergent behavior in autonomic systems is a challenge Understanding the mapping from local behavior to global behavior and vice versa How can we derive a set of behavioral and interaction rules that, if embedded in individual autonomic elements, will induce a desired global behavior? Robustness theory A related challenge is to develop a theory of robustness for autonomic systems, including definitions and analyses of robustness, diversity, redundancy, and optimality and their relationship to one another.
Scientific challenges Learning and optimization theory Learning in multi-agent system is a challenging but relatively unexplored problem Optimization should deal with dynamism also: agents are changing their behaviors making it necessary for other agents to change, potentially leading to instability. Negotiation theory How overall system behavior depends on the mixture of negotiation algorithms that various autonomic elements use and establish Automated statistical modeling Methods that automate the aggregation of statistical variables to reduce the dimensionality of the problem to a size that is amenable to adaptive learning and optimization
Discussion The paper has more than 2000 citation according to Google scholar the study of autonomic systems has become a significant component of systems research, with its own dedicated journals, conferences, and IEEE Computer Society technical committee (TCAAS), as well as a substantial presence in mainstream computing and networking venues. In 2001, IBM researchers predicted that by the end of the decade the IT industry would need up to 200 million workers, equivalent to the entire US labor force, to manage a billion people and millions of businesses using a trillion devices connected via the internet. We have reached 2010, and, the situation clearly is not as extreme as anticipated. Now that there are approximately 260,000 IT workers in the US, with employment in the industry
Discussion Consolidation of computing power, which will increase alongside the use of cloud computing and Web 2.0, reduces the amount of management per unit of service. Efforts since 2001 to design self-managing systems have yielded many impressive achievements, yet the original vision of autonomic computing remains unfulfilled. This was not indeed ’hype’ and that, though it draws on much work already carried out by the Computer Science and Control communities, its innovation is strong and lies in its robust application to the specific self-management of computing systems.
Discussion A lot of work has been carried out in the MAPE-K loop Automatic Manager: Goal policy languages, Utility functions, Conflict resolution, Multi-agent cooperation, Cellular systems and insect colonies Monitoring: Dynamic monitoring Planning: Policy based adaptation planning, Architectural models Knowledge: Concept of utility, reinforcement learning, Bayesian techniques In conclusion, though autonomic computing has become increasingly interesting and popular it remains a relatively immature topic.