VIEWS: 13 PAGES: 29 POSTED ON: 9/20/2011
An Architecture-Based Approach to Self-Adaptive Software Authors : [Loads of them but importantly] Nenad Medvidovic [Others] Oreizy, Gorlick, Taylor, Heimbigner, Johnson, Qullici, Rosenblum & Wolf Presented by : Chirag Rajyaguru : Niraj Motwani An Architecture Based Approach to Self-Adaptive Software Architecture Approach Self Adaptive Software Architecture & Approach Architecture : The overall design or structure of a computer system, including the hardware and the software required to run it, especially the internal structure of the microprocessor Approach : make a proposal or overtures to with a specific end in view Self, Adaptive & Software • Self : [Here] On one’s own • Adaptation : Something, such as a device or mechanism, that is changed or changes so as to become suitable to a new or special application or situation • Software : The programs, routines, and symbolic languages that control the functioning of the hardware and direct its operation. What is Self Adaptive Software?? • E. Grishikashvili [CMU] :: The Software which can identify, promote and evaluate new models of code design and run-time support which allow software to modify its own behavior or order to adapt, at runtime, when exact conditions and inputs are known, to discovered changes in requirements, inputs, and internal/external conditions. • Paul Robertson [MIT] :: A self-adaptive system is a system that continually (at runtime) monitors its success in achieving its intended goal. When the system is found to be doing poorly the systems modifies itself in an attempt to do better at its assigned task. A self- adaptive system presupposes that there are multiple ways of achieving the same task and that in some contexts one method may be better suited than another. Question !!!! • Does Self-Adaptation mean Adding something like “INTELLIGENCE!!” ? [I hope I don’t get slain for using this word in this class] Important Properties * High Dependability * Robustness * Adaptability * Availability * Consistency * Correctness * Safety * Reliability !!!!!! Other properties are important !!!!!! depending on the applications requirements; but these are the basic important properties according to the author(s) !!!! Several Issues to take care of!! When ? Open-adaptive / closed-adaptive ? Fully automatic/ self-contained/ human-in- loop Cost effectiveness Adaptation Policy : lazy/opportunistic/continuous Issues contd…. Good enough ness of information Frequency of adaptation How to…? Online Algorithms Algorithm Selection Evolutionary Programming and machine- learning techniques General Purpose Approach to self- adaptive systems Many Dependencies & Interdependencies Software agents that automate the task within the process Software components & respective environmental assumptions Environment where the s/w is deployed Messaging and event services that are used for various connections Architectures C2 Weaves Commonalities Distinguish Component & Connector No restriction on the language to be used Communication via Asynchronous messages Single or multiple threads / component C2 Weaves C2 vs. Weaves C2 has been optimized for flexible components Weaves focuses on high-performance, flexible connectors Dynamic Code Updating [a Beginning / an end] Dynamic Code update / Migration of Component not more than a big step Example : Removing Guidance Component from Missile is Migration of a component but that will Marr the functionality of the system Evolution Management Safety Reliability Correctness To guard against untoward change : AEM : was introduced. AEM(architecture evolution manager) mediates all change operations directed toward the architectural model. Ensures ACID properties on Architecture’s structural changes. Methods of implementing Changes Following methods can be used : Visual Interactive Architecture editor ADAPTATION MANAGEMENT Adaptation management describes the life cycle of adaptive software systems. Collecting observations (Observers). Monitoring and evaluating the application, and its operating environment. Planning adaptations (Planners). Deploying change descriptions to the running application (Deployers). Managing Self Adaptive Software Requires variety of agents Observers, planners and deployers. Infrastructure support to host the agents and support the various activities of adaptation management in form of registries. Registries contain resource descriptions, configurations and other declarative information. Registries providing standard interface by which agents can query and manipulate the contents of registry, which acts as blackboard for exchanging information. Eg. Software Dock, University of colorado, Boulder- infrastructure element for distributed configuration and deployment of software systems. Life Cycle of Adaptive Software Systems Collecting Observations Embedded assertions (inline observers). Responding to event patterns (Expectation agent). Monitoring events occuring outside of the application. Provisions for human observers. Evaluating & Monitoring Needed for Consistency Management. Inconsistencies can occur when some architecture element behaves in a manner inconsistent with the behavior required of it. How to we maintain consistency? Static Analysis: eg. Attributed graph grammars. Dynamic Analysis: Runtime checks to detect inconsistencies. Hybrid Approach. Planning Changes Observation planning Determine which observations are necessary for deciding when and where adaptations are required. Adaptation planning Determine which adaptations to make and when to make. Deploying Change Descriptions It is the coordinated conveyance of change description, components and possibly new observers or evaluators to the implementation platform in the field. Change agents propagate and move out among sites to carry out their tasks carrying with them change descriptions. Change descriptions may include new components or connectors and their affiliated annotations. Conclusions Separating concerns of software adaptation from function facilitates their independent analysis and evolution. Ensuring that changes made to architectural model is consistent with its implementation- consistency maintenance. Change management to ensure system integrity. Neat categorization of Evolution management and Adaptation management as two separate processes and highlighting their activities. The paper says “architecture based approach” and is very well confined to its scope. Prism for Self Adaptive Software Architectural Styles Characterized in terms of external structure, topology rules, behavior, interaction and data flow. Architectural requirements to support self healing behavior. Adaptability Dynamicity Awareness Observability Autonomy Robustness Distributability Mobility Traceability Prism for Self Adaptive Software Architectural style meets adaptability requirement. Distributability achieved via border connectors. Meta level components facilitate dynamicity, awareness, mobility and robustness. Some meta level component like AEM could be developed in PRISM to ensure ACID properties. Traceability ensured via an architectural middleware implementation. Observability and autonomy – can be worked on.
"An Architecture-Based Approach to Self-Adaptive Software"