Autonomic Computing is an initiative started by IBM in 2001. Its ultimate aim is to develop computer systems capable of self-management, to overcome the rapidly growing complexity of computing systems management, and to reduce the barrier that complexity poses to further growth. In other words, autonomic computing refers to the self-managing characteristics of distributed computing resources, adapting to unpredictable changes whilst hiding intrinsic complexity to operators and users. An autonomic system makes decisions on its own, using high-level policies; it will constantly check and optimize its status and automatically adapt itself to changing conditions. As widely reported in literature, an autonomic computing framework might be seen composed by Autonomic Components (AC) interacting with each other. An AC can be modeled in terms of two main control loops (local and global) with sensors (for self-monitoring), effectors (for self-adjustment), knowledge and planer/adapter for exploiting policies based on self- and environment awareness.
Driven by such vision, a variety of architectural frameworks based on self-regulating autonomic components has been recently proposed. A very similar trend has recently characterized significant research work in the area of multi-agent systems. However, most of these approaches are typically conceived with centralized or cluster-based server architectures in mind and mostly address the need of reducing management costs rather than the need of enabling complex software systems or providing innovative services.
Autonomy-oriented computation is a paradigm proposed by Jiming Liu, in 2001 that uses artificial systems imitating social animals’ collective behaviours to solve hard computational problems. For example, ant colony optimization could be studied in this paradigm