You are on page 1of 14

Journal of Network and Computer Applications 119 (2018) 83–96

Contents lists available at ScienceDirect

Journal of Network and Computer Applications


journal homepage: www.elsevier.com/locate/jnca

Review

Partitioning and offloading in smart mobile devices for mobile cloud T


computing: State of the art and future directions
Fei Gua,b, Jianwei Niua,b,∗, Zhiping Qia,b, Mohammed Atiquzzamanc
a
State Key Laboratory of Virtual Reality Technology and Systems, School of Computer Science and Engineering, Beihang University, Beijing 100191, China
b
Beijing Advanced Innovation Center for Big Data and Brain Computing (BDBC), Beihang University, China
c
School of Computer Science, University of Oklahoma, Norman, OK 73019-6151, USA

A R T I C LE I N FO A B S T R A C T

Keywords: Mobile applications, such as augment reality, natural language processing, object recognition and multimedia-
Mobile cloud computing based services, are becoming increasingly ubiquitous and can provide better user experience on mobile devices.
Partitioning However, such applications are draining increasingly more computational resources and energy of mobile de-
Offloading vices. Partitioning and offloading some parts of mobile applications is a promising method of saving time and
Computation and communication overheads
energy for mobile devices with con-strained resources. Most of current researches have focused on designing
Energy consumption
effective offloading systems to save time and energy while giving limited consideration to enabling techniques.
Moreover, researchers have seldom paid attention to different computation resources in offloading frameworks.
In this paper, we present the state-of-the-art enabling techniques and different computational resources used for
partitioning and offloading. We also investigate mobile cloud computing and relevant paradigms from the
perspective of partitioning and offloading enabling techniques. Then we propose a taxonomy of these parti-
tioning and offloading techniques and survey some well-established offloading frameworks. Based on our tax-
onomy, we compare these offloading frameworks and show some offloading schemes. Furthermore, we discuss
open research issues and challenges to partitioning and offloading.

1. Introduction network scheduling (Yu et al., 2017; Reaz et al., 2006), network ana-
lysis (Chowdhury et al., 2006; Fu and Atiquzzaman, 2005) and image
With the development of wireless technology, mobile devices, such processors (Kristensen and Bouvin, 2008; Porras et al., 2009) require
as smartphones and smart watches, are becoming the most effective higher disk capacity, computing speed, and battery lifetime than other
tools for communication in human's daily life (Dinh et al., 2013; applications. Moreover, compared with other applications that are
Widodo et al., 2017; Bai et al., 2004). The popularity and availability of currently supported on mobile devices, these applications require faster
mobile devices can help mobile users enrich experience of various response.
services provided by mobile applications without the constrain of time Although many researchers have paid attention to incorporating
and place (Sanaei et al., 2014; Fu et al., 2005a; Fu et al., 2005b). multiple core processors of high performance into mobile devices and
However, the resources of mobile devices are constrained. With limited improving the efficiency of computational algorithms, the gap between
weight, size and battery life, the computational resources of mobile the capacity of the existing mobile devices and the increasing compu-
devices, such as disk capacity, memory size and running speed, are tation resources is growing (Lin et al., 2012; Goulding-Hotta et al.,
restricted (Shaukat et al., 2016). Since the computation technologies on 2011). To bridge the gap, cloud has been used to share the computation
mobile devices are evolving day by day, the performance of mobile and power pressure of mobile devices (Armbrust et al., 2010; Zhang
devices still lags behind that of traditional nonmobile computers. While et al., 2010; Buyya et al., 2009). The Cloud Data Center (CDC), which
running on mobile devices with constrained resources, mobile appli- comprises of thousands of servers, storages, and network devices in-
cations, such as speech recognizers (Kristensen, 2007; Su and Flinn, terconnected with each other, is an ideal candidate for augmentation of
2005), natural language translators (Balan et al., 2007; Flinn et al., computation tasks with resource-constrained mobile devices (Shuja
2002), optical character recognizers (Balan et al., 2007), wireless et al., 2016). By leveraging computing resources and services of CDCs,


Corresponding author. State Key Laboratory of Virtual Reality Technology and Systems, School of Computer Science and Engineering, Beihang University, Beijing
100191, China.
E-mail address: niujianwei@buaa.edu.cn (J. Niu).

https://doi.org/10.1016/j.jnca.2018.06.009
Received 11 March 2018; Received in revised form 31 May 2018; Accepted 19 June 2018
Available online 27 June 2018
1084-8045/ © 2018 Elsevier Ltd. All rights reserved.
F. Gu et al. Journal of Network and Computer Applications 119 (2018) 83–96

Fig. 1. Architecture of MCC. It consists of mobile devices communication technology, and cloud server.

mobile devices can alleviate their overhead and run smoothly. Mobile influence the performance of partitioning and offloading. Some
Cloud Computing (MCC) aims to create new software level solutions on offloading schemes are demonstrated and we also present open
the application layer for improving the performance of mobile devices. challenges for future research.
Partitioning and offloading is an application layer solution which can
alleviate the pressure of mobile devices (Singh and Andrews, 2014; Ou The remainder of the paper is organized as follows, Section 2 de-
et al., 2007). It divides computation tasks into two parts: one part runs scribes the fundamental concepts of mobile cloud computing, parti-
locally, and the other one is uploaded and runs on a remote cloud. MCC tioning and offloading. A taxonomy of enabling techniques and some
can augment the application processing performance of mobile devices major frameworks on partitioning and offloading are presented in
through offloading techniques (Huerta-Canepa and Lee, 2010; Zhang Sections 3 and 4, respectively. Section 5 gives our classification of these
et al., 2011). Instead of executing the applications on mobile devices, major frameworks based on the proposed taxonomy. Section 6 presents
the resource-intensive segments of the application can be executed on offloading decisions and schemes, and Section 7 shows the challenges
the cloud via wired or wireless channel. In this way, the abundant cloud for future research. At last, Section 8 concludes the paper.
resources in terms of storage and processing of the data can be utilized
to provide a faster calculation. It is demonstrated that offloading on 2. Background
mobile devices could benefit for many domains (Chun et al., 2011;
Cuervo et al., 2010; Kosta et al., 2012). The fundamental concepts of MCC and the theoretical aspects of
A number of surveys on partitioning and offloading from various partitioning and offloading are presented in this section.
perspectives have been conducted (Bhattacharya and De, 2017;
Abolfazli et al., 2014; Forkan et al., 2017; Gunnam et al., 2007). Dinh 2.1. Mobile cloud computing
et al. (2013) described the concept of computation offloading and its
applications in different fields. Sharifi et al. (2012) presented the MCC is a computing schedule, which extends the computing version
methods to implement offloading. In (Shaukat et al., 2016), a taxonomy of clouds to mobile devices with constrained resources (Shiraz et al.,
of solutions based on cloudlets is presented. Ahmed et al. discussed 2013b; Marston et al., 2011; Alzahrani et al., 2014). It combines the
(Ahmed et al., 2015b) the seamless execution of applications in MCC advantages of different technologies, such as service oriented com-
with a focus on applications and system virtualization based frame- puting (Wei and Blake, 2010), virtualization (Vaquero et al., 2008), and
works. Abolfazli et al. (2014) conducted a survey of mobile-cloud grid computing (Foster et al., 2008). MCC empowers mobile devices
augmentation frameworks with the perspective of mobile-cloud proxi- beyond their intrinsic capabilities, provides various computational re-
mity and mobility. However, most of these surveys have discussed di- sources to mobile users (Buyya et al., 2009) and focuses on alleviating
verse strategies for alleviating the pressure of smart mobile devices limitations of resources of mobile devices by employing energy aug-
without focusing on enabling techniques and different resources used mentation, storage augmentation, and computational ability augmen-
for partitioning and offloading. To the best of our knowledge, this study tation (Shaukat et al., 2016). MCC model has three main components:
is the first effort to comprehensively propose the taxonomy of enabling mobile device, communication technology and cloud server. A mobile
techniques and to classify some famous offloading frameworks ac- device utilizes available communication technology protocols such as
cording to our taxonomy. 3G or 4G, LTE, and Wi-Fi to connect to the cloud server. However, the
The contributions of this paper are as follows: bandwidth of the network may be constrained, and the connection is
often unreliable and suffers from latency issues. To overcome these
• We analyze the existing MCC offloading frameworks, and discuss the problems, mobile devices employ cloud servers to accomplish compu-
enabling techniques and computation resources used for parti- tation tasks with minimum network communication (Ahmed et al.,
tioning and offloading. 2015a; Ahmed et al., 2015c). Fig. 1 shows an architecture of MCC. The
• We propose a comprehensive taxonomy of current partitioning and cloud server provides the storage, processing, computing, and security
offloading schemes considering all parameters, including enabling mechanism for mobile devices through communication technologies. In
technique, offload infrastructure, augmentation model, commu- MCC, service providers provide services in the form of various models,
nication model, partitioning model, programming language support, namely, Infrastructure-as-a-Service (IaaS), Platform-as-a-Service (PaaS)
application partitioning, application profiler, optimization model, and Software-as-a-Service (SaaS), as shown in Fig. 2.
allocation decision and granularity.
• After carefully analyzing some famous partitioning and offloading 2.2. Partitioning and offloading
frameworks, we evaluate the performance of these frameworks in
terms of different parameters proposed in our taxonomy. For improving use experiences, we expect mobile devices can run a
• We investigate the vital partitioning and offloading decisions that variety of applications. However, due to the constraint of weight, size

