Abstract
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.
Similar content being viewed by others
References
Agnew, B., Hofmeister, C. R., & Purtilo, J. (1994). Planning for change: A reconfiguration language for distributed systems. Distributed Systems Engineering, 1(5), 313–322.
Allen, J., & Koomen, J. (1983). Planning using a temporal world model. In Proceedings of 8th International Joint Conference On Artificial Intelligence, (pp. 741–747).
Allen, J. (1991). Planning as temporal reasoning. In Proceedings of Conference on knowledge representation and reasoning, (pp. 3–14).
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).
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 Society
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.
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.
Cook, J. E., & Dage, J. A. (1999). Highly reliable upgrading of components. 21st International Conference on Software Engineering (ICSE99), Los Angeles, CA.
Doherty, P., & Kvarnström, J. (2001). TALplanner: A temporal logic based planner. AI Magazine, Fall Issue.
Edelkamp, S., & Helmert M. (2001). The model checking integrated planning system AI-Magazine (AIMAG), (pp. 67–71). Fall.
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.
European Network of Excellence in AI Planning Web Site (http://planet.dfki.de/).
Fox, M., & Long, D. The third international planning competition: Temporal and metric planning. University of Durham, UK.
Garlan, D., Monroe, R., & Wile, D. (1997). Acme: An architecture description interchange language. Proceedings of CASCON 97 (pp. 169–183). Toronto, Ontario.
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.
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.
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.
Kramer, J., & Magee, J. (1985). Dynamic configuration for distributed systems. IEEE Transactions on Software Engineering, SE-11(4), 424–436.
Magee, J., & Kramer, J. (1996). Self organizing software architectures. In Proceedings of the second inter-national software architecture workshop (pp. 35–38).
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.
Muscettola, N. (1994). HSTS: Integrating planning and scheduling. Intelligent Scheduling. Morgan Kaufmann.
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.
Penberthy, J., & Weld, D. (1994). Temporal planning with continuous change. In Proceedings of 12th National Conference. Artificial Intelligence.
ECP-01 Planet Workshop on Automated Planning and Scheduling Technologies, 11 September 2001, Toledo, Spain (http://scom.hud.ac.uk/planet/ecp01_workshop/).
Russell, S., & Norvig, P. (1995). Artificial intelligence: A modern approach, Prentice Hall.
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.
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.
Vere, S. (1983). Planning in time: Windows and durations for activities and goals IEEE Transactions on Pattern Analysis and Machine Intelligence, 5, 246–267.
Acknowledgements
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.
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Arshad, N., Heimbigner, D. & Wolf, A.L. Deployment and dynamic reconfiguration planning for distributed software systems. Software Qual J 15, 265–281 (2007). https://doi.org/10.1007/s11219-007-9019-2
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11219-007-9019-2