Skip to main content

Alice: Modularization of Middleware Using Aspect-Oriented Programming

  • Conference paper
Software Engineering and Middleware (SEM 2004)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 3437))

Included in the following conference series:

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. DeMichiel, L.G.: Enterprise JavaBeans Specification, Version 2.1. SUN Microsystems (2003)

    Google Scholar 

  2. Group, O.M.: Corba components 3.0. Specification formal/02-06-65, OMG (2002)

    Google Scholar 

  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. Pichler, R., Ostermann, K., Mezini, M.: On aspectualizing component models. Software Practice and Experience 33, 957–974 (2003)

    Article  Google Scholar 

  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)

    Chapter  Google Scholar 

  6. Jordan, D., Russell, C.: JDO or CMP? (2003), http://www.onjava.com/lpt/a/3763

  7. Tate, B.: For JDO, the time is now (2004), http://www.devx.com/Java/Article/20422/1954?pf=true

  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)

    Chapter  Google Scholar 

  9. Bloch, J.: A metadata facility for the java programming language. Java Specification Request 175 (2002)

    Google Scholar 

  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. 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)

    Chapter  Google Scholar 

  12. Laddad, R.: AspectJ in Action. Manning (2003)

    Google Scholar 

  13. Fowler, M.: Inversion of control containers and the dependency injection pattern (2004), http://martinfowler.com/articles/injection.html

  14. Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns. Addison-Wesley, Reading (1995)

    Google Scholar 

  15. Eichberg, M.: BAT2XML (2004), http://www.st.informatik.tu-darmstadt.de/BAT

  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. 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. 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. Völter, M., Schmid, A., Wolff, E.: Server Component Patterns: Component Infrastructures Illustrated with EJB. John Wiley & Sons, Chichester (2002)

    Google Scholar 

  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. Kay, M.: Xsl transformations (xslt) version 2.0. Working draft, november 12 2003. W3C (2003)

    Google Scholar 

  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. JBoss Inc.: JBoss 3.2 (2003), http://www.jboss.org

  24. DeMichiel, L.G.: Enterprise JavaBeans Specification, Version 3.0. Java Specification Request 220 (2004)

    Google Scholar 

  25. Brooks, F.P.: The Mythical Man-Month. Addison-Wesley, Reading (1995)

    Google Scholar 

  26. Sun Microsystems: Java management extensions (JMX). White paper (1999)

    Google Scholar 

  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)

    Chapter  Google Scholar 

  28. JBoss Inc.: JBoss aop beta3 (2004), http://www.jboss.org

  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)

    Chapter  Google Scholar 

  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 Alamitos

    Google Scholar 

  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. Bodkin, R., Colyer, A., Hugunin, J.: Applying aop for middlerware platform independence. In: 2nd International Conference on Aspect-Oriented Software Development (2003) Practitioner Reports

    Google Scholar 

  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)

    Chapter  Google Scholar 

  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)

    Chapter  Google Scholar 

  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)

    Chapter  Google Scholar 

  36. Gudmundson, S.: An Aspect-Oriented Distribution Service (1999)

    Google Scholar 

  37. Zhang, C., Jacobsen, H.A.: Refactoring middleware with aspects. IEEE Transactions on Parallel and Distributed Systems 14, 1058–1073 (2003)

    Article  Google Scholar 

  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)

    Chapter  Google Scholar 

  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. 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)

    Chapter  Google Scholar 

  41. Ossher, H., Tarr, P.: Using multidimensional separation of concerns to (re)shape evolving software. Communications of the ACM 44, 43–50 (2001)

    Article  Google Scholar 

  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)

    Chapter  Google Scholar 

  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)

    Chapter  Google Scholar 

  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)

    Chapter  Google Scholar 

  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)

    Chapter  Google Scholar 

  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. Hunleth, F., Cytron, R., Gill, C.: Building customizable middleware using aspect oriented programming (2001), citeseer.ist.psu.edu/hunleth01building.html

  48. Johnson, R.: Introducing the spring framework (2003), http://www.theserverside.com/articles/article.tss?l=SpringFramework

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2005 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Eichberg, M., Mezini, M. (2005). Alice: Modularization of Middleware Using Aspect-Oriented Programming. In: Gschwind, T., Mascolo, C. (eds) Software Engineering and Middleware. SEM 2004. Lecture Notes in Computer Science, vol 3437. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11407386_5

Download citation

  • DOI: https://doi.org/10.1007/11407386_5

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-25328-0

  • Online ISBN: 978-3-540-31975-7

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics