62
Achieving Qualities

Software archiecture lecture06

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Software archiecture   lecture06

Achieving Qualities

Page 2: Software archiecture   lecture06

IntroductionIntroduction

• We are interested in how the architect achieves • We are interested in how the architect achieves particular qualities

• Our interest is in the tactics used by the • Our interest is in the tactics used by the architect to create a design using design patterns, architectural patterns, or architectural strategiesstrategies

• the tactics chosen will guide the architectural decisions.decisions.

• The connection between quality attribute requirements and architectural decisions is the requirements and architectural decisions is the subject of this chapter.

Page 3: Software archiecture   lecture06

Introducing TacticsIntroducing Tactics

• A tactic is a design decision that influences the • A tactic is a design decision that influences the control of a quality attribute response

• We call a collection of tactics an architectural • We call a collection of tactics an architectural strategy

• Each tactic is a design option for the architect

Tactics to Control Tactics to Control Response

Stimulus Response

Page 4: Software archiecture   lecture06

Introducing TacticsIntroducing Tactics

• Tactics can refine other tactics• Tactics can refine other tactics

▫ For each quality attribute that we discuss, we organize the tactics as a hierarchy

• Patterns package tactics

▫ e.g., A pattern that supports availability will likely use both a redundancy tactic and a use both a redundancy tactic and a synchronization tactic

• We are not inventing tactics here, just capturing • We are not inventing tactics here, just capturing what architects do in practice

Page 5: Software archiecture   lecture06

Modifiability TacticsModifiability Tactics

• Tactics have their goal controlling the time and • Tactics have their goal controlling the time and cost to implement, test, and deploy changes

• We organize the tactics for modifiability in sets • We organize the tactics for modifiability in sets according to their goals.

Tactics to Control Modifiability

Change Arrives Changes Mode, Tested Modifiability

Change Arrives Changes Mode, Tested and Deployed Within Time and Budget

Page 6: Software archiecture   lecture06

Localize ModificationsLocalize Modifications

• Its goal reducing the number of modules that • Its goal reducing the number of modules that are directly affected by a change.

• Restricting modifications to a small set of • Restricting modifications to a small set of modules will generally reduce the cost.

• It is to assign responsibilities to modules during design such that anticipated changes will be design such that anticipated changes will be limited in scope.

▫ Maintain semantic coherence▫ Maintain semantic coherence

▫ Anticipate expected changes

▫ Generalize the module▫ Generalize the module

▫ Limit possible options

Page 7: Software archiecture   lecture06

Localize ModificationsLocalize Modifications

Maintain semantic coherence

• Semantic coherence refers to the relationships • Semantic coherence refers to the relationships among responsibilities in a module.

• The goal is to ensure that all of these • The goal is to ensure that all of these responsibilities work together without excessive reliance on other modules.

• Providing abstract common services. • Providing abstract common services.

▫ Modifications to them will need to be made only once rather than in each module where the once rather than in each module where the services are used

▫ Examples : the use of application frameworks and ▫ Examples : the use of application frameworks and the use of other middleware software.

Page 8: Software archiecture   lecture06

Localize ModificationsLocalize Modifications

Anticipate expected changes

• Considering the set of envisioned changes • Considering the set of envisioned changes provides a way to evaluate a particular assignment of responsibilities

• How is this different from semantic coherence?

▫ Assigning responsibilities based on semantic coherence assumes that expected changes will be coherence assumes that expected changes will be semantically coherent

▫ Anticipate expected changes does not concern ▫ Anticipate expected changes does not concern itself with the coherence of a module's responsibilities but rather with minimizing the effects of the changeseffects of the changes

Page 9: Software archiecture   lecture06

Localize ModificationsLocalize Modifications

Generalize the module

• Making a module more general allows it to • Making a module more general allows it to compute a broader range of functions based on input

Page 10: Software archiecture   lecture06

Localize ModificationsLocalize Modifications

Limit possible options

• Modifications may be far ranging and hence • Modifications may be far ranging and hence affect many modules.

• Restricting the possible options will reduce the • Restricting the possible options will reduce the effect of these modifications

