|
ABSTRACT
For a variety of reasons, today's middleware systems are highly complex. This complexity surfaces internally in the middleware construction, and externally in the programming models supported and features offered. We believed that aspect-orientation could help with these problems, and undertook a case study based on members of an IBM® middleware product-line. We also wanted to know whether aspect-oriented techniques could scale to commercial project sizes with tens of thousands of classes, many millions of lines of code, hundreds of developers, and sophisticated build systems. This paper describes the motivation for our research, the challenges involved, and key lessons that we learnt in refactoring both homogeneous and heterogeneous crosscutting concerns in the middleware.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
 |
1
|
|
| |
2
|
M. Roman, F. Kon, and R. H. Campbell, "Reflective Middleware: From Your Desk to Your Hand," IEEE Distributed Systems Online, vol. 2, 2001.
|
| |
3
|
C. Zhang and H.-A. Jacobsen, "Refactoring Middleware With Aspects," IEEE Transactions on Parallel and Distributed Systems, vol. 14, 2003.
|
| |
4
|
R. Bodkin, A. Colyer, and J. Hugunin, "Applying AOP for Middleware Platform Independence," Practitioner Reports, 2nd International Conference on AOSD, 2003.
|
 |
5
|
Adrian Colyer , Andy Clement , Ron Bodkin , Jim Hugunin, Using AspectJ for component integration in middleware, Companion of the 18th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, October 26-30, 2003, Anaheim, CA, USA
[doi> 10.1145/949344.949440]
|
 |
6
|
Gregor Kiczales , Erik Hilsdale , Jim Hugunin , Mik Kersten , Jeffrey Palm , William Griswold, Getting started with ASPECTJ, Communications of the ACM, v.44 n.10, p.59-65, Oct. 2001
[doi> 10.1145/383845.383858]
|
| |
7
|
The AspectJ Team, "New pertype aspect specifier, AspectJ 1.1 Readme.," 2002.
|
| |
8
|
Apache Software Foundation, "Welcome to WSIF: Web Services Invocation Framework." http://ws_apache.org/wsif/.
|
 |
9
|
|
 |
10
|
|
| |
11
|
"Eclipse. org - Main Page." <u>http://www.eclipse.org</u>.
|
| |
12
|
"Eclipse AspectJ Development Tools project." <u>http://www.eclipse.org/ajdt</u>.
|
| |
13
|
H. Ossher, P. Tarr, and W. Harrison, "Concern Manipulation Environment (CME): A Flexible, Extensible, Interoperable Environment for AOSD." <u>http://www.research.ibm.con/cme/</u>, 2003.
|
| |
14
|
|
| |
15
|
|
 |
16
|
|
| |
17
|
Sun Microsystems Inc., "JSR 45: Debugging Support for Other Languages." <u>http://www.jcp.org/en/jsr/detail?id=45</u>.
|
| |
18
|
G. Kiczales, "RE: {aspectj-users} SCM & AspectJ." post to aspectj-users@eclipse.org, 2003.
|
| |
19
|
C. V. Lopes, "Aspect-Oriented Programming: An Historical Perspective (What's in a Name?)," Institute for Software Research, University of California, Irvine UCI-ISR-02-5, December 2002 2002.
|
| |
20
|
S. M. Inc., "JSR 175: A Metadata Facilicy for the Java Programming Language." <u>http://www.jcp.org/en/jsr/detail?id=175</u>.
|
| |
21
|
M. Robillard, "FEAT: A tool for locating, describing, and analyzing concerns in source code." <u>http://www.cs.ubc.ca/labs/spl/projects/feat/</u>.
|
 |
22
|
|
| |
23
|
C. Zhang and H.-A. Jacobsen, "Re-factoring Middleware Systems: A Case Study," Distributed Objects and Applications (DOA), 2003.
|
| |
24
|
C. Zhang and H.-A. Jacobsen, "Resolving Feature Convolution using Horizontal Decomposition in Middleware Systems," University of Toronto, Computer Systems Research Group Technical Report Nr: 475, 2003.
|
 |
25
|
|
| |
26
|
|
 |
