1 Introduction

Cloud computing is an interesting technology aimed to deliver uninterrupted and cost-efficient services for organizations by providing unlimited virtual resources for their customers [1, 2]. Virtualization is one of the keys the technologies have applied by the cloud service providers (CSPs) [3] to share the resource of each physical machine (PM) among multiple VMs. It facilitates the execution of the users’ tasks on the VM’s isolated environment, and [4] enables the CSPs to increase their scalability and return on investment by proper resource management in their data centers (DCs) [5]. Mobile Cloud Computing (MCC) tries to provide cloud-based services for the customers equipped with smart mobile devices (SMDs) [6, 7]. Besides, regarding the small processing capability of the SMDs and their limited battery power, offloading and scheduling techniques are proposed to benefit the SMDs from the various virtual resources provided by the remote cloud servers[8]. Generally, offloading can be performed at the code, data, and application levels [9] to relieve the SMDs from the power-consuming CPU intensive applications whose demand is overgrowing because of the new emerging applications [10,11,12]. Also, data-intensive tasks that should access the high volume of data on the cloud repositories can be offloaded to be run on the CSP side, near the accessing data [13]. To reduce data delivery costs, it is critical to decreasing cellular network usage while satisfying QoS requirements [14].

Consequently, good offloading policies can benefit both CSPs and their customers by executing their requested tasks in the resourceful cloud computing data centers [15]. For example, offloading improves the battery life of the SMDs and relieves them from handling high resource-demanding applications and causing performance improvements in the SMDs [16]. One of the main advantages of offloading solutions is the improvement of SMDs' lifetime. Also, because applications will be executed on the cloud servers, in CPU-intensive job types, users can benefit from more cloud resources [17]. However, not all tasks should be offloaded, and not all offloading methods are energy efficient and even possible, considering constraints such as deadlines and channel conditions. Thus, effective decision-making must be made on the SMD to determine which parts of the programs should be offloaded [18].

Moreover, to be cost-effective, other factors such as the best destination site [19], monetary cost, energy, and delay incurred to send and receive the offloading request and response messages should be considered in the offloading decisions. Therefore, regarding numerous factors in the offloading process, it is considered an NP-hard problem [20]. Numerous states of the art offloading solution are provided in the literature [21,22,23,24,25,26,27,28,29], aiming to enhance SMDs capabilities towards handing a large amount of the data and CPU-intensive applications. Moreover, based on the access ability of the Wi-Fi links and various generations of the cellular networks, and even other SMDs, and various conflicting objectives different offloading policies can be conducted. For example, considering the destination to which offloading can be performed, the SMDs may decide to offload to a nearby cloudlet, remote cloud DC, or other SMDs. Thus, various states of the art schemes are provided in the literature, which tries to solve various kinds of offloading problems using different algorithms and techniques, discussed in other review articles such as in [30, 31].

This survey article provides an extensive study of the offloading schemes designed and adapted for various MCC environments. We first provide the required background information about the offloading context and illustrate multiple options and critical points regarding offloading. Then, we present a taxonomy of the studied schemes based on their applied algorithm and describe the architecture and significant contributions and merits of each offloading scheme. The offloading systems are compared, and their simulation factors, simulators, and various offloading features are investigated. Finally, the concluding issues and possible future investigation directions are highlighted. The rest of this offloading survey article is organized as follows: Sect. 2 provides background knowledge about the MCC offloading. Section 3 presents a taxonomy of the offloading schemes and puts forward an overview of the studied systems. Section 4 provides a comparison of the studied offloading approaches, and finally, Sect. 5 presents the concluding remarks and future research areas.

2 Research Methodology

This section elaborates on how the required research papers applied in this article are found, selected, and finally refined. In this process, we only used articles published in the sites specified in Table 1. In this phase, we define search terms for finding existing reviews and survey papers. For this purpose, we searched the following expressions in the google scholar site:

  • offloading MCC survey

  • offloading MCC review

  • offloading mobile cloud computing survey

  • offloading mobile cloud computing review

Table 1 Applied publisher

We found a few papers satisfying these conditions and referred to them in this paper's first section. For finding the main articles containing new proposals, the following search strings are applied in Google scholar:

  • offloading MCC

  • offloading mobile cloud computing

The results achieved from these searches are screened according to some exclusion criteria. For example, thesis, patents, and papers of international journals that were not from Table 1′s publishers were removed. We found several interesting papers for conducting the study, which will be reviewed in the next section. Figure 1 depicts the number of the proposed offloading schemes proposed each year from 2010 up to 2019. As shown in this figure, the number of these schemes is increasing, and this context can be assumed an active research area in the security literature.

Fig. 1
figure 1

Publication year of the offloading schemes for MCC

3 Preliminary


This section is aimed to study the knowledge required background and the main challenges for the offloading in the MCC environment. It illustrates the common architectures applied for offloading schemes and discusses their advantages. In general, offloading solutions should handle the following challenges in MCC environments [32]:

  • Inter-operability: In the MCC environment, various SMDs may interact and connect using multiple networks to one or many servers. Offloading may be possible between different systems of the various computational capabilities.

  • Mobility

  • Fault tolerance: Offloading relies on wireless channels and intermittently accessible cloudlets [33] and cloud servers. Consequently, it is crucial to handle failures in the offloading process.

  • Security: Because users’ data is sent to remote cloud PMS, it should be protected during the transmission and the destination nodes that are not under the users’ control.

  • Context-awareness: An SMD should consider the user's state and infer the context information because the mechanism of offloading may vary according to the users’ location and context [34]. Even for programs with dynamic decisions, the tasks that may potentially be offloaded are identified throughout the program development. Partitioning a program throughout execution is undesirable because of the very high overhead for analyzing the program.

