heterogeneity in mobile cloud computing taxonomy and open challenges

24
IEEE COMMUNICATIONS SURVEYS & TUTORIALS, VOL. 16, NO. 1, FIRST QUARTER 2014 369 Heterogeneity in Mobile Cloud Computing: Taxonomy and Open Challenges Zohreh Sanaei, Member, IEEE, Saeid Abolfazli, Member, IEEE, Abdullah Gani, Senior Member, IEEE and Rajkumar Buyya, Senior Member, IEEE Abstract—The unabated flurry of research activities to aug- ment various mobile devices by leveraging heterogeneous cloud resources has created a new research domain called Mobile Cloud Computing (MCC). In the core of such a non-uniform environment, facilitating interoperability, portability, and inte- gration among heterogeneous platforms is nontrivial. Building such facilitators in MCC requires investigations to understand heterogeneity and its challenges over the roots. Although there are many research studies in mobile computing and cloud com- puting, convergence of these two areas grants further academic efforts towards flourishing MCC. In this paper, we define MCC, explain its major challenges, discuss heterogeneity in convergent computing (i.e. mobile computing and cloud computing) and networking (wired and wireless networks), and divide it into two dimensions, namely vertical and horizontal. Heterogeneity roots are analyzed and taxonomized as hardware, platform, feature, API, and network. Multidimensional heterogeneity in MCC results in application and code fragmentation problems that impede development of cross-platform mobile applications which is mathematically described. The impacts of heterogeneity in MCC are investigated, related opportunities and challenges are identified, and predominant heterogeneity handling approaches like virtualization, middleware, and service oriented architecture (SOA) are discussed. We outline open issues that help in identifying new research directions in MCC. Index Terms—Mobile Cloud Computing, Vertical and Hori- zontal heterogeneity, Mobile computation offloading, Interoper- ability, Portability, Seamless communication. I. I NTRODUCTION T HE POPULARITY and availability of mobile devices such as smartphones, which are offering ubiquitous communication and information services, are creating such a dependency that one does not leave home without them. Smartphones possess a likelihood of one-upmanship from notebooks and desktops [1]. These smart handheld computers will generate 150.6-billion-dollar benefits by the end of 2014, while devices like PDAs will bring in 2.7 billion dollars comparatively [2]. Hence, with the increasing ubiquity of smartphones, the greater demand for heavier applications with high quality of experience is gaining ground. However, Manuscript received May 5, 2012; revised November 14, 2012 and Febru- ary 28, 2013. This work is funded by the Malaysian Ministry of Higher Education under the University of Malaya High Impact Research Grant - UM.C/HIR/MOHE/FCSIT/03. Z. Sanaei, S. Abolfazli, and A. Gani are with the Department of Computer System & Technology, The University of Malaya, Kuala Lumpur, Malaysia (e-mail: {sanaei,abolfazli}@ieee.org; [email protected]). R. Buyya is with the Cloud Computing and Distributed Systems (CLOUDS) Laboratory, Department of Computing and Information, The University of Melbourne, Parkville, Melbourne, VIC 3010, Australia (e-mail: [email protected]). Digital Object Identifier 10.1109/SURV.2013.050113.00090 smartphones’ miniature nature, lightness, and mobility impose intrinsic limits on their processing abilities, battery lifetime, storage capacity, and visualization power (e.g. screen size and rendering capability). These restraints impede executing resource-intensive tasks and storing large amount of data on smartphones. To overcome some of these limitations, Satyanarayana [3] proposes cyber foraging approach. In this approach, mobile augmentation is achieved via offloading applications (entirely or partially) to resource-rich, non-mobile computing devices in the vicinity called surrogates to provide heavy functionality and to conserve local resources, especially energy. Proposals similar to Spectra [4] and Scavenger [5] are aimed to augment mobile devices leveraging cyber foraging. However, safety and reliability are the major challenges for migrating codes to the surrogates in the absence of authorities supervising functionality, performance, and the reliability of surrogates [6]. Alternatively, cloud computing [7]–[9] as a distributed computing paradigm has recently obtained momentous ground in augmenting mobile devices. MAUI [10], CloneCloud [11], and Elastic Applications [12] are some efforts that exploit clouds infrastructures to mitigate resource poverty of mobile devices. ABI Research forecasts that by the end of 2015 more than 240 million mobile business users will utilize cloud services driving nearly $5 billion in revenues [13]. Deploying cloud resources is a complex task that obliges programmers to acquire specific skills. To mitigate such design and program- ming overhead, cloud computing software platforms such as Eucalyptus [14] was developed to facilitate cloud deployment and management in IT business. Recently, the exploitation of cloud resources for augmenting mobile devices has bred a new research area called Mobile Cloud Computing (MCC). Mobility established on convergent networks [15] is the key attribute that distinguishes MCC from cloud computing. MCC aims to augment computing capabilities of mobile devices, conserve local resources - especially battery, extend storage capacity, and enhance data safety to enrich the computing experience of mobile users. The main difference between surrogate-based and cloud-based augmenting approaches is that surrogates offer free services without commitment to complete assigned jobs (they can leave a task anytime at any stage of computing), whereas clouds provide paid services with assured availability, quality, and commitment according to the negotiated Service-Level Agreement (SLA) between cloud vendor and mobile client [16]. Nevertheless, MCC is a nascent technology restrained by heterogeneity that still requires a plethora of research and development for deployment in real augmentation scenarios. 1553-877X/14/$31.00 c 2014 IEEE

Upload: sfaizullahbasha

Post on 01-Oct-2015

16 views

Category:

Documents


2 download

DESCRIPTION

ieee papers for students