• Example : Restricting processor changes to members of the same family limits the possible members of the same family limits the possible options

Page 11: Software archiecture   lecture06

Prevent the ripple effectPrevent the ripple effect

• A ripple effect from a modification is the • A ripple effect from a modification is the necessity of making changes to modules not directly affected by it

• its goal limiting modifications to the localized modules

• We begin our discussion by discussing the • We begin our discussion by discussing the various types of dependencies that one module can have on anothercan have on another

Page 12: Software archiecture   lecture06

Prevent the ripple effectPrevent the ripple effect

Various types of dependencies

• Syntax of - data ,service• Syntax of - data ,service

• Semantics of – data , service

• Sequence of - data , service• Sequence of - data , service

• Identity of an interface of A

• Location of A• Location of A

• Quality of service/data provided by A

• Existence of A

• Resource behavior of A

Page 13: Software archiecture   lecture06

Prevent the ripple effectPrevent the ripple effect

Hide Information

• choosing which information/responsibilities to • choosing which information/responsibilities to make private and which to make public

• The public responsibilities are available through • The public responsibilities are available through specified interfaces

• It is strongly related to "anticipate expected changes" because it uses those changes as the changes" because it uses those changes as the basis for decomposition.

Page 14: Software archiecture   lecture06

Prevent the ripple effect Prevent the ripple effect

Maintain existing interface

• Maintaining the interface of A and its syntax • Maintaining the interface of A and its syntax allows B to remain unchanged.

• This tactic will not necessarily work if B has a • This tactic will not necessarily work if B has a semantic dependency on A

• Interface stability can also be achieved by separating the interface from the separating the interface from the implementation

• Patterns that implement this tactic include• Patterns that implement this tactic include

▫ Adding interfaces

▫ Adding adapter▫ Adding adapter

▫ Providing a stub

Page 15: Software archiecture   lecture06

Prevent the ripple effectPrevent the ripple effect

Restrict communication paths

• Restrict the modules with which a given module • Restrict the modules with which a given module shares data.

• That is, reduce the number of modules that • That is, reduce the number of modules that consume data produced by the given module and the number of modules that produce data consumed by itconsumed by it

Page 16: Software archiecture   lecture06

Prevent the ripple effect Prevent the ripple effect

Use an intermediary• it is possible to insert an intermediary between B and A that manages activities associated with the dependency.manages activities associated with the dependency.

• an intermediary cannot compensate for semantic changes• The intermediaries are▫ data (syntax). Repositories act as intermediaries between the producer and consumer of data. Some publish/subscribe patterns can also

▫ data (syntax). Repositories act as intermediaries between the producer and consumer of data. Some publish/subscribe patterns can also convert the syntax into that assumed by B.

▫ service (syntax). The facade, bridge, mediator, strategy, proxy, and factory patterns all provide intermediaries that convert the syntax of a service from one form into another. service from one form into another.

▫ identity of an interface of A. A broker pattern can be used to mask changes in the identity of an interface.

▫ location of A (runtime). A name server enables the location of A to be changed without affecting B. changed without affecting B.

▫ resource behavior of A or resource controlled by A. A resource manager is an intermediary that is responsible for resource allocation.

▫ existence of A. The factory pattern has the ability to create instances as needed, and thus the dependence of B on the existence of A is satisfied needed, and thus the dependence of B on the existence of A is satisfied by actions of the factory.

Page 17: Software archiecture   lecture06

Defer binding timeDefer binding time

• Its goal controlling deployment time and cost• Its goal controlling deployment time and cost• We discuss Decisions that affect deployment time• The deployment of a system is dictated by some • The deployment of a system is dictated by some process• Binding at runtime means that the system has • Binding at runtime means that the system has been prepared for that binding and all of the testing and distribution steps have been completedcompleted• Deferring binding time also supports allowing the end user or system administrator to make the end user or system administrator to make settings or provide input that affects behavior.

Page 18: Software archiecture   lecture06

Defer binding timeDefer binding time

• Many tactics are intended to have impact at • Many tactics are intended to have impact at loadtime or runtime , such as the following

▫ Runtime registration▫

