Abstract
J2EE is a middleware architecture augmented with supporting tools for developing large scale client/server and multi-tier applications. J2EE uses Enterprise JavaBeans as its component model. The realization of these components by a J2EE application server can be conceptually decomposed into distinct aspects such as persistence, transaction management, security, and load balancing. However, current servers do not employ aspect-oriented programming in their implementation. In this paper, we describe a new aspect language, AspectJ2EE, geared towards the generalized implementation of J2EE application servers, and applications within this framework. AspectJ2EE can be easily employed to extend the fixed set of services that these servers provide with new services such as logging and performance monitoring. Even tier-cutting concerns like encryption, data compression, and memoization can be added while avoiding the drags of cross-cutting and scattered code.
AspectJ2EE is less general (and hence less complicated) than AspectJ, yet demonstrably powerful enough for the systematic development of large scale (and distributed) applications. The introduction of parameterized aspects makes aspects in AspectJ2EE more flexible and reusable than aspects in AspectJ.
AspectJ2EE also generalizes the process of binding services to user applications in the application server into a novel deploy-time weaving of aspects. Deploy-time weaving is superior to traditional weaving mechanisms, in that it preserves the object model, has a better management of aspect scope, and presents a more understandable and maintainable semantic model.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Shannon, B., Hapner, M., Matena, V., Davidson, J., Davidson, J., Cable, L.: Java 2 Platform, Enterprise Edition: Platform and Component Specifications. Addison-Wesley, Reading (2000)
DeMichiel, L.G., Yalçinalp, L.U., Krishnan, S.: Enterprise JavaBeans specification, version 2.0 (2001), http://java.sun.com/j2ee/
Kiczales, G., Lamping, J., Menhdhekar, A., Maeda, C., Lopes, C., Loingtier, J.M., Irwin, J.: Aspect-oriented programming. In: Aksit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol. 1241, pp. 220–242. Springer, Heidelberg (1997)
Soares, S., Laureano, E., Borba, P.: Implementing distribution and persistence aspects with AspectJ. In: Proceedings of OOPSLA 2002, Object Oriented Programming Systems Languages and Applications, ACM Press, New York (2002)
Hao, R., Boloni, L., Jun, K., Marinescu, D.C.: An aspect-oriented approach to distributed object security. In: Proceedings of The Fourth IEEE Symposium on Computers and Communications, IEEE Press, Los Alamitos (1999)
Kim, H., Clarke, S.: The relevance of AOP to an applications programmer in an EJB environment. In: First International Conference on Aspect-Oriented Software Development (AOSD) Workshop onAspects, Components, and Patterns for Infrastructure Software, ACP4IS (2002)
Choi, J.P.: Aspect-oriented programming with Enterprise JavaBeans. In: 4th International Enterprise Distributed Object Computing Conference (EDOC 2000), pp. 252–261. IEEE Computer Society, Los Alamitos (2000)
Kiczales, G., Hilsdale, E., Hugunin, J., Kersten, M., Palm, J., Griswold, W.G.: An overview of AspectJ. In: Knudsen, J.L. (ed.) ECOOP 2001. LNCS, vol. 2072, pp. 327–355. Springer, Heidelberg (2001)
American National Standards Institute, Inc.: Programming language – COBOL,ANSI X3.23– 1985 edition (1985)
Shannon, B.: Java 2 platform enterprise edition specification, v1.3 (2001), http://java.sun.com/-j2ee/1.3/download.html#platformspec
Laddad, R.: AspectJ inAction: Practical Aspect-Oriented Programming, Manning, Greenwich (2003)
Pichler, R., Ostermann, K., Mezini, M.: On aspectualizing component models. Software – Practice and Experience 33, 957–974 (2003)
Bodoff, S., Green, D., Haase, K., Jendrock, E., Pawlan, M., Stearns, B.: The J2EE Tutorial. Addison-Wesley, Reading (2002)
Duclos, F., Estublier, J., Morat, P.: Describing and using non functional aspects in component based applications. In: Proceedings of the 1st International Conference on Aspect-Oriented Software Development (AOSD 2002), pp. 22–26 (2002)
Weinschenk, C.: The application server market is dead; long live the application server market (2003), http://www.serverwatch.com/tutorials/article.php/2234311
JBoss Group: JBoss product homepage (2003), http://www.jboss.org/
Burke, B., Brock, A.: Aspect-oriented programming and JBoss (2003), http://www.onjava.com/-lpt/a/3878
Mezini, M., Ostermann, K.: Conquering aspects with Caesar. In: Proceedings of the 2nd International Conference on Aspect-Oriented Software Development (AOSD 2003), ACM Press, New York (2003)
Walker, R.J., Baniassad, E.L.A., Murphy, G.C.: An initial assessment of aspect-oriented programming. In: IEEE International Conference on Software Engineering (ICSE), pp. 120–130 (1999)
Constantinides, C.A., Elrad, T., Fayad, M.E.: Extending the object model to provide explicit support for crosscutting concerns. Software – Practice and Experience 32, 703–734 (2002)
Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Professional Computing. Addison-Wesley, Reading (1995)
Cohen, T., Hadad, E.: An enhanced framework for providing explicit support for crosscutting concerns in object-oriented languages. Submitted to Software – Practice and Experience (2004)
Sun Microsystems, Inc.: rmic - the Java RMI compiler (2003), http://java.sun.com/j2se/1.4.2/docs/-tooldocs/solaris/rmic.html
Corp, I.B.M.: IBM WebSphere Application Server product family homepage (2003), http://www-3.ibm.com/software/info1/websphere/index.jsp?tab=products/appserv
Bracha, G., Cook, W.: Mixin-based inheritance. In: Meyrowitz, N. (ed.) Proceedings of the Conference on Object-Oriented Programming: Systems, Languages, and Applications / Proceedings of the European Conference on Object-Oriented Programming, Ottawa, Canada, pp. 303–311. ACM Press, New York (1990)
Allen, E., Bannet, J., Cartwright, R.: A first-class approach to genericity. In: Proceedings of OOPSLA 2003, Object Oriented Programming Systems Languages and Applications, ACM Press, New York (2003)
Chan, P., Lee, R., Kramer, D.: The Java Class Libraries., 2nd edn., vol. 1. Addison-Wesley, Reading (1998)
Meyer, B.: Object-Oriented Software Construction, 2nd edn. Prentice-Hall, Englewood Cliffs (1997)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2004 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Cohen, T., Gil, J.(. (2004). AspectJ2EE = AOP + J2EE. In: Odersky, M. (eds) ECOOP 2004 – Object-Oriented Programming. ECOOP 2004. Lecture Notes in Computer Science, vol 3086. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-24851-4_10
Download citation
DOI: https://doi.org/10.1007/978-3-540-24851-4_10
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-22159-3
Online ISBN: 978-3-540-24851-4
eBook Packages: Springer Book Archive