Quality Evaluation of PaaS Cloud Application Design Using Generated Prototypes

With the increasing popularity of Platform as a Service (PaaS) cloud, software architects need to face new challenges of software architecture design, efficiently integrating the benefits of PaaS services. In this respect, early quality evaluation of the designed PaaS cloud application is crucial to mitigate the risk of later architectural changes due to violation of quality requirements (such as throughput, response time and scalability). Despite the emergence of architectural tactics and patterns usable for the design of PaaS cloud applications, it is challenging for the software architects to navigate in a rich set of offered services, variability of the PaaS cloud environment and quality conflicts in existing tactics, which makes it almost impossible to predicts the overall application quality without time-consuming implementation of application prototypes. In this paper, we take advantage of the cloud elasticity and introduce a design-time quality evaluation technique for PaaS applications based on automatically generated application prototypes, which are deployed to the cloud and repeatedly evaluated in the context of multiple quality attributes and environment configurations. As part of this work, we present an abstract application model designed to carefully select the details with high performance impact, and present the implementation of our tool generating the prototypes of PaaS cloud applications.

[1]  Qiang He,et al.  StressCloud: A Tool for Analysing Performance and Energy Consumption of Cloud Applications , 2015, 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering.

[2]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[3]  Rajkumar Buyya,et al.  Modeling and simulation of scalable Cloud computing environments and the CloudSim toolkit: Challenges and opportunities , 2009, 2009 International Conference on High Performance Computing & Simulation.

[4]  Barbora Buhnova,et al.  Architectural Tactics for the Design of Efficient PaaS Cloud Applications , 2016, 2016 13th Working IEEE/IFIP Conference on Software Architecture (WICSA).

[5]  Lars Grunske,et al.  Software Architecture Optimization Methods: A Systematic Literature Review , 2013, IEEE Transactions on Software Engineering.

[6]  John Sharp,et al.  Cloud Design Patterns: Prescriptive Architecture Guidance for Cloud Applications , 2014 .

[7]  Sebastian Lehrig,et al.  Using Java EE ProtoCom for SAP HANA Cloud , 2014, SoSP.

[8]  Heiko Koziolek,et al.  Performance evaluation of component-based software systems: A survey , 2010, Perform. Evaluation.

[9]  Steffen Becker,et al.  The Palladio component model for model-driven performance prediction , 2009, J. Syst. Softw..

[10]  Sebastian Lehrig,et al.  Scalability, elasticity, and efficiency in cloud computing: A systematic literature review of definitions and metrics , 2015, 2015 11th International ACM SIGSOFT Conference on Quality of Software Architectures (QoSA).

[11]  Danilo Ardagna,et al.  SPACE4CLOUD: a tool for system performance and costevaluation of cloud systems , 2013, MultiCloud '13.

[12]  Ian Gorton,et al.  Essential software architecture , 2006 .

[13]  Martin Fowler,et al.  Patterns of Enterprise Application Architecture , 2002 .

[14]  Richard N. Taylor,et al.  Software architecture: foundations, theory, and practice , 2009, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

[15]  Zaigham Mahmood,et al.  Cloud Computing: Concepts, Technology & Architecture , 2013 .

[16]  Steffen Becker,et al.  Coupled model transformations for QoS enabled component-based software design , 2010 .

[17]  Sebastian Lehrig,et al.  CloudScale: scalability management for cloud systems , 2013, ICPE '13.

[18]  Barbora Buhnova,et al.  Performance Challenges, Current Bad Practices, and Hints in PaaS Cloud Application Design , 2016, PERV.