As the scale, complexity and dynamism of distributed systems is dramatically growing, their configuration and data management have started to become a limiting factor of their development. This is particularly true in the case of Cloud is used for data storage and also for data processing, where the task of managing hundreds or thousands of nodes while delivering highly reliable services entails an intrinsic complexity. Furthermore, Cloud computing introduces another challenge that impacts on the resource management decisions. In these contexts, self-management mechanisms have to take into account the cost-effectiveness of the adopted decisions.
An autonomic system is able to continually react to external factors and update its state according to high-level policies; thus, enhancing contextual systems with autonomic properties comes as a natural choice.
To achieve self-management, a system has to encapsulate a set of self-* properties, like: self-configuration, self-protection, self-optimization, and self-healing.