Sie sind auf Seite 1von 26


Nowadays people are spending more time on smart mobile devices such as smartphones and
tablets when compared to desktop, ubiquity of mobile devices with computational capabilities
comparable to many personal computers, set the trend in developing rich mobile applications.
Various Statistics shows that there is an exponential growth in number of mobile applications in the
market. However mobile devices are limited in battery lifetime, memory, storage and processing
capabilities. These constraints prevent mobile devices from widely running all kinds of rich mobile
applications. While at the same time, with the availability of mature and advanced wireless
technologies, motivates researchers to make use of available cloud computing platform for
leveraging the computations on more capable remote computing resources or the cloud. There by
computation offloading is believed to be a potential solution to the hardware limitations of mobile
devices for higher performance and/or energy savings. There are many issues associated with
computation offloading such as network bandwidth, intermittent connectivity, the transmission
delays, the distance of remote computing resources from primary computing resource. This paper
reviews a wide variety of different kinds of computation offloading strategies developed to
overcome these challanges. Methodologies include cloud path selection, different architectures for
Mobile Device Clouds, algortithms that decides where and what type of tasks to be offloaded.
Scaling of applications over Mobile device clouds.

Chapter 1
1.1) Introduction
According to various statistical report the combined sales of smartphones and tablets has
already surpassed sales of Desktops. Mobile digital media time in the US is now significantly
higher at 51% compared to desktop 42% and is still growing with increasing number of mobile
applications. IDC Prediction report 2015 says Mobile app downloads already hit 150 billion and
statistics from smartinsights shows total number of mobile applications available in leading app
store has crossed 3.6 million. There are more energy hungry applications, for example, face
recognition, speech and object recognition, natural language processing, audio/video encoders and
decoders, computer vision and graphics, and mobile augmented reality. Mobile devices, including
smart phones, tablets and netbooks, are also constrained with small battery size, CPU, and storage.
At the same time, current battery technology is also a bottleneck in mobile devices and this results
in a growing gap between the demand of energy and the capacity of the resources of mobile
devices. Various Surveys show that short battery life was the most disliked feature for many mobile
With the rapid adoption of cloud computing concepts and the explosive growth in the usage of
mobile devices, Mobile Cloud Computing (MCC) has been introduced as a potential technology for
mobile services. MCC simply is: The availability of cloud computing services in a mobile
Mobile Clients can then offload predefined codes to nominated server(s)(Cloud/Cloudlets)
according to other offloading policies that target reducing execution time and/or battery use.
The Mobile Clients may offload some tasks to remote server through task initiator called as an
offloader and the cloud/cloudlet server that exucutes the task called as an offloadee.
Although there was a great enhancement in mobile device's capabilities, they still suffer from their
limited resources such as CPUs, memory, and battery. To cope with these limitations, Mobile Cloud
Computing was introduced to mitigate mobile devices resource constraints.
But there are a large number of clouds appearing in sky with different charging and condition, and
offloading the same program to different clouds may perform different amounts of computing
within the same duration due to the clouds speeds, and may cost different communication time due
to bandwidth and clouds availability. Therefore, an optimal cloud-path selection method is needed
when choosing the best cloud.
Clouds could add significant enhancements to mobile services, however this type of task offloading
is costly due to high energy costs and high latency introduced by wireless intermittent
communication between mobile devices and distant clouds. It is critical for MCC servers to shorten
the transmission time. An effective solution is needed to optimize the allocation of services.