The offloading schemes may use two-tier or three-tier architecture, in the first case of which, SMDs offload directly to the remote cloud. But, in the three-tier architecture, a nearby cloudlet or MEC can reduce the response time for the SMDs and mitigate the load on remote cloud servers. However, when the cloudlet cannot handle the workloads, it forwards them to the cloud for further processing.

Figure 2 indicates various features of the offloading process in MCC. For example, regarding the offloading granularity, the offloading schemes can be categorized into the following classes [7]:

  • Full Offloading: The whole program is offloaded from an SMD to an offloading server. However, when the program's size exceeds the components' size, it could cause a high network overhead.

  • Partial Offloading: Only a subset of a program or workflow will be offloaded. The interaction overhead between a client program on an SMD and the components offloaded on a server should be well-handled and may present a runtime overhead.

Fig. 2
figure 2

Offloading features

Moreover, offloading decisions can be made statically or dynamically by considering various factors [35]. Static offloading decisions are conducted during the development phase of the applications and are easier to implement, but it may not provide the promised benefits of offloading. However, dynamic offloading decisions are made during the runtime regarding various factors such as network coverage, SMD, etc. Although they require monitoring resource availability on the SMDs, they can adapt to different runtime conditions like fluctuating network bandwidths. These methods can use prediction algorithms but incur higher overheads. Moreover, offloading components can be transmitted in advance to an offloading server (Pre-offloading), or they can be transferred dynamically at the offloading time (On-demand) [36]. The pre-offloading method obtains higher performance during the program execution, but it requires tunning the offloading server. The on-demand offloading method transmits the offloading components at the runtime and does not require a remote server's pre-configuration. But, the overhead of transmitting the required components is higher. Also, it requires searching for a proper server.

Regarding the offloading route, offloading schemes can be considered as direct and indirect schemes. Components can be offloaded directly to an offloading server or indirectly using an offloading repository. Direct transmission is simpler because it does not require a third party, but it suffers from high overhead and low performance. Indirect Transmission requires a third-party server to maintain a repository of the pre-stored components to be offloaded, which is faster, but the offloading component should be determined beforehand. Regarding delay constraints in the offloading components, the offloading operation can be categorized as delay-sensitive offloading and delay insensitive (delay tolerant) offloading. Generally, in delay-tolerant applications, response time is not critical, but improving power consumption is more important. Nevertheless, in delay-sensitive applications, low response time is an essential factor, and other offloading factors should be considered while the specified deadlines are met.

Moreover, offloading schemes may benefit from the 3G, 4G, or 5G cellular networks. Also, channel availability can always be connected or intermittently connected. As shown in Fig. 2, offloading schemes can be used to offload data, applications, and code. Furthermore, power management in offloading methods can be conducted as static, dynamic, or using renewable energy. In dynamic power management offloading solutions, it is aimed to reduce the energy consumption in the SMD side and destination side by using techniques such as DVFS. In this case, the SMD or destination node will be run with less energy while meeting QoS requirements and deadlines. Also, offloading schemes may consider applying renewable energy in the destination site, for example, on the cloud DCs. Besides, SMDs may select to offload their requests on the cloudlets, Fog computing, or MCC. Moreover, the offloading decision can be made locally or globally.

4 Proposed Offloading Schemes

Various offloading scaling schemes, such as [1, 5, 15, 28, 37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98], are provided in the offloading literature, and in this section, we only focus on the most critical approaches. This subsection is aimed to discuss the architecture of the offloading schemes and illuminate the factors considered in offloading the required items. Almost all these approaches aim to optimize their offloading policy to achieve objectives such as energy efficiency, meeting deadlines, and so on.

Figure 3 indicates the classification of the offloading frameworks, which will be investigated in this section.

  • What are the significant contributions of each offloading scheme?

  • What are the main algorithms and techniques applied by each offloading scheme?

  • which evaluation factors and simulation environments are

  • The offloading architecture, wireless standards supported by each scheme, and their limitations and merits.

  • What are the remaining open issues and challenges in the offloading context in the MCC?

Fig. 3
figure 3

Classification of the offloading and scheduling schemes in the MCC

4.1 Fuzzy Logic-based Schemes

In [99], Wu et al. provide a multi-factor scheme that makes a multisite offloading decision and conducts offloading risk evaluation. They use fuzzy inference to aggregate the offloading benefits according to the MCC user’s preference. Moreover, they apply an ACO-based algorithm to compute the assignment from application components to nearby sites. As an advantage, they consider factors such as reliability and privacy in the offloading process.

4.2 Game Theory-based Schemes

This subsection will provide a survey on the game theory-based offloading schemes such as [100,101,102,103,104,105], designed for the MCC environment. For instance, in [106], Cardellini et al. present a three-tier architecture that contains a local tier of SMDs, a cloudlet located at the WAPs but has limited resources, and a remote tier located in the CSP. It limits the use of distant servers that have higher latency. They consider a scenario without a central authority, while several SMDs share the limited resources of a nearby cloudlet and can send their computations to any tier. They provide a model to capture the user’s interaction and find the effects of computation offloading on the user's performance. They consider the problem as a generalized Nash equilibrium and present a distributed algorithm for the computation of an equilibrium. But they only consider the case that offloading is used to improve the SMD performance and does not consider the loads which may exceed the SMD capacity.

The scheme presented in [107] puts forward MCIoT, a nested game model for efficient computation offloading. Each SMD finds the portion of remote offloading computation according to the Rubinstein game. This game-based technique is used in distributed IoT environments and supports deadline-aware application executions.

In [108], Chen et al. present a solution that applies game theory for offloading in MCC and applies the decentralized offloading decision-making among the SMDs. They exhibit that the game has a Nash equilibrium for homogenous and heterogeneous wireless access. The authors claimed that their method is efficient and scalable. Also, in [96], Qin et al. presented a game theory-based approach to attain the optimal performance among some users. Furthermore, in [91], the authors formulated the collaborative computing offloading problem for VANETs, which apply MEC and MCC. They try to optimize the computation of offloading decisions and computation resource allocation. They solve this problem by using a computation offloading strategy game, and an algorithm is developed, which can decrease the system complexity without affecting the performance. They indicated that their approach could achieve better results in terms of system utility and computation time.

The offloading method proposed in [109] investigated the computation offloading and radio resource allocation methods using a game theory-based approach. They considered the communication and computation cost to formulate a buyer–seller game to maximize the user's utility and sink. For finding the optimal offloading and resource allocation, the closed-form solutions are derived for the quasi-static and dynamic scenarios under uniform price and non-uniform price, respectively. An effective distributed price bargaining algorithm, named PJORA, with guaranteed convergence is proposed for the non-uniform-pricing case. They conduct experiments to determine the user's lower and upper bound and the base station's revenue.

In [110], Li et al. investigate the offloading rates of connecting to the same security cloud server under adaptable bandwidths and consider their solution as a non-cooperative offloading game. The Nash equilibrium of the MCC offloading game and the existing condition is presented. An offloading algorithm based on Q-learning is proposed for smartphones to determine their offloading rates for malware detection with unknown parameters like transmission costs. Advantages include obtaining the optimum rate and enhancing the user’s utility under adaptable network bandwidths.

In [111], the authors investigated the multi-user offloading problem for MCC, in which SMDs are active occasionally, and the status of the wireless channels change dynamically. They formulated the offloading decision of the SMDs using a stochastic game and indicated that it is equivalent to a weighted game that more than one Nash Equilibrium. They also propose a multi-agent stochastic learning algorithm to reach the Nash Equilibrium with a guaranteed convergence rate. They conduct simulations to validate the effectiveness of this algorithm and evaluate its performance in a dynamic environment.

In [112], Kuang et al. focused on the SMDs’ energy-saving by offloading and formulated the multi-user offloading using game theory. They proposed an offloading game consisting of two algorithms denoted as BOT or beneficial offloading threshold and BOG or beneficial offloading group. BOT algorithm can obtain the maximum number of SMDs that each SMD can tolerate to offload their tasks, and BOG finds beneficial offloading SMDs group. The authors proved that their model has a Nash equilibrium and also, by conducting the required evaluations, indicated that their scheme could achieve energy-saving via offloading.

In [41], the authors attempted to deal with the offloading problem in vehicular cloud computing environments. They introduced a two-player Stackelberg game to deal with computation offloading and consider factors such as service price and task completion duration. They derived the offloading game’s Stackelberg equilibriums and, using the Monte-Carlo simulations, indicated that their method could mitigate the task execution time while increasing the service providers’ profit.

The offloading approach proposed in [113] introduces a four-tier architecture to determine the specific decision-maker for the task offloading and considers factors such as time and energy consumption. They formulated the offloading problem as an evolutionary game and solved it using the Maynard replicator dynamics. They simulated their scheme in MATLAB and applied 100 python tasks in their experiments. They then indicated that their scheme could reduce traffic and convergence time.

In [114], Shen et al. proposed DOM, a dynamic task offloading method for cloud-edge computing using minority game, a useful tool containing a distributed mechanism to minimize the dependency on centralized control in resource allocation. In the minority game, reinforcement learning is applied to optimize the distributed decision-making of participants. The authors analyzed the effectiveness of their scheme using a real dataset.

In [115], a distributed cloudlet system is established consisting of many cloudlets and computations which select appropriate cloudlets. They formulated this dynamic offloading problem as a transferable coalition game and to achieve a successful offloading. They considered factors such as user-mobility predictive probability, energy, cloudlet, and channel availability. The authors conducted the required experiments and demonstrated that their dynamic offloading approach achieves a better result with low complexity.

4.3 MCDM-based Offloading Schemes

This subsection will provide a study of the MCDM-based offloading schemes that apply algorithms such as AHP, fuzzy AHP, and TOPSIS in the offloading process.

4.3.1 Fuzzy AHP-based Offloading Schemes

In [116], Wu et al. present an MCDM-based approach using the AHP and the TOPSIS methods to select the destination CSP. The AHP is used to specify the weights of the criteria for cloud-path selection, and fuzzy TOPSIS is used to rank CSPs. Different criteria such as speed, bandwidth, security, price, and availability are in the selection process. However, they have not compared their approach against other offloading solutions.

4.3.2 AHP + Fuzzy TOPSIS Based Schemes

In [117], Singla et al. put forward a fuzzy AHP approach to select a CSP to offload data by determining the weights of five criteria and obtaining the CSPs' final ranking. They indicate that availability and speed are significant and show the optimum CSP where the users can migrate their computation-intensive tasks to reduce execution time and with the least overhead. But, they have not compared their scheme with other offloading solutions to highlight their solution merits. Table 2 provides the properties of the fuzzy logic, game theory, and MCDM-based offloading schemes outlined in this section.

Table 2 Properties of the fuzzy logic, game theory, and MCDM-based offloading schemes

v

4.4 Meta-heuristic Based Offloading Schemes

This subsection provides a review of the meta-heuristic[118] based offloading schemes applied for the MCC environment. It classifies them according to the meta-heuristic algorithms used to optimize objectives such as energy consumption, latency, and performance.

4.4.1 ACO-Based Offloading Schemes

In [65], Wang et al. introduce CMSACO, a cooperative multi-tasks scheduling based on ACO, which considers factors such as task profit, deadline, heterogeneity, and load balancing. They try to increase the profit considering constraints like resource usage, executive order, and completion time. The task-flows are classified into independent tasks, linear chain, tree structure, and mesh structure. But, this scheme only conducts static scheduling and cannot be used for online scheduling.

