|
ABSTRACT
This paper reports our experience using AspectJ, a general-purpose aspect-oriented extension to Java, to implement distribution and persistence aspects in a web-based information system. This system was originally implemented in Java and restructured with AspectJ. Our main contribution is to show that AspectJ is useful for implementing several persistence and distribution concerns in the application considered, and other similar applications. We have also identified a few drawbacks in the language and suggest some minor modifications that could significantly improve similar implementations. Despite the drawbacks, we argue that the AspectJ implementation is superior to the pure Java implementation. Some of the aspects implemented in our experiment are abstract and constitute a simple aspect framework. The other aspects are application specific but we suggest that different implementations might follow the same aspect pattern. The framework and the pattern allow us to propose architecture-specific guidelines that provide practical advice for both restructuring and implementing certain kinds of persistent and distributed applications with AspectJ.
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
|
V. Alves and P. Borba. Distributed Adapters Pattern: A Design Pattern for Object-Oriented Distributed Applications. In First Latin American Conference on Pattern Languages of Programming --- SugarLoafPLoP, Rio de Janeiro, Brazil, October 2001. UERJ Magazine: Special Issue on Software Patterns.
|
| |
2
|
|
| |
3
|
|
| |
4
|
M. d'Amorim, C. Nogueira, G. Santos, A. Souza, and P. Borba. Integrating Code Generation and Refactoring. In Workshop on Generative Programming, ECOOP'02, Malaga, Spain, June 2002. Springer Verlag.
|
| |
5
|
|
 |
6
|
|
| |
7
|
R. E. Filman and D. P. Friedman. Aspect--Oriented Programming is Quantification and Obliviousness. In Workshop on Advanced Separation of Concerns, OOPSLA'00, 2000.
|
| |
8
|
|
| |
9
|
|
| |
10
|
|
| |
11
|
James Gosling , Bill Joy , Guy Steele , Gilad Bracha, Java Language Specification, Second Edition: The Java Series, Addison-Wesley Longman Publishing Co., Inc., Boston, MA, 2000
|
| |
12
|
|
| |
13
|
|
 |
14
|
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]
|
| |
15
|
G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C. V. Lopes, J.-M. Loingtier, and J. Irwin. Aspect--Oriented Programming. In European Conference on Object--Oriented Programming, ECOOP'97, LNCS 1241, pages 220--242, Finland, June 1997. Springer--Verlag.
|
| |
16
|
|
| |
17
|
T. Massoni, V. Alves, S. Soares, and P. Borba. PDC: Persistent Data Collections pattern. In First Latin American Conference on Pattern Languages of Programming --- SugarLoafPLoP, Rio de Janeiro, Brazil, October 2001. UERJ Magazine: Special Issue on Software Patterns.
|
| |
18
|
S. Microsystems. Java Remote Method Invocation (RMI).
|
 |
19
|
Gail C. Murphy , Robert J. Walker , Elisa L. A. Baniassad , Martin P. Robillard , Albert Lai , Mik A. Kersten, Does aspect-oriented programming work?, Communications of the ACM, v.44 n.10, p.75-77, Oct. 2001
[doi> 10.1145/383845.383862]
|
| |
20
|
|
| |
21
|
|
| |
22
|
S. Soares and P. Borba. PaDA: A Pattern for Distribution Aspects. In Second Latin American Conference on Pattern Languages of Programming --- SugarLoafPLoP, Itaipava, Rio de Janeiro, Brazil, August 2002.
|
| |
23
|
Sun Microsystems. The Enterprise JavaBeans Specification, October 2000.
|
| |
24
|
M. Tatsubori. Separation of Distribution Concerns in Distributed Java Programming. In OOPSLA'01, Doctoral Symposium, Tampa FL, 2001.
|
| |
25
|
A. Team. The AspectJ Programming Guide. At http://-aspectj.-org, 2002.
|
| |
26
|
|
CITED BY 36
|
|
|
|
|
Ruzanna Chitchyan , Awais Rashid , Ana Moreira , Joao Araujo , Paul Clements , Elisa Baniassad , Bedir Tekinerdogan, Early Aspects at ICSE 2007: Workshop on Aspect-Oriented Requirements Engineering and Architecture Design, Companion to the proceedings of the 29th International Conference on Software Engineering, p.127-128, May 20-26, 2007
|
|
|
|
Luis Daniel Benavides Navarro , Christa Schwanninger , Robert Sobotzik , Mario Südholt, ATOLL: aspect-oriented toll system, Proceedings of the 6th workshop on Aspects, components, and patterns for infrastructure software, p.7-es, March 12-16, 2007, Vancouver, British Columbia, Canada
|
|
|
|
|
|
Alessandro Garcia , Phil Greenwood , George Heineman , Robert Walker , Yuanfang Cai , Hong Yul Yang , Elisa Baniassad , Cristina Videira Lopes , Christa Schwanninger , Jianjun Zhao, Assessment of Contemporary Modularization Techniques - ACoM'07: workshop report, ACM SIGSOFT Software Engineering Notes, v.32 n.5, September 2007
|
|
Sérgio Soares , Paulo Borba, Aspect-oriented implementation method: progressive or non-progressive approach?, Companion of the 18th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, October 26-30, 2003, Anaheim, CA, USA
|
|
|
|
|
|
|
Paul Soule , Tom Carnduff , Stuart Lewis, A distribution definition language for the automated distribution of Java objects, Proceedings of the 2nd workshop on Domain specific aspect languages, p.2-es, March 12-12, 2007, Vancouver, British Columbia, Canada
|
|
Dimple Kaul , Aniruddha Gokhale , Larry Dawson , Alan Tackett , Kelly McCauley, Applying aspect oriented programming to distributed storage metadata management, Proceedings of the 2nd workshop on Best practices in applying aspect-oriented software development, p.4-es, March 12-16, 2007, Vancouver, British Columbia, Canada
|
|
|
|
|
|
|
|
Paulo Henrique M. Maia , Nabor C. Mendonça , Vasco Furtado , Walfredo Cirne , Katia Saikoski, A process for separation of crosscutting grid concerns, Proceedings of the 2006 ACM symposium on Applied computing, April 23-27, 2006, Dijon, France
|
|
|
|
|
Cidiane Lobato , Alessandro Garcia , Carlos Lucena , Alexander Romanovsky, A modular implementation framework for code mobility, Proceedings of the 3rd international conference on Mobile technology, applications & systems, October 25-27, 2006, Bangkok, Thailand
|
|
Johan Fabry , Éric Tanter , Theo D'Hondt, ReLAx: implementing KALA over the reflex AOP kernel, Proceedings of the 2nd workshop on Domain specific aspect languages, p.3-es, March 12-12, 2007, Vancouver, British Columbia, Canada
|
|
Reginaldo Ré , Otávio Augusto Lazzarini Lemos , Paulo Cesar Masiero, Minimizing stub creation during integration test of aspect-oriented programs, Proceedings of the 3rd workshop on Testing aspect-oriented programs, p.1-6, March 12-13, 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
|
|
|
|
|
|
|
|
|
|
|
|
|
Uwe Hohenstein , Regine Meunier , Christa Schwanninger, An aspect-oriented implementation of the EJB3.0 persistence concept, Proceedings of the 6th workshop on Aspects, components, and patterns for infrastructure software, p.4-es, March 12-16, 2007, Vancouver, British Columbia, Canada
|
|
Fernando Castor Filho , Nelio Cacho , Eduardo Figueiredo , Raquel Maranhão , Alessandro Garcia , Cecília Mary F. Rubira, Exceptions and aspects: the devil is in the details, Proceedings of the 14th ACM SIGSOFT international symposium on Foundations of software engineering, November 05-11, 2006, Portland, Oregon, USA
|
|
|
|
|
|
Mohammed Al-Mansari , Stefan Hanenberg , Rainer Unland, Orthogonal persistence and AOP: a balancing act, Proceedings of the 6th workshop on Aspects, components, and patterns for infrastructure software, p.2-es, March 12-16, 2007, Vancouver, British Columbia, Canada
|
|
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
|
|
|
|
|
|
|
|
|
|
|
|
Peer to Peer - Readers of this Article have also read:
-
Web application security assessment by fault injection and behavior monitoring
Proceedings of the 12th international conference on World Wide Web
Yao-Wen Huang
, Shih-Kun Huang
, Tsung-Po Lin
, Chung-Hung Tsai
-
Data structures for quadtree approximation and compression
Communications of the ACM
28, 9
Hanan Samet
-
A hierarchical single-key-lock access control using the Chinese remainder theorem
Proceedings of the 1992 ACM/SIGAPP Symposium on Applied computing
Kim S. Lee
, Huizhu Lu
, D. D. Fisher
-
The GemStone object database management system
Communications of the ACM
34, 10
Paul Butterworth
, Allen Otis
, Jacob Stein
-
Putting innovation to work: adoption strategies for multimedia communication systems
Communications of the ACM
34, 12
Ellen Francik
, Susan Ehrlich Rudman
, Donna Cooper
, Stephen Levine
|