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.