Alice: Modularization of Middleware Using Aspect-Oriented Programming

  • Michael Eichberg
  • Mira Mezini
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3437)

Abstract

In this paper, we identify three problems with current component middleware. First, the implementation of services is usually not modularized, making it hard to adapt the platform to application specific needs, to exchange services to cope with changing requirements or to use it on different devices. Second, mapping components to objects results in a complex programming model and is making the component code dependent on the used component framework. Third, application level crosscutting concerns are not modularized.

To solve these problems, we propose an aspect-oriented programming approach, complemented by standard Java 1.5 annotations to provide meta information about the components, and a sophisticated query language for pointcut designation based on annotations.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    DeMichiel, L.G.: Enterprise JavaBeans Specification, Version 2.1. SUN Microsystems (2003)Google Scholar
  2. 2.
    Group, O.M.: Corba components 3.0. Specification formal/02-06-65, OMG (2002)Google Scholar
  3. 3.
    Masuhara, H., Kiczales, G.: Modeling crosscutting in aspect-oriented mechanisms. In: Proceedings of the 17th European Conference on Object-Oriented Programming, pp. 2–28. Springer, Heidelberg (2003)Google Scholar
  4. 4.
    Pichler, R., Ostermann, K., Mezini, M.: On aspectualizing component models. Software Practice and Experience 33, 957–974 (2003)CrossRefGoogle Scholar
  5. 5.
    Cohen, T., Gil, J.Y.: AspectJ2EE = AOP + J2EE - towards an aspect based, programmable and extensible middleware framework. In: Odersky, M. (ed.) ECOOP 2004. LNCS, vol. 3086, pp. 221–245. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  6. 6.
    Jordan, D., Russell, C.: JDO or CMP? (2003), http://www.onjava.com/lpt/a/3763
  7. 7.
    Tate, B.: For JDO, the time is now (2004), http://www.devx.com/Java/Article/20422/1954?pf=true
  8. 8.
    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
  9. 9.
    Bloch, J.: A metadata facility for the java programming language. Java Specification Request 175 (2002)Google Scholar
  10. 10.
    Masuhara, H., Kiczales, G.: Modeling crosscutting in aspect-oriented mechanisms. In: Proceedings of the 17th European Conference on Object-Oriented Programming. Springer, Heidelberg (2003)Google Scholar
  11. 11.
    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
  12. 12.
    Laddad, R.: AspectJ in Action. Manning (2003)Google Scholar
  13. 13.
    Fowler, M.: Inversion of control containers and the dependency injection pattern (2004), http://martinfowler.com/articles/injection.html
  14. 14.
    Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns. Addison-Wesley, Reading (1995)Google Scholar
  15. 15.
    Eichberg, M.: BAT2XML (2004), http://www.st.informatik.tu-darmstadt.de/BAT
  16. 16.
    Boag, S., Chamberlin, D., Fernndez, M.F., Florescu, D., Robie, J., Simon, J.: XQuery 1.0: An XML query language,Working draft november 12, 2003. W3C (2003)Google Scholar
  17. 17.
    Eichberg, M., Mezini, M., Ostermann, K., Schfer, T.: Xirc: a kernel for cross-artifact information engineering in software development environments. In: Proceedings of the 11th IEEE Working Conference on Reverse Engineering. IEEE Computer Society Press, Los Alamitos (2004) (to appear)Google Scholar
  18. 18.
    Berglund, A., Boag, S., Chamberlin, D., Fernández, M.F., Kay, M., Robie, J., Siméon, J.: Xml path language (xpath) 2.0.,Working draft, november 12, 2003, W3C (2003)Google Scholar
  19. 19.
    Völter, M., Schmid, A., Wolff, E.: Server Component Patterns: Component Infrastructures Illustrated with EJB. John Wiley & Sons, Chichester (2002)Google Scholar
  20. 20.
    Eichberg, M.: The proxy inter-type declaration. In: Proceedings of the third AOSD Workshop on Aspects, Components, and Patterns for Infrastructure Software (2004)Google Scholar
  21. 21.
    Kay, M.: Xsl transformations (xslt) version 2.0. Working draft, november 12 2003. W3C (2003)Google Scholar
  22. 22.
    Eichberg, M., Mezini, M., Ostermann, K.: First-class pointcuts as queries. In: Proceedings of the Second ASIAN Symposium on Programming Languages and Systems. Springer, Heidelberg (2004) (to appear)Google Scholar
  23. 23.
    JBoss Inc.: JBoss 3.2 (2003),http://www.jboss.org
  24. 24.
    DeMichiel, L.G.: Enterprise JavaBeans Specification, Version 3.0. Java Specification Request 220 (2004)Google Scholar
  25. 25.
    Brooks, F.P.: The Mythical Man-Month. Addison-Wesley, Reading (1995)Google Scholar
  26. 26.
    Sun Microsystems: Java management extensions (JMX). White paper (1999)Google Scholar
  27. 27.
    Mezini, M., Ostermann, K.: Conquering aspects with caesar. In: Proceedings of the 2nd International Conference on Aspect-Oriented Software Development (AOSD), pp. 90–99. ACM Press, New York (2003)CrossRefGoogle Scholar
  28. 28.
    JBoss Inc.: JBoss aop beta3 (2004), http://www.jboss.org
  29. 29.
    Pawlak, R., Seinturier, L., Duchien, L., Florin, G.: Jac: A flexible solution for aspect-oriented programming in java. In: Proceedings of the third International Conference on Metalevel Architectures and Separation of Crosscutting Concerns, pp. 1–24. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  30. 30.
    Walker, R.J., Baniassad, E.L.A., Murphy, G.C.: An initial assessment of aspect-oriented programming. In: Proceedings of the 21st International Conference on Software Engineering, pp. 120–130. IEEE Computer Society Press, Los AlamitosGoogle Scholar
  31. 31.
    Lippert, M., Lopes, C.V.: A study on exception detecton and handling using aspect-oriented programming. In: Proceedings of the 22nd International Conference on Software Engineering, pp. 418–427. ACM Press, New York (2000)Google Scholar
  32. 32.
    Bodkin, R., Colyer, A., Hugunin, J.: Applying aop for middlerware platform independence. In: 2nd International Conference on Aspect-Oriented Software Development (2003) Practitioner ReportsGoogle Scholar
  33. 33.
    Colyer, A., Clement, A.: Large-scale aosd for middleware. In: Proceedings of the 3rd International Conference on Aspect-Oriented Software Development, pp. 56–65. ACM Press, New York (2004)CrossRefGoogle Scholar
  34. 34.
    Rashid, A., Chitchyan, R.: Persistence as an aspect. In: Proceedings of the 2nd International Conference on Aspect-Oriented Software Development, pp. 120–129. ACM Press, New York (2003)CrossRefGoogle Scholar
  35. 35.
    Soares, S., Laureano, E., Borba, P.: Implementing distribution and persistence aspects with aspectj. In: Proceedings of the 17th Conference on Object-Oriented Programming, Systems, Languages, and Applications, pp. 174–190. ACM Press, New York (2002)CrossRefGoogle Scholar
  36. 36.
    Gudmundson, S.: An Aspect-Oriented Distribution Service (1999)Google Scholar
  37. 37.
    Zhang, C., Jacobsen, H.A.: Refactoring middleware with aspects. IEEE Transactions on Parallel and Distributed Systems 14, 1058–1073 (2003)CrossRefGoogle Scholar
  38. 38.
    Shomrat, M., Yehudai, A.: Obvious or not? regulating architectural decisions using aspect-oriented programming. In: Proceedings of 1st International Conference on Aspect-Oriented Software Development, pp. 3–9. ACM Press, New York (2002)CrossRefGoogle Scholar
  39. 39.
    Eichberg, M., Mezini, M., Schäfer, T., Beringer, C., Hamel, K.M.: Enforcing system-wide properties. In: Proceedings of the 15th Australian Software Engineering Conference. IEEE Computer Society Press, Los Alamitos (2004)Google Scholar
  40. 40.
    Gybels, K., Brichau, J.: Arranging language features for more robust pattern-based crosscuts. In: Proceedings of the 2nd International Conference on Aspect-Oriented Software Development, pp. 60–69. ACM Press, New York (2003)CrossRefGoogle Scholar
  41. 41.
    Ossher, H., Tarr, P.: Using multidimensional separation of concerns to (re)shape evolving software. Communications of the ACM 44, 43–50 (2001)CrossRefGoogle Scholar
  42. 42.
    Tarr, P., Ossher, H., Harrison, W., Stanley, M., Sutton, J.: N negrees of separation: multi-dimensional separation of concerns. In: Proceedings of the 21st International Conference on Software Engineering, pp. 107–119. IEEE Computer Society Press, Los Alamitos (1999)CrossRefGoogle Scholar
  43. 43.
    Duclos, F., Estublier, J., Morat, P.: Describing and using non functional aspects in component based applications. In: Proceedings of the 1st International Conference on Apect-Oriented Software Development, pp. 65–75. ACM Press, New York (2002)CrossRefGoogle Scholar
  44. 44.
    Zhang, C., Jacobsen, H.A.: Quantifying aspects in middleware platforms. In: Proceedings of 2nd International Conference on Aspect-Oriented Software Development, pp. 130–139. ACM Press, New York (2003)CrossRefGoogle Scholar
  45. 45.
    Zhang, C., Jacobsen, H.A.: Re-factoring middleware systems: a case study. In: Meersman, R., Tari, Z., Schmidt, D.C. (eds.) CoopIS 2003, DOA 2003, and ODBASE 2003. LNCS, vol. 2888, pp. 1243–1262. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  46. 46.
    Zhang, C., Jacobsen, H.A.: Resolving implementation convolution in middleware systems. In: Proceedings of the 19th Conference on Object-Oriented Programming, Systems, Languages, and Applications. ACM Press, New York (2004) (to appear)Google Scholar
  47. 47.
    Hunleth, F., Cytron, R., Gill, C.: Building customizable middleware using aspect oriented programming (2001), citeseer.ist.psu.edu/hunleth01building.html
  48. 48.
    Johnson, R.: Introducing the spring framework (2003), http://www.theserverside.com/articles/article.tss?l=SpringFramework

Copyright information

© Springer-Verlag Berlin Heidelberg 2005

Authors and Affiliations

  • Michael Eichberg
    • 1
  • Mira Mezini
    • 1
  1. 1.Department of Computer Science, Software Technology GroupDarmstadt University of TechnologyGermany

Personalised recommendations