▫ Configuration files

▫ Polymorphism

▫ Component replacement▫ Component replacement

▫ Adherence to defined protocols

Page 19: Software archiecture   lecture06

Summary of Modifiability TacticsSummary of Modifiability Tactics

Page 20: Software archiecture   lecture06

Testability TacticsTestability Tactics

• The goal of tactics for testability is to allow for easier testing when an increment of software development is • The goal of tactics for testability is to allow for easier testing when an increment of software development is completed• Executing the test procedures requires some software to • Executing the test procedures requires some software to provide input to the software being tested and to capture the output. This is called a test harness• We discuss two categories of tactics for testing: • We discuss two categories of tactics for testing: ▫ providing input and capturing output

▫ and internal monitoring.

Tactics to Control TestabilityTestability

Completion of an increment

Faults Detected

Page 21: Software archiecture   lecture06

Testability TacticsTestability Tactics

input/output• There are three tactics for managing input and output for testing• There are three tactics for managing input and output for testing• Record/playback▫ refers to both capturing information crossing an interface and using it as input into the test harness▫ refers to both capturing information crossing an interface and using it as input into the test harness

• Separate interface from implementation▫ allows substitution of implementations for various testing purposes▫ allows substitution of implementations for various testing purposes▫ allows the remainder of the system to be tested in the absence of the component being stubbed

• Specialize access routes/interfaces• Specialize access routes/interfaces▫ allows the capturing of variable values for a component through a test harness as well as independently from its normal executionindependently from its normal execution

Page 22: Software archiecture   lecture06

Testability TacticsTestability Tactics

Internal Monitoring• A component can implement tactics based on internal state to support the testing process• A component can implement tactics based on internal state to support the testing process• Built-in monitors▫ The component can maintain information and accessible through an interface▫ The component can maintain information and accessible through an interface� state, � performance load, � capacity, � capacity, � security, � other information ▫ This interface can be ▫ This interface can be

� a permanent interface of the component� introduced temporarily via an instrumentation technique such as aspect-oriented programming or preprocessor such as aspect-oriented programming or preprocessor macros

Page 23: Software archiecture   lecture06

Summary of Testability TacticsSummary of Testability Tactics

Page 24: Software archiecture   lecture06

Usability TacticsUsability Tactics

• Two types of tactics support usability, • Two types of tactics support usability,

▫ Runtime, those that support the user during system execution.

▫ Design time , those that supports the interface developer at design time.

� It is strongly related to the modifiability tactics � It is strongly related to the modifiability tactics already presented

Tactics to Control Response

User Request User Given Appropriate Appropriate Feedback and Assistance

Page 25: Software archiecture   lecture06

Usability TacticsUsability Tactics

Runtime tactics / user initiative• The architect must enumerate the responsibilities of the system to respond to the user command. • The architect must enumerate the responsibilities of the system to respond to the user command. ▫ cancel, undo, aggregate, and show multiple views • To use the cancel example: When the user issues a cancel command• To use the cancel example: When the user issues a cancel command▫ the system must be listening for it (thus, there is the responsibility to have a constant listener that is not blocked by the actions of whatever is being canceled); blocked by the actions of whatever is being canceled); ▫ the command to cancel must be killed; ▫ any resources being used by the canceled command must be freed;must be freed;▫ and components that are collaborating with the canceled command must be informed so that they can also take appropriate actionalso take appropriate action

Page 26: Software archiecture   lecture06

Usability TacticsUsability Tactics

Runtime tactics / system initiative

• When the system takes the initiative, it must • When the system takes the initiative, it must rely on some information

• The system initiative tactics are those that • The system initiative tactics are those that identify the models the system uses to predict either its own behavior or the user's intention

• Maintain a model of the task.• Maintain a model of the task.

▫ The task model is used to determine context so the system can have some idea of what the user the system can have some idea of what the user is attempting to do and provide various kinds of assistanceassistance

Page 27: Software archiecture   lecture06

Usability TacticsUsability Tactics

Runtime tactics / system initiative

• Maintain a model of the user• Maintain a model of the user

▫ It determines the user's knowledge of the system