The scheme presented in [119] introduces HLMCM, a hybrid local MCC model with the application scheduling structure. They provide a scheduling algorithm for the MCC-based on the MAX–MIN ant system. Nevertheless, they have not considered the applications' dynamic resource requirements.

In [102], Guo et al. provided a task scheduling method called ACO to improve the performance of the SMDs in the cloud environment and Hadoop. This ACO-based algorithm conducts dynamical task scheduling and enhances throughput and QoS.

4.4.2 GA-Based Offloading Schemes

Several GA-based offloading solutions, such as [58, 119, 120], are introduced for MCC. For instance, in [121], the authors provide a scheduling solution based on DNA combinations and GA processing under the precedence level. It decreases energy usage and task execution time while meeting the deadlines. It provides reliability by retrieving the processed data by the SMD and prevents task failure in MCC. Nevertheless, they have not evaluated their solution.

In [29], Goudarzi et al. present GAMCO, which applies GA for determining the optimum partitioning for offloading to the multisite clouds and mitigate makespan. GA operators are enhanced to achieve the best possible solutions. In this scheme, a chromosome represents a participant application, and each gene indicates a cloud server or local site.

In [122], Kaushi et al. considered mobile applications' partitioning. They used GA to find an optimum application partitioning and offloading solution to reduce the waiting time, communication energy, and computation energy by considering various SMD hardware components to minimize power consumption.

The scheme presented in [123] indicates a solution to handle user movement in the MCC. It uses a mobility model to provide a fault tolerance solution to optimize the computation offloading for workflows. They find a near-optimum solution for this problem using a GA-based method. As an advantage, this scheme predicts the user's mobility path using a Markov chain.

The offloading scheme presented in [85] introduced a technique to estimate the tasks' completion time in a wireless network with high accuracy. An enhanced GA using the 2D chromosome is provided to handle multi-objective task scheduling.

The scheme presented in [124] puts forward a GA-based approach for a heterogeneous multisite offloading problem that considers factors such as battery usage and execution time for computation offloading. Nevertheless, they do not evaluate it against other offloading solutions to highlight its merits.

In [125], Tout et al. presented an offloading approach that monitors resource usage and increases the performance of the SMDs. This scheme can reduce the resource consumption overhead and power usage of the applications running in each persona, accelerating their execution and improving their scalability, allowing better adoption. By adapting multi-objective optimization, this scheme can mitigate memory usages, execution time, and CPU of the application and improve the performance and viability. Although their approach can save SMD power, it does not employ DVFS on the SMD-side, further reducing power consumption.

4.4.3 PSO-Based Offloading Schemes

In [126], Manukumar et al. introduced an efficient multi-objective offloading decision-making scheme regarding the complexity of mobile applications’ and SMD context. Moreover, the PSO algorithm was explored dynamically to identify the optimal cloud by considering makespan and VM cost. This method improved the performance of the computational task by reducing the battery power consumption and makespan.

In [127], Wang et al. introduced a task offloading method for MCC that considers factors such as energy, deadline, and channel constraint. They introduced NAIWPSO, adaptive inertia weight-based PSO, to create a channel constraint-based method to achieve a near-optimal offloading decision. They indicated that their task offloading method outperforms other schemes regarding the metrics such as SMDs’ power usage, makespan, and the algorithm’s running time by conducting the required experiments.

In [128], Alli et al. employed a neuro-fuzzy model for securing data at the smart gateway. In this scheme, the SMDs select fog nodes using PSO for offloading their loads. However, when the fog node cannot handle the load, it forwards the load to the MCC. In this offloading scheme, the authors computed fog computing nodes' availability regarding factors such as processing capabilities and power. Besides, in this scheme, reinforcement learning is used for cloud selection. The authors evaluated their scheme with JAVA Programming and NS-3 simulator. They compared their secure offloading model and indicted that their scheme reduces latency.

4.4.4 DE-Based Offloading Schemes

Several offloading schemes have been proposed using the differential evolution (DE) algorithm. In [40], Huang et al. proposed an energy-aware computation offloading using cloudlets to mitigate high latency in offloading to remote clouds. They tried to improve the offloading method of workflows using the DE algorithm to reduce the power usage of the SMDs with time constraints.

In [129], Huang et al. proposed NSDE, a non-dominated sorting DE algorithm for handling offloading in MCCs. This scheme models applications as a constrained multi-objective optimization problem and applies the NSDE algorithm to solve it while minimizing the multimedia workflows' power usage. By conducting several experiments, they verified the validity of their method.

Table 3 presents the properties of the offloading schemes which have applied metaheuristic algorithms.

Table 3 Properties of the meta-heuristic based offloading schemes

4.4.5 Firefly-Based Offloading Schemes

The offloading scheme presented in [130], establishes an approach for the fog-cloud environment and handling delay-intensive and resource-intensive applications with an optimal task offloading strategy. They proposed an offloading method based on the Firefly algorithm and tried to minimize factors such as power usage and computational time. They show that their approach performs other metrics energy, CO2 emission, computational time, and temperature.

4.4.6 NSGA-III Based Offloading Schemes

The offloading scheme proposed in [131], Xu et al. introduced COM, a computation offloading method for cloud-edge computing that considers factors such as energy usage and execution time for SMDs. This scheme applies the NSGA-III algorithm to deal with the multi-objective task offloading.

In [132], Xu et al. presented MOC for computation offloading on the cloud-edge computing environments. This scheme presents a vehicle-to-vehicle routing algorithm. In this scheme, when the edge computing environments are overloaded, the offloading will be conducted on the clouds. Besides, NSGA-III is applied for multi-objective optimization aiming for load balancing in edge computing and decreasing the power consumption and tasks makespan. They used the multiple criteria decision making and additive weighting to evaluate their achieved solutions by the NSGA-III. At last, by conducting the required experiments, the authors validated the efficiency of their offloading approach.

