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

  • Luis Daniel Benavides Navarro
  • Rémi Douence
  • Mario Südholt
Part of the Lecture Notes in Computer Science book series (LNCS, volume 5346)


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.


State Machine Causal Sequence Legacy Application Vector Clock Execution Event 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  1. 1.
    Anderson, J.H.: Lamport on mutual exclusion: 27 years of planting seeds. In: PODC 2001: Proceedings of the twentieth annual ACM symposium on Principles of distributed computing, pp. 3–12. ACM Press, New York (2001)CrossRefGoogle Scholar
  2. 2.
    Awed home page (2008),
  3. 3.
    Ban, B.: JGroups, reliable multicast comm. (2002),
  4. 4.
    Benavides Navarro, L.D., Südholt, M., et al.: Explicitly distributed AOP using AWED. In: Proceedings of the 5th ACM Int. Conf. on Aspect-Oriented Software Development (AOSD 2006). ACM Press, New York (2006)Google Scholar
  5. 5.
    Benavides Navarro, L.D., Südholt, M., Vanderperren, W., De Fraine, B., Suvée, D.: Explicitly distributed AOP using AWED. Research Report 5882, INRIA (March 2006)Google Scholar
  6. 6.
    Benavides Navarro, L.D., Südholt, M., Vanderperren, W., Verheecke, B.: Modularization of Distributed Web Services Using Aspects with Explicit Distribution (AWED). In: Meersman, R., Tari, Z. (eds.) OTM 2006. LNCS, vol. 4276, pp. 1449–1466. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  7. 7.
    Birman, K.: A response to cheriton and skeen’s criticism of causal and totally ordered communication. SIGOPS Oper. Syst. Rev. 28(1), 11–21 (1994)CrossRefGoogle Scholar
  8. 8.
    Cheriton, D.R., Skeen, D.: Understanding the limitations of causally and totally ordered communication. In: SOSP, pp. 44–57 (1993)Google Scholar
  9. 9.
    Chern, R., De Volder, K.: Debugging with control-flow breakpoints. In: AOSD 2007: Proceedings of the 6th international conference on Aspect-oriented software development, pp. 96–106. ACM, New York (2007)Google Scholar
  10. 10.
    De Rosa, M., Goldstein, S.C., Lee, P., Campbell, J.D., Pillai, P., Mowry, T.C.: Distributed watchpoints: Debugging large multi-robot systems. International Journal of Robotics Research (2007)Google Scholar
  11. 11.
    Douence, R., Fritz, T., Loriant, N., Menaud, J.-M., Ségura-Devillechaise, M., Südholt, M.: An expressive aspect language for system applications with arachne. In: Proc. of AOSD 2005. ACM Press, New York (2005)Google Scholar
  12. 12.
    Eclipse Foundation. Remote debugging in Eclipse (2008),
  13. 13.
    Fowler, J., Zwaenepoel, W.: Causal distributed breakpoints. In: Proceedings of the 10th International Conference on Distributed Computing Systems (ICDCS), Washington, DC, pp. 134–141. IEEE, Los Alamitos (1990)Google Scholar
  14. 14.
    Hseush, W., Kaiser, G.E.: Modeling concurrency in parallel debugging. In: PPOPP, pp. 11–20 (1990)Google Scholar
  15. 15.
    JBoss Cache home page (2008),
  16. 16.
    JGroups home page (2008),
  17. 17.
    Lamport, L.: Time, clocks, and the ordering of events in a distributed system. Commun. ACM 21(7), 558–565 (1978)CrossRefzbMATHGoogle Scholar
  18. 18.
    Li, J.: Monitoring and characterization of component-based systems with global causality capture. In: 23th Int. Conf. on Distributed Computing Systems, Providence, RI. IEEE, Los Alamitos (2003)Google Scholar
  19. 19.
    Mattern, F.: Virtual time and global states of distributed systems. In: Proceedings of the international Workshop on Parallel and distributed Algorithms, Chateau de Bonas, France (October 1988)Google Scholar
  20. 20.
    Mega, G., Kon, F.: Debugging distributed object applications with the Eclipse platform. In: Eclipse 2004: Proceedings of the 2004 OOPSLA workshop on eclipse technology exchange, pp. 42–46. ACM, New York (2004)CrossRefGoogle Scholar
  21. 21.
    Mega, G., Kon, F.: An Eclipse-Based Tool for Symbolic Debugging of Distributed Object Systems. In: Meersman, R., Tari, Z. (eds.) OTM 2007, Part I. LNCS, vol. 4803, pp. 648–666. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  22. 22.
    Nishizawa, M., Shiba, S., Tatsubori, M.: Remote pointcut - a language construct for distributed AOP. In: Proc. of AOSD 2004. ACM Press, New York (2004)Google Scholar
  23. 23.
    Ponamgi, M.K., Hseush, W., Kaiser, G.E.: Debugging multithreaded programs with MPD. IEEE Software 6(3), 37–43 (1991)CrossRefGoogle Scholar
  24. 24.
    Schwarz, R., Mattern, F.: Detecting causal relationships in distributed computations: in search of the holy grail. Distrib. Comput. 7(3), 149–174 (1994)CrossRefzbMATHGoogle Scholar
  25. 25.
    Sen, K., Vardhan, A., Agha, G., Rosu, G.: Efficient decentralized monitoring of safety in distributed systems. In: ICSE, pp. 418–427. IEEE, Los Alamitos (2004)Google Scholar
  26. 26.
    Allinea Software. Distributed debugging tool (2008),
  27. 27.
    The Apache software foundation. Apache ActiveMQ is an open source message broker (2008),
  28. 28.
    van Renesse, R., Birman, K.P., Maffeis, S.: Horus: a flexible group communication system. Commun. ACM 39(4), 76–83 (1996)CrossRefGoogle Scholar

Copyright information

© IFIP International Federation for Information Processing 2008

Authors and Affiliations

  • Luis Daniel Benavides Navarro
    • 1
  • Rémi Douence
    • 1
  • Mario Südholt
    • 1
  1. 1.Dépt. Informatique, École des Mines de NantesOBASCO project; EMN-INRIA, LINANantes cédex 3France

Personalised recommendations