▫ The user's behavior in terms of expected response ▫ The user's behavior in terms of expected response time

• Maintain a model of the system

▫ It determines the expected system behavior so ▫ It determines the expected system behavior so that appropriate feedback can be given to the useruser

▫ The system model predicts items such as the time needed to complete current activity

Page 28: Software archiecture   lecture06

Usability TacticsUsability Tactics

Design time tactics• User interfaces are typically revised frequently • User interfaces are typically revised frequently during the testing process.• Separate the user interface from the rest of the application.application.▫ maintaining the user interface code separately will localize changes to it.localize changes to it.▫ The software architecture patterns developed to implement this tactic are:� Model-View-Controller� Model-View-Controller� Presentation-Abstraction-Control� Seeheim� Arch/Slinky� Arch/Slinky

Page 29: Software archiecture   lecture06

Summary of Usability TacticsSummary of Usability Tactics

Page 30: Software archiecture   lecture06

Availability TacticsAvailability Tactics

• Recovery or repair is an important aspect of • Recovery or repair is an important aspect of availability.

• The tactics we discuss in this section will keep • The tactics we discuss in this section will keep faults from becoming failures or at least bound the effects of the fault and make repair possible

• We first consider fault detection. We then • We first consider fault detection. We then consider fault recovery and finally, briefly, fault preventionprevention

Tactics to Control ResponseResponse

Fault Fault Masked or Repair Made

Page 31: Software archiecture   lecture06

Fault DetectionFault Detection

• Three widely used tactics for recognizing faults • Three widely used tactics for recognizing faults are

▫ Ping/echo▫

▫ Heartbeat

▫ Exceptions

Page 32: Software archiecture   lecture06

Fault DetectionFault Detection

Ping/Echo

• One component issues a ping and expects to • One component issues a ping and expects to receive back an echo, within a predefined time.

• It can also used be used by clients to ensure • It can also used be used by clients to ensure that a server object and the communication path to the server are operating within the expected performance boundsperformance bounds

Page 33: Software archiecture   lecture06

Fault Detection Fault Detection

Heartbeat (dead man timer)

• One component emits a heartbeat message • One component emits a heartbeat message periodically and another component listens for it.

• If the heartbeat fails, the originating component is assumed to have failed and a fault correction component is notified. component is notified.

• The heartbeat can also carry data

Page 34: Software archiecture   lecture06

Fault Detection Fault Detection

Exceptions

• Exception, which is raised when one of the fault • Exception, which is raised when one of the fault classes is recognized.

• The exception handler typically executes in the • The exception handler typically executes in the same process that introduced the exception

Page 35: Software archiecture   lecture06

Fault RecoveryFault Recovery

• Fault recovery consists of preparing for recovery • Fault recovery consists of preparing for recovery and making the system repair

▫ Voting▫

▫ Active Redundancy

▫ Passive Redundancy

▫ Spare▫ Spare

Page 36: Software archiecture   lecture06

Fault RecoveryFault Recovery

Voting• Processes running on redundant processors each • Processes running on redundant processors each take equivalent input and compute a simple output value that is sent to a voter• This method is often used in control systems• This method is often used in control systems• Diversity has no downtime when a failure occurs since the voter continues to operate• Synchronization among the redundant components • Synchronization among the redundant components is automatic since they are all assumed to be computing on the same set of inputs in parallelcomputing on the same set of inputs in parallel• If the consequence of a failure is extreme, such as potential loss of life, the redundant components can be diverse.be diverse.

Page 37: Software archiecture   lecture06

Fault RecoveryFault Recovery

Active redundancy• All redundant components respond to events in parallel. • All redundant components respond to events in parallel. • Consequently, they are all in the same state.• The response from only one component is used (usually the first to respond), and the rest are discarded.the first to respond), and the rest are discarded.• When a fault occurs, the downtime of systems is usually milliseconds• Active redundancy is often used in a client/server • Active redundancy is often used in a client/server configuration• The redundancy may be in the communication paths• Synchronization is performed by ensuring that all • Synchronization is performed by ensuring that all messages to any redundant component are sent to all redundant components , use receive checksum , and resend until treshold.resend until treshold.

