SECURE: DYNAMIC DISTRIBUTED LOAD BALANCING TECHNIQUE IN CLOUD COMPUTING

: The increase in demands of information services, cloud computing proves itself to enhance scaling, agility, availability and flexibility. But cloud computing has very critical issues as load balancing, security and fault tolerance. As number of users is increasing day by day, the crucial task of cloud computing is to adjust loads of memory, CPU and network to fulfill demands of all clients. For that a number of static and dynamic load balancing algorithms are proposed. Here we are proposing a load balancing algorithm based on clusters in which cluster are formed on geographical bases. All cloud servers arranged in distributed manner. Each Cloud server have a queue length (for ex. 100) of jobs allocated to it. A server can serve up to 100 requests. As 101 request came cluster apply its load balancing algorithm. Along with Dynamic distributed load balancing algorithm we have proposed a security algorithm to secure data transmission between client and Cloud service provider. According to this security algorithm client initiates a key generation process to generate encryption and decryption key pairs that will be valid for a particular message. Likewise, a number of key pairs generated. Client can use any key pair for any data encryption/decryption which will be stored on Cloud. Also Client have to keep a record of Key Pairs with Password/PIN. This algorithm performs better in terms of Throughput, Overhead, Fault Tolerance, Resource Utilization, Response Time, and Scalability.


I. INTRODUCTION
Cloud Computing is not a single term it is everything in one word. Cloud contains everything from hardware/software to storage link and interface that deliver as service in a form of combine or single thing. Cloud computing is totally different from its name, basically services refer to infrastructure, platform, software (cloud computing delivered everything asa-service) over the single network i.e. internet. To provide efficient and effective services to the end users "load balancing" is done. "Ref. [11] ", Computing is done on the basis of service level agreement (SLA). User can avail these services as per their demand. "Ref. [9]", Load-balancing is the technique to assigning the loads to the cloud service providers to decrease the response time and have proper utilization of the available resources. In Cloud computing, Load-balancing is the one of the challenging task. Researchers proposed various loadbalancing techniques for load-balancing. A load-balancing technique which is dynamic, not require any previous information, it depends only on the current behavior of the system.

II. INTRODUCTION TO LOAD BALANCING
Load balancing is the mechanism to balance the load to the cloud nodes in a manner that Computing Communication and Signal Processing each & every node effectively utilizes the resources and minimize the response time. It also gives solution to the problem in which some cloud providers are over loaded or some cloud providers are under loaded or remains idle. The key attributes used in implementing load balancing algorithm are: efficiency, evaluation of load, communication between the nodes, estimation of load, selection of nodes, nature of the job to be delivered [1].
Dynamic load balancing has four strategies.
 Transfer strategy: It selects a job for transferring from a local node to a remote node.  Selection strategy: It identifies the processor which is best fit for processing the request or job for load exchange.  Location strategy: It selects a destination node.  Information strategy: It is for gathering information about the nodes.

III. RELATED WORK
In this section, the major participation of load-balancing in cloud computing are discussed. Khiyaita et al. [2] proposes an approach for load balancing in cloud computing, also various types of load balancing algorithms depend on the system capabilities and configuration proposed. In "Ref. [3]", author proposed best cloud resource, in while Co-operative Power Attentive considers. The technique stated in this paper, use the advantages of both techniques of computing i.e. distributed and centralized. In "Ref. [4]", author proposed an algorithm that estimated the percentages of each cloud providers. This helps in determining the nodes which are in used or remains idle. The algorithm divided into three parts-(1) Balancing section, (2) Upscale section and (3) Downscale section. In "Ref. [5]", Raul Alonso et al. says about the managing of great gathering of images in various institutions and service for analysis of large images have been generated and the data operations are modified for working in a distributed manner by using various sub-images that can be treated as individual and processed by various agents in the system. "Ref. [8]". Alexandru et al. "Ref. [6]", examined the cloud computing performance for workloads and calculate the occurrence in scientific computing workloads. They also evaluate the performance of services delivered by cloud computing. Zhang Bo et.al. In "Ref. [7]", proposed a technique which provides additional ability to the dynamic load-balancing mechanism in the cloud computing environment. The tests express that technique gained an efficient load-balancing amount and takes minimum amount of time in loading requests. In "Ref. [10]" author stated that in TLB the load balancer create index table for keeping the record of VM and their status (VM is vacant or occupied). The load balancers provide the suitable VM to the data center to process the user request. On allocation of virtual machine the load balancer update the index table and status.