TRANSCRIPT

  • IEEE COMMUNICATIONS SURVEYS & TUTORIALS, VOL. 16, NO. 1, FIRST QUARTER 2014 369

    Heterogeneity in Mobile Cloud Computing:Taxonomy and Open Challenges

    Zohreh Sanaei, Member, IEEE, Saeid Abolfazli, Member, IEEE, Abdullah Gani, Senior Member, IEEE andRajkumar Buyya, Senior Member, IEEE

    AbstractThe unabated flurry of research activities to aug-ment various mobile devices by leveraging heterogeneous cloudresources has created a new research domain called MobileCloud Computing (MCC). In the core of such a non-uniformenvironment, facilitating interoperability, portability, and inte-gration among heterogeneous platforms is nontrivial. Buildingsuch facilitators in MCC requires investigations to understandheterogeneity and its challenges over the roots. Although thereare many research studies in mobile computing and cloud com-puting, convergence of these two areas grants further academicefforts towards flourishing MCC. In this paper, we define MCC,explain its major challenges, discuss heterogeneity in convergentcomputing (i.e. mobile computing and cloud computing) andnetworking (wired and wireless networks), and divide it intotwo dimensions, namely vertical and horizontal. Heterogeneityroots are analyzed and taxonomized as hardware, platform,feature, API, and network. Multidimensional heterogeneity inMCC results in application and code fragmentation problemsthat impede development of cross-platform mobile applicationswhich is mathematically described. The impacts of heterogeneityin MCC are investigated, related opportunities and challenges areidentified, and predominant heterogeneity handling approacheslike virtualization, middleware, and service oriented architecture(SOA) are discussed. We outline open issues that help inidentifying new research directions in MCC.

    Index TermsMobile Cloud Computing, Vertical and Hori-zontal heterogeneity, Mobile computation offloading, Interoper-ability, Portability, Seamless communication.

    I. INTRODUCTION

    THE POPULARITY and availability of mobile devicessuch as smartphones, which are offering ubiquitouscommunication and information services, are creating sucha dependency that one does not leave home without them.Smartphones possess a likelihood of one-upmanship fromnotebooks and desktops [1]. These smart handheld computerswill generate 150.6-billion-dollar benefits by the end of 2014,while devices like PDAs will bring in 2.7 billion dollarscomparatively [2]. Hence, with the increasing ubiquity ofsmartphones, the greater demand for heavier applicationswith high quality of experience is gaining ground. However,

    Manuscript received May 5, 2012; revised November 14, 2012 and Febru-ary 28, 2013. This work is funded by the Malaysian Ministry of HigherEducation under the University of Malaya High Impact Research Grant -UM.C/HIR/MOHE/FCSIT/03.

    Z. Sanaei, S. Abolfazli, and A. Gani are with the Department of ComputerSystem & Technology, The University of Malaya, Kuala Lumpur, Malaysia(e-mail: {sanaei,abolfazli}@ieee.org; [email protected]).

    R. Buyya is with the Cloud Computing and Distributed Systems(CLOUDS) Laboratory, Department of Computing and Information, TheUniversity of Melbourne, Parkville, Melbourne, VIC 3010, Australia (e-mail:[email protected]).

    Digital Object Identifier 10.1109/SURV.2013.050113.00090

    smartphones miniature nature, lightness, and mobility imposeintrinsic limits on their processing abilities, battery lifetime,storage capacity, and visualization power (e.g. screen sizeand rendering capability). These restraints impede executingresource-intensive tasks and storing large amount of data onsmartphones.

    To overcome some of these limitations, Satyanarayana [3]proposes cyber foraging approach. In this approach, mobileaugmentation is achieved via offloading applications (entirelyor partially) to resource-rich, non-mobile computing devicesin the vicinity called surrogates to provide heavy functionalityand to conserve local resources, especially energy. Proposalssimilar to Spectra [4] and Scavenger [5] are aimed to augmentmobile devices leveraging cyber foraging. However, safetyand reliability are the major challenges for migrating codesto the surrogates in the absence of authorities supervisingfunctionality, performance, and the reliability of surrogates [6].

    Alternatively, cloud computing [7][9] as a distributedcomputing paradigm has recently obtained momentous groundin augmenting mobile devices. MAUI [10], CloneCloud [11],and Elastic Applications [12] are some efforts that exploitclouds infrastructures to mitigate resource poverty of mobiledevices. ABI Research forecasts that by the end of 2015more than 240 million mobile business users will utilize cloudservices driving nearly $5 billion in revenues [13]. Deployingcloud resources is a complex task that obliges programmers toacquire specific skills. To mitigate such design and program-ming overhead, cloud computing software platforms such asEucalyptus [14] was developed to facilitate cloud deploymentand management in IT business.

    Recently, the exploitation of cloud resources for augmentingmobile devices has bred a new research area called MobileCloud Computing (MCC). Mobility established on convergentnetworks [15] is the key attribute that distinguishes MCCfrom cloud computing. MCC aims to augment computingcapabilities of mobile devices, conserve local resources -especially battery, extend storage capacity, and enhance datasafety to enrich the computing experience of mobile users.The main difference between surrogate-based and cloud-basedaugmenting approaches is that surrogates offer free serviceswithout commitment to complete assigned jobs (they canleave a task anytime at any stage of computing), whereasclouds provide paid services with assured availability, quality,and commitment according to the negotiated Service-LevelAgreement (SLA) between cloud vendor and mobile client[16]. Nevertheless, MCC is a nascent technology restrainedby heterogeneity that still requires a plethora of research anddevelopment for deployment in real augmentation scenarios.

    1553-877X/14/$31.00 c 2014 IEEE

  • 370 IEEE COMMUNICATIONS SURVEYS & TUTORIALS, VOL. 16, NO. 1, FIRST QUARTER 2014

    MCC is a convergent technology comprised of three cor-nerstone heterogeneous technologies, namely mobile comput-ing, cloud computing, and networking. Such heterogeneityaggregation complicates MCC and decelerates its success. Inthe mobile computing landscape, the vast variety of mobiledevices with different operating systems(OSs), platforms, andwireless network standards is making mobile application de-velopment a major challenge for developers [17]. Also, fromthe mobile user perspective, application and data migrationincur redundant monetary and temporal costs in the case ofshifting from one platform to another.

    In the cloud ecosystem, the rapid development of cloudcomputing in the absence of early standards beside fragmentedbusiness policies have created various types of heterogeneity(e.g. hardware and platform) that give rise to new problemssuch as vendor lock-in. Vendor lock-in problem is the statewhen code and data cannot (easily) be moved from one cloudto another because of dissimilarities among underlying ar-chitectures and programming languages. Though the problemmight be attractive in business competition [18], it causes sev-eral challenges particularly data integrity, interoperability, andportability. Hence, cloud-users become vulnerable to problemslike (i) reliability if the service provider stops serving requests,(ii) data extraction from the hosting server(s), and (iii) a pricehike.

    Furthermore, the convergence of heterogeneous wirelessnetworks (e.g. WLAN and cellular) and wired networksmakes MCC more challengeable than cloud computing. In-termittency, low security, and a high probability of signalinterception in wireless networks are factors that degradecommunication quality and increase application response time.These challenges are intensified when mobile users cross theInternet channel to utilize cloud services.

    To actuate MCC vision, essential requirements like (i) man-aging distributed data between heterogeneous cloud servers[19], (ii) unifying network connectivity, (iii) utilizing IP-based wireless systems [20], and (iv) establishing commonapplication programming interface (API) standards for mobileservices (e.g. GSMA OneAPI [21]) as well as cloud services(e.g. OCCI [22] and OVF [23]) should be met. Furthermore,underpinning requisitions i.e. ubiquity, energy efficiency, andtrust can enhance user experience quality toward unleashingthe power of MCC [24].

    To address the challenges within MCC, academic and in-dustrial communities are bound together. Academic proposalsparticularly Cloudlet [25], Mirage [26], RASIC [27], andCloud Mobile Hybrid (CMH) Applications [28] are soughtto mitigate heterogeneity-caused problems by leveraging ap-proaches particularly virtualization, middleware, semantic,Service Oriented Architecture (SOA), and Domain SpecificLanguage (DSL). In industry, Marmalade [29] and PhoneGap[30] are some of the cross-platform toolkits that aim to reducedevelopers workload by automatically transiting the mobileapplication code to the required platform (e.g. Android1 andBlackberry2). However, building cloud-mobile applications intwo widely divergent environments (i.e. mobile and cloud)

    1http://www.android.com/2http://us.blackberry.com/

    is maturating and necessitates further research. Surveys suchas [31], [32] provide extensive overview of MCC includingsome challenges and advantages that sufficiently reflect thecurrent trend in MCC. However, comprehensive study onheterogeneity in MCC as a root of great number of challengesis lacking.

    This article provides a comprehensive study on MCC het-erogeneity, presents MCC definition, and describes challengesthat are either caused or intensified by heterogeneity. Taxon-omy of heterogeneity roots in MCC is devised according tothe fragmentation in mobile computing, cloud computing, andnetworking environments. Heterogeneity in MCC is analyzedand classified into vertical and horizontal aspects based onheterogeneity raised in mobile devices, clouds, and wirelessnetworks. Furthermore, application and data fragmentationare described and the impacts of heterogeneity in MCC arepresented. The survey ends by reviewing major heterogeneityhandling techniques and describing few open issues as futureresearch directions. In the burgeoning heterogeneous MCCdomain, the comprehension and settlement of fundamentalproblems in the early development stages leads to the successof MCC. Considering the dominating popularity of smart-phones compared to other mobile devices, this article studiessmartphones as the main mobile computing devices. The termsmobile devices and smartphones are used interchangeably withthe same notion.

    The remainder of this paper is organized as follows. Thenext Section presents an overview of MCC and discussesits major challenges. Section III devises taxonomy of hetero-geneity roots and describes heterogeneity dimensions (verticaland horizontal) in MCC. Impacts of heterogeneity in MCCis identified in Section IV. Technologies and techniques foralleviating the challenges of heterogeneity are discussed inSection V. Finally, Section VI highlights open issues and thepaper concludes in Section VII.

    II. MOBILE CLOUD COMPUTING (MCC)

    Resource poverty is a major shortcoming of mobile comput-ing. Recently, the connotation of MCC has arisen in order toovercome the resource deficiency of mobile devices, especiallysmartphones. In order to bring a clear understanding of MCCand its challenges, we examine the respective definitions ofmobile computing, ubiquitous computing, cloud, and cloudcomputing.

    A. Definitions

    There are several definitions in mobile computing [33],[34], ubiquitous computing [35], [36], cloud [7], and cloudcomputing [8]. Here are some of the definitions deemedgeneric enough to understand the fundamentals.Mobile Computing. The design of small, powerful devicesenables mobility in wireless networks that supports a trendtoward computing on the go, known as mobile computing.

    Satyanarayana [37] describes the vision of mobile comput-ing as information at fingertips anywhere, anytime, whileImielinski and Korth [33] discuss that The mobile computingno longer requires users to maintain a fixed and universally

  • SANAEI et al.: HETEROGENEITY IN MOBILE CLOUD COMPUTING: TAXONOMY AND OPEN CHALLENGES 371

    Fig. 1. Taxonomy of Smartphone Augmentation Approaches.

    known position in the network and enables almost unrestrictedmobility.Ubiquitous Computing. Mark Weiser [35] defines ubiquitouscomputing as the method of enhancing computer use bymaking many computers available throughout the physicalenvironment, but making them effectively invisible to theuser.Cloud. Cloud is a rich computing resource. Buyya, Yeo, andVenugopal [7] propose one of the most popular definitions forcloud as a type of parallel and distributed system consistingof a collection of interconnected and virtualized computersdynamically provisioned and presented as one or more uni-fied computing resources based on service-level agreementsestablished through negotiation between the service providerand consumers.Cloud Computing. Cloud computing is a computing tech-nology that leverages clouds resources for enabling ubiq-uitous, convenient, on-demand network access to a sharedpool of configurable computing resources (e.g., networks,servers, storage, applications, and services) that can be rapidlyprovisioned and released with minimal management effort orservice provider interaction, as NIST [8] describes.

    Based on these definitions and our observation of theessence of what and how MCC landscape is deemed, thefollowing definition is proposed.Mobile Cloud Computing is a rich mobile computing tech-nology that leverages unified elastic resources of varied cloudsand network technologies toward unrestricted functionality,storage, and mobility to serve a multitude of mobile devicesanywhere, anytime through the channel of Ethernet or Internetregardless of heterogeneous environments and platforms basedon the pay-as-you-use principle.

    B. Vision

    MCC is the state-of-the-art mobile computing technologythat aims to augment a multitude of mobile devices, especiallysmartphones and alleviate their resource poverty. Mobile userscan have access to their applications, data, and cloud servicesthrough the Internet by leveraging mobile web [31]. Thisfuturistic accomplishment will be employed in several areaslike healthcare (e.g. telemonitoring and telesurgery), educa-tion, IT Business, rural and urban development, and social

    networking. In our previous work [38], smartphone augmen-tation approaches are reviewed and a taxonomy is definedwhich is depicted in Figure 1. Technological advancementin manufacturing high-end mobile resources is slower thanthe ever-growing expectations of mobile users and applicationrequirements. Hence, soft resource augmentation is necessaryfor delivering user-centric computing capabilities [3] equal touser expectations. We advocated that cloud computing is thepredominant technology recently deployed to augment smart-phones by reducing application resource requirements. Severalefforts such as [10], [12], [39][42] deploy cloud computingtechnology to enhance the capability of smartphone.

    Moreover, cloud computing is beneficial in enhancing infor-mation safety and security. Storing data in smartphones localstorage is a hazardous practice due to their susceptibility totheft, loss, and physical damage. Cloud data storage is envi-sioned to enhance data safety and security, provide pervasiveaccessibility, and facilitate data portability and synchronizationamong several devices (e.g. smartphones and PCs). DropBox3,SugarSync4, and Box5 are examples of cloud storage services.People exploit such huge data warehouses to store and retrievetheir data (bulk data) which are accessible from variousdevices. Users can even access their data through the Internetby utilizing public devices and providing unique credentials.

    The advent of MCC has advanced into a technologicalrevolution providing profitable opportunities for several do-mains such as healthcare, e-learning, and the tourism industry.It connotes the impression to reduce development cost andstimulate execution of resource-intensive mobile applicationsby leveraging distant rich resources to enhance the qualityof user experience. Figure 2 illustrates a conceptual viewof MCC and depicts its usability in several domains suchas healthcare, social networking, urban development, andvehicular technology. It shows the possibility of utilizinggeographically distributed private clouds (e.g. medical andbiological research groups), public clouds (e.g. Google6 andFacebook7), and hybrid clouds (that can be generated by

    3https://www.dropbox.com/4http://www.sugarsync.com/5http://www.box.com/6https://www.google.com7http://www.facebook.com

  • 372 IEEE COMMUNICATIONS SURVEYS & TUTORIALS, VOL. 16, NO. 1, FIRST QUARTER 2014

    Fig. 2. A Conceptual View of Mobile Cloud Computing.

    converging private and public clouds) in global roaming.It is notable that authorized mobile users can utilize morethan one private cloud simultaneously. Furthermore, Figure 2illustrates heterogeneity in MCC among varied mobile devices,communication networks, and clouds. Although heterogeneityhas been existing in mobile and cloud computing domains,accumulated intensity and complexity make it a unique, chal-lenging feature within MCC that necessitates a comprehensivestudy.

    C. Heterogeneity

    Heterogeneity in MCC is the existence of differentiatedhardware, architectures, infrastructure, and technologies ofmobile devices, clouds, and wireless networks. The cuttingedge technologies are expected to initiate and facilitate collab-oration among these heterogeneous computing devices towardunrestricted mobile computing.Heterogeneity in Mobile Devices: Software, hardware, andtechnology variation among mobile devices cause heterogene-ity in this domain. Moreover, increasing popularity of smart-phones creates a dynamic and demanding market that dispersethem to different dimensions, e.g. brand, hardware, OS, fea-ture, and communication medium. Consequently, device-levelcollaboration becomes more challenging in MCC.Heterogeneity in Clouds: Numerous cloud vendors providedifferent services with custom-built policies, infrastructures,

    platforms, and APIs that make the cloud landscape heteroge-neous. Such variations cause interoperability and portability[43] as major challenges in cloud computing. There is anotion [18] that business competition also diversifies cloudproviders with their heterogeneous frameworks, exacerbatingheterogeneity on the cloud side.Heterogeneity in Wireless Networks: In MCC, the majorityof communications take place in the wireless network envi-ronment which is a heterogeneous communication medium.Variations in wireless networks and their related technologiesimpact the delivery of cloud services and affect mobility,augmentation, and usability of smartphones [38].

    D. Challenges

    In the MCC landscape, an amalgam of mobile computing,cloud computing, and communication networks (to augmentsmartphones) creates several complex challenges. This partdescribes challenges either stemmed or intensified by hetero-geneity. Although some of these challenges such as seamlessconnectivity, vendor lock-in, and security and privacy arecommon with mobile computing and cloud computing, weaim to highlight how different are these traditional challengesand in what extent they increase the complexity in MCC.

    Mobile Computation Offloading: Leveraging heteroge-neous cloud resources to augment computing limitations

  • SANAEI et al.: HETEROGENEITY IN MOBILE CLOUD COMPUTING: TAXONOMY AND OPEN CHALLENGES 373

    of multitude of mobile devices towards realizing thevision of unrestricted functionality, storage, and mobilityin current diverse communication environment is a non-trivial task. Realizing cloud-based augmentation visionis impeded by multi-dimensional overhead of identifyingand efficiently partitioning resource intensive compo-nents, VM (Virtual Machine) creation and migration, andmonitoring the overall outsourcing process [44]. More-over, a plethora of hurdles in utilizing cloud resourcessuch as latency, heterogeneity, security (both offloadedcode and cloud permanent software), code portability,and cloud-mobile interoperability intensifies the situation.Although several efforts such as CloneCloud [11], MAUI[10], Cloudlet [25], SAMI [45], and MOMCC [46] arefacilitating and promoting cloud-based computation of-floading, still research and development in this domainremains a top priority.

    Seamless Connectivity: Wireless networks are charac-terized by low-bandwidth, intermittent, and less-reliabletransmission grounds compared with the wired networks.Establishing and maintaining seamless sessions betweennomadic MCC users (leveraging cloud computation orstorage) and other entities (e.g. smartphones and clouds)in a wireless medium composed of heterogeneous net-work technologies are critical issues to fully unleashthe power of MCC [24]. The intermittent connectivitycauses several challenges such as dismissal of always-on connectivity, excessive consumption of limited mobileresources, and disproportionate delaying of applicationexecution that sharply degrade quality of computingservices.Seamless connectivity in heterogeneous MCC envi-ronment demands reliable inter-system signal handoffschemes along next generation wireless networks [47].Unstable wireless bandwidth, low wireless network se-curity, and the high probability of signal interceptionare challenges likely intensified by crossing the Internetchannel in order to utilize the cloud services for mobileaugmentation.

    Long WAN Latency: Latency adversely impacts on theenergy efficiency [48] and interactive response [49] ofcloud-mobile applications by consuming excessive mo-bile resources and raising transmission delays. In cellularcommunication, distance from the base station (near orfar) and variation in bandwidth and speed of variouswireless technologies affect the energy efficiency andusability of MCC devices. For example, data transfer bit-rate consumes comparatively more energy in cellular net-works than WLAN. The higher the transmission bit-rate,the more energy efficient the transmission [48]. More-over, leveraging wireless Internet networks to offloadmobile intensive applications to distant cloud resourcescreates a bottleneck. Consequently, the long WAN latencyis increased while the quality of user experience isdecreased. To reduce interaction latency, proposals suchas Cloudlet, MOMCC, and SAMI are proposed to createa proximate cloud to access nearby remote resources,but further advancement to achieve crisper response isrequired.

    Mobility Management: Integration of dissimilar wirelessnetworks is a challenging task due to heterogeneity inaccess technologies, architectures, protocols, user mobil-ity pattern, and user service requirements [20]. To achievethe converged wired, mobile, and broadband communica-tion not only accurate and efficient mobility managementschemes are prerequisite, but also seamless integrationand interoperation of mobility management approaches toaddress intrasystem and especially intersystem mobilityis mandatory in MCC environment. Hence, an adaptiveprotocol suit similar to AdaptNet [50] is essential toalleviate a plethora of heterogeneity-made issues, particu-larly rate adaptation and congestion control, and provideinteroperation among various networks. Integration andinteroperation of converged heterogeneous networks inMCC demand lightweight, resource- and cost-effective,sustainable, and user-friendly approaches with optimizedperformance to address seamless mobility. Realizing suchvital need with least signal traffic and latency can signif-icantly enrich quality of cloud-mobile user experience.

    Context-Processing: Contemporary mobile devices arecapable of gathering extensive context and social infor-mation, specifically available cloud resources, networkbandwidth, weather conditions, and users voice andgestures from their surrounding environment [51], [52].Exponential growth in context and social information(considering environment dynamism and mobility ofmobile clients) creates several challenges such as stor-ing, managing, and processing information on resource-constraint smartphones. Although cloud infrastructuresare connoted to be a suitable platform for context storage,management, and processing [53], the need for an energy-efficient, reliable, and robust cloud-mobile data migrationand communication is unavoidable.

    Energy Constraint: Energy is the only unreplenishableresource in mobile devices that cannot be restored spon-taneously and requires external resources to be renewed[54]. Current technologies can increase battery capacityby only 5% per annum [55]. Several energy harvestingefforts have been in progress since the 1990s to replenishenergy from external resources like human movement[56] and wireless radiation [57], but these intermittentresources are not available on-demand [58]. Alternatively,application offloading [3] and fidelity adaptation [59] ap-proaches are proposed to conserve local mobile resources,especially energy. However, application offloading is arisky, resource-intensive approach, that needs further re-search and development to be deployed in real scenarios[6]. Fidelity adaptation solutions compromise quality toconserve local resources which impoverish quality of userexperience in MCC. Researchers [10][12] endeavouredto mitigate application offloading challenges by exploit-ing secure, reliable, elastic cloud resources instead ofinsecure, limited surrogates resources. However, cloud-based application offloading cannot always save energywith current developments and demands further efforts[6], [60], [61]. Therefore, the energy constraint of mobilenodes remains a challenge in MCC.

    Vendor/data Lock-in: Variety of cloud servers and mobile

  • 374 IEEE COMMUNICATIONS SURVEYS & TUTORIALS, VOL. 16, NO. 1, FIRST QUARTER 2014

    devices beside a silo of varied OSs and applications onone hand and non-uniformity of APIs in the absenceof underpinning standards on the other hand, intensifydata lock-in problem in MCC that bounds customersto a specific mobile device and cloud provider. Forexample, if cloud-mobile users utilize Apple iCloud8 asan automatic cloud-based storage service developed anddedicated to Apple products, no data fetch from non-Apple devices is addressable. Alleviating vendor lock-in problem in MCC is more challenging compared withcloud computing. Vendor lock-in solutions need to beapplied in both mobile and cloud sides in an interoperablemanner (different mobile nodes can communicate withdifferent cloud vendors) which is excessively challenging.

    Security and Privacy: A drastic hike in cyber crimesand Internet threats [62], mandates restricted securityprovisions for publicly accessible cloud resources, espe-cially storage. At a cursory glance, security is only anissue for requesters, but in a deep view, service providersneed to set up tighter security provisions to protect theirproperties and clients privacy. Ensuring user privacyand security of varied mobile applications running ondifferent mobile devices that utilize heterogeneous cloudresources are the most challenging tasks in MCC. Secu-rity and privacy in MCC become more volatile compareto cloud computing due to the insecure nature of wirelesscommunication medium. Hence, the absence of adaptive,rationalized, and rigorous security arrangements is apotential challenge with catastrophic consequences forservice providers and requesters in MCC.

    Elasticity: Cloud providers confront situations in whichthere are more demands than available resources. Adverseimpact of cloud-resource unavailability and service inter-ruption for MCC clients is more severe than stationaryclients connected to the wall power and fixed network.Frequent suspension of energy-constraint mobile clientsdue to resource scarcity, not only shrinks usefulness ofcloud outsourcing for MCC end-users, but also divestsprivilege of intensive computation anytime, anywherefrom mobile users.Therefore, several challenging tasks (e.g. resource pro-visioning without service interruption, quick disaster re-covery, and high service availability) need to be realizedsince service unavailability and interruption prolong ex-ecution time, increase monitoring overhead, and depletesmartphones local resources, especially battery. Emerg-ing solutions such as Reservoir [63] can be employedto expand and contract cloud resources on demand withmain focus on mobile clients.

    Cloud Policies for Mobile Users: Cloud service providersapply certain policies to restrain service quality to adesired level by imposing specific limitations via theirintermediate applications like Google App Engine bulkloader9. Also, service provisioning, controlling, balanc-ing, and billing are often matched with the requirementsof desktop clients rather than mobile users. Considering

    8http://www.apple.com/icloud/9https://developers.google.com/appengine/docs/python/tools/uploadingdata

    the great differences in wired and wireless communi-cations, disregarding mobility and resource limitationsof mobile devices in design and maintenance of cloudstructures can significantly impact on feasibility of MCCsolutions. Metrics such as bandwidth quota and numberof API calls per day limit clients and impact on userexperience [64]. Hence, it is essential to amend restrictionrules and policies to meet MCC users requirements andrealize intense mobile computing on the go.

    Service Execution and Delivery: Cloud-mobile users,require an efficient monitoring means to measure andevaluate the quality of service they receive. SLA as aformal contract is employed and negotiated in advanceto enforce certain level of quality against a fee. Duringnegotiation phase, the terms of services are defined, whilethe real-time performance is screening during monitoringphase. However, considering MCC dynamism, severalnetwork challenges such as inconsistent bandwidth andpacket delivery ratio, delay, jitter, and network blips ham-per service delivery, raise ambiguity, and increase disputebetween cloud vendors and MCC end-users. Therefore,current static SLA can be fleshed out with more powerful,dynamic representation and monitoring techniques estab-lished in heterogeneous wireless environment for cloud-mobile users.

    MCC Billing: Client mobility in the rapidly changing en-vironment diverges the cloud billing system in MCC fromcloud computing. Designing an appropriate billing systemfor MCC with dynamic heterogeneous environment re-quires considering additional parameters compared withcloud computing. Interception latency, jitter, session re-establishment delay, bandwidth capacity, and quality ofsecurity are examples of major parameters in designinga MCC billing system.Designing an appropriate billing system for cloud-mobileusers that continuously adapts to the heterogeneity anddynamism of MCC environment requires consideringadditional parameters compared with cloud computing.Interception latency, jitter, session re-establishment delay,bandwidth capacity, and quality of security are examplesof major parameters in designing a MCC billing system.

    Review of challenges in MCC highlights that heterogeneityhas remarkable impacts on mobile computation offloading,seamless connectivity, long WAN latency, mobility manage-ment, and vendor/data lock-in which encumber resource-intensive computing on the go and necessitate in-depth anal-ysis. Also, managing billing systems and SLAs in MCCbecome more complex considering heterogeneity among var-ied entities which demand upfront consideration on severalparameters. Hence, mitigating the impact of heterogeneity cansignificantly enhance quality of MCC and extend usability ofmobile devices to more resource-intensive computing areas.Due to its vital influence, we comprehensively analyze rootsof heterogeneity in the following section.

    III. TAXONOMY OF HETEROGENEITY IN MCC

    In this section, we comprehensively study heterogeneity inMCC by analyzing roots and dimensions of heterogeneity.

  • SANAEI et al.: HETEROGENEITY IN MOBILE CLOUD COMPUTING: TAXONOMY AND OPEN CHALLENGES 375

    Fig. 3. Taxonomy of Heterogeneity Roots in MCC.

    We identify heterogeneity roots as hardware, platform, fea-ture, API, and network and devise a taxonomy depicted inFigure 3. We further scrutinize heterogeneity and realize thatheterogeneity in MCC can be classified into two categories,namely vertical and horizontal that is shown in Figure 6.

    A. Heterogeneity Roots in MCC

    Being heterogeneous is neither a new paradigm nor limitedto a specific domain. If we look around we may capture: (i)people speak different languages, but can talk to each otherby using a translator (human or tools) or through a commonlanguage; (ii) all body parts are intrinsically heterogeneous,but cooperate very concisely and consciously to keep thebody fully operational. Similarly, three various components(i.e. mobile devices, clouds, and wireless networks) in MCCshould seamlessly cooperate and communicate with each otherto benefit mankind, however, some causes make the situationdifficult to flourish MCC vision that we examine them asfollows.

    1) Hardware Heterogeneity: Variety of hardware with dif-ferent inward architecture between mobile devices, cloudservers, and network infrastructures (e.g. access points, radiotransceivers, and routers) trigger hardware heterogeneity inMCC.

    In the cloud environment, cloud providers maintain differentinfrastructures and architectural design to enhance quality oftheir service. Servers use X86 CISC (Complex InstructionSet Computer) architecture with two variations of 32-bit and64-bit. Moreover, cloud infrastructures gradually grow moreheterogeneous due to upgrade and replacement. The emerginggrowth of cloud computing will increase the number of ge-ographically distributed cloud nodes that intensifies hardwareheterogeneity among cloud providers.

    The inward architecture and resource specifications ofmobile devices such as processor speed, internal memory,radio specification, and battery capacity vary widely amongdifferent brands and models. The majority of smartphones arebuilt based on 32-bit ARM RISC (Reduced Instruction SetComputer) processor architecture, but there is a large variationin terms of speed, number of cores, and amount of processor

    cache which suits them in specific domains. For instance,among recent Cortext series processors, Cortex-A is ideal forcomputing intensive multi user applications while Cortex-R ismore suitable for real-time data processing scenarios [65]. Inthe near future, the 64-bit ARM processors are expected toincrease the heterogeneity among smartphones [66].

    Hardware and architectural heterogeneity among mobiledevices and cloud servers hamper direct deployment of cloudresources and services in mobile devices and leads to severalproblems as below.

    Imbalanced quality and performance: Variation in com-puting resources and their implementations diversify per-formance and quality of cloud services. Although suchvariation triggers business competition towards improvedservices and avoids service monopoly, it negatively af-fects the business cooperation among cloud providers andcomplicates users decision making in choosing the mostappropriate vendor among available options. To facilitatethe users decision making, a comprehensive study andcomparison among reputed cloud vendors is presented in[67]. Users can compare and contrast the service qualityof each vendor from various aspects.

    Data management and integrity: The increasing numberof very large scale geographically distributed data ware-houses and the non-similarity of data structures compli-cate data management. Integrating huge distributed dataand providing virtually unified storage for mobile usersis becoming more complicated with the ever increasingheterogeneity in MCC [19].

    Interoperation: Data interoperation is the ability of con-necting heterogeneous systems (based on wired or wire-less), understanding geographical information resources,and exchanging data between/across two or more hetero-geneous systems [68]. However, in MCC infrastructurediversity among various clouds on one hand and dissim-ilarities between cloud and mobile infrastructures withexistence of wired against wireless network hardwaresystems on the other hand, have created data integrationand interoperation problems in the absence of interfacesstandards and uniform platforms. For example, when

  • 376 IEEE COMMUNICATIONS SURVEYS & TUTORIALS, VOL. 16, NO. 1, FIRST QUARTER 2014

    Fig. 4. Mirage Approach with Statistically-linked Kernel and App. [71]

    Alice moves from current city to another while utilizing anearby cloud A via her Android mobile device, remotedata (in part or whole) might be migrated to a nearercloud B for the sake of performance. In this situation,if the cloud B fails to connect to the cloud A, if cloudB cannot understand cloud A database informationafter establishing a connection, or fail to exchange datawith cloud A, the Alice computing experience will bedegraded because of data interoperation problem.

    Portability: Codes are not easily movable and executableto/on heterogeneous hosts and the privilege of write oncerun anywhere is divested from developers. For instance,the application written for quad-core processor is notexecutable on dual-core processor due to architecturaland hardware dissimilarities. Similarly, the applicationsdeveloped for the ARM architecture cannot be executedon X86 without code modification and re-configuration.

    Accurate energy estimation: One of the most importantaims of MCC is to conserve mobile battery power. Thus,resource-intensive tasks are offloaded from mobile deviceto the cloud to deliver long-lasting online mobile services.However, before offloading, a decision making systemneeds to determine whether offloading computation cansave energy or not [61]. If the remote execution can saveenergy, then the offloading is performed, otherwise theapplication is either terminated or executed locally. How-ever, estimating energy efficiency of offloading is a non-trivial task due to heterogeneity of wireless technologiesand infrastructures. Metrics such as power and bit-rate ofwireless modems, activating time of interface, activationand deactivation delay of interface, and traffic patterncomplicate accurate energy estimation. Also, varied hard-ware technologies and implementations are different interms of power consumption [69]. Therefore, preciseestimation of required energy for application executionis difficult in different platforms.

    Cloud-mobile application development: Developingcross-platform components (i.e. cloud, mobile, andhybrid) for cloud-mobile application is a complicatedtask. Mobile components should be able to moveamong various smartphones while cloud componentsmust be portable to all cloud infrastructures. Thehybrid components should easily travel among varioussmartphone and cloud platforms.

    To address these problems, Stone et al. [70] proposeOpenCL as a parallel programming standard for heterogeneouscomputing devices. OpenCL enables developers to create

    desktop applications executable on various types of computingelements like multicore CPU, GPU, and other accelerators.The same approach can be maintained in the cloud whichshrinks hardware heterogeneity. Applications developed forcertain architectures using OpenCL can be ported to otherarchitectures with guaranteed correct functionalities. Usingmultiple programming strategies, the application can queryhardware specifications and capabilities of the hosting ma-chine and choose an appropriate kernel to increase correctnessand compatibility. However, developing and managing severalkernels incur extra cost and encumbrance beside occupyinglots of space.

    To dilute the impact of hardware variety in the cloud andsmartphones, Madhavapeddy et al. [71] propose a cloud OScalled Mirage, based on virtualization technology. Mirage runson top of a hypervisor to produce cross-platform applicationsthat are portable to a plethora of mobile devices and cloudservers. In the Mirage, applications are developed on normalOS like Linux and then compiled into a kernel that is ableto run directly on mobile devices and virtual clouds. Figure4 depicts the layered architecture of Mirage that links themicrokernel to an application on top of the hypervisor. Miragemicrokernel leverages Xen hypervisor to lessen the impactof architecture heterogeneity of mobile and PCs on mobileapplications. However, creating, maintaining, and destroyingVM over a smartphone consume local resources and shortenbattery life.

    Huerta-Canepa and Lee [72] create a virtual cloud com-puting platform in the absence of a real cloud to augmentmobile devices using an ad-hoc network of mobile phones. Inthis approach impact of hardware heterogeneity is mitigatedby leveraging smartphones as remote servers instead of usingdesktop machines or cloud servers. Similarly, Marinelli [73]propose a MCC platform composed of Android smartphonescalled Hyrax to lessen the architectural impact of non-ARM(X86) devices. However, using smartphones as cloud providersis hindered by two main challenges. Firstly, giant cloudprocessing resources are exchanged for limited resourcesof smartphones. Secondly, the lack of appropriate securityand billing mechanisms for individual smartphone owners,discourage the sharing of scarce resources. However, mutualbenefits of individual smartphone clients will likely encourageresource sharing in this context.

    2) Platform Heterogeneity: Platform heterogeneity is theavailability of various OSs, programming languages, and datastructures in MCC. Currently, a plethora of heterogeneousmobile OSs such as Googles Android and Apples iOS, eachwith multiple versions, developed to provide rich, compellingservices to end-users. Each platform supports different com-binations of programming language and data structures. Forinstance, Android offers Java language, native code with JNI,and C/C++, while iOS supports Objective-C [17].

    In the context of cloud computing, the most widespreadcloud providers such as Amazon Web Service (AWS)10,Google App Engine11, and Microsoft Azure12 offer different

    10http://aws.amazon.com11https://appengine.google.com/12http://www.windowsazure.com

  • SANAEI et al.: HETEROGENEITY IN MOBILE CLOUD COMPUTING: TAXONOMY AND OPEN CHALLENGES 377

    Fig. 5. Platform Heterogeneity in MCC and Challenges for ApplicationDevelopers.

    OSs, programming languages, and data structures. WindowsAzure supports a multiple choice of languages like .NET,PHP, Ruby, Phyton, and Java [74], whereas Google AppEngine supports Java and its products plus Ruby and Python.AWS supports most developing languages and offers SDK forAndroid and iOS smartphones [75]. Azure is built on the SQL,while the App Engine datastore includes GQL, and AmazonsDynamo system [76] has a different structural design andpartitioning scheme. Cloud providers enforce restrictions indatabases to provide more flexible services.

    Such non-uniformity makes an irksome impediment forcloud-mobile users and application developers. Portability anddata integrity problems are also exacerbated in MCC andporting data to different clouds imposes extra monetary andtemporal costs. The costs may include downloading datafrom the current cloud, performing required modification andconversion, and uploading data to the new cloud. Therefore,mobile users, especially corporate mobile users with bulksensitive data face problems in transferring a huge amountof data between heterogeneous clouds because it is a costly,time consuming, and risky process [77]. Millions of recordsstored in a cloud database cannot be utilized in another cloudwithout compromising privacy and integrity when there is adifference between file systems and encryption techniques.Figure 5 depicts heterogeneous platforms and programmingtechnologies in the cloud and mobile domains, and challengesfor application programmer in selection of a suitable develop-ment environment or a programming language.

    Furthermore, application development is a complex task dueto platform heterogeneity. Developers need to acquire exten-sive knowledge of various mobile and cloud programminglanguages to be able to migrate the application from oneplatform to another. To mitigate the impact of platform hetero-geneity on application portability, several cloud-ready appli-cation transition solutions such as Marmalade and PhoneGapare proposed to automatically generate compatible codes for

    various platforms. Though these approaches reduce the impactof heterogeneity on the application development process, theeffort is not congruous with the definition of portability offeredby the InterNational Committee for Information TechnologyStandards (INCITS) [78] as portability is the capability oftransferring one application from one device to a wide rangeof devices with little or no modification and conversion.

    For MCC applications, we need a unified application envi-ronment similar to Aneka [79], which allows one to developcloud applications and deploy them on multiple cloud infras-tructures such as AWS, Azure, and GoGrid13 in a seamlessmanner. Although Aneka was developed to serve stationaryclients, minor extensions and modifications (depending on theneeds of client applications) can be performed to leverageAneka in mobile environments.

    3) Feature Heterogeneity: Feature heterogeneity in MCC isa result of feature variations in the mobile and cloud domains.Feature heterogeneity in smartphones is due to variation innative features like multimedia, sensing, and interaction tools,visualization area, and networking technologies. For instance,HTC Sensation14 possesses an 8MP camera while BlackBerryCurve 852015 provides 2MP camera. Hence, the developmentprocess and performance of applications on various devicesare different. For example, the bar code reader applicationwhose functionality depends on the quality of captured imagemay not offer similar functionality in HTC Sensation andBlackBerry Curve 8520.

    Differentiation in sensing apparatuses and interaction fea-tures intensify application portability and usability. Recently,sensing tools such as tilting sensors have received noticeableattention from academia and the industry to enhance thequality of interaction in smartphones. In various proposals[80], [81] authors exploit sensing tools such as accelerometerto augment the interaction capabilities of smartphones towardsdelivering rich user experience. However, feature variationand lack of feature upgrading facility in smartphones obscureusability of feature-dependent applications on various devices.

    Moreover, variation in the data visualization area remainsa challenge for developers to design and deliver a commonuser interface for all smartphones. Omitting redundant andless important data according to the preference and contextof individual users is an approach in some proposals likeevent-based semantic image adaptation scheme [82]. Authorsidentify important objects in an image and collect user pref-erence using a simple feedback mechanism. An adaptationalgorithm integrates important objects with user preferencesto produce a suitable version for target mobile devices. Thisapproach not only reduces the volume of presentation databy omitting non-important objects, but also offers a superbfeeling of customization to mobile users.

    Similarly, Chen et al. [83] propose a page split methodto adapt web content for mobile devices. This approach isimplemented inside the mobile browser to adapt the webpage content according to the screen size and semantics ofthe content. However, components like page analysis, content

    13http://www.gogrid.com/14http://www.htc.com/us/products/sensation4g-tmobile/15http://us.blackberry.com/smartphones/blackberrycurve8500/

  • 378 IEEE COMMUNICATIONS SURVEYS & TUTORIALS, VOL. 16, NO. 1, FIRST QUARTER 2014

    detection, page splitting, and index page generation consume ahigh volume of local resources. Programming level solutionssuch as screen support APIs in Android 3.2 provides morecontrol to developers to adapt screen content for differentAndroid devices with varied screen sizes [84].

    Feature heterogeneity in the cloud domain arises from vari-ations in the services (e.g. infrastructure, platform, softwareand security as a service) offered by different vendors. Forexample, Google App Engine (PaaS vendor) and MicrosoftWindows Azure (PaaS) provide dissimilar security features;though they offer paid backup storage service, critical dataprivacy is only offered by Azure [67]. Therefore, users,especially corporate users, face difficulties in moving fromone vendor to another.

    4) API Heterogeneity: Application Programming Interface(API) is an interface supplied by OS vendors or serviceproviders that allows an application written in a high-levellanguage to access specific data or functions from the APIdistributor. Programmers, including mobile application devel-opers, are usually in a hurry, while mobile users are increas-ingly demanding a rich computing experience. Therefore, APIsplay an important role in delivering a rich experience to mobileusers. Mobile platforms such as Android, BlackBerry, and iOSoffer a gigantic number of APIs to assist programmers withdeveloping rich mobile applications without direct access tothe kernel. However, application portability has become anirksome practice for developers due to inward dissimilaritiesof APIs. Tarkoma and Lagerspetz [17] study the role of APIsin mobile devices and argue that The marketplace has a clearneed for a common API that unifies network connectivity,energy awareness, and the user experience.

    Similarly, on the cloud side, the majority of cloud providersdevelop and deploy their own proprietary APIs to describesyntax of specific operations to be utilized by their clients. Adrastic growth in the number of cloud providers has createda huge silo of different APIs that intensifies the difficultyof developing applications due to interpreting semantics ofdata and operations. This outlook, results in API variationintensifying interoperability and portability issues. To mitigatethe impact of API heterogeneity on the cloud, several regula-tory and research unions endeavour to provide common cloudAPIs through, including the European TelecommunicationsStandards Institute Technical Community (ETSI TC Cloud)16,DMTF17, and Cloud Audit18.

    5) Network Heterogeneity: The composition of variouswireless technologies such as Wi-Fi, 3G, and WiMAX makesMCC more complicated compared to cloud computing. Unlikedesktop computers, smartphones utilize wireless communica-tion which is comparatively more intermittent and unreliablewhile offers lower bandwidth. Client mobility among variednetwork environments intensifies communication deficienciesand stems complex issues like signal handover. Inappropriatedecision making during the handover process like (i) lessappropriate selection of network technology among availablecandidates and (ii) transferring the communication link at thewrong time, increases WAN latency and jitter which directly

    16http://www.etsi.org/WebSite/Technologies/GRID CLOUD.aspx17http://www.dmtf.org18http://cloudaudit.org/CloudAudit/Home.html

    degrade the quality of mobile cloud services, especially for de-lay sensitive content and services [85]. Consequently, qualityof cloud-mobile user experience is degraded.

    To tackle these challenges, the concept of seamless con-nectivity among heterogeneous wireless technologies playsa vital role that necessitates reliable intra-system and inter-system handoff schemes [47]. Intra-system handover is aless challenging task due to inward homogeneity of engagingtechnologies, while addressing inter-system handover is morecomplicated due to signal transmission difficulties betweenheterogeneous environments. To realize seamless connectivityacross heterogeneous wireless networks, the burgeoning con-cept of next generation wireless networks [20] with the notionof all IP-based infrastructures is emerging. In the absenceof seamless connectivity, the quality of user experience isdecreased because of decrements in communication qualityand increments in code execution and application responsetime.

    In addition, convergence of wireless and wired networkscreates data bottleneck problem. The problem happens whenlarge data streams from a wired network flood the limitedbandwidth of wireless networks. This congestion not onlyincreases packet drop ratio and prolongs data transfer betweencloud and mobile, but also rises control and maintenanceoperations which demands enhancement in current network ar-chitecture and design for mobile operators. However, networkoperators are employing powerful helping nodes like wall-connected Wi-Fi hotspots to relay data packets and reducethe intensive load from congested cells. The helping nodesbandwidth is not infinite because very large bandwidth cannoteffectively enhance data trafficking and is limited to a certainupper bound [86]. Hence, a large number of such helpingnodes are needed to alleviate ever increasing wireless traffic.Although, MCC imposes overhead on operators network,strategies like Ciscos innovative Next-Generation Hotspot(NGH) [87] and proposals such as SAMI and MOMCC canreduce data traffic and hike the MNOs revenue by increasingmarket share through subscriber retention.

    NGH is an advance approach to provide mobile networkoptimization by offering Wi-Fi as a side mechanism forsecure mobile access of data traffic, while aims to enrich theuser experience. SAMI is an architecture providing service-based arbitrated multi-tier infrastructure for MCC. The majorstrengths of this architecture are the existence of SOA-basedmobile applications and multi-tier infrastructure layer to lever-age infrastructures from three main sources of clouds, MNOs,and MNOs authorized dealers. On top of the infrastructurelayer, an arbitrator layer is designed to classify Services andassign them the suitable resources to them based on severalfactors such as resource requirement, latency, and security. Thesolution not only provides an opportunity to employ mobilenetwork operators in sundry supervisory activities, but alsohikes the MNOs revenue, facilitates development and deploy-ment of service-based platform-neutral mobile applicationsfor cloud-mobile application developers, and enhances qualityof user experience by minimizing latency. MNOs not onlyact as a well-established carriers in heterogeneous wirelessnetworks, but also can perform as an adaptor in two differentedges; wired (connectible to other clouds like Google) and

  • SANAEI et al.: HETEROGENEITY IN MOBILE CLOUD COMPUTING: TAXONOMY AND OPEN CHALLENGES 379

    Fig. 6. Heterogeneity Dimensions in MCC.

    Fig. 7. Vertical and Horizontal Heterogeneity in Three Aspects within MCC: (a) mobile OSs and their versions, (b) cloud services and vendors, and (c)wireless networks and related technologies.

    wireless (connectible to mobile devices). Therefore, MNOscan facilitate data interoperation in MCC.

    In MOMCC, MNOs are employed as a trusted authorityto authorize mobile application programmer, and govern acloud of decentralized mobile users to enhance computingcapabilities of mobile users. Here, MNOs play different rolessuch as UDDI (Universal Description, Discovery and Integra-tion) and security server authenticating and authorizing variedengaged entities such as mobile service host and mobile end-user. Programmers can develop mobile computational servicesand store them in MNO servers to be called by MCC usersfor execution. Although, such operational extension can dras-tically increase MNOs data revenues, but capital investmentin infrastructure and architecture is unavoidable.

    B. Heterogeneity dimensions in MCC

    Analysing roots of heterogeneity in MCC results significantdifferentiation in silo of mobile devices, cloud, and wirelessnetworks. Thus, we describe and taxonomize heterogeneitydimensions in MCC into two categories of vertical and hor-izontal. The proposed taxonomy depicted in Figure 6 showshow three underlying MCC components are influenced by twodimensions of heterogeneity. Figure 7 shows three examplesof vertical and horizontal heterogeneity in MCC.

    1) Vertical Heterogeneity: When differentiation is within asingle type of mobile OS, cloud service, or wireless networkit is named vertical heterogeneity.

    Mobile Devices: Among mobile devices, vertical het-erogeneity appears within a similar family of products.Different flavors of the OSs offer some unique featuresand services that are not compatible with other versions.The vertical oval shape in Figure 7(a) shows verticalheterogeneity within different flavors of Android OS.Android 4.0.3 offers social, calendar, and visual voicemail APIs which are totally new compared to Android3.x [88]. Similarly, in various BlackBerry mobile prod-ucts, different features and hardware specifications aredeployed that prevent the application portability amongdevices from the same manufacturer. Moreover, depre-cating programming elements by OS vendors such asGoogle19 and Apple20, and discouraging mobile program-mers from using such elements further highlights verticalheterogeneity. Although utilizing deprecated methods iscurrently possible, developers require employing extramechanisms to ensure compatibility among various OSversions, which cannot satisfy portability principles de-scribed by INCITS [78]. Therefore, the application de-veloped for an OS version and deployed in one specificproduct may not be portable to the same family ofproducts with different versions of the same OS with noor less configuration and modification.

    19http://developer.android.com/reference/java/lang/Deprecated.html20http://developer.apple.com/library/ios/#documentation/uikit/reference/UIDevice

    Class/DeprecationAppendix/AppendixADeprecatedAPI.html

  • 380 IEEE COMMUNICATIONS SURVEYS & TUTORIALS, VOL. 16, NO. 1, FIRST QUARTER 2014

    Clouds: In the cloud, vertical heterogeneity occurs withina single type of clouds that provides similar services,e.g. IaaS (Infrastructure as a Service) or PaaS (Platformas a Service). The vertical oval shape in Figure 7(b)shows vertical heterogeneity within various IaaS servicevendors. Though Amazon EC2 and Rackspace are IaaSclouds, they are built on different pillars: internal infras-tructures, technologies, and business policies. Therefore,demand for switching between these two cloud servicesincurs redundant cost, even though both vendors provideIaaS. It also creates data and application portability issuesand hinders easy code and data migration within a singletype of clouds. Cloud users are forced to adhere to spe-cific cloud service provider(s) [89]. However, standard-ization efforts like the Open Virtualization Format (OVF)[23] are emerging to alleviate problems and facilitate thedeployment of virtual appliances in various clouds.

    Wireless Networks: Among different wireless technolo-gies, horizontal handoff is a well-known phenomenoncaused due to vertical heterogeneity in mobile wirelessenvironments including MCC. In MCC, horizontal hand-off happens in the situations when a cloud-mobile useris moving across heterogeneous access points within asingle type of wireless network to access cloud ser-vices. For instance, this happens when cloud-mobile useris moving between IEEE 802.11a and IEEE 802.11gWLAN, or between CDMA 2000 and WCDMA 3Gtechnologies. In majority of offloading algorithms inMCC, the network characteristics highly influence onoffloading decision [6]. Hence, any change in networkingtechnologies directly impacts on efficiency and effec-tiveness of the offloading decision and overall process.The vertical oval shape in Figure 7(c) shows verticalheterogeneity within various cellular technologies. Datatransmission in cognitive wireless access networks [90]which is configured with a set of different Radio AccessTechnologies (RATs) and Frequencies (F) is an illustriousexample of vertical heterogeneity. When an application ordata is tended to change the environment, the transceivermay need to change RAT and F, just change RAT andmaintain F, or reverse. Ultimately, the user session ismaintained continuously and consistently during mobilityby leveraging horizontal handoff process [47].

    2) Horizontal Heterogeneity: When differentiation isacross different types of mobile OSs, cloud services, orwireless networks it is named horizontal heterogeneity. Mobile devices: Among mobile devices, horizontal het-

    erogeneity appears between different platforms: two ormore OSs (e.g. Android and RIM) or brands (e.g. Sam-sung and Nokia). The horizontal oval shape in Figure 7(a)shows horizontal heterogeneity between different OSs.For instance, the application developed for BlackBerryTorch21 (RIM V6.0) is not executable in Android V3.xproducts.Horizontal heterogeneity is usually more challengingcompared with the vertical heterogeneity. Portability isexacerbated when development of applications such as

    21http://us.blackberry.com/smartphones/blackberrytorch/

    CMH applications is concerned. To develop CMH ap-plications, developers should design the application forthe cloud as well as the mobile side. This developmentprocess must be repeated for various platforms, which isan exasperating effort for the developer [28]. Developersshould consider various mobile platforms, cloud vendorsand supporting programming languages to decide how todevelop the application which is an irksome impediment.

    Clouds: In the cloud, horizontal heterogeneity occursbetween different types of clouds that provide hetero-geneous services, like IaaS and PaaS. The horizontaloval shape in Figure 7(b) shows horizontal heterogeneitybetween various types of cloud services. In a scenariothat some PaaS vendors offer free limited storage, if anew application utilizes such storage that is incidentallycoupled with specific data structure like Google AppEngine22 (the only Google Query Language (GQL)-basedPaaS cloud), such dependency locks the application in thecloud. Hence, porting rapidly growing data to an IaaScloud (for less hosting cost) which is non-GQL-basedIaaS (e.g. SQL-based cloud) is hardly possible and inflictsupfront investment.This type of heterogeneity, similar to the mobile side,is more difficult to address as compared with verticalheterogeneity because of switching difficulties betweenvarious service providers with different patterns, archi-tectures, APIs, and business policies.

    Wireless Networks: Horizontal heterogeneity in wirelessnetworks occurs when a mobile client is travelling acrossvarious networks like cellular and WLAN. Changingnetwork node and supporting mobility, termed verticalhandoff, highlighting a dilemma in horizontal heteroge-neous wireless network, which is a more challenging taskwith presence of different infrastructure. In this situation,signal handoff processes are more difficult than verticalheterogeneity due to the switching process between dif-ferent types of network [47]. Unlike the decision makingalgorithm in vertical handoff that relies on several pa-rameters (like energy efficiency, Received Signal Strength(RSS), accessible bandwidth, security, financial cost, anduser preference), decision in horizontal handoff is madebased on the RSS only [85]. Such increased complexityobliges vertical handoff optimization toward seamlessconnectivity in MCC which will enhance on-demandservices and increase the quality of user experience. Thehorizontal oval shape in Figure 7(c) shows horizontalheterogeneity between various types of networks.

    IV. IMPACTS OF HETEROGENEITY IN MCC

    Variations in smartphones, clouds, and networking tech-nologies breed several opportunities and challenges that arediscussed in this section.

    A. Opportunities

    The opportunities arising from heterogeneity in MCC areexplained as follows:

    22https://developers.google.com/appengine/

  • SANAEI et al.: HETEROGENEITY IN MOBILE CLOUD COMPUTING: TAXONOMY AND OPEN CHALLENGES 381

    1) Business opportunity: One of the positive aspects ofheterogeneity in IT, is the business opportunity that createsnew jobs (e.g. system analyst, application designer, program-mers, and testers) by manufacturing and maintaining multipleversions of a single software for different clients. Market com-petition is increased and client-centric services are stimulated.If challenges are addressed, IT corporates loss business andmany employees become jobless.

    2) Performance Gain: User perceived performance fromonline mobile applications is highly influenced by computingperformance of server and wireless networks in MCC [91].While it is financially impossible to avoid infrastructure het-erogeneity within a single cloud (due to maintenance, update,and technological advancements), cloud service providers usesuch heterogeneity as an opportunity to enhance performanceand cost of their services. Rosenberg and Chiang [92] studytwo clusters of computers with identical mean speed. In onecluster, all CPU speeds are similar while in the other one, het-erogeneous CPUs are utilized. The authors analyze executionperformance of both clusters and mathematically demonstratethat the cluster with heterogeneous CPU speed outperformsanother cluster with homogeneous CPUs. Moreover, becausevaried applications have different architectural preferences,combination of heterogeneous processors with dissimilar ar-chitectural features (e.g., pipeline depth, in-order versus out-of-order execution, and superscalar width) can efficientlymeet application preferences toward better performance [93](further explanation is out of the scope of this paper). Forinstance, Amazon leverages dissimilar processing entities suchas Intel Xeon E550723 and AMD Opteron 2218HE 24 forcreating an instance of VM to fulfill various computingrequirements of different mobile applications with least pos-sible cost. Exploiting heterogeneous computing resources increating VM instances enhances execution performance ofonline applications in MCC [92][94].

    Moreover, researchers and industrialists can leverage ben-efits of heterogeneous communication and networking tech-nologies such as 2G and 3G towards efficient communication.In enterprise organization, running communication-intensivecloud-mobile applications on 3G-ready devices and rest of theapplications on 2G devices can reduce capital and operationalcosts of buying 3G-enabled mobile device and long-lastingbatteries [95]. In academia, researchers [96] study executiontime and cost of code offloading in MCC. They exploitheterogeneous communication technologies to access remotecomputation resources located near/far to/from the mobileusers and could remarkably enhance application performanceand responsiveness by leveraging both 3G and WiFi. Theauthors propose a multi-tiered cloud infrastructure consistof distant clouds and nearby cloudlets aiming to alleviateeffectiveness and efficiency of computation offloading process.They leverage Wi-Fi technology to save energy while commu-nicating with nearby cloudlets and use 3G to access distantgiant clouds. The authors report 32% lower delay and 40%cost-reduction in offloading computation-intensive tasks totwo-tiered cloud with heterogeneous infrastructure compare to

    23http://ark.intel.com/products/37100?wapkw=e550724http://http://products.amd.com/(S(iecvm0y4bbazo4ujjdtjcl55))/pages/

    OpteronCPUDetail.aspx?id=350\&AspxAutoDetectCookieSupport=1

    single-tiered cloud. Thus, heterogeneous co-existence of vari-ous communication technologies can originate a performance-energy trade off which can benefit mobile clients, cloudvendors, and network operators. Future mobile communicationtechnologies will likely enable mobile nodes to negotiate withnetwork infrastructures for optimized communication technol-ogy. Therefore, heterogeneous selection of infrastructures inmobile-cloud environment provides a higher performance andservice range to MCC community.

    3) Enhanced Application Response Time: Reducing cloud-mobile application response time is one of the most importantrequirements of MCC which is likely achievable by enhancedperformance of leveraging heterogeneous resources while out-sourcing computation. Heterogeneous computation hardwarein the cloud datacenters, remarkably decreases computationdelay in server side resulting less cloud-mobile executionlatency and better overall response time. Researchers in [93]explore that leveraging combination of three heterogeneousprocessor architectures can reduce response time violation by12X leading to crisp application response which is criticalin MCC. Therefore, leveraging heterogeneous computing re-sources can increase application responsiveness in MCC.

    4) Cost Efficiency: One of the most critical metrics insuccessful MCC adoption is the cost of utilizing cloud ser-vices by mobile users which includes the amount of nativeresources, energy, and time used as well as monetary costof inter-system communication and computation. Efficientmatch of communication requirements and available wirelesstechnologies, and migrating resource-intensive tasks to high-performance heterogeneous clouds, reduce overall applicationexecution cost. Researchers in [94] observe heterogeneitywithin computing entities in Amazon EC2 for two period in2011-2012 and explore that Amazon EC2 leverages variousprocessors in creating a single VM to reduce costs and achieveefficiency. For example, in large VM instances, heterogeneousCPU models, namely Intel Xeon E5507, E5430, E5645, andAMD Opteron 2218HE and 270 are being used. Experimentalanalysis of CPU, memory, and disk performance of variousVM instances resulted different performance outcomes invaried computation loads. The authors conclude that efficientselection of service instance from pool of heterogeneousinstances, can deliver up to 30% cost saving to Amazonend-users. Therefore, by assuming rich computing capabilitiesin cloud and seamless high bandwidth connectivity betweenmobile and cloud, mobile application responsiveness, localresource consumption, and utilization cost could be enhancedtowards more efficiency.

    B. Challenges

    Several important challenges resulting from, or intensifiedby heterogeneity are explained below.

    1) Application Fragmentation: MCC applications have al-ready been fragmented because of heterogeneity roots ex-plained in section III. For instance, application developed foriPhone cannot run on Android mobile devices. The remedyto this situation is two-folds. Firstly, handling existing het-erogeneity; because generating multiple versions of contentsfor various mobile and cloud platforms is not feasible due

  • 382 IEEE COMMUNICATIONS SURVEYS & TUTORIALS, VOL. 16, NO. 1, FIRST QUARTER 2014

    to the monetary and temporal costs. Secondly, deceleratingfragmentation growth via standardization and common API.Mobile manufacturers endeavour to enhance user experienceby utilizing high-end resources and technologies such as multi-core Samsung Exynos 5 processor25 and the face unlockfeature of Android 4.026. Although these accomplishmentsenrich computing quality, they intensify heterogeneity andimpose extra cost on end-users as well as developers. Portinga platform-dependent application to a new platform leviesmonetary and temporal cost on the user. Similarly, developingmultiple versions of a single application is frustrating anda time consuming practice for developers, that also goesagainst the write once, run anywhere principle. Hence,application portability and interoperability are exacerbated.However, application fragmentation differs in web, online, andnative applications.

    Web applications: In web applications, data and logiclayers are device-agnostic because data storage and codeexecution take place on the web, whereas presentationlayer is naturally device-dependent. Hence, fragmenta-tion in web applications stems from variations in the visu-alization area and screen rendering capabilities of differ-ent mobile devices (excluding feature-dependent compo-nents). Several content adaptation approaches [82], [83],[97] are proposed to identify, extract, and adapt essentialcontents from web pages to the variety of mobile devices.However, successful content adaptation in smartphonesneeds existing issues (such as functional, structural, andsemantical analysis of content, analyzing the screensbuilding blocks, and applying user preferences) to beaddressed.

    Online applications: Similar to web applications, onlineapplications such as cloud-mobile applications [40] andrich mobile applications are distributed according to theclient-server concept. Computing and storage intensivecomponents of cloud-mobile applications are likely ex-ecuted inside cloud resources while native componentsare executed locally [40]. Hence, fragmentation in on-line applications is more severe than web applications.Separating the screen rendering from the presentationlayer is a significant effort [41] in which screen renderingtasks are performed in the cloud where data and logiclayers are located. This approach not only conserves localsmartphone resources, but also adapts screen contentsaccording to the target device which is deemed to al-leviate heterogeneity problems in application fragmenta-tion. In a cross platform cloud-mobile application, cloudcomponents are required to be portable to various cloudvendors, and mobile components should be executableon a multitude of mobile devices.

    Native applications: Unlike web and online applications,native applications are monolithic, meaning they areentirely installed and run locally. Hence, developingcross-platform native applications is comparatively themost expensive and time consuming process. Developing

    25http://www.samsung.com/global/business/semiconductor/minisite/Exynos/index.html

    26http://developer.android.com/sdk/android-4.0-highlights.html

    cross-platform application not only requires developersto acquire programming skills in multiple languages,but also inflicts extra temporal and financial costsdue to redundant work of porting the application tovarious platforms. To have a clear understanding ofwhat portability challenge is, we use a mathematicalmodel as follows.

    If the development process of a mobile application A iscomposed of n phases (e.g. creation, deployment, andtesting) and each phase imposes a differing developmentcost Ci, then:

    CDA =

    n

    i=1

    Ci (1)

    where CDA is the total cost for developing A for theprimary mobile platform and Ci is the cost of developingphase i.

    To generate a cross-platform application executable onm new platforms, developers need to transit the appli-cation A to m new platforms (e.g. Android, iPhone, andBlackBerry) via code regeneration from the scratch (inthe worst case) or partial code conversion/modification.Therefore,

    CTA =m

    j=1

    CTj (2)

    where CTA is the cost of transiting A to m destinationplatforms and CTj is the cost of transiting the applicationto mobile platform j.From (1) and (2), we drive:

    CCA =

    n

    i=1

    Ci +

    m

    j=1

    CTj = CDA + CTA (3)

    where CCA is the total cost of developing a cross-platform application for m+1 platforms.In practice, if the portability problem is addressed, thecost of developing a cross-platform application will beas low as (3) which is the real taste of write once, runanywhere. However, according to the definition of porta-bility by INCITS [78], for cross-platform applications, is feasible as a little modification or conversion cost.Therefore, we will have:

    CCA =

    n

    i=1

    Ci + = CDA + (4)

    According to (4), it is observed that cross-platform solu-tions omit transition cost for m platforms if the applica-tion is deployable and executable on m+1 platforms. Thiscost includes coding charges, electricity, maintenance,time, and sundry charges. Furthermore, if developingcloud components is required, the development processbecomes excessively complicated and costly. To reducethe burden of building cloud-mobile applications, Manju-natha et al. [28] utilize Domain Specific Language (DSL)

  • SANAEI et al.: HETEROGENEITY IN MOBILE CLOUD COMPUTING: TAXONOMY AND OPEN CHALLENGES 383

    Fig. 8. Titanium Cross-Platform Project [98].

    to auto-generate communication interfaces for mobileand cloud target platforms.Moreover, to alleviate the fragmentation problem, in-dustrial toolkits such as Appcelerator Titanium [98],PhoneGap, and Marmalade aim to auto-generate cross-platform mobile applications. Figure 8 depicts the lay-ered architecture of Titanium. However, these toolkitsconvert the source code to the destination platformsby creating an abstraction on top of the source code.Also, these tools cannot be a generic solution for de-veloping cross-platform mobile applications, especiallyfor background processing and complex business logics.Because JavaScript API in PhoneGap which exposesnative functionality to the browsers JavaScript code isa resource-intensive and slow process compared to thenative code [99]. Similarly usability of Titanium Appcel-erator is hindered by newly released mobile platformsAPIs. Implementing new APIs in Titanium middleware isa time consuming process while end-users are not patientenough to wait till the API is implemented in Titanium.In general, usability of these transition solutions is hin-dered by some issues explained below.

    No dynamic alteration: Even though cross-platformtoolkits are likely suitable for business applications, theyare unable to fully alleviate the feature heterogeneity inMCC. Cross-platform tools do not generate customizedcodes for destination platforms, but convert the sourcecode to a new format. For instance, applications devel-oped on traditional mobile devices cannot utilize specialfeatures of contemporary devices like GPS. Similarly,applications which depend on accelerometer functionalityare unusable in a device without a tilting sensor.

    Further enhancements required: Application transitiontoolkits require post-transition enhancements (e.g. mod-ification, testing, and maintenance) to fit the applicationto the target platform [100]. Performing cyclic transition

    and post-transition tasks are complex processes due to thediversity of underlying environments which might takeweeks for an application to perform [101], [102]. Also,there are many environment variables to be configuredbased on the new execution environment.

    2) Data Fragmentation: Successful movement andmachine-understandable data across various devices areone of the most irksome impediments of mobile end-users,especially for platform-dependent data such as messagesand call history. Storing contact list, messages, and personaldata on a mobile device bounds user to the data structureand policies of the mobile platform vendor and locks datain the device. Therefore, transferring data to a devicewith heterogeneous data structure and policies originatesextra temporal and monetary cost for converting data to aformat supported by the new platform, due to portabilityproblem in mobile computing. Furthermore, utilizing thirdparty applications for such conversion compromises userprivacy and security. Yet, a likelihood of data corruptionand mismatch at conversion phase is threatening end-users.High heterogeneity of hardware, platform, and brand amongmobile devices complicate data exchange among multitudeof mobile devices in the absence of common standards andpotability solutions.

    To alleviate this problem, utilizing cloud resources andstoring personal data on the cloud, similar to the iCloud,becomes prevalent. End-users store data on the cloud to benefitfrom the anywhere, anytime, any device principal of MCCand avoid data lock-in in their mobile device. However, thestorage structure of clouds is fragmented due to the variedarchitectural designs, supported programming languages, andpolicies enforced by different cloud vendors [28]. Storing datain the cloud may alleviate data exchange problem betweenheterogeneous devices in vertically heterogeneous dimensionof MCC, but it is more challenging with horizontal heterogene-ity when data are migrating across two different mobile OSs

  • 384 IEEE COMMUNICATIONS SURVEYS & TUTORIALS, VOL. 16, NO. 1, FIRST QUARTER 2014

    Fig. 9. Interoperability in MCC: Collaboration of Inter-Cloud and Mobile-Cloud Systems with Varied Interfaces Provides Interoperability.

    supported by two varied cloud storages based on fragmenteddata structures.

    Furthermore, considering huge data growth in the nearfuture [103], storing whole data in a single warehouse isoften impossible. Heterogeneous storage infrastructures notonly reduce data integrity and consistency, but also make datamanagement an open cloud issue in MCC [19]. Applying asingle access control mechanism for relevant data in variousstorage environments is another challenging task in a heteroge-neous domain such as MCC. Hence, a logical data warehouseis deemed to alleviate the problem by virtually merging thedata from multiple warehouses [104].

    Despite heterogeneity-originated problems, variations indata structures may offer data security and isolation benefitsto the MCC users because of various customized data struc-tures and enforced management policies. Different structuralcharacteristics of cloud storage like architectural schema,cryptography mechanisms, and data compression methods canenhance data security in the cloud.

    3) Interoperability: API Heterogeneity of mobile and cloudsystems beside inward variation in cloud system structureoriginate interoperability as a major challenge in MCC [43].The challenge intensifies vendor lock-in problem and obscuresdata migration and code transition across a multitude of exist-ing processing units. In MCC, providing collaboration amongvarious mobile and cloud processing unites with differentinterfaces is a non-trivial matter. Figure 9 depicts mobile-cloud interoperability across a silo of computing devices andillustrates the inter-cloud collaboration between different cloudproviders as essential requirements in MCC.

    4) Portability: A lack of standards, technologies, and solu-tions to handle heterogeneity in MCC implicitly creates theportability challenge. In the cloud, providers offer variouscomputing services with different structures and programminglanguages. Similarly, smartphone vendors develop variousapproaches and technologies to enhance the quality of theirproducts. Thus, porting an application to varied devices in thefragmented MCC domain becomes more challenging.

    Ideally, data and application should be able to cross a multi-tude of clouds and smartphones with no or little configuration

    and conversion [78]. However, it is almost impractical toport native codes to the cloud and transfer resource-intensivecodes from clouds to the weak smartphones. Therefore, welimit portability in MCC to the ability of (i) migrating cloudcomponents from one cloud to other clouds, (ii) migratingmobile components from one smartphone to other smart-phones, and (iii) migrating data across heterogeneous cloudsand smartphones. Figure 10 depicts portability in MCC.

    5) Developing cost: Developing one application for severalplatforms is a costly process that demands knowledge ofseveral programming languages and enforces redundant designand programming tasks. In the presence of heterogeneity,the market share for a single version of an application isdiminished to a fraction of total customers that decreaserevenue and demotivates individual programmers.

    6) Time lag: In many scenarios, although the financial costof developing a multi-platform application is affordable andwelcomed due to its business opportunity, prolonged applica-tion development process procrastinates service offering to awider community and leads to financial loss.

    7) Application maintenance: When there are multiple ver-sions of a single application, each for a different platform,if one application is enhanced or changed, the modificationsshould be reflected to all versions. Usually a single develop-ment model cannot be employed and extended to differentplatforms, hence, different modification approaches shouldbe undertaken for each platform which is a hectic job fordevelopers.

    8) Communication: The heterogeneity of wireless tech-nologies in MCC created communication problems like signalhandover. Bandwidth variation between wireless and wiredtechnologies is the source of data bottlenecks when hugeamounts of data stream from wired (cloud servers) into a wire-less medium (mobile devices). Hence, continuous, consistentconnectivity and scalable, accessible networking services arenecessary to enhance the quality of mobility and communica-tion between a wide range of mobile devices and clouds.

    9) Security and privacy: Although MCC can enhance thequality of mobile computing and increase the usability ofsmartphones, lack of strict, robust supervision over the wire-

  • SANAEI et al.: HETEROGENEITY IN MOBILE CLOUD COMPUTING: TAXONOMY AND OPEN CHALLENGES 385

    Fig. 10. Portability in MCC: Data should be portable to all cloud and mobile devices. Cloud codes should move between clouds while mobile codes shouldmove between a multitude of mobile devices regardless of the inward heterogeneity of hosting machines.

    less communications and cloud resources utilization [62] sig-nificantly abate trust among cloud users with cloud attachment.Storing confidential information (e.g. banking information,medical records, and social security numbers) in cloud infras-tructures and remote access to them via the Internet and wire-less mediums threaten mobile users in the presence of numer-ous hackers. Therefore, to increase trust among cloud-mobileusers and a secure collaboration process between differentcloud service providers and consumers, strong authentication,authorization, and communication protection are required. Forexample, data migration from one cloud to another (serially)or operation across multiple clouds (simultaneously) should besecured by cloud providers. During communication processes,personal information and personally identifiable informationrequire protection by cloud providers, mobile network opera-tors, and trusted third parties. Identity provisioning and accessmanagement through different environments are a sample ofthe security keys which manifest the necessity of secureintercommunication in MCC.

    V. HETEROGENEITY HANDLING APPROACHESTo avail maximum benefits from heterogeneity and over-

    come its challenges, researchers have leveraged several tech-nologies and approaches like virtualization, middleware, andSOA which are referred to as heterogeneity handling ap-proaches. This Section presents a survey of generic solutionsto handle heterogeneity in mobiles, clouds, and networks.

    A. Virtualization Technology

    Virtualization [105] is one of the cornerstone technologiesof MCC promising to reduce the negative impacts of hardware,feature, and platform heterogeneity. Using the virtualizationapproach, a VM manager (hypervisor) is deployed on top of acloud, mobile, or both to host desired platform(s) in order tocreate a homogeneous execution environment between varioussmartphones and clouds. Mirage is an example effort thatexploits hypervisor in both the cloud and smartphone to buildcross-platform applications regardless of variations in under-lying devices. However, in prior work [106], we showed that

    VM deployment and management impose excessive overheadon resource-constrained mobile devices.

    Moreover, recent application offloading approaches like[10], [11] leverage virtualization technology to offload mobileapplication (entirely or partially) to remote cloud resourcesfor execution. Similarly, efforts like [41] exploit virtualiza-tion technology to separate screen rendering tasks from thepresentation layer and migrate them to the cloud. On topof a VM inside a cloud, a remote server can render screen-related processing tasks and send the result to the device. Theauthors aim to address the feature heterogeneity (screen size)of smartphones using a virtual screen rendering approach.However, virtualization gives rise to several security threatssuch as VM hopping and VM escape [107]. VM hopping isa virtualization threat through which an attacker can exploit aVM and attack other VM(s) on the same host. VM escapes canviolate the security of VMs when an attacker accesses controlover the hypervisor. Therefore, several open challenges suchas VM deployment and management [106] and security estab-lishment [108], [109] sh