Achieving Qualities. Architectural Tactics  A tactic is a design decision that influences the control of a quality attribute response.  A collection.

Slides:



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

Remus: High Availability via Asynchronous Virtual Machine Replication
Chapter 19: Network Management Business Data Communications, 5e.
Vakgroep Informatietechnologie – IBCN Software Architecture Prof.Dr.ir. F. Gielen Quality Attributes & Tactics (2) Performance.
Quality Attributes Or, what’s wrong with this: Exterminator kit – place bug on block, strike with mallet.
Lecture 13 Enterprise Systems Development ( CSC447 ) COMSATS Islamabad Muhammad Usman, Assistant Professor.
Chapter 19: Network Management Business Data Communications, 4e.
1 ITC242 – Introduction to Data Communications Week 12 Topic 18 Chapter 19 Network Management.
Lesson 11-Virtual Private Networks. Overview Define Virtual Private Networks (VPNs). Deploy User VPNs. Deploy Site VPNs. Understand standard VPN techniques.
1 Exercise a short summary of you so your professor can get to know you better: Name, company, job/role/title, most interesting SE area, any architecting.
EEC-681/781 Distributed Computing Systems Lecture 3 Wenbing Zhao Department of Electrical and Computer Engineering Cleveland State University
70-290: MCSE Guide to Managing a Microsoft Windows Server 2003 Environment Chapter 12: Managing and Implementing Backups and Disaster Recovery.
Software Architecture in Practice Part Two: Creating an Architecture 2nd Ed. Len Bass, Paul Clements, Rick Kazman.
Architectural Design Principles. Outline  Architectural level of design The design of the system in terms of components and connectors and their arrangements.
©Brooks/Cole, 2003 Chapter 7 Operating Systems Dr. Barnawi.
Vakgroep Informatietechnologie – IBCN Software Architecture Prof.Dr.ir. F. Gielen Quality Attributes & Tactics (4) Modifiability.
Lesson 1: Configuring Network Load Balancing
16: Distributed Systems1 DISTRIBUTED SYSTEM STRUCTURES NETWORK OPERATING SYSTEMS The users are aware of the physical structure of the network. Each site.
Configuration Management
Overview SAP Basis Functions. SAP Technical Overview Learning Objectives What the Basis system is How does SAP handle a transaction request Differentiating.
70-290: MCSE Guide to Managing a Microsoft Windows Server 2003 Environment, Enhanced Chapter 12: Managing and Implementing Backups and Disaster Recovery.
Instructor: Tasneem Darwish1 University of Palestine Faculty of Applied Engineering and Urban Planning Software Engineering Department Software Systems.
Achieving Qualities 1 Võ Đình Hiếu. Contents Architecture tactics Availability tactics Security tactics Modifiability tactics 2.
9/14/2015B.Ramamurthy1 Operating Systems : Overview Bina Ramamurthy CSE421/521.
Security Security is a measure of the system’s ability to protect data and information from unauthorized access while still providing access to people.
70-290: MCSE Guide to Managing a Microsoft Windows Server 2003 Environment, Enhanced Chapter 12: Managing and Implementing Backups and Disaster Recovery.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 07. Review Architectural Representation – Using UML – Using ADL.
DCE (distributed computing environment) DCE (distributed computing environment)
Instructor: Tasneem Darwish1 University of Palestine Faculty of Applied Engineering and Urban Planning Software Engineering Department Software Systems.
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 Architectural Styles.
SOFTWARE SYSTEMS DEVELOPMENT 4: System Design. Simplified view on software product development process 2 Product Planning System Design Project Planning.
Computer Emergency Notification System (CENS)
CE Operating Systems Lecture 3 Overview of OS functions and structure.
Chapter 10 Analysis and Design Discipline. 2 Purpose The purpose is to translate the requirements into a specification that describes how to implement.
Ihr Logo Operating Systems Internals & Design Principles Fifth Edition William Stallings Chapter 2 (Part II) Operating System Overview.
SCALABLE EVOLUTION OF HIGHLY AVAILABLE SYSTEMS BY ABHISHEK ASOKAN 8/6/2004.
Unit 2 Architectural Styles and Case Studies | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS 1.
CprE 458/558: Real-Time Systems
1 Chapter 1 – Background Computer Security T/ Tyseer Alsamany - Computer Security.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Slide 1 Lecture 14 Enterprise Systems Development ( CSC447 ) COMSATS Islamabad Muhammad Usman, Assistant Professor.
1 Software Architecture in Practice Architectural Design (Again, the amputated version)
Vakgroep Informatietechnologie – IBCN Software Architecture Prof.Dr.ir. F. Gielen Quality Attributes & Tactics (1)
Dr. Awais Majeed Achieving Quality CSE 861- Software System Design & Architecture.
Operating Systems Distributed-System Structures. Topics –Network-Operating Systems –Distributed-Operating Systems –Remote Services –Robustness –Design.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
Chapter 19: Network Management
Chapter 7: Modifiability
Processes and threads.
Operating Systems : Overview
Self Healing and Dynamic Construction Framework:
SOFTWARE DESIGN AND ARCHITECTURE
Achieving Qualities.
Chapter 11: Usability © Len Bass, Paul Clements, Rick Kazman, distributed under Creative Commons Attribution License.
Storage Virtualization
Real-time Software Design
Unit- 3 QUALITY Presented by Sushma Narasimhan Asst. Professor,
Quality Attributes Or, what’s wrong with this:
Operating Systems : Overview
Quality Attributes Or, what’s wrong with this:
Operating Systems : Overview
Operating Systems : Overview
Operating Systems : Overview
Chapter 2: Operating-System Structures
Operating Systems : Overview
Operating Systems : Overview
Chapter 2: Operating-System Structures
Quality Attributes Or, what’s wrong with this:
Presentation transcript:

