Software as a Service (SaaS) cloud computing has emerged as an attractive platform to tackle various problems of the traditional software distribution model, such as the requirement to acquire and maintain expensive hardware and software infrastructure. SaaS, however, involves many challenges, mainly due to the heterogeneity and multitenancy of the underlying host environment, as well as the nature of the applications executed on such platforms. Applications are usually bags-of-tasks, consisting of independent component tasks that can be executed in any order, featuring different degrees of variability in their computational demands. Furthermore, according to the service level agreement between the cloud provider and the end-users, the execution of such applications must typically complete within a deadline, providing results of acceptable quality.Consequently, one of the most important aspects of SaaS cloud computing is the effective scheduling of multiple parallel applications, avoiding any service level agreement violations. Towards this direction, our contribution in this paper is twofold: (1) We enhance some of the most commonly used scheduling algorithms for bag-of-tasks applications, by utilizing approximate computations, and (2) we investigate the impact of different levels of variability in the computational demands of the applications on the performance of the examined heuristics.
KEYWORDSapproximate computations, bags-of-tasks, computational demand variability, performance evaluation, real-time scheduling, SaaS clouds
INTRODUCTIONSoftware as a Service (SaaS) cloud computing is becoming a widely adopted paradigm, poised to replace the traditional software distribution model, which requires on-premises software. According to this model, software is provided to the end-users as a service over the Internet, utilizing a particular pricing scheme, such as a pay-as-you-go or a subscription-based approach. SaaS provides better operational efficiency, by eliminating the requirement for upfront investment and ongoing infrastructure maintenance. 1 Furthermore, it provides better scalability, accessibility, and easier administration. The resources of the underlying host environment are usually virtualized, following a multitenant approach.That is, applications of different users may share the same virtual machines (VMs). 2 A service level agreement (SLA) is a contract between the SaaS cloud provider and the end-users. It defines the type of the provided service, the quality of service (QoS) requirements and the adopted pricing scheme. 3Applications in SaaS clouds usually have firm deadlines, within which they must finish execution. Such applications are typically referred to as real-time, as the correctness of their output does not only depend on the logical results of the computations but also on the time at which the results are produced. If a real-time application with a firm deadline cannot finish execution within its deadline, then its results will be useless. 4,5Based on the observation that it is often more...