Adnan Ashraf | Åbo Akademi (original) (raw)
PhD Thesis by Adnan Ashraf
One of the main challenges in Software Engineering is to cope with the transition from an industr... more One of the main challenges in Software Engineering is to cope with the transition from an industry based on software as a product to software as a service. The field of Software Engineering should provide the necessary methods and tools to develop and deploy new cost-efficient and scalable digital services. In this thesis, we focus on deployment platforms to ensure cost-efficient scalability of multi-tier web applications and on-demand video transcoding service for different types of load conditions.
Infrastructure as a Service (IaaS) clouds provide Virtual Machines (VMs) under the pay-per-use business model. Dynamically provisioning VMs on demand allows service providers to cope with fluctuations on the number of service users. However, VM provisioning must be done carefully, because over-provisioning results in an increased operational cost, while under-provisioning leads to a subpar service. Therefore, our main focus in this thesis is on cost-efficient VM provisioning for multi-tier web applications and on-demand video transcoding. Moreover, to prevent provisioned VMs from becoming overloaded, we augment VM provisioning with an admission control mechanism. Similarly, to ensure efficient use of provisioned VMs, web applications on the under-utilized VMs are consolidated periodically. Thus, the main problem that we address is cost-efficient VM provisioning augmented with server consolidation and admission control on the provisioned VMs. We seek solutions for two types of applications: multi-tier web applications that follow the request-response paradigm and on-demand video transcoding that is based on video streams with soft realtime constraints.
Our first contribution is a cost-efficient VM provisioning approach for multi-tier web applications. The proposed approach comprises two sub-approaches: a reactive VM provisioning approach called ARVUE and a hybrid reactive-proactive VM provisioning approach called Cost-efficient Resource Allocation for Multiple web applications with Proactive scaling. Our second contribution is a prediction-based VM provisioning approach for on-demand video transcoding in the cloud. Moreover, to prevent virtualized servers from becoming overloaded, the proposed VM provisioning approaches are augmented with admission control approaches. Therefore, our third contribution is a session-based admission control approach for multi-tier web applications called adaptive Admission Control for Virtualized Application Servers. Similarly, the fourth contribution in this thesis is a stream-based admission control and scheduling approach for on-demand video transcoding called Stream-Based Admission Control and Scheduling. Our fifth contribution is a computation and storage trade-o strategy for cost-efficient video transcoding in cloud computing. Finally, the sixth and the last contribution is a web application consolidation approach, which uses Ant Colony System to minimize the under-utilization of the virtualized application servers.
NB: The permanent address of the publication (PDF file) is http://urn.fi/URN:NBN:fi-fe2014092244819
Books by Adnan Ashraf
Executed during years 2010-2013, Cloud Software is a Finnish research program, whose goal has bee... more Executed during years 2010-2013, Cloud Software is a Finnish research program, whose goal has been to significantly improve the competitive position of Finnish software intensive industry in global markets in the field of cloud computing. More than 30 Finnish IT companies and research organizations have participated in the program, and the output of the program has been considerable both in terms of scientific publications as well as industry transformation towards using cloud computing techniques.
This book contains selected contributions by the Cloud Software Program partners focusing on innovative algorithms, applications, and tools to develop new services and applications to be deployed in public and private cloud infrastructures. These are needed to fully utilize the concept computing as a utility as promised by cloud computing. In addition to the actual contributions, the first chapter of the book contains an introduction to cloud computing from the point of view of software development. For the rest of the book, each chapter tackles a concrete problem relevant to software development for cloud infrastructures that originated in the program company partners.
We want to thank all the participants in the Cloud Software program for their efforts, shared experiences, and insights during these four years that have been materialized in the contents of the book. Specially, we want to thank Dr. Janne Järvinen, focus area director, Professor Veikko Seppänen, academic coordinator, Dr. Tua Huomo, program coordinator, and Dr. Pauli Kuosmanen, Digile CTO, for leading the program. In addition, we wish to thank Hans Ahnlund and Mika Laurila (ECE Ltd.), Marc Englund (Vaadin Ltd.), Sami Helin (Steeri Oy), Jarno Kallio (Packet Video Finland), Risto Laurikainen (CSC), and Heikki Nousiainen (F-Secure) for performing reviews for the different chapters that constitute the book. Finally, we also wish to thank all the contributors of this book for their dedicated efforts both in the program itself as well as in reporting the results.
Chapters in Edited Books by Adnan Ashraf
This chapter presents a prediction-based, cost-efficient virtual machine (VM) provisioning and ad... more This chapter presents a prediction-based, cost-efficient virtual machine (VM) provisioning and admission control approach for multi-tier web applications. The proposed approach provides automatic deployment and scaling of multiple simultaneous web applications on a given Infrastructure as a Service (IaaS) cloud in a shared hosting environment. It monitors and uses resource utilization metrics and does not require a performance model of the applications or the infrastructure dynamics. The shared hosting environment allows us to share VM resources among deployed applications, reducing the total number of required VMs. The proposed approach comprises three sub-approaches: a reactive VM provisioning approach called ARVUE, a hybrid reactive-proactive VM provisioning approach called Cost-efficient Resource Allocation for Multiple web applications with Proactive scaling (CRAMP), and a session-based adaptive admission control approach called adaptive Admission Control for Virtualized Application Servers (ACVAS). Performance under varying load conditions is guaranteed by automatic adjustment and tuning of the CRAMP and ACVAS parameters. The proposed approach is demonstrated in discrete-event simulations and is evaluated in a series of experiments involving synthetic as well as realistic load patterns.
Video transcoding refers to the process of converting a digital video from one compressed format ... more Video transcoding refers to the process of converting a digital video from one compressed format to another. It is a compute-intensive operation. Therefore, transcoding of a large number of simultaneous video streams requires a large-scale distributed system. Moreover, to handle different load conditions in a cost-efficient manner, the distributed system should be dynamically scalable. Infrastructure as a Service (IaaS) clouds currently offer computing resources, such as virtual machines (VMs), under the pay-per-use business model, which can be used to create a dynamically scalable cluster of video transcoding servers. Determining the number of VMs to provision for a dynamic cluster is still an open problem. In this chapter, we present a proactive VM allocation approach to scale video transcoding service on a given IaaS cloud. For better resource utilization, quality of service, and cost-efficiency, we use video segmentation at the Group of Pictures (GOP) level. The proposed approach is demonstrated in discrete-event simulations and an experimental evaluation involving different load patterns. We also present a prototype implementation of a distributed video transcoder based on the message passing programming model and a dynamic load balancing approach.
This chapter presents the main technologies currently used in cloud computing, what are the main ... more This chapter presents the main technologies currently used in cloud computing, what are the main commercial offerings and what are their programming models. We discuss hardware virtualization technologies used in datacenters, three different service abstraction levels: infrastructure, platform and application and the main driver and adoption problems in cloud computing.
Papers by Adnan Ashraf
Proceedings of the Fifth European Conference on the Engineering of Computer-Based Systems, 2017
Proceedings of the 14th Central and Eastern European Software Engineering Conference Russia on ZZZ - CEE-SECR '18, 2018
2019 45th Euromicro Conference on Software Engineering and Advanced Applications (SEAA), 2019
2019 Design, Automation & Test in Europe Conference & Exhibition (DATE), 2019
Traditionally, test cases are executed sequentially due to the dependency of test data. For large... more Traditionally, test cases are executed sequentially due to the dependency of test data. For large system level test suites, when a test session can take hours or even days, sequential execution does not satisfy any more the industrial demands for short lead times and fast feed-back cycles. Parallel test execution has appeared as an appealing option to cut down on the test execution time. However, running tests in parallel is not a trivial task due to dependencies and constraints between tests cases. Therefore, we propose an approach to parallelize test execution based on the available resources, constraints between tests, and the duration of tests that creates parallel test execution schedules that can be run in multiple testing environments simultaneously. We formulate and solve the problem as Ant Colony System, in order to find a nearoptimal solution.
Lecture Notes in Computer Science, 2019
Computer Science Review, 2019
Computer Science Review, 2018
International Journal of Parallel, Emergent and Distributed Systems, 2017
Journal of Cloud Computing, 2016
Video transcoding of a large number of on-demand videos requires a large scale cluster of transco... more Video transcoding of a large number of on-demand videos requires a large scale cluster of transcoding servers. Moreover, storage of multiple transcoded versions of each source video requires a large amount of disk space. Infrastructure as a Service (IaaS) clouds provide virtual machines (VMs) for creating a dynamically scalable cluster of servers. Likewise, a cloud storage service may be used to store a large number of transcoded videos. Moreover, it may be possible to reduce the total IaaS cost by trading storage for computation, or vice versa. In this paper, we present prediction-based dynamic resource allocation algorithms to scale on-demand video transcoding service on a given IaaS cloud. The proposed algorithms provide mechanisms for allocation and deallocation of VMs to a dynamically scalable cluster of video transcoding servers in a horizontal fashion. We also present a computation and storage trade-off strategy for cost-efficient video transcoding in the cloud called cost and popularity score based strategy. The proposed strategy estimates computation cost, storage cost, and video popularity of individual transcoded videos and then uses this information to make decisions on how long a video should be stored or how frequently it should be re-transcoded from a given source video. The proposed algorithms and the trade-off strategy are demonstrated in a discrete-event simulation and are empirically evaluated using a realistic load pattern.
Video transcoding refers to the process of converting a digital video from one compressed format ... more Video transcoding refers to the process of converting a digital video from one compressed format to another. It is a compute-intensive operation. Therefore, transcoding of a large number of simultaneous video streams requires a large-scale distributed system. Moreover, to handle different load conditions in a cost-efficient manner, the distributed system should be dynamically scalable. Infrastructure as a Service (IaaS) clouds currently offer computing resources, such as virtual machines (VMs), under the pay-per-use business model, which can be used to create a dynamically scalable cluster of video transcoding servers. Determining the number of VMs to provision for a dynamic cluster is still an open problem. In this chapter, we present a proactive VM allocation approach to scale video transcoding service on a given IaaS cloud. For better resource utilization, quality of service, and cost-efficiency, we use video segmentation at the Group of Pictures (GOP) level. The proposed approac...
2015 23rd Euromicro International Conference on Parallel, Distributed, and Network-Based Processing, 2015
One of the main challenges in Software Engineering is to cope with the transition from an industr... more One of the main challenges in Software Engineering is to cope with the transition from an industry based on software as a product to software as a service. The field of Software Engineering should provide the necessary methods and tools to develop and deploy new cost-efficient and scalable digital services. In this thesis, we focus on deployment platforms to ensure cost-efficient scalability of multi-tier web applications and on-demand video transcoding service for different types of load conditions.
Infrastructure as a Service (IaaS) clouds provide Virtual Machines (VMs) under the pay-per-use business model. Dynamically provisioning VMs on demand allows service providers to cope with fluctuations on the number of service users. However, VM provisioning must be done carefully, because over-provisioning results in an increased operational cost, while under-provisioning leads to a subpar service. Therefore, our main focus in this thesis is on cost-efficient VM provisioning for multi-tier web applications and on-demand video transcoding. Moreover, to prevent provisioned VMs from becoming overloaded, we augment VM provisioning with an admission control mechanism. Similarly, to ensure efficient use of provisioned VMs, web applications on the under-utilized VMs are consolidated periodically. Thus, the main problem that we address is cost-efficient VM provisioning augmented with server consolidation and admission control on the provisioned VMs. We seek solutions for two types of applications: multi-tier web applications that follow the request-response paradigm and on-demand video transcoding that is based on video streams with soft realtime constraints.
Our first contribution is a cost-efficient VM provisioning approach for multi-tier web applications. The proposed approach comprises two sub-approaches: a reactive VM provisioning approach called ARVUE and a hybrid reactive-proactive VM provisioning approach called Cost-efficient Resource Allocation for Multiple web applications with Proactive scaling. Our second contribution is a prediction-based VM provisioning approach for on-demand video transcoding in the cloud. Moreover, to prevent virtualized servers from becoming overloaded, the proposed VM provisioning approaches are augmented with admission control approaches. Therefore, our third contribution is a session-based admission control approach for multi-tier web applications called adaptive Admission Control for Virtualized Application Servers. Similarly, the fourth contribution in this thesis is a stream-based admission control and scheduling approach for on-demand video transcoding called Stream-Based Admission Control and Scheduling. Our fifth contribution is a computation and storage trade-o strategy for cost-efficient video transcoding in cloud computing. Finally, the sixth and the last contribution is a web application consolidation approach, which uses Ant Colony System to minimize the under-utilization of the virtualized application servers.
NB: The permanent address of the publication (PDF file) is http://urn.fi/URN:NBN:fi-fe2014092244819
Executed during years 2010-2013, Cloud Software is a Finnish research program, whose goal has bee... more Executed during years 2010-2013, Cloud Software is a Finnish research program, whose goal has been to significantly improve the competitive position of Finnish software intensive industry in global markets in the field of cloud computing. More than 30 Finnish IT companies and research organizations have participated in the program, and the output of the program has been considerable both in terms of scientific publications as well as industry transformation towards using cloud computing techniques.
This book contains selected contributions by the Cloud Software Program partners focusing on innovative algorithms, applications, and tools to develop new services and applications to be deployed in public and private cloud infrastructures. These are needed to fully utilize the concept computing as a utility as promised by cloud computing. In addition to the actual contributions, the first chapter of the book contains an introduction to cloud computing from the point of view of software development. For the rest of the book, each chapter tackles a concrete problem relevant to software development for cloud infrastructures that originated in the program company partners.
We want to thank all the participants in the Cloud Software program for their efforts, shared experiences, and insights during these four years that have been materialized in the contents of the book. Specially, we want to thank Dr. Janne Järvinen, focus area director, Professor Veikko Seppänen, academic coordinator, Dr. Tua Huomo, program coordinator, and Dr. Pauli Kuosmanen, Digile CTO, for leading the program. In addition, we wish to thank Hans Ahnlund and Mika Laurila (ECE Ltd.), Marc Englund (Vaadin Ltd.), Sami Helin (Steeri Oy), Jarno Kallio (Packet Video Finland), Risto Laurikainen (CSC), and Heikki Nousiainen (F-Secure) for performing reviews for the different chapters that constitute the book. Finally, we also wish to thank all the contributors of this book for their dedicated efforts both in the program itself as well as in reporting the results.
This chapter presents a prediction-based, cost-efficient virtual machine (VM) provisioning and ad... more This chapter presents a prediction-based, cost-efficient virtual machine (VM) provisioning and admission control approach for multi-tier web applications. The proposed approach provides automatic deployment and scaling of multiple simultaneous web applications on a given Infrastructure as a Service (IaaS) cloud in a shared hosting environment. It monitors and uses resource utilization metrics and does not require a performance model of the applications or the infrastructure dynamics. The shared hosting environment allows us to share VM resources among deployed applications, reducing the total number of required VMs. The proposed approach comprises three sub-approaches: a reactive VM provisioning approach called ARVUE, a hybrid reactive-proactive VM provisioning approach called Cost-efficient Resource Allocation for Multiple web applications with Proactive scaling (CRAMP), and a session-based adaptive admission control approach called adaptive Admission Control for Virtualized Application Servers (ACVAS). Performance under varying load conditions is guaranteed by automatic adjustment and tuning of the CRAMP and ACVAS parameters. The proposed approach is demonstrated in discrete-event simulations and is evaluated in a series of experiments involving synthetic as well as realistic load patterns.
Video transcoding refers to the process of converting a digital video from one compressed format ... more Video transcoding refers to the process of converting a digital video from one compressed format to another. It is a compute-intensive operation. Therefore, transcoding of a large number of simultaneous video streams requires a large-scale distributed system. Moreover, to handle different load conditions in a cost-efficient manner, the distributed system should be dynamically scalable. Infrastructure as a Service (IaaS) clouds currently offer computing resources, such as virtual machines (VMs), under the pay-per-use business model, which can be used to create a dynamically scalable cluster of video transcoding servers. Determining the number of VMs to provision for a dynamic cluster is still an open problem. In this chapter, we present a proactive VM allocation approach to scale video transcoding service on a given IaaS cloud. For better resource utilization, quality of service, and cost-efficiency, we use video segmentation at the Group of Pictures (GOP) level. The proposed approach is demonstrated in discrete-event simulations and an experimental evaluation involving different load patterns. We also present a prototype implementation of a distributed video transcoder based on the message passing programming model and a dynamic load balancing approach.
This chapter presents the main technologies currently used in cloud computing, what are the main ... more This chapter presents the main technologies currently used in cloud computing, what are the main commercial offerings and what are their programming models. We discuss hardware virtualization technologies used in datacenters, three different service abstraction levels: infrastructure, platform and application and the main driver and adoption problems in cloud computing.
Proceedings of the Fifth European Conference on the Engineering of Computer-Based Systems, 2017
Proceedings of the 14th Central and Eastern European Software Engineering Conference Russia on ZZZ - CEE-SECR '18, 2018
2019 45th Euromicro Conference on Software Engineering and Advanced Applications (SEAA), 2019
2019 Design, Automation & Test in Europe Conference & Exhibition (DATE), 2019
Traditionally, test cases are executed sequentially due to the dependency of test data. For large... more Traditionally, test cases are executed sequentially due to the dependency of test data. For large system level test suites, when a test session can take hours or even days, sequential execution does not satisfy any more the industrial demands for short lead times and fast feed-back cycles. Parallel test execution has appeared as an appealing option to cut down on the test execution time. However, running tests in parallel is not a trivial task due to dependencies and constraints between tests cases. Therefore, we propose an approach to parallelize test execution based on the available resources, constraints between tests, and the duration of tests that creates parallel test execution schedules that can be run in multiple testing environments simultaneously. We formulate and solve the problem as Ant Colony System, in order to find a nearoptimal solution.
Lecture Notes in Computer Science, 2019
Computer Science Review, 2019
Computer Science Review, 2018
International Journal of Parallel, Emergent and Distributed Systems, 2017
Journal of Cloud Computing, 2016
Video transcoding of a large number of on-demand videos requires a large scale cluster of transco... more Video transcoding of a large number of on-demand videos requires a large scale cluster of transcoding servers. Moreover, storage of multiple transcoded versions of each source video requires a large amount of disk space. Infrastructure as a Service (IaaS) clouds provide virtual machines (VMs) for creating a dynamically scalable cluster of servers. Likewise, a cloud storage service may be used to store a large number of transcoded videos. Moreover, it may be possible to reduce the total IaaS cost by trading storage for computation, or vice versa. In this paper, we present prediction-based dynamic resource allocation algorithms to scale on-demand video transcoding service on a given IaaS cloud. The proposed algorithms provide mechanisms for allocation and deallocation of VMs to a dynamically scalable cluster of video transcoding servers in a horizontal fashion. We also present a computation and storage trade-off strategy for cost-efficient video transcoding in the cloud called cost and popularity score based strategy. The proposed strategy estimates computation cost, storage cost, and video popularity of individual transcoded videos and then uses this information to make decisions on how long a video should be stored or how frequently it should be re-transcoded from a given source video. The proposed algorithms and the trade-off strategy are demonstrated in a discrete-event simulation and are empirically evaluated using a realistic load pattern.
Video transcoding refers to the process of converting a digital video from one compressed format ... more Video transcoding refers to the process of converting a digital video from one compressed format to another. It is a compute-intensive operation. Therefore, transcoding of a large number of simultaneous video streams requires a large-scale distributed system. Moreover, to handle different load conditions in a cost-efficient manner, the distributed system should be dynamically scalable. Infrastructure as a Service (IaaS) clouds currently offer computing resources, such as virtual machines (VMs), under the pay-per-use business model, which can be used to create a dynamically scalable cluster of video transcoding servers. Determining the number of VMs to provision for a dynamic cluster is still an open problem. In this chapter, we present a proactive VM allocation approach to scale video transcoding service on a given IaaS cloud. For better resource utilization, quality of service, and cost-efficiency, we use video segmentation at the Group of Pictures (GOP) level. The proposed approac...
2015 23rd Euromicro International Conference on Parallel, Distributed, and Network-Based Processing, 2015
IEEE Transactions on Services Computing, 2015
2014 IEEE 7th International Conference on Cloud Computing, 2014
2011 37th EUROMICRO Conference on Software Engineering and Advanced Applications, 2011
2012 IEEE Fifth International Conference on Utility and Cloud Computing, 2012
2013 21st Euromicro International Conference on Parallel, Distributed, and Network-Based Processing, 2013
ABSTRACT This paper presents prediction-based dynamic resource allocation algorithms to scale vid... more ABSTRACT This paper presents prediction-based dynamic resource allocation algorithms to scale video transcoding service on a given Infrastructure as a Service cloud. The proposed algorithms provide mechanisms for allocation and deallocation of virtual machines (VMs) to a cluster of video transcoding servers in a horizontal fashion. We use a two-step load prediction method, which allows proactive resource allocation with high prediction accuracy under real-time constraints. For cost-efficiency, our work supports transcoding of multiple on-demand video streams concurrently on a single VM, resulting in a reduced number of required VMs. We use video segmentation at group of pictures level, which splits video streams into smaller segments that can be transcoded independently of one another. The approach is demonstrated in a discrete-event simulation and an experimental evaluation involving two different load patterns.