1.2) Innovative Ideas Proposed For Offloading Strategies in Mobile Cloud Computing
1.2.1) Task Replication
Mobile offloading can be defined as migrating data and/or computation to a more suitable
computation machine (peer). Basically some sub tasks of an application are offloaded to computing
Without task replication, the connection between the two nodes can potentially fail because of
intermittent connectivity, node failure, network failure and this may cause restablishing connections
several times. There by causing a huge delay and therefore considerable degradation in offloading
The innovative approach is that implement a replication technique that consists of replicating the
subtasks that exist in the offloaders pool. Once a subtask terminates, all replicas in the pool are
removed. Since by creating task replicas, there is a backup for tasks therefore if one taks fail
another task may be run successfully. There by significant performance speed up can be acheived.
1.2.2) Using social based information for sellection of offloadee
Identifying stable and durable connections to other devices based on social information is
yet another innovative approach. Leveraging social information such as friendship and common
interests in order to identify and therefore select the most suitable neighboring offloadee nodes.
Thereby there is an expectation that constraints such as node failures or intermittent connectivity
can be avoided.
1.2.3) Ant Colony Optimization for efficiently monitoring the network
In practice, cloud servers are located in one or several places. Long distance data
transmission will generate longer latency. And also longer time means risk of failure. Otherwise, the
unreliable wireless will consume huge communication resource wasting on confirming the SMD
states, especially for long distance data transmission. So, it is critical for MCC servers to shorten the
transmission time. An effective solution is to optimize the allocation of services.
In MCC, employing the method of monitoring the network is an available solution. But, it will
cause huge burden, which presents inefficient, and the allocation
of the scheduler is also a challenge.
To deal with this kind of challenge, an Ant Colony Optimization -based method is yet annother
innovative approach to monitor the network. ACO method aims to search for an optimal path in a
graph, based on the behavior of ants seeking a path between their colony and a source of food.
On the condition of many Smart Mobile Devices requesting for services at the same time or nearly
the same time, the method treats each SMD as a ant colony.

1.3) Research work going in offloading challenges in Mobile Cloud Computing

Offloading in MCC over the last two decades, there has been much work on supporting
remote execution for mobile applications. Most of this previous work used remote execution to
increase the performance and improve the availability of resources.
Cloud was the closest term to accompany "mobile computing. Chen and Itoh [6] adopted the
Android-X86 as an OS running on Intels x86 CPU as a virtual smartphone. The client program
installed on a physical smartphone can remotely interact with and control an Android-x86 image.
The client program transmits various events from physical device like key strokes, screen touches
and various sensors to the mobile server OS and receives screen updates from it.
Chun et al. [7] proposes CloneCloud, which is a system that automatically partitions unmodified
mobile applications and enables them to seamlessly offload parts of their execution from mobile
devices onto device clone virtual machines (VMs) operating in cloud. Offloading to the cloud was
successful in mitigating resource-constrained mobile devices, however, these clouds are typically
far from mobile users, and the high WAN latency makes this approach insufficient for many
To cope with this high latency, Satyanarayanan et al. [8] introduced the concept of cloudlets and
they were illustrated as: Decentralized and widely-dispersed Internet infrastructure whose compute
cycles and storage resources can be leveraged by nearby mobile computers. Mobile users can
simply instantiate custom VMs on the cloudlet running their required applications in a thin client
fashion. All of the above efforts were built on the idea of creating VMs on the cloud/cloudlet and
although using VMs solves heterogeneity problems and enables the execution of non- modified
applications, its coarse granularity as a unit of distribution is a major drawback.
Verbelen et al. [9] proposed a cloudlet concept which allows all devices in a LAN network to
cooperate in the cloudlet. Instead of executing a whole application remotely in VMs and using a
thin client protocol, they could achieve better performance by partitioning applications into
Cuckoo framework [10] is a practical implementation of offloading from smartphones to the cloud
for Android. Cuckoo simplifies the development of smartphone applications that need offloading; it
also provides a dynamic runtime system that can decide whether a part of an application will be
executed locally or remotely. Cuckoo provides application developers the freedom to write different
offloading codes than local ones. Offloading codes can benefit from resources available in the cloud
machines such as multiprocessors or the ability of parallelization. Cloud servers need only to run
Java Virtual Machine either being machines in a commercial cloud or private mini clouds such as
laptops, desktops, home servers or local clusters.
MAUI [11] is another project which abandoned using coarse-grained mobile application migration
using VMs and presented a system that enables fine-grained energy-aware offload of mobile code to
the infrastructure. In order to minimize burden on programmers, MAUI only requires them to
annotate which method of the program could be "Remotable"; then its MAUIs role to dynamically
select whether to run it locally or remotely based on the runtime environment. Because of the
differences in the instruction set architecture between todays mobile devices (which typically have
ARM-based CPUs) and servers (which typically have x86 CPUs), MAUI is designed to support
applications written for the Microsoft .NET Common Language Runtime (CLR) which supports a
variety of programming languages. All CLR applications are compiled to the CIL intermediate

language, regardless of what source language they are written in. An executable for the CLR
contains CIL instructions, and the CIL is dynamically compiled at execution time. Thus, by
leveraging the CLRs capabilities, MAUI obtained independence from differences in the instruction
set architecture between todays smartphones and todays desktop and server machines.

1.4 System Architecture

Figure 1.4.1 Mobile Device Cloud Architecture