In [133], the authors provided MCO, a multi-objective computation offloading method. They considered an energy usage model for the SMDs in the cloudlet‐based MCC. An improved NSGA-II algorithm for handling computation offloading and achieving energy saving for SMDs, considering the workflow deadlines. At last, several experiments are conducted to indicate the effectiveness of their offloading approach.

4.5 Regression-Based Offloading Schemes

This subsection provides a review of the regression-based offloading systems designed for the MCC environment. These solutions are aimed to apply regression-based prediction techniques to enhance the performance and effectiveness of the offloading solution. For example, in [136], Dhanya et al. try to decide to offload according to the current context and the SMD's optimization choice. They make offloading decisions based on regression analysis, which takes less time and energy.

In [137], Khoda et al. present ExTrade, a code offloading system that uses a 5G cellular network and reduces the applications’ response time and battery power. They make offloading decisions using the Lagrange multiplier and introduce a statistical regression-based model to estimate the task execution time considering the adaptable environment and application usage. However, their solution only supports one server and does not discuss the availability of multiple offloading servers.

4.6 Stochastic Schemes

This subsection discusses the offloading schemes designed for the MCC environment, which have applied stochastic models to improve the offloading systems' various properties.

4.6.1 Markov Chain-Based Offloading Schemes

Numerous Markov chain-based schemes such as [18] are employed for offloading in MCC, which this subsection discusses. For example, in [59], Meng et al. introduce a secure and cost-aware offloading method that applies a hybrid continuous-time Markov chain and a queuing model. They indicate the variance of random delays reduces the random padding effectiveness, and the measurements of an attacker should grow linearly with the standard deviation of the random delays.

The scheme presented in [138] offers an offloading game for an SMD that tries to select its offloading rate, an attacker that selects its malicious behavior mode, and a security agent aimed to protect the offloading process. They derive the Nash and Stackelberg equilibrium of the offloading game and provide a Q-learning based offloading solution for SMDs. This offloading scheme improves the utility of the SMD and reduces the malicious behavior rate.

4.6.2 Semi-Markov Based Offloading Schemes

In [139], the authors try to offload the local load, consider the adaptable executions of applications using an order-k semi-Markov model, and decide about offloading regarding probabilistic estimations of the offloading operation’s energy saving. Their idea is to consider these patterns using the semi-Markov model and find the transitions according to Markovian states' sojourn time distributions. As an advantage, this scheme's effectiveness is evaluated using experiments over Firefox, ChessWalk, and barcode applications.

4.6.3 Semi-Markov Decision-Based Schemes

This subsection provides a survey on the SMDP-based offloading schemes specially designed for the MCC environment. For instance, in [140], Wang et al. present an SMDP-based offloading solution that applies the bus-based cloudlets as a destination and considers it a delay-constrained shortest path problem. Then, they improve the performance of SMDs by mitigating the cost and increasing the offloading rate.

The approach presented in [141] performs wireless transmission scheduling to balance SMD's power efficiency and responsiveness. They consider causality and application runtime when delaying wireless transmissions to reduce the wireless energy cost and meet the application deadlines. It improves the power efficiency of the offloading over realistic SMDs.

In [134], Chen et al. apply DVFS in the SMD’s local processor, where the modulations and bit rates of RF transmitter can be tuned. An accurate battery model is used to forecast the energy loss rate. It introduces an SMDP-based optimization approach, with the support for various DVFS levels, to mitigate the average latency in request servicing and power usage. The advantages include finding the optimum DVFS setting and offloading rate, using linear programming and a heuristic method.

4.6.4 Markov Decision Process-Based Schemes

This subsection reviews the offloading schemes which utilize MDP for in [86, 142, 143], the framework presented in [144], investigates data offloading in MCC, using the cellular network, WiFi, and SMD to SMD communications. It offloads a part of the data traffic via WiFi and D2D networks. They consider the data offloading as a finite horizon MDP and solve it using a hybrid offloading algorithm for both latency-sensitive and latency tolerant program.

In [145], Terefe et al. put forward a model for energy usage of multisite execution and use a DTMC model for fading wireless channels. They also apply an MDP model to consider the multisite partitioning as a delay-sensitive and least-cost shortest path problem on a transition graph. Their multisite offloading solution is built on a value iteration algorithm and considers the site capabilities to distribute components to mitigate data transfer power costs.

The work in [146], applies conceptual models by blending the positive outcomes of both methods using MDP to provide conceptual analysis. As an advantage, they introduce a hybrid solution using a Markov chain model for selecting the offloading server.

In [147], the authors present an adaptable offloading approach to decide offloading for a set of parallel tasks. They solve the MDP model for the user SMD to achieve an optimum offloading policy to reduce the processing and offloading cost. They improve the MDP model to a constrained MDP to handle the offloading problem while meeting the deadlines. Nevertheless, the cost model of this scheme should be tuned to deal with more realistic scenarios.

The work in [98] introduced a hybrid data offloading model, where SMD can use the WiFi network and D2D communication to offload mobile data. They formulated the mobile data offloading problem as an FHMDP and introduced a hybrid offloading algorithm for delay-sensitive and delay-tolerant applications. They showed that their scheme achieves low offloading costs and increases the offloading ratio.

The scheme proposed in [148], presents MDPCO, in which the MDP method is applied for handling offloading computation while minimizing the power consumption by optimizing the offloading decisions and resource allocation. They indicated that the MDPCO algorithm could outperform other algorithms under different parameters.

In [149], the authors proposed GM-MCC or genetic Markov MCC for dealing with multisite computation offloading in MCCs that considers the environment changes in the lifecycle of the applications. This scheme uses the MDP to find the best possible decision for offloading and allocate application components to the target site by consuming less energy of SMDs by considering the cost and overhead factors. This model utilizes a GA-based algorithm to tune the MDP parameters to achieve the highest benefit. The authors indicated that this model considers different capabilities of sites to allocate appropriate components. There is a lower energy cost for data transfer from the mobile to the cloud.

