This Article 
 Bibliographic References 
 Add to: 
Refactoring Middleware with Aspects
November 2003 (vol. 14 no. 11)
pp. 1058-1073

Abstract—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, reimplement them as aspects, and superimpose them back into the refactored 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.

[1] M. Clarke, G.S. Blair, G. Coulson1, and N. Parlavantzas, An Efficient Component Model for the Construction of Adaptive Middleware Proc. IFIP/ACM Int'l Conf. Distributed Systems Platforms, Nov. 2001.
[2] F. Kon, M. Roman, P. Liu, J. Mao, T. Yamane, L. Claudio Magalhaes, and R.H. Campell, Monitoring, Security, and Dynamic Configuration with the Dynamictao Reflective Orb Proc. IFIP/ACM Int'l Conf. Distributed Systems Platforms and Open Distributed Processing, 2000.
[3] Cisco Systems, Cisco ons 15327 Sonet Multiservice Platform, pcat15327.htm, 2003.
[4] L. DiPalma and R. Kelly, Applying CORBA in a Contemporary Embedded Military Combat System Proc. OMG's Second Workshop Real-Time and Embedded Distributed Object Computing, June 2001.
[5] The Common Object Request Broker: Architecture and Specification Object Management Group,, Dec. 2001.
[6] C. Zhang and H.-A. Jacobsen, Aspectizing Middleware Platforms technical report, Univ. of Tortonto, Computer Systems Research Group, CSRG-466, Jan. 2003.
[7] G. Kiczales, Aspect Oriented Programming ACM Computing Surveys (CSUR), vol. 28, no. 4, 1996.
[8] E. Gamma, R. Helm, R. Johnson, and J. Vlissides, Design Patterns. Addison-Wesley,first ed., Oct. 1994.
[9] R.E. Filman, Achieving Ilities Proc. Workshop Compositional Software Architectures, Jan. 1998.
[10] J. Hannemann, The Aspect Mining Tool, 2003.
[11] C. Zhang, G. Dapeng, and H.-A. Jacobsen, Extended Aspect Mining Tool , Aug. 2002.
[12] M. Robillard, Feat: A Tool for Locating, Describing, and Analyzing Concerns in Source Code Eclipse Technology eXchange (ETX), Proc. Int'l Conf. Software Eng.,, May 2003.
[13] C. Zhang and H.-A. Jacobsen, Modularity Analyzer and Aspect Extractor Eclipse Technology eXchange (ETX), Proc. Int'l Conf. Software Eng.,, May 2003.
[14] IDL to Java Language Mapping Specification The Object Management Group,, 2003.
[15] L.H. Rosenberg, Metrics for Object Oriented Environments Proc. Third Ann. EFAITP/AIE Software Metrics Conf., Dec. 1997.
[16] Cyclomatic Complexity Carnegie Mellon Univ., , Sept. 2000.
[17] C. Zhang and H.-A. Jacobsen, Re-Factoring Middleware Systems: A Case Study technical report, Univ. of Tortonto, Computer Systems Research Group, CSRG-466, Jan. 2003. Also to appear in Proc. Int'l Symp. Distributed Objects and Applications, Nov. 2003.
[18] E. Putrycz and G. Bernard, Using Aspect Oriented Programming to Build a Portable Load Balancing Service Proc. Int'l Conf. Distributed Computing Systems Workshops, pp. 473-480, 2002.
[19] J. Kienzle and R. Guerraoui, AOP Does it Make Sense? The Case of Concurrency and Failures Proc. 16th European Conf. Object Oriented Programming, pp. 37-54, 2002.
[20] M. Kersten and G.C. Murphy, Atlas: A Case Study in Building a Web-Based Learning Environment Using Aspect-Oriented Programming Proc. ACM Conf. Object-Oriented Programming, Systems, Languages, and Applications, pp. 340-352, 1999.
[21] M. Astley, D.C. Sturman, and G. Agha, Customizable Middleware for Modular Software ACM Comm., May 2001.
[22] T. Ledoux, OpenCorba: A Reflective Open Broker Lecture Notes in Computer Science, vol. 1616, pp. 197-215, 1999.
[23] H.-A. Jacobsen and B. Krämer, Design Patterns for Synchronization Adaptors of CORBA Objects special issue of L'OBJET J. Object Orientation and Formal Methods, Hermes Publisher, 2000.
[24] H.-A. Jacobsen, Middleware Architecture Design Based on Aspects, the Open Implementation Metaphor and Modularity Proc. Workshop Aspect-Oriented Programming and Separation of Concerns, Aug. 2001.
[25] H.-A. Jacobsen, Re-Thinking Middleware Architecture Design Proc. Sixth Biennial World Conf. Integrated Design&Process Technology IDPT, June 2002.
[26] C. Zhang and H.-A. Jacobsen, Quantifying Aspects in Middleware Platforms Proc. Second Int'l Conf. Aspect Oriented Systems and Design, Mar. 2003.

Index Terms:
Aspect-oriented programming, aspects, middleware, aspect analysis, refactoring.
Charles Zhang, Hans-Arno Jacobsen, "Refactoring Middleware with Aspects," IEEE Transactions on Parallel and Distributed Systems, vol. 14, no. 11, pp. 1058-1073, Nov. 2003, doi:10.1109/TPDS.2003.1247668
Usage of this product signifies your acceptance of the Terms of Use.