Server Profiler:
A module running on a mobile device to monitor its resources and according to a predefined
policy, it can nominate the device to act as a server. If such a device is nominated to act as a server,
the Server Profiler broadcasts the availability of a server along with its major resources indices. If
that server moves outside the range of its clients, they wont receive its broadcasted signal and after
a specific timeout, it will be removed from their lists of nominated servers.
Monitored resources include:
CPU load and its maximum speed.
Available memory.
Wi-Fi availability along with its average round trip latency to the nearest access point.
Battery level and whether it is charging or not along with the percentage of energy
consumed in idle mode.
Offloading Agent:
This module runs on clients device and manages offloading from running applications to
available servers. When an application needs to offload some partition, it takes over the following

Firstly, it finds a server with more resources than its client according to offloading policies.
If a server is found, Offloading Agent registers its client with the found server which in its
role, stops accepting any other client until its Server Profiler recalculates the remaining of its
resources after offloading starts.

Afterwards, Offloading Agent manages communication between its client application and
the Class Loader module of the server.
In case of not finding any suitable server, it resumes execution of that partition locally.

Class Loader:
This module runs on the server and its major role is to receive classes and data sent to it from
Offloading Agent of the client then deliver them to the host OS to execute; and finally it sends the
results back to the Offloading Agent.
Customized Server:
Both client and server should have same software packages installed on them prior to
starting the session. In this case, when an application on the clients device
asks its Offloading Agent to offload a certain task, the Offloading Agent checks if there is an
available server; if found, the Offloading Agent asks the server to execute the task on it after
passing the required parameters. While the server has the same software package installed, it starts
executing the same task with the given parameters and when finishing, it sends the results back to
the Offloading Agent. This offloading
strategy is suitable for private/trusted environments.
General Server:
Server is not pre-installed with clients software packages and offers general processing for
its clients. In this case, the Offloading Agent does the same role as in the previous case except that
instead of asking the server to execute the same task, it uploads the tasks class along with its
parameters. Using reflection feature of Androids Java Dalvik Machine, the servers Class Loader
can inspect the uploaded class and then execute it. Finally, Class Loader sends the results back to
the Offloading Agent. This offloading strategy is suitable for public/untrusted environments.

Chapter 2 - Review of paper

2.1 Research papers reviewed.




A Comparative
Evaluation of
Offloading for

Comparison of
computaitons to
near by PC using
Bluetooth and
using WiFi

Determinination of
Threshold in terms
of Computation
load and Data size.
Algorithm Based
on these thresholds

a) Performance of
Data intensive
application on
different resources
b) Compared
transmission delay
vs WiFi
transmission delay

a) EC was given
more priority than
RT in Adaptive
b) Only Android
Platform used, EC
varies with H/w
c) Security issues
were not discussed


offloading is done
Mobile Device

a) Development of
b) Experimental
c) Data driven
approach using
One Simulator
d) Computation
diveded into n
subtasks, offloaded
on many devices

a) Significance of
dividing a task
into subtasks and
impact of task

a) Only Android
platform were taken
in consideration

using Mobile

Proposes Cloudlet
architecture: Any
device can
participate as a

a) application run
on Droid cloudlet

a) Gives the
developer ability
to specify which
part of application
be made
remotable and

1) arcitecture
devloped is for only
android devices.

Offloading is
carried out
dynamically at
runtime according
to specific policies

b) customized
server and
genaralised server

b)Performance gain
is insignificant
when offloading is
stable and durable based on social info
connection to
other devices
c) overall energy
based on social
consumption for
both offloader and
offlodee is more
than that of local

b) dynamic
offloading at

2) Response time
not considered
3) security issues
not taken in

Methods of
Selection for
Offloading in
Mobile Cloud

Cloud path
Find an optimal
cloud among
different classes of
cloud based on
multiple criteria
using AHP and
TOPSIS method

Cloud path
Shows relative
Only remote servers
selection based on importance of
were taken in
single criteria
criteria Bw, Price, consideration
Speed, Security
Cloud path
and availibilty.
selection based on
importance of
relative criteria
Bandwidth, Price,
Speed, Securitiy,
AHP Obtain wts
of criteria
priorities of
alternative clouds

Solution For
Offloading In
Mobile Cloud

ACO Based
solution to the

Develops an ACO
Determine the
optimized path
based on ACO
Algorithm for
clients need to
select for
apprpriate server
for computation

Proposes global
required for

No mobile or
remote Pcs were
considered as an
alternative to cloud.

