Debugging and testing middleware with aspect-based control-flow and causal patterns
Résumé
Many tasks that involve the dynamic manipulation of mid- dleware and large-scale distributed applications, such as debugging and testing, require the monitoring of intricate relationships of execution events that trigger modifications to the executing system. Furthermore, events often are of interest only if they occur as part of specific execu- tion traces and not all possible non-deterministic interleavings of events in these traces. Current techniques and tools for the definition of such manipulations provide only very limited support for such event relation- ships and do not allow to concisely define restrictions on the interleaving of events. In this paper, we argue for the use of high-level programming abstractions for the definition of relationships between execution events of distributed systems and the control of non-deterministic interleavings of events. Con- cretely, we provide the following contributions: we (i) motivate that such abstractions improve on current debugging and testing methods for mid- dleware, (ii) introduce corresponding language mechanisms as well as corresponding implementation support by extending an existing aspect- oriented system for the dynamic manipulation of distributed systems, and (iii) evaluate our approach in the context of the debugging and test- ing of JBoss Cache, a Java-based middleware for replicated caching.