84
F. Gu et al. Journal of Network and Computer Applications 119 (2018) 83–96

Fig. 2. Architecture of Layered Cloud Computing. It has 3 components in-


cluding IaaS, PaaS, and SaaS.

and battery life, the computation resources of mobile devices, such as


disk capacity, memory, and execution speed, are often limited
(Satyanarayanan, 2015). As one of major applications of MCC, off-
loading aims at augmenting the capability of mobile systems by trans-
porting parts of computational tasks to remote servers (Kumar et al.,
2013). This procedure is accomplished by executing a portion of tasks
of mobile devices on cloud servers. The performance of offloading so-
lutions is related to not only Internet connectivity, but also cloud re-
sources. Moreover, the partitioning strategies also play an important
role in offloading deployment.
The components of an offloading system are shown in Fig. 3. The
mobile device and the remote server are connected through a wireless
network. Portions of the computation tasks are uploaded to computa-
tion resources in the remote server, such as a personal computer (Ra Fig. 4. Flowchart for application partitioning and offloading.
et al., 2011), a server (Satyanarayanan et al., 2013) or a cloud server
(Chun et al., 2011). While handling variations in components, users can The process of partitioning should identify the part uploaded to the
expect Quality of Experience (QoE) to be supported by offloading sys- cloud for running. The flowchart of the procedure of the application
tems. partitioning and offloading for mobile cloud computing is shown in
Recently, there are many offloading schedules proposed to alleviate Fig. 4. Various algorithms (Chen et al., 2004; Chu et al., 2004; Hong
the limitation of computation ability of mobile devices (Hung et al., et al., 2009; Li et al., 2001) have been proposed for partitioning the
2012; Shiraz and Gani, 2014; Goyal and Carter, 2004). To execute a computation between mobile devices and servers. Nowadays, there are
distributed mobile application, the offloading framework should con- many methods for implementing application offloading. Generally
sider the application partitioning problem. Specifically, the framework speaking, the offloading frameworks can partition and offload compu-
should decide which part of tasks should be executed locally and which tational load of different granularity levels to remote cloud servers.
part should be uploaded to cloud server for running (Kumar et al., Partitioning has two types including static partitioning and dynamic
2013). Partitioning application aims to divide the application into se- partitioning. Static partitioning aims to partition the intensive portions
parate portions, and preserve the semantics of the original application. of computation load, and dynamic partitioning can dynamically address

Fig. 3. Typical architecture of a computation offloading system.

85
F. Gu et al. Journal of Network and Computer Applications 119 (2018) 83–96

Fig. 5. Taxonomy of MCC offloading frameworks. The MCC offloading techniques include enabling technique, offload infrastructure, augmentation model, com-
munication model, partitioning model, programming language support, application profiling, optimization mode, allocation decision, granularity, objective and
application partitioning.

the application partitioning load on mobile devices at runtime. migration. System virtualization can provide low power consumption,
easy server consolidation and dynamic reconfiguration, etc. As a result,
it is easier to build high performance servers (Beloglazov and Buyya,
3. Taxonomy of partitioning and offloading approaches
2012; Tawalbeh et al., 2015). Application virtualization solutions are
available in most smartphones in the form of the Dalvik VM (Android
As there are different purposes of offloading the local application to
OS) and. Net runtime environments (Windows Mobile OS). An appli-
a remote server and the constrains are not in complete accordance,
cation executing in an application VM can be offloaded to a similar
there exist different ways to classify approaches for partitioning and
virtual instance over the cloud (Shiraz et al., 2013a; Kord and Haghighi,
offloading. We analyze the published taxonomic standards in recent
2013). In process code migration, the amount of the data to be off-
years, then propose a taxonomy of current partitioning and offloading
loaded is small, and Instruction Set Architecture (ISA) emulation, such
approaches, as shown in Fig. 5, and classify current algorithms based on
as Qemu and gem5 (Ahmed et al., 2015b; Shuja et al., 2016), is required
our taxonomy.
during offloading process state between heterogeneous processors.
Enabling Technique: MCC offload enabling techniques include
Offloading Infrastructure: The offload infrastructure can be
system virtualization, application virtualization and process code

86
F. Gu et al. Journal of Network and Computer Applications 119 (2018) 83–96

categorized as cloud, cloudlet, and mobile ad-hoc. Different frame- partitioning. In some cases, the hardware amelioration is better than a
works fit with different offloading strategies. The cloud based offload good network situation. Generally speaking, there are three main types
faces the challenge of proximity from mobile clients (Han et al., 2014; of profilers. The hardware profiler is used to profile the model by the
Flores et al., 2014; Simanta et al., 2012). This challenge can be ad- physics factors, such as CPU utilization (Agrawal et al., 1998; Zhang
dressed by the cloudlet based infrastructure. The cloudlet based ar- et al., 2009). The network profiler measures the network parameters
chitecture is deployed close to smart mobile devices, which merges the such as connectivity, bandwidth, and signal strength (Zahran et al.,
overlay with the base and then executes the application from the state 2006; Ramamurthy et al., 1999). The software profiler measures the
stored in the VM overlay (Miluzzo et al., 2012; Satyanarayanan et al., application parameters, such as instruction count (Ahmad et al., 2015;
2009). The mobile ad-hoc based framework consisting of four main Song et al., 2015).
components for managing resources, applications, contexts and off- Optimization Model: The optimization techniques used in MCC
loading to the cloud, is established by proximate collaborative smart offloading frameworks are used to lower the communicational or
phone devices to facilitate each other in computing intensive task off- computational cost (Ahmed et al., 2015b). These optimization methods
loading (Wu et al., 2015; Abolfazli et al., 2014). include task based optimization, network optimization and offload
Augmentation Model: IaaS, PaaS, and SaaS are common service decision optimization. The task based optimization method is used to
models for augmenting cloud computation. The augmentation model optimize offloading tasks to achieve the highest efficiency (Kosta et al.,
has a one-to-one association with enabling technique. System virtuali- 2012). The network optimization method is used either to compress the
zation enables offloading frameworks augment to the cloud through offload code or to identify proximate cloud resources (Lyu et al., 2017).
IaaS model (Tawalbeh et al., 2015; Beloglazov and Buyya, 2012), while The offload decision optimization method is used to determine whether
application virtualization utilizes PaaS model to augment offloading to migrate computation or not (Kumar et al., 2013).
frameworks (Vecchiola et al., 2009; Shiraz et al., 2013a). Process code Allocation Decision: Allocation decision means the decision is
migration based on MCC offloading frameworks uses SaaS model formulated locally or remotely. If the decision is made during the
through cross-platform emulators (Ahmed et al., 2015c; Dinh et al., running time, we call it online decision. On the contrary, if a decision is
2013). done before offloading, it is an offline decision. If the decision is neither
Communication Model: Generally, the resource-constrained mo- online nor offline, it is hybrid.
bile devices can communicate with resource-rich servers in a client- Granularity: The attribute of the granularity attribute of an appli-
server model. However, in some circumstances, such as mobile ad-hoc cation partitioning algorithm indicates the level of granularity of par-
cloud, as all mobile clients are on equal footing, mobile devices can titioning. The granularity levels of partitioning of current applications
communicate with the server in a peer-to-peer model, and each mobile can be categorized as allocation-site level (Sinha and Kulkarni, 2011),
device can utilize the resources of another mobile device in a colla- bundle level (Giurgiu et al., 2012; Kovachev, 2012), class level (Abebe
borative network (Mohammad et al., 2015; Rahimi et al., 2014). and Ryan, 2011; Gu et al., 2003), component level (Bialek et al., 2004;
Partitioning Model: The attribute of the partitioning model in- Chu et al., 2004), hybrid level (Abebe and Ryan, 2011), method level
dicates the type of partitioning model employed to model the compo- (Cuervo et al., 2010), module level (Yang et al., 2012; Balan et al.,
nents of the mobile application and its capability. Graph-based, Linear 2007), object level (Tilevich and Smaragdakis, 2002; Niu et al., 2014),
Programming-based (LPbased) and the hybrid are common application task level (Wang and Li, 2004; Goraczko et al., 2008) and thread level
partitioning algorithms. The LP-based algorithm is used to profile the (Chun et al., 2011; Newton et al., 2009).
model of the current situation and constraint formula (Kovachev, The allocation-site level means that the levels of allocation site are
2012). The graph-based algorithm is to profile a calling graph (Niu partitioned, and the object of partitioning is regarded as a single unit
et al., 2014). The edges and points stand for the application and the (Sinha and Kulkarni, 2011). The bundle level means that the parti-
calling relationships, respectively. Compared with the LP-based algo- tioning object is groups of Java classes (Giurgiu et al., 2012). The class
rithm, it is harder to profile a graph as the calling relationship is level means that classes of the application are partitioned for offloading
complex. However, the LP-based algorithm is less efficient than the (Ou et al., 2006). The component level denotes that the application is
graph-based method. The hybrid method can trade off the LP-based and partitioned into separate components for offloading to the remote
the graph-based algorithms. server (Ra et al., 2012). The hybrid level means that the framework has
Programming Language Support: Programming language support different granularity for partitioning (Abebe and Ryan, 2011). The
indicates the selected programming language in the process of parti- method level means that methods of the application are partitioned for
tioning (Bialek et al., 2004). Different sources are written by different offloading (Cuervo et al., 2010). The module level means modules of
languages and transportability of programming code is an important the application is partitioned and offloaded (Yang et al., 2012). The
factor. The programming environment is limited in some partitioning object level means that the application is partitioned by object for
approaches (Yang et al., 2013) and some frameworks are made by offloading (Tilevich and Smaragdakis, 2002). The task level denotes the
several languages. If an partitioning framework can be implemented partitioning object is task (Wang and Li, 2004). The thread level depicts
with many programming languages, we call it universal programming the threads of an application are partitioned (Newton et al., 2009).
language support (Ra et al., 2012). Objective: The main objective of partitioning and offloading is to
Application Partitioning: The partitioning strategy can be the improve the ability of computation (Yang et al., 2013) and to save
static, dynamic, or hybrid analysis. With the static analysis, the appli- energy. Schemes for partitioning and offloading can be classified ac-
cation specific and offline profile based strategy can implement the cording to the following objectives.
partitioning procedure. In this approach, resources can be segmented
quickly. However, it cannot adapt to the environment automatically. • Improving performance: Partitioning algorithms tend to increase
This is a mortal disadvantage, as in the situation when the bandwidth throughput (Yang et al., 2013), adaptation time and efficacy (Abebe
changes a lot, static analysis may have less advantages. Although dy- and Ryan, 2011), algorithm efficiency and cost effectiveness (Ou
namic analysis can adapt to the environment such as a network, and et al., 2006), latency (Cuervo et al., 2010; Chu et al., 2004), ex-
resource situation, it will consume a lot of time and space. Hybrid ecution time (Giurgiu et al., 2012; Niu et al., 2014) and CPU
analysis is a trade off method that can balance the cost for analysis and workload (Newton et al., 2009) of the framework.
the adaptive capability (Ahmed et al., 2015c; Shaukat et al., 2016). • Reducing network overhead: Schemes in this category consider
Application Profiler: Different factors may exert effects of different network overhead for offloading (Abebe and Ryan, 2011; Newton
degrees on cost of partitioning and offloading. In some cases, the net- et al., 2009; Verbelen et al., 2013).
work fluctuation may have a huge influence on the result of • Reducing programmers' burden: Programmers are encouraged with