delay in network
interms of Bw and

Table 2.1 A Comparative study of research papers

2.2 Background study

Mobile systems, such as smart phones, have become the primary computing platform for
many users. Various studies have identified longer battery lifetime as the most desired feature of
such systems. A 2005 study of users in 15 countries 3 found longer battery life to be more important
than all other features, including cameras or storage. A survey last year by ChangeWave Research
article revealed short battery life to be the most disliked characteristic of Apples iPhone 3GS, while
a 2009 Nokia poll showed that battery life was the top concern of music phone users. Many
applications are too computation intensive to perform on a mobile system. If a mobile user wants to
use such applications, the computation must be performed in the cloud. Other applications such as
image retrieval, voice recognition, gaming, and navigation can run on a mobile system. However,
they consume significant amounts of energy. Whether offloading these applications to the cloud
save energy and extend battery lifetimes for mobile users is a big question. Low-power design has
been an active research topic for many years. In IEEE Xplore, searching low and power in the
document title produces more than 5,000 results.
There are four basic approaches to saving energy and extending battery lifetime in mobile devices:
i) Adopt a new generation of semiconductor technology. As transistors become smaller, each
transistor consumes less power. Unfortunately, as transistors become smaller, more transistors are
needed to provide more functionalities and better performance; as a result, power consumption
actually increases
ii) Avoid wasting energy. Whole systems or individual components may enter standby or sleep
modes to save power.
iii)Execute programs slowly. When a processors clock speed doubles, the power consumption
nearly octuples. If the clock speed is reduced by half, the execution time doubles, but only one
quarter of the energy is consumed.
iv) Eliminate computation all together. The mobile system does not perform the computation;
instead, computation is performed somewhere else, thereby extending the mobile systems battery
The last approach seems to be better to implement
Sending computation to another machine is not a new idea. The currently popular client-server
computing model enables mobile users to launch Web browsers, search the Internet, and shop
online. What distinguishes cloud computing from the existing model is the adoption of
virtualization. Instead of service providers managing programs running on servers, virtualization
allows cloud vendors to run arbitrary applications from different customers on virtual machines.
Cloud vendors thus provide computing cycles, and users can use these cycles to reduce the amounts
of computation on mobile systems and save energy. Thus, cloud computing can save energy for
mobile users through computation offloading. Virtualization, a fundamental feature in cloud
computing, lets applications from different customers run on different virtual machines, thereby
providing separation and protection.

Energy analysis for computation offloading Various cost/benefit studies focus on whether to offload
computation to a server.
The following example provides a simple analysis for this decision.
Suppose the computation requires C instructions. Let S and M be the speeds, in instructions per
second, of the cloud server and the mobile system, respectively. The same task thus takes C/S
seconds on the server and C/M seconds on the mobile system. If the server and mobile system
exchange D bytes of data and B is the network bandwidth, it takes D/B seconds to transmit and
receive data. The mobile system consumes, in watts, Pc for computing, Pi while being idle, and Ptr
for sending and receiving data. (Transmission power is generally higher than reception power, but
for the purpose of this analysis, they are identical.) If the mobile system performs the computation,
the energy consumption is P c (C/M).
If the server performs the computation, the energy consumption is [P i (C/S)] + [P tr (D/B)].
The amount of energy saved is
[Pc (C/M) ] [Pi (C/S)] [Ptr (C/D)] - (1)
From eqn 1 it is found that
B = k D/C
If (D/C) is low, then offloading can save energy. Thus it shows, offloading is beneficial when large
amounts of computation C are needed with relatively small amounts of communication D


2.3) Existing work and proposed ideas

