Refactoring Middleware with Aspects

Charles Zhang and Hans-Arno Jacobsen.

IEEE Trans. on Parallel and Distributed Systems, 14(11)1058-1073, December 2003.


Middleware platforms, such as Web services, J2EE, CORBA, and DCOM, have become increasingly popular during the last decade. They have been very successful in solving distributed computing problems for a large family of application domains. The architecture of middleware systems have gone through many significant cycles of evolution, both in terms of the completeness of functionality and the range of adoptions for different types of platforms. However, at the same time, it is getting increasingly difficult to achieve and to maintain a high level of adaptability and configurability because the structure of the middleware architecture is becoming overly complicated and rigid. We attribute that problem to the limitations of traditional software decomposition methods. Aspect-oriented programming, on the contrary, has introduced new design perspectives that permit the superimpositions of different abstraction models on top of one another. This is a very powerful technique for separating and simplifying design concerns. In our effort of applying principles of aspect orientation to the middleware architecture, we first pragmatically analyze the use of aspects in the middleware architecture. We then show that aspects are the correct remedy for the above outlined middleware problems by quantifying crosscutting concerns in the legacy implementations of several prominent middleware systems. Our aspect analysis results strongly indicate that modularity of middleware architecture is greatly hindered by the wide existence of tangled logic. To go one step further, we factor out a number of crosscutting concerns identified in the mining process and reimplement them with aspects, superimposed on the existing middleware architecture. This allows us to use a set of software engineering metrics to quantify the refactorization in terms of changes in the structural complexity, modularity, and performance of the resulting system. This aspect-oriented refactoring proves that aspect orientation is capable of composing orthogonal design requirements. The final ”woven” system is able to correctly provide both the fundamental functionality and the “aspectized” functionality with negligible overhead and an overall leaner architecture. Furthermore, the ”aspectized” feature can be configured in and out during compile-time, which greatly enhances the configurability of the architecture.


Related Projects

Tags: aspect-oriented middleware, aspect-oriented programming

Readers who enjoyed the above work, may also like the following:

  • Mining Crosscutting Concerns Through Random Walks.
    Charles Zhang and Hans-Arno Jacobsen.
    IEEE Transactions on Sofware Engineering, 2011.
    Accepted July 2011.
    Tags: aspect mining, aspect-oriented programming, aspect-oriented middleware
  • Externalizing Java Server Concurrency with CAL.
    Charles Zhang and Hans-Arno Jacobsen.
    In European Conference on Object-oriented Processing 2008 (ECOOP), pages 362-386, July 2008.
    Acceptance rate: 19%.
    Tags: aspect-oriented middleware, aspect-oriented programming, concurrency
  • Efficiently Mining Crosscutting Concerns Through Random Walks.
    Charles Zhang and Hans-Arno Jacobsen.
    In AOSD 2007: 6th International Conference on Aspect Oriented Systems and Design, pages 226-238, Vancouver, BC, Canada, March 2007.
    Acceptance rate: 18%.
    Tags: aspect mining, aspect-oriented middleware, aspect-oriented programming