87
F. Gu et al. Journal of Network and Computer Applications 119 (2018) 83–96

low input in the process of partitioning for reducing their burden


(Cuervo et al., 2010; Chu et al., 2004).
• Reducing memory constraints: The memory restriction on smart
mobile devices can be alleviated by partitioning (Abebe and Ryan,
2011; Gu et al., 2003).
• Multi-site offloading: Several remote servers are used in the process
of partitioning (Sinha and Kulkarni, 2011).
• Updating application dynamically: There is no need to shut down
the application and remote servers during partitioning (Bialek et al.,
2004).
• Saving energy: Power consumption and battery life are crucial fac-
tors in partitioning algorithms (Cuervo et al., 2010; Giurgiu et al.,
2012; Abebe and Ryan, 2011).

4. Partitioning and offloading frameworks

In this section, we revise a number of well-established frameworks Fig. 6. Architecture of MAUI (Cuervo et al., 2010). The smartphone side con-
for partitioning and offloading. These frameworks focus on different sists of a solver interface, a proxy and a profiler, while the server side includes
aspects of partitioning and offloading to alleviate resource restrictions four components: profiler, server side proxy, decision engine, and MAUI con-
in mobile devices. We then compare these systems in terms of context troller.
awareness, latency, bandwidth utilization, privacy, complexity and
security, as shown in Table 1. wireless link such as Wi-Fi with a single-hop distance. In these systems,
applications are usually partitioned into two portions: one is a client
4.1. MAUI running on mobile devices and the other is a computation-intensive
server running on the cloudlet. Fig. 7 shows that a typical architecture
Mobile Assistance Using Infrastructure (MAUI; Cuervo et al., 2010) of cloudlet-based system consists of a cloudlet host and a mobile client.
is a dynamic partitioning framework focusing on saving energy of smart A discovery service can provide for offloading the cloudlet metadata
mobile devices. MAUI can provide the code of fine-grained application ranging from a simple IP address and port to the complex data struc-
offloading with minimum programmer operation, aiming to improve tures showing cloudlet capabilities.
the performance of offloading systems for current smart devices. The A cloudlet-based system usually contains the following advantages:
architecture of MAUI is shown in Fig. 6. The smartphone side consists of
a solver interface, a proxy and a profiler. The solver interface is used to • WAN latency: The main advantage of a cloudlet based system is
facilitate the offloading decisions made for saving energy. The proxy WAN latency (Verbelen et al., 2012). As a cloudlet contains only
handles the control and data transfer of offloading frameworks. The one-hop, the system can use high speed WLAN links without latency
profiler establishes the program, measures the program's energy, and issues.
collects requirements for data transfer. The server side includes four • Offline computation: Cloudlets are usually deployed on the local
components: profiler, server side proxy, decision engine, and MAUI LAN or the one-hop devices nearby. As a result, the system also has a
controller. good performance without web connection.
To save energy, MAUI uses fine-grained offloading code to minimize • Higher bandwidth: A WLAN (Wi-Fi) link between a mobile device
the changes required to applications and perform computation tasks on and a system based on cloudlet can provide a higher bandwidth than
smart devices and remote servers using Microsoft. NET Common wireless Internet links (GPRS) for connecting the cloud.
Language Runtime (CLR; Richter, 2006). MAUI measures wireless • Cost effectiveness: It is cost effective that a user does not need to pay
connectivity, such as latency and bandwidth of the network, and for Internet services due to the one-hop of cloudlets. Moreover,
combines network and CPU costs to provide an effective solution for cloudlets are easily deployed in small organizational entities to en-
determining how to partition the application during running, so as to sure that cloudlets services can be provided either free of cost or at a
obtain the maximum energy savings with current networking condi- minimal price.
tions. MAUI can ease the burden of programmers by combining code
portability, reflection, serialization, and type safety. 4.3. CloneCloud

4.2. Systems based on cloudlet CloneCloud is a MCC offloading framework, which offloads parts of
computation tasks to the infrastructures nearby or cloud (Chun et al.,
Systems based on cloudlet are decentralized Internet infrastructures. 2011). The architecture of CloneCloud is shown in Fig. 8. It is important
The computing abilities and storage resources of these systems can be that synchronization of the smartphone ensures consistent execution.
utilized by near mobile devices (Satyanarayanan et al., 2009). The CloneCloud supports five types of augmented executions (Chun and
cloudlet-based system can connect near mobile devices through a Maniatis, 2009): mainline augmentation, hardware augmentation,

Table 1
Comparison of Performance in terms of Context Awareness (CA), Latency, Bandwidth Utilization (BU), Privacy, Complexity and Security.
Framework CA Latency BU Privacy Complexity Security

MAUI (Cuervo et al., 2010) High Low Low Low Low Low
Cloudlet (Satyanarayanan et al., 2009) Low High Medium/High Low Medium Low
CloneCloud (Chun et al., 2011) Medium High/Medium/Low High Low High Low
ThinkAir (Kosta et al., 2012) High Low Low Low High Low
Misco (Dou et al., 2010) Medium Low Low Low Medium Low
Cuckoo (Kemp et al., 2010) Low Medium Low Low Medium Low

88
F. Gu et al. Journal of Network and Computer Applications 119 (2018) 83–96

Fig. 7. Architecture of Cloudlet-based System (Satyanarayanan et al., 2009). It consists of a cloudlet host and a mobile client.

primary functionality outsourcing, background augmentation, and suspend migrate-resume mechanisms, CloneCloud can provide fine-
augmented throughput multiplicity. The application partitioning grained thread level migration (Satyanarayanan et al., 2005).
module combines the static analyzer and the application dynamic
profiler to fulfill execution objectives while ensuring application cor- 4.4. ThinkAir
rectness constraints. The static analyzer identifies legal partitioning
choices and set of exit and re-integration points for the application ThinkAir is an offloading framework based on Virtual Machines
according to the constraints. The dynamic profiler collects the data (VMs), which exploits smartphone virtualization in the cloud and sup-
required as input for the cost model of computational offloading under ports method level computation partitioning and offloading (Kosta
different execution settings. et al., 2012). ThinkAir allocates on-demand resources and exploits
CloneCloud has the following advantages: parallelism by dynamically creating, resuming, and destroying VMs in
the cloud when needed. This framework belongs to the scale of software
• Backuping recovery of execution data: When a smartphone is not augmentation techniques (Abolfazli et al., 2014). The architecture of
available, the clone can backup recovery of executing data. ThinkAir contains three major components: the execution environment,
• Augmenting execution: Considering the cost and constraints of off- profilers, and the application server, as shown in Fig. 9.
loading, CloneCloud can augment execution of the mobile devices On the work node, such as smartphones, there are an execution
applications on the cloud. controller, an energy model and three profile modules. The execution
• Supporting fine-grained migration: Compared with traditional controller drives the decision of offloading and records the past