4.6.5 Hidden Markov Model-Based Offloading Schemes

This subsection will provide a survey on the HMM-based offloading schemes, such as those designed for MCC. In [150], the authors propose an HMM-based scheduling solution to improve the processing delay accuracy and power usage in MCC. To identify the optimum configuration for various requirements, they consider network status, SMD battery, and CPU load as the hidden states. The SMD power efficiency, processing accuracy, and execution performance are used as outputs from the hidden states. They apply the Baum-Welch algorithm for the HMM learning process and introduce an HMM for each operation setting. By sorting the hidden states' output probability, they make an optimum based on the statistical features.

4.6.6 Queuing Model-Based Offloading Scheme

Queuing theory is one of the interesting analytical analysis techniques for modeling offloading approaches in the MCC. This subsection will review the Queuing Model-based Offloading schemes such as [8, 61, 101, 151,152,153,154,155] and their key contributions in the MCC. The approach presented in [156] provides an analytical queuing model for delay offloading with intermittent connectivity links, which consider deadlines to detect failures and service interruptions. As an advantage, they analyze power-saving and latency mitigation. Besides, in [157], Wang et al. develop a dynamic application offloading decision-transmission scheduling scheme using numerous target clouds. They use the Lyapunov optimization to have a low-overhead dynamic offloading scheduling solution. But, conducting more experiments are needed to evaluate it against other offloading solutions.

In [93], the authors proposed DTO, a lightweight distributed scheme to handle the workload offloading with deadline constraints in MCC. They indicated that their algorithm could meet the computational tasks' deadline and achieve a near-optimal system-wide utility. Furthermore, they conducted experiments on the SMDs to exhibit the effectiveness of their approach. Table 4 specifies the evaluation factors, the simulators, and environments applied in the regression-based offloading schemes.

Table 4 Properties of the Regression-based Offloading and Stochastic offloading schemes

4.7 Heuristic-Based Offloading Schemes

This subsection provides a review of the heuristic offloading approaches, such as [94], designed for the MCC. To be more specific, they mainly focus on the following categories of the offloading methods:

  • Energy-aware schemes

  • DVFS-based schemes

  • Load-aware schemes

  • Location-aware schemes

  • Security-aware scheme

  • Link selection-based schemes

In [97], Han et al. analyzed the outage probability and bottleneck for mobile computation offloading. They considered different offloading scenarios with task division, channel allocation methods, and the outage probability of the computation and transmission. The outage bottleneck is determined by the power usage ratio with high power consumption. However, they have not considered issues such as bottleneck and order of tasks.

Besides, in [158], Salehan introduced CMOD, an online context-aware mechanism to save power and reduce execution time while making context-aware offloading decisions. They use a nonlinear programming model defined to maximize the objective function. They indicated that their solution demonstrates satisfactory performance. However, they assumed that only one user intends to offload her tasks, which is not realistic.

In [159], the authors focused on the task offloading on a two-tier MCC and formulated this problem as a Non-linear binary integer programming. They proposed a distributed linear relaxation method using the Lagrangian decomposition method. They proposed a greedy heuristic to select the best cloudlet and allocate bandwidth. They also conducted the required experiments and considered factors such as CPU resources, different users, and applications with varying resource and traffic patterns. The authors indicated that their scheme outperforms other approaches.

4.7.1 DVFS-Based Schemes

The DVFS-based solution reduces power consumption by reducing the CPU's operating frequency, considering the specified deadlines [160].

The approach introduced in [55] tries to balance the execution time and power consumption by using DVFS in the local processor in the SMDs. The rate capacity impact of a battery and power conversion losses in the SMD is used to have a realistic model of the remaining battery life. The SMD is modeled using SMDP and the optimization issue to set the DVFS level. The transmission rate is resolved by linear programming aggregated with a one-dimensional heuristic search.

The solution presented in [25] proposes a DVFS-aware offloading algorithm to reduce makespan and migrate tasks between the local cores and the cloud. It determines the tasks that should be offloaded, tunes the frequencies for running local tasks, and schedules all tasks on the cores and the wireless channels. The precedence requirements and completion deadlines are met, and the SMD's power consumption is reduced.

In [161], Balakrishnan et al. employ DVFS in mapping and scheduling stages by considering both the task-resource and resource-frequency assignments. They estimated the worst-case global slack time for each task-resource assignment, distributes it over the Task Interaction Graph (TIG), and slowing down the execution of tasks using DVFS. This optimal slowdown increases the computation time of TIG without exceeding its worst-case completion time. This scheme model the code offloading as a Quadratic Assignment Problem and solves it using a two-level GA. The authors indicated that this scheme could reduce the power usage of SMDs.

In [162], Guo et al. introduce a distributed offloading and resource scheduling algorithm to reduce energy consumption and completion time. It contains three algorithms for computation offloading selection, clock frequency tuning, and transmission power assignment. They find that the computation offloading selection depends on the computing load, its predecessors' maximum execution time, the clock frequency, and the SMD's transmission power. Advantages include reducing the energy consumption by DVFS-based CPU clock frequency tuning in the SMD and selecting the wireless channel's transmission energy.

4.7.2 Load-Aware Offloading Schemes

In [87], Shakkeera et al. present E-MACS, a power-aware SMD application scheduling algorithm for hybrid cloud. The application's consolidation reduces the power usage in the cloudlet, response latency, and migration cost. It improves factors such as QoS, throughput, and scalability among resources by load balancing.

4.7.3 Location-Aware Offloading Schemes

