Architecting Dynamic Reconfiguration in Dependable Systems

  • Antônio Tadeu A. Gomes
  • Thais V. Batista
  • Ackbar Joolia
  • Geoff Coulson
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4615)


The need for dynamic reconfiguration is a complicating factor in the design of dependable systems, as it demands from software architects both rigour and planning. Although recent research has shown that systematic and integrated “specification-to-deployment” environments are promising approaches to architecting dependable systems, few proposals have yet considered dynamic reconfiguration, and then only in specific situations. In this paper, we propose a generic approach to supporting dynamic reconfiguration in dependable systems. The proposed approach is built on our view that dynamic reconfiguration in such systems needs to be causally connected at runtime to a corresponding high-level software architecture specification. In more detail, we propose two causally-connected models: an architecture-level model and a runtime-level model. Dynamic reconfiguration can be applied either through an architecture specification at the architecture level, or through reconfiguration primitives at the runtime level. Both foreseen and unforeseen reconfigurations are supported. We discuss the issues involved in handling these two types of reconfiguration at both levels and the mapping between them. We also discuss an implementation of our approach that evaluates its main benefits.


dependable systems dynamic reconfiguration specification-to-deployment environments 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Abi-Antoun, M., Aldrich, J., Garlan, D., Schmerl, B., Nahas, N., Tseng, T.: Improving System Dependability by Enforcing Architectural Intent. In: Workshop on Architecting Dependable Systems. St. Louis (MO), USA (2005)Google Scholar
  2. 2.
    Akyildiz, I.F., Su, W., Sankarasubramaniam, Y., Cayirci, E.: Wireless Sensor Networks – A Survey. Computer Networks 38, 393–422 (2002)CrossRefGoogle Scholar
  3. 3.
    Batista, T., Joolia, A., Coulson, G.: Managing Dynamic Reconfiguration in Component-Based Systems. In: Morrison, R., Oquendo, F. (eds.) EWSA 2005. LNCS, vol. 3527, pp. 1–17. Springer, Heidelberg (2005)Google Scholar
  4. 4.
    Blair, G., Coulson, G., Grace, P.: Research Directions in Reflective Middleware: the Lancaster Experience. In: RM 2004. Proc. 3rd Workshop on Reflective and Adaptive Middleware co-located with Middleware 2004, Toronto, Ontario – Canada pp. 262–268 (2004)Google Scholar
  5. 5.
    Blair, G.S., Blair, L., Issarny, V., Tuma, P., Zarras, A.: The Role of Software Architecture in Constraining Adaptation in Component-Based Middleware Platforms. In: IFIP/ACM International Conference on Middleware. Hudson River Valley (NY), USA (2000)Google Scholar
  6. 6.
    Bruneton, E., Coupaye, T., Stefani, J.-B.: Recursive and Dynamic Software Composition with Sharing. In: International Workshop on Component-Oriented Programming. Malaga, Spain (2002)Google Scholar
  7. 7.
    Cheng, S-W., Garlan, D., Schmerl, B., Sousa, J.P., Spitznagel, B., Steenkiste, P., Hu, N.: Using Architectural Style as the Basis for Self-Repair. In: Working IEEE/IFIP Conference on Software Architecture, Montreal, Canada (2002)Google Scholar
  8. 8.
    Costa, P., Coulson, G., Mascolo, C., Picco, G.P., Zachariadis, S.: The RUNES Middleware – a Reconfigurable Component-Based Approach to Networked Embedded Systems. In: Annual International Symposium on Personal Indoor and Mobile Radio Communications. Berlin, Germany (2005)Google Scholar
  9. 9.
    Coulson, G., Blair, G.S., Clarke, M., Parlavantzas, N.: The Design of a Highly Configurable and Reconfigurable Middleware Platform. ACM Distributed Computing Journal 15, 109–126 (2002)CrossRefGoogle Scholar
  10. 10.
    Coulson, G., Blair, G.S., Grace, P., Joolia, A., Lee, K., Ueyama, J.: OpenCOM v2: A Component Model for Building Systems Software. In: IASTED Software Engineering and Applications. Cambridge, MA, USA (2004)Google Scholar
  11. 11.
    Coulson, G., Blair, G.S., Hutchison, D., Joolia, A., Lee, K., Ueyama, J., Gomes, A.T.A., Ye, Y.: NETKIT: A Software Component-Based Approach to Programmable Networking. ACM SIGCOMM Computer Communications Review 33, 55–66 (2003)CrossRefGoogle Scholar
  12. 12.
    Dashfoy, E.M., van der Hoek, A., Taylor, R.N.: A Highly-Extensible, XML-Based Architecture Description Language. In: Working IEEE/IFIP Conference on Software Architecture, pp. 28–31. Amsterdam, The Netherlands (2001)Google Scholar
  13. 13.
    Garlan, D., Allen, R.J., Ockerbloom, J.: Exploiting Style in Architectural Design. In: SIGSOFT Symposium on the Foundations of Software Engineering. New Orleans, LA, USA (1994)Google Scholar
  14. 14.
    Garlan, D., Monroe, R., Wile, D.: Acme: Architectural Description of Component-Based Systems. In: Leavens, G.T., Sitaraman, M. (eds.) Foundations of Component-Based Systems, pp. 47–68. Cambridge University Press, Cambridge (2000)Google Scholar
  15. 15.
    Georgas, J.C., van der Hoek, A., Taylor, R.N.: Architectural Runtime Configuration Management in Support of Dependable Self-Adaptive Software. In: Workshop on Architecting Dependable Systems. St. Louis (MO), USA (2005)Google Scholar
  16. 16.
    Georgiadis, I., Magee, J., Kramer, J.: Self-organising Software Architectures for Distributed Systems. In: First Workshop on Self-healing Systems. Charleston, USA, pp. 33–38 (2002)Google Scholar
  17. 17.
    Gomes, A.T.A., Coulson, G., Blair, G.S., Soares, L.F.G.: A Component-Based Approach to the Creation and Deployment of Network Services in the Programmable Internet. Technical Report MCC-42/03, PUC-Rio, Brazil (2003)Google Scholar
  18. 18.
    Gomes, A.T.A., Ziviani, A., de Souza e Silva, N.A., Feijoo, R.A.: Towards a ubiquitous healthcare system for acute myocardial infarction patients in Brazil. In: Pervasive Computing and Communications Workshops. Pisa, Italy (2006)Google Scholar
  19. 19.
    Ierusalimsky, R., Figueiredo, L.H., Celes, W.: Lua – An Extensible Extension Language. Software: Practice and Experience 26, 635–652 (1996)CrossRefGoogle Scholar
  20. 20.
    Joolia, A., Batista, T., Coulson, G., Gomes, A.T.A.: Mapping ADL Specifications to an Efficient and Reconfigurable Runtime Component Platform. In: Working IEEE/IFIP Conference on Software Architecture. Pittsburgh (MA), USA, pp. 131–140 (2005)Google Scholar
  21. 21.
    Kirby, G.N.C., Connor, R.C.H., Cutts, Q.I., Dearle, A., Farkas, A.M., Morrison, R.: Persistent Hyper-Programs. In: Albano, A., Morrison, R. (eds.) Persistent Object Systems, Workshops in Computing, pp. 86–106. Springer, Heidelberg (1992)Google Scholar
  22. 22.
    Kloukinas, C., Issarny, V.: Automating the Composition of Middleware Configurations. In: IEEE International Conference on Automated Software Engineering, Grenoble, France, pp. 241–244 (2000)Google Scholar
  23. 23.
    Kon, F., Costa, F., Campbell, R., Blair, G.S.: The Case for Reflective Middleware. Communications of the ACM 45(6), 33–38 (2002)CrossRefGoogle Scholar
  24. 24.
    Lagaisse, B., Joosen, W.: True and Transparent Distributed Composition of Aspect-Components. In: Proc. ACM/IFIP Middleware 2006, Melbourne, Australia (2006)Google Scholar
  25. 25.
    Magee, J., Dulay, N., Eisenbach, S., Kramer, J.: Specifying Distributed Software Architectures. In: European Software Engineering Conference. Sitges, Spain, pp. 137–153 (1995)Google Scholar
  26. 26.
    Monroe, R.T.: Capturing Software Architecture Design Expertise with Armani. Technical Report CMU-CS-98-163, Carnegie-Mellon University, USA (1998)Google Scholar
  27. 27.
    Moreira, R., Blair, G.S., Carrapatoso, E.: FORMAware – Framework of Reflective Components for Managing Architecture Adaptation. In: International Symposium on Distributed Objects and Applications. Rome, Italy (2001)Google Scholar
  28. 28.
    Morrison, R., Kirby, G., Balasubramaniam, D., Mickan, K., Oquendo, F., Cimpan, S., Warboys, B., Snowdon, B., Greenwood, R.M.: Support for Evolving Software Architectures in the ArchWare ADL. In: Working IEEE/IFIP Conference on Software Architecture. Oslo, Norway, pp. 69–78 (2004)Google Scholar
  29. 29.
    Oreizy, P., Gorlic, M., Taylor, R., Medvidovick, N., et al.: An Architecture-Based Approach to Self-Adaptive Software. IEEE Intelligent Systems 14, 54–62 (1999)CrossRefGoogle Scholar
  30. 30.
    Oreizy, P., Taylor, R.N.: On the Role of Software Architectures in Runtime System Reconfiguration. IEE Proceedings 145(5), 137–145 (1998)CrossRefGoogle Scholar
  31. 31.
    Pissias, P., Coulson, G., Joolia, A.: Supporting Dynamic Reconfiguration in Multithreaded Component-Based Systems. Technical Report, Lancaster University, UK (2006)Google Scholar
  32. 32.
    Reid, A., Flatt, M., Stoller, L., Lepreau, J., Eide, E.: Knit: Component Composition for Systems Software. In: Symposium on Operating Systems Design and Implementation. San Diego (CA), USA, pp. 347–360 (2000)Google Scholar
  33. 33.
    Roshandel, R., van der Hoek, A., Mikic-Rakic, M., Medvidovic, N.: Mae – A System Model and Environment for Managing Architectural Evolution. ACM Transactions on Software Engineering and Methodology 3, 240–276 (2004)CrossRefGoogle Scholar
  34. 34.
    Szyperski, C., Gruntz, D., Murer, S.: Component Software – Beyond Object-Oriented Programming, 2nd edn. Addison-Wesley, New York (2002)Google Scholar
  35. 35.
    Taylor, R.N., Medvidovic, N., Anderson, K.M., Whitehead, E.J., Robbins, J.E., Nies, K.A., Oreizy, P., Dubrow, D.L.: A Component- and Message-Based Architectural Style for GUI Software. IEEE Transactions on Software Engineering 22, 390–406 (1996)CrossRefGoogle Scholar
  36. 36.
    van Ommering, R., van der Linden, F., Kramer, J., Magee, J.: The Koala Component Model for Consumer Electronics Software. IEEE Computer 33, 85–87 (2000)Google Scholar
  37. 37.
    Wermelinger, M.: Towards a Chemical Model for Software Architecture Reconfiguration. In: IEE Proceedings - Software, vol. 145, pp. 130–136 (1998)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2007

Authors and Affiliations

  • Antônio Tadeu A. Gomes
    • 1
  • Thais V. Batista
    • 2
  • Ackbar Joolia
    • 3
  • Geoff Coulson
    • 3
  1. 1.Laboratório Nacional de Computação Científica (LNCC), Av. Getúlio Vargas 333, 25651-075 Petrópolis-RJBrazil
  2. 2.Universidade Federal do Rio Grande do Norte (UFRN), Departamento de Informática, Campus Universitário – Lagoa Nova, 59072-970 Natal-RNBrazil
  3. 3.Computing Dept, Infolab21, Lancaster University, Lancaster LA1 4WAUK

Personalised recommendations