Future Generation Computer Systems 29 (2013) 84–106 Contents lists available at SciVerse ScienceDirect Future Generation Computer Systems journal homepage: www.elsevier.com/locate/fgcs Mobile cloud computing: A survey Niroshinie Fernando * , Seng W. Loke * , Wenny Rahayu Department of Computer Science and Computer Engineering, La Trobe University, Australia article info Article history: Received 31 August 2011 Received in revised form 22 May 2012 Accepted 30 May 2012 Available online 6 June 2012 Keywords: Mobile cloud computing Task offload Pervasive networks abstract Despite increasing usage of mobile computing, exploiting its full potential is difficult due to its inherent problems such as resource scarcity, frequent disconnections, and mobility. Mobile cloud computing can address these problems by executing mobile applications on resource providers external to the mobile device. In this paper, we provide an extensive survey of mobile cloud computing research, while highlighting the specific concerns in mobile cloud computing. We present a taxonomy based on the key issues in this area, and discuss the different approaches taken to tackle these issues. We conclude the paper with a critical analysis of challenges that have not yet been fully met, and highlight directions for future work. © 2012 Elsevier B.V. All rights reserved. 1. Introduction 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 [1]. 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. However, with mobility comes its inherent problems such as re- source scarceness, finite energy and low connectivity as outlined by Satyanarayanan in [2]. These pose the problem of executing many useful programs that could aid the user and create a perva- sive 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’ [3]. Real time applications are just one type of mobile applications that demand high levels of re- sponsiveness, that in turn, demand intensive computing resources. * Corresponding authors. E-mail addresses: niro_ucsc@yahoo.com, tnfernando@students.latrobe.edu.au (N. Fernando), s.loke@latrobe.edu.au (S.W. Loke), w.rahayu@latrobe.edu.au (W. Rahayu). Some mobile applications, such as location based social network- ing, process and make use of the phone’s various sensor data. How- ever, 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 process- ing – 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 in- trinsic to mobility [4], and a barrier that needs to be overcome in order to realize the full potential of mobile computing. In recent years, this problem has been addressed by researchers though cloud computing. Cloud computing can be defined as the aggregation of computing as a utility and software as a service [5] where the applications are delivered as services over the Internet and the hardware and systems software in data centers provide those services [6]. 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) [7]. Extensive surveys on cloud computing such as [6,5,8,7,9,10] 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 0167-739X/$ – see front matter © 2012 Elsevier B.V. All rights reserved. doi:10.1016/j.future.2012.05.023