Architecture-based approach to build adaptive software Presenter Kashif Dar INF5360: Seminar on Dependable and Adaptive Distributed.

Slides:



Advertisements
Similar presentations
Computer Systems & Architecture Lesson 2 4. Achieving Qualities.
Advertisements

Jeremy S. Bradbury, James R. Cordy, Juergen Dingel, Michel Wermelinger
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
A component- and message-based architectural style for GUI software
Architecture Representation
Variability Oriented Programming – A programming abstraction for adaptive service orientation Prof. Umesh Bellur Dept. of Computer Science & Engg, IIT.
ICT 1 “Putting Context in Context: The Role and Design of Context Management in a Mobility and Adaptation Enabling Middleware” Marius Mikalsen Research.
© 2005 Prentice Hall7-1 Stumpf and Teague Object-Oriented Systems Analysis and Design with UML.
Software Testing and Quality Assurance
Automated Analysis and Code Generation for Domain-Specific Models George Edwards Center for Systems and Software Engineering University of Southern California.
An Architecture-Based Approach to Self-Adaptive Software Presenters Douglas Yu-cheng Su Ajit G. Sonawane.
SE curriculum in CC2001 made by IEEE and ACM: Overview and Ideas for Our Work Katerina Zdravkova Institute of Informatics
Software Connectors. Attach adapter to A Maintain multiple versions of A or B Make B multilingual Role and Challenge of Software Connectors Change A’s.
Ensuring Non-Functional Properties. What Is an NFP?  A software system’s non-functional property (NFP) is a constraint on the manner in which the system.
Application architectures
Self Adaptive Software
Architectural Design Principles. Outline  Architectural level of design The design of the system in terms of components and connectors and their arrangements.
1 FM Overview of Adaptation. 2 FM RAPIDware: Component-Based Design of Adaptive and Dependable Middleware Project Investigators: Philip McKinley, Kurt.
Course Instructor: Aisha Azeem
Community Manager A Dynamic Collaboration Solution on Heterogeneous Environment Hyeonsook Kim  2006 CUS. All rights reserved.
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Software Architecture. Agenda " Why architect? " What is architecture? " What does an architect do? " What principles guide the process of architecting?
LÊ QU Ố C HUY ID: QLU OUTLINE  What is data mining ?  Major issues in data mining 2.
Chapter 7 Requirement Modeling : Flow, Behaviour, Patterns And WebApps.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
1 Autonomic Computing An Introduction Guenter Kickinger.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 12 Slide 1 Distributed Systems Architectures.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 6 Slide 1 Chapter 6 Requirements Engineering Process.
Chapter 8 Architecture Analysis. 8 – Architecture Analysis 8.1 Analysis Techniques 8.2 Quantitative Analysis  Performance Views  Performance.
An Introduction to Software Architecture
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 6 Slide 1 Requirements Engineering Processes l Processes used to discover, analyse and.
Architecture-Based Runtime Software Evolution Peyman Oreizy, Nenad Medvidovic & Richard N. Taylor.
Architecture-based Adaptivity by Amir Taherkordi INF5360: Seminar on Dependable and Adaptive Distributed Systems Department of Informatics.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 07. Review Architectural Representation – Using UML – Using ADL.
Copyright 2002 Prentice-Hall, Inc. Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 20 Object-Oriented.
SAMANVITHA RAMAYANAM 18 TH FEBRUARY 2010 CPE 691 LAYERED APPLICATION.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 09. Review Introduction to architectural styles Distributed architectures – Client Server Architecture – Multi-tier.
Distributed Systems: Concepts and Design Chapter 1 Pages
Christian Heinzemann 11. Oktober 2015 Modeling Behavior of Self-Adaptive Systems Seminar Software Quality and Safety.
Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006.
Model-Driven Analysis Frameworks for Embedded Systems George Edwards USC Center for Systems and Software Engineering
Rahul Raheja, Shang-Wen Cheng, David Garlan, Bradley Schmerl Carnegie Mellon University 1.
Architectural Design lecture 10. Topics covered Architectural design decisions System organisation Control styles Reference architectures.
Advanced Computer Networks Topic 2: Characterization of Distributed Systems.
Class 5 Architecture-Based Self-Healing Systems David Garlan Carnegie Mellon University.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
Modeling Component-based Software Systems with UML 2.0 George T. Edwards Jaiganesh Balasubramanian Arvind S. Krishna Vanderbilt University Nashville, TN.
A Context Model based on Ontological Languages: a Proposal for Information Visualization School of Informatics Castilla-La Mancha University Ramón Hervás.
Unit 2 Architectural Styles and Case Studies | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS 1.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 13. Review Shared Data Software Architectures – Black board Style architecture.
CSC480 Software Engineering Lecture 10 September 25, 2002.
Software Deployment and Mobility. Introduction Deployment is the placing of software on the hardware where it is supposed to run. Redeployment / migration.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
Software Architectural Views By the end of this lecture, you will be able to: list and describe the views in the 4+1 view model of software architecture.
Testing OO software. State Based Testing State machine: implementation-independent specification (model) of the dynamic behaviour of the system State:
Review of Parnas’ Criteria for Decomposing Systems into Modules Zheng Wang, Yuan Zhang Michigan State University 04/19/2002.
Lecture 21: Component-Based Software Engineering
Basic Concepts and Definitions
4+1 View Model of Software Architecture
CS223: Software Engineering
1 Architecture and Behavioral Model for Future Cognitive Heterogeneous Networks Advisor: Wei-Yeh Chen Student: Long-Chong Hung G. Chen, Y. Zhang, M. Song,
Architectural Mismatch: Why reuse is so hard? Garlan, Allen, Ockerbloom; 1994.
Requirement Elicitation Review – Class 8 Functional Requirements Nonfunctional Requirements Software Requirements document Requirements Validation and.
Model-Driven Analysis Frameworks for Embedded Systems
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
An Introduction to Software Architecture
SAMANVITHA RAMAYANAM 18TH FEBRUARY 2010 CPE 691
Automated Analysis and Code Generation for Domain-Specific Models
Chapter 5 Architectural Design.
Model-based Adaptation for Self-Healing Systems David Garlan, Bradley Schmert ELSEVIER Sciences of Computer Programming 57 (2005) 이경렬
Presentation transcript:

