|
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 50
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
|
|
|
|
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
|
|
|
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
|
|
|
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
|
|
|
|
|
|
|
|
|
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
|
|
|
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
|
|
|
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
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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
|
|
|
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
|
|
|
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
|
|
|
|
|
|
Phil Greenwood , Alessandro Garcia , Elisa Baniassad , Kevin Sullivan , Yuanfang Cai , Alan MacCormack, 2nd workshop on assessment of contemporary modularization techniques (ACoM 2008), Companion to the 23rd ACM SIGPLAN conference on Object oriented programming systems languages and applications, October 19-23, 2008, Nashville, TN, USA
|
|
|
|
|
|
|
|
|
Ruzanna Chitchyan , Phil Greenwood , Americo Sampaio , Awais Rashid , Alessandro Garcia , Lyrene Fernandes da Silva, Semantic vs. syntactic compositions in aspect-oriented requirements engineering: an empirical study, Proceedings of the 8th ACM international conference on Aspect-oriented software development, March 02-06, 2009, Charlottesville, Virginia, USA
|
|
|
|
|
|
Alessandro Fabricio Garcia , Eduardo Magno Lages Figueiredo , Claudio Nogueira Sant'Anna , Monica Pinto , Lidia Fuentes, Representing architectural aspects with a symmetric approach, Proceedings of the 15th workshop on Early aspects, March 03-03, 2009, Charlottesville, Virginia, USA
|
|
|
|
|
|
Zhanqi Cui , Linzhang Wang , Huigen Liu , Xuandong Li, Computational error handling as aspects: a case study, Proceedings of the 1st workshop on Linking aspect technology and evolution, p.7-11, March 03-03, 2009, Charlottesville, Virginia, USA
|
|
|
|
|
|
Christina Chavez , Alessandro Garcia , Thais Batista , Marcel Oliveira , Claudio Sant'Anna , Awais Rashid, Composing architectural aspects based on style semantics, Proceedings of the 8th ACM international conference on Aspect-oriented software development, March 02-06, 2009, Charlottesville, Virginia, USA
|
|
|
|
|
|
|
|
|
|
|