Article Preview
TopIntroduction
Cloud computing has gained huge reputation in the today’s market due to its ability to host applications at any scale for the customers with minimal cost. These applications range from scientific to engineering, gaming and social networking (Buyya et.al, 2013). Cloud computing offer IaaS (Infrastrucutre as a Service), PaaS (Platform as a Service) and SaaS (Software as a Service) to address the customer demands in developing/hosting/computing applications in cloud. Through IaaS, Virtual machines are customized according to the software stack and hardware requirements of different types of scientific applications such as compute-intensive applications, data-intensive applications and throughput intensive applications. (Saeid et.al, 2012) and (Rodrigo et.al, 2014) addressed how scientific workflow based applications such as Montage, Cybershake, LIGO, SIPHT are computed in cloud.
Cloud is the preferable choice for Geoscience applications as it operates on massive amount of spatial and non-spatial data and it requires huge amount of computational, storage and network resources. For such applications, cloud computing provides infrastructure support through IaaS. With the help of PaaS, developers or scientists can explore new programming models to overcome computationally challenging problems. Applications have been redesigned and implemented on top of cloud programming application models and platforms to leverage their unique capabilities (Buyya et.al, 2013). Salesforce.com, Microsoft Dynamics, Google App Engine and Microsoft Azure are few examples of PaaS support different programming models and platform to develop and deploy customers applications.
As Cloud Computing has the ability to transform capital costs to operational costs, business and consumer applications can reap the benefits of cloud computing. SaaS provides services from documentation storage to office automation that allows users to synchronize any file across any platform at any time irrespective of the devices (Buyya et.al, 2013). Media application (Jia et.al,2018), queries, graph processing, Machine learning and Log Analysis (Konstantinos et.al, 2018), Soft Real time Application such as Video Conferencing, real-time control systems, multimedia processing, augmented reality platforms, Cloud Based Radio Access Network (CRAN -architecture) (Yuhan et.al,2017), Big streaming data processing paradigm such as Twitter Storm, social network analytics, e-commerce (Javad et.al,2016), SQL-like queries (Mohamed et.al, 2018), web applications (Walter et.al, 2017) and scientific workflow applications such as Montage and LIGO (Vinothina & Sridaran,2014) are the different types of applications can be computed in cloud computing.
In order to facilitate the researchers in computing the tasks in cloud computing, this paper reviewed in detail on objectives, algorithms used to schedule, strategies to allocate cloud resources and type of cloud environment used to compute each of the above mentioned applications already proposed by researchers. The contribution of this paper is as follows:
- •
Analyses the scheduling and resource allocation schemes.
- •
Illustrate the nature of tasks, resources, other inputs and algorithms used for mapping process.
- •
Discusses the considerations for problem formulation, Computational complexity and the future direction of the paper.
- •
Summarizes research gap of the different strategic challenges, techniques and methodologies.
TopSignificance Of Proposed Work
Due to increase in cloud services, resource allocation and task scheduling is challenging tasks for cloud service providers as it impacts revenue and resource utilization (Madni et.al, 2016). Cloud Service Providers employ scheduling algorithms to schedule the incoming request/tasks and to manage their computing resources efficiently. Hence, researchers have been motivated to design and develop task scheduling algorithms and resource allocation strategies in cloud computing. The proposed work also helps the researchers who are working in Application Integration technology which is the major thrust of most of the industries to run their business process without any hindrance. Integration platforms typically provide a specific domain language, development toolkit, runtime engine, and monitoring tool. The efficiency of the runtime engine in scheduling the tasks has a direct impact on the performance of a solution and this is one of the challenges faced by integration platforms (Sellaro et.al, 2017).