Aspect-oriented development of cluster computing software

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.

[1]  Ian T. Foster,et al.  MPICH-G2: A Grid-enabled implementation of the Message Passing Interface , 2002, J. Parallel Distributed Comput..

[2]  Kim Mens,et al.  A Model-driven Pointcut Language for More Robust Pointcuts , 2006 .

[3]  Wolfgang Schröder-Preikschat,et al.  CiAO: An Aspect-Oriented Operating-System Family for Resource-Constrained Embedded Systems , 2009, USENIX Annual Technical Conference.

[4]  Heon Young Yeom,et al.  Athanasia: A User-Transparent and Fault-Tolerant System for Parallel Applications , 2011, IEEE Transactions on Parallel and Distributed Systems.

[5]  Hiroshi Harada,et al.  PM2: High Performance Communication Middleware for Heterogeneous Network Environments , 2000, ACM/IEEE SC 2000 Conference (SC'00).

[6]  Robert Grimm,et al.  On the feasibility of an AOSD approach to Linux kernel extensions , 2008, ACP4IS@AOSD.

[7]  Wanja Hofer,et al.  Concern impact analysis in configurable system software: the AUTOSAR OS case , 2008 .

[8]  Hironori Washizaki,et al.  AOJS: aspect-oriented javascript programming framework for web development , 2009, ACP4IS '09.

[9]  Peter Öhman,et al.  Implementing Fault Tolerance Using Aspect Oriented Programming , 2007, LADC.

[10]  Leslie Lamport,et al.  Distributed snapshots: determining global states of distributed systems , 1985, TOCS.

[11]  Muga Nishizawa,et al.  Region pointcut for AspectJ , 2009, ACP4IS '09.

[12]  Heon Young Yeom,et al.  Performance Evaluation of Consistent Recovery Protocols Using MPICH-GF , 2005, EDCC.

[13]  Wolfgang Schröder-Preikschat,et al.  Interrupt synchronization in the CiAO operating system: experiences from implementing low-level system policies by AOP , 2007, ACP4IS.

[14]  Michael J. Freedman,et al.  Object Storage on CRAQ: High-Throughput Chain Replication for Read-Mostly Workloads , 2009, USENIX Annual Technical Conference.

[15]  Bradley C. Kuszmaul,et al.  Cilk: an efficient multithreaded runtime system , 1995, PPOPP '95.

[16]  Olaf Spinczyk,et al.  AspectC++ – An AOP Extension for C++ , 2005 .

[17]  Antonio F. Gómez-Skarmeta,et al.  Aspect-Oriented Programing Techniques to support Distribution, Fault Tolerance, and Load Balancing in the CORBA-LC Component Model , 2007, Sixth IEEE International Symposium on Network Computing and Applications (NCA 2007).

[18]  Wolfgang Schröder-Preikschat,et al.  A quantitative analysis of aspects in the eCos kernel , 2006, EuroSys.

[19]  Dhabaleswar K. Panda,et al.  High performance RDMA-based MPI implementation over InfiniBand , 2003, ICS.

[20]  Guillaume Mercier,et al.  MPICH/MADIII : a cluster of clusters enabled MPI implementation , 2003, CCGrid 2003. 3rd IEEE/ACM International Symposium on Cluster Computing and the Grid, 2003. Proceedings..

[21]  Georg Stellner,et al.  CoCheck: checkpointing and process migration for MPI , 1996, Proceedings of International Conference on Parallel Processing.

[22]  James S. Plank Efficient checkpointing on MIMD architectures , 1993 .

[23]  João Luís Sobral,et al.  Reusable aspect-oriented implementations of concurrency patterns and mechanisms , 2006, AOSD.

[24]  Avneesh Pant,et al.  Communicating efficiently on cluster based grids with MPICH-VMI , 2004, 2004 IEEE International Conference on Cluster Computing (IEEE Cat. No.04EX935).

[25]  Shin Gyu Kim,et al.  Design and Implementation of an RDMA Gateway for Heterogeneous Clusters , 2007, 2007 International Conference on Convergence Information Technology (ICCIT 2007).

[26]  Wei Huang,et al.  High performance virtual machine migration with RDMA over modern interconnects , 2007, 2007 IEEE International Conference on Cluster Computing.

[27]  Kris Gybels,et al.  Arranging language features for more robust pattern-based crosscuts , 2003, AOSD '03.

[28]  Heon Young Yeom,et al.  MPICH-GF: Transparent Checkpointing and Rollback-Recovery for Grid-Enabled MPI Processes , 2004, IEICE Trans. Inf. Syst..

[29]  Dhabaleswar K. Panda,et al.  Virtual machine aware communication libraries for high performance computing , 2007, Proceedings of the 2007 ACM/IEEE Conference on Supercomputing (SC '07).

[30]  Heon Young Yeom,et al.  Taste of AOP : Blending concerns in cluster computing software , 2007, 2007 IEEE International Conference on Cluster Computing.

[31]  Jason Duell,et al.  Berkeley Lab Checkpoint/Restart (BLCR) for Linux Clusters , 2006 .

[32]  Ruzanna Chitchyan,et al.  Persistence as an aspect , 2003, AOSD '03.

[33]  Nuno Brito,et al.  Aspect-oriented fault tolerance for real-time embedded systems , 2008 .

[34]  John R. Gurd,et al.  Aspect-oriented support for synchronization in parallel computing , 2009, PLATE '09.

[35]  Robbert van Renesse,et al.  Chain Replication for Supporting High Throughput and Availability , 2004, OSDI.

[36]  Eugene Kuleshov,et al.  Clustering the Java Virtual Machine using Aspect-Oriented Programming , 2007 .

[37]  Werner Vogels,et al.  Dynamo: amazon's highly available key-value store , 2007, SOSP.

[38]  Jörg Kienzle,et al.  AO challenge - implementing the ACID properties for transactional objects , 2006, AOSD.

[39]  F. Cappello,et al.  Blocking vs. Non-Blocking Coordinated Checkpointing for Large-Scale Fault Tolerant MPI , 2006, ACM/IEEE SC 2006 Conference (SC'06).

[40]  Wilson C. Hsieh,et al.  Bigtable: A Distributed Storage System for Structured Data , 2006, TOCS.

[41]  Eric Wohlstadter,et al.  Proceedings of the 2008 AOSD workshop on Aspects, components, and patterns for infrastructure software , 2007 .

[42]  John R. Gurd,et al.  A join point for loops in AspectJ , 2006, AOSD '06.

[43]  Oh-Young Kwon,et al.  MPICH-GP: A Private-IP-Enabled MPI Over Grid Environments , 2004, ISPA.

[44]  Eric Wohlstadter,et al.  Enforcing security for desktop clients using authority aspects , 2009, AOSD '09.