Journal of Network and Computer Applications ∎ (∎∎∎∎) ∎∎∎–∎∎∎1 Contents lists available at ScienceDirect 2 3 4 5 6 journal homepage: www.elsevier.com/locate/jnca 7 8 9 Review 10 11 12 13 14 15 Jieyao Liu a,n,1, Ejaz Ahmed a,2, Muhammad Shiraz a,1, Abdullah Gani a,nn,1, 16 b,3 Q1 Rajkumar Buyya , Ahsan Qureshi a,1 17 a 18 Centre for Mobile Cloud Computing Research (C4MCCR), Faculty of Computer Science and Information Technology, University of Malaya, Kuala Lumpur, Malaysia 19 b Department of Computing and Information Systems, The University of Melbourne, Doug McDonell Building, Parkville Campus, Melbourne, 20 VIC 3010, Australia 21 22 23 art ic l e i nf o a b s t r a c t 24 25 Article history: Mobile cloud computing (MCC) enables the development of computational intensive mobile applications 26 Received 1 April 2014 by leveraging the application processing services of computational clouds. Contemporary distributed 27 Received in revised form application processing frameworks use runtime partitioning of elastic applications in which additional 13 July 2014 28 computing resources are occurred in runtime application profiling and partitioning. A number of recent Accepted 15 September 2014 29 studies have highlighted the different aspects of MCC. Current studies, however, have overlooked into 30 the mechanism of application partitioning for MCC. We consider application partitioning to be an Keywords: independent aspect of dynamic computational offloading and therefore we review the current status of 31 Application partitioning application partitioning algorithms (APAs) to identify the issues and challenges. To the best of our 32 Distributed application processing knowledge, this paper is the first to propose a thematic taxonomy for APAs in MCC. The APAs are 33 Algorithm reviewed comprehensively to qualitatively analyze the implications and critical aspects. Furthermore, 34 Mobile cloud computing the APAs are analyzed based on partitioning granularity, partitioning objective, partitioning model, Thematic taxonomy 35 programming language support, presence of a profiler, allocation decision, analysis technique, and 36 annotation. This paper also highlights the issues and challenges in partitioning of elastic application to 37 assist in selecting appropriate research domains and exploring lightweight techniques of distributed 38 application processing in MCC. 39 & 2014 Published by Elsevier Ltd. 40 41 42 Contents 43 44 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 45 2. Background . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 46 2.1. Mobile cloud computing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 47 2.2. Elastic applications for mobile cloud computing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 48 2.3. Partitioning of elastic application for distributed application processing in MCC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 49 3. Application partitioning algorithms for MCC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 50 3.1. Taxonomy of application partitioning algorithms for MCC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 51 3.2. Review of application partitioning algorithms based on the application partitioning models. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 52 3.2.1. Graph-based application partitioning algorithms. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 3.2.2. Linear programming-based application partitioning algorithms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 53 3.2.3. Hybrid application partitioning algorithms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 54 55 56 n 57 Corresponding author. nn Principal corresponding author. 58 E-mail addresses:
[email protected] (J. Liu),
[email protected] (E. Ahmed),
[email protected] (M. Shiraz),
[email protected] (A. Gani), 59
[email protected] (R. Buyya),
[email protected] (A. Qureshi). 60 1 This work is carried out as part of the Mobile Cloud Computing research project funded by the Malaysian Ministry of Higher Education under the University of Malaya 61 High Impact Research Grant with reference UM.C/625/1/HIR/MOE/FCSIT/03. 2 Ejaz Ahmed's research work is funded by the Bright Spark Unit, University of Malaya, Malaysia. 62 3 A research in CLOUDS Lab at The University of Melbourne is funded by theAustralian Research Council (ARC) under its Discovery and Linkage Projects programs. 63 Q2 64 http://dx.doi.org/10.1016/j.jnca.2014.09.009 65 1084-8045/& 2014 Published by Elsevier Ltd. 66 Journal of Network and Computer Applications Application partitioning algorithms in mobile cloud computing: Taxonomy, review and future directions Please cite this article as: Liu J, et al. Application partitioning algorithms in mobile cloud computing: Taxonomy, review and future directions. Journal of Network and Computer Applications (2014), http://dx.doi.org/10.1016/j.jnca.2014.09.009i 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 . 2014). profiler. . . 2010. Mobile cloud computing (MCC) mitigates resources limitations of SMDs by extending the services and resources of rich cloud datacenters. .2014. . . . . . . . . . . http://dx. .org/10. 2004. . 4. . . . Comparison of application partitioning algorithms for MCC by using thematic taxonomy . . 2013a. . . . . . .com). . Section 5 focuses on discussion. . and Platform as a Service (Keller and Rexford. . . . . . . 4. . Liu et al. . . . (2011) highlighted different research domains of MCC and provided an overview of the MCC including the definition. CPU potentials. . . . The key contributions of this paper are the following: (a) proposing a taxonomy for classification of partitioning algorithms for distributed applications processing for mobile cloud computing. . .. . .com/azure/). . . Liu et al. . . . . . Issues and challenges for partitioning of elastic applications in MCC. 2011. . com/ec2/). . . . . . and explains the theoretical aspects of application partitioning and distributed application processing for MCC. . 2012). . . . . 2014. . and annotation. . . Appropriate application partition granularity . . . This makes partitioning of elastic application challenging because the mechanism requires minimal resources utilization and energy consumption cost on mobile devices (Bialek et al. programming language support. 2013b. . .. . . . architecture. . . . . . . . . . . . . . . . elastic applications are partitioned at different levels of granularity for distributed application processing — application partitioning is used to separate the intensive components of the mobile applications which operate independently in the distributed environment. . . . . . Exceptional application partitioning algorithms. . 2009. . . . . . . and the implications and crucial issues of these techniques are analyzed. . . . Recently. . . . . . . . . . Section 6 concludes the paper and suggests the directions for future research. . . . . . . .com. . . . . . Cuervo et al.009i 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 . . . . . . . . . 2008) for providing access to the resources and services of computational clouds. . . . . . allocation decision. . . .. . . . . . .. . . . . . . . . . and applications. . Cloud service providers use different service provisioning models such as Software as a Service (Greschler and Mangan. Prgomet et al. . . . analysis technique. . . 2012). . . 2004. . . . Dinh et al. . . . et al. . and context awareness issues — for accessing cloud services. . . .1. .. . security. . .doi. . 4. . . . . 4. . . 2014. Their findings provide a systematic reference for developers to leverage different migration strategies for seamless application mobility. . . Introduction The development of mobile computing and cloud computing technologies has drastically changed the current perspective on distributed computing. . . . . . 2. . . . .6. . . . . . . . However. applications on the latest generation of SMDs are still overshadowed by battery power. .com/. . . . . MCC leverages the application processing services of computational clouds to resourceweak client devices. . . . . . 2002. . .amazon. . . . . . . Vidyanand.. 2010.. . . . 2009. . . 4. . . . . . . . . . Kumar et al. 11 12 15 15 16 16 16 17 17 17 18 18 A number of recent studies have highlighted the different aspects of MCC (Abolfazli et al. . . . 3. . . . . 2009. . elastic applications. . . and Google AppEngine (http://appengine. . . . . . . . . The paper is organized into the following sections. . . Park et al. . Smart Mobile Devices (SMDs) such as smartphones and tablets Personal Computers (PCs) have become convenient and essential tools of daily life for communication and complicated pervasive mobile applications (Dinh et al. . . .. . . . . . . . . . . . . . . . . . which classifies and compares mobile application frameworks along with the four dimensions of design concerns in application migration. . . . . . . . . . . 2011. (2012) reviewed previous researches on MCC and proposed a taxonomy for key issues in MCC — operational. . Satyanarayanan et al. . . . . . . . . . . . . Giurgiu et al. . . Prodan and Ostermann. . . . . . . . . . . .5. partitioning model. 2014a. . and future trends. Cuervo et al. . . . 2011). gap analysis.b. . . . .com. . . Mobile applications need intensive interactions with other capabilities such as Global Positioning System (GPS) and camera. .. . . . . . . . . . . . . . . 2014b. . 1. . . partitioning objective. . . . . .com). 2009). . . http://office365. . . . . . . . . . . . . .. . . . . reviews current partitioning algorithms based on taxonomy. . . . . distributed application processing has been implemented to leverage the limitations of resources on SMDs by outsourcing the application processing load of mobile device to cloud server nodes entirely (Goyal and Carter. . . . . . . However. . . .onlive. . . We consider application partitioning to be an independent aspect of dynamic computational offloading and therefore we review the current status of application partitioning algorithms (APAs) to identify the issues and challenges. . . . . . . . . . . . . . . . . http://drive. . . . . .. . . . . . . . . . . It also presents an analysis of current APAs based on selected parameters presented in the taxonomy. .2. . .. . . . . . . future trends . . . . . . . .. . . . .. . .. . . . . . . . . . . . http://mail. review and future directions. . . . . . . Diverse design objective for application partitioning. . . .. 2010. 4. . . . . . . . . and (b) analysis of the current techniques based on relevant parameters to identify the issues which impede optimization goals of distributed application processing in MCC. . . . . . . . . . . . . Abebe and Ryan. . . . . . . Therefore. . and the implications and critical aspects of current partitioning algorithms. . .09. . . High software quality requirements for application partitioning . . . . . . . . . . . . . The techniques used are categorized based on thematic taxonomy. Sanaei et al. . . . . microsoft. Developers support for application partitioning . . . . . . . References .. . .1016/j.microsoft. have overlooked into the mechanism of application partitioning for MCC. 2008). . . . . . . . Wei et al. . . . . . . . The similarities and differences of current APAs are compared based on partitioning granularity. . . . . . . . service levels. . . . . . runtime partitioning of elastic applications involves additional computing resources to implement runtime application profiling and solving. Availability of remote services in MCC . . . . . . . . Section 2 discusses the fundamental concepts of cloud computing and MCC. . . . . . . (2013) studied application mobility in pervasive computing. . . . Shiraz et al. . . . . . Fernando et al. . . . Synchronization in distributed deployment of elastic application for MCC . . . . . . . .google. . . Section 4 highlights the issues and challenges in partitioning elastic application for MCC. . . . . . . . . . . Kumar et al. . . . . Giurgiu et al. . . . . . Microsoft Azure (http://www. thus. . . . . . . . end user. . . . . 2010. . . . . . . . . .4. . . . . . 2009)or partially (Bialek et al. . . . . . Infrastructure as a Service (Bhardwaj et al. . . . . . . .. . . . . . . wireless network bandwidth. . it is also impractical to offload the entire application from SMDs to computational clouds (Pathak et al. . . . Journal of Network and Computer Applications (2014). . . . . . . however. . . . . . . . . . SMDs are predicted to be the essential computing devices in the near future with high user expectations for accessing computational intensive applications analogous to the powerful stationary computing machines (Shiraz et al. . . . . . . . . . . 2014). . . . . . . . . and the intrinsic limitations in the mobile computing environment (Shiraz et al. . . 2013b). . . . . . .. . . . . . .. 2004. . . . . . . . . . . . .jnca. . . 2007. . Conclusion and future directions . . . . . . . 6. . . . . . . . . . . . . . . . .. . . . . Yu et al. . . Examples of cloud service providers include Amazon EC2 (http://www. memory capacity. . . . . . and application partitioning for distributed application processing. . gap analysis. . . . . . . . . . Section 3 describes the thematic taxonomy of current APAs. .. . Finally. . . . . . . . . . . . . . Abolfazli et al.J. . . http://www. . 4. . . . Similarly. . Discussion. Current studies. . Lawton. . . . . . . Background This section presents the fundamental concepts of cloud computing and MCC. . . . . . . . . . . . . Application partitioning algorithms in mobile cloud computing: Taxonomy. . Please cite this article as: Liu J. . . . . / Journal of Network and Computer Applications ∎ (∎∎∎∎) ∎∎∎–∎∎∎ 2 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 Q3 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 3. . . . . . 2009. . .google. Gani et al. . . . . .2. . . . . . .4. . . .. . . . . . . . .google. . . . . . .3. . . . 5. . .3. . . MCC is a distributed computing model in which both data storage and data processing happen outside of the mobile device.com/reports/mobile_cloud_applications_and_ services). 2010) and Gmail (http://mail. database.. 2012. Keller and Rexford.jnca. 2004). Bhardwaj et al.. http://dx. Figure 1 shows that MCC is enabled by three major components — SMDs (such as smartphone.. a programming language execution environment. Windows Azure is another cloud computing platform used for building. Rudenko et al. high availability. et al.09.. 2010).google.com).juniperresearch. Ra et al.1016/j. Yeo et al.. Chun et al. 2012. 2012a. Developers develop. EAmbulatory Healthcare System (Rahbar. 2. MCC offers cloud infrastructure and resources to mobile users by delivering various diverse and scalable service models (Greschler and Mangan. Newton et al.microsoft... Manvi and Shyam. The advantages of cloud computing include cost savings. instant messaging. / Journal of Network and Computer Applications ∎ (∎∎∎∎) ∎∎∎–∎∎∎ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 2. and businesses as well as spawn more innovative applications on SMDs (http://www. Kovachev and Klamma. Mobile cloud computing Cloud computing is the centralization of computing resources and services in the powerful cloud datacenters which provide access on demand basis (Armbrust et al. 2012. regardless of time and location. Wang and Li..com). A wide variety of devices such as PCs and laptops are used to access different types of utility programs.amazon. com/research/product/1005283-mobile-cloud-applications/. Mobile users. On the other hand. Amazon EC2 is the central part of Amazon's cloud computing platform in Amazon Web Services (AWS).. AWS Elastic Beanstalk (http://aws. google. Abebe and Ryan. 2004.com/azure/.com/ elasticbeanstalk/).google. are currently using SMDs that have limited processing power as well as resources to execute mobile applications effectively (Shiraz et al.009i 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 . Lawton.. Kovachev and Klamma. 2014) to run mobile application with relatively low-end SMDs. memory augmentation (Abebe and Ryan.html).. EC2 provides virtual machines for the personalized configuration of client users. Chun et al.com).heroku.2014. Mobile cloud applications move the computing processes and data storage away from mobile phones into the cloud.com/azure/).. however. Goraczko et al. and conferencing. (1998) introduced the concept of computational outsourcing to conserve mobile device's energy. 2007. Pedrosa et al. 2004. The successful implementation of cloud computing for stationary computers has motivated leveraging the on-demand services of computational clouds for mitigating resources limitations in SMDs (Shiraz et al. and this was subsequently extended to include remote application execution. Chu et al. mobile learning (m-Learning) (Peters. 2008.amazon.. MHS (Mobile Healthcare Service) system (Li et al.com). Microsoft Office 365 (http://office365.2. The cloud providers offer a computing platform that includes an operating system. 2010. Elastic applications for mobile cloud computing Distributed application processing is an important software level technique for enabling computationally intensive mobile applications on SMDs (Chun and Maniatis. 2010.abiresearch. Application partitioning algorithms in mobile cloud computing: Taxonomy. via services offered by cloud computing providers (http://www. 3G and LTE). Please cite this article as: Liu J. 2010.org/10. google. Prodan and Ostermann.b. Ou et al. and tablet PC). and computational cloud (such as Microsoft Azure and AWS). Yang et al.doi. 2012. and easy scalability. 2009. 2002. microsoft. 2012.. tools or frameworks. 2003). 2001). 2009). advanced wireless technology (such as Wi-Fi. A number of augmentation algorithms have been proposed for alleviating the resources limitations of SMDs — energy augmentation (Cuervo et al.com). 2012. review and future directions. WiMax. 2009. Vidyanand. which include email.J. 2011. 2012..com/ec2/. http://appengine.. Model of mobile cloud computing. calendar. and web server. 2006. and Heroku (http://www. 2010). In distributed application processing. 2012. PDA. Google Apps is similar to Microsoft Office 365 as both offer several cloud-based applications with similar functionalities to traditional office suites. Abebe and Ryan. Journal of Network and Computer Applications (2014). 2008. Gu et al.onlive. microsoft. the resource-intensive components of the Fig. 2011. which they termed as cyber foraging (Satyanarayanan. Onlive is a cloud-based platform which offers gaming services. Google App Engine (http://appengine.. 2008). It is envisaged that MCC will bring new opportunities to mobile users.com/). http://www.http:// www. 2013b). Examples of application development platforms over Internet or Platform as a Service (PaaS) include Microsoft Azure (http://www. com/apps/index1. deploying. 2010. 2007). and OnLive (http://www. 2014. deploy and execute application on the cloud without having to worry about the cost and complexity of buying and managing the required hardware and software. Liu et al.1. 2009).. 1. Examples of utility programs or Software as a Service (SaaS) include Google Apps (http://www.. and application development platforms over the Internet. and application processing augmentation (Cuervo et al.. Wei et al. documents. storage. mobile cloud vendors. MCC has changed the current way of delivering mobile computing and communication 3 services to global mobile users to enjoy seamless global mobile resource sharing and accesses such as electronic commerce (ecommerce) (Yang et al. 2013b).. Windows Azure allows users to build their application using different programming languages. and managing applications through Microsoft's datacenters. Giurgiu et al. The elastic application executes on SMD and the application profiling mechanism evaluates computing resources utilization. Taxonomy of application partitioning algorithms for MCC Figure 3 shows the thematic taxonomy for the classification and comparison of APAs. Application developers determine the local and remote components of the application based on the functionalities and runtime behavior including computation demand. 2014). Ou et al. However. memory storage. et al. elastic application is dynamically partitioned at runtime into separate components with different granularity levels based on the partitioning algorithms policy. data dependency.. and elastic application executes seamlessly and transparently on remote surrogates. 2010). which could either be nearby surrogate (Chun and Maniatis. Runtime computational offloading involves surrogate discovery (Balan et al.. and the application partitioning mechanism. 3.. resource estimation (Levine et al. 2012). environment gives the notion that an entire application is being executed on the local SMD. Computation offloading uses partitioning of the mobile application to separate the operational logic of a mobile application into distinct partitions. In a critical situation when there is insufficient resources on the SMD. Application partitioning algorithms in mobile cloud computing: Taxonomy. It also discusses the advantages and important aspects of current APAs. 2003. The following section explains the fundamental concepts of elastic application. The APAs are compared based on selected parameters presented in the taxonomy. and fast execution. which are capable of operating independently in a distributed environment. processing power. Journal of Network and Computer Applications (2014). the result is returned to the main application running on the SMD. a number of cloud server-based application offloading frameworks have been proposed for outsourcing computational intensive components of the mobile applications to cloud datacenters. and application partitioning (Bialek et al. 2004. The resulting components. while preserving the semantics of the original application (Veda. 2. / Journal of Network and Computer Applications ∎ (∎∎∎∎) ∎∎∎–∎∎∎ 4 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 mobile application are migrated to remote server nodes. the application solvingmechanism is activated to separate the computational intensive components of the application at runtime. 2006). 2012. 3. reducing turnaround time. Application partitioning algorithms for MCC The current APAs for elastic applications use a number of strategies for separating the intensive components of the mobile application. Figure 2 shows the general flow of operations involving duration of the application partitioning and component offloading for MCC. however. Nevertheless. 2013b): ad hoc platform is created by splitting up the distributed platform between SMDs and cloud at runtime.1016/j. 1997. and communication need.J. Flowchart of application partitioning and computational offloading mechanism for MCC. 2011). This section discusses the thematic taxonomy for the classification of current APAs and reviews the algorithms based on the application partitioning model attribute of the taxonomy. 2009) or remote cloud server node (Kumar et al.009i 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 . Distributed application processing enables the execution of computationally intensive applications on SMDs and conserves utilization of the local resources such as memory.. The SMD negotiates with cloud servers for the selection of an appropriate server node and the intensive partition of the application is outsourced to a remote server node for remote processing. 2006). Reddy and Ranjan. Partitions of the elastic application are offloaded adaptively to surrogates for remote execution depending on the different objective functions such as energy saving. Briand and Wieczorek. availability of resources and computing requirements of the mobile application. http://dx. The fundamental attributes of elastic applications are as follows (Shiraz et al. Liu et al... The original source application may or may not be designed. In recent years. battery. implemented and deployed to run on a standalone system. 2002.. in certain cases. The transparent distributed processing Fig. conserving memory and CPU of mobile devices (Kumar and Lu. The classification parameters include Please cite this article as: Liu J. Navimipour et al.3. Computational offloading is performed for achieving different functions including saving energy. Thus.doi..1. and CPU on SMDs. Hence. both application partitioning and computation offloading are parts of the execution framework mechanism. it is important to adopt appropriate procedures for the partitioning of elastic applications which involve minimal computing resources utilization in the establishment of distributed platform at runtime. the offloading cost could exceed the conserved local resources because of the additional resources utilization in partitioning of mobile application and the deployment of distributed application execution platform (Sharifi et al. 2010. Application partitioning is a technique of splitting up the application into separate components.org/10.. Partitioning of elastic application for distributed application processing in MCC The applications which are involved in runtime partitioning are known as elastic applications. 2002). Smit et al.2014. review and future directions. 2. 2007. are distributed to take advantage of the distributed execution platform.09. Cuervo et al..jnca. partitioning algorithms consider the resources constraints and the application's execution patterns. Tilevich and Smaragdakis. Upon successful execution of the remote components of the application. partitioning of elastic application is a pre-phase of computational offloading in the contemporary computational offloading frameworks for MCC. 2007). algorithm efficiency and cost effectiveness (Ou et al. 2006). 2011).. Thematic taxonomy of application partitioning algorithms for distributed application processing in MCC. Jamwal and Iyer. Gu et al. 3.org/10. Chun et al. 2013).. 2009). Improving performance: Partitioning algorithms tend to increase application (Cuervo et al. 2012. Balan et al.. partitioning model. These measurements for performance improvement include throughput (Yang et al. 2003. 2012. Niu et al.. 2013).. Verbelen et al.jnca. Method level partitioning: Partitioning occurs at the method of Hybrid level partitioning: The results of partitioning consist of Please cite this article as: Liu J. 2004.J.. programming language support. Newton et al. Allocation-site level partitioning: Partitioning occurs on the level of allocation site where all the objects at this particular site will be seen as a single unit (Sinha and Kulkarni.. et al.. 2005. 2012. 2006.. 2012. 2012. Chu et al. Journal of Network and Computer Applications (2014). profiler. 2012a). 2004. 2012. Goraczko et al. 2004.2014. 2012. and annotation. 2012b. partitioning granularity. adaptation time and efficacy (Abebe and Ryan. latency (Cuervo et al.. The partitioning granularity attribute of an APA indicates the granularity level for partitioning computational-intensive mobile application. Reducing programmers burden: Low input effort of programmers in developing and partitioning application (Cuervo et al.doi.. http://dx. Kovachev and Klamma.. 2008). 2010). Gu et al. 2014). 2011. Component level partitioning: Partitioning a group of classes which may or may not be coupled for outsourcing to the remote server (Bialek et al.. Ra et al. 2009.09. Smit et al. 2006). Application partitioning algorithms in mobile cloud computing: Taxonomy... 2009. Class level partitioning: Application is partitioned into classes for offloading (Abebe and Ryan. partitioning objective.. Bundle level partitioning: Groups of Java class of applications are partitioned (Giurgiu et al. Object level partitioning: The object of an application is partitioned to prepare for cyber foraging (Tilevich and Smaragdakis. as well as CPU workload (Newton et al. Multi-site offloading: The application is partitioned and distributed among several remote servers (Sinha and Kulkarni. Ou et al. review and future directions.. 2012a. 2012).. 2011... 2003). execution time (Giurgiu et al.. analysis technique. 2010.. 2011.. Jamwal and Iyer. 2012b). 2007). Tilevich and Smaragdakis. Niu et al. their efficiency and effectiveness for particular measurement (s). Liu et al.. 2005). 2012. Yang et al. Smit et al.. 2009)... Task level partitioning: Application is partitioned according to task (Wang and Li. 2010. 2011). The partitioning objectives are achieved by partitioned and distributed (Yang et al. Current APAs implement the following granularity levels for application partitioning: Module level partitioning: The entire module of the application is different granularity (Abebe and Ryan. Pedrosa et al. Reducing memory constraints: Partitioning algorithms tend to alleviate the problem of memory restriction on SMDs (Abebe and Ryan... 2004. Reducing network overhead: Partitioning algorithms incur low network overhead for computation offloading (Abebe and Ryan. 2012.. Balan et al. Kovachev and Klamma. Giurgiu et al. Thread level partitioning: Partitioning occurs at the threads of an application (Chun et al. Yang et al. allocation decision..1016/j.. Chu et al. 2006. 2004. 2012). / Journal of Network and Computer Applications ∎ (∎∎∎∎) ∎∎∎–∎∎∎ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 5 Fig. 2012. Chu et al. The partitioning objective is represented by the objective function for application partitioning and distributed application processing. 2014). Verbelen et al..009i 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 . 2012.. 2011. Newton et al. .. Graph-based application partitioning algorithms Generally.. 2006. Newton et al.. Ou et al. communication Please cite this article as: Liu J. Ra et al.2. 2004. Sinha and Kulkarni. 2008. 2012. Ou et al.... Wang and Li. Abebe and Ryan. 2011. where the decision is made before execution (Bialek et al. The allocation decision attribute indicates the decision-making policy of the APAs in allocating components in a local or a remote server. Yang et al. The analysis technique attribute of an APA is the technique used for the identification of dependency relationships between the components of a mobile application. Chu et al. Goraczko et al. 2006. Yang et al. Abebe and Ryan. 2014).. 2011.. 2013). Chun et al. and (b) manual: annotation is done by the application developers at the design phase. (c) Network profiler: It gathers information on the network environment.. 2009.J.. 2014). 2012. 2007). Jamwal and Iyer. 2012. Bialek et al.. LP model and hybrid model. and. Goraczko et al. partitioning objective. 2012. part of the decision is done during application execution (Giurgiu et al... 2003. Abebe and Ryan. Yang et al. 2012. Kovachev and Klamma. 2004. Sinha and Kulkarni. 2011.. 2010. 2010.2014. The annotation for current APAs can be categorized as (a) automatic: the execution framework implements automatic annotation by using the profiler to collect the relevant information and annotate the relevant component in the application as an indication of availability of partitioning (Giurgiu et al. 2006. 2012a. Giurgiu et al. Goraczko et al. and latency). programming language support. Cuervo et al. 2009. Ou et al. 2011). 2012b. Cuervo et al. Ra et al.. the elements of graph — vertices and edges — are used to represent the parameter or context of an application. 2004). application behavior. and studies the running application's component interaction and subsequent logs (Bialek et al.. Abebe and Ryan.. 2010. 2008. Yang et al. Niu et al. 2012. 2007). 2009.. Verbelen et al.. 2014. a number of partitioning algorithms do not model the application as LP equation or graph. (c) Universal programming language support: The partitioning approach supports a majority of the programming languages (Wang and Li. where the decision is made during runtime (Cuervo et al. 2006. Current APAs use the following profilers: (a) Hardware profiler: It collects the information relevant to the physical hardware or the SMDs such as CPU.. 2012.. 2011. Tilevich and Smaragdakis. 2006.. 2014.. 2009. 2012). 2012. Yang et al. Abebe and Ryan.1. 2010. These include the available resources. 2006. Ou et al. 2006. Nevertheless. Sinha and Kulkarni. The partitioning model attribute shows the type of partitioning model used for modeling the components of mobile application or their capabilities. partitioning model..2. for example. Ra et al.. 2011. 2004. bandwidth. and battery (Giurgiu et al. Ou et al.. Kovachev and Klamma. and data transfer rate (Cuervo et al. 2012a). 2012a.. Newton et al. 2004.... 2004.. 2012. Pedrosa et al. Current APAs implement the following models for application partitioning: (a) Graph-based partitioning model: APAs abstract the entire partitioning process as a graph (Smit et al. Newton et al.. (c) Hybrid partitioning model: APAs combine graph-based model and LP model for implementation of application partitioning (Cuervo et al. Cuervo et al. Kovachev and Klamma. Wang and Li.. Niu et al.... 2005. 2009.b. 2012. Goraczko et al. Abebe and Ryan. 2012. 2013). Chun et al. Programming language support indicates the type of programming language supported by the partitioning approach. 3. 2014. 2011. 2012b. 2008.. Ra et al. 2011. Giurgiu et al.. Verbelen et al. The profiler attribute indicates the type of profiling used by APAs. 2009. 2006. Kovachev and Klamma.. and annotation. RAM. 2012. et al. 2012. Gu et al. 2012.. 2003. 2008. 2004. 2010. 2012... 2012a. 2012. Pedrosa et al. 2009. 2006.jnca. 2009.. Balan et al. Gu et al. and it involves examining the intensity and scope of the components of the elastic application at design time (Bialek et al... Wang and Li. 2007). such algorithms are classified as exceptional APAs (Balan et al. Verbelen et al..org/10. 2012a. receive size. The current APAs were reviewed based on application partitioning model used.... Giurgiu et al. 2004. 2012. Gu et al. Kovachev and Klamma. 2004. 2005.1016/j. 2003. 2010. 2012.09. Balan et al... Tilevich and Smaragdakis. (b) Multiple programming languages support: A partitioning approach that supports multiple programming languages (Yang et al.doi. 2012. 2003.. 2014)..... Allocation decision is represented as (a) online. 2012. Smit et al. Kovachev and Klamma. Wi-Fi/3G/4G/Wi-Max connectivity. Smit et al. and transfer size). 2011. Updating application dynamically: The application is partitioned and updated without shutting down the application and remote servers (Bialek et al. Chun et al. Jamwal and Iyer. Sinha and Kulkarni. Wang and Li.. interdependency between modular structures. Yang et al. throughput..... Niu et al. Tilevich and Smaragdakis. 2012. 2006. 2012... 2003. Newton et al. 2013). 2010.009i 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 ..b. 2008). 2013). 2012. Newton et al... 2004. Verbelen et al. Chu et al. Newton et al. Niu et al. Cuervo et al. Jamwal and Iyer. 2005. and (c) hybrid. Figure 3 shows the three types of application partitioning models used by current partitioning algorithms — graph model. 2004. 2012a. 2008. Review of application partitioning algorithms based on the application partitioning models This section presents a review of the current APAs and discusses their implications and other important aspects based on the different application partitioning models presented in the taxonomy.. Chun et al. Chun et al.. 2012. Verbelen et al. Ou et al.. 2011. / Journal of Network and Computer Applications ∎ (∎∎∎∎) ∎∎∎–∎∎∎ 6 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 Saving energy: A crucial factor in partitioning algorithms in reducing power consumption while prolonging the battery life (Cuervo et al. 2011. Giurgiu et al. 2009. 2006). and code size (Gu et al. 2012.. Balan et al. and (b) dynamic: it involves the runtime profiling. 2012). Abebe and Ryan. 2003. Application partitioning algorithms in mobile cloud computing: Taxonomy. 2010. Smit et al..3 presents the comparison of current APAs based on the classification parameters presented in the taxonomy.. 2012. Chu et al. 2012. Tilevich and Smaragdakis. Jamwal and Iyer. Cuervo et al. 2004. 2011). Goraczko et al. Jamwal and Iyer. The annotation attribute of an APA is the syntactic metadata that is added to the application source code.. Kovachev and Klamma... Abebe and Ryan. Abebe and Ryan.. analysis technique. Pedrosa et al. Section 3. Giurgiu et al. Giurgiu et al. 2009. 2012b... Sinha and Kulkarni.. 2012. 2011. 2009. Current APAs can be classified into graph-based model.. Ra et al. Pedrosa et al. 2009.. Chun et al. 2004... 2011.. 2007. The analysis technique is categorized as (a) static: it is implemented at source level or bytecode level using analysis tools (Abebe and Ryan.. 2011.b.. Pedrosa et al.. Chu et al. Smit et al. Balan et al. 2012. (b) Software profiler: It collects the application information such as accessed data size (send size. Chun et al. data size. 2004. Liu et al. 2005. allocation decision.. 2013). Gu et al. 2007. 3. 2011. 2004. Tilevich and Smaragdakis. Pedrosa et al. Niu et al. Goraczko et al. and hybrid-based model. Niu et al. Yang et al. 2012.... 2012. Gu et al. LP-based model.. 2005. 2009... review and future directions.. 2012. Tilevich and Smaragdakis. 2012. Wang and Li. (b) offline. 2003. 2011..b. Journal of Network and Computer Applications (2014). Chun et al. 2006. performance cost (execution time. therefore.. 2012. 2009. 2004.. 2006. 2011... 2011. 2011. Ra et al. It includes a detailed discussion on the significance and possible values of partitioning granularity. Current APAs use the following programming languages: (a) Single programming language support: The partitioning approach is restricted to a particular programming environment (Bialek et al.. 2004.. where part of the decision is done by a programmer-defined specification or static analysis tool. Gu et al.. 2012. Ou et al. Chu et al.. 2012. (b) Linear Programming (LP) model: APAs formulate linear equations to represent the application partitioning (Yang et al. 2010. http://dx. profiler. computation cost. The decision criterion is based only upon the memory and does not consider other factors. and this makes the annotations explicit.doi. and it is used to distribute Java classes without native states (Gu et al. and it focuses on static partitioning. These solutions. Additional tool support is required for the maintenance activity. The annotation language used in this approach is the Java-based Annotation4. (2004) suggested that annotations can also be specified in a configuration file. The clearly means that the parametric algorithm is useful for determining the necessary user annotations as it treats each unknown as a dummy parameter and it then solves it in the usual way. Giurgiu et al. hence. The algorithm assumes that there is a single mobile device.. Journal of Network and Computer Applications (2014). The algorithm partitions Java classes into groups by using adapted min-cut heuristic techniques to minimize the component interactions among the partitions. there is no restriction that the user annotations should be constant values. Parametric program analysis is used to partition the program. Mobile clients are allowed to autonomously decide which configuration to adopt. (2006) adopted a multi-cost graph model to partition an application and select an execution location for each component of the application. / Journal of Network and Computer Applications ∎ (∎∎∎∎) ∎∎∎–∎∎∎ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 overhead. Programmers need to specify the test input. The programmer has to annotate the dummy parameter that appears in the solution as this can affect the program partitioning decision. however. user annotation is required. Mobile application is modeled to task control flow graph. 2008) is used for task distribution. although the applications were not originally designed for the mobile Please cite this article as: Liu J. using a profiler. Using this algorithm. APAs adopt the graph model for modeling execution states. Obtaining the optimal partitioning decision in graph-based APAs is a Non-deterministic Polynomial-Complete (NPC) problem (Garey and Johnson. several issues such as privacy and provenance need to be considered in advance. Offloading Inference Engine (OLIE) is a Java programpartitioning system for mobile devices. Pedrosa et al. The use of complexity metrics is proposed to enhance prediction of resources usage by the components of the application. however. It allows application developers to annotate the components of the application within the source code. the min-cut heuristic technique could miss better partitioning solutions in its candidate partition plans. to provide cues on the public cloud versus the private cloud.J. and consequently more resources are utilized. for the programmers to balance metric utility with overhead. Smit et al. Liu et al. and memory cost. and metric function. memory requirement of the component. The partitioning approach is based on existing technology. The prediction is made by taking into account relevant properties of individual component input — general purpose and type-specific input. new infrastructure is not required. and a dedicated unconstrained surrogate node to serve as an offloading target. which does not need any language support. The objective is to achieve optimal performance or incur minimal cost of the overall application during execution. 7 basis and share them across many components that accept the same type of data as input. This approach incorporates a distributed module management capability which automatically and dynamically determines when and which application modules should be partitioned and offloaded. The advantages of such algorithms are that they are modular and easily extensible to new user-defined or application-specific input complexity metrics.009i 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 . Besides. This approach does not consider partitioning constraints like CloneCloud (Chun et al. (2012) proposed a novel algorithm for modeling an application as a dependency graph. It is crucial. (2012) proposed a graph partitioning algorithm which models the applications as a component graph.2014. and available memory on the mobile device. Application partitioning algorithms in mobile cloud computing: Taxonomy. 1979). Similar to the Worst Case Execution Time (WCET) (Engblom and Ermedahl.jnca. It is able to reconfigure the current application deployment without interrupting ongoing interaction. complexity metrics. or user inputs.09. Since most of the resource constraints are related to vertex-weights or memory consumption. The algorithm partitions a class graph into candidate partition plans according to the edge-weight. This leads to performance degradation because of the heavy edges and vertices that have to be maintained by such application graphs. it is less visible for maintenance whenever further annotation is needed. whose values vary with different runtime parameter values. and AlfredO framework (Rellermeyer et al. The application is modeled into data flow graph. thus. internal dependency. and also to specify the lightweight metric functions. This approach produces better performance and adaptation. (2012) proposed an approach that optimally partitions a modular application on-the-fly among the cloud and the mobile device based on the device's CPU load. Basically. bandwidth constraint. Bialek et al. The algorithm is also inappropriate for applications with a large number of components since it cannot be scaled to the size of the application graph. which are needed for training of predictors. Partitioning an application graph into a number of disjoint partitions is an important step for identifying the list of classes that are going to be offloaded to remote servers. after moving some partitions of applications from the devices to the cloud.1016/j. data flow. The main advantage is that the algorithm makes it possible for cloud applications to run on mobile devices in a resource-efficient manner. using a class level graph model is relatively less effective in yielding object topologies. 2000). It is also lack of dynamic adaptation process of the computation task between mobile devices and the cloud.org/10. and to make the decision on where to execute the partition result before its execution. Giurgiu et al. the granularity of partitioning is coarse as it is at class level. Application developers are required to annotate the code units to provide cues to the partitioning algorithm. The algorithm does not over-burden the developers as it is possible to define the metrics on a type-specific 4 Note the difference between the general (lower-case a) and specific Java (upper-case A) annotations. Nevertheless. but it is expensive to compute an adaptation decision. each partition satisfies the condition that its weight is less than or equal to the resource availability of the device. In addition. resource requirements. 2003). including Mobile and Immobile annotation. cost models. thus. (2009) proposed a middleware framework which automatically distributes different layers of an application among the devices and the servers while optimizing different parameters such as cost and latency. annotation is expressed as functions of the input parameter vector. 2004). A mobile application is modeled at different granularity levels. et al. The benefit is that development of the application is not affected and no manual migration is required. An appropriate graph model can improve the efficiency of partitioning decision regardless of whether fine-grained or coarse-grained granularity is applied. This approach defines a set of five annotations. network conditions. Developers are also able to test and debug the applications on test inputs. and device constraints. Ou et al. and control flow. whereas optimal partitioning decision is made based on runtime parameter values during execution (Wang and Li. The decision for application partitioning is based on CPU utilization. which include finer granularity adaptation that results in larger number of vertices with highly complex interaction patterns as compared to class graphs. 2011). and selects the best partition plan by comparing the combination metrics. The partitioning approach considers the structure of the application. do not support platform-independent cooperative interaction over an open network. http://dx.. review and future directions. existing applications are partitioned based on low effort input from developers and static code analysis. However.. The optimal application partitioning is dependent on unknown execution count and allocated data size values. In conclusion. 2006). however. which reduces network.. only at the coarsest level in MLKL.8 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 J. Finally.. otherwise. Liu et al. Therefore. 2014). The significant aspect is that bandwidth is considered as an essential manipulating variable in the proposed method which aims to minimize the trade-off of the energy or time savings against transmission costs and delay in MCC environment. The critical aspect is that the paper considers single user mobile computing scenarios. If it is available. (2014) proposed Weighted Object Relational Graphs (WORG) to improve static partitioning while avoid high overhead of dynamic partitioning. Figure 4(a) shows the abstract level flowchart of graph-based model application partitioning. Table 1 shows a summary of the strengths and weaknesses of graph-based APAs based on graph types. 2012). The advantage of implementing LP is that it always produces optimal results for a particular objective function. Following that. Furthermore. 1997).doi. power supply. graph-based APAs minimize the input effort or dispense with the need to make annotation. An efficient manual annotation technique requires programmers effort to balance the metric utility and specify lightweight metric function and also to annotate the dummy parameter. Besides. thus implicitly assuming a perfect isolation in case of concurrent users. If annotation is necessary. Solving LP problems. Jamwal and Iyer (2005) adopted the breakable objects (BoBs) for compile time application partitioning in Java. the first step is to check whether annotation is needed.2. Linear programming-based application partitioning algorithms Linear programming (LP) is a mathematical method for determining a way to achieve the best result such as maximum profit or lowest cost with a list of requirements which are represented as a linear equation in a mathematical model. If annotation is not necessary.. the Single-user Computation Partitioning Problem (SCPP) is considered and the Resource Constrained Multi-user Computation Partitioning Problem (RCMCPP) is then derived from SCPP. in which the devices maintain graph vertices for components within the memory space.09. however. (2012a) investigated the application partitioning problems from the perspective of the application provider by evaluating the constraints on the cloud resources.2. A vertex of HGG is mapped to a configurable subset of objects of a given class instead of mapping it to a single runtime component (object or class). Verbelen et al. the generated partitions are more effective. et al. and thus. Additionally. the partitioning approach demands prior accurate measurements of the application execution and data transfer for each specific setup. http://dx. HGG implements bytecode injection for a profiler to collect information on performance cost. Niu et al. Journal of Network and Computer Applications (2014). memory utilization. After the elements are loaded. energy optimization and combination of both. whether the application is modularized or not modularized. In graph modeling. 2011). and abstraction vertices called cloud-vertices. The WORG combines static analysis and dynamic profiling to optimize the application partitioning.. Application partitioning algorithms in mobile cloud computing: Taxonomy. Ou et al. it requires the programmers to modify the source code of applications.009i 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 . however. must be modularized — loosely coupled and tightly cohesive. namely small application and large-scale applications. and runtime coupling patterns. BoBs are the separable entities of mobile applications. The algorithm mitigates the challenges of interoperability and context-awareness. These annotations. the local and remote calls are initiated based on the prescribed definition. 2011). The critical aspect is that two partitioning algorithms are proposed for two different situations. graph-based APAs are also computationally feasible as finer level adaptation is offered for minimizing the interactions between the component and the partition. application developers are required to determine the components of the application. Yang et al. 2003.2014. memory utilization. which are appropriate for partitioning. for example. Class graph is implemented by two out of ten graph-based APAs — Distributed Abstract Class Graph (Abebe and Ryan. Furthermore. provides more flexibility. it does not consider the execution time metric since it only focus on applications on the cloud. A Hybrid Granularity Graph (HGG) has been proposed to reduce the network overhead (Abebe and Ryan. it will go to next step for graph modeling. are less visible for maintenance. Simulated annealing (SA) algorithm and multilevel graph partitioning (MLKL) are combined into a hybrid partitioning algorithm to address the issue of the randomness of SA. The significant aspect is that a better solution can be found with SA at the coarsest level in shorter time while the extra computation cost remains relatively low. It also offers finer granularity when compared to a class graph. Graph-based APAs also decrease the coupling effect and migration cost for distributed application processing.org/10. and it is useful for solving worst case problems (Gass. the system will continue to check whether the profiler is available in the application. the programmer does the annotation manually. it will gather the relevant information needed by the application. while the remote object coupling and migration costs are also reduced. In addition. 2003). 3. The applications. Formally. for components in remote devices. (2013) proposed a hybrid partitioning algorithm for the allocation of components to server in the computational cloud while minimizing required bandwidth. / Journal of Network and Computer Applications ∎ (∎∎∎∎) ∎∎∎–∎∎∎ devices platform. This work is further extended by including dynamic runtime adaptation to the framework and a programming model based on annotations which aims to minimize the programmers' burden (Verbelen et al. however. Meta-languages are used to annotate the source code of applications before partitioning. 2003) — to reduce the coupling effect. and the performance cost of adaptive offloading (Abebe and Ryan.1016/j. RCMCPP is formulated as a Please cite this article as: Liu J. which are subsequently used to construct runtime graphs. LP is defined as a technique for the optimization of a linear objective function. Instead of creating balanced partitions. Class graph is observed as the most usual implemented graph type by researchers. the partition is first refined with a few runs of SA. Abebe and Ryan (2012) proposed an abstract class graph-based algorithm. graph-based APAs are not suitable for applications with a large number of components due to the high resource overhead which can decrease performance. The algorithm allows the partitioning result on the cloud to be on-loaded back to the client device for utility purpose. often requires a lot of computation time (Niemann and Marwedel. review and future directions. The partitioning logic is applied to the interactive mobile cloud applications which receive input from the sensors of the SMDs. A multilevel graph partitioning algorithm is a novel graph partitioning heuristic.jnca. subject to linear equality and linear inequality constraints. A pre-compiler generates a language-specific code for both local and remote partners. Therefore. The annotation made by the programmer as well as the profiling result are used during graph modeling. it implements automatic partitioning methods instead of manual annotation in distributed application processing. the hybrid partitioning algorithm tends to make sure that no cloud server gets overloaded. Three optimization methods are proposed in which each of them has different objectives with regard to execution time optimization. Additionally. the result of optimization is made available to the inference algorithm such as the solver to make a decision on the partitioning. An automated refactoring process is available to make the application components amenable to partitioning. HGG provides finer level adaptation and more effective object topologies without incurring the computational overheads of an object-level graph (Gu et al. HGG is computationally feasible because it is smaller than an object graph (Abebe and Ryan. 2012) and OLIE (Gu et al. Graph-based APAs might not offer the best partitioning solution. The performance of graph-based APAs is strictly tied to the behavior of an application. Initially. one or more algorithms are used to optimize the graph model. 2012) Class Automated Refactoring (Jamwal and Iyer. et al. 4. (a) Graph-based. 2012) Calling the Cloud (Giurgiu et al.09. 2014) Internal dependency Object relational Component Graph Partitioning (Verbelen et al. and (c) hybrid-based. Table 1 Strengths and weaknesses of graph-based application partitioning algorithms..org/10. Journal of Network and Computer Applications (2014)..009i 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 .. review and future directions. A generic flowchart of application partitioning algorithms for MCC. 2012) Dependency Parametric Analysis (Wang and Li. / Journal of Network and Computer Applications ∎ (∎∎∎∎) ∎∎∎–∎∎∎ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 9 Fig. 2003) Class Adaptive Multi-Constrained Partitioning (Ou et al. 2004) Complexity Prediction (Pedrosa et al. APAs Graph type Partitioning Application (Smit et al... 2012) Consumption graph HGG (Abebe and Ryan. 2013) Strengths Weaknesses Does not affect application development Less visible for maintenance task Does not require manual migration Useful for determining necessary user annotation Demands programmers effort for dummy parameter annotation Demands low input effort from programmers Needs programmers to balance metric utility and specify lightweight metric function Does not need new infrastructure Does not support platform-independent cooperative interaction Lacks of privacy.2014. (b) LP-based.. Liu et al. http://dx. 2005) WORG (Niu et al.doi. 2009) Task control flow Component Data flow OLIE (Gu et al. The proposed partitioning algorithms are beneficial for the application provider to provide optimal application performance when faced with unpredictable number of users. 2006) Multi-cost Dynamic Software Deployment (Giurgiu et al. Application providers can Demands annotation input from application developers apply the Performance-Resource-Load (PRL) model which is obtained by algorithms in the design of a resource provisioning mechanism to achieve cost-efficient utilization of the cloud resources.1016/j...jnca. The PRL model provides an optimal trade-off between Please cite this article as: Liu J. provenance and dynamic adaptation Minimizes component interactions between Might not offer the best partitioning solutions partitions Provides better performance and effective Not suitable for applications with a large number of adaptation components Incurs more resources which can cause performance degradation Makes it possible for an application to run in a Needs modularized applications resource-efficient manner Demands prior accurate measurements Provides finer level adaptation and more Only allowed to migrate partition to the same device effective object topologies Computationally feasible Allows cloud partitioning result to be on-loaded Depends on the behavior of an application back to device Reduces remote object coupling and migration cost Has better interoperability and contextDemands more effort from applicationdevelopers awareness Optimal bandwidth-adaptive partitioning Applied to specific situations Higher probability to reach global optimum MILP problem in order to minimize the total execution time. 2011) Hybrid granularity Distributed Abstract Class Graph (Abebe and Ryan.J. Application partitioning algorithms in mobile cloud computing: Taxonomy. and Mixed Integer Linear Programming (MILP) (Yang et al.009i 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 . 2012. zero-one linear programming (0-1LP) (Sinha and Kulkarni. 2008. The main benefit of the PRL model is that it saves the providers’ operational cost. It ignores the latency and energy consumption in communication. Table 2 shows a summary of the strengths and weaknesses of LP-based APAs based on the LP types. Resource monitoring is performed for adaptive partitioning decision during runtime. (2008) proposed an energy-optimal software partitioning algorithm for heterogeneous multiprocessor systems. resource monitoring. Table 2 shows that researchers prefer ILP based APAs because it is relatively simpler to be implemented. however. the first step is to check whether annotation is needed. (2012) stated that pre-determining a library of methods for the low processor is energy efficient in practice. Partitioning guidelines and proper runtime design principles are provided to enable continuous sensing applications. Wishbone. 2012. 2012a) MILP Incurs high overhead for identifying number of users and resources required MACS (Kovachev and Klamma. wherever necessary. but they can also use remote computing resources transparently. In LP modeling. thus. 2010).org/10. The applications require programmers’ support for annotating the components.. Chun et al. Even though additional tasks are imposed on the low processor. Ra et al.. therefore. Kovachev and Klamma. They tend to extract the important features of graph-based APAs and LP-based APAs in order to improve the performance of APAs. 2009). 2012). Mobile Assistance Using Infrastructure (MAUI) represents the application as a call graph for solving graph optimization using 0– 1LP for application partitioning (Cuervo et al. It is. it gathers the relevant information for application partitioning. it then proceeds to formulate the LP problem. and it also maximizes energy-saving during computation offloading. In conclusion. 2011).2014. If the profiler is available. LP techniques such as Integer Linear Programming (ILP) (Cuervo et al. Yang et al. Verbelen et al. they work optimally to produce the best and more realistic partitioning result. The annotation made by the programmer and the profiling result are useful in formulating the LP problem. review and future directions. and computation offloading. 3. Hybrid application partitioning algorithms The hybrid APAs incorporate the combined features from both the graph-based and LP-based application partitioning techniques. http://dx. It uses a simulation-based approach to obtain accurate results which are more realistic for application partitioning. It optimizes the software partitioning during compilation by formulating it as an ILP problem. Goraczko et al.doi. LP models and formulates the application as a mathematical optimization problem where some or all of the variables are restricted to be integers. It is also responsible for the heavy lifting of adaptive application partitioning. uses WaveScript to describe Please cite this article as: Liu J. The results of the analysis are used to build a database for precomputed partitions of the binary. The algorithm incorporates resource model by considering the time and energy overheads of runtime mode switching. the result of optimization is provided to the inference algorithm to make a decision on the partitioning.3. The algorithm is targeted at loosely coupled multiprocessor systems. 2012b. Nevertheless. An important feature of MAUI is that it utilizes managed codes to reduce the burden on the programmers in dealing with program partitioning. however. The database is used to determine which parts should be offloaded to the cloud. and lightweight as extra profiling.jnca... Needs extra profiling and resource monitoring Needs dynamic job scheduling technique Besides. LP is used to optimize the formulated equations which represent the mobile application optimization problem. Figure 4(b) shows an abstract level flowchart of LP-based model application partitioning. MACS also supports offloading of multiple Android services in one application through the allocation determination from the resource monitor. APAs LP type Strengths Weaknesses RCMCPP (Yang et al. 2009)... MACS uses a dynamic partitioning scheme. 2012a) are implemented to formulate and solve the application optimization equations. it requires dynamic job scheduling technique. CloneCloud models the application as a control flow graph before ILP optimization (Chun et al. Liu et al. It provides finegrained code offloading to optimize energy utilization with minimal burden to the programmer. LP-based APAs are dynamic and lightweight to handle a large number of users. Journal of Network and Computer Applications (2014). It examines the process using an offline static analysis of different running conditions of the process binary on both a target smartphone and the cloud. 2011. It needs to run the analysis again for every newly built application. Newton et al. Goraczko et al.J. In most cases. MAUI enables programmers to produce an initial partitioning of application via annotating the local and remote components of the application. it looks for pre-annotated components for partitioning the application.2. Application partitioning algorithms in mobile cloud computing: Taxonomy.. et al. 2010. 2012) ILP ILP Able to deal with an unpredictable number of users Saves cloud providers' operational cost Dynamic and lightweight Derives accurate result that is closer to reality the application performance and the cost of cloud resources. LP-based APAs demand high overheads for extra profiling and resource monitoring. These elastic applications run as usual mobile applications. it is difficult for ordinary users to customize the application functionality. If annotation is needed.. in order to execute on multiple and heterogeneous devices in a sensor network (Newton et al. it continues to check whether the profiler function is implemented in the application. If there is no profiler. This approach investigates the partitioning of applications across the two processors from an energy efficiency perspective. CloneCloud is effective for static analysis of Java code to dynamically partition applications. A Mobile Augmentation Cloud Services (MACS) middleware had been proposed in order to reduce local execution time and battery power consumption (Kovachev and Klamma. If annotation is not needed..09. / Journal of Network and Computer Applications ∎ (∎∎∎∎) ∎∎∎–∎∎∎ 10 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 Table 2 Strengths and weaknesses of linear programming-based application partitioning algorithms. Wishbone is a profile-based APA which represents an application as a data flow graph of operators. it is an inefficient heuristic for fast computation in task mapping. restricted to the input/ environmental conditions during offline pre-processing. Finally.. It is primarily concerned with high-rate data processing applications which statically minimize a combination of network bandwidth and CPU load during compilation by solving an ILP problem. The algorithm provides a method for analyzing the application components to determine the most efficient placement. which is based on accurate resource monitoring of low processor at runtime. 2012) Improving Energy Efficiency (Ra et al.. while it addresses the problem with task dependencies. MACS enables adaptive extension of Android application execution from a mobile client into the cloud.. 2011). and these also reduce the operational cost of the cloud services.1016/j. and to carry out the task. 2010. such programming model is not robust enough for the dynamics of sensor network environments. Also.. The annotation made by the programmer and the profiling result are useful in formulating the LP equation. yield optimal results . Figure 4(c) shows an abstract level flowchart of hybrid-based model application partitioning.. and this could result in unnecessary overheads of the partitioning approach. Some partitioning algorithms do not model the application as LP equation or graph. These exceptional APAs emphasize either manual or automatic annotation before performing application partitioning. The combination of ILP with data flow graph seems to be the most ideal hybrid APAs. 2012. some make online allocation decision while others need offline pre-processing. 2011) and LP-based model (Kovachev and Klamma. The service model of Wishbone is not adapted to the everchanging processing and energy resources demands of the nodes. If a profiler is present. this partitioning approach is not suitable for the batch computation system where the analysis of large data sets is necessary. 2008. http://dx. it continues to check whether there is profiler in the application. it forces all such objects to be offloaded to the same site. while others incur unnecessary overheads.. it then formulates the application optimization problem into a LP equation. Cuervo et al. Finally. 2011. The mobile device contains at least the user-facing modules such as the user interface.. The framework has better scalability because it is designed on the elastic cloud fabrics. even though these objects are part of different data structures. hybrid APAs do not have the same strengths and weaknesses as the other algorithms. and such algorithms are classified as exceptional APAs. The partitioning algorithm is implemented on the cloud side and the powerful computing resource available ensures that the genetic algorithm is likely to create a global optimal partition. The algorithm does not have the flexibility for re-engineering of the sensor application in runtime failure. Yang et al.1016/j. Sinha and Kulkarni. The generic sequence of operations for hybrid-based model (Yang et al. the optimization result is provided to the inference algorithm to make a decision on the partitioning. Cyber foraging solution (Balan et al. The framework allows finer offloading decision to be made for multi-site data-centric offloading as the partitioning granularity is on the allocation-site level. 2008) Task Wishbone (Newton et al. regardless of the efficient use of the limited network resources.2. Hence.. Newton et al. some hybrid APAs incur low overhead in the analysis technique. they demand relatively higher level of input effort from application developers to produce efficient partitioning solutions. 2012b. et al. Liu et al. Nevertheless. 2011. (2012b) modeled the partitioning of data stream application by using a data flow graph. 2012a). Nevertheless. LP type.. It is different from existing algorithms because it allows dynamic partitioning for a single user and supports sharing of computation requirements among multiple users in the cloud to achieve efficient utilization of the underlying cloud resources. 2012b) Data flow Multi-site Computation Offloading (Sinha and Kulkarni. 2011).009i 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 .J. 2007) is proposed with an adaptive runtime system based on the little languages Vivendi (Bentley. For example. Programmers examine the source code of application Please cite this article as: Liu J. This is because there are two out of six APAs from Table 3 implementing this combination.2014. these algorithms. Goraczko et al. However. Zero–One Linear Programming (0–1LP)... 2009) Data flow Data Stream Application (Yang et al. 2012.jnca. hybrid APAs are targeted at single specific type of computation system. 2009) is a combination of graph-based model (Abebe and Ryan. review and future directions.4. 2011) Object interaction Maximizes energy-saving Enables application to bypass the memory limit of SMDs ILP Requires low overhead due to static analysis Needs offline pre-processing for every newly built application Difficult to customize application functionality ILP Suitable for loosely coupled multiprocessor Ignores latency and energy consumption system Inefficient for fast computation of task mapping ILP Uses the limited network resources Not robust enough for dynamic sensor efficiently environments No flexibility for application re-engineering ILP Has better scalability Unsuitable for batch computation system Likely to converge to the global optimal partition 0–1LP Allows finer offloading decision Incurs unnecessary overhead the interconnection of the application components. Yang et al. and Mixed Integer Linear Programming (MILP). 2012. 3. / Journal of Network and Computer Applications ∎ (∎∎∎∎) ∎∎∎–∎∎∎ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 11 Table 3 Strengths and weaknesses of hybrid application partitioning algorithms.doi.. 2010) Call ILP Reduces programmers burden Demands high overhead due to continuous profiling CloneCloud (Chun et al. 1986). which are used for computation offloading or for co-locate computation with data in order to reduce communication costs. together with their strengths and weaknesses. However. Journal of Network and Computer Applications (2014). Application partitioning algorithms in mobile cloud computing: Taxonomy. Chun et al. The genetic algorithm is used to maximize the throughput of the application. are implemented to solve the formulated optimization problem. APAs Graph type LP type Strengths Weaknesses MAUI (Cuervo et al.. If it is needed. and it also does not consider the battery level of the device. loosely coupled multiprocessor system and data stream system. If no annotation is necessary. Unlike graph-based APAs and LP-based APAs. In hybrid modeling.org/10. similar to the other types of APAs. Exceptional application partitioning algorithms Exceptional APAs do not model the application into a graph or LP equation. which requires an application to be partitioned across multiple locations (Sinha and Kulkarni..09. Table 3 shows a summary of hybrid APAs based on graph type. relevant information will be gathered to carry out the application partitioning. The multi-site and fine-grained partitioning algorithm focuses on offloading data-centric applications such as the image-matching application. Besides. 2011) Control flow Energy-Optimal Software Partitioning (Goraczko et al. device-specific language. it means that the programmers have provided the specifications which contain the annotation and information related to partitioning. and one or more servers. which are implemented using a lower-level. for example.. the first step is to determine whether annotation is needed. If there is no profiler.. LP techniques such as Integer Linear Programming (ILP). Ra et al. Gu et al.2014. class. 2009. 2009. Ou et al. For example. Newton et al. 2012).. it is essential for developers to annotate each component. and degree of automation and create a tactics file.. et al. based on the concept of partitioning applications of J-Orchestra into units of dynamic updates (Tilevich and Smaragdakis. or a single device-independent presentation (S-DI). Tedious and prone to human errors Difficult to customize a device-independent representation for a particular device Needs partitioning guidelines Needs more efficient distribution middleware Lack of automation to infer detailed object migration strategies in response to synchronous events Similar to hybrid APAs. To perform device-specific customization.. 3.. It requires low-effort input from programmers to clearly specify the network location of various hardware and software resources and the corresponding application classes. Kovachev and Klamma. the developers need to add both device-specific and application-specific transformation rules. Each partition needs to be labeled with unique partition name. version number. Liu et al. Refined level granularity requires a highly intensive monitoring mechanism on the SMD at runtime as well as intensive synchronization mechanism between the SMD and the remote servers (Cuervo et al. Balan et al. and specifies how these procedures are combined to produce the partition result. J-Orchestra provides two tools — a profiler and a classifier — in order to ensure correct and efficient partitioning. J-Orchestra provides automatic partitioning for Java programs. 2006). J-Orchestra uses bytecode rewriting to replace method calls with remote method calls as well as direct object references with proxy references.. (d) multi-cost graph: indicates Please cite this article as: Liu J. 2004) Enables transparent partitioning Simplifies and optimizes application updates J-Orchestra (Tilevich and Requires low effort input from programmers Smaragdakis.. (2004) proposed a novel approach for creating dynamically updatable Java applications. 2009)... 2004). Application developers are responsible for defining the specification in a single configuration file which lists all the partitions and the modules that belong to them. 2006. 2012b. When designing the application. Also. A fully developed application is partitioned in accordance to the partitioning requirement specification. Compared with previous techniques on automatic partitioning. Nevertheless. 2011). flexibility. Kosta et al. a single device-dependent implementation (S-DD). 2009. The Java applications are taken as input in bytecode format and partitioned into distributed applications which can be executed on distinct Java Virtual Machines (Tilevich and Smaragdakis. 2003).. (b) data flow graph: represents data dependencies between a number of operations (Giurgiu et al. Table 4 shows a summary of the strengths and weaknesses of the exceptional APAs. called Vivendi. and degree of automation.. Abebe and Ryan.doi. Chun et al.org/10.. and this is tedious and prone to human errors.09. Current APAs implement the following graph models for application partitioning: (a) class graph: describes the structure of a mobile application by showing the classes' dependency (Giurgiu et al. thus. coarser level of granularity causes increase in data transmission overhead between the SMD and the remote servers. and hybrid model. Yang et al. as to whether to provide multiple device-dependent implementations (M-DD). 2006) Excels on generality.jnca. exceptional APAs are also not able to share the similarities and deviations among the algorithms. 3).1016/j. 2003. Newton et al. APAs Strengths Weaknesses Simplifying Cyber Foraging (Balan et al. and the list of classes that belong to the partition. 2012. 2012). / Journal of Network and Computer Applications ∎ (∎∎∎∎) ∎∎∎–∎∎∎ Table 4 Strengths and weaknesses of exceptional application partitioning algorithms. Yang et al. flexibility. The Partitioning Model (PM) attribute shows the type of partitioning model used for modeling the components or capabilities of mobile application (refer to Table 5). 2012a.. The table shows that the most implemented granularity level of partitioning is component. the coarser level of partition granularity will result in simple offloading mechanism (Giurgiu et al. Three different types of application partitioning models are used in current partitioning algorithms — graph model. Journal of Network and Computer Applications (2014).3. 2007). a configurable subset of objects of a given class (Abebe and Ryan. Tilevich and Smaragdakis. This approach enables transparent partitioning and dynamic update of the applications. developers concentrate particularly on how to partition an application into separate components. and the data file of the running instance of the application (Hung et al.. 2010. which contains the function prototype of each procedure which can potentially be executed remotely... The application developers need to create a tactics file for each application. The overhead of coarse granularity level component migration increases the energy consumption cost and the turnaround time of the mobile application in cloud-based application processing. Comparison of application partitioning algorithms for MCC by using thematic taxonomy Table 5 shows a comparison of APAs for MCC based on the parameters presented in the taxonomy (presented in Fig. 2013b). On the other hand.12 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 J. (c) hybrid granularity graph (HGG): represents its vertices in different levels of granularity including object. It simplifies application updates as well as allows optimization of the application and updates performance through the careful choice of partitions. 2012.. Application partitioning algorithms in mobile cloud computing: Taxonomy. 2012. The Partitioning Granularity (PG) attribute of an APA indicates the granularity level of partitioning for computational-intensive mobile application (Table 5). 2009. 2011. The granularity level of the application partitioning affects the complexity of distributed application processing and the overhead of resources utilization in runtime component migration (Shiraz et al... 2007) Easy to learn to create tactics file Needs to create tactics file once for each application Language independent Has for runtime adaptation support Roam (Chu et al.009i 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 . and especially. Annotation mistakes can lead to an inefficient or an incorrect distributed application. Roam offers a novel application framework for developers to build resource-aware seamless applications which can be adapted to heterogeneous devices (Chu et al. review and future directions. the framework for the migration of running instances of the mobile application at runtime involves the cost of additional resources utilization in transmitting the application binary file. Bialek et al. LP model.. 2006. 2006). The existing SGUI toolkit for transforming S-DI components is difficult to use for customizing a device-independent representation for a particular device. Gu et al. J-Orchestra has the advantages on generality. 2004) Allows migration among heterogeneous devices in an effortless manner Dynamic Updates (Bialek et al.. http://dx. The specification includes information on the number of partitions to create and what classes each partition must include. therefore. Newton et al. 2009). 2013). 2012) J-Orchestra (Tilevich and Smaragdakis. (n) Component graph: similar to class graph which describe the dependencies of each application component with the cloud servers (Verbelen et al. 2012a). 2011. 2011). 2012). 2012. however. Java. Tilevich and Smaragdakis.. such algorithms are classified as exceptional APAs. there is increasing expectations for platformneutral programming languages.. PR: Profiler. AN: Annotation. Niu et al. 2004. 2008). Gu et al. (h) Task control flow graph: a program control flow graph whose nodes represent tasks (Wang and Li.. Most APAs support single programming environment. and Partitioning Application supports Java and PHP (Smit et al. C# and Java (Yang et al. 2010). Fortran. 2005. hardware N/A All N/A N/A N/A N/A N/A Software.. Liu et al. CloneCloud supports Virtual Machine (VM) programming environment including Java VM.2 provides detailed discussion on the PM attribute and its possible values.. 2014.. 2012) Dynamic Updates (Bialek et al.. The Linear Programming (LP) attribute of an APA shows that the application is represented as an LP equation.. hardware Network. 2011). Since MILP problems are even more general than ILP problems. 2004.. 2009) CloneCloud (Chun et al. 2004) RCMCPP (Yang et al. Pedrosa et al. ILP is usually implemented in practical situations especially those with bounded variables which is NP-hard. (g) object interaction graph: represents each allocation-site in application as the graph node (Sinha and Kulkarni. 2012. 2003.. Tcl/Tk and Ada (Balan et al. C þ þ. 2012). 2012b. 2004) Complexity Prediction (Pedrosa et al.. Section 3.. (j) call graph: a directed graph that represents calling relationships between methods in a mobile application (Cuervo et al.09. 2006) Automated Refactoring (Jamwal and Iyer.. 2004) Roam (Chu et al. Chu et al. C þ þ. review and future directions.org/10.. Abebe and Ryan. (e) internal dependency graph: used particularly for understanding various dependencies between fields and methods. 2012).Net (Chun et al. A number of partitioning algorithms do not model the application as an LP equation or graph. hardware N/A Software. 2013) or . which supports flow-based programming. 2008) Wishbone (Newton et al. Java. 2010. (l) task graph: similar to a data flow graph. partitioning approaches which support multiple programming languages. 2012.. 2009. The table shows that most APAs focus on single programming environment instead of multiple programming environment. and among methods in a BoB class (Jamwal and Iyer. Kovachev and Klamma.. The table shows that the most implemented partitioning model is graph model which is implemented by ten (10) APAs.. 2011) Distributed Abstract Class Graph (Abebe and Ryan... except that the tasks in a task graph represent larger units of functionality (Goraczko et al.. AD: Allocation Decision.jnca. AT: Analysis Technique. 2012) MAUI (Cuervo et al. 2005) Dynamic Software Deployment (Giurgiu et al. Improving Energy Efficiency which supports major mobile phone platforms such as Windows Phone OS. network All N/A All Software N/A Network. / Journal of Network and Computer Applications ∎ (∎∎∎∎) ∎∎∎–∎∎∎ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 13 Table 5 Comparison of application partitioning algorithms for MCC. 2008. MILP is generally also classified as NP-hard. 2012b)... Application developers demand language-independent partitioning approach that does not restrict them to a single programming environment. (b) Zero–One Linear Programming (0–1LP) involves problems in which the variables are either 0 or 1 (Sinha and Kulkarni. Journal of Network and Computer Applications (2014).009i 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 . 2011) MACS (Kovachev and Klamma.2014. 2014). Similarly. 2014) Graph Partitioning (Verbelen et al. Chun et al.. 2004). 2011. 2013) Component Hybrid Class Class Class Hybrid Bundle Object Task Module Allocation-site Bundle Thread Bundle Component Method Component Component Component Component Module Task Thread Object Component Hybrid Graph Graph Graph Graph Graph Graph Exceptional Graph LP Hybrid Graph Hybrid LP LP Hybrid Graph Exceptional Exceptional Graph Exceptional Hybrid Hybrid Graph Graph Multiple Single Single Single Single Single Single Single Universal N/A Single Single Multiple Single Universal Single Multiple Single Single Single Universal N/A Multiple Single Single Network Software. 2010). (c) Mixed Integer Linear Programming (MILP) involves problems in which only some of the variables are restricted to be integers (Yang et al.. 2004). 2005).. 2012.. hardware Network N/A Online Online Offline Online Online Offline Hybrid Offline Online Online Online Hybrid Online Online Offline Online Offline Offline Online Online Offline Offline Offline Online Hybrid Dynamic Static Dynamic Dynamic Dynamic Dynamic Dynamic Dynamic Dynamic Dynamic Static Dynamic Static Dynamic Dynamic Dynamic Static Dynamic Static Static Static Dynamic Static Static Dynamic Automatic Automatic N/A Manual N/A Manual Automatic Manual Manual Automatic Automatic Automatic Automatic Automatic Manual Manual Manual Manual Manual Manual Manual Automatic Manual N/A Manual Note: PG: Partitioning Granularity. 2011). 2012) Improving Energy Efficiency (Ra et al..Net (Cuervo et al.J. 2011) Calling the Cloud (Giurgiu et al. et al. Android.. These include Data Stream Application. current APAs use the following LP equations: (a) Integer Linear Programming (ILP) — wherein all the variables are integers only — is commonly used in APAs (Cuervo et al.. usually Java (Bialek et al. APAs PG PM PLS PR AD AT AN Data Stream Application (Yang et al.. PLS: Programming Language Support. 2010) Partitioning Application (Smit et al. and Simplifying Cyber Foraging which supports C. Sinha and Kulkarni.. Jamwal and Iyer.. 2012). hardware Software. Verbelen et al.. Ou et al.. 2006). 2009) WORG (Niu et al... 2012.. Verbelen et al. Kovachev and Klamma. 2007) Energy-Optimal Software Partitioning (Goraczko et al.doi. 2007). Objective-Cþ þ . 2006) Parametric Analysis (Wang and Li. Goraczko et al. which includes C þ þ. 2012. 2006. (f) consumption graph: represents the application specification which captures both the application structure and the gathered statistics (Giurgiu et al.. and iOS (Ra et al. There are. 2012b) HGG (Abebe and Ryan. Ada. (k) dependency graph: a directed graph representing dependencies among several nodes (Smit et al. Application partitioning algorithms in mobile cloud computing: Taxonomy. 2012) OLIE (Gu et al. 2006.. that there are several cost types on the edges of a graph (Ou et al... With the rapid development in information and communication technology. The problem of 0–1LP is also classified as NP-hard. Yang et al.1016/j. and Microsoft .. (i) control flow graph: indicates all paths that might be traversed through a mobile application during its execution (Chun et al.... There are some partitioning approaches which support a wide variety of programming languages such as Parametric Analysis which supports GCC programming that includes C. Dalvik VM. Giurgiu et al... Please cite this article as: Liu J. Objective-C. http://dx. 2011). 2011. PM: Partitioning Model. The Programming Language Support (PLS) attribute indicates the type of programming language supported by current APAs (refer to Table 5). and Go (Wang and Li. 2003) Adaptive Multi-Constrained Partitioning (Ou et al. (m) object relation graph: which can precisely extract the real structure of applications with low complexity (Niu et al. 2012) Simplifying Cyber Foraging (Balan et al. 2012a) Multi-site Computation Offloading (Sinha and Kulkarni. hardware Network. hardware N/A software. CloneCloud (Chun et al. 2009. especially. For instance.. Ou et al. Dynamic Software Deployment (Giurgiu et al. hardware with network (Chun et al. However.. Goraczko et al. automatic annotation incurs additional resources utilization cost on the local mobile device. The table shows that most of the APAs implement dynamic AT. Yang et al. 2012. Smit et al. Improving Energy Efficiency (Ra et al. 2010) profile the program behavior into their execution framework. 2012). 2011.. Liu et al.. Balan et al. Balan et al. However. Kovachev and Klamma.. Wang and Li. Source code level analysis is easier to understand and run. 2012a. 2011.. therefore. 2012) and Automated Refactoring (Jamwal and Iyer. Wang and Li.. the online AD incurs computational overhead on the SMD because additional computing resources of SMDs are utilized. dynamic AT involves thorough analysis for gathering context information which is used for making optimal partitioning decision. automatic annotation contributes to the seamless execution of elastic application in the distributed MCC environment... APAs which implement hardware profiler are discussed in this paper. 2012.. 2012) and J-Orchestra (Tilevich and Smaragdakis... 2012a) focus on improving performance. From studied algorithms (Cuervo et al. Static AT is an easy-to-use method as it uses the existing libraries for source code analysis... Calling the Cloud (Giurgiu et al. Annotation (AN) attribute of an APA represents the syntactic metadata that is added to the application source code (refer to Table 5).... Yang et al. 2010. Goraczko et al.. Goraczko et al. the AD results in relatively more optimal solution compared to offline AD. 2012. 2010. At runtime.. Programmers annotate the components of the elastic application at different granularity levels. the value of the PR attribute is represented as ‘N/A’ in the corresponding cell of the table. and modules. 2009... implementation of network profiler is discussed. CloneCloud (Chun et al. software. Adaptive MultiConstrained Partitioning (Ou et al. 2006. 2011) profiles the performance cost for optimal partitioning decision. Besides. Abebe and Ryan. 2007).doi... such as object. Data Stream Application (Yang et al. 2004). The following section discusses APAs which implement software profiler. Jamwal and Iyer. 2008). OLIE (Gu et al. 2012) profiles the type of network. 2009) focus on collecting CPU information as they aims at developing lightweight algorithms. Offline AD.. parameters. partitioning algorithms tend to be more adaptive and context-aware. but it produces less optimal partitioning decisions. 2012). 2006) uses only a software profiler. The Analysis Technique (AT) attribute of an APA represents the technique used in identifying the dependency relationships between components in mobile applications (refer to Table 5). Abebe and Ryan. 2007). 2004. programmers are able to annotate the application manually to achieve optimal application partitioning if the programmers have good knowledge of the particular application. 2012. et al. WORG (Niu et al.. Gu et al.. This approach is usually better than multiple objective partitioning approach if only a single parameter or attribute is used for comparison. For example. Ou et al. 2012. Static AT is lightweight and incurs minimal overhead on the SMDs in application partitioning. Giurgiu et al. 2006) concentrate on the interdependency of classes and the modular structure of the application. Profiling is achieved by instrumenting either the program source code or its binary executable form using a tool called a profiler.. the usage of particular instructions. Pedrosa et al. Ra et al. methods. 2006) as they emphasize on RAM utilization.. OLIE (Gu et al. Similarly. 2012b) and WORG (Niu et al. Giurgiu et al.2014. 2011.. 2005) do not use the profiling mechanism... Journal of Network and Computer Applications (2014). 2008. Some existing partitioning algorithms focus on a single objective function to perform application partitioning (Bialek et al. 2011) profiles the transfer rate between SMDs and clouds. on the other hand. In addition. The table shows that most of the APAs need manual annotation. manual annotation by programmers demands relatively higher input effort for examining the intensity and scope of the components of the mobile application at the design stage. 2012. A single objective partitioning is always relatively easier to be implemented. 2012a. 2011. 2005. It requires input from programmers with different levels of effort. 2006). for example.. 2006. Chu et al. whereas bytecode level analysis involves analyzing system classes which are difficult to understand. review and future directions. / Journal of Network and Computer Applications ∎ (∎∎∎∎) ∎∎∎–∎∎∎ The Profiler (PR) attribute indicates the type of profiling used by APA (refer to Table 5). Ou et al. 2011.. 2009). Pedrosa et al.. 2004. Distributed Abstract Class Graph (Abebe and Ryan. incurs lower overhead of the SMDs.. 2011. Ra et al.jnca. the size of the accessed data and the code size are profiled in these partitioning algorithms (Giurgiu et al. HGG (Abebe and Ryan. 2004. Ou et al. 2012. Table 6 shows a comparison of current APAs based on their partitioning objectives. 2003) and MAUI (Cuervo et al. Smit et al. 2005. Most of the partitioning algorithms which have been reviewed implement a profiler to gather information from at least two among three categories (hardware..org/10. The annotation of the component of the mobile application is used as an input for the application profiler to make the decision on application partitioning at runtime. or software with network (Gu et al... 2010. However.009i 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 .. Profiling information is commonly used in optimizing application partitioning. other partitioning algorithm profilers collect the information from all three categories (Cuervo et al. 2012)... 2012. Yang et al. On the other hand. Complexity Prediction (Pedrosa et al. 2008. Ou et al. Yang et al. The Allocation Decision (AD) attribute of an APA indicates its decision-making policy for allocating components in a local or a remote server (refer to Table 5). The Not Applicable (N/A) value in Table 5 indicates that the APA does not implement the corresponding attribute.. 2014) profiles the execution time for data transfer.14 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 J. Abebe and Ryan. Nevertheless. Tilevich and Smaragdakis. Sinha and Kulkarni. Chu et al. 2006). 2009. The HGG (Abebe and Ryan.. J-Orchestra (Tilevich and Smaragdakis. 2009). On the other hand. and RCMCPP (Yang et al.. 2011) and Wishbone (Newton et al. Chun et al... we observed that profiling bandwidth condition is essential. there are partitioning algorithms which do not implement profiler in their execution framework (Bialek et al.09. Application partitioning algorithms in mobile cloud computing: Taxonomy. Newton et al. The hybrid AD provides the solution to this issue of balancing the pros and cons of online/offline ADs. Abebe and Ryan. 2012. The profiling mechanism is a form of dynamic program analysis to measure. 2014) implements only a network profiler. the memory or the time complexity of an application.. 2003).. Dynamic Software Deployment (Giurgiu et al. Giurgiu et al.. 2004. 2009. 2006. Automatic annotation greatly reduces the efforts of application developers in annotating the intensive components of the application at the design stage.. 2008) focus on energy-saving. Dynamic AT requires minimal effort from the programmers for analyzing the mobile application.b. Kovachev and Klamma.. 2012. or frequency and duration of function calls. The table shows that all types of profilers are used by most of the APAs. Compared to static AT. Similarly. RAM and battery life (Yang et al. 2009. network) — hardware with software (Giurgiu et al.b. classes.1016/j. 2012a. and Dynamic Software Deployment (Giurgiu et al. 2006. 2004.. as technology advances. Kovachev and Klamma.. 2003) profiles the network latency. 2012) as they need longer battery life. Please cite this article as: Liu J. Newton et al. 2003.. Finally.. The table shows that most of the APAs use online AD and offline AD... http://dx.. Nevertheless. 2011) attempts to reduce the network overhead while Parametric Analysis (Wang and Li. 2004. On the other hand. On the other hand. variables. Sinha and Kulkarni.. RCMCPP collects all the hardware information about the device or SMDs including CPU. 2010. 2012. 2012. and Energy-Optimal Software Partitioning (Goraczko et al. in MCC. Many algorithms set multiple objectives for application partitioning and component offloading (Cuervo et al. 2011. Jamwal and Iyer. 2012b). Newton et al.. while Data Stream Application (Yang et al. memory status is profiled for these algorithms (Giurgiu et al. 2012a). Nevertheless. Abebe and Ryan. 2009). energy saving is given the top priority by some APAs (Cuervo et al. 2012b).. 2004) Roam (Chu et al.. It is challenging to implement simultaneous execution of mobile applications because parallel distributed processing of mobile application necessitates close synchronization between the mobile device and the remote server node. Application partitioning algorithms in mobile cloud computing: Taxonomy. RPB: Reducing Programmers Burden. improving performance.009i 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 .. 2012) Improving Energy Efficiency (Ra et al. The issue of self-deadlocks must also be seriously addressed because the thread identity is not maintained when the flow of control is moved over the network. Some APAs currently implement a mechanism for distributed processing of intensive mobile applications in which the execution on the mobile application is blocked unless the results are returned from the remote server node (Cuervo et al. J-Orchestra addresses this issue in such a way that an update of the parent class will also be directly reflected on all the derived classes. For instance. MO: Multi-site Offloading.. this segment never returns because the current head of the distributed thread t3 applies for the monitor owned by t1. 4. APAs RNO SE IP RMC RPB UAD MO Data Stream Application (Yang et al. 2006) Automated Refactoring (Jamwal and Iyer. 2010) Partitioning Application (Smit et al. An intensive synchronization mechanism is required to ensure the consistency of application execution in the distributed environment. Chun et al.. On the other hand. For example. http://dx.. Roam (Chu et al.. Giurgiu et al. 2011) Distributed Abstract Class Graph (Abebe and Ryan. Wang and Li.. Fahringer and Jugravu. a distributed application processing platform is established and the application processing load of mobile devices is outsourced to the cloud server.. it is challenging to use RPC and RMI in the distributed MCC environment... 2011) Calling the Cloud (Giurgiu et al. If the distributed thread t3 enters the method first2() which is synchronized again on the same object. et al. 2014) Graph Partitioning (Verbelen et al. Dynamic Software Deployment (Giurgiu et al. then a deadlock will occur. Chun et al. 2012) J-Orchestra (Tilevich and Smaragdakis...doi... 2004) RCMCPP (Yang et al. 2006). Similarly. 4. The deadlocks can be prevented by using a standardized Inter Process Communication Mechanism (IPC) such as Remote Method Invocation (RMI) or Remote Procedure Call (RPC) rather than finer component migration at runtime.. However.. SE: Saving Energy. 2005). RMC: Reducing Memory Constraints. Self-deadlock occurs if t1 becomes inactive.. and reducing the programmers' burden. we assume that thread t1 represents the current head segment and owns the monitor of method first(). Tilevich and Smaragdakis. it is crucial to ensure regular semantics for the distributed processing of mobile application which is partitioned at runtime (Tilevich and Smaragdakis. 2013) No Yes Yes No No No Yes No No No No No No No No No No No No No No No Yes No No No No Yes No No No Yes No Yes No No Yes Yes Yes Yes Yes No No No Yes No Yes No Yes Yes Yes No Yes No Yes No No No No Yes No No Yes Yes No Yes No No Yes No No No Yes Yes No No No Yes Yes No No No No No No No No No No No No No No No No No No No No No No No No No No Yes No Yes No No No No Yes No No Yes Yes No Yes No Yes No No No Yes No No No No No No No No No No No No No No No No No Yes No No No No No No No No No No No No No No No No No Yes No No No No No No No No No No No No No No Note: RNO: Reducing Network Overhead. IP: Improving Performance. which will help in selecting the appropriate domain for future research and exploring lightweight techniques for distributed application processing in MCC.jnca.. whereas the ‘No’ value of the attribute shows that partitioning algorithm does not implement the corresponding objective function. 2006.. In Table 6. 2014) concerns about energy saving and improving the performance by minimizing the execution time. 2012a) Multi-site Computation Offloading (Sinha and Kulkarni. Journal of Network and Computer Applications (2014). 2009) CloneCloud (Chun et al. 2006. 2012) is aimed at reducing network overhead and saving energy. 2009. However. 2008) Wishbone (Newton et al. 2013). 2010. 2009) WORG (Niu et al. Giurgiu et al. 2011). 2007) Energy-Optimal Software Partitioning (Goraczko et al. but the partitions of the application which are Please cite this article as: Liu J. / Journal of Network and Computer Applications ∎ (∎∎∎∎) ∎∎∎–∎∎∎ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 15 Table 6 Comparison of application partitioning algorithms based on the partitioning objective.. This thread t1 is currently waiting for its successor segment t2 to return from the remote invocation. and calls another remote method second() which creates a new head segment t2. 2009.. 2012b) HGG (Abebe and Ryan. Table 6 shows that most of the APAs focus on saving SMDs’ energy and improving the performance of application..J. WORG (Niu et al.. During dynamic class update of an application. 2004) Complexity Prediction (Pedrosa et al. Distributed Abstract Class Graph (Abebe and Ryan.1016/j.org/10. 2005) Dynamic Software Deployment (Giurgiu et al.. saving energy. Issues and challenges for partitioning of elastic applications in MCC This section highlights the issues and challenges in partitioning of elastic applications for MCC... 2012) Dynamic Updates (Bialek et al. review and future directions. 2004) is aimed at improving performance. the child object instance requires the parent object to be instantiated in its partition.1. Similarly. UAD: Updating Application Dynamically. 2012). 2010. 2004). Verbelen et al..2014. When the parent and the child classes are separated. ThinkAir proposed an application execution framework by implementing simultaneous execution of the offloaded partitions of the application to the cloud server node (Kosta et al. Liu et al. and reducing memory constraints.... elastic application is partitioned and the intensive components of the application are offloaded to cloud server nodes (Cuervo et al. As a result. 2006) Parametric Analysis (Wang and Li. Ou et al.. 2012)aims at reducing network overhead.09. 2012) MAUI (Cuervo et al. Besides. 2003) Adaptive Multi-Constrained Partitioning (Ou et al. Synchronization in distributed deployment of elastic application for MCC In distributed application processing. 2011. 2012) OLIE (Gu et al. 2012) Simplifying Cyber Foraging (Balan et al. inheritance across partitions is introduced (Bialek et al. 2004. the ‘Yes’ value of the attribute shows that the APA implements the corresponding objective function. 2011) MACS (Kovachev and Klamma. The object level makes the decision to offload all objects of a particular class (Tilevich and Smaragdakis. sustaining the consistency of each component of the application is challenging in elastic applications. Sinha and Kulkarni. For instance. Hence. it is difficult to represent each application as an object graph for partitioning because the number of objects is potentially unbounded. Kovachev and Klamma. energy consuming.. which might result in poor user experiences (Cuervo et al. Finer partitioning granularity requires a highly intensive monitoring mechanism on the SMD at runtime as well as an intensive synchronization mechanism between the SMD and the remote servers (Cuervo et al. Ra et al. class unloading. it is necessary to verify and validate the object identity and the compatibility for security and performance purposes. Gu et al.. and reduced the developmental time and cost. 2012). Dynamic update of applications should not compromise the correctness of security and semantics as well as stability of the updated applications.... 2012).org/10. Finer level of partitioning involves overhead for ensuring the consistency of an application before and after partitioning.. The annotation is used as an input for the application profiler to make decision on application partitioning at runtime. 2013b. object identity. A synchronization mechanism is used for exchanging the active state information of the mobile application between the mobile device and the cloud server node (Hung et al. it is always unclear on how to generate the code to support distributed application processing... 2012a.. 2006. 2004. 2012). 2013b). Newton et al. and when to offload application partitions for remote execution (Giurgiu et al. Classes loaded by a different class loader cannot refer to each other unless they are loaded by the same parent class loader (Bialek et al. 2003.. The distributed execution platform of elastic application for MCC necessitates lightweight and fault-tolerant algorithms for application partitioning and distributed application processing. Such frameworks focus on which component of the application to partition. 2004. Ou et al.... thereby prolonging battery life and enhancing performance. Secondly. However. 2012.. Kosta et al.. 2004). Chu et al. 2008.2014. Using objects as the granularity of partitioning presents problems. Smit et al. ThinkAir provides a library together with the compiler support to make the programmer's job more straightforward (Kosta et al.. The compiler annotates any method being considered for offloading with @Remote. Hence.. thus making this an energy-starving mechanism (Tilevich and Smaragdakis. Jamwal and Iyer. directly. 2012). as well as addressing application optimization problems. in which case. Yang et al. 2010.. High software quality requirements for application partitioning Current partitioning algorithms are designed to offload intensive parts of a mobile application from the mobile device to the cloud. http://dx.4. 2012. However. Tilevich and Smaragdakis. dynamic update requires some level of indirection so that method calls are directed to the correct objects and classes. 2005. The ExecutionController detects remotely tagged methods and handles associated profiling.16 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 J. 2012). Cuervo et al.. but the consistency of distributed partitions is still an addressable issue (Abebe and Ryan. 2012. Developers support for application partitioning Current software engineering practices for application development require minimum efforts from application developers. 2006. 2006). 2012. 2010.. it is challenging to implement optimal granularity level for application partitioning which involves minimal communication overhead for component offloading and lightweight mechanism for the establishment and management of distributed platforms. Goraczko et al.. Distributed application processing frameworks use different objective functions for partitioning of elastic applications.. Newton et al.. Kosta et al. 2012. 2006. 2003.. Hence. Abebe and Ryan. it is challenging to automate the application partitioning mechanism by eliminating the additional effort to annotate the components at different granularity levels. state transfer. In addition. 2009). The granularity level of the application partitioning can affect the complexity of distributed application processing and the resources utilization overheads in runtime component migration (Shiraz et al. 2012. Consistency is another concern for finer level of granularity in the distributed execution of mobile application.. This has contributed greatly to the rapid development of software. 2010. 2009... and this is not desirable for long-term applications whose structures might change over time.009i 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 . As this level of indirection is required for every updatable class.doi. Balan et al. It is possible to introduce cyclic class dependencies. and this involves examining the intensity and scope of the components of the elastic application. running the applications remotely is affected by the network bandwidth. 2011. Firstly.. 2006. 2011. 2003.3. Application partitioning algorithms in mobile cloud computing: Taxonomy. 2006. 2012). Gu et al. Journal of Network and Computer Applications (2014). and performance overhead. high software quality is required for addressing the aforementioned issue. Chun et al. et al. Appropriate application partition granularity The granularity of application partitioning for distributed application processing is important for an optimal partitioning algorithm design. 4. 4. to achieve continuous synchronization. Therefore. indeterminable statically. some runtime performance degradation will occur for all updatable classes. 2009. Hence. Whenever the bytecode of a class is replaced dynamically by a new bytecode. Programmers annotate the components of the elastic application as a local or a remote component at different granularity levels (Cuervo et al. 2007). Liu et al. 4.. Current algorithms for application partitioning do not consider the changes in the network bandwidth or latency.jnca. 2003. Chun et al. Manual annotation of the application is implemented by the application developers at the design stage.. The phenomenon becomes complicated when an abstract parent class cannot be instantiated. Newton et al. Gu et al.. Cuervo et al. 2012.2. which can impact the optimization of the partitioning algorithm.. Ou et al.1016/j. 2006). Abebe and Ryan. Smit et al. 2006. 2004. decision-making and communication with the application server Please cite this article as: Liu J. 2010. This leads to the creation of a hierarchy of class loaders.09. Tilevich and Smaragdakis. A number of issues are also associated with the different granularity levels of application partitioning such as compatibility.. 2012. current APAs require involvement of the application developers for annotating the scope and intensity of the elastic application (Bialek et al.. Besides. Giurgiu et al.. all program entities that refer either to this class or any of its instances have to be updated accordingly. Tilevich and Smaragdakis.b. Current APAs focus on the optimization of partitioning mechanism. and variations in the user's inputs during interactions. review and future directions. 2009. Pedrosa et al. 2010. 2011. A distributed synchronization mechanism requires the maintenance of identical semantics for all the partitions of the applications. Partitioning of elastic/adaptive applications requires continuous profiling mechanism which is time critical. Kovachev and Klamma. and moreover. / Journal of Network and Computer Applications ∎ (∎∎∎∎) ∎∎∎–∎∎∎ delegated to remote server node will require the parent class to be instantiated before the child class (Tilevich and Smaragdakis. the wireless medium is accessed continuously. Giurgiu et al. sudden increase of the CPU load on the mobile device. and resources intensive (Shiraz et al. Wang and Li. and rich user experience in the distributed deployment of elastic application for MCC. On the other hand. it is a challenge to use an optimal synchronization mechanism for ensuring consistency in distributed partitions of the mobile applications. 2012). 2011). The decision to perform application partitioning involves selecting appropriate partitioning granularity. the mobile device must be kept in the active state. even if a well-suited object graph that is amenable to partitioning is given. Gu et al. whereas others still need manual annotation by application developers. I/O performance. effort is still required to classify the intensive components of the applications in a formal syntax in the source file. Some algorithms are restricted to the use of a single programming language.. Chun et al. 2006. the performance of graph-based APAs is strictly tied to the behavior of an application.. The issue is even more challenging for finer granularity level partitioning as compared to coarse granularity level partitioning. Newton et al. 2012a. It also considers the objective functions of the network conditions..b. Goraczko et al. Availability of remote services in MCC The mobile nature of SMDs demands the availability of services even when there is disruption of remote services.. The cloud server is required to handle the unpredictable and varying loads from multiple mobile client applications. 2009).6. Chun et al.. CPU power. In addition. However. It is challenging to make the decision to determine the elastic application components. Therefore. and the location of any cached content. CPU requirements. 2009. It is challenging to design algorithms with diverse objective functions for application partitioning and component offloading such as offline usability.. 2012. On the other hand. 2012.. 2012). which is a split browser and resides on both Kindle Fire and EC2. This is a resource-intensive effort. 2006. Using the offloading technique. Because scheduling the computation across the client and clouds is not flexible and does not have an adaptive mechanism. 2011. improving performance.09. Hence. Abebe and Ryan. 2004. gap analysis. Gu et al.. Abebe and Ryan.. Different cloud computing services provide different privacy guarantees. 2010. The traditional computational offloading algorithms focus on single-site offloading. Cuervo et al.b.. graph-based APAs are not suitable for applications with a large number of components due to the high resource overhead which can decrease performance.. 2010. 2012.. the main problem encountered is in partitioning the computational load of the intensive mobile application between the mobile device and the cloud. / Journal of Network and Computer Applications ∎ (∎∎∎∎) ∎∎∎–∎∎∎ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 without the developer having to be aware of the details of partitioning and distributed application processing. 2011. http://dx.2014. Kovachev and Klamma. and other important aspects are evaluated. APAs have been developed to achieve diverse objectives such as reducing network overhead. 2012). Chun et al. review and future directions. Ou et al. 2005. Newton et al. Amazon released a cloudaccelerated web browser. In addition.. 2004.. Yang et al.1016/j. for example. or latency expectations.. graphbased APAs might not offer the best partitioning solution. the annotations are less visible for maintenance. 2012. Journal of Network and Computer Applications (2014). and the hybrid model which adopts the graph model combined with LP-based modeling. Giurgiu et al.J.. 2009. reducing programmers’ burden. a challenging aspect of such applications is providing uniform services and ensuring the QoS for a large number of mobile users. An efficient manual annotation technique requires programmers effort to balance the metric utility and specify lightweight metric function. many APAs do not consider the application partitioning problem from the perspective of the service provider (Yang et al.. 2011. the components of an application can have different privacy/security demands. Even though existing APAs enable adaptive execution of the mobile application between the mobile devices and the server. Wang and Li. Yang et al. Balan et al. save energy (Abebe and Ryan. reducing memory constraints. For graph-based APAs. 2012. 2012. whereas others use dynamic analysis technique for application partitioning. 2011. Tilevich and Smaragdakis.... 2012. 2012b). 2009. 2012a.jnca. Thus. software. Chu et al. 2004. Kovachev and Klamma. and multi-site offloading. whether the application is modularized or not modularized. 2011. Jamwal and Iyer. 2012. Newton et al.. Kovachev and Klamma. As shown in Table 6. It reviewed the state-of-the-art APAs in distributed application processing to identify the main issues and challenges. battery power conservation and seamless application execution. 2012. 2012. which can be detected by the compiler to generate the necessary remotable method wrappers. while others incorporate offline allocation decision. and find the appropriate destination server node. However. 2012. 2012). and it can adversely affect the turnaround time of the offloaded partitions of the application (Giurgiu et al. Discussion.. The static analysis technique is used in some algorithms. Sinha and Kulkarni. 2012. Kovachev and Klamma. such algorithms do not provide any solution on how to utilize the elastic resources in the clouds to make the applications scalable in situations where a large number of mobile users need to be served. For instance. known as Silk. rich user experiences. Giurgiu et al.. Some algorithms use automatic annotation for defining the scope of the components of the mobile application. Whereas the APAs 17 identify the intensive components and create application partitions at runtime (Chu et al. and hardware profilers.. Chu et al. 2008. the contemporary frameworks for computational offloading implement multi-site offloading to ensure seamless application execution by reducing the turnaround time of the application (Sinha and Kulkarni.. Giurgiu et al.. current APAs are designed to reduce network overhead (Abebe and Ryan. 2012. 2011.org/10.009i 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 . Pedrosa et al. However. Application partitioning algorithms in mobile cloud computing: Taxonomy. 2012. Ou et al. Smit et al.. 2011. 4. 2004. 2012b). Ra et al.5. the LP optimization problem for application partitioning. Wang and Li. Kosta et al. page complexity. 2012. 4. 2009).. 2010. 2003. which include network. as well as improve performance (Yang et al.. Ra et al. Such algorithms require the selection of the remote server node on an ad hoc basis. Goraczko et al. dynamically updating application. 5. 2012. Besides. where an application is divided between the mobile device and a single remote server (Bialek et al. 2007). Pedrosa et al. 2012. Silk dynamically partitions the application and determines the distribution of computational load between the SMD and the remote Amazon EC2. it further complicates the decision on application partitioning and component offloading. 2006. Some APAs have features for online allocation decision. Giurgiu et al. future trends This paper distinguishes application partitioning as an independent aspect of the dynamic computational offloading technique for MCC. saving energy. 2008). I/O needs. Computational offloading frameworks consider several objective functions on mobile devices for making the decision on application partitioning and component offloading (Kumar et al.doi. or network latency (Smit et al. which need to be offloaded at runtime... Cuervo et al.. other efforts in facilitating large-scale cloud applications are not appropriate in the MCC applications. Current application partitioning techniques. 2004. Diverse design objective for application partitioning Computation offloading is implemented as a significant application layer solution for enabling computationally intensive mobile applications on SMDs. The wide variations and dynamic changes in network conditions and local resources availability must also be addressed. it is challenging to minimize the developmental efforts for the classification of the components of the application as local or remote. whereas others use multi-programming language support. et al. LP-based APAs need dynamic scheduling technique to produce optimal partition results.. Current APAs adopt different models for modeling elastic applications such as graph-based model. 2004. Liu et al.. APAs incorporate different types of profilers. categorized based on thematic taxonomy.. 2012. The dynamic scheduling Please cite this article as: Liu J. We compared the similarities and differences among the current APAs based on relevant parameters. However... Cuervo et al. Smit et al. 2012). USENIX Association Berkeley. In: Proceedings of the eighth international conference on mobile systems. Yang HI. LP-based APAs. and categorized them according to the respective taxonomies. Bhardwaj S. we have studied. In: Proceedings of the 11th Asia-Pacific software engineering conference (APSEC 2004). Sanaei Z. Commun ACM 1986. loosely coupled multiprocessor system and data stream system while exceptional APAs emphasize either manual or automatic annotation before performing application partitioning which demand relatively higher level of input effort from application developers. 2010. In: Proceedings of the 13th international middleware conference (Middleware'12). 2012. URL 〈http://www. 2007. USA.doi. and services (MobiSys'07). Courier Dover Publications. In doing so. APAs are being adopted widely to alleviate the resource limitations for optimal execution of elastic application on SMDs in MCC. 2011. Fox A. Current APAs focus on separating the intensive components of the application while profiling the availability of resources on local mobile device and do not consider the availability of services on the computational clouds. Flinn J. 59–66. Kurakake S. Programming pearls: little languages. Balasubramanian A. 394–414. 2002.85:2755–69.43:84–102. 272–85. The limited resources in SMDs necessitate minimal utilization of resources in application partitioning and distributed application processing for MCC. Jain S. Griffith R. Google. Ryan C. MAUI: making smartphones last longer with code offload. Gani A.69:209–26. URL 〈http://www. Sanaei Z. Wang P. 2004. Herbsleb J. Computers and intractability: a guide to the theory of npcompleteness. GMail. ACM. 2010.com〉. The computational offloading techniques do not incorporate a fault-tolerant mechanism to cope with partition loss. Concurr Comput: Pract Exp 2005. USA.13:1587–611. Mobile cloud computing: a survey. com/elasticbeanstalk/〉. and practices that are currently implemented by researchers in MCC. Wolman A. J Syst Softw 2012. Application partitioning algorithms in mobile cloud computing: Taxonomy. AR Report. 2009. 2009. Satyanarayanan M. and network latency. CO. computation cost. execution time. the dynamic application profiling mechanism in application partitioning is time-consuming.16:337–68. APAs are essential for an efficient application offloading from application on SMD to cloud server due to the impracticality of executing the whole application on SMDs or on cloud servers. Urbana. Springer-Verlag. Jugravu A. USA. A hybrid granularity graph for improving adaptive application partitioning efficacy in mobile computing environments. We then reviewed and compared 26 APAs. Maniatis P. Freeman & Co. Saint-Emilion. p. hybrid APAs. Bentley J. Resource estimation in software engineering. Saroiu S. Similarly. 2013. p. Google.009i 67 68 69 70 71 72 73 74 75 76 Q4 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 . Amazon Web Services Elastic Beanstalk. Yang LT.09. Song H. before APAs can truly become the preferred solution for distributed application processing in MCC. Ryan C. Liu et al.jnca. Rich mobile applications: genesis. Clonecloud: elastic execution between mobile device and cloud. applications. 2013. 87–92. this paper not only provides a comprehensive classification framework and serves as a tool for understanding APAs. We have developed taxonomies for MCC to classify the common partitioning approaches and to provide a basis for comparison of APAs. and open challenges. Google AppEngine. Patti A. but also serves as a reference for future works. Ermedahl A. Ahmed E. IEEE. Conclusion and future directions In this paper. A view of cloud computing. URL: 〈http://www. Abolfazli S. San Juan. Montreal. Cloud computing: a study of infrastructure as a service (IAAS). Sookhak M. The contexts include data size. Balan RK. creating the next generation of APAs for enabling mobile application to extract maximum utility out of the volumes of available resources on SMD. each other — graph-based APAs. Partitioning of java applications to support dynamic updates. Monte Verita. Simplifying cyber foraging for mobile devices. 83–102.1016/j. FL. and exceptional APAs. workload. Gani A. 6. We have enumerated several characteristics where the partitioning model of APAs shares similarities with. A survey of mobile cloud computing: architecture. Schneider JG. we are also able to discover the shortcomings and identify gaps in the current APAs through the characterization.17:1005–25.2:60–3. Katagiri M. Orlando. 301–14. Chun BG. In: Proceedings of the fifth international conference on mobile systems. Future Gener Comput Syst 2012. Wieczorek I. / Journal of Network and Computer Applications ∎ (∎∎∎∎) ∎∎∎–∎∎∎ technique demands high overheads for extra profiling and resource monitoring which further overuses the available resources on SMDs.google. Jain L. Roam: a seamless application framework. Giurgiu I. Loke SW. Abolfazli S. Wong C. ACM. ACM. J Netw Comput Appl 2014. energy starving. Xia F. Switzerland.google.com〉. In: Proceedings of the 21st IEEE real-time systems symposium (RTSS'00). JavaSymphony: a new programming paradigm to control and synchronize locality. Engblom J. the mobile nature of SMDs and the intrinsic limitations in the wireless access medium of MCC require adaptive and context-aware APAs. Furthermore. p. The latest version of SMDs is still constrained by the intrinsic limitation while current APAs need to interact with the SMDs' capabilities such as GPS and camera. . Fahringer T. Mobile cloud applications. Sinnamohideen S.com/ research/product/1005283-mobile-cloud-applications/〉. 2013. Nayeem GM. Briand LC. and open issues. Cloud-based augmentation for mobile devices: motivation. URL: 〈http://mail.org/10. ACM.amazon. 2011. Int J Eng Inf Technol 2010.html〉. Niyato D. Google. Modeling complex flows for worst-case execution time analysis. Rahayu W. http://dx. Dinh HT. et al. In: Proceedings of the eighth workshop on hot topics in operating systems (HotOS'09). for example. Maniatis P. Joseph AD. adaptability. Juric D. URL 〈http://aws. Hence. In: Proceedings of the ACM/IFIP/ USENIX 10th international conference on middleware (Middleware'09). Commun ACM 2010. Amazon. Wirel Commun Mob Comput 2011. Salzburg. strategies. These indicate that the future directions can be taken by researchers in this area. p. and resources intensive. Konwinski A. 616–23. Khan S. Amazon. Adaptive application offloading using distributed abstract class graphs in mobile environments. Busan.18 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 J. Cho D. IL. p. Journal of Network and Computer Applications (2014). Puerto Rico. Bialek R. France. Chu H. Abebe E. parallelism and load balancing for parallel and distributed computing. 2013. Satyanarayanan M. John Wiley & Sons. IEEE. Korea.com〉. Naik M. Chandra R.. Riva O. applications.40:345–62. Please cite this article as: Liu J. com/ec2/〉. adaptive and context-aware APAs with minimal resource utilization on SMDs are required for implementing optimal distributed application processing in MCC. 2013. 2013. et al. Jul E.29:84–106. 163–74. J Syst Softw 2004. . and services (MobiSys'10). and approaches. p. In: Proceedings of the 10th IEEE international symposium on network computing and applications (NCA'11). In: Proceedings of the sixth conference on computer systems (EuroSys'11). memory cost. A review on interworking and mobility techniques for seamless connectivity in mobile cloud computing. Canada. Shiraz M. In: Proceedings of the 10th workshop on ACM SIGOPS European workshop (EW'02). Garey MR. IEEE. Calling the cloud: enabling mobile phones as interfaces to cloud applications. URL: 〈http://drive. and are different from. network bandwidth. review and future directions. Dynamic software deployment from clouds to mobile devices. Jin Y. 49–62. Linear programming: methods and applications. Alonso G.53:50–8. Thus. IEEE Commun Surv Tutor 2014a. Katz R. Fernando N. Lee C.29:711–21. characterized. Google. W. Inc. Cambridge. Springer-Verlag. Gergle D. MA. taxonomies. Ihm S. Both hybrid APAs and exceptional APAs are not guaranteed to produce the optimal partitioning solution in most cases.com/apps/index1. 2002.H. p.google. Addressing these problems creates the potential for APAs to evolve and become lightweight and thus. 8–16. USA. p. Balan R. et al. In conclusion. APAs enable the elastic applications optimally utilizing the resources available on SMDs while enhancing the performance of the application. Giurgiu I. and context-awareness. Nevertheless.2014. Armbrust M. URL: 〈http://appengine. we have gained an insight into the partitioning models. Riva O. References Abebe E. Breckenridge. Similarly. This is because hybrid APAs target at single specific type of computation system.amazon. Buyya R. taxonomy. J Netw Comput Appl 2014b. Chun B-G.abiresearch. 2010. more further works need to be undertaken in terms of lightness. Austria. Amazon Elastic Compute Cloud (EC2). Whaiduzzaman M. Alonso G. QC. p. Gani A. Cuervo E. Google Drive. and categorized several aspects of APAs in MCC. Krivulev I. Application adaptation aims to enable mobile applications to cope with the varying execution environments and allows application to adaptively (re)adjust the placement of its partitions at runtime while contextawareness deals with linking changes in the environment with computer systems. Gass SI. applications. display cost. Augmented smartphone applications through clone cloud execution. Google Apps. Johnson DS. 2000. The case for cyber foraging.google. p. Carter J. object-level approach [Master's thesis]. Pervas Mob Comput 2013. 2006. A survey and taxonomy of infrastructure as a service and web hosting cloud providers. ACM SIGPLAN Not 2004. Hu L. Microsoft Office 365. Li Z. http://dx.com/azure/〉. 671–8. IEEE. Shanghai. IEEE. IEEE. San Jose. 186–95. Yang X. AlfredO: an architecture for flexible interaction with electronic devices. p. p. 2008. Prodan R. USENIX Association Berkeley. ACM SIGMOBILE Mob Comput Commun Rev 1998. IEEE. Kovachev D. J Am Med Informatics Assoc 2009. IEEE. Pei S. Wailea. 2013. Adaptive deployment and configuration for mobile augmented reality in the cloudlet. Malaga. onlive. In: Proceedings of the 10th IEEE/ACM international conference on grid computing (CCGrid'09). Graph partitioning algorithms for optimizing software deployment in mobile cloud computing. Klamma R.org/10. Park S. 209–19. In: Proceedings of the seventh international conference on information technology: new generations (ITNG'10). China.onlive. 2003. Lu J. http://dx. DC. Design and evaluation of mobile offloading system for web-centric devices.12:317–21. IBM Corp. Whaiduzzaman M. An adaptive multi-constraint partitioning algorithm for offloading in pervasive systems. 2012. Chen Q. Shiraz M. Heroku. Des Autom Embed Syst 1997. Wang YM. United States: Purdue University. Huang Y-H. Leveraging client-side storage techniques for enhanced use of multiple consumer cloud storage services on resourceconstrained mobile devices. Ostermann S.. Application partitioning—a dynamic. Aucinas A. In: Proceedings of the IEEE fifth international conference on cloud computing (CLOUD'12).41:389–410. Liu et al. Orlando. China. Inc. Cao J. An optimized solution for mobile environment using mobile cloud computing. 27–41. IEEE. Prgomet M. Gu X. Future Gener Comput Syst 2012. Shih C-S. 2012.40:105–15. Jamwal V. 2004. Int J Netw Manag 2002. Software as a service: implications for investment in software development. Davies N. Techniques for fine-grained. Canada. 2012a.doi. 2013. Taiwan.E. Keller E.2:19–26. Verbelen T. Italy. Ahmed E. 107–14. Veda A. p. Dhoedt B. Phang X-S. 10. Wei S. Application partitioning algorithms in mobile cloud computing: Taxonomy. 2006. p. IEEE Pers Commun 2001. Goyal S. Smaragdakis Y.2014. Tang S.microsoft. J Netw Comput Appl 2014.o. Lee H-J. Pervasive computing: vision and challenges. Pittsburgh. Yu P.1109/HICSS.1109/SERVICES-2. Rellermeyer JS. Pedrosa LD. Commun Surv Tutor 2011. Naghshineh M. ACM. p. Mobile healthcare service system using RFID. J Supercomput 2013a. 1–10. Hu J. Balakrishnan H. Hosseinzadeh M. Kumar K. Iyer S. Satyanarayanan M. J Netw Comput Appl 2014. 2011. m-Learning: positioning educators for a mobile.37:334–47. The case for VM-based cloudlets in mobile computing. 1–5. Washington. Ranjan M. Yang L. Hu YC. CA. Simoens P.com〉. Executing mobile applications on the cloud: framework and issues. Juniper Research. In: Proceedings of the 16th European conference on object-oriented programming (ECOOP'02). IEEE. 2010. USA: IEEE. 95–108. USA. 945–53. http://dx. Shiraz M. 18–25. Software as a service: configuration and customization perspectives. Bhargava B. Smit M. 19 Ra MR. Kuenning GH. Dhoedt B.009i 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 . Springer-Verlag. p. New York: Springer-Verlag New York. Yang K. Bahl P. review and future directions. Microsoft. Int J Interact Multimed Artif Intell 2012. Niemann R. Liu J.purdue. p. Turck FD. USA. Jinhua. Vidyanand C.29. Li CJ. p. Technical report. Cloud computing for mobile users: can offloading computation save energy?. English Lake District. Cross: a combined routing and surrogate selection algorithm for pervasive service offloading in mobile ad hoc environments. URL: 〈http://www. Heterogeneity in mobile cloud computing: taxonomy and open challenges. Lu YH.29:451–9 (Special section: Recent advances in e-science). Boston.doi. Automated refactoring of objects for application partitioning. Xin Z. A study on anatomy of smartphone. p. Chen XM. Stevens T. Shyam GK. Niu J. In: Proceedings of the 45th annual design automation conference (DAC'08). In: Proceedings of the first IEEE international conference on pervasive computing and communications (PerCom '03). 2009. 2010. Girod L. Buyya R. The case for complexity prediction in automatic partitioning of cloud-enabled mobile applications. In: Proceedings of the ninth ACM/IFIP/USENIX international conference on middleware (Middleware'08). 184–94. Pan T. 2010. 198–201. Westbrook JI. In: Proceedings of the conference of the center for advanced studies on collaborative research (CASCON'12).2:165–93. 22–41. An E-Ambulatory healthcare system using mobile network. Comput Math Appl 2012. FL. 2009. Kothari N. Mangan T. Ou S. Zhao F.2008. USA. Manvi SS. Wishbone: Profile-based partitioning for sensornet applications.41:13–5. A lightweight secure cyber foraging infrastructure for resourceconstrained devices. J Netw Comput Appl 2014. Toledo S.41:424–40. p. Kulkarni M. Energy Convers Manag 2003. J-orchestra: automatic java application partitioning. Liu J. Yeom HY. In: Proceedings of the IEEE congress on services part II (SERVICES-2'08). Sharifi M. 720–725. Priyantha B. 2010. Rexford J. Zhang M. p.43:142–56. Reddy KS. OnLive. computer.1016/j. Tilevich E. A survey of computation offloading for mobile systems. / Journal of Network and Computer Applications ∎ (∎∎∎∎) ∎∎∎–∎∎∎ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 Goraczko M. In: Proceedings of the IEEE global telecommunications conference (GLOBECOM'07). Song W. p. Graph partitioning algorithms for optimizing software deployment in mobile cloud computing. Computer 2008. IEEE. IEEE. Navin AH. Yang L. Stevens T. Energy-optimal software partitioning in heterogeneous multiprocessor embedded systems. Int Rev Res Open Distance Learn 2007. In: Proceedings of the 2010 internet network management conference on research on enterprise networking (INM/WREN'10). Hui P. Newport Beach. Abolfazli S. In: Proceedings of the 40th annual Hawaii international conference on system sciences (HICSS'07). 178–204. Cao J. Bandwidth-adaptive partitioning for distributed execution optimization of mobile applications. Kumar K. Investigation on runtime partitioning of elastic mobile applications for mobile cloud computing. Indian Institute of Technology Bombay. Technical report. Kosta S. Wu CC. Ou S. Ontario. 2012. Atiquzzaman M. ACM. USA. 2012b. J Supercomput 2014.com〉. IEEE Commun Surv Tutor 2014. Millstein T. vol. Lim H. Shiraz M. Pisa. MA. Runtime.63:573–87. Technical report. Zhang S. Liu Q. Matic S. Marwedel P.493. In: Proceedings of the fourth annual IEEE international conference on pervasive computing and communications (PerCom'06). 191–6. On 3G mobile e-commerce platform based on cloud computing. In: Proceedings of the 31st annual IEEE international conference on computer communications (INFOCOM'12). Bahl P. HI. Peters K. Chan ATS. Anaheim.63:946–64. et al. p. Rahbar A. De Turck F. 2012. Rudenko A. Navimipour NJ. Gani A. IEEE. Madden S. Govindan R. Hui S.44:2519–30. USA. connected future. In: Proceedings of the 12th Asia-Pacific software engineering conference (APSEC'05). Gani A. Verbelen T. Shen J. Liu J.heroku. 1269–73. p. USENIX Association Berkeley. Spain. In: Proceedings of the third IEEE international conference ubimedia computing (U-Media'10). 2004. Huang CH. p. URL 〈http://www. Technical report. Lugano.8:1–17. Resource constrained multi-user computation partitioning for interactive mobile cloud applications.8:14–23.com/reports/ mobile_cloud_applications_and_services〉. Comput Commun Collab 2013b. vol. sensing and control (ICNSC'04). http://dx.16:792–801. USA. Gani A. Toronto. Hong Kong Polytechnical University. Caceres R. Cheng H. In: Proceedings of the sixth USENIX Symposium on networked systems design and implementation (NSDI'09). J Netw Comput Appl 2014. p. Honolulu. 395–408. Solar resource estimation using artificial neural networks and comparison with other correlation models. A review on distributed application processing frameworks in smart mobile devices for mobile cloud computing. Verbelen T. PA. Reiher P. Chen SZ. enabling automatic offloading of resource-intensive smartphone applications. Akyildiz IF. p. Kansal A. Zhao H.18:129–40. Chang Jie G. Li T. Mobile cloud application & services. USA: University of Southern California. Adaptive offloading inference for delivering applications in pervasive computing environments. Please cite this article as: Liu J. Los Angeles. Beijing. Beijing. Resource management for infrastructure as a service (IAAS) in cloud computing: a survey. Windsor Holden D. Partitioning applications for hybrid and federated clouds. S. USA.1:24–31. Lu YH. Simmons B. A framework for partitioning and execution of data stream applications in mobile cloud computing. Georgiou A. Improving energy efficiency of personal sensing applications with heterogeneous multi-processors. 2011.edu/ecetr/419/〉. In: Proceedings of the fifth international conference on wireless communications. Riva O. Litoiu M. Heroku. 2009. Messer A. Application mobility in pervasive computing: a survey. Sinha K. URL: 〈http://www.39:119–30. Greenberg I. Wang C. Levine DA. CA.org/ 10. Switzerland.microsoft. 1014–9. 17–25. Commun Surv Tutor 2013b.lib. IEEE Pervas Comput 2009. Gani A. Lawton G. Liotta A. 2013.15:1294–313. Dhoedt B.J. Khokhar R. p. Sanaei Z. Hung S-H. Zhang X. IEEE. The platform as a service model for networking. Vaughan J. Mob Netw Appl 2012. J Netw Comput Appl 2014.8:10–7. Taipei. ThinkAir: dynamic resource allocation and parallel execution in the cloud for mobile code offloading.29:451–9.9:2–17. 2.doi. Liu L. URL: 〈http://office365. 2005.5:1–12. multi-site computation offloading. Las Vegas.239. China.2007. Ma X. Jian X. cloud and grid computing (CCGrid'11). Cao J. Turck FD. Priyantha B. IEEE. J Netw Comput Appl 2014. Greschler D. org/10. Engineering. networking and mobile computing (WiCom'09). UK. Shtern M. 2007. Future Gener Comput Syst 2013. A survey and taxonomy of cyber foraging of mobile devices. Kashefi O. 2008. IEEE/ACM Trans Netw 1997. In: Proceedings of the IEEE international conference on networking. 794–802.com/〉. 2008. A resource estimation and call admission algorithm for wireless multimedia networks using the shadow cluster concept. Shieh J-P. Shiraz M.43:51–6. p. URL 〈http://docs. Han Q.16:369–92. Lymberopoulos D. In: Proceedings of the sixth IEEE workshop on mobile computing systems and applications (WMCSA'04). Parametric analysis for adaptive computation offloading. Abolfazli S. IEEE. 116–25. Mortier R. Belgium. Han H. China.2010.09. p. The impact of mobile handheld technology on hospital physicians' work practices and patient care: a systematic review. In: Proceedings of the 11th IEEE/ACM international symposium on cluster. Gani A. 2013. Alonso G. Department of Computing. Pathak A.doi. Sanaei Z. IEEE. Nahrstedt K. Computer 2010.juniperresearch. HI. In: Proceedings of the 14th international conference on ubiquitous computing (Ubicomp'12).org/10. Taiwan. Buyya R. Framework for computation offloading in mobile cloud computing. 2006.1109/ITNG. Saving portable computer battery power through remote process execution. Taipei.67:84–103.1:6–15. Microsoft. 2007.14:1232–43. URL 〈http://www. A study on virtual machine deployment for application outsourcing in mobile cloud computing. Milojicic D.jnca. p. NV. Developing software online with platform-as-a-service technology. Lee C-P. Networking lessons in delivering ‘software as a service’. Microsoft Azure. Kafaie S. CA. Leuven. Yeo H-S. Popek GJ. Yang K. p. Resource discovery mechanisms in grid systems: a survey. Satyanarayanan M. Newton R. Journal of Network and Computer Applications (2014).41:206–16. Rahmani AM. An algorithm for hardware/software partitioning using mixed integer linear programming.