Classification of grid.
Computational approaches contribute a significance role in various fields such as medical applications, astronomy, and weather science, to perform complex calculations in speedy manner. Today, personal computers are very powerful but underutilized. Most of the computer resources are idle; 75% of the time and server are often unproductive. This brings the sense of distributed computing, in which the idea is to use the geographically distributed resources to meet the demand of high-performance computing. The Internet facilitates users to access heterogeneous services and run applications over a distributed environment. Due to openness and heterogeneous nature of distributed computing, the developer must deal with several issues like load balancing, interoperability, fault occurrence, resource selection, and task scheduling. Load balancing is the mechanism to distribute the load among resources optimally. The objective of this chapter is to discuss need and issues of load balancing that evolves the research scope. Various load balancing algorithms and scheduling methods are analyzed that are used for performance optimization of web resources. A systematic literature with their solutions and limitations has been presented. The chapter provides a concise narrative of the problems encountered and dimensions for future extension.
- load balancing
- resource management
- resource scheduling
- load measurement
- fault tolerance
The performance of any web server has been affected by the web traffic usually, and the web server makes a slow response because it gets overloaded. Due to the increased traffic over the Internet, a web server faces challenges to serve the large number of users with high-speed availability. Therefore, the concept of resource confederation comes in existence. The popular Google web server works on the same concept. It distributes the user’s query in different web servers which are geographically distributed at various locations. The web server requires several mechanisms to deal with linked open data (LOD) to fulfill the user’s request [1, 2]. Load balancing plays a vital role in the operation of distributed and parallel computing. It partitioned the incoming workload into smaller tasks that are assigned to computational resources for concurrent execution. The load may be CPU capacity, memory size, network load, delay, etc. The reason behind load balancing is to handle requests of multiple users without degrading the performance of web server. Load balancer receives requests from user, determines the load on available resources, and sends request to the server which is lightly loaded. The major functions of load balancer are as follows:
Distributes incoming traffic across multiple computational resources
Determines resource availability and reliability for task execution
Improves resource utilization
Increases client satisfaction
Provides fault tolerance and flexible framework by adding or subtracting resources as demand occurs
The load balancing algorithm (LBA) exists based on current state of the system as shown in Figure 1. Static algorithms require prior information about the system characteristics such as processing capability, memory, number of active connections etc., while DLB algorithms use current status of the system to make scheduling decisions.
Load balancing significantly improves global system performance in terms of throughput and resource utilization. The several reasons to use LBAs are as follows: cost optimization, fault tolerance ability, system adaptability and extensibility, decreased response time, idle time of resources, increased throughput, reliability, and prevents starvation [3, 4].
To incorporate these benefits, it is important to select the suitable load balancing algorithm (LBA) for web resources in distributed environment [5, 6]. Based on a process characteristic, LBAs can be categorized in three categories as shown in Figure 2. Both sender-initiated and receiver-initiated algorithms use different transfer and location policies for implementing load balancing. Symmetric-initiated algorithms eliminate the preemption condition of receiver-initiated algorithm and offer two algorithms: above-average algorithm and adaptive algorithm. Above-average algorithm uses an acceptable range for deciding whether a node is sender-initiated or receiver-initiated.
1.1 Static load balancing
Static load balancing approaches use the prior information of tasks, computing resources or processing element, and network detail as shown in Figure 3. The task can be submitted to any processing element using two methods:
In stateless method, selection of a processing element (PE) is done without having any awareness of the system environment, while in a state-based method, selecting a PE requires information of the system condition . Stateless methods are simple to implement, but it provides one-to-one interaction between the client and server at a time as shown in Figure 4.
Figure 5 represents the stateful load balancing method; the load balancer keeps track for all the sessions, and decisions are taken based on server load. Various stateless techniques exist for selecting the processing element such as RR-LBA, weighted round robin (WRR)-LBA, and random allocation algorithm . However, these algorithms have limited scope due to the dynamic nature of distributed environment.
1.2 Dynamic load balancing
It varies from the SLB algorithms in which clients’ requests are distributed among available resources at run time. The LB assigns the request based on the dynamic information collected from all the resources as shown in Figure 6.
DLB algorithms can be classified in two categories—distributed and non-distributed. In distributed DLB, all computing resources are equally responsible for balancing the load. The responsibility of load balancing is shared among all the resources. But in non-distributed algorithms, each resource performs independently to accomplish the common goal. Generally, distributed DLB algorithms generated more message overhead than non-distributed DLB due to its interaction with all the resources.
Distributed algorithms perform better in fault conditions as it degrades only the sectional of the system instead of global system performance. Non-distributed algorithms are further classified into two categories—centralized and semi-centralized. In centralized algorithm, a central server is responsible for executing load balancing algorithm. In semi-centralized, servers are arranged in clusters, and load balancing within the cluster is managed centrally.
2. Challenges of load balancing
The load balancer implements several load balancing algorithms to determine the suitable resource. However, it faces several issues while distributing the load across available resources. Several major issues with their respective solutions are presented in the next section.
2.1 Increased web traffic
Over the last few years, the web traffic is increased very rapidly due to numerous registered websites and online transactions. As the numbers of requests are increased, the response of server becomes slow due to the limited number of open connections. The requests are added to the overall processing capability of resources. When incoming requests go beyond the capability of the resource, a resource crashes or fault occurs. Several authors analyzed and suggested the solution to resolve the issue. The first solution is the server upgradation in which requests are handled by a more powerful server for a while. But, scalability, interruption, and maintenance issues are associated with this solution. Another solution is the outsourcing in which requests are sent to another suitable server for speedy response. But this approach is costly and has limited control over the QoS issues. Chen et al.  suggested that the web page size and number of users both affect the system response time.
The most favorable solution is to use the multiple servers with an efficient load balancer which balances the load among servers. The performances of these servers are analyzed through queueing models or waiting line models. Broadly, two types of load balancing models are used to analyze the web server performance. Each approach has its benefits, applications, and limitations.
2.1.1 Centralized queueing model for load balancing
In this mechanism, homogeneous servers with finite buffer sizes are used as shown in Figure 7. The load balancer receives request from the user and redirects the request among servers using one of these routing policy:
Shortest queue policy
Zhang and Fan  compared these policies in terms of rejection rate and system response time. They analyzed that these algorithms perform well when traffic is light. But when web traffic becomes high, shortest queue policy performs better than random and RR policy. The number of rejections in RR and random policy is increased as the traffic increases. Singh and Kumar  presented a queueing algorithm for measuring the overloading and serving capacity of server in distributed load balancing environment. The algorithm performs better in both homogeneous and heterogeneous environment than the remaining capacity (RC) and server content based queue (QSC) algorithms.
2.1.2 Distributed queueing model for load balancing
These mechanisms address the network latency issue also, which avoids network congestion. The queueing models follow certain arrival and distribution rules to distribute the requests. Zhang and Fan  suggested that distributed queueing models perform well in heavy traffic conditions. Routing decisions are taken on the basis of queue length differences of web servers. The collected information is used in traffic distribution for improving the performance of web servers. Singh and Kumar  suggested that task completion time directly affects the queue length of the web server. They presented a model based on the ratio factor of the task’s average completion time. The model is compared with the model presented by Birdwell et al. , and it performs better for two performance metrics: average queue length and average waiting time of web servers.
Li et al.  analyzed network delay and presented a delay controlled load balancing approach for improving network performance. However, the approach has limited applicability and is suitable for stable path states.
Kamali et al.  used queueing theory to monitor the network traffic and its simulation is performed in a homogeneous as well as heterogeneous network environment. The traffic monitoring is required for the calculation of confidence and efficiency parameters from steady operations of the network. Based on queuing theory and little’s law network congestion rate is balanced.
2.2 Resource selection and task allocation
Many researchers have addressed the problem of resource selection and task allocation for the fair perspective of load balancing. It is the responsibility of load balancer to map resource and task before actual execution as shown in Figure 8.
The resource management consists of two major functions: resource provisioning and resource scheduling. In resource provisioning, the user submits task to the broker with various predefined QoS constraints. The broker is responsible to find the suitable resource for task execution. The resource scheduling is all about mapping and execution of task on the appropriate resource . It comprises of three major functions: resource mapping, resource execution and resource monitoring as shown in Figure 9. Various types of resources that need to be managed are shown in Figure 10.
Hao et al.  categorized the resource in three categories—underloaded, normal loaded, and overloaded. The scheduler assigns the task to underloaded or normal-loaded resources only. Chang et al.  categorized the resources into L discrete levels for selecting the fittest resource for task execution. Arabnejad and Barbosa  presented a budget-based task scheduling and calculated the worthiness of all the resources for resource selection.
Naik et al.  presented a value function to select a resource for task execution. A value function is calculated using completion ratio and historic information of a resource. For minimizing the data transfer between the resources, Cheng et al.  used a hypergraph which identifies task and data dependency. Tasks that use similar data are assigned to the same resource to decrease the cost indirectly. AbdElrouf et al.  used a genetic algorithm for producing chromosomes. A fitness function is used for generating chromosomes. Individuals who have higher fitness value will only proceed for further chromosome reproduction.
Murugesan and Chellappan  suggested deadline and budget-based resource selection method for divisible workloads. The method assigns the appropriate resource in terms of cost from the list of available resources. Shah et al.  also claimed a linear programming-based resource allocation method for divisible workloads. The job is categorized in appropriate sizes to allocate on available resources. Singh and Kumar  improved the resource selection method presented by Singhal et al.  by determining the task workload and resource availability, respectively. Ang et al.  introduced a resource allocation mechanism by considering the requirement of user as well as service provider.
Various researchers suggested numerous techniques for heterogeneous task allocation. Raman et al.  provide improvements of traditional round robin (RR) task scheduling which performs well when all the resources have equal serving capacity. In heterogeneous environment, it does not provide prominent results. Therefore, a weight is assigned to each server which represents the priority of selecting a server. The algorithm performs well in distributing the load more efficiently then RR scheduling algorithm.
Pham and Huh  analyzed the cloud-fog environment and presented a task scheduling algorithm. The suggestion behind the presented algorithm is the association between fog nodes and cloud nodes to decrease the makespan and price of cloud resources. If the computation is not feasible on fog node, then tasks are executed on cloud node. Several constraints like deadline and budget can enhance the algorithm efficiency and applicability.
Wu  presented a task scheduling for embedded systems to enhance the performance of real applications in CloudIoT paradigm. These approaches are used in real-time networks where time constraints are strictly followed. The algorithm increases the scheduling success rate of real-time task on heterogeneous web servers. Moschakis and Karatza  analyzed the workload generated by IoT devices and scheduled them on multi cloud-based system. The least loaded server is selected by global dispatcher for scheduling IoT jobs.
Grandinetti et al.  presented an offline mathematical formula to improve task scheduling and average waiting time. Xu et al.  presented a task scheduling algorithm which determines crossover and mutation operations for mapping between tasks and resources. Kamalinia and Ghaffari  addressed the task scheduling as an NP complete problem. They also used a genetic algorithm to design task scheduling problem to improve makespan and resource efficiency. The presented scheduling algorithm reduces the communication cost among processors by using meta-heuristic methods.
2.3 Load measurement
The load measurement is very important and crucial activity in distributed environment. Various load balancing algorithms determine resource load condition before real implementation of task. Various performance metrics like fault tolerance, waiting time, response time, etc. can effectively be optimized by measuring the current load of a resource. Many authors addressed this issue and presented various resource provisioning techniques for effective distribution of incoming load.
Patel and Tripathy  categorized the resources in three categories: underloaded, normal-loaded, and overloaded to manage the load of available resources. Before assigning a task to a resource, the scheduler checks the current load of each resource and selects the underloaded or normal-loaded resource for task execution. Task length, processing element capacity, and deadline constraints are the factors that are considered to determine the current load of each resource. If a resource becomes overloaded, the unfinished tasks are shifted to another suitable resource for completing their execution. Checkpoint mechanism is used to save and resume the task state which greatly decreases the average response time and task resubmission time and improves the system throughput.
Liu et al.  advised that resource provisioning techniques may balance the resource load effectively. They presented peer load balance provision compares the demand and resource capacity by considering requirement of both customer and service provider. The presented mechanism reduced the cost and average response time than other existing methods.
Rathore and Chana  determined a dynamic threshold value based on standard deviation for load balancing and job migration. For job migration, the resources are categorized and the average load of each cluster is compared with processing element’s threshold value. For load balancing, tasks are selected randomly either from underloaded or overloaded resource collection.
Kaushik and Vidyarthi  consider various parameters for effective job scheduling and resource allocation. The presented model selects the best cluster in terms of increased system reliability and reduced energy consumption and balances the system load efficiently. The customer can prioritize their choices to select the suitable cluster for task execution. An effective approach for determining job migration overhead can increase the model adaptability in real scenarios.
2.4 Cost optimization
Load balancing algorithm maps task to various heterogeneous resources based on predefined objectives. The major objective of load balancer is to optimize task completion time, resource cost, and its utilization. Several authors addressed the cost issue and provide possible solutions for its optimization.
Garg and Singh  suggested an adaptive workflow scheduling (AWS) by considering resource cost and communication cost between task and resources. Due to heterogeneous nature of resources, final cost is calculated periodically. Arabnejad and Barbosa  presented a task scheduling algorithm which works in two phases - task selection phase and processor selection phase. For selecting the task, priority is assigned by computing the rank. For processor selection, worthiness of all processors is calculated and selects the processor with highest worthiness value.
Chaisiri et al.  analyzed the resource provisioning phases and suggested that reservation method provides reduced cost than on demand methods. Broadly, there are three stages in resource provisioning:
Resource on demand
In the first stage, the cloud broker arranged the resources in advance without experiencing the customer requirement. In the second phase, the customer requirement and resource cost are comprehended, and the resource overutilization or underutilization is identified. If customer requirement is greater than reserved resources, the broker could request for additional resources on pay-per-use basis. Here, the on demand phase started. In on demand phase, the customer must know the appropriate future requirement which is difficult to estimate in cloud environment.
Singh and Kumar  presented a cost optimization method based on process activity. Processing cost and waiting time are determined by using activity time, resource utilization, and variability factor to check the method efficiency. Bittencourt and Madeira  presented a cost optimization method for hybrid cloud. The clouds can be categorized in three categories based on resource availability: public cloud, private cloud, and hybrid cloud. A user can use the services of public cloud by using pay-per-use method. Private clouds belong to individuals and offer free variety of services. In hybrid cloud, resources from public cloud are aggregated as per requirement. Bittencourt and Madeira  identified the method for appropriate resource.
Cao et al.  analyzed that each task is different from each other in cloud environment. They suggested an activity-based task scheduling approach for task reduction. The presented algorithm performs well than traditional task assignment approaches in terms of cost reduction.
Efficient resource provisioning plays a vital role in reducing the cost of task execution. Suresh and Varatharajan  presented a particle swarm optimization (PSO)-based resource provisioning algorithm. PSO is adopted to select the appropriate resource for cost optimization. Three performance metrics task execution time, memory usage, and cost are evaluated and compared with other existing methods. The simulation result shows that the presented PSO-based algorithm provides minimum execution time and memory usage with least cost than other state-of-the-art methods.
Salehan et al.  suggested auction-based resource allocation to meet the requirement of the customer and service provider. At the time of scheduling, resources are assigned to users that have highest bids. The algorithm provides highest profit and satisfies both the customers and service providers for multiple criteria than other existing methods. Nezarat and Dastghaibyfard  map the resource allocation mechanism to economic-based supply and demand problem which provides better functionality with 17% profit with other existing methods.
Netjinda et al.  suggested a task scheduling for workflow applications. These workflow applications consist of dependent task with deadline constraints. The aim is to select the least cost cloud resource through PSO for workflow-based task execution. The effective task scheduling decreases the execution time which directly affects the final cost. By considering communication overhead, the model effectiveness and applicability can be increased in real cloud environment.
Chunlin and Layuan  presented a resource provisioning method for mobile clients. The mobile devices greatly depend on cloud resources for accessing data and performing operations. The aim is to select the optimal resource at least cost. The service provider executes the tasks on appropriate resources to get the maximum profit.
2.5 Fault tolerance
Fault tolerance is a mechanism that provides the estimated quality results even in the presence of faults. A system with its components and services can consider reliable only if it has fault tolerance capability. Therefore, fault tolerance issue has got a noticeable attention by the research community over the last decades .
Fault tolerance techniques can be categorized into two: proactive and reactive. Proactive techniques are prevention techniques that determine the controlled state for fault tolerance before they occur. The systems are continuously monitored for fault estimation. Proactive fault tolerance can be implemented in three ways: self-healing, preemption migration, and system rejuvenation. In self-healing, fault recovery procedures are periodically applied for autonomous recovery. In preemptive migration, the tasks are shifted from fault probable resource to another resource. System rejuvenation is the mechanism in which periodic backups are taken for cleaning and removing errors from the system.
Another category is the reactive approaches that deal with faults after their occurrence. Reactive fault tolerance can also be implemented in three ways: job replication, job migration, and checkpoint. In job replication, several instances or copies of the same task make available on different resources. If one instance fails, task is executed on another instance. In job migration, tasks are migrated to another suitable resource for completing its execution. In checkpoint, task states are periodically saved and restarted from the last saved state instead of from the very beginning . Several authors suggested fault tolerance mechanism and recovery solutions to resolve the issue.
Patel et al.  addressed resource failure issues and presented a checkpoint based recovery mechanism for task execution. If task does not complete its execution within deadline, then another suitable resource is selected for completing its execution. Before transferring it to another suitable resource, task state is saved and resumed for further execution through checkpoint. This results in reduced execution time, response time, and improved throughput than other existing methods.
Generally checkpoint increases the execution time that directly affects the execution cost. Egwutuoha et al.  use the process of redundant technique to reduce the task execution time. The presented technique is pretty good and reduces up to 40% checkpoint overhead. Choi et al.  identify the malicious users to provide fault tolerance scheduling in cloud environment. Any user which only use cloud services and reject other requests is treated as malicious user. The reputation is calculated to determine the malicious users. The work can be implemented to improve network reliability and task execution time in cloud paradigm.
Mei et al.  suggested that replication-based fault tolerance approaches waste lots of resources and also compromise with makespan. To resolve the issue, Mei et al.  presented fault tolerance scheduling mechanism that ensures successful completion of task execution. The limitation of replication is avoided by rescheduling the task for further execution. If scheduler identifies the failure, it reassigns task to another suitable resource and saves the wastage of resources. This mechanism reduces resource consumption and task execution time. However, costs are presumed for implementing scheduling, which limits the model applicability in real scenario.
Nazir et al.  use fault index for maintaining the history of resources. Fault index is determined based on successful and unsuccessful task completion on particular resource. Based on fault index value, grid broker replicates the task that can be used when fault occurs. Budget and time constraints are also considered at the time of task scheduling. The presented mechanism satisfies various QoS requirement, increases the reliability, and performs consistent in the existence of fault also.
Qureshi et al.  combined two fault tolerance techniques to inherit the favorable aspects. They perform hybridization of alternate task with retry and checkpoint mechanism and evaluate various performance metrics. The simulation result shows that alternate task with checkpoint mechanism performs better and improves system throughput than other existing methods.
Cloud facilitates the storage and access heterogeneous data in a distributed remote network. Due to dynamicity, network congestion and system faults are key factors for fault occurrence. Preventing the network from congestion and selection of suitable servers can avoid the fault conditions. Tamilvizhi and Parvathavarthini  suggested the concept of square matrix multiplication to manage the network traffic and avoid network congestion. The resource monitor predicts the fault conditions and uses migration policies to avoid system failure. The presented fault tolerance mechanism provides reduced cost with less energy consumption.
Garg and Singh  observed various fault conditions and suggested a fault tolerance-based task scheduling algorithm in grid environment. A genetic algorithm is used to determine the resource capacity for task scheduling. The presented approach increased system reliability and reduced task execution time in grid environment.
2.6 Interoperability issue
Interoperability refers efficient migration and integration of heterogeneous applications and data to get the seamless services across domains. Various distributed applications exist to provide millions of services that differ in the services they offered:
Distributed computing is a collection of various heterogeneous components that are located at remote locations, which coordinate with each other by message passing. Each component or processor has its own memory. It is a kind of parallel computing in which a task is split into subtasks to run on multiple components simultaneously.
Grid computing is a network of computer resources that are connected to solve a complex problem. Each resource is loosely linked and runs independent task to achieve a common goal. Grid computing may be classified on the basis of scale and functionality. On the basis of scale, grid computing may be classified into two categories (Table 1), i.e., cluster grid and enterprise grid. Cluster means a group of similar kind of entities. So cluster grid provides services to the group or departmental level. Another type is enterprise grid that provides to share resources within the enterprise.
Cloud computing provides on demand computer resources such as storage or computational resources without direct involvement of users. It has effective data management and computing framework for executing task in parallel to improve various QoS metrics.
Fog computing is the extension of cloud computing which consists of multiple fog nodes that are directly connected to the physical devices. The difference between both technologies is that cloud is a centralized system while fog is distributed but decentralized system.
CloudIoT is an innovative trend which connects and manages millions of devices in very cost-effective manners that are dispersed globally. Cloud can profit by IoT to deal with real-world things by sharing the pool of highly computational resources rather than having local servers or personal devices to handle applications [56, 57].
|S. no||Classification criteria||Types of grid||Characteristics|
|1||Scale||Cluster||Computational services are limited to a group or a department|
|Enterprise||Provides services within an enterprise|
|2||Functionality||Global||Comprises of collection of cluster grid|
|Computational||Acts as an integrated processing resource|
|Data||Coordinate and manage database information which is located at remote locations|
Various authors analyzed the interoperability issues that are briefly presented with their respective solutions. Aazam et al.  focused on analyzed two complementary technologies: cloud computing and IoT. Various challenges and integration issues of CloudIoT framework are discussed. Data analysis, service provisioning, and storage are the future dimensions to improve the performance of CloudIoT model.
Botta et al.  also analyzed the integration issues of cloud and IoT. Both the technologies are analyzed separately based on applications, technology, issues, and challenges. The details of existing platforms and projects are presented that are currently implementing CloudIoT. Standardization, address resolution, multi-networking, and developments of APIs are some future directions to provide full potential to CloudIoT framework. Khodkari et al.  present the significance and requirement of CloudIoT paradigm. They presented complementary aspects of cloud computing and IoT and assure the QoS by evaluating the integrity requirement of both the technologies.
Bonomi et al.  analyzed characteristics, services, and applications of fog computing. They determined the importance of collaboration of fog and cloud and address that some applications need both cloud globalization and fog localization like big data and analytics.
The linked open data (LOD) provides a new dimension for various heterogeneous interoperability issues based on Web server architectures. These issues require attention to support heterogeneous description principles that is necessary to deal with different data from web resources. The LOD interoperability follows bottom up approach to establish the strong relationships among datasets. Various researchers addressed LOD interoperability issues and presents respective solutions to meet with the users demand [1, 2].
2.7 QoS issues
The user submits the tasks with various QoS constraints (cost execution time, energy consumption, delay, etc.) to improve the performance in distributed environment. Researchers addressed several QoS issues and provide the solutions for meeting the objective. Aron and Chana  observed various QoS issues and identified four issues, i.e., cost, reliability, security, and time, for resource provisioning in grid environment. Service-level agreement (SLA) reduced the complexity of resource provisioning by maintaining up-to-date information of all the resources. The presented approach performs better in terms of resource utilization, cost, and customer satisfaction.
Popularity of cloud computing increased burden on distributed data centers. These data centers consumes excessive amount of energy to provide services and fulfill consumer satisfaction. Horri et al.  identified overloaded and underloaded servers and shift load from overloaded to under loaded resources. This makes a trade-off between energy consumption and SLA. Hoseiny Farahabady et al.  suggested an objective function to reduce cost and performance improvement for resource allocation mechanism. Two test cases are considered: tasks with known running time and tasks with unknown running time. They listed Monte Carlo method to determine the task’s unknown values (Table 2).
|Author||Technique||Strength||Limitations & Future Scope||Technology|
|Shah et al. ||Cost based resource allocation||Cost||Performance optimization||Grid|
|Murugesan & Chellappan ||Resource allocation||Cost||Budget and time constraint||Grid|
|Singhal et al. ||Parallel execution-based resource allocation||Cost||Simulation on real cloud||Grid|
|Singh and Kumar ||Cost based resource allocation||Cost||Time constraint||Grid|
|Chang et al. ||Execution time prediction||Execution time||Fault tolerance||Grid|
|Hao et al. ||Resource selection mechanism||Makespan, finished rate, resubmitted time||Task deadline consideration||Grid|
|Arabnejad and Barbosa ||Resource selection mechanism||Execution time, cost||Fault tolerance||Grid|
|Garg and Singh ||Task scheduling and resource selection mechanism||Execution time||Cost optimization||Grid|
|Singh and Kumar ||Queueing model||Response time, drop rate, server utilization||Fault tolerance||Grid|
|Singh and Kumar ||Resource selection model||Response time, drop rate, server utilization||Other optimization metrics consideration||Grid|
|Patel et al. ||Resource selection and task scheduling||Execution time, response time, throughput, resubmitted time||Fault tolerance mechanism and associated overhead||Grid|
In summary, a web server system uses several load balancing techniques for distributing its load among available web resources. These resources are getting costlier day-by-day; therefore, efficient cost optimization mechanisms are required to support by small organization or industry. In this chapter, several load balancing issues have been identified for efficient use of web resources in distributed environment. Detailed description of existing approaches, strength, limitation, and future scope has been analyzed and an adequate radiance has been thrown to these techniques. On the basis of abovementioned issues, several future dimensions have been identified that will be beneficial for the research community to achieve various objectives:
Development of a resource allocation model which considers resource as well as task characteristics to optimize various QoS metrics
Development of a fault tolerance load balancing model for partial executed tasks due to resource failure and construction of a resource selection policy for task execution
Analysis of contextual relationship among CloudIoT issues and optimization through effective scheduling
Development of an execution time prediction model for efficient resource provisioning, selection, and scheduling.