The increasing usage of mobile computing is evident by the study by Juniper Research

The increasing usage of mobile computing is evident by the study by Juniper Research, which states that the consumer and enterprise market for cloud-based mobile applications is expected to rise to $9.5 billion by 2014. In recent years, applications targeted at mobile devices have started becoming abundant with applications in various categories such as entertainment, health, games, business, social networking, travel and news. The popularity of these are evident by browsing through mobile app download centers such as Apple’s iTunes or Nokia’s Ovi suite. The reason for this is that mobile computing is able to provide a tool to the user when and where it is needed irrespective of user movement, hence supporting location independence. Indeed, ‘mobility’ is one of the characteristics of a pervasive computing environment where the user is able to continue his/her work seamlessly regardless of his/her movement. These pose the problem of executing many useful programs that could aid the user and create a pervasive environment. According to Tim O’Reilly the future belongs to services that respond in real time to information provided either by their users or by nonhuman sensors. Real time applications are just one type of mobile applications that demand high levels of responsiveness, that in turn, demand intensive computing resources. Some mobile applications, such as location based social networking, process and make use of the phone’s various sensor data. However, extensive use of sensors, such as obtaining a GPS reading, is expensive in terms of energy and this limits the mobile phone in providing the user a better service through its embedded sensors. Furthermore, consider applications that require extensive processing – image processing for video games, speech synthesis, natural language processing, augmented reality, wearable computing-all these demand high computational capacities thus restricting the developers in implementing applications for mobile phones. Considering the trends in mobile phone architecture and battery, it is unlikely that these problems will be solved in the future. This is, in fact, not merely a temporary technological deficiency but Intrinsic to mobility, and a barrier that needs to be overcome in order to actualize the full potential of mobile computing.
In recent years, this problem has been addressed by researchers through cloud computing. Cloud computing that can be defined as the aggregation of computing as a utility and software as a service where the applications are delivered as services over the Internet and the hardware and systems software in data centers provide those services. Also called On Demand Computing, Utility Computing or Pay as You Go Computing, the concept behind cloud computing is to offload computation to remote resource providers. The key strengths of cloud computing can be described in terms of the services offered by cloud service providers: software as a service (SaaS), platform as a service (PaaS), and infrastructure as a service (IaaS). Extensive surveys on cloud computing, such as can be found in the literature, and here we focus on the potential of, and the challenges faced by mobile cloud computing. The concept of offloading data and computation in cloud computing, is used to address the inherent problems in mobile computing by using resource providers other than the mobile device itself to host the execution of mobile applications. Such an infrastructure where data storage and processing could happen outside the mobile device could be termed a ‘mobile cloud’. By exploiting the computing and storage capabilities of the mobile cloud, computer intensive applications can be executed on low resource mobile devices. Some of the key questions needing to be answered are: How does mobile cloud computing differ from cloud computing? What approaches have been made towards mobile cloud computing and how do they differ from each other? How can computation be offloaded and distributed to the cloud efficiently and in which ways does this differ from traditional distributed computing? What incentives can be used to persuade surrounding surrogate devices to participate in sharing the workload? How can context information be used in a beneficial way? How does mobility affect the performance of a mobile cloud? The goal of this paper is to discuss in detail the current research that addresses these issues. We review the proposed solutions, and explore the upcoming research 2.