IV. PROPOSED WORKED
All the cloud providers are arranged in a cluster. These clusters are arranged in hybrid nature i.e. both in distributed and hierarchical manner.
Each Cloud provider is having Service_array which is initially zero.  Step 1: Initially Service list of all the Cloud Providers are zero.
Step 2: Whenever client wants to have any service from cloud provider. It sends request to cloud service provider.
Step 3.1: if (Service_array [1] <100) then client can access services from cloud service provider 1. Else if (Service_array [2] <100) then client can access services from cloud service provider 2. Else client can access services from cloud service provider 3.
Step 4: else Cluster head transfer the request to next cluster in queue.
Step 6: Repeat step 3 until a cloud service provider found to serve client in level 1.
Step 7: If no such cloud service provider found then transfer the request to the Clusters at level 2 Step 8: Also if no such cloud service provider found then transfer the request to the Clusters at level 3.

Security Algorithm
Step 1: AS is having key with a Password specifically for a particular client to a particular cloud service provider.
Step 2: As client sends a request to authentication server by entering a PIN number, AS matches key with that PIN and send to client 1. Client 1 by using this key gets access the services and secures its data

Fig 2. Load Balancing Architecture
Here all the cloud providers are arranged in a cluster. These clusters are arranged in hybrid nature i.e. both in distributed and hierarchical manner. Each cloud provider is having a Service_array which is initially zero. Initially Service list of all the Cloud Providers are zero. Whenever client wants to have any service from cloud provider. It sends request to cloud service provider. Cluster head provider checks if (Service_array [1] + Service_array [2] + Service_array [3]) <=300. If (Service_array [1] <100) then client can access services from cloud service provider 1. Otherwise from second or third. If service array is equal to 300 then cluster head transfer the request to next cluster in queue. It repeats until a cloud service provider found to serve client in level 1. If no such cloud service provider found, then transfer the request to the Clusters at level and when a provider is free to service that client. Then security algorithm runs

VI. RESULT
In this simulation process we used different regions which form clusters, in each cluster there is data center, the data center is used to process the request from different users in the cluster, by using this proposed algorithm we get the optimized response time. In this simulation we are using four clusters, each cluster having a number of users ,the request from the users is processed by the data center associated with the cluster, to optimize the response time of the user the data center transfer their request to nearest data center to of the other cluster. The following figure shows the simulation process in which the cluster in region R3 and R4 transfer their request to the cluster of region R2. Simulation shows the response time by regions, datacenter loading time & data center request servicing time.
There are some parameters used for simulation. User Base: it is responsible for creating the traffic. Data Center Controller: it is responsible for providing the data center at various regions and also responsible for allocation and deallocation of virtual machines. Region: is the geographical area is split into six different regions on the basis of six main continent. Each region has their user base and data center. Load Balancer: it is responsible for transmitting the load on different datacenters according to the user needs.

VII. CONCLUSION
In this paper we are proposing a load balancing algorithm based on clusters in which cluster are formed on geographical basis. All cloud servers arranged in distributed manner. Along with Dynamic distributed load balancing algorithm we have proposed a security algorithm to secure data transmission between client and Cloud service provider. According to this security algorithm client initiates a key generation process to generate encryption and decryption key pairs that will be valid for a particular message. Similarly, a number of key pairs generated. Client can use any key pair for any data encryption/decryption which will be stored on Cloud. This algorithm performs better in terms of Throughput, Overhead, Fault Tolerance, Resource Utilization, Response Time, and Scalability.