Software patterns are frequently used as a software development tool in sequential as well as (massively) parallel applications but have been less successful in the context of distributed applications over irregular communication topologies and heterogeneous synchronization requirements. In this paper, we argue that lack of flexibility of pattern definitions is a major impediment in distributed environments, especially legacy contexts. We propose invasive patterns that support the modular definition and adaptation of distributed applications in the presence of complex pattern-enabling conditions. Invasive patterns are concisely defined in terms of two abstractions: aspects (in the AOP sense) for the modularization of crosscutting enabling conditions, and groups of hosts for the definition of patterns over complex topologies. Concretely, we motivate the need for invasive patterns in the context of JBoss Cache, introduce the concept of invasive patterns and briefly discuss corresponding language support as well as an implementation.
[1]
Luis Daniel Benavides Navarro,et al.
Explicitly distributed AOP using AWED
,
2006,
AOSD '06.
[2]
Anne-Marie Kermarrec,et al.
The many faces of publish/subscribe
,
2003,
CSUR.
[3]
Ajit Singh,et al.
Design Patterns for Parallel Programming
,
1996,
PDPTA.
[4]
Thomas Ledoux,et al.
Aspect-Oriented Software Development
,
2003
.
[5]
Ralph Johnson,et al.
design patterns elements of reusable object oriented software
,
2019
.
[6]
Murray Cole,et al.
Algorithmic Skeletons: Structured Management of Parallel Computation
,
1989
.