TY - GEN
T1 - Quantifying Aspects in Middleware Platforms
AU - Zhang, Charles
AU - Jacobsen, Hans Arno
PY - 2003
Y1 - 2003
N2 - Middleware technologies such as Web Services, CORBA and DCOM have been very successful in solving distributed computing problems for a large family of application domains. As middleware systems are getting widely adopted and more functionally mature, it is also increasingly difficult for the architecture of middleware to achieve a high level of adaptability and configurability, due to the limitations of traditional software decomposition methods. Aspect oriented programming has brought us new design perspectives because it permits the superimpositions of multiple abstraction models on top of one another. It is a very powerful technique in separating and simplifying design concerns. In this paper, we first show that, through the quantification of aspects in the legacy implementations, the modularity of middleware architecture is greatly hindered by the ubiquitous existence of tangled logic. We then go one step further by factoring out a number of aspects identified in the mining work and re-implementing them as aspect programs. The aspect oriented re-factorization allows us to apply a set of software engineering metrics to quantify the changes of the re-factored system in both the structural complexity and the runtime performance. The aspect oriented re-factoring proves that the aspect oriented programming 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 a leaner architecture. Further more, the configurability of middleware is dramatically increased because the "aspectized" features can be configured in and out during the compile-time.
AB - Middleware technologies such as Web Services, CORBA and DCOM have been very successful in solving distributed computing problems for a large family of application domains. As middleware systems are getting widely adopted and more functionally mature, it is also increasingly difficult for the architecture of middleware to achieve a high level of adaptability and configurability, due to the limitations of traditional software decomposition methods. Aspect oriented programming has brought us new design perspectives because it permits the superimpositions of multiple abstraction models on top of one another. It is a very powerful technique in separating and simplifying design concerns. In this paper, we first show that, through the quantification of aspects in the legacy implementations, the modularity of middleware architecture is greatly hindered by the ubiquitous existence of tangled logic. We then go one step further by factoring out a number of aspects identified in the mining work and re-implementing them as aspect programs. The aspect oriented re-factorization allows us to apply a set of software engineering metrics to quantify the changes of the re-factored system in both the structural complexity and the runtime performance. The aspect oriented re-factoring proves that the aspect oriented programming 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 a leaner architecture. Further more, the configurability of middleware is dramatically increased because the "aspectized" features can be configured in and out during the compile-time.
KW - Aspect Mining
KW - Aspect Oriented Programming
KW - Distributed systems
KW - Evaluation and metrics
KW - Middleware
KW - Software Architecture
UR - http://www.scopus.com/inward/record.url?scp=0141539431&partnerID=8YFLogxK
U2 - 10.1145/643603.643617
DO - 10.1145/643603.643617
M3 - Conference contribution
AN - SCOPUS:0141539431
SN - 1581136609
SN - 9781581136609
T3 - 2nd International Conference on Aspect-Oriented Software Development
SP - 130
EP - 139
BT - 2nd International Conference on Aspect-Oriented Software Development
PB - Association for Computing Machinery (ACM)
T2 - 2nd International Conference on Aspect-Oriented Software Development
Y2 - 17 March 2003 through 21 March 2003
ER -