Cluster Computing

, Volume 14, Issue 4, pp 357–375 | Cite as

Aspect-oriented development of cluster computing software

Article

Abstract

In complex software systems, modularity and readability tend to be degraded owing to inseparable interactions between concerns that are distinct features in a program. Such interactions result in tangled code that is hard to develop and maintain. Aspect-Oriented Programming (AOP) is a powerful method for modularizing source code and for decoupling cross-cutting concerns. A decade of growing research on AOP has brought the paradigm into many exciting areas. However, pioneering work on AOP has not flourished enough to enrich the design of distributed systems using the refined AOP paradigm. This article investigates three case studies that cover time-honored issues such as fault-tolerant computing, network heterogeneity, and object replication in the cluster computing community using the AOP paradigm. The aspects that we define here are simple, intuitive, and reusable. Our intensive experiences show that (i) AOP can improve the modularity of cluster computing software by separating the source code into base and instrumented parts, and (ii) AOP helps developers to deploy additional features to legacy cluster computing software without harming code modularity and system performance.

Keywords

Aspect-Oriented Programming Fault tolerance Heterogeneity Object replication Message-passing interface Key-value storage 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Han, H., Jung, H., Yeom, H.Y., Lee, D.Y.: Taste of AOP: blending concerns in cluster computing software. In: Proceedings of 2007 IEEE International Conference on Cluster Computing (2007) Google Scholar
  2. 2.
    Xerox, P.A.R.C.: AspectJ Homepage (2011). http://aspectj.org
  3. 3.
    Spinczyk, O., Lohmann, D., Urban, M.: AspectC++: an AOP Extension for C++. Softw. Dev. J. (05) (2005) Google Scholar
  4. 4.
    Cunha, C.A., Sobral, J.L., Monteiro, M.P.: Reusable aspect-oriented implementations of concurrency patterns and mechanisms. In: Proceedings of the 5th International Conference on Aspect-oriented Software Development (2006) Google Scholar
  5. 5.
    Harbulot, B., Gurd, J.R.: A join point for loops in AspectJ. In: Proceedings of the 5th International Conference on Aspect-oriented Software Development (2006) Google Scholar
  6. 6.
    Kienzle, J., Gelineau, S.: AO challenge—implementing the ACID properties for transactional objects. In: Proceedings of the 5th International Conference on Aspect-oriented Software Development (2006) Google Scholar
  7. 7.
    Lohmann, D., Scheler, F., Tartler, R., Spinczyk, O., Preikschat, W.S.: A quantitative analysis of aspects in the eCOS kernel. In: Proceedings of the 1st European Systems Conference (EuroSys 1) (2006) Google Scholar
  8. 8.
    Rashid, A., Chitchyan, R.: Persistence as an aspect. In: Proceedings of the 2nd International Conference on Aspect-oriented Software Development (2003) Google Scholar
  9. 9.
    Boner, J., Kuleshov, E.: Clustering the Java virtual machine using aspect-oriented programming. In: Proceedings of the 6th International Conference on Aspect-oriented Software Development (2007) Google Scholar
  10. 10.
    Buntinas, D., Coti, C., Herault, T., Lemarinier, P., Pilard, L., Rezmerita, A., Rodriguez, E., Cappello, F.: MPICH-PCL: Non-blocking coordinated checkpointing for large-scale fault tolerant MPI. In: Proc. of the IEEE/ACM Supercomputing (2006) Google Scholar
  11. 11.
    Huang, W., Gao, Q., Liu, J., Panda, D.: High performance virtual machine migration with RDMA over modern interconnects. In: Proc. of the IEEE Cluster (2007) Google Scholar
  12. 12.
    Huang, W., Koop, M., Gao, Q., Panda, D.: Virtual machine aware communication libraries for high performance computing. In: Proc. of the IEEE/ACM Supercomputing (2007) Google Scholar
  13. 13.
    Aumage, O., Mercier, G.: MPICH/MadIII: a cluster of clusters enabled mpi implementation. In: Proceedings of the 3rd IEEE/ACM International Symposium on Cluster Computing and the Grid (2003) Google Scholar
  14. 14.
    Takahashi, T., Sumimoto, S., Hori, A., Harada, H., Ishikawa, Y.: PM2: High performance communication middleware for heterogeneous network environments. In: Proceedings of SC’00 (2000) Google Scholar
  15. 15.
    Oracle: Oracle BerkeleyDB. http://www.oracle.com/technetwork/database/berkeleydb (2011)
  16. 16.
    Fitzpatrick, B.: Memcached: a distributed memory object caching system. http://memcached.org (2011)
  17. 17.
    Apache: CouchDB Homepage. http://couchdb.apache.org (2011)
  18. 18.
    DeCandia, G., Hastorun, D., Jampani, M., Kakulapati, G., Lak-shman, A., Pilchin, A., Sivasubramanian, S., Vosshall, P., Vogels, W.: Dynamo: Amazon’s highly available key-value store. In: ACM SOSP (2007) Google Scholar
  19. 19.
    Facebook: Cassandra: A structured storage system on a P2P network. http://cassandra.apache.org (2011)
  20. 20.
    Team, A.D.: Aquarium Homepage. http://aquarium.rubyforge.org (2011)
  21. 21.
    Washizaki, H., Kubo, A., Mizumachi, T., Eguchi, K., Fukazawa, Y., Yoshioka, N., Kanuka, H., Kodaka, T., Sugimoto, N., Nagai, Y., et al.: Aojs: aspect-oriented javascript programming framework for web development. In: ACP4IS’09: Proceedings of the 8th Workshop on Aspects, Components, and Patterns for Infrastructure Software (2009) Google Scholar
  22. 22.
    Akai, S., Chiba, S., Nishizawa, M.: Region pointcut for aspectj. In: ACP4IS’09: Proceedings of the 8th Workshop on Aspects, Components, and Patterns for Infrastructure Software (2009) Google Scholar
  23. 23.
    Xi, C., Harbulot, B., Gurd, J.R.: Aspect-oriented support for synchronization in parallel computing. In: PLATE’09: Proceedings of the 1st Workshop on Linking Aspect Technology and Evolution (2009) Google Scholar
  24. 24.
    Lohmann, D., Streicher, J., Spinczyk, O., Schröder-Preikschat, W.: Interrupt synchronization in the ciao operating system: experiences from implementing low-level system policies by aop. In: ACP4IS’07: Proceedings of the 6th Workshop on Aspects, Components, and Patterns for Infrastructure Software (2007) Google Scholar
  25. 25.
    Lohmann, D., Hofer, W., Schroder-Preikschat, W.: CiAO: an aspect-oriented operating-system family for resource-constrained embedded systems. In: Proceedings of the 2009 USENIX Annual Technical Conference (2009) Google Scholar
  26. 26.
    Hofer, W., Lohmann, D., Schröder-Preikschat, W.: Concern impact analysis in configurable system software: the autosar os case. In: ACP4IS’08: Proceedings of the 2008 AOSD Workshop on Aspects, Components, and Patterns for Infrastructure Software (2008) Google Scholar
  27. 27.
    Reynolds, A., Fiuczynski, ME, Grimm, R.: On the feasibility of an aosd approach to Linux kernel extensions. In: ACP4IS’08: Proceedings of the 2008 AOSD Workshop on Aspects, Components, and Patterns for Infrastructure Software (2008) Google Scholar
  28. 28.
    Cannon, B., Wohlstadter, E.: Enforcing security for desktop clients using authority aspects. In: AOSD’09: Proceedings of the 8th ACM International Conference on Aspect-oriented Software Development (2009) Google Scholar
  29. 29.
    OpenMP Architecture Review Board: OpenMP Homepage. http://www.openmp.org (2011)
  30. 30.
    Blumofe, R.D., Joerg, C.F., Kuszmaul, B., Leiserson, C.E., Randall, K.H., Zhou, Y.: Cilk: An efficient multithreaded runtime system. In: Proceedings of 5th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (1995) Google Scholar
  31. 31.
    Alexandersson, R., Ohman, P.: Implementing fault tolerance using aspect oriented programming. In: Proceedings of the Third Latin-American Symposium (2007) Google Scholar
  32. 32.
    Fabry, J.: A framework for replication of objects using aspect-oriented programming. Ph.D. Thesis, University of Brussel (1998) Google Scholar
  33. 33.
    Sevilla, D., Garcia, J., Gomez, A.: Aspect-oriented programing techniques to support distribution, fault tolerance, and load balancing in the Corba-lc component model. In: IEEE International Symposium on Network Computing and Applications (2007) Google Scholar
  34. 34.
    Afonso, F., Silva, C., Brito, N., Montenegro, S., Tavares, A.: Aspect-oriented fault tolerance for real-time embedded systems. In: ACP4IS’08: Proceedings of the 2008 AOSD Workshop on Aspects, Components, and Patterns for Infrastructure Software (2008) Google Scholar
  35. 35.
    Hargrove, P.H., Duell, J.C.: Berkeley lab checkpoint/restart (BLCR) for Linux clusters. In: Proc. of the SciDAC (2006) Google Scholar
  36. 36.
    van Renesse, R., Schneider, F.B.: Chain replication for supporting high throughput and availability. In: OSDI (2004) Google Scholar
  37. 37.
    Terrace, J., Freedman, M.J.: Object storage on craq high-throughput chain replication for read-mostly workloads. In: USENIX (2009) Google Scholar
  38. 38.
    Chang, F., Dean, J., Ghemawat, S., Hsieh, W.C., Wallach, D.A., Burrows, M., Chandra, T., Fikes, A., Gruber, R.E.: Bigtable: a distributed storage system for structured data. In: OSDI (2006) Google Scholar
  39. 39.
    JGroups: The JGroups Project. http://www.jgroups.org (2011)
  40. 40.
    Myricom: Myricom Homepage. http://www.myri.com (2011)
  41. 41.
    Pant, A., Jafri, H.: Communicating efficiently on cluster based grids with MPICH-VMI. In: Proceedings of IEEE International Conference on Cluster Computing (2004) Google Scholar
  42. 42.
    Jung, H., Han, H., Yeom, HY, Kang, S.A.: A user-transparent and fault-tolerant system for parallel applications. IEEE Trans. Parallel Distrib. Syst. 99 (2011). doi:10.1109/TPDS.2011.63
  43. 43.
    Kim, S.G., Han, H., Jung, H.S., Yeom, H.Y.: Design and implementation of RDMA gateway for heterogeneous clusters. In: Proceedings of International Conference on Convergence Information Technology (2007) Google Scholar
  44. 44.
    Elnozahy, E.N., Johnson, D.B., Wang, Y.M.: A survey of rollback-recovery protocols in message-passing systems. ACM Comput. Surv. 34(3), 378–408 (2002) CrossRefGoogle Scholar
  45. 45.
    Zandy, V.C.: ckpt. http://www.cs.wisc.edu/~zandy/ckpt (2011)
  46. 46.
    Adams, B.: Aspicere Homepage. http://sailhome.cs.queensu.ca/~bram/aspicere/ (2011)
  47. 47.
    Woo, N., Jung, H., Yeom, H., Park, T., Park, H.: MPICH-GF: transparent checkpointing and rollback-recovery for grid-enabled MPI processes. IEICE Trans. Inf. Syst. E87-D, 1820–1828 (2004) Google Scholar
  48. 48.
    Woo, N., Jung, H., Shin, D., Han, H., Yeom, HY, Park, T.: Evaluation of consistent recovery protocols using MPICH-GF. In: Proceedings of the 5th European Dependable Computing Conference (2005) Google Scholar
  49. 49.
    Stellner, G.C.: Checkpointing and process migration for mpi. In: International Parallel Processing Symposium (1996) Google Scholar
  50. 50.
    Chandy, K.M., Lamport, L.: Distributed snapshots: determining global states of distributed systems. ACM Trans. Comput. Syst. 3(1), 63–75 (1985) CrossRefGoogle Scholar
  51. 51.
    Whalin, G.: Java memcached client. http://www.whalin.com/memcached (2011)
  52. 52.
    Liu, J., Wu, J., Kini, S.P., Wyckoff, P., Panda, D.K.: High performance RDMA-based MPI implementation over InfiniBand. In: Proceedings of 17th Annual ACM International Conference on Supercomputing (2003) Google Scholar
  53. 53.
    Karonis, N.T., Toonen, B., Foster, I.: MPICH-G2: a grid-enabled implementation of the message passing interface. J. Parallel Distrib. Comput. 63(5), 551–563 (2003). Special Issue on Computational Grids MATHCrossRefGoogle Scholar
  54. 54.
    Park, K., Park, S., Kwon, O., Park, H.: MPICH-GP: a private-IP-enabled MPI over grid environments. In: Proceedings of the Second International Symposium on Parallel and Distributed Processing and Applications (2004) Google Scholar
  55. 55.
    Plank, J.S.: Efficient checkpointing on MIMD architectures. Ph.D. Thesis, Princeton University (1993) Google Scholar
  56. 56.
    Gybels, K., Brichau, J.: Arranging language features for more robust pattern-based crosscuts. In: Proceedings of the 2nd International Conference on Aspect-oriented Software Development (2003) Google Scholar
  57. 57.
    Kellens, A.: A model-driven pointcut language for more robust pointcuts. In: Proceedings of Software engineering Properties of Languages for Aspect Technologies (2006) Google Scholar
  58. 58.
    Störzer, M., Koppen, C.P.: Attacking the fragile pointcut problem, abstract. In: European Interactive Workshop on Aspects in Software (2004) Google Scholar

Copyright information

© Springer Science+Business Media, LLC 2011

Authors and Affiliations

  1. 1.School of Computer Science and EngineeringSeoul National UniversitySeoulKorea
  2. 2.School of Information TechnologiesUniversity of SydneySydneyAustralia

Personalised recommendations