A Comparative Evaluation of Computation Offloading for Mobile Applications
The author of this paper believs that Computation offloading is to be a potential solution to
the hardware limitations of mobile devices for higher performance and/or energy savings.
Computation offloading is often conducted on a remote server, typically in the cloud as reported in
the literature. In this paper, it is considered that always it is not necessary to offload all
computations to a remote cloud server from a mobile device mainly due to the high communication
delay that may be generated. Instead, the offloading target can be a nearby PC via a lower
communication cost mechanism, such as Bluetooth, depending on the computation demands. They
have examined the impact of various factors, such as computation workload, file size, and wireless
communication protocols, and have investigated insights on power consumption through offloading
to a nearby PC or a remote cloud server. They have developed an adaptive algorithm based on
experimental results to automatically select a computation resource which has capacity to execute
computationally intensive applications and thus to save energy consumption of mobile devices.
Collaborative Mobile-To-Mobile Computation Offloading
In this paper the author consider an environment in which computational offloading is made
among collaborative mobile devices. Such an environment is called a mobile device cloud (MDC).
They highlight the gain in computation time and energy consumption that can be achieved by
offloading tasks with given characteristics to nearby devices inside a mobile device cloud. They
have adopted an experimental approach to measure power consumption in mobile to mobile
opportunistic offloading using MDCs. Then, they also adopt a data driven approach to evaluate and
assess various offloading algorithms in MDCs. Finally they believe that MDCs are not replacing the
Cloud, however they present an offloading opportunity for a set of tasks with given characteristics
or simply a solution when the cloud is unacceptable or costly. The promise of this approach shown
by evaluating these algorithms using real datasets that include contact traces and social information
of mobile devices in a conference setting.
DroidCloudlet: Towards Cloudlet-based Computing using Mobile Devices
In this paper the author proposes cloudlet architecture in which, any available mobile device
with abundant processing or power resources, can participate as a server. The author believes that
cloud let architecture bring cloud capabilities nearer to the client device. Here Offloading is carried
out dynamically at runtime according to specific policies that target reducing execution time and/or
saving battery. The author also propose a scheme to enable applications developers to select which
parts of their code should be offloaded and parallelized among different available servers.
Methods of Cloud-path Selection for Offloading in Mobile Cloud Computing Systems
The author of this paper beleives that it is easy to choose the optimal cloud to save execution
time incurred by offloading to cloud when considering only one factor. The author further beleives
that it is more important to conisder several criteria such as speed, bandwidth, price, security and
availability when making final decisions. In this paper, a multiple criteria decision analysis
approach based on the analytic hierarchy process (AHP) and the technique for order preference by
similarity to ideal solution (TOPSIS) in a fuzzy environment is proposed to decide which cloud is
the most suitable one for offloading. The AHP is used to determine the weights of the criteria for
cloud-path selection, while fuzzy TOPSIS is to obtain the final ranking of alternative clouds. The
numerical analysis is performed to evaluate the model.


ACO-Based Solution Computation Offloading In Mobile Cloud Computing

In MCC, computation offloading is one of the most important challenges to provide remote
execution of applications to the mobile devices. Here the author introduce the ant colony
optimization (ACO) to address this challenge and propose an ACO-based solution to the
computation offloading problem. The proposed method can be well implemented in practice and
presents with low computing complexity.


Chapter 3 - Use of Tools

3.1) Usage of Tools
In collaborative mobile opportunistic networks , the nodes are intermittently connected via a
new communication environment characterized by a variety of new challenges such as mobility,
disconnections, and energy constraints, simulation is performed based on real mobility traces.
Opporutinstic Network simulation can be performed using various available network simulators
including open source and propreitary simulators.
Data driven simulation of an opportunistic network is performed using the One simulator.
ONE Simulator
ONE simulatore is a open source simulator that performs opportunistic network simulation
The ONE is a simulation environment that is capable of
Generating node movement using different movement models
Routing messages between nodes with various DTN routing algorithms and sender and
receiver types
Visualizing both mobility and message passing in real time in its graphical user
ONE can import mobility data from real-world traces or other mobility generators. It can also
produce a variety of reports from node movement to message passing and general statistics.
In the evaluation of proposed ideas uses network simulation tool using One Simulator and data sets
includes Sigcomm2009 and Cambridge Mobility Traces
Sigcomm2009 Mobility Traces
Traces of Bluetooth encounters, opportunistic messaging, and social profiles of 76 users of
MobiClique application at SIGCOMM 2009.contains logs of proximity data as well as builds and
maintains a social graph connecting all participants.
Cambridge Mobility Traces
Traces of Bluetooth encounters, opportunistic messaging, and social profiles of 62 users of
iMotes application.


3.2) Open Source Network Simulators