Fig. 8. Architecture of CloneCloud (Chun et al., 2011).

89
F. Gu et al. Journal of Network and Computer Applications 119 (2018) 83–96

• It takes the energy consumption into account in determining the


offloading portions.
• It allocates resource by demands and uses parallelism to reduce
execution delays.
• Profilers and energy model can be used to determine offloading
decision and estimate energy consumption, respectively.
• The performance does not depend on separate application servers to
distribute computation tasks.

4.5. Misco

Misco is a framework for processing flexibly distributed data, which


uploads computational intensive tasks to the worker nodes such as
smartphones or tablets (Dou et al., 2010). A distinctive feature of this
framework is the direction of offloading, in which mobile devices serve
as the components for processing remote tasks. Misco is designed to
support Python and network connectivity, which consists of a number
of worker nodes and a master server, as shown in Fig. 10.
On the master server side, there are three main components: ap-
plication scheduler, application repository and HTTP server. The ap-
plication scheduler determines the sequence of execution of applica-
tions, and the well-known Earliest Deadline First Scheduler (EDFS) is
adopted. Application repository takes charge of storing the application
input and output data and transmitting the data to the HTTP server. The
HTTP server is regarded as the main method for the communication
between workers and the master server. The server is responsible for
receiving the requests from worker nodes to display the application
status to users and handle intermediary files.
With respect to worker nodes, Misco mainly consists of a requester,
a task repository and a logger. The requester serves as the core com-
ponent of a worker node, which interacts with the HTTP server to re-
quest tasks as well as data, triggers the execution of processor to work
out Map/Reduce tasks and handles upgrade. The task repository stores
any local data needed for the requester. Finally, the logger is used to
maintain the local tasks, and sends them to the master server in com-
pletion of tasks.
Fig. 9. Architecture of ThinkAir (Kosta et al., 2012). It contains three major When it comes to the advantages of Misco, convenience should be
components: the execution environment, profilers, and the application server. the first advantage to be mentioned. This framework not only can be
used to handle the application with massive data, but also can achieve
invocation data such as former consuming energy and execution time. many complicated details for developers, such as automatic paralleli-
The energy model, inspired by PowerTutor (Kosta et al., 2012), eval- zation and load balancing (Dean and Ghemawat, 2008). Besides, the
uates the energy consumption every time running tasks locally and flexibility of Misco makes it possible to add worker nodes seamlessly.
transports them to the execution controller for offloading decision. The The disadvantages of Misco are also overt. First, the capability of this
three profiles (hardware profile, software profile and network profile) framework is restricted to the computing potential of worker nodes
are in charge of collecting the corresponding data and returning the since most of them are intrinsically limited. Second, the necessity of
data to the energy model to evaluate the cost of local running. Hard- annotating the methods as ‘map’ or ‘reduce’ increases the workload.
ware profile is responsible for monitoring consuming energy of CPU, Third, for the frequent communication between the master server and
screen and signal interfaces, while software profile collects number of worker nodes, overhead causes instability of the bandwidth of network,
method calls, CPU time, etc. Networks profile computes network executing process, and energy consumption (Shiraz et al., 2013b).
bandwidth, round trip time, etc.
On the side of cloud, it consists of a client handler, application 4.6. Cuckoo
servers, program profiles and VMs. The client handler is responsible for
transporting the data with local work nodes and managing the con- Cuckoo (Kemp et al., 2010) is a offloading framework, which up-
nection from clients. Besides, the client handler distributes the tasks to loads part of the applications to the cloud or the nearby infrastructure.
the VMs in the cloud according to the conditions of VMs and the re- The system integrates the existing development tools to make pro-
quirement of users. The application server is in charge of managing the gramming easy for the developers. Moreover, Cuckoo is implemented
offloaded code. Program profiles record the execution data of the VM, based on Android platform (Android, 2018), which can run locally and
and return the data to the local execution controller to make the off- remotely. A typical architecture of the Cuckoo system is shown in
loading decision. VMs are the work nodes in the cloud. According to the Fig. 11.
type of tasks, VMs can be divided into different types (primary server, In the building configuration of the Cuckoo framework, there are an
and secondary server) and various conditions (powered-off, paused, Ant (Apach Ant, 2018) building file and two Eclipse builders. The first
and running). Through this division, different tasks are allocated to builder is the Cuckoo Service Rewriter that rewrites the generated Stub
corresponding the VMs specifically. for each interface of Android Interface Definition Language (AIDL). It
The main advantages of ThinkAir are as follows: runs before the Java Builder but after the Android Pre Compiler. As a
result, the Cuckoo framework can decide whether a method runs locally
or remotely. The second builder is the Cuckoo Remote Service Deriver.

90
F. Gu et al. Journal of Network and Computer Applications 119 (2018) 83–96

Fig. 10. Architecture of the Misco system (Dou et al., 2010). It consists of a number of worker nodes and a master server.

Fig. 11. Architecture of the Cuckoo system (Kemp et al., 2010).

91
F. Gu et al. Journal of Network and Computer Applications 119 (2018) 83–96

It derives a dummy remote implementation from the available AIDL resource-intensive mobile devices and resource-rich remote server. In a
interface and is implemented by programmers. With the dummy remote peer-to-peer model, each mobile device can utilize the resources of
implementation, the Cuckoo Remote Service Deriver generates an Ant another mobile device nearby. Table 2 shows most of offloading fra-
build file for building a Java archive file (jar). Both Cuckoo Remote meworks adopt client-server model. Partitioning Model (PM) attribute
Service Deriver and the resulting Ant file are running after the Java indicates the type of mobile application with the components or cap-
Builder, but before the Package Builder. abilities modeling. PM includes three models, namely Graph model,
It is excellent for Cuckoo that supports offloading portions of the Linear model, and Hybrid model.
applications to the cloud and application development can be im- Programming Language Support (PLS) attribute shows the pro-
plemented by well-known tools. Although the programming model does gramming language in current offloading frameworks. Most offloading
not forbid a service to maintain the internal state, Cuckoo can realize frameworks support only one programming environment, such as java
arbitrary change from local to remote server or from one remote re- (Giurgiu et al., 2012) or. Net (Cuervo et al., 2010). Programming lan-
source to another without transferring the state. Moreover, this lim- guages in partitioning approaches usually include C++, C# and java
itation is not unacceptable, as developers can transfer the state between (Yang et al., 2012). As shown in Table 3, most offloading frameworks
stateless services by using the architectural style of Representational only support single programming environment. Application Parti-
State Transfer (REST; Fielding and Taylor, 2002). tioning (APA) attribute shows that applications are partitioned with
static or dynamic methods. With the static method, less overhead of
5. Classification of frameworks based on taxonomy mobile devices can be consumed, but with dynamic method, better
partitioning decisions can be achieved. The hybrid method can be used
In Section 4, we have discussed a number of well-established par- to make trade off between the static and dynamic methods. Application
titioning and offloading frameworks. In this section, we classify these Profiler (APR) attribute shows the profiling types of offloading frame-
frameworks in terms of our taxonomy proposed in Section 3. works. The profiling mechanism is used to measure the memory or the
time complexity of an application. Optimization Model (OM) attribute
5.1. Comparison of offloading frameworks shows the method for lowering the communicational or computational
cost. There are three different types of optimization model: task based
As shown in Section 4, a number of frameworks have considered all optimization technique, network optimization technique, and offload
parameters, including Enabling Technique (ET), Offload Infrastructure decision technique. Table 3 shows that most offloading frameworks
(OI), Augmentation Model (AM), Communication Model (CM), Parti- adopt task based optimization technique to lower the computational
tioning Model (PM), Programming Language Support (PLS), Applica- and communicational cost. Allocation Decision (AD) attribute indicates
tion PArtitioning (APA), Application PRofiler (APR), Optimization that the components should be running locally or remotely. The online
Model (OM), Allocation Decision (AD) and Granularity (G). Tables 2 AD performs a better performance than the offline AD. However, the
and 3 present the comparison of application frameworks (presented in online AD incurs much more computational overhead than the offline
Section 4) according to the taxonomy mentioned in Section 3. Not AD. The hybrid AD trades off the online AD and the offline AD. Gran-
Applicable (N/A) in Tables 2 and 3 means that the offloading frame- ularity (G) attribute indicates the partitioning granularity level. The
works does not implement the corresponding attribute. granularity level can affect the complexity of distributed application
processing and the overhead of resources utilization in component
migration at the runtime (Shiraz et al., 2013a). The refined level
5.2. Analysis of classification results
granularity requires a highly intensive monitoring and synchronization
mechanism during running (Cuervo et al., 2010).
Enabling Technique (ET) attribute shows the enabling technique of
partitioning, including system virtualization, application virtualization
6. Offloading decisions and schemes
and native process code migration. Table 2 shows that most offloading
systems adopt application virtualization. Offload Infrastructure (OI)
In this section, we present two purposes of offloading and some
attribute indicates the offloading infrastructure enabling MCC frame-
applications to demonstrate the benefits of offloading in various do-
works, which can be cloud, cloudlet, or mobile ad-hoc. It can be seen
mains.
from Table 2 that most offloading infrastructures are cloud. Augmen-
tation Model (AM) attribute denotes the service model, which can be
6.1. Offloading decision
used to augment the mobile client to cloud services. There are three
different types of services model: IaaS, PaaS and SaaS. Communication
As offloading frameworks need to partition computation tasks to a
Model (CM) attribute indicates the communication model between
remote server, it should make a decision to determine whether and
mobile devices and cloud entities. The client-server is generally used for
what part of the application to be uploaded to the server for offloading.
A number of studies have focused on offloading decisions for improving
Table 2
performance and saving energy (Giurgiu et al., 2012; Niu et al., 2014).
Classification of Offloading Frameworks based on ET, OU, AM, CM and PM.
In this section, we present two objectives of offloading decisions.
Framework ET OI AM CM PM To Improve Performance. To improve the computational effi-
ciency of mobile devices, partitioning and offloading have attracted
MAUI (Cuervo et al., Application Cloud PaaS Client Hybrid
2010) Virtualization Server significant attention of researchers (Balan et al., 2007). In many com-
Cloudlet System Cloudlet IaaS Peer to Graph putational scenarios, offloading can enhance the running speed of
(Satyanarayanan Virtualization Peer mobile devices. The offloading conditions for improving computation
et al., 2009)
performance can be formulated as follows. We can partition a program
CloneCloud (Chun et al., Application Cloud PaaS Client Hybrid
2011) Virtualization Server into two parts: one part is running locally and the other part is off-
ThinkAir (Kosta et al., System Cloud IaaS Client Hybrid loaded to a cloud server. Some operations with special equipment, such
2012) Virtualization Server as camera, accelerometer, etc. should be running locally. Suppose Sm is
Misco (Dou et al., 2010) Application Cloud SaaS Client Graph the computation speed of the mobile device, w is the amount of com-
Virtualization Server
putation that needs to be uploaded to the server. We regard the time of
Cuckoo (Kemp et al., Application N/A IaaS Client Linear
2010) Virtualization Server executing the uploaded tasks locally as w/Sm. We suppose sending the
input data di requires di/B m seconds with the bandwidth of B. The

