08-02-2013, 09:56 AM
Mobile Cloud Computing: A Comparison of Application Models
1Mobile Cloud Computing.pdf (Size: 386.33 KB / Downloads: 75)
Abstract
Cloud computing is an emerging concept combining
many fields of computing. The foundation of cloud computing is
the delivery of services, software and processing capacity over the
Internet, reducing cost, increasing storage, automating systems,
decoupling of service delivery from underlying technology, and
providing flexibility and mobility of information. However, the
actual realization of these benefits is far from being achieved
for mobile applications and open many new research questions.
In order to better understand how to facilitate the building of
mobile cloud-based applications, we have surveyed existing work
in mobile computing through the prism of cloud computing
principles. We give a definition of mobile cloud coputing and
provide an overview of the results from this review, in particular,
models of mobile cloud applications. We also highlight research
challenges in the area of mobile cloud computing. We conclude
with recommendations for how this better understanding of
mobile cloud computing can help building more powerful mobile
applications.
INTRODUCTION
Mobile devices allow users to run powerful applications that
take advantage of the growing availability of built-in sensing
and better data exchange capabilities of mobile devices. As a
result, mobile applications seamlessly integrate with realtime
data streams and Web 2.0 applications, such as mashups, open
collaboration, social networking and mobile commerce [1],
[2]. The mobile execution platform is being used for more
and more tasks, e.g., for playing games; capturing, editing,
annotating and uploading video; handling finances; managing
personal health, micro payments, ticket purchase, interacting
with ubiquitous computing infrastructures. Even mobile device
hardware and mobile networks continue to evolve and to
improve, mobile devices will always be resource-poor, less
secure, with unstable connectivity, and with less energy since
they are powered by battery. Resource poverty is major obstacle
for many applications [3]. Therefore, computation on mobile
devices will always involve a compromise.
CURRENT STATUS IN MOBILE APPLICATIONS
Several researchers, [10]–[12], have identified the fundamental
challenges in mobile computing. Mobile computing
environments are characterized by severe resources constraints
and frequent changes in operating conditions. Mobile devices
inherently have and will continue to have limited resources as
processing power, memory capacity, display size, and input
forms. These have been the forming factors of exitsting mobile
appliction approaches.
Offline Applications
Most of the applications available for modern mobile devices
fall into this category. They act as fat client that processes
the presentation and business logic layer locally on mobile
devices with data downloaded from backend systems. There
is periodical synchronization between the client and backend
system. A fat client is a networked application with most
resources available locally, rather than distributed over a
network as is the case with a thin client.
Application Mobility
The mobile cloud is accessed through heterogeneous devices.
In order to provide seamless user experience same applications
need to run on different devices. The application mobility plays
a crucial role in enabling the next generation mobile applications.
Application mobility is the act of moving application
between hosts during their execution. Basically, application
mobility is migrating running application states from one device
to another to which the user has an immediate access [23],
[24].
Application mobility is closely related to process migration.
Process migration is an operating system capability that allows
a running process to be paused, relocated to another machine,
and continued there. It represents seamless mobility at the
granularity of individual processes, and has been the research
focus of many experimental projects [25]. However, application
mobility involves more than process migration, e.g. migration
tasks to different architectures or UI adaptation.
Ad-hoc Mobile Clouds
An ad-hoc computing cloud represents a group of mobile
devices that serve as a cloud computing provider by exposing
their computing resources to other mobile devices. This type of
mobile cloud computing becomes more interesting in situations
with no or weak connections to the Internet and large cloud
providers. Offloading to nearby mobile devices save monetary
cost, because data charging is avoided, especially favored in
roaming situations. Moreover, it allows creating computing
communities in which users can collaboratively execute shared
tasks.
Huerta-Canepa and Lee [28] present guidelines for a framework
to create virtual mobile cloud computing providers.
This framework mimics a traditional cloud provider using
nearby mobile devices. The proposed approach allows avoiding
a connection to infrastructure-based cloud providers while
bringing benefits of computation offloading. However, such
an approach requires the support for spontaneous interaction
networking with discovery and selection of mobile peers.
Hadoop1 ported on mobile device is used for distributing
of processing tasks and storage.
CONCLUSIONS
In this paper, we have covered several representative mobile
cloud approaches. Much other related work exist, but the
purpose of this paper is to give an overview of the wide
spectrum of mobile cloud computing possibilities. None of
the existing approaches meets completely the requirements of
mobile clouds. Native (offline) and Web (online) applications
are the two extremes of mobile applications. The former type
is using capabilities of mobile devices, but the integration
with the cloud is poor. The latter type lacks from insufficient
usage of mobile device sensors and available device computing
resources while suffering from interactivity issues. Therefore,
we believe that the full potential of mobile cloud applications
lies in between these two extremes, while dynamically shifting
the responsibilities between mobile device and cloud. Several
researchers have shown how to achieve that by, e.g., replicating
whole device software image or offloading parts of the
application. The offloading can happen to some remote data
center, nearby computer or cluster of computers, or even to
nearby mobile devices.