Page 38: Software archiecture   lecture06

Fault RecoveryFault Recovery

Passive redundancy

• One component (the primary) responds to • 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 ensure that the backup state is sufficiently fresh before resuming servicesbefore resuming services

• This approach is also used in control systems

• Synchronization is the responsibility of the • Synchronization is the responsibility of the primary component, which may use atomic broadcasts to the secondaries to guarantee broadcasts to the secondaries to guarantee synchronization.

Page 39: Software archiecture   lecture06

Fault RecoveryFault Recovery

Spare

• A standby spare computing platform is • A standby spare computing platform is configured to replace many different failed components

• It must be rebooted to the appropriate software configuration and have its state initialized when a failure occursa failure occurs

• This is often used as the standby client workstation.workstation.

• The downtime for this tactic is usually minutes

Page 40: Software archiecture   lecture06

Fault RecoveryFault Recovery

Reintroduction• There are tactics for repair that rely on component reintroduction.• There are tactics for repair that rely on component reintroduction.• When a redundant component fails, it may be reintroduced after it has been corrected.Shadow operation

reintroduced after it has been corrected.▫ Shadow operation

� A previously failed component may be run in "shadow mode" for a short time to make sure that it mimics the behavior of the working components before restoring it behavior of the working components before restoring it to service

▫ State resynchronization� The passive and active redundancy tactics require the � The passive and active redundancy tactics require the component being restored to have its state upgraded before its return to service.

▫ Checkpoint/rollbackA checkpoint is a recording of a consistent state created

▫ Checkpoint/rollback� A checkpoint is a recording of a consistent state created either periodically or in response to specific events

Page 41: Software archiecture   lecture06

Fault PreventionFault Prevention

• The following are some fault prevention tactics• The following are some fault prevention tactics• Removal from service▫ This tactic removes a component of the system from operation to undergo some activities to prevent operation to undergo some activities to prevent anticipated failures

• Transactions▫ Transactions are used to prevent any data from being ▫ Transactions are used to prevent any data from being affected if one step in a process fails and also to prevent collisions among several simultaneous threads accessing the same data.accessing the same data.

• Process monitor▫ a monitoring process can delete the nonperforming ▫ a monitoring process can delete the nonperforming process and create a new instance of it

Page 42: Software archiecture   lecture06

Summary of Availability TacticsSummary of Availability Tactics

Page 43: Software archiecture   lecture06

Performance TacticsPerformance Tactics

• Performance tactics control the time within • Performance tactics control the time within which a response is generated.

• Latency is the time between the arrival of an • Latency is the time between the arrival of an event and the generation of a response to it.

• This leads to the two basic contributors to the response time: resource consumption and response time: resource consumption and blocked time.

Tactics to Control PerformanceEvents Arrive Response

Generated Within Time Within Time Constraints

Page 44: Software archiecture   lecture06

Performance Performance

Resource consumption

• Resources include CPU, data stores, network • Resources include CPU, data stores, network communication bandwidth, and memory

• When event arrives , it goes through a • When event arrives , it goes through a processing sequence

• Each of these consumption contributes to the overall latency of the processing of that event.overall latency of the processing of that event.

Page 45: Software archiecture   lecture06

Performance Performance

Blocked time• A computation can be blocked from using a resource because of • A computation can be blocked from using a resource because of ▫ Contention for resources

� this depends on how the contention is arbitrated and how individual requests are treated by the arbitration how individual requests are treated by the arbitration mechanism.

▫ Availability of resources� Unavailability may be caused by the resource being � Unavailability may be caused by the resource being offline or by failure of the component or for some other reason

▫ Dependency of other computation ▫ Dependency of other computation � A computation must synchronize with the results of another computation

� A computation is waiting for the results of a computation that it initiatedthat it initiated

Page 46: Software archiecture   lecture06

Performance TacticsPerformance Tactics

Resource Demand• Two characteristics of demand are• Two characteristics of demand are▫ the time between events in a resource stream▫ how much of a resource is consumed by each requestrequest

