{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,8,24]],"date-time":"2025-08-24T01:30:31Z","timestamp":1755999031435,"version":"3.40.3"},"publisher-location":"Cham","reference-count":25,"publisher":"Springer International Publishing","isbn-type":[{"type":"print","value":"9783030994280"},{"type":"electronic","value":"9783030994297"}],"license":[{"start":{"date-parts":[[2022,1,1]],"date-time":"2022-01-01T00:00:00Z","timestamp":1640995200000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0"},{"start":{"date-parts":[[2022,3,29]],"date-time":"2022-03-29T00:00:00Z","timestamp":1648512000000},"content-version":"vor","delay-in-days":87,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0"}],"content-domain":{"domain":["link.springer.com"],"crossmark-restriction":false},"short-container-title":[],"published-print":{"date-parts":[[2022]]},"abstract":"<jats:title>Abstract<\/jats:title><jats:p>Large distributed systems with an emphasis on adaptability are now considered a necessity in many domains, yet reconfiguration of these systems is still largely carried out in an ad hoc fashion, a process that is both inefficient and error-prone. In this paper, we tackle the planification problem for the reconfiguration of distributed systems in the component-based reconfiguration model Concerto. Specifically, given some tasks to execute and a desired final state of the system, we show how to compute a reconfiguration plan that guarantees satisfaction of inter-component dependencies and is also optimized for parallel execution. Our technique relies on an SMT solver to compute the required dependencies between components and ultimately schedule the reconfiguration. We illustrate the use of this technique on a variety of synthetic examples as well as a real use case in the context of an OpenStack system.<\/jats:p>","DOI":"10.1007\/978-3-030-99429-7_15","type":"book-chapter","created":{"date-parts":[[2022,3,28]],"date-time":"2022-03-28T20:02:48Z","timestamp":1648497768000},"page":"268-287","update-policy":"https:\/\/doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":8,"title":["SMT-Based Planning Synthesis for Distributed System Reconfigurations"],"prefix":"10.1007","author":[{"ORCID":"https:\/\/orcid.org\/0000-0003-4751-380X","authenticated-orcid":false,"given":"Simon","family":"Robillard","sequence":"first","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-2573-2147","authenticated-orcid":false,"given":"H\u00e9l\u00e8ne","family":"Coullon","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"297","published-online":{"date-parts":[[2022,3,29]]},"reference":[{"key":"15_CR1","doi-asserted-by":"crossref","unstructured":"Arshad, N., Heimbigner, D., Wolf, A.L.: Deployment and dynamic reconfiguration planning for distributed software systems. In: Proceedings. 15th IEEE International Conference on Tools with Artificial Intelligence. pp. 39\u201346. IEEE (2003)","DOI":"10.1109\/TAI.2003.1250168"},{"key":"15_CR2","unstructured":"Barrett, C., Fontaine, P., Tinelli, C.: The satisfiability modulo theories library (SMT-LIB). www.SMT-LIB.org (2016)"},{"key":"15_CR3","doi-asserted-by":"crossref","unstructured":"Barrett, C., Shikanian, I., Tinelli, C.: An abstract decision procedure for a theory of inductive data types. Journal on Satisfiability, Boolean Modeling and Computation 3, 21\u201346 (2007)","DOI":"10.3233\/SAT190028"},{"key":"15_CR4","doi-asserted-by":"crossref","unstructured":"Bisseling, R.H.: Parallel Scientific Computation: A Structured Approach Using BSP. Oxford Unviersity Press (2020)","DOI":"10.1093\/oso\/9780198788348.001.0001"},{"key":"15_CR5","doi-asserted-by":"crossref","unstructured":"Boyer, F., Gruber, O., Pous, D.: Robust reconfigurations of component assemblies. In: 35th International Conference on Software Engineering (ICSE). pp. 13\u201322 (2013)","DOI":"10.1109\/ICSE.2013.6606547"},{"key":"15_CR6","doi-asserted-by":"crossref","unstructured":"Boyer, F., Gruber, O., Pous, D.: Robust reconfigurations of component assemblies. In: 2013 35th International Conference on Software Engineering (ICSE). pp. 13\u201322. IEEE (2013)","DOI":"10.1109\/ICSE.2013.6606547"},{"key":"15_CR7","doi-asserted-by":"crossref","unstructured":"Cansado, A., Canal, C., Sala\u00fcn, G., Cubo, J.: A formal framework for structural reconfiguration of components under behavioural adaptation. Electronic Notes in Theoretical Computer Science 263, 95\u2013110 (2010)","DOI":"10.1016\/j.entcs.2010.05.006"},{"key":"15_CR8","unstructured":"Chardet, M., Coullon, H., P\u00e9rez, C., Pertin, D., Servantie, C., Robillard, S.: Enhancing separation of concerns, parallelism, and formalism in distributed software deployment with Madeus (2020), https:\/\/hal.inria.fr\/hal-02737859, preprint"},{"key":"15_CR9","doi-asserted-by":"crossref","unstructured":"Chardet, M., Coullon, H., Robillard, S.: Toward safe and efficient reconfiguration with Concerto. Science of Computer Programming 203 (2021)","DOI":"10.1016\/j.scico.2020.102582"},{"key":"15_CR10","doi-asserted-by":"crossref","unstructured":"Chardet, M., H\u00e9l\u00e8ne, C., Perez, C.: Predictable efficiency for reconfiguration of service-oriented systems with Concerto. In: 2020 20th IEEE\/ACM International Symposium on Cluster, Cloud and Internet Computing (CCGRID). pp. 340\u2013349 (2020).","DOI":"10.1109\/CCGrid49817.2020.00-59"},{"key":"15_CR11","doi-asserted-by":"crossref","unstructured":"Di\u00a0Cosmo, R., Lienhardt, M., Treinen, R., Zacchiroli, S., Zwolakowski, J., Eiche, A., Agahi, A.: Automated synthesis and deployment of cloud applications. In: Proceedings of the 29th ACM\/IEEE International Conference on Automated Software Engineering. p. 211\u2013222 (2014)","DOI":"10.1145\/2642937.2642980"},{"key":"15_CR12","doi-asserted-by":"crossref","unstructured":"Di\u00a0Cosmo, R., Mauro, J., Zacchiroli, S., Zavattaro, G.: Aeolus: A component model for the cloud. Information and Computation pp. 100\u2013121 (2014)","DOI":"10.1016\/j.ic.2014.11.002"},{"key":"15_CR13","doi-asserted-by":"crossref","unstructured":"El\u00a0Maghraoui, K., Meghranjani, A., Eilam, T., Kalantar, M., Konstantinou, A.V.: Model driven provisioning: Bridging the gap between declarative object models and procedural provisioning tools. In: ACM\/IFIP\/USENIX International Conference on Distributed Systems Platforms and Open Distributed Processing. pp. 404\u2013423. Springer (2006)","DOI":"10.1007\/11925071_21"},{"key":"15_CR14","doi-asserted-by":"crossref","unstructured":"Etchevers, X., Coupaye, T., Boyer, F., De\u00a0Palma, N.: Self-configuration of distributed applications in the cloud. In: 2011 IEEE 4th International Conference on Cloud Computing. pp. 668\u2013675. IEEE (2011)","DOI":"10.1109\/CLOUD.2011.65"},{"key":"15_CR15","doi-asserted-by":"crossref","unstructured":"Fischer, J., Majumdar, R., Esmaeilsabzali, S.: Engage: A deployment management system. In: ACM SIGPLAN PLDI. pp. 263\u2013274 (2012)","DOI":"10.1145\/2345156.2254096"},{"key":"15_CR16","doi-asserted-by":"crossref","unstructured":"Gunawi, H.S., Hao, M., Suminto, R.O., Laksono, A., Satria, A.D., Adityatama, J., Eliazar, K.J.: Why does the cloud stop computing? lessons from hundreds of service outages. In: Proceedings of the Seventh ACM Symposium on Cloud Computing. pp. 1\u201316 (2016)","DOI":"10.1145\/2987550.2987583"},{"key":"15_CR17","unstructured":"Hewson, J.A., Anderson, P., Gordon, A.: A declarative approach to automated configuration. In: lisa\u201912: Proceedings of the 26th international conference on Large Installation System Administration: strategies, tools, and techniques. pp. 51\u201366 (2012)"},{"key":"15_CR18","doi-asserted-by":"crossref","unstructured":"Keller, A., Hellerstein, J.L., Wolf, J.L., Wu, K.L., Krishnan, V.: The CHAMPS system: Change management with planning and scheduling. In: 2004 IEEE\/IFIP Network Operations and Management Symposium (IEEE Cat. No. 04CH37507). vol.\u00a01, pp. 395\u2013408. IEEE (2004)","DOI":"10.1109\/NOMS.2004.1317679"},{"key":"15_CR19","doi-asserted-by":"crossref","unstructured":"Kephart, J.O., Chess, D.M.: The vision of autonomic computing. Computer (2003)","DOI":"10.1109\/MC.2003.1160055"},{"key":"15_CR20","doi-asserted-by":"crossref","unstructured":"Kikuchi, S., Tsuchiya, S., Hiraishi, K.: Synthesis of configuration change procedure using model finder. IEICE TRANSACTIONS on Information and Systems 96(8), 1696\u20131706 (2013)","DOI":"10.1587\/transinf.E96.D.1696"},{"key":"15_CR21","doi-asserted-by":"publisher","unstructured":"Kratzke, N., Quint, P.C.: Understanding cloud-native applications after 10 years of cloud computing - a systematic mapping study. Journal of Systems and Software 126, 1\u201316 (2017). https:\/\/doi.org\/10.1016\/j.jss.2017.01.001","DOI":"10.1016\/j.jss.2017.01.001"},{"key":"15_CR22","doi-asserted-by":"crossref","unstructured":"Lascu, T.A., Mauro, J., Zavattaro, G.: A planning tool supporting the deployment of cloud applications. In: 2013 IEEE 25th International Conference on Tools with Artificial Intelligence. pp. 213\u2013220 (2013)","DOI":"10.1109\/ICTAI.2013.41"},{"key":"15_CR23","doi-asserted-by":"crossref","unstructured":"de\u00a0Moura, L., Bj\u00f8rner, N.: Z3: An efficient SMT solver. In: Tools and Algorithms for the Construction and Analysis of Systems. LNCS, vol.\u00a04963, pp. 337\u2013340. Springer (2008)","DOI":"10.1007\/978-3-540-78800-3_24"},{"key":"15_CR24","unstructured":"Nadareishvili, I., Mitra, R., McLarty, M., Amundsen, M.: Microservice Architecture. O\u2019Reilly Media, Inc. (2016)"},{"key":"15_CR25","doi-asserted-by":"crossref","unstructured":"Taibi, D., Lenarduzzi, V., Pahl, C.: Architectural patterns for microservices: A systematic mapping study. In: CLOSER (2018)","DOI":"10.5220\/0006798302210232"}],"container-title":["Lecture Notes in Computer Science","Fundamental Approaches to Software Engineering"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/978-3-030-99429-7_15","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2024,9,21]],"date-time":"2024-09-21T04:23:26Z","timestamp":1726892606000},"score":1,"resource":{"primary":{"URL":"https:\/\/link.springer.com\/10.1007\/978-3-030-99429-7_15"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2022]]},"ISBN":["9783030994280","9783030994297"],"references-count":25,"URL":"https:\/\/doi.org\/10.1007\/978-3-030-99429-7_15","relation":{},"ISSN":["0302-9743","1611-3349"],"issn-type":[{"type":"print","value":"0302-9743"},{"type":"electronic","value":"1611-3349"}],"subject":[],"published":{"date-parts":[[2022]]},"assertion":[{"value":"29 March 2022","order":1,"name":"first_online","label":"First Online","group":{"name":"ChapterHistory","label":"Chapter History"}},{"value":"FASE","order":1,"name":"conference_acronym","label":"Conference Acronym","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"International Conference on Fundamental Approaches to Software Engineering","order":2,"name":"conference_name","label":"Conference Name","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"Munich","order":3,"name":"conference_city","label":"Conference City","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"Germany","order":4,"name":"conference_country","label":"Conference Country","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"2022","order":5,"name":"conference_year","label":"Conference Year","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"4 April 2022","order":7,"name":"conference_start_date","label":"Conference Start Date","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"5 April 2022","order":8,"name":"conference_end_date","label":"Conference End Date","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"25","order":9,"name":"conference_number","label":"Conference Number","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"fase2022","order":10,"name":"conference_id","label":"Conference ID","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"https:\/\/etaps.org\/2022\/fase","order":11,"name":"conference_url","label":"Conference URL","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"Double-blind","order":1,"name":"type","label":"Type","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}},{"value":"EasyChair","order":2,"name":"conference_management_system","label":"Conference Management System","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}},{"value":"61","order":3,"name":"number_of_submissions_sent_for_review","label":"Number of Submissions Sent for Review","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}},{"value":"17","order":4,"name":"number_of_full_papers_accepted","label":"Number of Full Papers Accepted","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}},{"value":"0","order":5,"name":"number_of_short_papers_accepted","label":"Number of Short Papers Accepted","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}},{"value":"28% - The value is computed by the equation \"Number of Full Papers Accepted \/ Number of Submissions Sent for Review * 100\" and then rounded to a whole number.","order":6,"name":"acceptance_rate_of_full_papers","label":"Acceptance Rate of Full Papers","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}},{"value":"3","order":7,"name":"average_number_of_reviews_per_paper","label":"Average Number of Reviews per Paper","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}},{"value":"7","order":8,"name":"average_number_of_papers_per_reviewer","label":"Average Number of Papers per Reviewer","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}},{"value":"Yes","order":9,"name":"external_reviewers_involved","label":"External Reviewers Involved","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}}]}}