92
F. Gu et al. Journal of Network and Computer Applications 119 (2018) 83–96

Table 3
Classification of Offloading Frameworks based on PLS, APA, APR, OM, AD and G.
Framework PLS APA APR OM AD G

MAUI (Cuervo et al., 2010) Signal Dynamic Network Task based Online Method
Cloudlet (Satyanarayanan et al., 2009) Multiple Hybrid N/A Network based Offline Component
CloneCloud (Chun et al., 2011) Universal Hybrid Software Offload decision based N/A Thread
ThinkAir (Kosta et al., 2012) Signal Static Network Task based Online Task
Misco (Dou et al., 2010) Universal Dynamic Software Task based Online Task/Object
Cuckoo (Kemp et al., 2010) Multiple Dynamic N/A Offload decision based N/A Module

time for network connection and the size of the program are negligible techniques for application computation and discuss the future trends of
(Cuervo et al., 2010). Assume Ss is the processing speed of the server. partitioning and offloading.
The time of offloading and executing the uploaded task is di/B + w/Ss.
While di/B + w/Ss < w/Sm, partitioning and offloading can improve 7.1. Partitioning and offloading
the computational performance.
To Save Energy. As the resources of mobile devices is limited, how Partitioning and offloading is an application layer solution which
to save energy should also be taken into consideration. With the de- can alleviate the pressure of mobile devices (Singh and Andrews, 2014;
velopment of mobile devices, the battery life are facing great chal- Ou et al., 2007). It divides computation tasks into two parts: one part
lenges. Although some improvements have been made in battery runs locally, and the other one runs remotely.
technology, there is still a gap between rapid growth of power con-
sumption and power capacities of current mobile devices. As a result, 7.1.1. Partitioning
offloading can extend the battery life of mobile devices effectively. The The offloading framework requires the computation task to be
intensive computation tasks can be uploaded to servers for running partitioned into client and server portions for running locally and on
(Terefe et al., 2016). The offloading condition for saving energy can be remote server, respectively. The granularity of application partitioning
formulated as follows. Suppose pm is the power of the mobile system. is important in designing the optimal partitioning algorithm, which
The energy for performing tasks is pm × w/Sm. Assume pc is the power affects computation complexity and the overhead of resource utilization
consumption for sending data to the network. Moreover, the system at the running time. However, the partitioning procedure is an NP-
also needs to wait for the result of offloading, which consumes the complete problem (Cameron et al., 2007). As a result, different heur-
power of pi. While pm × w/Sm > pc × di/B + pi × w/Ss, partitioning istics have proposed to solve this problem (Khan, 2015). Different
and offloading can save energy. partitioning granularity levels have influences on many issues, such as
compatibility, class uploading, state transfer, object identity, and per-
6.2. Offloading schemes formance overhead.

It has been shown that offloading can benefit for many domains. 7.1.2. Offloading
Many researchers implemented offloading schemes with different fra- Latency of accessing the cloud is one of major factors that affect the
meworks. A large part of researches have focused on the domains of offloading performance. Currently large data center is the main form of
mathematics (Wang and Li, 2004; Ou et al., 2006; Rim et al., 2006) and cloud computing resources. Data centers with large computing and
image processing (Chen et al., 2004; Gu et al., 2003; Balan et al., 2007). storage resources use Internet to connect mobile devices. Thus, how to
The schemes based on games (Li et al., 2001; Chu et al., 2004; Cuervo manage latency expectations is usually challenging. What's more, some
et al., 2010) and multimedia (Wang and Li, 2004; Li et al., 2001; Ou intensive-computation applications are sensitive to the latency. The
et al., 2006) are also investigated, and the number of these schemes architecture of the cloud system plays an important role in solving the
continues to grow together with the improvement of wireless tech- latency of communication. Utilizing varieties of computing resources
nology. The schemes related to artificial intelligence (Chen et al., 2004; depending on their availability remains a major challenge.
Tilevich and Smaragdakis, 2002; Cuervo et al., 2010) are also being
offloaded as they need complex computations. As shown in Table 4, we 7.2. Challenges of partitioning and offloading
list some offloading applications that have been improved by different
offloading solutions. 7.2.1. Seamless connectivity and consist distributed platform
Due to mobility of mobile devices, there are many obstacles af-
7. Challenges and future work fecting the connection between mobile devices and servers (Chuang
et al., 2013). Providing seamless connectivity is an important research
In this section, we highlight the challenges of partitioning and off- issue for MCC. Distributed application model provides variable accesses
loading. To explore domains for future research, we explore lightweight to cloud resources and services. However, it is not easy to ensure the
transparency of the environment and sustain consistency of uploaded
Table 4 components of the application (Ahmed et al., 2015c).
A list of applications that have been optimized using offloading.
Application Offloading Solution 7.2.2. High software quality
For the sake of energy saving and performance improvement, cur-
Face recognition MAUI (Cuervo et al., 2010; Li et al., 2015)
rent offloading frameworks partition and upload intensive components
Image search CloneCloud (Chun et al., 2011)
Virus-scanning CloneCloud (Chun et al., 2011; Zhang et al., 2011) of a mobile application from local devices to the server. These frame-
Speech recognition Cloudlet (Satyanarayanan et al., 2009) works focus on how to partition the computation tasks on mobile de-
Indoor map reconstruction Cloudlet (Chen et al., 2015) vices and when to upload these computation tasks to remote server
Text editor Misco (Dou et al., 2010) (Giurgiu et al., 2012). However, most of them do not take into con-
Chess game ThinkAir (Kosta et al., 2012)
sideration the bandwidth and latency of the network, sudden increase
Video encoding ThinkAir (Lee et al., 2015)
Object recognition Cuckoo (Kosta et al., 2012) of the CPU load on mobile devices, and variations of users inputs during
interactions. Running the application is affected by the quality of

93
F. Gu et al. Journal of Network and Computer Applications 119 (2018) 83–96

