AN IMPROVED RESOURCE ALLOCATION STRATEGY BASED ON PACKAGE LEVEL ACCESS IN CLOUD ENVIRONMENT

Cloud computing is an emerging field of computer science, where heterogeneous services such as applications, servers and storage are delivered to an individual or organization's computer and devices through the Internet. In the proposed research work, a load balancing algorithm is designed, to provide proper utilization of all resources while processing the requests received from the users. We have implemented the ‘package’ level access at the Virtual Machines. We have proposed three types of packages like basic, medium and premium according to the requirements of the Cloudlets. In the basic package, we have the Virtual Machines with low capacity and in the premium package we are having the Virtual Machines with higher capacity, whereas the medium is of intermediate capacity of MIPS and RAM. In the proposed approach, the capacity, status and current load of every Virtual Machine is computed before allocating the new request of the user. Different parameters like waiting time, execution time and turnaround time of the Cloudlets are computed and analyzed. The proposed research provides the anticipated results with the implementation of the proposed algorithm. Compared with the other job scheduling algorithms, the proposed load balancing algorithm can outperform them in circumstances where the load and Virtual Machines are heterogeneous.


INTRODUCTION
Cloud computing is an on demand service in which shared resources, information, software and other devices are provided according to the clients requirement at specific time. It's a term which is generally used in case of Internet. The whole Internet can be viewed as a cloud. Capital and operational costs can be cut using cloud computing [36].With traditional desktop computing, we run copies of software programs on our personal computer. The documents we make are stored on our own pc. Although documents can be accessed from other computers on the network, they cannot be accessed by computers outside the network. This is PC-centric. By cloud computing, the software programs one use are not run from one's personal computer, but are quite stored on servers accessed via the Internet. If a computer crashes, the software is still available for others to use. Similar goes for the documents one create; they are stored on a collection of servers accessed through the Internet. Anyone with permission can not only access the documents, but can also edit and cooperate on those documents in real time. Unlike traditional computing, this cloud computing model is not PC-centric, it's document-centric. Cloud Computing may be a term accustomed define each a platform and kind of application. As a platform it provides, constructs and reconfigures servers, while the servers is physical or virtual machines. Cloud could be a term used as a trope for the wide space networks (like internet) or several such giant networked atmosphere. It came partially from the cloud like image wont to represent the complexities of the networks within the schematic diagrams. It represents all the complexities of the network which can hold everything from cables, routers, servers, knowledge centers and every one such alternate devices.

LOAD BALANCING
It is a process of reassigning the total load to the individual nodes of the collective system to make resource utilization effective and to improve the response time of the job, simultaneously removing a condition in which some of the nodes are over loaded while some others are under loaded. It is used to achieve a high user satisfaction and resource utilization ratio, hence improving the overall performance of the system. Proper load balancing can help in utilizing the available resources optimally, thereby minimizing the resource consumption. It also helps in implementing fail-over, enabling scalability, avoiding bottlenecks and over-provisioning, reducing response time etc. Load Balancing is a method to distribute workload across one or more servers, network interfaces, hard drives, or other computing resources [13]. Typical datacenter implementations rely on large, powerful (and expensive) computing hardware and network infrastructure, which are subject to the usual risks associated with any physical device, including hardware failure, power and/or network interruptions, and resource limitations in times of high demand. Load balancing in the cloud differs from classical thinking on load-balancing architecture and implementation by using commodity servers to perform the load balancing. This provides for new opportunities and economies-of-scale, as well as presenting its own unique set of challenges. Load balancing is used to make sure that none of your existing resources are idle while others are being utilized. Modern high-traffic websites must serve hundreds of thousands, if not millions, of concurrent requests from users or clients and return the correct text, images, video, or application data, all in a fast and reliable manner. To cost-effectively scale to meet these high volumes, modern computing best practice generally requires adding more servers [28]. A load balancer acts as the "traffic cop" sitting in front of your servers and routing client requests across all servers capable of fulfilling those requests in a manner that maximizes speed and capacity utilization and ensures that no one server is overworked, which could degrade performance. If a single server goes down, the load balancer redirects traffic to the remaining online servers. When a new server is added to the server group, the load balancer automatically starts to send requests to it.

