Nothing Special   »   [go: up one dir, main page]

skip to main content
research-article

Architectural Principles for Cloud Software

Published: 02 February 2018 Publication History

Abstract

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.

References

[1]
A. Ahmad, P. Jamshidi, and C. Pahl. 2014. Classification and comparison of architecture evolution reuse knowledge – A systematic review. J. Softw.: Evol. Process 26, 7 (2014), 654--691.
[2]
N. Antonopoulos and L. Gillam. 2010. Cloud Computing: Principles, Systems and Applications. Springer.
[3]
H. Arabnejad, P. Jamshidi, G. Estrada, N. El Ioini, and C. Pahl. 2016. An auto-scaling cloud controller using fuzzy Q-learning—Implementation in openstack. In Proceedings of the European Conference on Service-Oriented and Cloud Computing (ESOCC’16).
[4]
H. Arabnejad, C. Pahl, P. Jamshidi, and G. Estrada. 2017. A comparison of reinforcement learning techniques for fuzzy cloud auto-scaling. In Proceedings of the International Symposium on Cluster, Cloud and Grid Computing (CCGrid’17).
[5]
A. Balalaie, A. Heydarnoori, and P. Jamshidi. 2016. Microservices architecture enables DevOps: Migration to a cloud-native architecture. IEEE Softw. 33, 3 (May 2016), 42--52.
[6]
L. Baresi and C. Ghezzi. 2013. A journey through SMScom: Self-managing situational computing. Comput. Sci.-Res. Dev. 28, 4 (2013), 267--277.
[7]
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ögele, 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.
[8]
P. Cedillo, J. Jimenez-Gomez, S. Abrahao, and E. Insfran. 2015. Towards a monitoring middleware for cloud services. In Proceedings of the International Conference on Services Computing (SCC’15). 451--458.
[9]
K. Chan, I. Poernomo, H. Schmidt, and J. Jayaputera. 2005. A model-oriented framework for runtime monitoring of nonfunctional properties. In Proceedings Conference on Quality of Software Architectures and Software Quality. Lecture Notes in Computer Science, vol. 3712. Springer.
[10]
B. H. C. Cheng, R. De Lemos, H. Giese, P. Inverardi, J. Magee, J. Andersson, B. Becker, N. Bencomo, Y. Brun, B. Cukic, and others. 2009. Software engineering for self-adaptive systems: A research roadmap. In Software Engineering for Self-adaptive Systems. Springer.
[11]
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.
[12]
R. De Lemos, H. Giese, H. A. Müller, 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.
[13]
T. Erl. 2005. Service-oriented Architecture: Concepts, Technology, and Design. Pearson Education.
[14]
N. Esfahani and S. Malek. 2013. Uncertainty in self-adaptive software systems. In Software Engineering for Self-Adaptive Systems II. Springer, 214--238.
[15]
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.
[16]
C. Fehling, F. Leymann, R. Retter, W. Schupeck, and P. Arbitter. 2014. Cloud computing patterns. Springer-Verlag Wien.
[17]
A. Filieri, M. Maggio, K. Angelopoulos, N. D’Ippolito, 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’2015).
[18]
B. Fitzgerald and K.-J. Stol. 2014. Continuous software engineering and beyond: Trends and challenges. In Proceedings of the 1st International Workshop on Rapid Continuous Software Engineering (RCoSE’14).
[19]
D. Garlan and M. Shaw. 1994. An Introduction to Software Architecture. Vol. 1. World Scientific.
[20]
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.
[21]
S. He, L. Guo, Y. Guo, C. Wu, M. Ghanem, and R. Han. 2012. Elastic application container: A lightweight approach for cloud resource provisioning. In Proceedings of the International Conference on Advances in Information Networking and Applications.
[22]
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 [email protected]. 41–46. http://ceur-ws.org/Vol-1270/.
[23]
Z.-S. Hou and J.-X. Xu. 2007. New feedback-feedforward configuration for the iterative learning control of a class of discrete-time systems. Acta Automatica Sinica 33, 3 (2007), 323–326.
[24]
J. Hu, J. Gu, G. Sun, and T. Zhao. 2010. A scheduling strategy on load balancing of virtual machine resources in cloud computing environment. In Proceedings of the International Symposium on Parallel Architectures, Algorithms and Programming.
[25]
P. Jamshidi, A. Ahmad, and C. Pahl. 2014. Autonomic resource provisioning for cloud-based software. In Proceedings of the International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS’14).
[26]
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’14). 6--19.
[27]
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’16). IEEE, 70--79.
[28]
S. Kounev. 2011. Self-aware software and systems engineering: A vision and research roadmap. GI Softwaretech.-Trends 31, 4 (2011), 21--25.
[29]
S. Kounev, F. Brosig, and N. Huber. 2014. The Descartes Modeling Language. Department of Comp Science, University of Wuerzburg, Tech. Rep (2014).
[30]
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’16). 1--10.
[31]
P. B. Kruchten. 1995. The 4+1 view model of architecture. IEEE Softw. 12, 6 (1995), 42--50.
[32]
J. Lewis and M. Fowler. 2014. Microservices. Retrieved January 7, 2018 from http://martinfowler.com/articles/microservices.html.
[33]
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.
[34]
Microsoft. 2009. Software Architecture and Design. Retrieved January 7, 2018 from https://msdn.microsoft.com/en-us/library/ee658093.aspx.
[35]
S. Newman. 2015. Building Microservices. O’Reilly.
[36]
C. Pahl. 2015. Containerization and the PaaS cloud. IEEE Cloud Comput. 2, 3 (2015), 24--31.
[37]
C. Pahl, A. Brogi, J. Soldani, and P. Jamshidi. 2017a. Cloud container technologies: A state-of-the-art review. IEEE Transactions on Cloud Computing. Published online at https://ieeexplore.ieee.org/document/7922500/.
[38]
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’15).
[39]
C. Pahl, P. Jamshidi, and D. Weyns. 2017b. Cloud architecture continuity: Change models and change rules for sustainable cloud software architectures. J. Softw.: Evol. Process 29, 2 (2017).
[40]
C. Pahl and B. Lee. 2015. Containers and clusters for edge cloud architectures - A technology review. In Proceedings of the 3rd International Conference on Future Internet of Things and Cloud (FiCloud’15). IEEE.
[41]
C. Pautasso, O. Zimmermann, M. Amundsen, J. Lewis, and N. Josuttis. 2017. Microservices in practice, part 1: Reality check and service design. IEEE Softw. 34, 1 (2017), 91--98.
[42]
R. Perrey and M. Lycett. 2003. Service-oriented architecture. In Proceedings of the Symposium on Applications and the Internet Workshops 2003. 116--119.
[43]
P. Sawyer, N. Bencomo, J. Whittle, E. Letier, and A. Finkelstein. 2010. Requirements-aware systems: A research agenda for re for self-adaptive systems. In Proceedings 18th IEEE International Requirements Engineering Conference (RE). 95–103.
[44]
T. Stahl, M. Voelter, and K. Czarnecki. 2006. Model-driven Software Development: Technology, Engineering, Management. Wiley 8 Sons.
[45]
V. Stantchev and C. Schräpfer. 2009. Negotiating and enforcing QoS and SLAs in grid and cloud computing. In Proceedings of the Advances in Grid and Pervasive Computing. Vol. 5529. 25--35.
[46]
A. Van Deursen, P. Klint, and J. Visser. 2000. Domain-specific languages: An annotated bibliography. Sigplan Not. 35, 6 (2000), 26--36.
[47]
A. Van Hoorn, M. Rohr, A. Gul, and W. Hasselbring. 2009. An adaptation framework enabling resource-efficient operation of software systems. In Proceedings of the Warm Up Workshop for the ACM/IEEE International Conference on Software Engineering (ICSE’10).
[48]
J. Varia. 2011. Architecting for the cloud: Best practices. Technical Report. Amazon Web Services. https://media.amazonwebservices.com/AWS_Cloud_Best_Practices.pdf.
[49]
T. Vogel and H. Giese. 2014. Model-driven engineering of self-adaptive software with EUREMA. ACM Trans. Auton. Adapt. Syst. 8, 4 (2014), 18.
[50]
S. Wätzoldt and H. Giese. 2014. Classifying distributed self-* Systems based on runtime models and their coupling. In Proceedings of the 9th Workshop on [email protected]. 11–20. http://ceur-ws.org/Vol-1270/.
[51]
R. Wieringa and A. Moralı. 2012. Technical action research as a validation method in information systems design science. In Proceedings of the International Conference on Design Science Research in Information Systems. 220--238.
[52]
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’15).
[53]
L. Zhang, Y. Zhang, P. Jamshidi, L. Xu, and C. Pahl. 2014. Workload patterns for quality-driven dynamic cloud service configuration and auto-scaling. In Proceedings of the IEEE/ACM International Conference on Utility and Cloud Computing (UCC’14). 156--165.
[54]
O. Zimmermann. 2009. An Architectural Decision Modeling Framework for Service Oriented Architecture Design. Ph.D. Dissertation. Universität Stuttgart.
[55]
O. Zimmermann. 2016. Mircroservices tenets: Agile approach to service development and deployment. In Proceedings of the Symposium/Summer School on Service-Oriented Computing.