3.2.1) NS-2
NS2 (Network Simulator Version-2) is an open source discrete event simulator designed
especially for network research. In 1996-97, NS2 was initiated and licensed for use under General
Public License (GNU). It provides support for both wired and wireless simulation of functions and
protocols such as TCP, UDP etc. NS2 was developed from the ideology of REAL simulator. NS2 is
one of the popular simulators due to its flexibility and modular behavior. It is written in two key
languages: C++ and Object-Oriented Tool Command Language
3.2.2) NS3
The NS3 simulator is a discrete-event network simulator targeted primarily for research and
educational use. It is licensed under the GNU GPLv2 license, and is available for research and
development-3. It defines a model of working procedure of packet data networks, and provides an
engine for simulation.
3.2.3) GloMoSim
Global Mobile Information System Simulator (GloMoSim) is a parallel discrete event
simulation software that simulates wireless and wired network systems. It is designed as a set of
library modules, each of which simulates a specific wireless communication protocol in the protocol
stack. It assumes that the network is decomposed into a number of partitions and a single entity is
defined to simulate a single layer of the complete protocol stack for all the network nodes that
belong to the partition.
3.2.4) TOSSIM
TOSSIM is a discrete event simulator for TinyOS[8] sensor networks that provides several
mechanisms for interacting with the network; monitoring packet traffic, statically or dynamically
injecting packet into the network and invocation of TinyOS call. It (bit-level discrete event network
emulator) has built-in Python and C++.


3.3) Licensed Simulators

3.3.1) QualNet
QualNet(Quality Networking)is a commercial version of GloMoSim used by Scalable
Network Technologies (SNT), written purely in C++. It is a network evaluation software and is
entirely modeled as a finite state machine. QualNet is engineered on a layered architecture
comprising of Application, Transport, MAC and Physical layers. It can simulate a mixture of both
wired and wireless networks.
3.3.2) NetSim
NetSim is a stochastic discrete event
network simulation tool used for network lab
experimentation and research. Its a leading network simulation software for protocol modeling and
simulation, allowing us to analyze computer networks with unmatched depth, power and flexibility.
NetSim comes with an in-built develop ment environment, which serves as the interface between
Users code and NetSims protocol libraries and simulation kernel[22]. It provides network
performance metrics at various abstraction level such as Network, sub-network, Node and a detailed
packet trace.
3.3.3) Comware v7
Comware v7 is a network operating system that runs on HP high-end
network devices.
The HP Network Simulator is an ideal Comware v7 learning tool, which allows users to create,
configure, and connect simulated networks.
3.3.4) OMNeT++
OMNeT++ (Objective Modular Network Tested in C++)is an open source, extensible,
modular, component-based discrete event simulator tool like NS-2 and NS-3 to simulate networks
both wired and wireless. It is completely written in C++. It is mostly used in research and
educational purposes and in the global scientific community.It offers an Eclipse-based IDE, a
graphical runtime environment and a host of other tools. It is a general-purpose simulator that
capable of simulating any system composed of devices interacting with each other.
Its free for academic and non profit use and Commercial user must obtain its license.


Chapter 4 - Understanding of concepts

4.1) Demonstration of concepts using block diagram
4.1.1) Mobile Cloud Computing:

Figure 4.1.1 Mobile Cloud Computing Architecture

Mobile Cloud Computing (MCC) is the combination of cloud computing, mobile computing
and wireless networks to bring rich computational resources to mobile users, network operators, as
well as cloud computing providers. The ultimate goal of MCC is to enable execution of rich mobile
applications on a plethora of mobile devices, with a rich user experience. MCC provides business
opportunities for mobile network operators as well as cloud providers.
MCC uses computational augmentation approaches by which resource-constraint mobile devices
can utilize computational resources of varied cloud-based resources. In MCC, there are four types
of cloud-based resources, namely distant immobile clouds, proximate immobile computing entities,
proximate mobile computing entities, and hybrid (combination of the other three model). Giant
clouds such as Amazon EC2 are in the distant immobile groups whereas cloudlet or surrogates are
member of proximate immobile computing entities. Smartphones, tablets, handheld devices, and
wearable computing devices are part of the third group of cloud-based resources which is proximate
mobile computing entities


4.1.2) Cloudlets:

Figure 4.1.2 Cloudlet Realization of cloud nearer to client device

Mobile users tend to access theses services via distant cloud, which has greater
computational resources. However, this type of task offloading is costly due to high energy costs
and high latency introduced by wireless intermittent communication between mobiledevices and
distant clouds. Smaller clouds, called Cloudlets were proposed to make mobile task offloading less
expensive. Cloudlets are placed closer to users (e.g., users A-D are connected to the cloudlet in
Fig. 4.2). Bring computation resources closer to users motivates the idea of offloading tasks to
nearby devices Fig. 4.2 shows a scenario where mobile devices, e.g., nodes E-G, may not reach
cloud and cloudlets resources. They are, however, able to communicate/cooperate with each others
to run tasks that transcend an individual devices capabilities.