• To reduce the resources required for processing ▫ Increase computational efficiency▫ Increase computational efficiency� Improving the algorithms� Processor , disk

▫ Reduce computational overhead▫ Reduce computational overhead� The use of intermediaries increases the resources consumed in processing an event stream, and so removing them improves latency. removing them improves latency.

� This is a classic modifiability/performance tradeoff.

Page 47: Software archiecture   lecture06

Performance TacticsPerformance Tactics

Resource Demand• To reduce the number of events processed• To reduce the number of events processed▫ Manage event rate

� reduce the sampling frequency at which environmental variables are monitoredvariables are monitored

▫ Control frequency of sampling� queued requests can be sampled at a lower frequency

• Controlling the use of resources• Controlling the use of resources▫ Bound execution times.

� limiting the number of iterations is a method for bounding execution timesbounding execution times

▫ Bound queue sizes� controls the maximum number of queued arrivals and consequently the resources used to process the arrivalsconsequently the resources used to process the arrivals

Page 48: Software archiecture   lecture06

Performance TacticsPerformance Tactics

Resource Management• The management of demanded resources • The management of demanded resources affects response times• Introduce concurrency▫ If requests can be processed in parallel, the ▫ If requests can be processed in parallel, the blocked time can be reduced▫ Appropriately allocating the threads to resources ▫ Appropriately allocating the threads to resources (load balancing) is important

• Maintain multiple copies of either data or computationscomputations▫ Clients in a client-server pattern are replicas of the computationcomputation▫ Caching is a tactic in which data is replicated

Page 49: Software archiecture   lecture06

Performance TacticsPerformance Tactics

Resource Management

• Increase available resources• Increase available resources

▫ Faster processors

▫ Additional processors▫ Additional processors

▫ Additional memory

▫ Faster networks

▫ Cost is usually a consideration in the choice of ▫ Cost is usually a consideration in the choice of resources

Page 50: Software archiecture   lecture06

Performance TacticsPerformance Tactics

Resource Arbitration

• Whenever there is contention for a resource, the • Whenever there is contention for a resource, the resource must be scheduled.

• A scheduling policy conceptually has two parts: • A scheduling policy conceptually has two parts: a priority assignment and dispatching

• All scheduling policies assign priorities

Some common scheduling policies are• Some common scheduling policies are

• First-in/First-out

▫ treat all requests for resources as equals ▫ treat all requests for resources as equals

• Fixed-Priority scheduling

▫ assigns each requests a particular priority and ▫ assigns each requests a particular priority and assigns the resources in that priority order

Page 51: Software archiecture   lecture06

Performance TacticsPerformance Tactics

Resource Arbitration

• Dynamic priority scheduling• Dynamic priority scheduling

▫ Round robin

▫ Earliest deadline first▫ Earliest deadline first

• Static scheduling

Page 52: Software archiecture   lecture06

Summary of Performance TacticsSummary of Performance Tactics

Page 53: Software archiecture   lecture06

Security TacticsSecurity Tactics

• Tactics for achieving security can be divided into • Tactics for achieving security can be divided into

▫ those concerned with resisting attacks

▫ those concerned with detecting attacks▫ those concerned with detecting attacks

▫ those concerned with recovering from attacks.

• All three categories are important

Tactics to Control Tactics to Control Security

Attack System Detects, Resists, or Recovers from Attacks

Page 54: Software archiecture   lecture06

Security TacticsSecurity Tactics

Resisting Attacks• Authenticate users. ▫ Passwords, one-time passwords, digital certificates, • Authenticate users. ▫ Passwords, one-time passwords, digital certificates, and biometric identifications provide authentication.

• Authorize users▫ Ensuring that user has the rights to access and • Authorize users▫ Ensuring that user has the rights to access and modify either data or services▫ Access control can be by user groups, user roles, lists of individualsof individuals

• Maintain data confidentiality▫ Applying some form of encryption to data and to communication linkscommunication links▫ The link can be implemented by Virtual private network (VPN) , Secure Sockets layer (SSL)▫ Encryption can be symmetric or asymmetric▫ Encryption can be symmetric or asymmetric