Achieving Qualities

Architectural Tactics  A tactic is a design decision that influences the control of a quality attribute response.  A collection of tactics is called an architectural strategy.  A system design is a collection of decisions Some ensure achievement of the system functionality Others help control the quality attribute responses (which we call the tactics)

Architectural Tactics (Cont’d)  Tactics can refine other tactics – e.g., redundancy is a tactic in achieving availability and it can be refined into redundancy of data or redundancy of computation.  Patterns package tactics – e.g., a pattern might package both redundancy and synchronization tactics (along with others).

Architectural Tactics (Cont’d) Tactics to Control Response StimulusResponse

Availability Tactics  All approaches to maintaining availability involve: Some type of redundancy Some type of health monitoring to detect a failure Some type of recovery when a failure is detected (either automatic or manual).

Goal of Availability Tactics Tactics to Control Availability FaultFault Masked or Repair Made

Fault Detection Tactics  Ping/echo – one component issues a ping and expects to receive back an echo within a predefined time.  Heartbeat – one component emits a heartbeat periodically and another component listens for it.  Exceptions – one method for recognizing faults is to encounter an exception raised when a fault is discovered.

Fault Recovery Tactics  Voting – Processes running on redundant processors each take equivalent input and compute an output value that is sent to a voter that makes a decision on what to do using “majority rules” or “preferred component” or other basis.  Active redundancy (hot restart) – All redundant components respond to events in parallel and the response from only one component is used (usually the first to respond).

Fault Recovery Tactics (Cont’d)  Passive redundancy (warm restart/dual redundancy/triple redundancy) – One component (the primary) responds to events and informs the other components (the standbys) of state updates they must make. When a fault occurs the system must first make sure that the backup state is sufficiently fresh before resuming services.  Spare – A standby spare computing platform is configured to replace many different failed components. It must be rebooted to the proper software configuration and have its state initialized when a failure occurs.

Fault Recovery Tactics (Cont’d)  Shadow operation – A previously failed component may be run in “shadow mode” for a short period of time to make sure it mimics the behavior of the working components before restoring it to service.  State resynchronization – When components are disabled in either passive or active redundancy tactics, they must have their states upgraded before returning them to service.  Checkpoint/rollback -- The recording of a consistent state created either periodically or in response to specific events. When a fault occurs the system can be rolled back to that state.

Fault Prevention Tactics  Removal from service – The removal of a component from service to undergo activities to prevent failures.  Transactions – The bundling of several sequential steps in which the entire bundle can be undone at once.  Process monitor – Monitoring for a fault in a process and deleting the nonperforming process and creating a new instance of it.

Summary of Availability Tactics Availability Fault Detection Recovery- Preparation and Repair Recovery- Reintroduction Prevention Ping/Echo Heartbeat Exception Voting Active Redundancy Passive Redundancy Spare Shadow State Resyn- chroniztion Rollback Removal from Service Trans- actions Process Monitor Fault Masked Or Repair Made

Modifiability Tactics  Goal is to control the time and cost to implement, test, and deploy changes.  Specific tactics include: Localize modifications Prevent ripple effects Defer binding time

Goal of Modifiability Tactics Tactics to Control Modifiability Change Arrives Changes Made, Tested, and Deployed Within Time and Budget

Localize Modifications  Maintain semantic coherence – making sure that all the responsibilities in a module are related and work together without excessive reliance on other modules.  Abstract common services – that way modifications may only need to be made once.  Anticipate expected changes – consider envisioned changes when doing decomposition.  Generalize the module – the more general the module is, the more likely changes can be accommodated with little or no change.  Limit possible options – for example limiting the platform for a product line could improve modifiability

Prevent Ripple Effects  Types of dependencies one module (B) may have on another (A) that could cause a ripple effect: Syntax of data Syntax of service Semantics of data Semantics of service Sequence of data Sequence of control

Prevent Ripple Effects (Cont’d)  Types of dependencies one module (B) may have on another (A) that could cause a ripple effect (cont’d): Identity of an interface of A Location of A (runtime) Quality of service/data provided by A Existence of A Resource behavior of A

Prevent Ripple Effects (Cont’d)  Tactics to prevent ripple effects include: Hide information Maintain existing interfaces  Adding interfaces  Adding adapter  Providing a stub Restrict communication paths

Prevent Ripple Effects (Cont’d)  Tactics to prevent ripple effects include (cont’d): Use an intermediary  Data (syntax) – repositories  Service (syntax) – façade, bridge, mediator, strategy, proxy, and factory patterns  Identity of an interface of A – broker pattern  Location of A (runtime) – name server  Resource behavior of A or resource controlled by A – resource manager  Existence of A – factory pattern

Defer Binding Time Tactics  Runtime registration supports plug-and-play  Configuration files are intended to set parameters at startup  Polymorphism allows late binding of method calls  Component replacement allows load time binding  Adherence to defined protocols allows runtime binding of independent processes

Summary of Modifiability Tactics Modifiability Localize Changes Prevention of Ripple Effect Defer Binding Time Semantic Coherence Anticipate Expected Changes Generalize Module Limit Possible Options Abstract Common Services Hide Information Maintain Existing Interface Restrict Communication Paths Use an Intermediary Runtime Registration Configuration Files Polymorphism Component Replacement Adherence to Defined Protocols Changes Arrive Changes Made, Tested, and Deployed Within Time and Budget

Performance Tactics  Goal is to generate a response to an event arriving at the system within some time constraint.  Specific tactics include: Resource Demand Resource Management Resource Arbitration

Goal of Performance Tactics Tactics to Control Performance Events Arrive Response Generated Within Time Constraints

Two Basic Contributors to the Response Time  Resource Consumption – Resources include CPU, data stores, network communication bandwidth, and memory. Events go through a processing sequence which contributes to the overall latency of the response.  Blocked Time – There may be: Contention for resources Unavailability of resources Dependency on other computation

Resource Demand  Reduce the resources required for processing an event stream Increase computational efficiency – improve algorithm efficiency or trade one resource for another Reduce computational overhead – for example, eliminate intermediaries  Reduce the number of events processed Manage event rate – reduce the frequency at which environmental variables are monitored Control frequency of sampling – sample queued requests at lower frequency