Architecture-based approach to build adaptive software Presenter Kashif Dar INF5360: Seminar on Dependable and Adaptive Distributed Systems Department of Informatics University of Oslo February 08, 2011 Kashif Dar INF5360, ifi/UiOArchitecture-based approach to build adaptive software- Feb. 08, 2011

Papers to present An Architecture-Based Approach to Self-Adaptive Software By P. Oreizy, M. Gorlick, R. Taylor, D. Heimbigner, G. Johnson, N. Medvidovic, A. Quilici, D. Rosenblum, and A. Wolf, published in IEEE Intelligent Systems. May-June, 1999 Rainbow: Architecture-Based Self-Adaptation with Reusable Infrastructure By David Garlan, Shang-Wen Cheng, An-Cheng Huang, Bradley Schmerl, Peter Steenkiste, Publisher: IEEE Computer Society, pp , October, 2004 Kashif Dar INF5360, ifi/UiOArchitecture-based approach to build adaptive software- Feb. 08,

An Architecture-Based Approach to Self-Adaptive Software Kashif Dar INF5360, ifi/UiOArchitecture-based approach to build adaptive software- Feb. 08, Examines the fundamental role of software architecture in self-adaptive systems Topics covered: Self-adaptive software introduction Degrees of self-adaptability Dynamic Software architecture definition Adaptation management

Sample scenario mission: fleet of unmanned air vehicles to disable an enemy airfield surface-to-air missile (SAM) launchers now guards the airfield replan their mission, dividing into two groups: SAM-suppression and airfield-suppression airfield Kashif Dar INF5360, ifi/UiOArchitecture-based approach to build adaptive software- Feb. 08,

What happened Specialized algorithms for detecting and recognizing SAM launchers Replannning by Analyses that include feedback from new situation New software components are dynamically loaded and integrated without requiring restart, or any downtime Taking place autonomously Kashif Dar INF5360, ifi/UiOArchitecture-based approach to build adaptive software- Feb. 08,