Cited By

View all
  • (2024)A System-dynamic-based Model to Study the Effect of Singular AWS Bucket Management Big Data Architecture into the Automotive Industry2024 Portland International Conference on Management of Engineering and Technology (PICMET)10.23919/PICMET64035.2024.10653414(1-11)Online publication date: 4-Aug-2024
  • (2024)Enhancing MVC architecture pattern description using its System of Systems modelProceedings of the 17th Innovations in Software Engineering Conference10.1145/3641399.3641410(1-11)Online publication date: 22-Feb-2024
  • (2024)STIGS: Spatio-Temporal Interference Graph Simulator for Self-Configurable Multi-Tenant Cloud SystemsCompanion of the 15th ACM/SPEC International Conference on Performance Engineering10.1145/3629527.3653664(52-56)Online publication date: 7-May-2024
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Transactions on Internet Technology
ACM Transactions on Internet Technology  Volume 18, Issue 2
Special Issue on Internetware and Devops and Regular Papers
May 2018
294 pages
ISSN:1533-5399
EISSN:1557-6051
DOI:10.1145/3182619
  • Editor:
  • Munindar P. Singh
Issue’s Table of Contents
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 02 February 2018
Accepted: 01 May 2017
Revised: 01 May 2017
Received: 01 September 2016
Published in TOIT Volume 18, Issue 2

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Cloud computing
  2. adaptive system
  3. architectural style
  4. cloud-native
  5. control theory
  6. devops
  7. microservice
  8. model-based controller
  9. software architecture
  10. uncertainty

