Integrated Computer-Aided Engineering

Autonomic computing: Architectural approach and prototype

View publication


The goal of autonomic computing is to reduce the complexity and cost of large-scale computing systems by endowing them with the ability to manage themselves in accordance with high-level objectives specified by humans. This paper presents an architectural approach to autonomic computing that is compatible with service-oriented and agent-oriented architectures, and is based upon interactions among system components that we call self-managing resources. This paper recommends, and in some cases requires, specific behaviors and interfaces for self-managing resources, and discusses how interactions and relationships among them are established. Furthermore, it recommends several design patterns that engender the desired system-level properties of self-configuration, self-optimization, self-healing and self-protection. It explores and validates these architectural principles with a prototype autonomic data center called Unity. In the context of the Unity prototype, the paper demonstrates the efficacy of several design patterns, including a self-optimization design pattern that employs utility functions as a form of high-level objective, a self-configuration design pattern for goal-driven self assembly, and a self-healing design pattern that employs sentinels and a simple cluster re-generation strategy. © 2006 - IOS Press and the auther(s). All rights reserved.