Self-adaptive software Definition: Behavior: anything the software is expected to do Run-Time: do not need to be shut down to make the change Changes in operating environment: anything observable by the software system, e.g. end-user input, external hardware devices and sensors, or program instrumentation Self-adaptive software is a software that modifies its own behavior at run-time in response to changes in its operating environment Kashif Dar INF5360, ifi/UiOArchitecture-based approach to build adaptive software- Feb. 08,

Issues for adaptation What Conditions? Performance boost, failure recovery, re-configuration Open or Closed adaptation Is new application behavior can be added at runtime? Type of autonomy Fully autonomic, Self-contained, Human-in-the-loop Frequency Opportunistic, continuous, or lazy, as needed Cost Effectiveness Benefits should outweigh the cost of adaptation Information Type and Accuracy

Degrees of adaptability Kashif Dar INF5360, ifi/UiOArchitecture-based approach to build adaptive software- Feb. 08,

Conditional expressions Program evaluates an expression and alters its behavior based on the outcome E. g. if/switch statements Kashif Dar INF5360, ifi/UiOArchitecture-based approach to build adaptive software- Feb. 08,

Online algorithms assume future events are uncertain leverage knowledge about the problem and the input domain to improve efficiency E. g. memory-cache paging algorithm Kashif Dar INF5360, ifi/UiOArchitecture-based approach to build adaptive software- Feb. 08,

Generic algorithms Provide behaviors that are parameterized E.g. polymorphic type in OOPLs, working with instances of new classes (derived from known classes or implement known interfaces) Kashif Dar INF5360, ifi/UiOArchitecture-based approach to build adaptive software- Feb. 08,

Algorithm selection Selection of the effective algorithm among a fixed set of available algorithms based on environment properties E. g. Self optimizing compiler uses program-profiling data collected during program execution to select another optimization algorithms Kashif Dar INF5360, ifi/UiOArchitecture-based approach to build adaptive software- Feb. 08,

Evolutionary programming Using properties of the operating environment and knowledge gained from previous execution to generate new algorithms Kashif Dar INF5360, ifi/UiOArchitecture-based approach to build adaptive software- Feb. 08,

Adaptation methodology Kashif Dar INF5360, ifi/UiOArchitecture-based approach to build adaptive software- Feb. 08,

Architectural model Kashif Dar INF5360, ifi/UiOArchitecture-based approach to build adaptive software- Feb. 08,

Architecture-driven development From Architectural model to Implementation Consistency between model and Implementation System: network of coarse-grained components bound together by connectors Connectors are transport and routing services for messages or objects Components do not know how their inputs and outputs are delivered or transmitted or even what their sources or destinations might be Connectors know exactly who is talking to whom and how Separating computation from communication Kashif Dar INF5360, ifi/UiOArchitecture-based approach to build adaptive software- Feb. 08,

Dynamic software architecture In dynamic systems: modification in behaviour at run-time by making the following architectural changes: Adding new components Removing existing components Replacing existing components Changing the connectivity structure between components Two approaches to dynamism at the architectural level: C2 Weaves Kashif Dar INF5360, ifi/UiOArchitecture-based approach to build adaptive software- Feb. 08,

C2 and Weaves Both distinguish between components and connectors no restriction on their implementation language communication between components by exchanging asynchronous messages (C2) or objects (Weaves) all communication between components must be via connectors Kashif Dar INF5360, ifi/UiOArchitecture-based approach to build adaptive software- Feb. 08,

C2 System as a hierarchy of concurrent components bound together by connectors Component is aware of components “above” it and unaware of components residing at the same level or “beneath” it Communication between a component and those below it is handled implicitly using events Whenever a component changes its state, it broadcasts this to all components below it C1C2 C3C4C5 C6C7 Kashif Dar INF5360, ifi/UiOArchitecture-based approach to build adaptive software- Feb. 08,

Weaves Dynamic, objectflow-centric architecture Components consume objects as inputs and produce objects as outputs Components do not knows the semantics of the connectors that delivered its input objects or transmitted its output objects C1 C2 C3 C4 Obj1 returns Obj2 Kashif Dar INF5360, ifi/UiOArchitecture-based approach to build adaptive software- Feb. 08,

