A Generic Solution for Agile Run-Time Inspection Middleware

  • Wouter De Borger
  • Bert Lagaisse
  • Wouter Joosen
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7049)

Abstract

Contemporary middleware offers powerful abstractions to construct distributed software systems. However, when inspecting the software at run-time, these abstractions are no longer visible. While inspection, monitoring and management are increasingly important in our always-online world, they are often only possible in terms of the lower-level abstraction of the underlying platform. Due to the complexity of current programming languages and middleware, this low-level information is too complex to handle or understand.

This paper presents a run-time inspection system based on dynamic model transformation capabilities that extends run-time entities with higher-level abstract views, in order to enable inspection in terms of the original and most relevant abstractions. Our solution is lightweight in terms of performance overhead and agile in the sense that it can selectively (and on-demand) generate these high-level views.

Our prototype implementation has been applied to inspect distributed applications using RMI. In this case study, we inspect the distributed RMI system using our integrated overview over the collection of distributed objects that interact using remote method invocation.

Keywords

Virtual Machine Model Transformation Target Model Business Process Management Business Process Execution Language 
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.

References

  1. 1.
    Bracha, G., Ungar, D.: Mirrors: design principles for meta-level facilities of object-oriented programming languages. In: Proc of OOPSLA, pp. 331–344 (2004)Google Scholar
  2. 2.
    Chan, A., Holmes, R., Murphy, G.C., Ying, A.T.T.: Scaling an object-oriented system execution visualizer through sampling. In: 11th IEEE Intl Workshop on Program Comprehension, pp. 237–244 (2003)Google Scholar
  3. 3.
    Clarke, M., Blair, G.S., Coulson, G., Parlavantzas, N.: An efficient component model for the construction of adaptive middleware. In: Proc of IFIP/ACM Intl Conf on Distributed Systems Platforms Heidelberg, pp. 160–178 (2001)Google Scholar
  4. 4.
    Czarnecki, K., Helsen, S.: Feature-based survey of model transformation approaches. IBM Systems Journal 45(3), 621–645 (2006)CrossRefGoogle Scholar
  5. 5.
    De Borger, W., Lagaisse, B., Joosen, W.: A generic and reflective debugging architecture to support runtime visibility and traceability of aspects. In: Proc of AOSD, pp. 173–184 (2009)Google Scholar
  6. 6.
    De Pauw, W., Jensen, E., Mitchell, N., Sevitsky, G., Vlissides, J., Yang, J.: Visualizing the Execution of Java Programs. In: Diehl, S. (ed.) Dagstuhl Seminar 2001. LNCS, vol. 2269, pp. 151–162. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  7. 7.
    Delgado, N., Gates, A.Q., Roach, S.: A taxonomy and catalog of runtime software-fault monitoring tools. IEEE Transactions on software Engineering 30(12), 859–872 (2004)CrossRefGoogle Scholar
  8. 8.
    Eaddy, M., Aho, A., Hu, W., McDonald, P., Burger, J.: Debugging Aspect-Enabled Programs. In: Lumpe, M., Vanderperren, W. (eds.) SC 2007. LNCS, vol. 4829, pp. 200–215. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  9. 9.
    Free Software Foundation, Inc. Gdb: The gnu project debugger (July 2009), http://www.gnu.org/software/gdb/
  10. 10.
    Jordan, D., and Evdemon, J. Web services business process execution language version 2.0 (April 2007), http://docs.oasis-open.org/wsbpel/2.0/OS/wsbpel-v2.0-OS.html
  11. 11.
    Jouault, F., Kurtev, I.: Transforming Models with ATL. In: Bruel, J.-M. (ed.) MoDELS 2005. LNCS, vol. 3844, pp. 128–138. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  12. 12.
    Ko, A.J., Myers, B.A.: Designing the whyline: a debugging interface for asking questions about program behavior. In: Proceedings of the SIGCHI Conference on Human Factors in Computing Systems, pp. 151–158 (2004)Google Scholar
  13. 13.
    Ko, S.Y., Yalagandula, P., Gupta, I., Talwar, V., Milojicic, D., Iyer, S.: Moara: Flexible and Scalable Group-Based Querying System. In: Issarny, V., Schantz, R. (eds.) Middleware 2008. LNCS, vol. 5346, pp. 408–428. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  14. 14.
    Kon, F., Román, M., Liu, P., Mao, J., Yamane, T., Magalhães, L.C., Pasquale, F.: Monitoring, Security, and Dynamic Configuration with the dynamicTAO Reflective ORB. In: Coulson, G., Sventek, J. (eds.) Middleware 2000. LNCS, vol. 1795, pp. 121–143. Springer, Heidelberg (2000)CrossRefGoogle Scholar
  15. 15.
    Malcolm, D.: gdb-heap, https://fedorahosted.org/gdb-heap/ (access: Febuary 17, 2011)
  16. 16.
    Mega, G., Kon, F.: An Eclipse-Based Tool for Symbolic Debugging of Distributed Object Systems. In: Meersman, R. (ed.) OTM 2007, Part I. LNCS, vol. 4803, pp. 648–666. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  17. 17.
    Miller, B.P., Mirgorodskiy, A.V.: Diagnosing Distributed Systems With Self-Propelled Instrumentation. In: Issarny, V., Schantz, R. (eds.) Middleware 2008. LNCS, vol. 5346, pp. 82–103. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  18. 18.
    Navarro, L.D.B., Douence, R., Südholt, M.: Debugging and Testing Middleware With Aspect-Based Control-Flow and Causal Patterns. In: Issarny, V., Schantz, R. (eds.) Middleware 2008. LNCS, vol. 5346, pp. 183–202. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  19. 19.
    OMG. Meta object facility (mof) 2.0 query/view/transformation, http://www.omg.org/spec/QVT/1.0/
  20. 20.
  21. 21.
    Proctor, M. Drools documentation library (August 2009), http://www.jboss.org/drools/documentation.html
  22. 22.
    Rajamani, V., Julien, C., Payton, J., Roman, G.C.: Paq: Persistent Adaptive Query Middleware for Dynamic Environments. In: Bacon, J.M., Cooper, B.F. (eds.) Middleware 2009. LNCS, vol. 5896, pp. 226–246. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  23. 23.
    Rosenberg, J.B.: How debuggers work: algorithms, data structures, and architecture. John Wiley & Sons, Inc., New York (1996)Google Scholar
  24. 24.
    Sigelman, B.H., Barroso, L.A., Burrows, M., Stephenson, P., Plakal, M., Beaver, D., Jaspan, S., Shanbhag, C.: Dapper, a large-scale distributed systems tracing infrastructure. In: Google Research (2010)Google Scholar
  25. 25.
    Silva, J.: A Comparative Study of Algorithmic Debugging Strategies. In: Puebla, G. (ed.) LOPSTR 2006. LNCS, vol. 4407, pp. 143–159. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  26. 26.
    Sun Microsystems, I. Java management extensions (August 2009), http://java.sun.com/javase/technologies/core/mntr-mgmt/javamanagement/
  27. 27.
    Sun Microsystems, I. Java platform debugger architecture (June 2009), http://java.sun.com/javase/technologies/core/toolsapis/jpda/
  28. 28.
    Systä, T., Koskimies, K., Müller, H.: Shimba—an environment for reverse engineering java software systems. Software: Practice and Experience 31(4), 371–394 (2001)CrossRefMATHGoogle Scholar
  29. 29.
    Van Renesse, R., Birman, K.P., Vogels, W.: Astrolabe: A robust and scalable technology for distributed system monitoring, management, and data mining. ACM Transactions on Computer Systems (TOCS) 21(2), 164–206 (2003)CrossRefGoogle Scholar
  30. 30.
    Walker, R.J., Murphy, G.C., Freeman-Benson, B., Wright, D., Swanson, D., Isaak, J.: Visualizing dynamic software system information through high-level models. ACM SIGPLAN Notices 33(10), 271–283 (1998)CrossRefGoogle Scholar
  31. 31.
    Wangham, M.S., Lung, L.C., Westphall, C.M., Fraga, J.S.: Integrating ssl to the jacoweb security framework: project and implementation. In: Proc of IEEE/IFIP Intl. Symp. on Integrated Network Management, pp. 779–792 (2001)Google Scholar
  32. 32.
    Weiser, M.: Program slicing. In: ICSE 1981, pp. 439–449 (1981)Google Scholar
  33. 33.
    Xu, B., Qian, J., Zhang, X., Wu, Z., Chen, L.: A brief survey of program slicing. SIGSOFT Softw. Eng. Notes 30(2), 1–36 (2005)CrossRefGoogle Scholar
  34. 34.
    Zanikolas, S., Sakellariou, R.: A taxonomy of grid monitoring systems. Future Gener. Comput. Syst. 21(1), 163–188 (2005)CrossRefGoogle Scholar
  35. 35.
    Zeller, A.: Why programs fail: a guide to systematic debugging. Morgan Kaufmann (2009)Google Scholar

Copyright information

© IFIP International Federation for Information Processing 2011

Authors and Affiliations

  • Wouter De Borger
    • 1
  • Bert Lagaisse
    • 1
  • Wouter Joosen
    • 1
  1. 1.Distrinet, Department of Computer ScienceKULeuvenBelgium

Personalised recommendations