Abstract
Modern computing and network environments demand ahigh degree of adaptability from applications. At run time, an application may have to face many changes: in configuration, in protocols used, in terms of the available resources, etc. Many such changes can only be adequately addressed through dynamic evolution of the software architecture of the application. In this paper, we propose a novel approach to dynamically evolve a software architecture based on run-time aspect oriented programming. In our framework, a system designer/administrator can control the architecture of an application by dynamically inserting and removing code extensions. It is even possible to replace a significant part of the underlying middleware infrastructure without stopping the application. The novelty of this work is that it allows for a much more flexible development strategy as it delegates issues like middleware choice and adherence to an architectural specification to a framework enhanced by dynamic code extensions.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
van Gurp, J., Bosch, J., Svahnberg, M.: The notion of variability in software product lines. In: Proceedings 2nd Working IEEE / IFIP Conference on Software Architecture (WICSA) (2001)
Szyperski, C.: Component software: Beyond object-oriented programming (1998)
OMG: CORBA (common object request broker architecture) specification, http://www.corba.org/
EJB: Enterprise javabeans specification, http://java.sun.com/products/ejb/docs.html
Gudgin, M., et al.: W3C Recommendation (2003), http://www.w3.org/TR/soap12-part2/
Newkirk, J.: Introduction to agile processes and extreme programming. In: Proc. of ICSE 2002 (2002)
Popovici, A., Alonso, G., Gross, T.: Just in time aspects: Efficient dynamic weaving for java. In: Proc. of the 2nd International Conference on Aspect-Oriented Software Development (2003)
Oreizy, P., Medvidovic, N., Taylor, R.N.: Architecture-based runtime software evolution. In: Proc. of International Conference of Software Engineering (ICSE 1998), pp. 177–186 (1998)
Dashofy, E.M., van der Hoek, A., Taylor, R.N.: A highly-extensible, xml-based architecture description language. In: Proc. of Working IEEE/IFIP Conference on Software Architecture (WICSA 2001), pp. 103–112 (2001)
UDDI: Universal discovery and description and integration, http://www.uddi.org/
PROSE: Programmable service extensions, http://prose.ethz.ch/
Aldrich, J., Chambers, C., Notkin, D.: ArchJava: Connecting software architecture to implementation. In: Proc. of International Conference of Software Engineering (ICSE 2002) (2002)
Magee, J., Dulay, N., Kramer, J.: Regis: a constructive development environment for distributed programs. Distributed Systems Engineering Journal, 304–312 (1994), Special Issue on Configurable Distributed Systems
Medvidovic, N., Oreizy, P., Robbins, J.E., Taylor, R.N.: Using object-oriented typing to support architectural design in the c2 style. In: Proceedings of the ACM SIGSOFT 1996 Fourth Symposium on the Foundations of Software Engineering, pp. 24–32 (1996)
Dashofy, E.M., Medvidovic, N., Taylor, R.N.: Using off-the-shelf middleware to implement connectors in distributed software architectures. In: Proc. of International Conference of Software Engineering (ICSE 1999), pp. 3–12 (1999)
Magee, J., Kramer, J.: Dynamic structure in software architectures. In: Fourth SIGSOFT Symposium on the Foundations of Software Engineering (1996)
Luckham, D.C., Vera, J.: An event-based architecture definition language. IEEE Transactions on Software Engineering (1995)
Allen, R., Garlan, D.: A formal basis for architectural connection. ACM Transactions on Software Engineering (1997)
Feiler, P.H., Li, J.: Consistency in dynamic reconfiguration. In: Proc. 4th International Conference on Configurable Distributed Systems, ICCDS 1998 (1998)
van der Hoek, A., Mikic-Rakic, M., Roshandel, R., Medvidovic, N.: Taming architectural evolution. In: Proc. of the Ninth ACM SIGSOFT Symposium on the Foundations of Software Engineering, FSE-9 (2001)
Portilo, J.M.: The Polylith software bus. ACM Transactions on Programming Languages and Systems (TOPLAS) (1994)
Rutherford, M.J., Anderson, K., Carzaniga, A., Heimbigner, D., Wolf, A.L.: Reconfiguration in the Enterprise JavaBean component model. In: Component Deployment: IFIP/ACM Working Conference Proceedings, pp. 67–81 (2002)
Inverardi, P., Marinelli, G., Mancinelli, F.: Adaptive applications for mobile heterogenous devices. In: Proc. of 22nd Intl. Conf. on Distributed Computing Systems Workshops, pp. 410–413 (2002)
Griswold, W.G., Boyer, R., Brown, S.W., Truong, T.M.: A component architecture for an extensible, highly integrated context-aware computing infrastructure. In: Proc. of International Conference on Software Engineering, ICSE 2003 (2003)
Blair, G., Blair, L., Issarny, V., Tuma, P., Zarras, A.: The role of software architecture in constraining adaptation in component-based middleware platforms. In: Proc. of Middleware 2000 – IFIP/ACM International Conference on Distributed Systems Platforms and Open Distributed Processing (2000)
Bergmans, L., van Halteren, A., Ferreira Pires, L., van Sinderen, M., Aksit, M.: A QoS-control architecture for object middleware. In: Scholten, H.J., van Sinderen, M. (eds.) IDMS 2000. LNCS, vol. 1905, pp. 117–131. Springer, Heidelberg (2000)
Wohlstadter, E., Jackson, S., Devanbu, P.: DADO: enhancing middleware to support crosscutting features in distributed, heterogeneous systems. In: Proc. of International Conference on Software Engineering (ICSE 2003), pp. 174–186 (2003)
Truyen, E., Vanhaute, B., Joosen, W., Verbaeten, P., Jorgensen, B.N.: Dynamic and selective combination of extensions in component-based applications. In: Proc. of the 23rd International Conference on Software Engineering (ICSE 2001), pp. 233–242 (2001)
Pawlak, R., Duchien, L., Florin, G., Martelli, L., Seinturier, L.: Distributed separation of concerns with aspect components. In: Proc. of TOOLS Europe 2000 (2000)
Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C.V., Loingtier, J., Irwan, J.: Aspect-oriented programming. In: Aksit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol. 1241, pp. 220–242. Springer, Heidelberg (1997)
Tarr, P., Ossher, H., Harrison, W., Sutton Jr., S.: N-degrees of separation: Multidimensional separation of concerns. In: Proc. of ICSE 1999 (1999)
Smaragdakis, Y., Batory, D.: Implementing layered designs with mixin layers. In: Jul, E. (ed.) ECOOP 1998. LNCS, vol. 1445, p. 550. Springer, Heidelberg (1998)
Mezini, M., Lieberherr, K.: Adaptive plug and play components for evolutionary software development. In: Proc. of OOPSLA 1998 (1998)
Aksit, M., Wakita, K., Bosch, J., Bergmans, L., Yonezawa, A.: Abstracting objectinteractions using composition-filters. In: Object-Oriented Distributed Processing, pp. 152–184 (1993)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2004 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Falcarin, P., Alonso, G. (2004). Software Architecture Evolution through Dynamic AOP. In: Oquendo, F., Warboys, B.C., Morrison, R. (eds) Software Architecture. EWSA 2004. Lecture Notes in Computer Science, vol 3047. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-24769-2_5
Download citation
DOI: https://doi.org/10.1007/978-3-540-24769-2_5
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-22000-8
Online ISBN: 978-3-540-24769-2
eBook Packages: Springer Book Archive