{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,4,21]],"date-time":"2026-04-21T14:59:08Z","timestamp":1776783548135,"version":"3.51.2"},"reference-count":53,"publisher":"Association for Computing Machinery (ACM)","issue":"2","license":[{"start":{"date-parts":[[2018,2,2]],"date-time":"2018-02-02T00:00:00Z","timestamp":1517529600000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Internet Technol."],"published-print":{"date-parts":[[2018,5,31]]},"abstract":"<jats:p>A cloud is a distributed Internet-based software system providing resources as tiered services. Through service-orientation and virtualization for resource provisioning, cloud applications can be deployed and managed dynamically. We discuss the building blocks of an architectural style for cloud-based software systems. We capture style-defining architectural principles and patterns for control-theoretic, model-based architectures for cloud software. While service orientation is agreed on in the form of service-oriented architecture and microservices, challenges resulting from multi-tiered, distributed and heterogeneous cloud architectures cause uncertainty that has not been sufficiently addressed. We define principles and patterns needed for effective development and operation of adaptive cloud-native systems.<\/jats:p>","DOI":"10.1145\/3104028","type":"journal-article","created":{"date-parts":[[2018,2,6]],"date-time":"2018-02-06T18:13:28Z","timestamp":1517940808000},"page":"1-23","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":87,"title":["Architectural Principles for Cloud Software"],"prefix":"10.1145","volume":"18","author":[{"ORCID":"https:\/\/orcid.org\/0000-0002-9049-212X","authenticated-orcid":false,"given":"Claus","family":"Pahl","sequence":"first","affiliation":[{"name":"Software and Systems Engineering, Free University of Bozen-Bolzano, Italy"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Pooyan","family":"Jamshidi","sequence":"additional","affiliation":[{"name":"Department of Computer Science, Carnegie Mellon University, Pittsburgh, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Olaf","family":"Zimmermann","sequence":"additional","affiliation":[{"name":"Institute for Software, Hochschule f\u00fcr Technik Rapperswil, Switzerland"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2018,2,2]]},"reference":[{"key":"e_1_2_1_1_1","doi-asserted-by":"publisher","DOI":"10.1002\/smr.1643"},{"key":"e_1_2_1_2_1","doi-asserted-by":"publisher","DOI":"10.5555\/1855007"},{"key":"e_1_2_1_3_1","volume-title":"Proceedings of the European Conference on Service-Oriented and Cloud Computing (ESOCC\u201916)","author":"Arabnejad H.","unstructured":"H. Arabnejad , P. Jamshidi , G. Estrada , N. El Ioini , and C. Pahl . 2016. An auto-scaling cloud controller using fuzzy Q-learning\u2014Implementation in openstack . In Proceedings of the European Conference on Service-Oriented and Cloud Computing (ESOCC\u201916) . H. Arabnejad, P. Jamshidi, G. Estrada, N. El Ioini, and C. Pahl. 2016. An auto-scaling cloud controller using fuzzy Q-learning\u2014Implementation in openstack. In Proceedings of the European Conference on Service-Oriented and Cloud Computing (ESOCC\u201916)."},{"key":"e_1_2_1_4_1","doi-asserted-by":"publisher","DOI":"10.1109\/CCGRID.2017.15"},{"key":"e_1_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1109\/MS.2016.64"},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1007\/s00450-012-0234-0"},{"key":"e_1_2_1_7_1","volume-title":"Technical Report SPEC-RG-2015-01, SPEC Research Group (RG) DevOps Performance. https:\/\/arxiv.org\/abs\/1508.04752.","author":"Brunnert A.","year":"2015","unstructured":"A. Brunnert , A. van Hoorn , F. Willnecker , A. Danciu , W. Hasselbring , C. Heger , N. Herbst , P. Jamshidi , R. Jung , J. von Kistowski , A. Koziolek , J. Kross , S. Spinner , C. V\u00f6gele , J. Walter , and A. Wert . 2015 . Performance-oriented DevOps : A research agenda. Technical Report SPEC-RG-2015-01, SPEC Research Group (RG) DevOps Performance. https:\/\/arxiv.org\/abs\/1508.04752. A. Brunnert, A. van Hoorn, F. Willnecker, A. Danciu, W. Hasselbring, C. Heger, N. Herbst, P. Jamshidi, R. Jung, J. von Kistowski, A. Koziolek, J. Kross, S. Spinner, C. V\u00f6gele, J. Walter, and A. Wert. 2015. Performance-oriented DevOps: A research agenda. Technical Report SPEC-RG-2015-01, SPEC Research Group (RG) DevOps Performance. https:\/\/arxiv.org\/abs\/1508.04752."},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.5555\/2866597.2867105"},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.1007\/11558569_5"},{"key":"e_1_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-02161-9_1"},{"key":"e_1_2_1_11_1","volume-title":"Workshop Generative Techniques in the Context of the Model Driven Architecture. 1--17","author":"Czarnecki K.","unstructured":"K. Czarnecki and S. Helsen . 2003. Classification of model transformation approaches . In Workshop Generative Techniques in the Context of the Model Driven Architecture. 1--17 . K. Czarnecki and S. Helsen. 2003. Classification of model transformation approaches. In Workshop Generative Techniques in the Context of the Model Driven Architecture. 1--17."},{"key":"e_1_2_1_12_1","volume-title":"Software engineering for self-adaptive systems: A second research roadmap","author":"De Lemos R.","unstructured":"R. De Lemos , H. Giese , H. A. M\u00fcller , M. Shaw , J. Andersson , M. Litoiu , B. Schmerl , G. Tamura , N. M. Villegas , T. Vogel , and others. 2013. Software engineering for self-adaptive systems: A second research roadmap . In Software Engineering for Self-Adaptive Systems II. Springer , 1--32. R. De Lemos, H. Giese, H. A. M\u00fcller, M. Shaw, J. Andersson, M. Litoiu, B. Schmerl, G. Tamura, N. M. Villegas, T. Vogel, and others. 2013. Software engineering for self-adaptive systems: A second research roadmap. In Software Engineering for Self-Adaptive Systems II. Springer, 1--32."},{"key":"e_1_2_1_13_1","volume-title":"Service-oriented Architecture: Concepts, Technology, and Design. Pearson Education.","author":"Erl T.","year":"2005","unstructured":"T. Erl . 2005 . Service-oriented Architecture: Concepts, Technology, and Design. Pearson Education. T. Erl. 2005. Service-oriented Architecture: Concepts, Technology, and Design. Pearson Education."},{"key":"e_1_2_1_14_1","doi-asserted-by":"crossref","unstructured":"N. Esfahani and S. Malek. 2013. Uncertainty in self-adaptive software systems. In Software Engineering for Self-Adaptive Systems II. Springer 214--238.  N. Esfahani and S. Malek. 2013. Uncertainty in self-adaptive software systems. In Software Engineering for Self-Adaptive Systems II. Springer 214--238.","DOI":"10.1007\/978-3-642-35813-5_9"},{"key":"e_1_2_1_15_1","volume-title":"Proceedings of the 10th International Workshop on Feedback Computing.","author":"Farokhi S.","unstructured":"S. Farokhi , P. Jamshidi , I. Brandic , and E. Elmroth . 2015. Self-adaptation challenges for cloud-based applications: A control theoretic perspective . In Proceedings of the 10th International Workshop on Feedback Computing. S. Farokhi, P. Jamshidi, I. Brandic, and E. Elmroth. 2015. Self-adaptation challenges for cloud-based applications: A control theoretic perspective. In Proceedings of the 10th International Workshop on Feedback Computing."},{"key":"e_1_2_1_16_1","doi-asserted-by":"crossref","unstructured":"C. Fehling F. Leymann R. Retter W. Schupeck and P. Arbitter. 2014. Cloud computing patterns. Springer-Verlag Wien.  C. Fehling F. Leymann R. Retter W. Schupeck and P. Arbitter. 2014. Cloud computing patterns. Springer-Verlag Wien.","DOI":"10.1007\/978-3-7091-1568-8"},{"key":"e_1_2_1_17_1","volume-title":"Proceedings of the International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS\u20192015)","author":"Filieri A.","unstructured":"A. Filieri , M. Maggio , K. Angelopoulos , N. D\u2019Ippolito , I. Gerostathopoulos , A. Hempel , H. Hoffmann , P. Jamshidi , E. Kalyvianaki , C. Klein , F. Krikava , S. Misailovic , A. V. Papadopoulos , S. Ray , A. M. Sharifloo , S. Shevtsov , M. Ujma , and T. Vogel . 2015. Software engineering meets control theory . In Proceedings of the International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS\u20192015) . A. Filieri, M. Maggio, K. Angelopoulos, N. D\u2019Ippolito, I. Gerostathopoulos, A. Hempel, H. Hoffmann, P. Jamshidi, E. Kalyvianaki, C. Klein, F. Krikava, S. Misailovic, A. V. Papadopoulos, S. Ray, A. M. Sharifloo, S. Shevtsov, M. Ujma, and T. Vogel. 2015. Software engineering meets control theory. In Proceedings of the International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS\u20192015)."},{"key":"e_1_2_1_18_1","doi-asserted-by":"publisher","DOI":"10.1145\/2593812.2593813"},{"key":"e_1_2_1_19_1","doi-asserted-by":"crossref","unstructured":"D. Garlan and M. Shaw. 1994. An Introduction to Software Architecture. Vol. 1. World Scientific.  D. Garlan and M. Shaw. 1994. An Introduction to Software Architecture. Vol. 1. World Scientific.","DOI":"10.1142\/9789812798039_0001"},{"key":"e_1_2_1_20_1","volume-title":"Proceedings of the 2013 International Conference on Software Engineering. 33--42","author":"Ghezzi C.","unstructured":"C. Ghezzi , L. S. Pinto , P. Spoletini , and G. Tamburrelli . 2013. Managing non-functional uncertainty via model-driven adaptivity . In Proceedings of the 2013 International Conference on Software Engineering. 33--42 . C. Ghezzi, L. S. Pinto, P. Spoletini, and G. Tamburrelli. 2013. Managing non-functional uncertainty via model-driven adaptivity. In Proceedings of the 2013 International Conference on Software Engineering. 33--42."},{"key":"e_1_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.1109\/AINA.2012.74"},{"key":"e_1_2_1_22_1","volume-title":"Proceedings of the 9th Workshop on Models@run.time. 41\u201346","author":"Heinrich R.","unstructured":"R. Heinrich , E. Schmieders , R. Jung , K. Rostami , A. Metzger , W. Hasselbring , R. Reussner , and K. Pohl . 2014. Integrating run-time observations and design component models for cloud system analysis . In Proceedings of the 9th Workshop on Models@run.time. 41\u201346 . http:\/\/ceur-ws.org\/Vol-1270\/. R. Heinrich, E. Schmieders, R. Jung, K. Rostami, A. Metzger, W. Hasselbring, R. Reussner, and K. Pohl. 2014. Integrating run-time observations and design component models for cloud system analysis. In Proceedings of the 9th Workshop on Models@run.time. 41\u201346. http:\/\/ceur-ws.org\/Vol-1270\/."},{"key":"e_1_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.1360\/aas-007-0323"},{"key":"e_1_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.1109\/PAAP.2010.65"},{"key":"e_1_2_1_25_1","doi-asserted-by":"publisher","DOI":"10.1145\/2593929.2593940"},{"key":"e_1_2_1_26_1","volume-title":"Proceeings of the Service-Oriented Computing Workshops (ICSOC\u201914)","author":"Jamshidi P.","unstructured":"P. Jamshidi , C. Pahl , S. Chinenyeze , and X. Liu . 2015. Cloud migration patterns: A multi-cloud service architecture perspective . In Proceeings of the Service-Oriented Computing Workshops (ICSOC\u201914) . 6--19. P. Jamshidi, C. Pahl, S. Chinenyeze, and X. Liu. 2015. Cloud migration patterns: A multi-cloud service architecture perspective. In Proceeings of the Service-Oriented Computing Workshops (ICSOC\u201914). 6--19."},{"key":"e_1_2_1_27_1","volume-title":"Proceedings of the 2016 12th International ACM SIGSOFT Conference on Quality of Software Architectures (QoSA\u201916)","author":"Jamshidi P.","unstructured":"P. Jamshidi , A. Sharifloo , C. Pahl , H. Arabnejad , A. Metzger , and G. Estrada . 2016. Fuzzy self-learning controllers for elasticity management in dynamic cloud architectures . In Proceedings of the 2016 12th International ACM SIGSOFT Conference on Quality of Software Architectures (QoSA\u201916) . IEEE, 70--79. P. Jamshidi, A. Sharifloo, C. Pahl, H. Arabnejad, A. Metzger, and G. Estrada. 2016. Fuzzy self-learning controllers for elasticity management in dynamic cloud architectures. In Proceedings of the 2016 12th International ACM SIGSOFT Conference on Quality of Software Architectures (QoSA\u201916). IEEE, 70--79."},{"key":"e_1_2_1_28_1","first-page":"21","article-title":"Self-aware software and systems engineering: A vision and research roadmap","volume":"31","author":"Kounev S.","year":"2011","unstructured":"S. Kounev . 2011 . Self-aware software and systems engineering: A vision and research roadmap . GI Softwaretech.-Trends 31 , 4 (2011), 21 -- 25 . S. Kounev. 2011. Self-aware software and systems engineering: A vision and research roadmap. GI Softwaretech.-Trends 31, 4 (2011), 21--25.","journal-title":"GI Softwaretech.-Trends"},{"key":"e_1_2_1_29_1","unstructured":"S. Kounev F. Brosig and N. Huber. 2014. The Descartes Modeling Language. Department of Comp Science University of Wuerzburg Tech. Rep (2014).  S. Kounev F. Brosig and N. Huber. 2014. The Descartes Modeling Language. Department of Comp Science University of Wuerzburg Tech. Rep (2014)."},{"key":"e_1_2_1_30_1","volume-title":"Proceedings of the International Enterprise Distributed Object Computing Workshop (EDOCW\u201916)","author":"Kratzke N.","unstructured":"N. Kratzke and R. Peinl . 2016. ClouNS - A cloud-native application reference model for enterprise architects . In Proceedings of the International Enterprise Distributed Object Computing Workshop (EDOCW\u201916) . 1--10. N. Kratzke and R. Peinl. 2016. ClouNS - A cloud-native application reference model for enterprise architects. In Proceedings of the International Enterprise Distributed Object Computing Workshop (EDOCW\u201916). 1--10."},{"key":"e_1_2_1_31_1","doi-asserted-by":"publisher","DOI":"10.1109\/52.469759"},{"key":"e_1_2_1_32_1","unstructured":"J. Lewis and M. Fowler. 2014. Microservices. Retrieved January 7 2018 from http:\/\/martinfowler.com\/articles\/microservices.html.  J. Lewis and M. Fowler. 2014. Microservices. Retrieved January 7 2018 from http:\/\/martinfowler.com\/articles\/microservices.html."},{"key":"e_1_2_1_33_1","first-page":"800","article-title":"The NIST definition of cloud computing","author":"Mell P.","year":"2011","unstructured":"P. Mell and T. Grance . 2011 . The NIST definition of cloud computing . Technical Report SP 800 - 145 . Computer Security Division, Information Technology Laboratory, National Institute of Standards and Technology, Gaithersburg, US. P. Mell and T. Grance. 2011. The NIST definition of cloud computing. Technical Report SP 800-145. Computer Security Division, Information Technology Laboratory, National Institute of Standards and Technology, Gaithersburg, US.","journal-title":"Technical Report SP"},{"key":"e_1_2_1_34_1","volume-title":"Software Architecture and Design. Retrieved","year":"2018","unstructured":"Microsoft. 2009. Software Architecture and Design. Retrieved January 7, 2018 from https:\/\/msdn.microsoft.com\/en-us\/library\/ee658093.aspx. Microsoft. 2009. Software Architecture and Design. Retrieved January 7, 2018 from https:\/\/msdn.microsoft.com\/en-us\/library\/ee658093.aspx."},{"key":"e_1_2_1_35_1","unstructured":"S. Newman. 2015. Building Microservices. O\u2019Reilly.   S. Newman. 2015. Building Microservices. O\u2019Reilly."},{"key":"e_1_2_1_36_1","doi-asserted-by":"publisher","DOI":"10.1109\/MCC.2015.51"},{"key":"e_1_2_1_37_1","doi-asserted-by":"publisher","DOI":"10.1109\/TCC.2017.2702586"},{"key":"e_1_2_1_38_1","volume-title":"Proceedings of the European Conference on Software Architecture (ECSA\u201915)","author":"Pahl C.","unstructured":"C. Pahl and P. Jamshidi . 2015. Software architecture for the cloud - A roadmap towards control-theoretic, model-based cloud architecture . In Proceedings of the European Conference on Software Architecture (ECSA\u201915) . C. Pahl and P. Jamshidi. 2015. Software architecture for the cloud - A roadmap towards control-theoretic, model-based cloud architecture. In Proceedings of the European Conference on Software Architecture (ECSA\u201915)."},{"key":"e_1_2_1_39_1","doi-asserted-by":"publisher","DOI":"10.1002\/smr.1849"},{"key":"e_1_2_1_40_1","doi-asserted-by":"publisher","DOI":"10.1109\/FiCloud.2015.35"},{"key":"e_1_2_1_41_1","doi-asserted-by":"publisher","DOI":"10.1109\/MS.2017.24"},{"key":"e_1_2_1_42_1","volume-title":"Proceedings of the Symposium on Applications and the Internet Workshops","author":"Perrey R.","year":"2003","unstructured":"R. Perrey and M. Lycett . 2003. Service-oriented architecture . In Proceedings of the Symposium on Applications and the Internet Workshops 2003 . 116--119. R. Perrey and M. Lycett. 2003. Service-oriented architecture. In Proceedings of the Symposium on Applications and the Internet Workshops 2003. 116--119."},{"key":"e_1_2_1_43_1","doi-asserted-by":"publisher","DOI":"10.1109\/RE.2010.21"},{"key":"e_1_2_1_44_1","unstructured":"T. Stahl M. Voelter and K. Czarnecki. 2006. Model-driven Software Development: Technology Engineering Management. Wiley 8 Sons.   T. Stahl M. Voelter and K. Czarnecki. 2006. Model-driven Software Development: Technology Engineering Management. Wiley 8 Sons."},{"key":"e_1_2_1_45_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-01671-4_3"},{"key":"e_1_2_1_46_1","doi-asserted-by":"publisher","DOI":"10.1145\/352029.352035"},{"key":"e_1_2_1_47_1","doi-asserted-by":"publisher","DOI":"10.1145\/1527033.1527047"},{"key":"e_1_2_1_49_1","doi-asserted-by":"publisher","DOI":"10.1145\/2555612"},{"key":"e_1_2_1_50_1","volume-title":"Proceedings of the 9th Workshop on Models@run.time. 11\u201320","author":"W\u00e4tzoldt S.","unstructured":"S. W\u00e4tzoldt and H. Giese . 2014. Classifying distributed self-* Systems based on runtime models and their coupling . In Proceedings of the 9th Workshop on Models@run.time. 11\u201320 . http:\/\/ceur-ws.org\/Vol-1270\/. S. W\u00e4tzoldt and H. Giese. 2014. Classifying distributed self-* Systems based on runtime models and their coupling. In Proceedings of the 9th Workshop on Models@run.time. 11\u201320. http:\/\/ceur-ws.org\/Vol-1270\/."},{"key":"e_1_2_1_51_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-29863-9_17"},{"key":"e_1_2_1_52_1","volume-title":"Proceedings of the Workshop on Federated Cloud Networking (FedCloudNet\u201915)","author":"Xiong H.","unstructured":"H. Xiong , F. Fowley , and C. Pahl . 2015. An architecture pattern for multi-cloud high availability and disaster recovery . In Proceedings of the Workshop on Federated Cloud Networking (FedCloudNet\u201915) . H. Xiong, F. Fowley, and C. Pahl. 2015. An architecture pattern for multi-cloud high availability and disaster recovery. In Proceedings of the Workshop on Federated Cloud Networking (FedCloudNet\u201915)."},{"key":"e_1_2_1_53_1","doi-asserted-by":"publisher","DOI":"10.1109\/UCC.2014.24"},{"key":"e_1_2_1_55_1","volume-title":"Proceedings of the Symposium\/Summer School on Service-Oriented Computing.","author":"Zimmermann O.","year":"2016","unstructured":"O. Zimmermann . 2016 . Mircroservices tenets: Agile approach to service development and deployment . In Proceedings of the Symposium\/Summer School on Service-Oriented Computing. O. Zimmermann. 2016. Mircroservices tenets: Agile approach to service development and deployment. In Proceedings of the Symposium\/Summer School on Service-Oriented Computing."}],"container-title":["ACM Transactions on Internet Technology"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3104028","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3104028","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T03:30:37Z","timestamp":1750217437000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3104028"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2018,2,2]]},"references-count":53,"journal-issue":{"issue":"2","published-print":{"date-parts":[[2018,5,31]]}},"alternative-id":["10.1145\/3104028"],"URL":"https:\/\/doi.org\/10.1145\/3104028","relation":{},"ISSN":["1533-5399","1557-6051"],"issn-type":[{"value":"1533-5399","type":"print"},{"value":"1557-6051","type":"electronic"}],"subject":[],"published":{"date-parts":[[2018,2,2]]},"assertion":[{"value":"2016-09-01","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2017-05-01","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2018-02-02","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}