Maintaining consistency Kashif Dar INF5360, ifi/UiOArchitecture-based approach to build adaptive software- Feb. 08,

Maintaining consistency and integrity Preserving an accurate and consistent model of components and connectors Maintain a strict correspondence between the architectural model and the executing implementation Architecture Evolution Manager (AEM) maintains the consistency between architectural model and implementation prevents changes from violating architectural constraints Kashif Dar INF5360, ifi/UiOArchitecture-based approach to build adaptive software- Feb. 08,

Enacting changes Kashif Dar INF5360, ifi/UiOArchitecture-based approach to build adaptive software- Feb. 08,

Enacting changes Possible sources of architectural change Architecture editor To construct architecture and describe modifications With analysis tools such as design analyzer or domain-dependent analyzer Modification interpreter Tool to interpret change scripts written in a change-description language to primitive actions supported by the AEM Kashif Dar INF5360, ifi/UiOArchitecture-based approach to build adaptive software- Feb. 08,

Adaptation methodology Kashif Dar INF5360, ifi/UiOArchitecture-based approach to build adaptive software- Feb. 08,

Collecting observations Varieties of observations: event generation, … Observers for notification of exceptional events Expectation agent detecting and noting single events is not enough responds to the occurrence of event patterns New techniques for reducing the monitoring overhead Kashif Dar INF5360, ifi/UiOArchitecture-based approach to build adaptive software- Feb. 08,

Evaluate and monitor observations Adaptive demands arise from inconsistencies or suboptimal behavior Evaluating and observing an application’s execution, including, performance monitoring, constraint verification, … Kashif Dar INF5360, ifi/UiOArchitecture-based approach to build adaptive software- Feb. 08,

Plan changes The task of accepting the evaluations, defining an appropriate adaptation, and constructing a blueprint for executing that adaptation Two forms Observation planning: determines which observations are necessary for deciding Adaptation planning: determines exactly which adaptations to make and when Kashif Dar INF5360, ifi/UiOArchitecture-based approach to build adaptive software- Feb. 08,

Deploy change descriptions Change descriptions Included are any new required components or connectors and their affiliated annotations Interact with the AEM to translates the change in descriptions into specific updates of implementation Kashif Dar INF5360, ifi/UiOArchitecture-based approach to build adaptive software- Feb. 08,

Summary Paper main goal Introducing an architecture-based approach to managing self-adaptive software To achieve this goal Describe dynamic software architecture Explain how architectural model eases software adaptation Kashif Dar INF5360, ifi/UiOArchitecture-based approach to build adaptive software- Feb. 08,

Interesting points Key issues for adaptive software: open- closed, cost effective,... Classification of self-adaptability, ranging from conditional expressions to evolutionary programming Describing two dynamic software architectures: C2 and Weaves Making effort to connect software development process with adaptation process Kashif Dar INF5360, ifi/UiOArchitecture-based approach to build adaptive software- Feb. 08,

Questions and discussion The authors claim that they have developed an infrastructure for dynamic adaptation The infrastructure is described at an abstract level No details of how an implementation of the infrastructure works How are architectural constraints expressed and checked? Which architecture is suitable? The Reasoning model for Evaluation or Plan changes? Kashif Dar INF5360, ifi/UiOArchitecture-based approach to build adaptive software- Feb. 08,

Rainbow: Architecture-based Self-adaptation By David Garlan et al, 2004 Kashif Dar INF5360, ifi/UiOArchitecture-based approach to build adaptive software- Feb. 08, 2011

Kashif Dar INF5360, ifi/UiO Architecture-based approach to build adaptive software- Feb. 08, Outline Motivation Approach Preliminary Work Demo Discussion of Challenges

Kashif Dar INF5360, ifi/UiO Architecture-based approach to build adaptive software- Feb. 08, Many Things Can Go Wrong Wireless device moves into a different network Software Application(s) Server load changes Resource variability Changing environments Shifting user needs System faults Application or network connection fails The system should dynamically adapt to these problems. User attempts foul-play

