Self-Managed Systems: an Architectural Challenge Presented by: Rabeea Bakhsh 3/23/2010 Paper by: Jeff Kramer and Jeff Magee Agenda Self-Management Self-Managed VS. Professionally Managed Problem Solution Benefits Challenges Related Work Conclusion Discussion SELF-MANAGEMENT Self-Management 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 Self-management is capable of ◦ ◦ ◦ ◦ ◦ ◦ self-configuration self-adaptation self-healing self-monitoring self-tuning self-* (autonomic systems) SELF-MANAGED VS. PROFESSIONALLY MANAGED Self-Managed VS. Professionally Managed Self-Managed = Automatically Managed Professionally Managed = Manually Managed ◦ Helps identify what must be changed ◦ Provides context for reasoning about specifying, and implementing change ◦ Controls change to preserve system integrity The driving factors: ◦ ◦ ◦ ◦ ◦ Save money Intelligent Dedication Easy to deal with Lose control PROBLEM Problem What if the system suffers from changes in its requirements specification or operational environment? ◦ Self-adaptation ◦ Self-healing ◦ Offline process SOLUTION Solution Component Control Consists of sensors, actuators, control loops, and set of interconnected components Functionalities: ◦ Report the current status of components to higher layers ◦ Maintain component creation, deletion and interconnection ◦ Support self-tuning algorithms Change Management Consists of a set of plans which are activated in response to changes of the operating state of the underlying system Functionalities: ◦ ◦ ◦ ◦ ◦ ◦ Introduce new components Recreate failed components Change component interconnections Change component operating parameters React to changes in state Report from the lower levels and executes plans that select new control behaviors and set new operating parameters for existing control layer behaviors Goal Management Consists of time consuming computations, re-planning, produces plan to achieve the goal Functionalities ◦ Produce change management plans ◦ Find the most useful resources to create new components BENEFITS Benefits Generality Level of abstraction Potential for scalability Builds on existing work Potential for an integrated approach CHALLENGES Component Control Ensure that state information is not lost when the configuration is modified Find scalable algorithms that minimize disruption to the system during change Verify that safety properties are not violated during change Change Management Deal with distribution and decentralization ◦ First attempt to deal with this resulted in a change architecture with completely decentralized change execution Find change management algorithms that can tolerate inconsistency and terminate in a system that satisfies constraints Ensure that the system does not violate safety constraints while it is converging on a stable state Goal Management Achieve goal specification such that it is both comprehensible by human users and machine readable Take a snapshot of the current state of the system and produces a change plan which moves the system from its current state to a state which satisfies the system goals Produce a set of plans that can be dynamically configured RELATED WORK Related Work SASSY (Self-Architecting Software SYstem) ◦ A model driven framework for run-time self-architecting and rearchitecting of distributed software systems ◦ Approach is self-healing, self-managing and self-optimizing FUSION (FeatUre-oriented Self-adaptatION) ◦ A model driven framework for run-time self-adaptation ◦ Approach is self-adaptation and self-managed Autonomic Computing ◦ Computing systems that manage themselves given high-level objectives ◦ The essence of autonomic computing systems is selfmanagement CONCLUSION Conclusion 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 Component Control Layer ◦ Execute architecture and implements the run-time adaptation ◦ The main challenge is to provide change management which reconfigures the software components, ensures application consistency and avoids undesirable behavior Change Management Layer ◦ Execute the change in response to changes in state reported from lower layer ◦ The main challenge is that decentralized configuration management is required Goal Management Layer ◦ Planning for change – often human assisted ◦ The main challenge is that some form of online planning is required DISCUSSION Discussion What are the main differences between SelfManaging and Self-Architecting? SASSY (Self-Architecting Software SYstem) SMSSY (Self-Managing Software SYstem)