4.1.3) Collaborative Mobile-To-Mobile Computation Offloading Forming Mobile Device



Figure 4.1.3 Mobile Device Cloud
An environment in which computational offloading is made among collaborative mobile
devices is called an environment a mobile device cloud (MDC). At an instance, any mobile device
which may having lesser battery or having lesser computation capability may decide to offload
some of application tasks to near by mobile devices having more computation and resource
capabilities. In the figure f is the proximty of mobile device b, so b is offloading some of tasks to
mobile device a and d, which are having more computation and resource capabilities.


4.1.4) Cloud Path Selection

Figure 4.1.4 The decision hierarchy of cloud selection

Along with the development of cloud computing, offloading has become a much more
attractive way to extend the battery life and reduce execution time on mobile devices. But there are
a large number of clouds appearing in sky with different charging and condition, and offloading the
same program to different clouds may perform different amounts of computing within the same
duration due to the clouds speeds, and may cost different communication time due to bandwidth
and clouds availability. Therefore, an optimal cloud-path selection method is needed when
choosing the best cloud. The selection process can be a hard task since a variety of data need to be
analyzed and many factors need to be considered. AHP and fuzzy TOPSIS are ideal ways to do
multiple criteria decision-making.
In cloud offloading systems, in order to reduce total application execution time, we need to find the
optimal cloud-path pair that from the mobile devices to the clo ud to carry out the offloaded
computation. The network bandwidth, the servers speedup, the links failure rate and clouds
condition should be considered when selecting a server in cloud.
In order to make decision when considering multiple criteria simultaneously, a combined the
methods of AHP and fuzzy TOPSIS is applied to determine optimal cloud.


4.1.5) Implementation of the ACO-based solution

Figure 4.1.5 ACO Based Solution

In Fig. 4, the boldness of line indicates the traffic load and the color indicates the pheromone
strength of ants from other colonies. If there are clients requesting for services, they will repeatedly
sent messages with size of about 1 KB or even smaller. Each message can be treated as an ant.
The information carried by the ant includes the entities it has visited and the pheromone it has
deposited. For instance, C 1 request for the computational service on remote servers. So it send its
ants to search for the service. When the ant arrives at a router, e.g. R 5 , it will make the
selection process according to defined probability function. Once it arrives at the device, which has
the service it searching for, it will report and transmit its searching information to the scheduler.
After receiving the report, the scheduler will renew the total knowledge about the pheromone
distribution in the network and deliver the knowledge to each device in MCC including the routers.
The schedulers will renew the parameters of probability function for the coming ants based on
these knowledge and send these information to the clients. At last, the scheduler will give a decision
before Ts(defined threshold time) for each request.


4.2) Flow Chart

The Adaptive Offloading Algorithm: Selects the computation resource and offload
computation to the resource in order to save mobile devices' energy consumption

Tasks executing locally

PowerLevel <
x% and


Tasks offloaded to
remote computing

If Bluetooth is
and Em > Ei + EBT


Task executed on
remote PC vi Bluetooth


If WiFi is available
And Em > Ei + EWiFi



Task executed on cloud

via WiFi

Figure 4.2.1 Flow Chart of adaptive offloading algorithm


4.4 Experimental Analysis

Energy consumption for 60 MFLOP

Figure 4.4.1 Energy consumption for 60 MFLOP

When lesser computation are offloaded to distant cloud or remote PC, the energy consumed
by mobile device varies with offloading data sizes. More energy is consumed when compared to
executing application locally without offloading.
Energy Consumption for 800 MFLOP

Figure 4.4.2 Energy consumption for 800 MFLOP

For more computation intensive task, the energy consumed by mobile device when
offloaded to near by remote pc via bluetooth technology or distant cloud via WiFi is very less when
compared to energy consumed locally on mobile device without offloading.

The energy consumption of the mobile device using Bluetooth offloading computation to a nearby
PC is less than that of using Wi-Fi offloading computation to a remote cloud server.
Response Time for 60 MFLOP

Figure 4.4.3 Response time for 60 MFLOP

The response time using Bluetooth technology is larger than Wi-Fi technology, since
bandwidth of Wi-Fi is higher than that of Bluetooth.


Impact Of Task Replication on Execution Time

