150 likes | 154 Vues
Incorporating Fault Tolerance Tactics in Software Architecture Patterns. Neil B. Harrison Paris Avgeriou University of Groningen Groningen, The Netherlands. Background: Architecture Patterns. Commonly used system-level designs Well-known, use common names: Layers Pipes and Filters
E N D
Incorporating Fault Tolerance Tactics in Software Architecture Patterns Neil B. Harrison Paris Avgeriou University of Groningen Groningen, The Netherlands
Background: Architecture Patterns • Commonly used system-level designs • Well-known, use common names: • Layers • Pipes and Filters • Model-View Controller • Most systems have architecture patterns • Even if they weren’t intentionally used
Fault Tolerance Tactics • Tactics – ways to implement aspects of fault tolerance • Fault Tolerance Tactic categories (as defined by SEI): • Fault Detection • Fault Recovery: Preparation and Repair • Fault Recovery: Reintroduction • Prevention • Tactics and Architecture Patterns: • Tactics are implemented within the architecture pattern structure
Implementing FT Tactics • Implementing a tactic affects the system’s architecture • A little or a lot! • Making it easy or hard to implement fault tolerance correctly • Therefore, we studied the impact of tactics on architecture patterns • In detail! • So we can make better architecture decisions, e.g.: • Which patterns to use • Which tactics to use
Details: Why and What? • Why: • Patterns often indicate high level suitability for fault tolerance • But impact is different, depending on the tactic • So more granularity is needed • What kind of details? • Focus on how much must the pattern change • Structure and behavior
Quantifying Impact on Patterns • Create a relative scale of difficulty • Every Pattern/Tactic implementation must be considered individually, but guidelines are:
Using the Data • Deciding which architecture pattern to use • Consider alternatives (e.g., Broker vs. Client-Server) • Only one of many factors • Deciding which tactics to implement • Consider alternative tactics • Understand implementation implications • For tradeoffs (above) • For implementing the tactics
Sample Tactic Implementation Details • Tactic: Ping/Echo (Fault Detection) • Pipes and Filters: (rating: - -) • A central monitoring process must be added to communicate with each filter. • Each filter must be modified to respond quickly to the ping messages. • Affects the structure of the pattern and may conflict with realtime performance. • (summary) Add out of the Pattern, along with moderate changes to each filter component
Future Work • More patterns and tactics • Other Architecture patterns • Other Fault Tolerance tactics • Interactions of combinations of: • Multiple Tactics • Multiple Patterns • Multiple Quality Attributes • Investigate behavior in more depth • E.g., Ping-echo has time-sensitive messages