network, which may result in a poor performance. Moreover, the cloud partitioning efficacy in mobile computing environments. In: Proceedings of the 10th
server also needs to process some unpredictable overheads and changes International Symposium on Network Computing and Applications. IEEE, pp. 59–66.
Abolfazli, S., Sanaei, Z., Ahmed, E., Gani, A., Buyya, R., 2014. Cloud-based augmentation
from variable mobile devices. Further, different cloud computing ser- for mobile devices: motivation, taxonomies, and open challenges. IEEE Commun.
vices have different abilities to handle I/O operation, CPU power con- Surv. Tutorials 16 (1), 337–368.
sumption, and network latency (Smit et al., 2012). Hence, ensuring the Agrawal, P., Goldberg, A.J., Trotter, J.A., 1998. Interrupt-based Hardware Support for
Profiling Memory System Performance.
high quality of software is very important to optimize partitioning Ahmad, R.W., Gani, A., Hamid, S.H.A., Xia, F., Shiraz, M., 2015. A review on mobile
frameworks and to improve users' experience. application energy profiling: taxonomy, state-of-the-art, and open research issues. J.
Netw. Comput. Appl. 58, 42–59.
Ahmed, E., Akhunzada, A., Whaiduzzaman, M., Gani, A., Ab Hamid, S.H., Buyya, R.,
7.2.3. Security and privacy 2015a. Network-centric performance analysis of runtime application migration in
During the procedure of offloading to the cloud, the security of data mobile cloud computing. Simulat. Model. Pract. Theor. 50, 42–56.
and privacy of users should be taken into consideration. The uploaded Ahmed, E., Gani, A., Khan, M.K., Buyya, R., Khan, S.U., 2015b. Seamless application
execution in mobile cloud computing: motivation, taxonomy, and open challenges. J.
partial of applications should be executed in an isolated and trust-
Netw. Comput. Appl. 52, 154–172.
worthy environment to protect the privacy (Sanaei et al., 2014). Se- Ahmed, E., Gani, A., Sookhak, M., Ab Hamid, S.H., Xia, F., 2015c. Application optimi-
curity in the offloading framework is important from three different zation in mobile cloud computing: motivation, taxonomies, and open challenges. J.
perspectives: security for smart mobile devices, security for data Netw. Comput. Appl. 52, 52–68.
Alzahrani, A., Alalwan, N., Sarrab, M., 2014. Mobile cloud computing: advantage, dis-
transmission and security in the cloud server nodes. Therefore, ensuring advantage and open challenge. In: Proceedings of the 7th Euro American Conference
privacy of data and security of the procedure should be paid more at- on Telematics and Information Systems, pp. 1–4.
tentions. A trustworthy partitioning and offloading framework is highly Android, 2018. Android. https://www.android.com.
Apach Ant, 2018. Apach Ant. http://ant.apache.org.
expected to ensure trustworthiness of the remote computing environ- Armbrust, M., Fox, A., Griffith, R., Joseph, A.D., Katz, R., Konwinski, A., Lee, G.,
ment. Patterson, D., Rabkin, A., Stoica, I., et al., 2010. A view of cloud computing.
Commun. ACM 53 (4), 50–58.
Bai, H., Atiquzzaman, M., Lilja, D., 2004. Wireless sensor network for aircraft health
7.3. Future work monitoring. In: Broadband Networks, 2004. BroadNets 2004. Proceedings. First
International Conference on. IEEE, pp. 748–750.
Due to the constraint of resources, the applications running on the Balan, R.K., Gergle, D., Satyanarayanan, M., Herbsleb, J., 2007. Simplifying cyber fora-
ging for mobile devices. In: Proceedings of the 5th International Conference on
device should be partitioned into several components. Although re- Mobile Systems, Applications and Services. ACM, pp. 272285.
searchers have been studying the method for partitioning and the Beloglazov, A., Buyya, R., 2012. Optimal online deterministic algorithms and adaptive
constraints of the strategy (Abolfazli et al., 2014), future research heuristics for energy and performance efficient dynamic consolidation of virtual
machines in cloud data centers. Concurrency Comput. Pract. Ex. 24 (13), 1397–1420.
should consider partitioning and offloading in terms of lightness,
Bhattacharya, A., De, P., 2017. A survey of adaptation techniques in computation off-
adaptability, and context-awareness (Liu et al., 2015). The partitioning loading. J. Netw. Comput. Appl. 78, 97–115.
and offloading frameworks should consider the following aspects: Bialek, R., Jul, E., Schneider, J.-G., Jin, Y., 2004. Partitioning of java applications to
support dynamic updates. In: Proceedings of the 11th Asia-Pacific Software

• The dependency across different components needs to be mini-


Engineering Conference. IEEE, pp. 616–623.
Buyya, R., Yeo, C.S., Venugopal, S., Broberg, J., Brandic, I., 2009. Cloud computing and
mized. emerging it platforms: vision, hype, and reality for delivering computing as the 5th

• The impact of network bandwidth also needs to be minimized. As utility. Future Generat. Comput. Syst. 25 (6), 599–616.
Cameron, K., Eschen, E.M., Hòang, C.T., Sritharan, R., 2007. The complexity of the list
the network situation maybe unstable, the frameworks should adapt partition problem for graphs. SIAM J. Discrete Math. 21 (4), 900–929.
to the bandwidth and fluctuation of network. Chen, G., Kang, B.-T., Kandemir, M., Vijaykrishnan, N., Irwin, M.J., Chandramouli, R.,
• The framework should support fault tolerance, due to unpredictable 2004. Studying energy trade offs in offloading computation/compilation in java-en-
abled mobile devices. IEEE Trans. Parallel Distr. Syst. 15 (9), 795–809.
network situation and application changes. Dynamic partitioning Chen, S., Li, M., Ren, K., Fu, X., Qiao, C., 2015. Rise of the indoor crowd: reconstruction of
and offloading may cause fault, such as data loss and corruption. building interior view via mobile crowdsourcing. In: ACM Conference on Embedded
The system must ensure normal operation with mistakes. Networked Sensor Systems, pp. 59–71.

• The runtime cost and energy consumption should be minimized. In Chowdhury, P.K., Atiquzzaman, M., Ivancic, W., 2006. Handover schemes in satellite
networks: state-of-the-art and future research directions. IEEE Commun. Surv.
order to improve the efficiency of offloading, the runtime cost and Tutorials 8 (4), 2–14.
energy consumption should be taken into consideration. Chu, H.-h., Song, H., Wong, C., Kurakake, S., Katagiri, M., 2004. Roam, a seamless ap-

• To reduce computation and communication overhead, the frame- plication framework. J. Syst. Software 69 (3), 209226.
Chuang, W.-C., Sang, B., Yoo, S., Gu, R., Kulkarni, M., Killian, C., 2013. Eventwave:
work should be a lightweight framework. programming model and runtime support for tightly-coupled elastic cloud applica-
tions. In: Proceedings of the 4th Annual Symposium on Cloud Computing. ACM, pp.
8. Conclusion 21–36.
Chun, B.-G., Ihm, S., Maniatis, P., Naik, M., Patti, A., 2011. Clonecloud: elastic execution
between mobile device and cloud. In: Proceedings of the 6th Conference on Computer
This paper surveys the enabling techniques and different resources Systems. ACM, pp. 301–314.
used for partitioning and offloading. Based on the analysis of MCC, we Chun, B.-G., Maniatis, P., 2009. Augmented smartphone applications through clone cloud
execution. In: HotOS, vol. 9. pp. 8–11.
propose a taxonomy of current offloading standards and classify some Cuervo, E., Balasubramanian, A., Cho, D.-k., Wolman, A., Saroiu, S., Chandra, R., Bahl, P.,
famous offloading frameworks. Moreover, we compare these frame- 2010. Maui: making smartphones last longer with code offload. In: Proceedings of the
works based on our taxonomy and present offloading applications. We 8th International Conference on Mobile Systems, Applications, and Services. ACM,
pp. 49–62.
also discuss the open research issues and challenges for future study on Dean, J., Ghemawat, S., 2008. Mapreduce: simplified data processing on large clusters.
partitioning and offloading. Commun. ACM 51 (1), 107–113.
Dinh, H.T., Lee, C., Niyato, D., Wang, P., 2013. A survey of mobile cloud computing:
architecture, applications, and approaches. Wireless Commun. Mobile Comput. 13
Acknowledgements
(18), 1587–1611.
Dou, A., Kalogeraki, V., Gunopulos, D., Mielikainen, T., Tuulos, V.H., 2010. Misco: a
This work was supported by the National Natural Science mapreduce framework for mobile systems. In: Proceedings of the 3rd International
Conference on Pervasive Technologies Related to Assistive Environments. ACM, pp.
Foundation of China (61572060, 61772060), the Academic Excellence
32–40.
Foundation of BUAA for PhD Students, and CERNET Innovation Project Fielding, R.T., Taylor, R.N., 2002. Principled design of the modern web architecture. ACM
(NGII20160316, NGII20170315). Trans. Internet Technol. 2 (2), 115–150.
Flinn, J., Park, S., Satyanarayanan, M., 2002. Balancing performance, energy, and quality
in pervasive computing. In: Proceedings of the 22nd International Conference on
References Distributed Computing Systems. IEEE, pp. 217–226.
Flores, H., Srirama, S.N., Buyya, R., 2014. Computational offloading or data binding?
Abebe, E., Ryan, C., 2011. A hybrid granularity graph for improving adaptive application bridging the cloud infrastructure to the proximity of the mobile user. In: IEEE

94
F. Gu et al. Journal of Network and Computer Applications 119 (2018) 83–96

