Invasive Patterns: Aspect-Based Adaptation of Distributed Applications

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.