Kashif Dar INF5360, ifi/UiO Architecture-based approach to build adaptive software- Feb. 08, External Adaptation Global system perspective Important system-level behaviors and properties Explicit system integrity constraints adapt monitor Architectural model & Adaptation mechanism Software Application(s)

Kashif Dar INF5360, ifi/UiO Architecture-based approach to build adaptive software- Feb. 08, Desirable Solution Ideally, we’d like a solution that  enables software engineers  to use architectural models  to adapt existing systems Key Challenge: One size does not fit all Solution should be General cost-effective composable

Kashif Dar INF5360, ifi/UiO Architecture-based approach to build adaptive software- Feb. 08, Rainbow Approach Translation Infrastructure System API Running System System Layer Probes Resource Discovery Effectors Architecture Layer Model Manager Adaptation Executor Arch Evaluator Adaptation Engine Gauges Monitoring mechanisms Effector mechanisms

Kashif Dar INF5360, ifi/UiO Architecture-based approach to build adaptive software- Feb. 08, Our Rainbow Approach (2) Translation Infrastructure Arch Evaluator Adaptation Engine Model Manager Adaptation Executor Running System System API System Layer Probes Resource Discovery Effectors Architecture Layer Gauges Translation Infrastructure Arch Evaluator Adaptation Engine Model Manager Adaptation Executor Running System System API System Layer Probes Resource Discovery Effectors Architecture Layer Gauges Arch Evaluator Adaptation Engine Model Manager Adaptation Executor

Kashif Dar INF5360, ifi/UiO Architecture-based approach to build adaptive software- Feb. 08, What’s tailored Properties Vocabulary of model Architectural constraints Strategies & tactics Operators Rainbow as a Tailorable Framework General framework with Reusable infrastructure + tailorable mechanisms Specialized to targeted system + adaptation goals Main components Monitoring mechanisms Model manager Architectural evaluator Adaptation engine Effector mechanisms

Jan. 27, 2011 Garlan, Schmerl, Cheng 41 Demo: University Grade System Students using university web University aims to provide timely and ubiquitous access One student tries to hack in and change his grades Possible (escalating) responses: Turn on auditing Switch authentication scheme Sandboxing Move grades data Close off connections Partition network Turn off services

Jan. 27, 2011 Garlan, Schmerl, Cheng 42 Demo : University Grade System Composite system style: Client-server + data repository Adaptation goals investigated: Performance + security System properties to monitor Vocabulary of client- server elements and performance properties Constraints on performance properties Adaptation strategies to counter perfor- mance problems Client-server architecture change operators Mapping of elements and operators to system-level actions intrusion behavior patterns; specific IDS Firewall, Db, ServerT intrusion%, load Invariant intrusionProb <= threatThreshold counterIntrusion, counterDoS… GradeServer.addService(), DbT.audit() Db  MySQL DB, etc.

Jan. 27, 2011 Garlan, Schmerl, Cheng 43 Rainbow Mechanisms Rainbow Illustrated – Intrusion Detection Arch Evaluator Adaptation Engine Translator Adaptation Executor Model Manager Grade change Client2.intrusion_prob = 75% True?: intrusion_prob <= max_prob False! Find the right tactic Client2.isolate() / Grades.audit() Change link / Add Auditing

Kashif Dar INF5360, ifi/UiO Architecture-based approach to build adaptive software- Feb. 08, Preliminary Work Shows Promise Rainbow prototype Integrated mechanisms and tested control cycle Demonstrated usefulness for specific adaptation scenarios Two case studies Three styles of system Client-server, service-coalition, data repository Three kinds of adaptation goals Performance + security + cost Adaptation language under development

Kashif Dar INF5360, ifi/UiO Architecture-based approach to build adaptive software- Feb. 08, Some Research Problems Architectural “recovery” at run time. Efficient, scalable constraint evaluation Environment modeling and scoping Handling multiple models and dimensions of concern Reasoning about the correctness of a repair strategy Non-deterministic arrival of system observations Avoiding thrashing Adapting the adaptation strategies

Kashif Dar INF5360, ifi/UiO Architecture-based approach to build adaptive software- Feb. 08, The END