International Conference on Mobile Cloud Computing, Services, and Engineering, pp. Marston, S., Li, Z., Bandyopadhyay, S., Zhang, J., Ghalsasi, A., 2011. Cloud computing the
10–18. business perspective. Decis. Support Syst. 51 (1), 176189.
Forkan, A.R.M., Khalil, I., Atiquzzaman, M., 2017. Visibid: a learning model for early Miluzzo, E., C´aceres, R., Chen, Y.-F., 2012. Vision: mclouds-computing on clouds of
discovery and real-time prediction of severe clinical events using vital signs as big mobile devices. In: Proceedings of the 3rd Mobile Cloud Computing and Services
data. Comput. Network. 113, 244–257. Workshop. ACM, pp. 9–14.
Foster, I., Zhao, Y., Raicu, I., Lu, S., 2008. Cloud computing and grid computing 360- Mohammad, A.-R., Elham, A.-S., Jararweh, Y., 2015. Amcc: ad-hoc based mobile cloud
degree compared. In: Proceedings of the Grid Computing Environments Workshop. computing modeling. Procedia Comput. Sci. 56, 580–585.
IEEE, pp. 1–10. Newton, R., Toledo, S., Girod, L., Balakrishnan, H., Madden, S., 2009. Wishbone: profile-
Fu, S., Atiquzzaman, M., 2005. Handover latency comparison of sigma, fmipv6, hmipv6, based partitioning for sensornet applications. In: NSDI, vol. 9. pp. 395–408.
fhmipv6. In: Global Telecommunications Conference, 2005. GLOBECOM’05. IEEE, Niu, J., Song, W., Atiquzzaman, M., 2014. Bandwidth-adaptive partitioning for dis-
vol. 6. IEEE, pp. 3809–3813. tributed execution optimization of mobile applications. J. Netw. Comput. Appl. 37,
Fu, S., Atiquzzaman, M., Ma, L., Lee, Y.-J., 2005a. Signaling cost and performance of 334–347.
sigma: a seamless handover scheme for data networks. Wireless Commun. Mobile Ou, S., Yang, K., Liotta, A., 2006. An adaptive multi-constraint partitioning algorithm for
Comput. 5 (7), 825–845. offloading in pervasive systems. In: Proceedings of the 4th International Conference
Fu, S., Ma, L., Atiquzzaman, M., Lee, Y.-J., 2005b. Architecture and performance of sigma: on Pervasive Computing and Communications, vol. 10. IEEE, pp. 116–125.
a seamless mobility architecture for data networks. In: Communications, 2005. ICC Ou, S., Yang, K., Zhang, J., 2007. An effective offloading middleware for pervasive ser-
2005. 2005 IEEE International Conference on, vol. 5. IEEE, pp. 3249–3253. vices on mobile devices. Pervasive Mob. Comput. 3 (4), 362–385.
Giurgiu, I., Riva, O., Alonso, G., 2012. Dynamic software deployment from clouds to Porras, J., Riva, O., Kristensen, M.D., 2009. Dynamic Resource Management and Cyber
mobile devices. In: Proceedings of International Conference on Distributed Systems Foraging. in: Middleware for Network Eccentric and Mobile Applications. Springer,
Platforms and Open Distributed Processing. Springer, pp. 394–414. pp. 349–368.
Goraczko, M., Liu, J., Lymberopoulos, D., Matic, S., Priyantha, B., Zhao, F., 2008. Energy- Ra, M.-R., Priyantha, B., Kansal, A., Liu, J., 2012. Improving energy efficiency of personal
optimal software partitioning in heterogeneous multiprocessor embedded systems. sensing applications with heterogeneous multi-processors. In: Proceedings of the
In: Proceedings of the 45th Design Automation Conference. ACM, pp. 191–196. Conference on Ubiquitous Computing. ACM, pp. 1–10.
Goulding-Hotta, N., Sampson, J., Venkatesh, G., Garcia, S., Auricchio, J., Huang, P.C., Ra, M.-R., Sheth, A., Mummert, L., Pillai, P., Wetherall, D., Govindan, R., 2011. Odessa:
Arora, M., Nath, S., Bhatt, V., Babb, J., 2011. The greendroid mobile application enabling interactive perception applications on mobile devices. In: Proceedings of the
processor: an architecture for silicon's dark future. IEEE Micro 31 (2), 86–95. 9th International Conference on Mobile Systems, Applications, and Services. ACM,
Goyal, S., Carter, J., 2004. A lightweight secure cyber foraging infrastructure for resource- pp. 43–56.
constrained devices. In: Proceedings of the 6th Mobile Computing Systems and Rahimi, M.R., Ren, J., Liu, C.H., Vasilakos, A.V., Venkatasubramanian, N., 2014. Mobile
Applications Workshop. IEEE, pp. 186–195. cloud computing: a survey, state of art and future directions. Mobile Network. Appl.
Gu, X., Nahrstedt, K., Messer, A., Greenberg, I., Milojicic, D., 2003. Adaptive offloading 19 (2), 133–143.
inference for delivering applications in pervasive computing environments. In: Ramamurthy, B., Datta, D., Feng, H., Heritage, J.P., Mukherjee, B., 1999. Impact of
Proceedings of the 1st International Conference on Pervasive Computing and transmission impairments on the teletraffic performance of wavelength-routed op-
Communications. IEEE, pp. 107–114. tical networks. J. Lightwave Technol. 17 (10), 1713–1723.
Gunnam, K.K., Choi, G.S., Yeary, M.B., Atiquzzaman, M., 2007. Vlsi architectures for Reaz, A.S., Chowdhury, P.K., Atiquzzaman, M., Ivancic, W., 2006. Signalling cost analysis
layered decoding for irregular ldpc codes of wimax. In: Communications, 2007. of sinemo: seamless end-to-end network mobility. In: Proceedings of First ACM/IEEE
ICC’07. IEEE International Conference on. IEEE, pp. 4542–4547. International Workshop on Mobility in the Evolving Internet Architecture. ACM, pp.
Han, K.J., Choi, B.-Y., Song, S., 2014. High Performance Cloud Auditing and Applications. 37–42.
Springer. Richter, J., 2006. CLR via C#, vol. 4 Microsoft Press Redmond.
Hong, Y.-J., Kumar, K., Lu, Y.-H., 2009. Energy efficient content-based image retrieval for Rim, H., Kim, S., Kim, Y., Han, H., 2006. Transparent method offloading for slim ex-
mobile systems. In: International Symposium on Circuits and Systems. IEEE, pp. ecution. In: Proceedings of the 1st International Symposium on Wireless Pervasive
1673–1676. Computing. IEEE, pp. 1–6.
Huerta-Canepa, G., Lee, D., 2010. A virtual cloud computing provider for mobile devices. Sanaei, Z., Abolfazli, S., Gani, A., Buyya, R., 2014. Heterogeneity in mobile cloud com-
In: Proceedings of the 1st Workshop on Mobile Cloud Computing & Services: Social puting: taxonomy and open challenges. IEEE Commun. Surv. Tutorials 16 (1),
Networks and beyond. ACM, pp. 1–5. 369–392.
Hung, S.-H., Shih, C.-S., Shieh, J.-P., Lee, C.-P., Huang, Y.-H., 2012. Executing mobile Satyanarayanan, M., 2015. A brief history of cloud offload: a personal journey from
applications on the cloud: framework and issues. Comput. Math. Appl. 63 (2), odyssey through cyber foraging to cloudlets. GetMobile Mobile Comput. Commun. 18
573–587. (4), 19–23.
Kemp, R., Palmer, N., Kielmann, T., Bal, H., 2010. Cuckoo: a computation offloading Satyanarayanan, M., Bahl, P., Caceres, R., Davies, N., 2009. The case for vmbased
framework for smartphones. In: Proceedings of International Conference on Mobile cloudlets in mobile computing. IEEE Pervasive Comput. 8 (4), 14–23.
Computing, Applications, and Services. Springer, pp. 59–79. Satyanarayanan, M., Kozuch, M.A., Helfrich, C.J., OHallaron, D.R., 2005. Towards
Khan, M.A., 2015. A survey of computation offloading strategies for performance im- seamless mobility on pervasive hardware. Pervasive Mob. Comput. 1 (2), 157–189.
provement of applications running on mobile devices. J. Netw. Comput. Appl. 56, Satyanarayanan, M., Lewis, G., Morris, E., Simanta, S., Boleng, J., Ha, K., 2013. The role
28–40. of cloudlets in hostile environments. IEEE Pervasive Comput. 12 (4), 40–49.
Kord, N., Haghighi, H., 2013. An energy-efficient approach for virtual machine placement Sharifi, M., Kafaie, S., Kashefi, O., 2012. A survey and taxonomy of cyber foraging of
in cloud based data centers. In: Information and Knowledge Technology, pp. 44–49. mobile devices. IEEE Commun. Surv. Tutorials 14 (4), 1232–1243.
Kosta, S., Aucinas, A., Hui, P., Mortier, R., Zhang, X., 2012. Thinkair: dynamic resource Shaukat, U., Ahmed, E., Anwar, Z., Xia, F., 2016. Cloudlet deployment in local wireless
allocation and parallel execution in the cloud for mobile code offloading. In: networks: motivation, architectures, applications, and open challenges. J. Netw.
Proceedings of the 31st International Conference on Computer Communications. Comput. Appl. 62, 18–40.
IEEE, pp. 945–953. Shiraz, M., Abolfazli, S., Sanaei, Z., Gani, A., 2013a. A study on virtual machine de-
Kovachev, D., 2012. Framework for computation offloading in mobile cloud computing. ployment for application outsourcing in mobile cloud computing. J. Supercomput. 63
IJIMAI 1 (7), 6–15. (3), 946–964.
Kristensen, M.D., 2007. Enabling cyber foraging for mobile devices. In: Proceedings of the Shiraz, M., Gani, A., 2014. A lightweight active service migration framework for com-
5th MiNEMA Workshop: Middleware for Network Eccentric and Mobile Applications, putational offloading in mobile cloud computing. J. Supercomput. 68 (2), 978–995.
pp. 32–36. Shiraz, M., Gani, A., Khokhar, R.H., Buyya, R., 2013b. A review on distributed application
Kristensen, M.D., Bouvin, N.O., 2008. Developing cyber foraging applications for portable processing frameworks in smart mobile devices for mobile cloud computing. IEEE
devices. In: Proceedings of the 7th International Conference on Polymers and Commun. Surv. Tutorials 15 (3), 1294–1313.
Adhesives in Microelectronics and Photonics. IEEE, pp. 1–6. Shuja, J., Gani, A., Shamshirband, S., Ahmad, R.W., Bilal, K., 2016. Sustainable cloud
Kumar, K., Liu, J., Lu, Y.-H., Bhargava, B., 2013. A survey of computation offloading for data centers: a survey of enabling techniques and technologies. Renew. Sustain.
mobile systems. Mobile Network. Appl. 18 (1), 129140. Energy Rev. 62, 195–214.
Lee, G., Park, H., Heo, S., Chang, K.A., Lee, H., Kim, H., 2015. Architectureaware auto- Simanta, S., Lewis, G.A., Morris, E., Ha, K., Satyanarayanan, M., 2012. A reference ar-
matic computation offload for native applications. In: Ieee/acm International chitecture for mobile code offload in hostile environments. In: International
Symposium on Microarchitecture, pp. 521–532. Conference on Mobile Computing, Applications, and Services, pp. 274–293.
Li, J., Peng, Z., Xiao, B., Hua, Y., 2015. Make smartphones last a day: preprocessing based Singh, S., Andrews, J.G., 2014. Joint resource partitioning and offloading in hetero-
computer vision application offloading. In: IEEE International Conference on Sensing, geneous cellular networks. IEEE Trans. Wireless Commun. 13 (2), 888–901.
Communication, and NETWORKING, pp. 462–470. Sinha, K., Kulkarni, M., 2011. Techniques for fine-grained, multi-site computation off-
Li, Z., Wang, C., Xu, R., 2001. Computation offloading to save energy on handheld de- loading. In: Proceedings of the 11th International Symposium on Cluster, Cloud and
vices: a partition scheme. In: Proceedings of the International Conference on Grid Computing. IEEE, pp. 184–194.
Compilers, Architecture, and Synthesis for Embedded Systems. ACM, pp. 238–246. Smit, M., Shtern, M., Simmons, B., Litoiu, M., 2012. Partitioning applications for hybrid
Lin, F.X., Wang, Z., Likamwa, R., Zhong, L., 2012. Reflex: using low-power processors in and federated clouds. In: Proceedings of the Conference of the Center for Advanced
smartphones without knowing them. Comput. Architect. News 47 (4), 13–24. Studies on Collaborative Research. IBM Corp., pp. 2741.
Liu, J., Ahmed, E., Shiraz, M., Gani, A., Buyya, R., Qureshi, A., 2015. Application parti- Song, Y., Wang, H., Soyata, T., 2015. Hardware and software aspects of vmbased mobile-
tioning algorithms in mobile cloud computing: taxonomy, review and future direc- cloud offloading. Enabling Real Time Mobile Cloud Comput. Through Emerg.
tions. J. Netw. Comput. Appl. 48, 99–117. Technol. 247–271.
Lyu, X., Tian, H., Zhang, P., Sengul, C., 2017. Multi-user joint task offloading and re- Su, Y.-Y., Flinn, J., 2005. Slingshot: deploying stateful services in wireless hotspots. In:
sources optimization in proximate clouds. IEEE Trans. Veh. Technol. 66 (4), Proceedings of the 3rd International Conference on Mobile Systems, Applications,
3435–3447. and Services. ACM, pp. 79–92.

