Self-Managed Systems: an Architectural Challenge
- Self-management is put forward as one of the means by which we could provide systems that are scalable, support dynamic composition and rigorous analysis, and are flexible and robust in the presence of change.
- A self-managed software architecture is one in which components automatically configure their interaction in a way that is compatible with an overall architectural specification and achieves the goals of the system.
- The objective is to minimise the degree of explicit management necessary for construction and subsequent evolution whilst preserving the architectural properties implied by its specification.
- Why an Architectural Approach?
- Generality: The underlying concepts and principles should be applicable to a wide range of application domains, each associated with appropriate software architectures.
- Level of Abstraction: Software architecture can provide an appropriate level of abstraction to describe dynamic change in a system, such as the use of components, bindings and composition, rather than at the algorithmic level.
- Potential for Scalability: Architectures generally support both hierarchical composition and other composition and hiding techniques which are useful for varying the level of description and the ability to build systems of systems, thereby facilitating their use in large-scale complex applications.
- Builds on Existing Work: There is a wealth of architecture description languages and notations which include some support for dynamic architectures and for formal architecture-based analysis and reasoning.
- Potential for an Integrated Approach: Many ADLs and approaches support software configuration, deployment and reconfiguration.
- Layers Architecture Model for Self-Management: