AspectJ2EE = AOP + J2EE

Towards an Aspect Based, Programmable, and Extensible Middleware Framework
  • Tal Cohen
  • Joseph (Yossi) Gil
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3086)


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.


Business Logic Transaction Management Enterprise Application Remote Interface Remote Call 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 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. 2.
    DeMichiel, L.G., Yalçinalp, L.U., Krishnan, S.: Enterprise JavaBeans specification, version 2.0 (2001),
  3. 3.
    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)CrossRefGoogle Scholar
  4. 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. 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. 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
  7. 7.
    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)CrossRefGoogle Scholar
  8. 8.
    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)CrossRefGoogle Scholar
  9. 9.
    American National Standards Institute, Inc.: Programming language – COBOL,ANSI X3.23– 1985 edition (1985)Google Scholar
  10. 10.
    Shannon, B.: Java 2 platform enterprise edition specification, v1.3 (2001),
  11. 11.
    Laddad, R.: AspectJ inAction: Practical Aspect-Oriented Programming, Manning, Greenwich (2003)Google Scholar
  12. 12.
    Pichler, R., Ostermann, K., Mezini, M.: On aspectualizing component models. Software – Practice and Experience 33, 957–974 (2003)CrossRefGoogle Scholar
  13. 13.
    Bodoff, S., Green, D., Haase, K., Jendrock, E., Pawlan, M., Stearns, B.: The J2EE Tutorial. Addison-Wesley, Reading (2002)Google Scholar
  14. 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. 15.
    Weinschenk, C.: The application server market is dead; long live the application server market (2003),
  16. 16.
    JBoss Group: JBoss product homepage (2003),
  17. 17.
    Burke, B., Brock, A.: Aspect-oriented programming and JBoss (2003),
  18. 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. 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
  20. 20.
    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)MATHCrossRefGoogle Scholar
  21. 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. 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. 23.
    Sun Microsystems, Inc.: rmic - the Java RMI compiler (2003),
  24. 24.
    Corp, I.B.M.: IBM WebSphere Application Server product family homepage (2003),
  25. 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. 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. 27.
    Chan, P., Lee, R., Kramer, D.: The Java Class Libraries., 2nd edn., vol. 1. Addison-Wesley, Reading (1998)Google Scholar
  28. 28.
    Meyer, B.: Object-Oriented Software Construction, 2nd edn. Prentice-Hall, Englewood Cliffs (1997)MATHGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2004

Authors and Affiliations

  • Tal Cohen
    • 1
  • Joseph (Yossi) Gil
    • 1
  1. 1.Department of Computer ScienceTechnion—Israel Institute of TechnologyHaifaIsrael

Personalised recommendations