95
F. Gu et al. Journal of Network and Computer Applications 119 (2018) 83–96

Tawalbeh, L., Jararweh, Y., Dosari, F., et al., 2015. Large scale cloudlets deployment for Jianwei Niu received his Ph.D. degrees in 2002 in com-
efficient mobile cloud computing. J. Network. 10 (1), 70–77. puter science from Beihang University. He was a visiting
Terefe, M.B., Lee, H., Heo, N., Fox, G.C., Oh, S., 2016. Energy-efficient multisite off- scholar at School of Computer Science, Carnegie Mellon
loading policy using markov decision process for mobile cloud computing. Pervasive University, USA from Jan. 2010 to Feb. 2011. He is a pro-
Mob. Comput. 27, 75–89. fessor in the School of Computer Science and Engineering,
Tilevich, E., Smaragdakis, Y., 2002. J-orchestra: automatic java application partitioning. Beihang University. He is now an IEEE senior member. He
In: Proceedings of European Conference on Object-oriented Programming. Springer, received the New Century Excellent Researcher Award from
pp. 178–204. Ministry of Education of China 2009, the first prize of
Vaquero, L.M., Rodero-Merino, L., Caceres, J., Lindner, M., 2008. A break in the clouds: technical invention of the Ministry of Education of China
towards a cloud definition. Comput. Commun. Rev. 39 (1), 50–55. 2012. His current research interests include mobile and
Vecchiola, C., Pandey, S., Buyya, R., 2009. High-performance cloud computing: a view of pervasive computing, mobile video analysis.
scientific applications. In: International Symposium on Pervasive Systems,
Algorithms, and Networks, pp. 4–16.
Verbelen, T., Simoens, P., De Turck, F., Dhoedt, B., 2012. Cloudlets: bringing the cloud to
the mobile user. In: Proceedings of the 3rd Mobile Cloud Computing and Services
Workshop. ACM, pp. 29–36. Zhiping Qi is a master student in school of computer sci-
Verbelen, T., Stevens, T., De Turck, F., Dhoedt, B., 2013. Graph partitioning algorithms ence and technology, Beihang University. He received BS of
for optimizing software deployment in mobile cloud computing. Future Generat. computer science from Beihang University in 2015. His
Comput. Syst. 29 (2), 451–459. research focuses on sensor network.
Wang, C., Li, Z., 2004. Parametric analysis for adaptive computation offloading. In:
Proceedings of SIGPLAN Notices, vol. 39. ACM, pp. 119–130.
Wei, Y., Blake, M.B., 2010. Service-oriented computing and cloud computing: challenges
and opportunities. IEEE Internet Comput. 14 (6), 72–75.
Widodo, R.N., Lim, H., Atiquzzaman, M., 2017. Sdm: smart deduplication for mobile
cloud storage. Future Generat. Comput. Syst. 70, 64–73.
Wu, H., Huang, D., Chen, M., 2015. Poem: on establishing a personal on-demand ex-
ecution environment for mobile cloud applications. In: Proceedings of International
Conference on Mobile Services. IEEE, pp. 41–48.
Yang, L., Cao, J., Cheng, H., 2012. Resource Constrained Multi-user Computation
Partitioning for Interactive Mobile Cloud Applications. Tech. rep., Technical report.
Department of Computing, Hong Kong Polytechnical University. Mohammed Atiquzzaman received the MS and PhD de-
Yang, L., Cao, J., Yuan, Y., Li, T., Han, A., Chan, A., 2013. A framework for partitioning grees in electrical engineering and electronics from the
and execution of data stream applications in mobile cloud computing. Perform. Eval. University of Manchester, United Kingdom. He currently
Rev. 40 (4), 2332. holds the Edith Kinney Gaylord Presidential professorship
Yu, J., Huang, B., Cheng, X., Atiquzzaman, M., 2017. Shortest link scheduling algorithms in the School of Computer Science at the University of
in wireless networks under the sinr model. IEEE Trans. Veh. Technol. 66 (3), Oklahoma. He is the editor-in-chief of Journal of Networks
2643–2657. and Computer Applications, founding editor-in-chief of
Zahran, A.H., Liang, B., Saleh, A., 2006. Signal threshold adaptation for vertical handoff Vehicular Communications and has served/serving on the
in heterogeneous wireless networks. Mobile Network. Appl. 11 (4), 625–640. editorial boards of various IEEE journals and co-chaired
Zhang, H., Ji, J., Zhou, X., Ma, H., Wang, C., 2009. Design and implementation of a numerous IEEE international conferences including IEEE
configurable hardware profiler supporting path profiling and sampling. In: Globecom. His research interests are in communications
International Conference on Cyber-enabled Distributed Computing and Knowledge switching, transport protocols, wireless and mobile net-
Discovery, pp. 325–330. works, satellite networks, and optical communications. He
Zhang, Q., Cheng, L., Boutaba, R., 2010. Cloud computing: state-of-the-art and research is a senior member of the IEEE.
challenges. J. Internet Serv. Appl. 1 (1), 7–18.
Zhang, X., Kunjithapatham, A., Jeong, S., Gibbs, S., 2011. Towards an elastic application
model for augmenting the computing capabilities of mobile devices with cloud
computing. Mobile Network. Appl. 16 (3), 270–284.

Fei Gu is a Ph.D Candidate in school of computer science


and technology, Beihang University. He received MS degree
of computer science and technology from Nanjing
University of Aeronautics and Astronautics in 2014 and BS
of software engineering from Yangzhou University in 2011.
His research focuses on sensor network, healthcare system,
data mining and so on.

96

You might also like