An API for Development of User-Defined Scheduling Algorithms in Aneka PaaS Cloud Software: User Defined Schedulers in Aneka PaaS Cloud Software

An API for Development of User-Defined Scheduling Algorithms in Aneka PaaS Cloud Software: User Defined Schedulers in Aneka PaaS Cloud Software

Rajinder Sandhu (Jaypee University of Information Technology (JUIT), India), Adel Nadjaran Toosi (Monash University, Australia) and Rajkumar Buyya (The University of Melbourne, Australia)
DOI: 10.4018/978-1-5225-8407-0.ch009


Cloud computing provides resources using multitenant architecture where infrastructure is created from one or more distributed datacenters. Scheduling of applications in cloud infrastructures is one of the main research area in cloud computing. Researchers have developed many scheduling algorithms and evaluated them using simulators such as CloudSim. Their performance needs to be validated in real-time cloud environments to improve their usefulness. Aneka is one of the prominent PaaS software which allows users to develop cloud application using various programming models and underline infrastructure. This chapter presents a scheduling API developed for the Aneka software platform. Users can develop their own scheduling algorithms using this API and integrate it with Aneka to test their scheduling algorithms in real cloud environments. The proposed API provides all the required functionalities to integrate and schedule private, public, or hybrid cloud with the Aneka software.
Chapter Preview

1. Introduction

Cloud computing has proved to be the most revolutionary technology of the last decade which resulted in many organizations moving toward cloud-based infrastructure (Buyya, 2009). From mobile applications to large data intensive applications are using cloud-based infrastructure for fulfilling their IT resource requirement. With more data generation, the need for cloud computing is increasing day by day for many emerging IT technologies such as Internet of Things and Big Data (Gubbi et al, 2013). Cloud computing deployment models can be broadly classified into Public cloud, Private cloud and Hybrid cloud. Among all these models, hybrid cloud is gaining popularity with its features like infinite resources and cost benefits. Hybrid cloud utilizes public cloud resources if private cloud resources cannot complete the task with given Quality of Service (QoS) parameters. This makes hybrid cloud model a good candidate for many applications such as mobile devices, small industries, and other smart environments (Wang et al, 2013).

As cloud computing contains a colossal number of IT resources whether it is a private cloud or public cloud, it is difficult to test new algorithms for better and efficient scheduling. Many researchers use simulation tools to test and deploy different scheduling algorithms for different kind of applications in the cloud environment. A common used simulation tool is CloudSim (Calheiros et al, 2011) while other tools such as iFogSim and IoTSim (Gupta et al, 2017; Zeng et al, 2017) are also gaining popularity for testing IoT based applications on cloud computing environments. But, results from even the most efficient simulation software always differ from actual results because many other aspects such as network, bandwidth also play an important role. Infrastructure as a Service (IaaS) provider such as Amazon EC2, or Microsoft Azure (Zeng et al, 2017; “AWS”, n.d.) give access to underlying IT resources to the user. But these IaaS providers do not give rights to the end user for making any change in the scheduling policies for the application. There are many options in the market for PaaS where the end user can create individual tasks and submit them to the PaaS provider. Many PaaS providers do not provide access to underlying IT infrastructure making it very difficult to change and test new scheduling policies (Shon et al, 2014). Due to these constraints, research in the development of new scheduling policies is taking a big hit for real cloud computing environments.

Aneka (Vecchiola et al, 2009) is a PaaS cloud provider developed in Microsoft .net for developing cloud computing infrastructure and applications using various programming models and available infrastructure. Aneka supports programming models such as Task, Thread and Map-Reduce while users can develop their own model. In Aneka, infrastructure can be developed using a cluster of multicore machines, private cloud and public cloud. Aneka contains inbuilt scheduling policies which are used to schedule jobs on private cloud created using multicore machines or using private cloud software such as OpenStack. Aneka provides dynamic provisioning feature which allows Aneka applications to use public cloud such as Amazon EC2 and Microsoft Azure when desired QoS cannot be achieved using the private cloud setup (Buyya et al, 2016). Aneka is one of its kind which gives the end user full freedom to develop applications in many languages and deploy it on any infrastructure available with them. It gives full access and right of underlying infrastructure to end user and well as full access to SDK for development of applications (Toosi et al, 2018). Aneka has many features but it is difficult for the end user to create their custom scheduling and provisioning policies.

Complete Chapter List

Search this Book: