Cloud computing has grown to become a popular distributed computing service offered by commercial providers. More recently, Edge and Fog computing resources have emerged on the wide-area network as part of Internet of Things (IoT) deployments. These three resource abstraction layers are complementary, and provide distinctive benefits. Scheduling applications on clouds has been an active area of research, with workflow and dataflow models serving as a flexible abstraction to specify applications for execution. However, the application programming and scheduling models for edge and fog are still maturing, and can benefit from learnings on cloud resources. At the same time, there is also value in using these resources cohesively for application execution. In this article, we present a taxonomy of concepts essential for specifying and solving the problem of scheduling applications on edge, for and cloud computing resources. We first characterize the resource capabilities and limitations of these infrastructure, and design a taxonomy of application models, Quality of Service (QoS) constraints and goals, and scheduling techniques, based on a literature review. We also tabulate key research prototypes and papers using this taxonomy. This survey benefits developers and researchers on these distributed resources in designing and categorizing their applications, selecting the relevant computing abstraction(s), and developing or selecting the appropriate scheduling algorithm. It also highlights gaps in literature where open problems remain.
@cite_82: Cloud computing has emerged during the last decade to be widely adopted nowadays in several IT areas. It consists to propose market or not market-oriented resources as services that can be consumed in a ubiquitous, flexible and transparent way. In this paper, we deal with scheduling, one of the major cloud computing issue. According to the targeted cloud configuration, the addressed objectives and the accuracy of the view that one have of the cloud, we propose a taxonomy that identifies three levels of scheduling: service-level, task-level and Virtual Machine-level. We compare different cloud scheduling approaches from the literature and identify the common features and the differences between all the approaches according to each cloud scheduling level using different criteria. The reported results of the comparison show inter alia a weakness in the proposed schedulers, almost no Pareto multi-objective solving algorithms and very few realistic experiments facing the real cloud constraints.
Similarly, @cite_82 also discuss -- service, task and VM -- for public and private clouds. We limit our focus to that are exceedingly popular and where issues of elasticity and costing offer clear challenges and opportunities to end users, and complement this with emerging edge and fog resource layers. Our work also emphasizes the , a subset of which is the task level considered by @cite_82 , with the objective of meeting QoS requirements and or budget constraints for the application. We also offer greater detail on various aspects of the unit of scheduling, which is lacking in these surveys.