Debugging and Testing Middleware with Aspect-Based Control-Flow and Causal Patterns

Many tasks that involve the dynamic manipulation of middleware 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 execution 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 relationships and do not allow to concisely define restrictions on the interleaving of events. In this paper, we argue for the use of aspect-based high-level programming abstractions for the definition of relationships between execution events of distributed systems and the control of non-deterministic interleavings of events. Concretely, we provide the following contributions: we (i) motivate that such abstractions improve on current debugging and testing methods for middleware, (ii) introduce corresponding language support for pointcuts and advice defined in terms of causal event sequences 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 testing of Java-based middlewares, in particular, JBoss Cache for replicated caching.

[1]  M. Cosnard Parallel & distributed algorithms : proceedings of the International Workshop on Parallel & Distributed Algorithms, Chateau de Bonas, Gers, France, 3-6 October, 1988 , 1989 .

[2]  Mario Südholt,et al.  An expressive aspect language for system applications with Arachne , 2005, AOSD '05.

[3]  Willy Zwaenepoel,et al.  Causal distributed breakpoints , 1990, Proceedings.,10th International Conference on Distributed Computing Systems.

[4]  Gail E. Kaiser,et al.  Debugging multithreaded programs with MPD , 1991, IEEE Software.

[5]  Kenneth P. Birman,et al.  A response to Cheriton and Skeen's criticism of causal and totally ordered communication , 1994, OPSR.

[6]  Zahir Tari,et al.  On the Move to Meaningful Internet Systems 2007: CoopIS, DOA, ODBASE, GADA, and IS, OTM Confederated International Conferences CoopIS, DOA, ODBASE, GADA, and IS 2007, Vilamoura, Portugal, November 25-30, 2007, Proceedings, Part II , 2007, OTM Conferences.

[7]  Zahir Tari,et al.  On the Move to Meaningful Internet Systems 2006: CoopIS, DOA, GADA, and ODBASE, OTM Confederated International Conferences, CoopIS, DOA, GADA, and ODBASE 2006, Montpellier, France, October 29 - November 3, 2006. Proceedings, Part I , 2006, OTM Conferences.

[8]  David R. Cheriton,et al.  Understanding the limitations of causally and totally ordered communication , 1994, SOSP '93.

[9]  Rick Chern,et al.  Debugging with control-flow breakpoints , 2007, AOSD.

[10]  Robbert van Renesse,et al.  Horus: a flexible group communication system , 1996, CACM.

[11]  S. Chiba,et al.  Remote pointcut: a language construct for distributed AOP , 2004, AOSD '04.

[12]  Friedemann Mattern,et al.  Virtual Time and Global States of Distributed Systems , 2002 .

[13]  Mark S. Ackerman,et al.  A construction set for multimedia applications , 1989, IEEE Software.

[14]  Fabio Kon,et al.  Debugging distributed object applications with the Eclipse platform , 2004, eclipse '04.

[15]  Gail E. Kaiser,et al.  Modeling concurrency in parallel debugging , 1990, PPOPP '90.

[16]  Luis Daniel Benavides Navarro,et al.  Modularization of Distributed Web Services Using Aspects with Explicit Distribution (AWED) , 2006, OTM Conferences.

[17]  Friedemann Mattern,et al.  Detecting causal relationships in distributed computations: In search of the holy grail , 1994, Distributed Computing.

[18]  Leslie Lamport,et al.  Time, clocks, and the ordering of events in a distributed system , 1978, CACM.

[19]  Luis Daniel Benavides Navarro,et al.  Explicitly distributed AOP using AWED , 2006, AOSD '06.

[20]  Koushik Sen,et al.  Efficient decentralized monitoring of safety in distributed systems , 2004, Proceedings. 26th International Conference on Software Engineering.

[21]  Fabio Kon,et al.  An Eclipse-Based Tool for Symbolic Debugging of Distributed Object Systems , 2007, OTM Conferences.

[22]  Seth Copen Goldstein,et al.  Distributed Watchpoints: Debugging Large Multi-Robot Systems , 2007, Proceedings 2007 IEEE International Conference on Robotics and Automation.

[23]  Seth Copen Goldstein,et al.  Distributed Watchpoints: Debugging Large Modular Robot Systems , 2008, Int. J. Robotics Res..

[24]  James H. Anderson Lamport on mutual exclusion: 27 years of planting seeds , 2001, PODC '01.

[25]  Jun Li,et al.  Monitoring and characterization of component-based systems with global causality capture , 2003, 23rd International Conference on Distributed Computing Systems, 2003. Proceedings..