Software Quality Journal

, Volume 15, Issue 3, pp 265–281 | Cite as

Deployment and dynamic reconfiguration planning for distributed software systems

  • Naveed ArshadEmail author
  • Dennis Heimbigner
  • Alexander L. Wolf


The quality of software systems are determined in part by their optimal configurations. Optimal configurations are desired when the software is being deployed and during its lifetime. However, initial deployment and subsequent dynamic reconfiguration of a software system is difficult because of the interplay of many interdependent factors, including cost, time, application state, and system resources. As the size and complexity of software systems increases, procedures (manual or automated) that assume a static software architecture and environment are becoming untenable. We have developed a novel technique for carrying out the deployment and reconfiguration planning processes that leverages recent advances in the field of temporal planning. We describe a tool called Planit, which manages the deployment and reconfiguration of a software system utilizing a temporal planner. Given a model of the structure of a software system, the network upon which the system should be hosted, and a goal configuration, Planit will use the temporal planner to devise possible deployments of the system. Given information about changes in the state of the system, network and a revised goal, Planit will use the temporal planner to devise possible reconfigurations of the system. We present the results of a case study in which Planit is applied to a system consisting of various components that communicate across an application-level overlay network.


Goal State Optimal Plan Failure Recovery Dynamic Reconfiguration Distribute Software System 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.



This material is based in part upon work sponsored by DARPA, SPAWAR, and AFRL under Contracts N66001-00-8945, F30602-00-2-0608, and F49620-01-1-0282. The content does not necessarily reflect the position or the policy of the Government and no official endorsement is implied.


  1. Agnew, B., Hofmeister, C. R., & Purtilo, J. (1994). Planning for change: A reconfiguration language for distributed systems. Distributed Systems Engineering, 1(5), 313–322.CrossRefGoogle Scholar
  2. Allen, J., & Koomen, J. (1983). Planning using a temporal world model. In Proceedings of 8th International Joint Conference On Artificial Intelligence, (pp. 741–747).Google Scholar
  3. Allen, J. (1991). Planning as temporal reasoning. In Proceedings of Conference on knowledge representation and reasoning, (pp. 3–14).Google Scholar
  4. Bacchus, F., & Ady, M. (2001). Planning with resources and concurrency: A forward chaining approach, International Joint Conference on Artificial Intelligence (IJCAI-2001), (pp. 417–424). Google Scholar
  5. Batista, T., & Rodríguez, N. (2000). Dynamic reconfiguration of component-based applications. In Proceedings of the international symposium on software engineering for parallel and distributed systems (pp. 32–39). IEEE Computer SocietyGoogle Scholar
  6. Berghoff, J., Drobnik, O., Lingnau, A., & Mönch, C. (1996). Agent-based configuration management of distributed applications. In Proceedings of the Third International Conference on Configurable Distributed Systems ICCDS ’96 (pp. 52–59). Maryland.Google Scholar
  7. Carzaniga, A., Rosenblum, D. S., & Wolf, A. L. (2001). Design and evaluation of a wide-area event notification service. ACM Transactions on Computer Systems, 19(3), 332–383.CrossRefGoogle Scholar
  8. Cook, J. E., & Dage, J. A. (1999). Highly reliable upgrading of components. 21st International Conference on Software Engineering (ICSE99), Los Angeles, CA.Google Scholar
  9. Doherty, P., & Kvarnström, J. (2001). TALplanner: A temporal logic based planner. AI Magazine, Fall Issue.Google Scholar
  10. Edelkamp, S., & Helmert M. (2001). The model checking integrated planning system AI-Magazine (AIMAG), (pp. 67–71). Fall. Google Scholar
  11. Endler, M., & Wei J. (1992). Programming generic dynamic reconfigurations for distributed applications, Proceedings of the international workshop on configurable distributed systems (pp. 68–79). London, IEE, March 92. Google Scholar
  12. European Network of Excellence in AI Planning Web Site ( Scholar
  13. Fox, M., & Long, D. The third international planning competition: Temporal and metric planning. University of Durham, UK.Google Scholar
  14. Garlan, D., Monroe, R., & Wile, D. (1997). Acme: An architecture description interchange language. Proceedings of CASCON 97 (pp. 169–183). Toronto, Ontario.Google Scholar
  15. Garlan, D., Monroe, R. T., Wile, D (2000). Acme: Architectural description of component-based systems. In Gary T. Leavens and Murali Sitaraman (Eds.), Foundations of Component-Based Systems (pp. 47–68). Cambridge University Press. Google Scholar
  16. Gerevini, A., & Serina, I. (2002). LPG: A planner based on planning graphs with action costs, In Proceedings of the Sixth International Conference on AI Planning and Scheduling (AIPS’02), (pp. 13–22). AAAI Press.Google Scholar
  17. Heimbigner, D. M., & Wolf, A. L. (1996). Post-deployment configuration management. In Proceedings of the sixth international workshop on software configuration management, number 1167 in Lecture Notes in Computer Science (pp. 272–276). Springer-Verlag.Google Scholar
  18. Kramer, J., & Magee, J. (1985). Dynamic configuration for distributed systems. IEEE Transactions on Software Engineering, SE-11(4), 424–436.CrossRefGoogle Scholar
  19. Magee, J., & Kramer, J. (1996). Self organizing software architectures. In Proceedings of the second inter-national software architecture workshop (pp. 35–38).Google Scholar
  20. Mehta, N., Medvidovic, N., & Phadke, S. (1999). Towards a taxonomy of software connectors, technical report, Center for software engineering, University of Southern California, USC-CSE-99–529.Google Scholar
  21. Muscettola, N. (1994). HSTS: Integrating planning and scheduling. Intelligent Scheduling. Morgan Kaufmann.Google Scholar
  22. Paulo, J., Almeida, A., Wegdam, M., Ferreira Pires, L., & Sinderen, M. (2001). An approach to dynamic reconfiguration of distributed systems based on object-middleware. Proceedings of the 19th Brazilian Symposium on Computer Networks (SBRC 2001), Santa Catarina, Brazil.Google Scholar
  23. Penberthy, J., & Weld, D. (1994). Temporal planning with continuous change. In Proceedings of 12th National Conference. Artificial Intelligence.Google Scholar
  24. ECP-01 Planet Workshop on Automated Planning and Scheduling Technologies, 11 September 2001, Toledo, Spain ( Scholar
  25. Russell, S., & Norvig, P. (1995). Artificial intelligence: A modern approach, Prentice Hall.Google Scholar
  26. Rutherford, M. J., Anderson, K., Carzaniga, A., Heimbigner, D., & Wolf, A. L. (2002). Reconfiguration in the Enterprise JavaBean Component Model In Proceedings of the IFIP/ACM Working Conference on Component Deployment (pp. 67–81).Berlin.zbMATHGoogle Scholar
  27. Shrivastava, S., & Wheater, S. (1998). Architectural support for dynamic reconfiguration of large scale distributed applications. The 4th International Conference on Configurable Distributed Systems (CDS’98), Annapolis, Maryland, USA, May 4–6.Google Scholar
  28. Vere, S. (1983). Planning in time: Windows and durations for activities and goals IEEE Transactions on Pattern Analysis and Machine Intelligence, 5, 246–267.CrossRefGoogle Scholar

Copyright information

© Springer Science+Business Media, LLC 2007

Authors and Affiliations

  • Naveed Arshad
    • 1
    Email author
  • Dennis Heimbigner
    • 2
  • Alexander L. Wolf
    • 3
  1. 1.Department of Computer ScienceLUMSLahorePakistan
  2. 2.Department of Computer ScienceUniversity of Colorado at BoulderBoulderUSA
  3. 3.Department of ComputingImperial College LondonLondonUK

Personalised recommendations