LOAD BALANCING CHALLENGES
Although cloud computing has been widely adopted. Research in cloud computing is still in its early stages, and some scientific challenges remain unsolved by the scientific community, particularly load balancing challenges [1].
i. Providing services automatically: A main feature of cloud computing is elasticity; resources can be allocated or released automatically as per the end user's requirement. Here challenge is to how to allocate or release the resources by keeping the system performance same as traditional one.
ii. Virtual Machines Migration: Virtualization is a mean to create a virtual or replicated form of a device or resource that can be a server, storage device, any network or an operating system to unload a physical machine that is currently heavily loaded. Here main challenge is to dynamically distribute the load from that overload physical machine to some other side by moving virtual machine to avoid bottlenecks in Cloud computing system.
iii. Stored Data Management: Cloud computing includes large sum of data. Main challenge is to distribute data across the cloud that is stored optimally while maintaining fast access for users.

iv.
Usage of small data centers: Small datacenters can be more beneficial, cheaper and less energy consumer than large datacenter. Load balancing will become a problem then to ensure a maximum response time with an optimal distribution of resources.
v. Spatial Distribution of the Cloud Nodes: Some algorithms are designed to be efficient only for closely located nodes where communication delays are comparatively small. Here challenge is to design a load balancing algorithm that can work for spatially distributed nodes. For such nodes there would be some other factors too to be noticed such as the speed of the network links among the nodes, the distance between the user and the processing nodes, and the distances between the nodes involved in providing the cloud services. vi. Point of Failure: Load balancing mechanism must be designed in a way to overcome from situations such as single point failure. For such situations there are some mechanisms that involve certain pattern that uses a controller for whole system. In such situation if that controller fails, it can cause failure to the whole system. It is also a challenge while making a mechanism for proper load balancing in clouds.

vii.
Algorithm Complexity: Load balancing algorithms are preferred to be less complex and must be easy to understand in terms of implementation and operations. High complexity will cause negative performance issues.

RELATED WORK
In this section literature survey regarding the previous work and related techniques about the load balancing techniques of cloud computing are presented. We have studied and analyze many load balancing techniques for cloud computing. After our detailed literature review we are able to discover theme of our work including the techniques we have incorporated in various phases, to implement it and to evaluate our results and conclusion. Reena et al. (2015) discussed an efficient Dynamic Load Management Algorithm where load is managed by the server by considering the present status of present VMs for request assignment sharply. That distribution of the entire incoming request among the virtual machines effectively.
[34] Hiren et al. (2015) presented a Flexible load sharing algorithm (FLS) which introduce the third function. The third function makes partition the system in to domain. This function is helpful for the selection of other nodes which are present in the same domain. The third partition function will make the partition in to each domain so that using the remote location the information will be transferred to another domain. Such that the node will exchange the information from one node to another node. By applying the flexible load sharing to the particular domains in to the distribute system, the performance can be improved when any node is in overloaded situation.

RESEARCH GAP
Cloud computing thus involving distributed technologies to satisfy a variety of applications and user needs. Sharing resources, software, information via internet are the main functions of cloud computing with an objective to reduced capital and operational cost, better performance in terms of response time and data processing time, maintain the system stability and to accommodate future modification in the system .So there are various technical challenges that needs to be addressed like Virtual machine migration, server consolidation, fault tolerance, high availability and scalability but central issue is the load balancing , it is the mechanism of distributing the load among various nodes of a distributed system to improve both resource utilization and job response time while also avoiding a situation where some of the nodes are heavily loaded while other nodes are idle or doing very little work. It also ensures that all the processor in the system or every node in the network does approximately the equal amount of work at any instant of time.


The current algorithm will work only in the homogeneous cloud system where all the resources are of same configuration.
 Cloudlets are not assigned to the virtual machine according to their capacities. There may be a scenario where a cloudlet with highest priority is assigned to the machine with lowest capacity in the host.


The status or the current load of the VM is not computed before allocating the new request to it.

OBJECTIVES
The primary purpose of the cloud system is that its client can utilize the resources to have economic benefits. A resource allocation management process is required to avoid underutilization or overutilization of the resources which may affect the services of the cloud.


To implement and study the performance of existing load balancing algorithms.


To design the improved load balancing algorithm with heterogeneous Virtual Machines with package level access in datacenter with different hosts.


To improve the different parameters by compute the capacity, status and current load of the virtual machine before allocating the new request of the user.


To develop the proposed algorithm and compare the performance of proposed algorithm with existing algorithm.

