{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,9,22]],"date-time":"2026-09-22T22:25:51Z","timestamp":1790115951305,"version":"4.0.1"},"reference-count":33,"publisher":"Springer Science and Business Media LLC","issue":"4","license":[{"start":{"date-parts":[[2021,7,4]],"date-time":"2021-07-04T00:00:00Z","timestamp":1625356800000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0"},{"start":{"date-parts":[[2021,7,4]],"date-time":"2021-07-04T00:00:00Z","timestamp":1625356800000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0"}],"funder":[{"DOI":"10.13039\/501100007514","name":"Universit\u00e0 di Pisa","doi-asserted-by":"crossref","id":[{"id":"10.13039\/501100007514","id-type":"DOI","asserted-by":"crossref"}]}],"content-domain":{"domain":["link.springer.com"],"crossmark-restriction":false},"short-container-title":["Computing"],"published-print":{"date-parts":[[2022,4]]},"abstract":"<jats:title>Abstract<\/jats:title><jats:p>Trans-cloud applications consist of multiple interacting components deployed across different cloud providers and at different service layers (IaaS and PaaS). In such complex deployment scenarios, fault handling and recovery need to deal with heterogeneous cloud offerings and to take into account inter-component dependencies. We propose a methodology for self-healing trans-cloud applications from failures occurring in application components or in the cloud services hosting them, both during deployment and while they are being operated. The proposed methodology enables reducing the time application components rely on faulted services, hence residing in \u201cunstable\u201d states where they can suddenly fail in cascade or exhibit erroneous behaviour. We also present an open-source prototype illustrating the feasibility of our proposal, which we have exploited to carry out an extensive evaluation based on controlled experiments and monkey testing.\n<\/jats:p>","DOI":"10.1007\/s00607-021-00977-z","type":"journal-article","created":{"date-parts":[[2021,7,4]],"date-time":"2021-07-04T10:02:38Z","timestamp":1625392958000},"page":"809-833","update-policy":"https:\/\/doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":8,"title":["Self-healing trans-cloud applications"],"prefix":"10.1007","volume":"104","author":[{"given":"Antonio","family":"Brogi","sequence":"first","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Jose","family":"Carrasco","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Francisco","family":"Dur\u00e1n","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Ernesto","family":"Pimentel","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-2435-3543","authenticated-orcid":false,"given":"Jacopo","family":"Soldani","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"297","published-online":{"date-parts":[[2021,7,4]]},"reference":[{"key":"977_CR1","doi-asserted-by":"publisher","unstructured":"Alhosban A, Hashmi K, Malik Z, Medjahed B (2013) Self-healing framework for cloud-based services. In: International conference on computer systems and applications (AICCSA). IEEE, pp 1\u20137. https:\/\/doi.org\/10.1109\/AICCSA.2013.6616511","DOI":"10.1109\/AICCSA.2013.6616511"},{"key":"977_CR2","doi-asserted-by":"publisher","unstructured":"Ardagna D, Di Nitto E, Casale G, Petcu D, Mohagheghi P, Mosser S, Matthews P, Gericke A, Ballagny C, D\u2019Andria F, Nechifor C, Sheridan C (2012) MODAClouds: a model-driven approach for the design and execution of applications on multiple clouds. In: International workshop on modeling in software engineering (MiSE). IEEE, pp 50\u201356. https:\/\/doi.org\/10.1109\/MISE.2012.6226014","DOI":"10.1109\/MISE.2012.6226014"},{"issue":"4","key":"977_CR3","doi-asserted-by":"publisher","first-page":"50","DOI":"10.1145\/1721654.1721672","volume":"53","author":"M Armbrust","year":"2010","unstructured":"Armbrust M, Fox A, Griffith R, Joseph AD, Katz R, Konwinski A, Lee G, Patterson D, Rabkin A, Stoica I, Zaharia M (2010) A view of cloud computing. Commun ACM 53(4):50\u201358. https:\/\/doi.org\/10.1145\/1721654.1721672","journal-title":"Commun ACM"},{"issue":"3","key":"977_CR4","doi-asserted-by":"publisher","first-page":"35","DOI":"10.1109\/MS.2016.60","volume":"33","author":"A Basiri","year":"2016","unstructured":"Basiri A, Behnam N, de Rooij R, Hochstein L, Kosewski L, Reynolds J, Rosenthal C (2016) Chaos engineering. IEEE Softw 33(3):35\u201341. https:\/\/doi.org\/10.1109\/MS.2016.60","journal-title":"IEEE Softw"},{"key":"977_CR5","doi-asserted-by":"publisher","first-page":"189","DOI":"10.1016\/j.jss.2018.02.005","volume":"139","author":"A Brogi","year":"2018","unstructured":"Brogi A, Canciani A, Soldani J (2018) Fault-aware management protocols for multi-component applications. J Syst Softw 139:189\u2013210. https:\/\/doi.org\/10.1016\/j.jss.2018.02.005","journal-title":"J Syst Softw"},{"key":"977_CR6","doi-asserted-by":"publisher","unstructured":"Brogi A, Carrasco J, Cubo J, D\u2019Andria F, Di Nitto E, Guerriero M, P\u00e9rez D, Pimentel E, Soldani J (2016) SeaClouds: an open reference architecture for multi-cloud governance. In: Software architecture. Lecture notes in computer science, vol 9839. Springer, pp 334\u2013338. https:\/\/doi.org\/10.1007\/978-3-319-48992-6_25","DOI":"10.1007\/978-3-319-48992-6_25"},{"key":"977_CR7","doi-asserted-by":"publisher","unstructured":"Brogi A, Carrasco J, Dur\u00e1n F, Pimentel E, Soldani J (2019) Robust management of trans-cloud applications. In: International conference on cloud computing (CLOUD). IEEE, pp 219\u2013223. https:\/\/doi.org\/10.1109\/CLOUD.2019.00046","DOI":"10.1109\/CLOUD.2019.00046"},{"key":"977_CR8","doi-asserted-by":"publisher","DOI":"10.1002\/spe.2625","author":"A Brogi","year":"2018","unstructured":"Brogi A, Rinaldi L, Soldani J (2018) TosKer: a synergy between TOSCA and docker for orchestrating multicomponent applications. Softw Pract Exp. https:\/\/doi.org\/10.1002\/spe.2625","journal-title":"Softw Pract Exp"},{"issue":"11","key":"977_CR9","doi-asserted-by":"publisher","first-page":"60","DOI":"10.1109\/MC.2004.219","volume":"37","author":"G Candea","year":"2004","unstructured":"Candea G, Brown AB, Fox A, Patterson D (2004) Recovery-oriented computing: building multitier dependability. Computer 37(11):60\u201367. https:\/\/doi.org\/10.1109\/MC.2004.219","journal-title":"Computer"},{"key":"977_CR10","doi-asserted-by":"publisher","first-page":"167","DOI":"10.1016\/j.csi.2018.01.005","volume":"58","author":"J Carrasco","year":"2018","unstructured":"Carrasco J, Dur\u00e1n F, Pimentel E (2018) Trans-cloud: CAMP\/TOSCA-based bidimensional cross-cloud. Comput Stand Interfaces 58:167\u2013179. https:\/\/doi.org\/10.1016\/j.csi.2018.01.005","journal-title":"Comput Stand Interfaces"},{"key":"977_CR11","doi-asserted-by":"publisher","DOI":"10.1016\/j.csi.2019.103392","author":"J Carrasco","year":"2020","unstructured":"Carrasco J, Dur\u00e1n F, Pimentel E (2020) Live migration of trans-cloud applications. Comput Stand Interfaces. https:\/\/doi.org\/10.1016\/j.csi.2019.103392","journal-title":"Comput Stand Interfaces"},{"key":"977_CR12","doi-asserted-by":"publisher","unstructured":"Chen G, Jin H, Zou D, Zhou BB, Qiang W, Hu G (2010) Shelp: automatic self-healing for multiple application instances in a virtual machine environment. In: International conference on cluster computing (CLUSTER). IEEE, pp 97\u2013106. https:\/\/doi.org\/10.1109\/CLUSTER.2010.18","DOI":"10.1109\/CLUSTER.2010.18"},{"key":"977_CR13","doi-asserted-by":"publisher","unstructured":"Cotroneo D, De\u00a0Simone L, Liguori P, Natella R, Bidokhti N (2019) How bad can a bug get? An empirical analysis of software failures in the openstack cloud computing platform. In: Proceedings of the 2019 27th ACM joint meeting on European software engineering conference and symposium on the foundations of software engineering, ESEC\/FSE 2019. ACM, pp 200\u2013211. https:\/\/doi.org\/10.1145\/3338906.3338916","DOI":"10.1145\/3338906.3338916"},{"key":"977_CR14","doi-asserted-by":"publisher","unstructured":"Dai Y, Xiang Y, Zhang G (2009) Self-healing and hybrid diagnosis in cloud computing. In: International conference on cloud computing (CloudCom). Lecture notes in computer science, vol 5931. Springer, pp 45\u201356. https:\/\/doi.org\/10.1007\/978-3-642-10665-1_5","DOI":"10.1007\/978-3-642-10665-1_5"},{"key":"977_CR15","first-page":"170","volume":"11","author":"BK Dewangan","year":"2019","unstructured":"Dewangan BK, Agarwal A, Venkatadri M, Pasricha A (2019) Design of self-management aware autonomic resource scheduling scheme in cloud. Int J Comput Inf Syst Ind Manag Appl 11:170\u2013177","journal-title":"Int J Comput Inf Syst Ind Manag Appl"},{"key":"977_CR16","unstructured":"Endres C, Breitenb\u00fccher U, Falkenthal M, Kopp O, Leymann F, Wettinger J (2017) Declarative vs. imperative: two modeling patterns for the automated deployment of applications. In: International conference on pervasive patterns and applications (PATTERNS). Xpert, pp 22\u201327"},{"key":"977_CR17","doi-asserted-by":"publisher","unstructured":"Etchevers X, Coupaye T, Boyer F, de\u00a0Palma N (2011) Self-configuration of distributed applications in the cloud. In: International confernce on cloud computing (CLOUD). IEEE, pp 668\u2013675. https:\/\/doi.org\/10.1109\/CLOUD.2011.65","DOI":"10.1109\/CLOUD.2011.65"},{"issue":"4","key":"977_CR18","first-page":"29","volume":"108","author":"P Gupta","year":"2014","unstructured":"Gupta P, Gupta C (2014) Evaluating the failures of data centers in cloud computing. Int J Comput Appl 108(4):29\u201334","journal-title":"Int J Comput Appl"},{"key":"977_CR19","doi-asserted-by":"publisher","DOI":"10.1201\/9781420006742","volume-title":"What every engineer should know about software engineering","author":"P Laplante","year":"2007","unstructured":"Laplante P (2007) What every engineer should know about software engineering. CRC Press, Cambridge"},{"key":"977_CR20","doi-asserted-by":"publisher","unstructured":"Li W, Zhang P, Yang Z (2012) A framework for self-healing service compositions in cloud computing environments. In: International conference on web services (ICWS). IEEE, pp 690\u2013691. https:\/\/doi.org\/10.1109\/ICWS.2012.109","DOI":"10.1109\/ICWS.2012.109"},{"key":"977_CR21","doi-asserted-by":"crossref","unstructured":"Li X, Li K, Pang X, Wang Y (2017) An orchestration based cloud auto-healing service framework. In: International conference on edge computing (EDGE). IEEE, pp 190\u2013193","DOI":"10.1109\/IEEE.EDGE.2017.33"},{"key":"977_CR22","doi-asserted-by":"crossref","unstructured":"Lin Q, Zhang H, Lou JG, Zhang Y, Chen X (2016) Log clustering based problem identification for online service systems. In: 38th international conference on software engineering companion (ICSE-C). IEEE, pp 102\u2013111","DOI":"10.1145\/2889160.2889232"},{"key":"977_CR23","doi-asserted-by":"publisher","unstructured":"Mfula H, Nurminen JK (2018) Self-healing cloud services in private multi-clouds. In: International conference on high performance computing and simulation (HPCS), pp 165\u2013170. https:\/\/doi.org\/10.1109\/HPCS.2018.00041","DOI":"10.1109\/HPCS.2018.00041"},{"key":"977_CR24","volume-title":"Release it! Design and deploy production-ready software","author":"M Nygard","year":"2007","unstructured":"Nygard M (2007) Release it! Design and deploy production-ready software. Pragmatic Bookshelf, Raleigh"},{"key":"977_CR25","unstructured":"OASIS (2016) TOSCA Simple profile in YAML, Version 1.0"},{"issue":"3","key":"977_CR26","doi-asserted-by":"publisher","first-page":"24","DOI":"10.1109\/MCC.2015.51","volume":"2","author":"C Pahl","year":"2015","unstructured":"Pahl C (2015) Containerization and the PaaS cloud. IEEE Cloud Comput 2(3):24\u201331","journal-title":"IEEE Cloud Comput"},{"key":"977_CR27","doi-asserted-by":"crossref","unstructured":"Quint P, Kratzke N (2018) Towards a lightweight multi-cloud DSL for elastic and transferable cloud-native applications. In: International conference on cloud computing and services science (CLOSER), pp 400\u2013408","DOI":"10.5220\/0006683804000408"},{"key":"977_CR28","doi-asserted-by":"crossref","unstructured":"Ray B, Saha A, Khatua S, Roy S (2020) Proactive fault-tolerance technique to enhance reliability of cloud service in cloud federation environment. Trans Cloud Comput","DOI":"10.1109\/TCC.2020.2968522"},{"key":"977_CR29","doi-asserted-by":"publisher","DOI":"10.1002\/cpe.4834","author":"S Singh Gill","year":"2019","unstructured":"Singh Gill S, Chana I, Singh M, Buyya R (2019) RADAR: self-configuring and self-healing in resource management for enhancing quality of cloud services. Concurr Comput Pract Exp. https:\/\/doi.org\/10.1002\/cpe.4834","journal-title":"Concurr Comput Pract Exp"},{"key":"977_CR30","doi-asserted-by":"publisher","unstructured":"Stack P, Xiong H, Mersel D, Makhloufi M, Terpend G, Dong D (2017) Self-healing in a decentralised cloud management system. In: CloudNG@EuroSys. ACM, pp 3:1\u20133:6. https:\/\/doi.org\/10.1145\/3068126.3068129","DOI":"10.1145\/3068126.3068129"},{"issue":"1","key":"977_CR31","doi-asserted-by":"publisher","first-page":"112","DOI":"10.1109\/TCC.2017.2745560","volume":"8","author":"L Tom\u00e1s","year":"2017","unstructured":"Tom\u00e1s L, Kokkinos P, Anagnostopoulos V, Feder O, Kyriazis D, Meth K, Varvarigos E, Varvarigou T (2017) Disaster recovery layer for distributed openstack deployments. Trans Cloud Comput 8(1):112\u2013123","journal-title":"Trans Cloud Comput"},{"issue":"4","key":"977_CR32","doi-asserted-by":"publisher","first-page":"1223","DOI":"10.1109\/TCC.2017.2780098","volume":"8","author":"G Xie","year":"2020","unstructured":"Xie G, Zeng G, Li R, Li K (2020) Quantitative fault-tolerance for reliable workflows on heterogeneous IAAS clouds. Trans Cloud Comput 8(4):1223\u20131236","journal-title":"Trans Cloud Comput"},{"key":"977_CR33","doi-asserted-by":"crossref","unstructured":"Yuan Y, Shi W, Liang B, Qin B (2019) An approach to cloud execution failure diagnosis based on exception logs in openstack. In: 12th international conference on cloud computing (CLOUD). IEEE, pp 124\u2013131","DOI":"10.1109\/CLOUD.2019.00031"}],"container-title":["Computing"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/s00607-021-00977-z.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/link.springer.com\/article\/10.1007\/s00607-021-00977-z\/fulltext.html","content-type":"text\/html","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/s00607-021-00977-z.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2022,3,31]],"date-time":"2022-03-31T18:11:41Z","timestamp":1648750301000},"score":1,"resource":{"primary":{"URL":"https:\/\/link.springer.com\/10.1007\/s00607-021-00977-z"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2021,7,4]]},"references-count":33,"journal-issue":{"issue":"4","published-print":{"date-parts":[[2022,4]]}},"alternative-id":["977"],"URL":"https:\/\/doi.org\/10.1007\/s00607-021-00977-z","relation":{},"ISSN":["0010-485X","1436-5057"],"issn-type":[{"value":"0010-485X","type":"print"},{"value":"1436-5057","type":"electronic"}],"subject":[],"published":{"date-parts":[[2021,7,4]]},"assertion":[{"value":"9 April 2021","order":1,"name":"received","label":"Received","group":{"name":"ArticleHistory","label":"Article History"}},{"value":"24 June 2021","order":2,"name":"accepted","label":"Accepted","group":{"name":"ArticleHistory","label":"Article History"}},{"value":"4 July 2021","order":3,"name":"first_online","label":"First Online","group":{"name":"ArticleHistory","label":"Article History"}}]}}