ABSTRACT
Nowadays, society’s and industry’s continued reliance on
information technology (IT) has grown in both size and
diversity. Information systems are moving toward
service-oriented architectures (SOAs) running on grids
that may include thousands of geographically distributed
systems. In addition, such systems are dependent on mul-
tisite collaboration and fast, reliable access to shared
resources and data. The success of such software systems
depends on their ability to follow changes in the business
environment and requirements and, thus, to react and
adapt so as to better handle their service-level objectives.
In practice, often such reaction and adaptation is a manual
process of identification, redesign, and change. By con-
trast, automatic management of software systems is
widely regarded as a suitable approach to that problem.
For example, a self-managing software system may auto-
matically detect changes in the execution environment
and diagnose possible failures, and by avoiding these it
may improve its reliability and subsequently reduce the
maintenance costs.