DocumentCode :
831767
Title :
Refactoring middleware with aspects
Author :
Zhang, Charles ; Jacobsen, Hans-Arno
Author_Institution :
Dept. of Electr. & Comput. Eng., Toronto Univ., Ont., Canada
Volume :
14
Issue :
11
fYear :
2003
Firstpage :
1058
Lastpage :
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 configur- ed in and out during compile-time, which greatly enhances the configurability of the architecture.
Keywords :
data mining; distributed object management; middleware; object-oriented programming; software architecture; software metrics; CORBA; DCOM; J2EE; Web services; aspect analysis; aspect-oriented programming; distributed computing problem; middleware architecture; orthogonal design requirement; software decomposition method; software engineering metrics; structural complexity; system modularity; system performance; Availability; Computer architecture; Distributed computing; Jacobian matrices; Logic; Middleware; Runtime; Software engineering; Space technology; Web services;
fLanguage :
English
Journal_Title :
Parallel and Distributed Systems, IEEE Transactions on
Publisher :
ieee
ISSN :
1045-9219
Type :
jour
DOI :
10.1109/TPDS.2003.1247668
Filename :
1247668
Link To Document :
بازگشت