150 likes | 165 Views
Explore the implementation of fault tolerance tactics within software architecture patterns and their impact on system design. Learn about fault tolerance tactic categories, quantifying impact on patterns, and sample tactic implementation details.
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