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.
Similar content being viewed by others
References
DeMichiel, L.G.: Enterprise JavaBeans Specification, Version 2.1. SUN Microsystems (2003)
Group, O.M.: Corba components 3.0. Specification formal/02-06-65, OMG (2002)
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)
Pichler, R., Ostermann, K., Mezini, M.: On aspectualizing component models. Software Practice and Experience 33, 957–974 (2003)
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)
Jordan, D., Russell, C.: JDO or CMP? (2003), http://www.onjava.com/lpt/a/3763
Tate, B.: For JDO, the time is now (2004), http://www.devx.com/Java/Article/20422/1954?pf=true
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)
Bloch, J.: A metadata facility for the java programming language. Java Specification Request 175 (2002)
Masuhara, H., Kiczales, G.: Modeling crosscutting in aspect-oriented mechanisms. In: Proceedings of the 17th European Conference on Object-Oriented Programming. Springer, Heidelberg (2003)
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)
Laddad, R.: AspectJ in Action. Manning (2003)
Fowler, M.: Inversion of control containers and the dependency injection pattern (2004), http://martinfowler.com/articles/injection.html
Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns. Addison-Wesley, Reading (1995)
Eichberg, M.: BAT2XML (2004), http://www.st.informatik.tu-darmstadt.de/BAT
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)
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)
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)
Völter, M., Schmid, A., Wolff, E.: Server Component Patterns: Component Infrastructures Illustrated with EJB. John Wiley & Sons, Chichester (2002)
Eichberg, M.: The proxy inter-type declaration. In: Proceedings of the third AOSD Workshop on Aspects, Components, and Patterns for Infrastructure Software (2004)
Kay, M.: Xsl transformations (xslt) version 2.0. Working draft, november 12 2003. W3C (2003)
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)
JBoss Inc.: JBoss 3.2 (2003), http://www.jboss.org
DeMichiel, L.G.: Enterprise JavaBeans Specification, Version 3.0. Java Specification Request 220 (2004)
Brooks, F.P.: The Mythical Man-Month. Addison-Wesley, Reading (1995)
Sun Microsystems: Java management extensions (JMX). White paper (1999)
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)
JBoss Inc.: JBoss aop beta3 (2004), http://www.jboss.org
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)
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
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)
Bodkin, R., Colyer, A., Hugunin, J.: Applying aop for middlerware platform independence. In: 2nd International Conference on Aspect-Oriented Software Development (2003) Practitioner Reports
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)
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)
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)
Gudmundson, S.: An Aspect-Oriented Distribution Service (1999)
Zhang, C., Jacobsen, H.A.: Refactoring middleware with aspects. IEEE Transactions on Parallel and Distributed Systems 14, 1058–1073 (2003)
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)
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)
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)
Ossher, H., Tarr, P.: Using multidimensional separation of concerns to (re)shape evolving software. Communications of the ACM 44, 43–50 (2001)
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)
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)
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)
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)
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)
Hunleth, F., Cytron, R., Gill, C.: Building customizable middleware using aspect oriented programming (2001), citeseer.ist.psu.edu/hunleth01building.html
Johnson, R.: Introducing the spring framework (2003), http://www.theserverside.com/articles/article.tss?l=SpringFramework
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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)