RESEARCH METHODOLOGY
Cloud services provide computing on demand in real time. Number of users accessing cloud environment are always more than that were using it on previous day. Cloud has application areas for developing applications, providing and managing infrastructure, patching applications. Users and their requests for accessing cloud infrastructure are highly dynamic and loading servers running in data center. We need efficient strategy to balance load on these servers so that the servers don't get crash and they can persist long. Precisely Objective is to achieve accuracy, performance of servers and the cloud environment can be maintained. The lease types associated with the jobs are:  Cancellable: These requests can be scheduled at any time after their arrival time. It need not be resumed later. Cancellable leases do not guarantee the deadline.
 Suspendable: Leases of this type can be suspended at any time but should be resumed later. This type of lease guarantees the execution but not in a specific deadline. Suspendable leases are flexible in start time and can be scheduled at any time after their ready time. In the case of preemption, these leases should be rescheduled to find another free time-slot for the remainder of their execution.
 Non-Preemptable: The leases associated with such requests cannot be preempted at all.
The proposed algorithm is implemented through the simulation software like cloud sim used. For the implementation of the application, java language is used. This research work considers Datacenter, VM, host and Cloudlet components from CloudSim for implementation of a proposed algorithm.
 Initialize the Cloud Sim in Java by creating different data centers having multiple number of hosts of different configurations.
 Each Host in the datacenter will have the different numbers of Virtual machines of different capacities.
 Then we will create the Cloudlets of varying length and size of different users.


The virtual machines are having service level packages with different resources inside it.
 Create the multiple number of user cloudlets of different requirements and size.


The Datacenter broker inside the cloud simulator will retrieve the number of cloudlets and number of virtual machines created by the user.


The broker will maintain the LOAD distribution table in which the current status, current package, VM Capacity and the number of cloudlets submitted to each and every Virtual machine will be stored.


The status will specify whether the virtual machine is busy or idle. The allocation entry in the table will define the total number of tasks submitted to this particular virtual machine.
 Submit the job of the user to the datacenter broker.
 DCB will first find the suitable VM according to the requirements of the cloudlet and will match and find the most suitable VM according to its availability or the machine with least load in the LOAD distribution table.
 Fetch that virtual machine which is having more power than another virtual machines and is under loaded.


If the multiple virtual machines are satisfying the requirement, then the machine which is available at the first index will be used for executing the given task.


Change the status of that virtual machine from idle to busy.
 Dispatch our cloudlet to that virtual machine and we will modify the rating of that particular virtual machine.

SIMULATION RESULTS
Our proposed work, will start its process by arranging multiple resources inside the virtual machines. The virtual machines are having service level packages with different resources inside it. The broker will maintain the load distribution table in which the current status, current package, VM Capacity and the number of cloudlets submitted to each and every Virtual machine will be stored. The status will specify whether the virtual machine is busy or idle. The allocation entry in the table will define the total number of tasks submitted to this particular virtual machine. DCB will first find the suitable VM according to the requirements of the cloudlet and will match and find the most suitable VM according to its availability or the machine with least load in the load distribution table. Once each of the virtual machines has finished their current execution, each of them will update their status and ready to be re-assigned again. To conclude the results parameters like total processing time, total processing cost and total waiting time has been evaluated for both the existing work and proposed work.

Figure 3. Flow Chart of Proposed Methodology
In the following tables, we have taken multiple cloudlets ranging from 5 to 100000 for both of the base work and proposed work and are compared with each other. To compute the results of proposed work we are taking virtual machines with MIPS = 100, RAM = 256 MB and Bandwidth = 300 MB/second to calculate the parameters. In table 1, different types of cloudlets have been shown that are taken for evaluation of results in the existing and present work.      For the above bar chart, it is clear that total processing cost has been reduced.

TOTAL WAITING TIME
Waiting time=Allocation Time-generation Time Figure 6 illustrates that waiting time for the base work and proposed work

Figure 6. Total waiting Time
For the above bar chart, it is clear that total waiting time has been reduced.

CONCLUSION
The performance of improved load balancing algorithm has been studied in the research work. The request time for the policies applied are same which means there is no effect on data centers request time after changing the algorithms. In order to evaluate performance of the proposed model simulation study has been put through various test conditions. It has been found that the model works well in ensuring an even distribution of the workload. In the current work, it has been assumed that all the incoming requests are independent to each other. The experiment conducted is compared with previous algorithm. The result indicates that the approaches outperform to previous algorithm in terms of total processing time, total processing cost and waiting time. To obtain a better solution, the model should be made more realistic by considering issues related to load balancing such as data locality, communication cost and flow time and results can be tested in real Cloud environment. However, within a computational cloud environment high throughput is of great interest rather than the load balancing. To achieve this, we have proposed the new dynamic load balancing algorithm. The experimental results obtained by applying the new proposed algorithm in the Cloud Sim Simulator, shows that the new work has outperformed the existing scheduling algorithms in large scale distributed systems.