This subsection provides a survey on the location-aware offloading schemes such as [163], designed for MCC. For example, the solution presented in [164] proposes a level offloading mechanism that considers the mobility of the SMD and finds the best cloud instance. The application is divided at migration points where the execution thread is performed from the SMD to the cloud to improve performance and power cost. The SMD can finish the execution after the partitioned thread returns back to the SMD.

4.7.4 Energy-Aware Offloading Schemes

Many energy-aware offloading approaches, such as [81], are designed for MCC, which this part of the paper discusses.

In [44], Shiraz et al. propose EECOF, a distributed solution for the CPU-intensive programs in MCC, which reduces the data transmission size and energy cost in computational offloading. EECOF addresses energy usage and tries to mitigate the overheads of component offloading. But, the consistency of the simultaneous execution between the SMD and remote cloud server is not considered in this approach.

In [33], Lee et al. put forward SCCE, an energy-aware task scheduling in MCC, to mitigate the energy usage. Regarding the specified deadline, they apply a collaborative execution method. A threshold of the data size is employed for computation offloading and use the adaptive threshold to use degenerated Monte Carlo estimation.

The solution presented in [160] provides EETS, a power-aware task scheduling, and offloading in MCC. They evaluate the scheduler utilizing an Android smartphone to select the right action and mitigate energy usage. They present a task allocation method using the task data size, storage path, and an energy usage model. As an advantage, they apply a data compression method to reduce power consumption for the transferred data.

In [155], Zhang et al. provide EDTS, a power-aware scheduling solution to reduce the power usage of the SMDs regarding the specified deadline.

Besides, the offloading framework in [165] introduced an adaptive offloading model for data stream applications and performed code partitioning at thread-level. The application threads were further categorized as CPU intensive and I/O intensive tasks. This algorithm increases data stream applications' performance concerning makespan, power usage, computational load, and bandwidth. Finally, this scheme's performance is analyzed based on different resource models, but they have not considered data-intensive applications.

4.7.5 Security Aware Offloading Scheme

MCC is vulnerable to some security attacks. This subsection provides a survey on the security-aware offloading schemes, such as [7, 166,167,168,169] designed for the MCC environment.

In [35], Mahmoodi et al. provide a privacy-aware solution for the SMDs for server-based scheduling. Their method uses the holomorphic properties of cryptosystems to compute user availabilities. They specify the privacy requirements in such scheduling applications and use their solution on the real SMDs. They also indicated that their approach could satisfy the privacy properties and consider computation and communication factors.

The approach provided in [170] presents the OpenCL-based remote offloading solution for the SMD applications, which applies VPN to reduce the execution time and energy consumption. They implement their remote offloading framework prototype on an Android-based SMD and provide an adaptable resource discovery solution. The SMD is permitted to find the resources by IP multicasting via a virtual private network link.

In the offloading approach introduced in [171], Fadaraliki et al. propose a multi-agent approach on the Android-based SMD. This approach allows for the development of computation-intensive applications. Agents in the system are aware of resource limitations, battery power, and CPU consumption and tune their behaviors to obtain a tradeoff between resource consumption and security expectations.

4.7.6 Link Selection-Based Offloading Schemes

The offloading method in [135], Goudarzi et al. consider the power-aware link selection as a discrete stochastic adaptable program to improve the system throughput. As an advantage, they apply an approximate flexible programming algorithm that does not need the statistics of stochastic information.

The offloading approach, introduced in [172], presented a computation offloading method using deep learning for vehicular edge-clouds. This scheme considers the computational offloading and resource allocation and formulates the problem as a binary optimization aiming for minimizing the system cost. It uses a distributed deep learning algorithm that deep networks are used in parallel for achieving optimal computational offloading. The authors proved that their approach could provide convergence factly and reduce resource consumption.

4.8 Learning Automata-Based Offloading Schemes

In [173], Krishna et al. present LADM, a reinforcement-based algorithm for offloading MCC tasks, which applies computation time and power usage for making the offloading decisions. This scheme supports the parallel execution of the job in mobile and cloud while reducing the job's overall cost.

4.9 Exponential Moving Average-Based Offloading Schemes

The framework provided in [56] introduces Phone2Cloud, a computation offloading method for power saving on the SMDs in MCC. Its objective is to improve the SMD's power efficiency and increase the application performance by mitigating its execution time. They evaluate their scheme on an Android and Hadoop environment, but not with other systems. Although this scheme provides semi-automatic offloading, it does not support automatic offloading. Table 5 specifies the simulation factors and the simulators/environment applied in the heuristic, learning automata-based, and exponential moving average-based offloading schemes.

Table 5 Properties of the Heuristic-based offloading, learning automata offloading schemes, exponential moving average, and auction-based offloading schemes

4.10 Auction-Based Offloading Schemes

In [174], proposed a three-tier architecture for task offloading in MCC which tasks should be offloaded to near SMDs or cloudlets as the first two tiers and in the next step the MCC as the third tier. They applied the auction theory concepts to assign the task optimally to the SMDs, cloudlets, or MCC regarding factors such as power consumption and latency.

The approach presented in [175] introduces mCloudAuc, a reverse auction-based task offloading method for providing real-time auctions in the MMC. In this scheme, an SMD acts as a seller and competes with other SMDs by bidding on its computing resources. Also, an SMD that acts as a buyer may pay the price of bidding and then offload its tasks to the winning SMD. They indicated through simulations and proof the computation efficiency, individual rationality for the participants, and truthfulness. The authors implemented the mCloudAuc on the Android platform and provided its effectiveness.

In [176], Zhang et al. introduced a computation offloading method for the edge-computing system, consisting of energy harvesting SMDs and a dispatcher that collects the IoT devices' computation tasks. In this scheme, SMDs with limited computation capabilities to offload their loads on other SMDs for rewards. They introduced RoA, an online rewards-optimal auction, for optimizing rewards for handling the offloaded tasks while considering dynamic energy harvesting and arrivals of the computation tasks. RoA is based on Vickrey-Clarke-Groves auction and Lyapunov optimization. The authors validated their task assignment optimality by conducting several experiments and simulations.