Qualifiers

  • Research-article
  • Research
  • Refereed

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)142
  • Downloads (Last 6 weeks)13
Reflects downloads up to 12 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2024)A System-dynamic-based Model to Study the Effect of Singular AWS Bucket Management Big Data Architecture into the Automotive Industry2024 Portland International Conference on Management of Engineering and Technology (PICMET)10.23919/PICMET64035.2024.10653414(1-11)Online publication date: 4-Aug-2024
  • (2024)Enhancing MVC architecture pattern description using its System of Systems modelProceedings of the 17th Innovations in Software Engineering Conference10.1145/3641399.3641410(1-11)Online publication date: 22-Feb-2024
  • (2024)STIGS: Spatio-Temporal Interference Graph Simulator for Self-Configurable Multi-Tenant Cloud SystemsCompanion of the 15th ACM/SPEC International Conference on Performance Engineering10.1145/3629527.3653664(52-56)Online publication date: 7-May-2024
  • (2024)Benchmarking scalability of stream processing frameworks deployed as microservices in the cloudJournal of Systems and Software10.1016/j.jss.2023.111879208:COnline publication date: 1-Feb-2024
  • (2024)Evaluating Cloud-Native Deployment Options with a Focus on Reliability AspectsService-Oriented Computing10.1007/978-3-031-72578-4_4(63-82)Online publication date: 19-Oct-2024
  • (2024)An Initial Insight into Measuring Quality in Cloud-Native ArchitecturesKnowledge Management in Organisations10.1007/978-3-031-63269-3_26(341-351)Online publication date: 22-Jun-2024
  • (2024)Systematic analysis of software development in cloud computing perceptionsJournal of Software: Evolution and Process10.1002/smr.248536:2Online publication date: 13-Feb-2024
  • (2023)Internet-of-Things Edge Computing Systems for Streaming Video Analytics: Trails Behind and the Paths AheadIoT10.3390/iot40400214:4(486-513)Online publication date: 24-Oct-2023
  • (2023)Using Genetic Programming to Build Self-Adaptivity into Software-Defined NetworksACM Transactions on Autonomous and Adaptive Systems10.1145/3616496Online publication date: 17-Aug-2023
  • (2023)Software Aging Prediction for Cloud Services Using a Gate Recurrent Unit Neural Network Model Based on Time Series DecompositionIEEE Transactions on Emerging Topics in Computing10.1109/TETC.2023.325850311:3(580-593)Online publication date: 1-Jul-2023
  • Show More Cited By

View Options

Get Access

Login options

Full Access

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media