A leader in autonomic computing design, IBM has set forth eight conditions that define an autonomic system:
- The system must know itself in terms of what resources it has access to, what its capabilities and limitations are and how and why it is connected to other systems.
- The system must be able to automatically configure and reconfigure itself depending on the changing computing environment.
- The system must be able to optimize its performance to ensure the most efficient computing process.
- The system must be able to work around encountered problems by either repairing itself or routing functions away from the trouble.
- The system must detect, identify and protect itself against various types of attacks to maintain overall system security and integrity.
- The system must be able to adapt to its environment as it changes, interacting with neighboring systems and establishing communication protocols.
- The system must rely on open standards and cannot exist in a proprietary environment.
- The system must anticipate the demand on its resources while keeping transparent to users.



