Keywords

1 Introduction

With the recent advancement in various technologies, cloud computing has emerged as a new paradigm providing various services to the end user. It has various characteristics which include multitenancy, scalability, productivity and performance [1]. Cloud computing refers to operations such as distribution of services over the web, hardware, and system software that grants the various required services in the data centres. At the same time cloud computing also faces some challenges like limited control to the end user, security, privacy and many quality issues [2]. Some of the quality issues are like Quality of Service (QoS) and Quality of experience (QoE) have a huge impact on cloud computing environment. Basically QoE is a subset of QoS that also endeavors the amount of service parameters. Services like cloud computing storage or computer network falls under QoS which is defined as the amount of overall performance of the service. Further emergence of IoT has made this challenge more critical to tackle due to continuous interaction of user with the system.

IoT and cloud have developed into two very closely related internet technologies providing support to one another. Some previous studies have provided the evaluation model for QoS but to our knowledge no evaluation models have been proposed for IoT based applications based on QoE [3, 4]. IoT based application are devices on web that collect data on real time basis which some time can result in late delivery of data. This late delivery of data affects QoE in many ways as it is not efficient enough for the end user to use IoT application devices [5]. To overcome from this issue one can do computations near to data generating devices which improves QoE in turn.

QoS is defined as the estimation on the whole performance of a service whereas QoE is defined as the level of user satisfaction over a service or product. QoS is basically a set of procedures that helps to manage the network resources based on some attributes. There are various attributes in QoS which are helpful in making the quality of services or applications better than their previous results. QoS and QoE are two quality issues which are interlinked with each other as they both helps in improving the quality of services and applications used in cloud [5]. Figure 1 shows the relation between various qualities aspects related to one single quality issue that is quality of service (QoS). All these quality aspects such as quality of data (QoD), quality of information (QoI) and quality of performance (QoP) share some indistinguishable attributes. As we know that QoE is directly related to QoS which results in mapping of the QoS into the users perceived QoE. Also, QoS is affected by various aspects of QoS which can be technical or non-technical. Technical aspects include the end to end network delay, coverage area and equipment flexibility whereas non-technical includes the support to customers, price decision based on service and providing services to the end user. QoS and QoE are equally important in providing good quality services to the applications.

Fig. 1.
figure 1

Relationship of various quality metrics with QoS.

2 QoS Models

For delivering good quality characteristic, QoS is useful for cloud consumers who expect this and for the cloud purveyors, whoever requires the trade-off between the QoS levels and the operational cost. Various QoS based models have been proposed in the field of cloud computing to handle the challenges like security and privacy, latency, resource scheduling, fast internet speed, energy consumption, load balancing, service composition and performance, as represented in Fig. 2 [6]. The major issue in cloud is of security and privacy, as there is no control on data which is being transferred or received. Performance is another issue in cloud computing that consider the capability of cloud organisation. Resource scheduling in cloud is considered at various levels namely hardware, software, security and privacy and further other features are dependent on management and resources. The QoS here means the availability, reliability and level of concert on hand with the help of a platform. QoS is basic for cloud users and expect from the purveyors to deliver the declared features. In this technical survey we have discussed the issues related to resource allocation based on QoS in cloud computing environment. QoS can be improved by balancing the load on various machines by consecutively reducing the delay. Further using these system models the values of QoS such as availability, reliability and response time are evaluated. There are various QoS methods like resource management, admission control mechanism, scheduling mechanisms, performance models and monitoring mechanisms [8]. All these mechanisms provide a closer view about the current methods, techniques and the applications to cloud computing problems.

Fig. 2.
figure 2

Relationship of various quality metrics with QoS.

2.1 Cloud Based Model

The term cloud computing can be portrayed as the organised device mechanism in which the users would be able to utilize the computing applications [9,10,11,12]. The main objective is to make the storage infrastructure and computing available for the end users regardless of their location and time. However, various cloud based models have been proposed in the field of the trust management, load balancing and queuing model but still a lot of improvement is required to obtain better QoS [13]. Here, Table 1 summarizes various cloud based models proposed over the period of time.

Table 1. Cloud based models
Table 2. Resource provisioning in cloud computing
Table 3. Various algorithms for resource provisioning in cloud computing

2.2 Cloud Computing Challenges

There are various challenges [30] which have serious risk to the end user satiability factor. All these challenges are listed as follows:

  • Resource Scheduling [6]: It is a challenging job and scheduling particular resources to cloud efforts relies on the QoS demands of cloud appliances. In cloud computing environment issue such as uncertainty, heterogeneity and dispersion of resources discovered the resource allocation problem which cannot be considered with available resource allocation strategies.

  • Security [6]: It is one of the main issue which leads to causing risk for a huge amount of data stored on cloud in different locations even in all over globe. Through many approaches on the subject in cloud computing, data privacy and security are more significant for the forthcoming growth of cloud computing technology in industry and government.

  • Performance [6]: It is also one of the important issue which measured the power of cloud organisation. The results might not come out to be good enough with respect of some parameters such as memory, CPU speed and bandwidth.

  • Load balancing [6]: With the help of this technique in cloud computing workload has been scattered among all the nodes. Basically it is used to get in touch with great consumers and evaluate the proportion of resources to make sure none of the nodes are overloaded.

  • Service Composition [13]: Due to ebullient development of the services which are offered cloud service agents faces some difficulties in delivering the quality of service advancements.

  • Fast internet speed [6]: With the support of cloud systems, business gets the ability to keep money on hardware and software however requires overspending on bandwidth. This is not feasible to fully utilize the services of cloud with low speed communication channels.

  • Latency [6]: One of the major issues in cloud computing environment which causes difficulties in the enjoyable and usable devices. Latency in the data exchanges over the Internet can be much higher. This delay can cause increase in the costs to users of several cloud services.

  • Energy Consumption [16]: Amazon conducted a survey which conveys the cost depletion of its data centres to be 53% and the entire cost is used by the servers. The CPU, memory, disk storage and network are important consumers of energy in a server.

3 Resource Provisioning in Cloud Computing

Resource provisioning in cloud computing as presented in Table 2, is supported with two major factors known as resource availability and resource allocation. Resource availability is the vision to make available the resources anywhere and anytime. If the allotment to the resources is not organized accurately then the services gets starve for allocation of their required resources. Thus by analyzing a single cloud service resource and therefore on the basis of some models the availability of cloud computing services gets evaluated [31]. Samimi et al. [21] have proposed a new technique for allocating resources in cloud computing environment known as Combinatorial Double Auction Resource Allocation (CDARA) technique. This model is helpful in evaluating its efficiency with an economic perspective. Later new approaches have been proposed for allocating resource with less amount of wastage and more profit. These approaches consider various parameters like time, number of processor requests, cost, resource assigned, resource availability, resource selection etc. In [22], Goiri et al. have presented a resource level metric that enables the users to allocate their resources dynamically between the running services with respect to their demands. This metric helps in performance of CPU by managing and specifying fine grain guarantees. So with the help of this metric resources can be allocated dynamically. In [5], Calheiros et al. have proposed a technique for distributing resources to software as a service (SaaS) applications. The main aim of this model is to fulfill the QoS targets related to service time and usage of available resources. They have used Aneka platform for developing scalable applications and for integration between the Desktop Grids and cloud [5]. In [23] an algorithm for resource evaluation and selection is presented with an extensible QoS model. In private cloud to increase the rate of resource utilization an algorithm is proposed to reduce task response time in [24].

3.1 Resource Provisioning Algorithms

To improve the QoS and QoE various types of algorithms such as offloading algorithm, cloud computing based algorithms [32, 33] and scheduling algorithms [34] are being used as presented in Table 3. The development in cloud computing technologies has led to provide distinct cloud services to its service subscribers. These services can be classified into two groups: Application services and Utility computing services. These services are measured with the help of some QoS parameters and QoS model [26]. Further, considering the characteristics of the cloud computing a job scheduling algorithm based on Berger model has been proposed. This algorithm can execute the user tasks [27]. The main aim of the cloud provider is to achieve greater benefit and, satisfy the various QoS for user’s jobs. A genetic algorithm has been proposed for a much better scheduling in the cloud environment in. Proposed technique is helpful in maximizing the profit of cloud providers which is supported by a number of evaluations and results [29]. In a system, resources also need to be scheduled such as they are not creating problems for the user in future works. Thus QoS differentiate system model has been presented in [28] for allocating resources in cloud computing system among various QoS - constrained users. To model the problem of cloud service composition an approach based on Genetic Algorithm is proposed in [35].

4 Challenges and Discussions

QoS main objective is to enhance the QoS by maintaining the delay to a smaller quantity by weighing the load in cloud computing environment. Audio, multimedia video conferencing etc. are planned to be the primary applications of this area where some improvement in delay might be useless. This section describes some challenges such as security and privacy, latency, resource scheduling, fast Internet speed, energy consumption, load balancing, service composition and performance which are described as follows:

  • Strictly providing the required resources to the cloud and by proper scheduling of the resources would make the resources more organised.

  • Exponential increase in the links which are harmful and can be utilised by the invaders for malicious activities. Also increasing usage of data can led to sensor based connectivity and these nodes can further misuse the data collected from the users.

  • By fulfilling the user demands and services of the end users from the cloud, the performance can be improved.

  • Data in the cloud is dynamically stored among all the nodes resulting in reduce in load balancing problem in cloud computing.

  • Difficulties as faced by the cloud service purveyors for delivering an extensive range of composite cloud services, the purveyors requires to setup a shared understanding on large scale cloud scheme leading to a proper service composition.

  • To make the network speed work faster for the cloud the computer, servers and routers must be able to communicate continuously sharing information.

  • In resource allocation there are two types of workloads in cloud known as homogeneous and heterogeneous. Thus the cloud systems should be prepared such that both of these types of workloads can be allocated.

  • Latency is the main issue which can be improved by using a wired connection and thus resulting in reduce costs which improves the satisfaction level of the customers.

  • A server is built consisting of various components such as CPU, power supply, fans, memory and disks whose power intake can be enhanced by using hardware optimization leading to less energy consumption.

5 Conclusion

Cloud has extremely eased the provisioning of capacity method, at the same time it also produces various issues in the administration of the QoS. QoS includes availability, the levels of performance and reliability provided by the application or platform or the infrastructure that serves it. Research in modeling of workload and their applications in QoS supervision in cloud computing. Various QoS related parameters have been addressed in this work in which throughput, availability, and response time are some of the essential factors considered for cloud computing. QoS attributes consumer class supplies a structure for the choice of the better matched service according to the end user. The security class is helpful in the assessment of security and privacy issue in service associates. Eventually, the network architecture and service execution time groups provisions a structure for evaluating hardware functioning and sketching an understanding of the network architecture. This paper also discusses the various research actions that are being considered in the system and workload modeling, their distinct applications in managing QoS in cloud computing environment. In this paper, we have provided the technical measures for provisioning of resource allocation and resource availability in cloud computing environment. Further, we have discussed the various challenges in cloud computing environment and how these challenges could be important in proposing future designs and algorithms. Also, a detailed discussion related to various cloud based QoS models for developing trust in cloud, designing load balancing algorithms and most importantly for security and privacy preparing such algorithms which help in detecting the difference between the service suppliers and the authorised access control users.