Architectural Adaptation

Slides:



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

Software Architecture Lecture 3
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Basic Concepts Software Architecture Lecture 3.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Designing for NFPs Software Architecture Lecture 19.
Software Architecture Lecture 2
Software Connectors Software Architecture. Importance of Connectors Complex, distributed, multilingual, modern software system functionality and managing.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors.
Architectural Adaptation Software Architecture Week 13, Lecture 1 Prepared by Dr. Richard Taylor Professor of Information and Computer Sciences University.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors Software Architecture Lecture 7.
Dynamism in Software Architectures. Adaptation  Change is endemic to software –perceived and actual malleability of software induces stakeholders to.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Designing for NFPs Software Architecture Lecture 19.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Architectural Adaptation Software Architecture Lecture 25.
1 FM Overview of Adaptation. 2 FM RAPIDware: Component-Based Design of Adaptive and Dependable Middleware Project Investigators: Philip McKinley, Kurt.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Architectural Adaptation Software Architecture Lecture 25.
Software Architecture Lecture 3
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors Software Architecture Lecture 7.
1 Autonomic Computing An Introduction Guenter Kickinger.
Architecture-Based Runtime Software Evolution Peyman Oreizy, Nenad Medvidovic & Richard N. Taylor.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Implementing Architectures Software Architecture.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Architectural Styles Part I Software Architecture Lecture 5.
Chapter 14 Part II: Architectural Adaptation BY: AARON MCKAY.
THE VISION OF AUTONOMIC COMPUTING. WHAT IS AUTONOMIC COMPUTING ? “ Autonomic Computing refers to computing infrastructure that adapts (automatically)
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. NFP Design Techniques Software Architecture Lecture 20.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. NFP Design Techniques Software Architecture Lecture 20.
The Vision of Autonomic Computing Self-Management Unit 7-2 Managing the Digital Enterprise Kephart, and Chess.
Software Connectors Acknowledgement: slides mostly from Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic,
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors in Practice Software Architecture.
Foundations, Theory, and Practice Software Architecture Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Basic.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors Software Architecture Lecture 7.
ARCHITECTURA L ADAPTATION TALIESIN SMITH. CONCEPTS Adaptation – Modification of a software system to satisfy new requirements and changing circumstances.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Deployment and Mobility Software Architecture Lecture 12.
Systems Analysis and Design
Non-Functional Properties
Software Architecture Lecture 3
Software Architecture
CHAPTER 1: Computers and Systems
Analysis of Software Architectures
Implementing Architectures
Software Connectors.
Maintaining software solutions
Software Architecture Lecture 19
Software Architecture Lecture 3
Software Architecture Lecture 2
Model-Driven Analysis Frameworks for Embedded Systems
Software Architecture Lecture 3
Software Defined Networking (SDN)
Software Architecture Lecture 5
Systems Analysis and Design
The Vision of Autonomic Computing
Software Architecture Lecture 20
Implementing Architectures
Software Architecture Lecture 3
Software Connectors.
An Introduction to Software Architecture
Architectural Adaptation
Software Architecture Lecture 3
Architectural Adaptation
Architectural Adaptation
Requirements Document
Software Architecture Lecture 7
Architectural Adaptation
Software Architecture Lecture 7
Architectural Adaptation
Software Architecture Lecture 3
Self-Managed Systems: an Architectural Challenge
Software Architecture Lecture 7
Analysis of Software Architectures
Software Architecture Lecture 6
Presentation transcript:

Architectural Adaptation Software Architecture

Adaptation Change is endemic to software perceived and actual malleability of software induces stakeholders to initiate changes, e.g.: Users want new features Designer wants to improve performance Application environment is changing Adaptation: modification of a software system to satisfy new requirements and changing circumstances

Goals of this Lecture Characterize adaptation, showing what changes, why, and who the players are Characterize the central role software architecture plays in system adaptation Present techniques for effectively supporting adaptation, based on an architecture-centric perspective

Sources and Motivations for Change Corrective Changes Bug fixes Modification to the functional requirements New features are needed Existing ones modified Perhaps some must be removed New or changed non-functional system properties Anticipation of future change requests Changed operating environment Observation and analysis

Changes Arising from Product Line Forces Creating a new variant Change at branch point E.g.: Adding an integrated TV/DVD device to a TV product line Creation of a new branch point Merging product (sub)lines Rationalizing their architectures

Motivation for Online Dynamic Change Non-stop applications software cannot be stopped because the “application” cannot be stopped E.g., 24/7 systems Maintaining user or application state stopping the software would cause the user to lose (mental) context saving and/or recreating the software’s application state would be difficult or costly Re-installation difficulty applications with complex installation properties E.g., software in an automobile

Stewart Brand’s Shearing Layers of Change “How Buildings Learn – What happens after they’re built” examines how and why buildings change over time Categorization of types of change according to the nature and cost of making a change

Shearing Layers in a Building Figure adapted from “How Buildings Learn”; Stewart Brand, © 1994 Stewart Brand.

The Six Shearing Layers Site: the geographical setting, the urban location, and the legally defined lot its boundaries and context outlast generations of ephemeral buildings. Structure (“the building”): the foundation and load-bearing elements perilous and expensive to change, so people don’t Skin: exterior surfaces change every ~20 years, to keep up with fashion, technology, or for repair

The Six Shearing Layers (cont’d) Services: working guts of a building: communications wiring, electrical wiring, plumbing, sprinkler systems, etc. Space Plan: interior layout – where walls, ceilings, floors, and doors go Stuff: chairs, desks, phones, pictures, kitchen appliances, lamps, hair brushes things that switch around daily to monthly

To Shear or Not to Shear – Pompidou Center Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.

The Six Shearing Layers Site Structure Skin Services Space Plan Stuff How do these relate to software architecture?

Changing Component Interiors A component’s performance may be improved by a change to the algorithm that it uses internally Capabilities that facilitate component adaptation Knowledge of self and exposure of this knowledge to external entities Knowledge of the component’s role in the larger architecture Pro-active engagement of other elements of a system in order to adapt

Reconfigurable Components

Change of Component Interface In many cases adaptation to meet modified functional properties entails changing a component’s interface Adaptors/wrappers are a popular technique to mitigate “ripple effect” but, subsequent changes to previously unmodified methods become even more complex

Connector Change Typically changes to connectors are motivated by The desire to alter non-functional properties such as distribution of components, fault-tolerance, efficiency, modifiability, etc. increased independence of sub-architectures in the face of potential failures improved performance The more powerful the connector the easier architectural change E.g., connectors supporting event-based communication What is the downside?

Change in the Configuration Changes to the configuration of components and connectors represents fundamental change to a system’s architecture Effectively supporting such a modification requires working from an explicit model of the architecture Many dependencies between components will exist, and the architectural model is the basis for managing and preserving such relationships

Change Agents and Context (1) Change Agents – Identity and Location The processes that carry out adaptation may be performed by human automated agents a combination thereof If an adaptation agent is part of a deployed application from the outset, the potential is present for an effective adaptation process Agent may have access to contextual information E.g., periodically a user of a desktop OS is notified when an OS or application upgrade is available

Change Agents and Context (2) Knowledge Agent might need knowledge to mitigate adaptation risk Agent has to know the constraints that must be retained in the modified system If the system’s architectural design decisions have been violated, architectural recovery will be required Degree of Freedom Freedom that the engineer has in designing the changes Greater freedom  large solution space By learning the constraints of the system, the coherence of the architecture can be retained

Time of Change Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.

Architecture-Centric Adaptation In the absence of explicit architecture the engineer is left to reason about adaptation from memory from source code Architecture can serve as the primary focus of reasoning about potential adaptations Descriptive architecture is the reference point

Conceptual Architecture for Adaptation From: “An Architecture-based Approach to Self-Adaptive Software”, Oreizy, et.al. IEEE Intelligent Systems, 14 (3), 1999.

Activities, Agents, and Entities Adaptation management and evolution management can be separated into three types of activities Strategic refers to determining what to do Tactical refers to developing detailed plans for achieving the strategic goals Operations refers to the nuts-and-bolts of carrying out the detailed plans

Strategy, Tactics, and Operations Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.

Architectures/Styles that Support Adaptation Explicit models First-class connectors Adaptable connectors Message-based communication …others?

Architectures/Styles Supporting Adaptation Application programming interfaces (API) Scripting languages Plug-ins Component/object architectures Event interfaces

API-Based Extension Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.

Plug-In Based Extension Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.

Component-Object Approach Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.

Scripting-Based Extension Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.

Event-Based Extension Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.

Complexity of Managing Software “The computer industry has spent decades creating systems of marvelous and ever-increasing complexity. But today, complexity of managing the software itself is the problem.” Alan Ganek, VP of IBM Software Group “One-half of a company’s total IT budget is spent on managing and troubleshooting its software infrastructure” Yankee Group Report

New Paradigms of Computing Exacerbate the Situation Many decisions can only be made effectively after the deployment of the software, pushing the complexity into runtime Handheld Computing Cyber-Physical Systems Service Oriented Computing The ability to deal with dynamism, mobility, and resource constraints The ability to deal with third party software and hardware

Autonomic Software Systems Also known as Self-* Software Systems Software systems that can manage themselves after deployment MAPE-K Reference Architecture Specifies Objectives Is monitored Is monitored Manages Uses Interacts

Interacting Autonomic Entities

Autonomic Computing Self-configuring Deployment of new components or the removal of existing ones Use policies provided by the IT professional Self-optimizing Can monitor and tune resources automatically Reallocating resources—such as in response to dynamically changing workloads

Autonomic Computing Self-healing Can detect system malfunctions and initiate corrective action Product altering its own state or effecting changes in other components Less number of failures Self-protecting Can anticipate, detect, identify and protect against threats from anywhere Include unauthorized access and use, virus infection

Architecture-Based Adaptation Dynamic Adaptation Management is often in the form of dynamic adaptation Change the software as it executes Slow Network Car Rental Service becomes unresponsive Architecture-Based Adaptation