Page 55: Software archiecture   lecture06

Security TacticsSecurity Tactics

Resisting Attacks

• Maintain integrity• Maintain integrity

▫ Data should be delivered as intended

▫ It can have redundant information encoded in it, ▫ It can have redundant information encoded in it, such as checksums or hash results

• Limit exposure

▫ The architect can design the allocation of services ▫ The architect can design the allocation of services to hosts so that limited services are available on each host.each host.

• Limit access

▫ Firewalls restrict access based on message source ▫ Firewalls restrict access based on message source or destination port

Page 56: Software archiecture   lecture06

Security TacticsSecurity Tactics

Detecting Attacks

• The detection of an attack is usually through an • The detection of an attack is usually through an intrusion detection system

• Such systems work by comparing network traffic • Such systems work by comparing network traffic patterns to a database

• Intrusion detectors must have

some sort of sensor to detect attacks▫ some sort of sensor to detect attacks

▫ managers to do sensor fusion

▫ databases for storing events for later analysis▫ databases for storing events for later analysis

▫ tools for offline reporting and analysis

▫ a control console so that the analyst can modify ▫ a control console so that the analyst can modify intrusion detection actions

Page 57: Software archiecture   lecture06

Security TacticsSecurity Tactics

Recovering Attacks• Can be divided into • Can be divided into ▫ those concerned with restoring state ▫ those concerned with attacker identification

• Restoring state• Restoring state• These tactics overlap with those used for availability ,One difference is that special availability ,One difference is that special attention is paid to maintaining redundant copies of system administrative data such as ▫ passwords ▫ passwords ▫ access control lists ▫ domain name services ▫ domain name services ▫ user profile data.

Page 58: Software archiecture   lecture06

Security TacticsSecurity Tactics

Recovering Attacks

• Identifying an attacker• Identifying an attacker

• The tactic is to maintain an audit trail

• An audit trail is a copy of each transaction • An audit trail is a copy of each transaction applied to the data in the system together with identifying information

Audit information can be used to trace the • Audit information can be used to trace the actions of an attacker, support nonrepudiation , support system recoverysupport system recovery

• Audit trails are often attack targets themselves

Page 59: Software archiecture   lecture06

Summary of Security TacticsSummary of Security Tactics

Page 60: Software archiecture   lecture06

Architectural Patterns and StylesArchitectural Patterns and Styles

• Any pattern implements serveral tactics• It consists of a few key features and rules for combining them • It consists of a few key features and rules for combining them so that architectural integrity is preserved.• An architectural pattern is determined by:▫ A set of element types▫ A set of element types

� e.g., a data repository or a component that computes a mathematical function.

▫ A topological layout of the elements indicating their interrelationships.interrelationships.▫ A set of semantic constraints

� e.g., filters in a pipe-and-filter style are pure data transducers—they incrementally transform their input stream into an output stream, but do not control either upstream or downstream stream, but do not control either upstream or downstream elements.

▫ A set of interaction mechanisms � e.g., subroutine call, event-subscriber, blackboard � e.g., subroutine call, event-subscriber, blackboard � that determine how the elements coordinate through the allowed topology.

Page 61: Software archiecture   lecture06

Architectural Patterns and StylesArchitectural Patterns and Styles

A small catalog of architectural patterns, organized by is-a relations

Page 62: Software archiecture   lecture06

SummarySummary

• Our interest here was in the tactics used by the architect to create a design using architectural • Our interest here was in the tactics used by the architect to create a design using architectural patterns and strategies.• We provided a list of well-known tactics for achieving the six quality attributes• We provided a list of well-known tactics for achieving the six quality attributes• For each we discussed the tactics that are available and widely practiced.As we discussed, in relating tactics to patterns the and widely practiced.• As we discussed, in relating tactics to patterns the architect's task has only just begun when the tactics are chosen. Any design uses multiple tactics, and understanding are chosen. • Any design uses multiple tactics, and understanding what attributes are achieved by them, what their side effects are, and the risks of not choosing other tactics is essential to architecture design.side effects are, and the risks of not choosing other tactics is essential to architecture design.