AspectJ2EE = AOP + J2EE
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.
KeywordsBusiness Logic Transaction Management Enterprise Application Remote Interface Remote Call
Unable to display preview. Download preview PDF.
- 1.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)Google Scholar
- 2.DeMichiel, L.G., Yalçinalp, L.U., Krishnan, S.: Enterprise JavaBeans specification, version 2.0 (2001), http://java.sun.com/j2ee/
- 4.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)Google Scholar
- 5.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)Google Scholar
- 6.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)Google Scholar
- 9.American National Standards Institute, Inc.: Programming language – COBOL,ANSI X3.23– 1985 edition (1985)Google Scholar
- 10.Shannon, B.: Java 2 platform enterprise edition specification, v1.3 (2001), http://java.sun.com/-j2ee/1.3/download.html#platformspec
- 11.Laddad, R.: AspectJ inAction: Practical Aspect-Oriented Programming, Manning, Greenwich (2003)Google Scholar
- 13.Bodoff, S., Green, D., Haase, K., Jendrock, E., Pawlan, M., Stearns, B.: The J2EE Tutorial. Addison-Wesley, Reading (2002)Google Scholar
- 14.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)Google Scholar
- 15.Weinschenk, C.: The application server market is dead; long live the application server market (2003), http://www.serverwatch.com/tutorials/article.php/2234311
- 16.JBoss Group: JBoss product homepage (2003), http://www.jboss.org/
- 17.Burke, B., Brock, A.: Aspect-oriented programming and JBoss (2003), http://www.onjava.com/-lpt/a/3878
- 18.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)Google Scholar
- 19.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)Google Scholar
- 21.Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Professional Computing. Addison-Wesley, Reading (1995)Google Scholar
- 22.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)Google Scholar
- 23.Sun Microsystems, Inc.: rmic - the Java RMI compiler (2003), http://java.sun.com/j2se/1.4.2/docs/-tooldocs/solaris/rmic.html
- 24.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
- 25.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)CrossRefGoogle Scholar
- 26.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)Google Scholar
- 27.Chan, P., Lee, R., Kramer, D.: The Java Class Libraries., 2nd edn., vol. 1. Addison-Wesley, Reading (1998)Google Scholar