27
|
|
| |
28
|
|
CITED BY 41
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Charles Zhang , Hans-Arno Jacobsen, PRISM is research in aSpect mining, Companion to the 19th annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications, October 24-28, 2004, Vancouver, BC, CANADA
|
|
|
Pavel Avgustinov , Aske Simon Christensen , Laurie Hendren , Sascha Kuzins , Jennifer Lhoták , Ondřej Lhoták , Oege de Moor , Damien Sereni , Ganesh Sittampalam , Julian Tibble, abc: an extensible AspectJ compiler, Proceedings of the 4th international conference on Aspect-oriented software development, p.87-98, March 14-18, 2005, Chicago, Illinois
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Luis Daniel Benavides Navarro , Mario Südholt , Wim Vanderperren , Bruno De Fraine , Davy Suvée, Explicitly distributed AOP using AWED, Proceedings of the 5th international conference on Aspect-oriented software development, March 20-24, 2006, Bonn, Germany
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Magiel Bruntink , Arie van Deursen , Maja D'Hondt , Tom Tourwé, Simple crosscutting concerns are not so simple: analysing variability in large-scale idioms-based implementations, Proceedings of the 6th international conference on Aspect-oriented software development, March 12-16, 2007, Vancouver, British Columbia, Canada
|
|
|
Nieraj Singh , Celina Gibbs , Yvonne Coady, C-CLR: a tool for navigating highly configurable system software, Proceedings of the 6th workshop on Aspects, components, and patterns for infrastructure software, p.9-es, March 12-16, 2007, Vancouver, British Columbia, Canada
|
|
|
|
|
|
Nelio Cacho , Thais Batista , Alessandro Garcia , Claudio Sant'Anna , Gordon Blair, Improving modularity of reflective middleware with aspect-oriented programming, Proceedings of the 6th international workshop on Software engineering and middleware, November 10-10, 2006, Portland, Oregon
|
|
|
|
|
|
Francisco Afonso , Carlos Silva , Sergio Montenegro , Adriano Tavares, Applying aspects to a real-time embedded operating system, Proceedings of the 6th workshop on Aspects, components, and patterns for infrastructure software, p.1-es, March 12-16, 2007, Vancouver, British Columbia, Canada
|
|
|
Celina Gibbs , Jeff Proctor , Yvonne Coady, Surrendering to the need for speed while maintaining visibility in adverse code conditions, Proceedings of the 3rd workshop on Linking aspect technology and evolution, p.2-es, March 12-16, 2007, Vancouver, British Columbia, Canada
|
|
|
|
|
|
Fernando Castor Filho , Alessandro Garcia , Cecília Mary F. Rubira, Error handling as an aspect, Proceedings of the 2nd workshop on Best practices in applying aspect-oriented software development, p.1-es, March 12-16, 2007, Vancouver, British Columbia, Canada
|
|
|
|
|
|
|
|
|
Bram Adams , Bart Van Rompaey , Celina Gibbs , Yvonne Coady, Aspect mining in the presence of the C preprocessor, Proceedings of the 2008 AOSD workshop on Linking aspect technology and evolution, p.1-6, March 31-April 04, 2008, Brussels, Belgium
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Jennifer Munnelly , Siobhán Clarke, Infrastructure for ubiquitous computing: improving quality with modularisation, Proceedings of the 2008 AOSD workshop on Aspects, components, and patterns for infrastructure software, p.1-7, March 31-April 08, 2008, Brussels, Belgium
|
|
|
Bram Adams , Kris De Schutter , Andy Zaidman , Serge Demeyer , Herman Tromp , Wolfgang De Meuter, Using aspect orientation in legacy environments for reverse engineering using dynamic analysis-An industrial experience report, Journal of Systems and Software, v.82 n.4, p.668-684, April, 2009
|
|
|
Bram Adams , Wolfgang De Meuter , Herman Tromp , Ahmed E. Hassan, Can we refactor conditional compilation into aspects?, Proceedings of the 8th ACM international conference on Aspect-oriented software development, March 02-06, 2009, Charlottesville, Virginia, USA
|
|
|
|
|
|
|
|
|
|
|