Skip to main content

Software Architecture Evolution through Dynamic AOP

  • Conference paper
Software Architecture (EWSA 2004)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 3047))

Included in the following conference series:

  • 1023 Accesses

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.

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

Access this chapter

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever

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.

Similar content being viewed by others

References

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

    Google Scholar 

  2. Szyperski, C.: Component software: Beyond object-oriented programming (1998)

    Google Scholar 

  3. OMG: CORBA (common object request broker architecture) specification, http://www.corba.org/

  4. EJB: Enterprise javabeans specification, http://java.sun.com/products/ejb/docs.html

  5. Gudgin, M., et al.: W3C Recommendation (2003), http://www.w3.org/TR/soap12-part2/

  6. Newkirk, J.: Introduction to agile processes and extreme programming. In: Proc. of ICSE 2002 (2002)

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

  10. UDDI: Universal discovery and description and integration, http://www.uddi.org/

  11. PROSE: Programmable service extensions, http://prose.ethz.ch/

  12. Aldrich, J., Chambers, C., Notkin, D.: ArchJava: Connecting software architecture to implementation. In: Proc. of International Conference of Software Engineering (ICSE 2002) (2002)

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

  16. Magee, J., Kramer, J.: Dynamic structure in software architectures. In: Fourth SIGSOFT Symposium on the Foundations of Software Engineering (1996)

    Google Scholar 

  17. Luckham, D.C., Vera, J.: An event-based architecture definition language. IEEE Transactions on Software Engineering (1995)

    Google Scholar 

  18. Allen, R., Garlan, D.: A formal basis for architectural connection. ACM Transactions on Software Engineering (1997)

    Google Scholar 

  19. Feiler, P.H., Li, J.: Consistency in dynamic reconfiguration. In: Proc. 4th International Conference on Configurable Distributed Systems, ICCDS 1998 (1998)

    Google Scholar 

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

    Google Scholar 

  21. Portilo, J.M.: The Polylith software bus. ACM Transactions on Programming Languages and Systems (TOPLAS) (1994)

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

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

    Chapter  Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

  29. Pawlak, R., Duchien, L., Florin, G., Martelli, L., Seinturier, L.: Distributed separation of concerns with aspect components. In: Proc. of TOOLS Europe 2000 (2000)

    Google Scholar 

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

    Chapter  Google Scholar 

  31. Tarr, P., Ossher, H., Harrison, W., Sutton Jr., S.: N-degrees of separation: Multidimensional separation of concerns. In: Proc. of ICSE 1999 (1999)

    Google Scholar 

  32. Smaragdakis, Y., Batory, D.: Implementing layered designs with mixin layers. In: Jul, E. (ed.) ECOOP 1998. LNCS, vol. 1445, p. 550. Springer, Heidelberg (1998)

    Chapter  Google Scholar 

  33. Mezini, M., Lieberherr, K.: Adaptive plug and play components for evolutionary software development. In: Proc. of OOPSLA 1998 (1998)

    Google Scholar 

  34. Aksit, M., Wakita, K., Bosch, J., Bergmans, L., Yonezawa, A.: Abstracting objectinteractions using composition-filters. In: Object-Oriented Distributed Processing, pp. 152–184 (1993)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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

Publish with us

Policies and ethics