Resource Demand (Cont’d)  Other tactics for reducing or managing demand Bound execution times – limit how much execution time is used to respond to an event Bound queue sizes – controls the maximum number of queue arrivals

Resource Management  Introduce concurrency – blocked time can be reduced if requests can be processed in parallel.  Maintain multiple copies of either data or computations – clients in a client server pattern are replicas of the computation which reduces contention. Caching is a tactic in which data is replicated.  Increase available resources – add additional or faster processors, memory, or faster networks.

Resource Arbitration  Whenever there is contention for a resource, the resource must be scheduled.  A scheduling strategy has two parts, a priority assignment and dispatching.  Competing criteria for scheduling include: Optimal resource usage Request importance Minimizing the number of resources used Minimizing latency Maximizing throughput Preventing starvation to ensure fairness

Resource Arbitration (Cont’d)  A high-priority event stream can be dispatched only if the resource to which it is assigned is available which may require pre-empting the current user.  Possible preemption options are as follows: Can occur anytime Can occur only at specific pre-emption points Executing processes cannot be pre- empted

Resource Arbitration (Cont’d)  Common Scheduling strategies First-in/first-out Fixed-priority scheduling  Semantic importance  Deadline monotonic  Rate monotonic Dynamic priority scheduling  Round robin  Earliest deadline first Static scheduling

Summary of Performance Tactics Performance Resource Demand Resource Management Resource Arbitration Increase Computation Efficiency Reduce Computational Overhead Manage Event Rate Control Frequency of Sampling Introduce Concurrency Maintain Multiple Copies Increase Available Resources Scheduling Policy Events Arrive Responses Generated Within Time Constraints

Security Tactics  Three categories of security tactics Resisting attacks Detecting attacks Recovering from attacks

Goal of Security Tactics Tactics to Control Security AttackSystem Detects, Resists, or Recovers from Attacks

Resisting Attacks  Authenticate users – ensuring that a user or remote computer is actually who it purports to be (e.g., via passwords).  Authorize users – ensuring that an authenticated user has the rights to access and modify either data or services (e.g., via access control by user or user class within the system).  Maintain data confidentiality – data should be protected from unauthorized access (e.g., via encryption of persistent data or use of VPN or SSL for a Web-based link).

Resisting Attacks (Cont’d)  Maintain integrity – data should be delivered as intended (e.g., via use of redundant encoded information like checksums or hash results).  Limit exposure – allocate services to hosts so that limited services are available on each host.  Limit access – restrict access based on message source or destination port if possible (e.g., via firewalls)

Detecting Attacks  The detection of an attack is usually done through an intrusion detection system.  These systems compare network traffic patterns to a database of patterns.  For misuse detection the traffic pattern is compared to known attack patterns.  For anomaly detection the traffic pattern is compared to the historical baseline of itself.

Detecting Attacks (Cont’d)  Intrusion detectors must have: Some sort of sensor to detect attacks Managers to do sensor fusion Databases for storing events for later analysis Tools for offline reporting and analysis A control console so that the analyst can modify intrusion detection actions.

Recovering from Attacks  Tactics concerned with restoring state These overlap with availability tactics Special attention is paid to maintaining redundant copies of system administrative data like passwords, access control lists, domain name services and user profile data.  Those concerned with attacker identification (for either preventive or punitive purposes) Maintain an audit trail

Summary of Security Tactics Security Resisting Attacks Detecting Attacks Recovering from an Attack Authenticate Users Authorize Users Maintain Data Confidentiality Maintain Integrity Limit Exposure Limit Access Intrusion Detection Restoration Attack System Detects, Resists, or Recovers from Attacks See Availability Identification Audit Trail

Testability Tactics  The goal of testability tactics is to allow for easier testing when an increment of software development is completed.  The goal of a testing regimen is to discover faults which requires that input be provided and that output be captured.  Two categories of tactics for testing are: Providing input and capturing output Internal monitoring

Goal of Testability Tactics Tactics to Control Testability Completion of an Increment Faults Detected

Input/Output  Record/Playback – capturing information crossing an interface and using it as input into a test harness.  Separate interface from implementation – allows substitution of implementations for various testing purposes  Specialize access routes/interfaces – allows the capturing or specification of variable values for a component through a test harness as well as independently from its normal execution.

Internal Monitoring  Built-in monitors – can maintain state, performance load, capacity, security, or other information accessible through an interface.  This interface can be a permanent interface of the component or it can be introduced temporarily via an instrumentation technique (e.g., via preprocessor macros)

Summary of Testability Tactics Testability Manage Input/Output Internal Monitoring Record/Playback Separate Interface from implementation Specialized Access Routes/Interfaces Completion Of an Increment Faults Detected Built-in Monitors

Usability Tactics  Usability is concerned with how easy it is for the user to accomplish a desired task and the kind of support the system provides.  Two categories of tactics are available Runtime tactics Design time tactics

Goal of Usability Tactics Tactics to Control Usability User Request User Given Appropriate Feedback and Assistance

Human-Computer Interaction Modes  User initiative – the user takes the initiative  System initiative – the system take the initiative  Mixed initiative – the user and the system working together initiate an action.

Support User Initiative  Examples of user initiated commands Cancel Undo Aggregate Show multiple views

Support System Initiative  When the system takes the initiative, it must rely on some information – a model – about the user, the task being undertaken, by the user, or the state of the system itself Maintain a model of the task – to determine context. Maintain a model of the user – to determine users knowledge of the system and behavior. Maintain a model of the system – to determine expected system behavior so that appropriate feedback can be given to the user.

Design-Time Tactics  These are refinements of modifiability tactics to aid in making revisions to the user interface design, for example: Separate the user interface from the rest of the application – since the user interface is expected to change frequently both during the development and after deployment, maintaining the user interface code separately will localize change in it (localizing expected changes is the rationale for semantic coherence).

Relationship of Tactics to Architectural Patterns  Architectural patterns implements multiple tactics  For example, the active object design pattern, which decouples method execution from method invocation to enhance concurrency and simplify synchronized access to objects that reside in their own thread of control, uses several tactics.

The Active Object Design Pattern  It consists of six elements: A proxy – which provides an interface that allows clients to invoke publicly accessible methods on an active object. A method request – which defines an interface for executing the methods of an active object. An activation list – which maintains a buffer of pending method requests. A scheduler – which decides what method requests to execute next. A servant – which defines the behavior and state modeled as an active object. A future – which allows the client to obtain the result of the method invocation.

Tactics Used  The motivation of this pattern is to enhance concurrency – a performance goal.  It’s main purpose is therefore to implement the “introduce concurrency” performance tactic.  This pattern however involves several other patterns: Information hiding (modifiability) – each element chooses the responsibilities it will achieve and hides their achievement behind an interface.

Tactics Used  This pattern however involves several other patterns (cont’d): Intermediary (modifiability) – The proxy acts as an intermediary. Binding time (modifiability) – The active object pattern assumes that the requests for the ofject arrive at the object at runtime, but the binding time of the client to the proxy is left open. Scheduling policy (performance) – the scheduler implements some scheduling policy.

Architectural Patterns (Styles)  Analogous to architectural styles in buildings  An architectural pattern is determined by: A set of element types (e.g., a data repository) A topological layout of the elements indicating their interrelationships A set of semantic constraints A set of interaction mechanisms (e.g. subroutine calls) that determine how the elements coordinate through the allowed topology  Tactics are the building blocks upon which architectural patterns are built.

A Small Catalog of Architectural Patterns Independent Components communicating processes event systems implicit invocationexplicit invocation

A Small Catalog of Architectural Patterns (Cont’d) Data Flow batch sequentialpipes and filters Data-centered repositoryblackboard

A Small Catalog of Architectural Patterns (Cont’d) Virtual Machine interpreterrule-based system Call/Return main program and subroutine layeredobject-oriented