5 Discussion

This subsection presents an extensive analysis and comparison of the offloading schemes in a cloud environment, outlined in the previous section. The results of this section can be used to highlight the directions of future research and help to develop new offloading solutions for cloud DCs. This section attempts to provide the following information about the offloading frameworks designed for the cloud:

  • Evaluation metrics considered in the simulation process of the proposed offloading approaches.

  • Simulators used to evaluate and analyze the proposed offloading schemes in various situations.

  • Techniques adapted to handle the offloading process.

  • Percentage of the two-tier and three-tier offloading approaches

  • Percentage of the meat-heuristic algorithms applied in the offloading approaches

  • Percentage of the heuristic offloading schemes

  • Number of the stochastic offloading schemes

Figure 4 depicts the number of the proposed offloading schemes using various algorithms and techniques outlined in the previous section. As shown in this figure, to model the inherent uncertainty in the realistic offloading process, many offloading schemes based on the stochastic modeling are proposed. Figure 5 tries to depict the number of offloading solutions, which applies each kind of analytical modeling methods. As shown in this figure, Queueing theory is employed in most schemes to deal with offloading. However, less works have been conducted using HMM models and semi-Markov models. Figure 6 indicates the metaheuristic algorithms applied in the studied offloading approaches and the number of schemes that involve each kind of such algorithms. As shown in this figure, a few research types are performed to optimize different offloading features in MCC.

Fig. 4
figure 4

Number of the offloading schemes proposed in each category

Fig. 5
figure 5

Number of the stochastic offloading and scheduling schemes

Fig. 6
figure 6

Percentage of the meta-heuristic offloading schemes

Also, Fig. 7 indicates the number of heuristic offloading frameworks outlined in the previous section. Regarding the limited battery power of the SMD’s and the importance of the MCC's energy-saving, DVFS-based power management can be further investigated to alleviate the energy overheads in the SMDs, cloudlets, and the remote cloud DCs. Also, as shown in this figure, only a few numbers of offloading approaches have considered security issues. Considering the increasing number of security attacks on wireless networks, malicious behaviors, and security attacks should be further investigated in future studies.

Fig. 7
figure 7

Percentage of the heuristic offloading schemes

Figure 8 exhibits the percentage of the two-tier and three-tier offloading schemes in the MCC environment. As outlined before, systems that benefit from the three-tier architecture benefit from one or more cloudlets in the middle layer, which alleviate the MCC load and reduce the offloading delays for the SMDs. As shown in this figure, fewer schemes have used cloudlets in their architecture, and this area can be further investigated in future studies. In this context, issues such as cloudlets’ mobility, security, and architecture can focus on the next research. Figure 9 show the percentage of the evaluation metrics applied in the investigated offloading schemes. As shown in this figure, energy consumption, execution, and cost are three main metrics considered in the offloading articles. However, as shown in this figure, important metrics such as security-related metrics are neglected and few researches have been conducted in the secuirty context. Also, Fig. 10 indicates the number of simulation environments and programming languages which have been used in evaluation of the proposed offloading approaches. As exhibited in the following figure, most of the schemes have used real environments in their experiments and applied Amazon EC2, OpenStack, or othr cloud computing emvironments. Besides, the Cloudsim simulator and Matlab programming environment.

Fig. 8
figure 8

Percentage of the two-tier and three-tier offloading schemes

Fig. 9
figure 9

Percentage of the applied evaluation metrics

Fig. 10
figure 10

Applied simulation and programming environments

6 Conclusion

Emerging new processing-intensive applications and ever-growing wireless networks have enabled data, code, and applications offloading from the SMDs onto the MCC servers. Offloading empowers the SMDs with unlimited resources of MCCs and saves their battery power. Typically, the offloading decision should be made considering factors such as delay, energy consumption, and the access ability of WiFi and cellular wireless links;

For handling these issues, numerous scheduling and offloading approaches are introduced in the literature, which this paper is aimed to provide a comprehensive survey and analysis of them. We focus on the algorithms employed in making the offloading decisions and present a taxonomy of the offloading frameworks regarding their applied algorithms. Furthermore, a comparison of these approaches are presented for highlighting their datasets, evaluation factors applied in the simulation process, architecture, and offloading methods.

Also, in future studies, the following issues should be discussed in the offloading domain:

  • Nevertheless, offloading data, code, and computation to the remote cloud servers makes them vulnerable to different kinds of attacks. Thus, in future studies, providing automatic offloading solutions according to the organizations' security policies and users' security levels should be further analyzed. In this context, offloading decisions can be investigated regarding the security policies of the organizations.

  • Integrating offloading with the trust management schemes is another interesting issue that can be employed to blacklist selfish nodes or malicious ones that offload harmful codes and applications to the cloud or cloudlets.

  • Also, for mitigating the energy consumption, dynamic energy management techniques such as DVFS should be investigated on the SMDs and MCC servers. Besides, less research is conducted in this context, and it should be studied more in future investigations.

  • For improving the offloading performance, various prediction methods to predict the workload on the MCC data centers can be applied. In this context, the workload prediction schemes designed for MCC environments can be integrated with the offloading approaches to provide more robust offloading solutions.

  • Variation in the offloading destinations' processing capabilities, which may be under a distributed denial of service(DDoS) attacks, has not been investigated and it should be addressed in the future. Also, regarding the DDoS attack and their impact of the bandwidth of the cloud datacenters, proper investigations should beconducted to

  • Dealing with malicious SMD’s which may be infected by the growing viruses and malware to conduct DDoS attacks on the offloading destinations has not been discussed in examined literature and should be focused further.