Figure 4.4.4 Impact of task replication on execution time using the Cambridge trace with
Offloading delay ( TC = 1000)
For task offloaded with no replicas
It can be inferred that when the task requires execution time increases the probability to
loose connectivity between the two encountered nodes increases which introduces additional
waiting delay
Impact Of Task Replication on Execution Time:
A replication technique that consists of replicating the subtasks that exist in the offloaders
pool is implemented. Once a subtask terminates, all replicas in the pool are removes. Fig. 6 shows
the impact of the replication on the execution time for TC = 1000s. From the graph it can be inferred
that replication improves performance considerably with up to 4 speedup. This means that 2
replicas and number of 3 subtasks works at its best and that increasing the number of subtasks or the
replication factor has no additional evident effect.


Impact Of Task Replication On Energy Consumption:

Figure 4.4.5 Energy consumption (TC = 50) using the Cambridge trace
The energy consumed is measured at the offloader node which consists mainly of data
transmission, local task execution and Bluetooth scanning power consumption. Fig. 4.4.5 shows the
energy consumption for the case of TC = 50s. From the graph it can be inferred that offloading helps
reducing the energy consumption by up to 50% compared to local execution. Only the offloader
energy consumption is considered to migrate tasks in order to save energy and increase a lifetime of
a particular node. Overall energy consumption measured for both offloader and offloadees is higher
that local execution.


[1] Kelie Zhan, Chung-Horng Lung, Srivastava, P.A Comparative Evaluation of Computation
Offloading for Mobile Applications 2014 IEEE International Conference on Internet of Things
(iThings 2014), Green Computing and Communications (GreenCom 2014), and Cyber-PhysicalSocial Computing (CPSCom 2014), pp 518-525, 2014.
[2] Abderrahmen Mtibaa, Mohammad Abu Snober, Antonio Carelli, Roberto Beraldi, Hussein
Alnuweiri. Collaborative Mobile-To-Mobile Computation Offloading 10th IEEE International
Conference on Collaborative Computing: Networking, Applications and Worksharing
(CollaborateCom 2014), pp 460-465,2014
[3] El-Derini, M.N; Aly, H.H.;El-Barbary, A.E.-H.G.;El-Sayed, L.A.A.DroidCloudlet: Towards
cloudlet-based computing using mobile devices Information and Communication Systems
(ICICS), 2014 5th International Conference on pp 1-6. April 2014
[4] Huaming Wu, Qiushi Wang and Katinka Wolter, Methods of Cloud-path Selection for
Offloading in Mobile Cloud Computing Systems 2012 IEEE 4th International Conference on
Cloud Computing Technology and Science, pp 443-448, 2012
[5] Weidong Bao,Haoran Ji , Xiaomin Zhu, Ji Wang Wenhua Xiao and Jianhong Wu, ACOBASED SOLUTION FOR COMPUTATION OFFLOADING IN MOBILE CLOUD
COMPUTING, Big Data and Information Analytics c American Institute of Mathematical Sciences
Volume 1, Number 1, pp 1-13,January 2016
[6] Chen, E. Y., and Itoh, M., Virtual smartphone over IP, In Proceedings of the 2010 IEEE
International Symposium on A World of Wireless, Mobile and Multimedia Networks
(WoWMoM10), pp.1-6, June 2010.
[7] Chun, B. G.; Ihm, S.; Maniatis, P.; Naik, M.; and Patti, A., Clonecloud: elastic execution
between mobile device and cloud, In Proceedings of the sixth conference on Computer systems,
ACM, pp.301-314, April 2011.
[8] Satyanarayanan, M.; Bahl, P.; Caceres, R.; and Davies, N., The case for vm-based cloudlets in
mobile computing, Pervasive Computing, IEEE, vol.8, no.4, pp.14-23, 2009
[9] Verbelen, T.; Simoens, P.; De Turck, F.; and Dhoedt, B., Cloudlets: Bringing the cloud to the
mobile user, In Proceedings of the third ACM workshop on Mobile cloud computing and services,
pp.29-36, June 2012.
[10] Kemp, R.; Palmer, N.; Kielmann, T.; and Bal, H., Cuckoo: a computation offloading
framework for smartphones, In Mobile Computing, Applications, and Services, Springer Berlin
Heidelberg, pp.59-79, 2012
[11] Cuervo, E.; Balasubramanian, A.; Cho, D. K.; Wolman, A.; Saroiu, S.; Chandra, R.; and Bahl,
P., MAUI: making smartphones last longer with code offload, In Proceedings of the 8th
international conference on Mobile systems, applications, and services, ACM, pp.49-62, June 2010.