CloneCloud: elastic execution between mobile device and cloud

Mobile applications are becoming increasingly ubiquitous and provide ever richer functionality on mobile devices. At the same time, such devices often enjoy strong connectivity with more powerful machines ranging from laptops and desktops to commercial clouds. This paper presents the design and implementation of CloneCloud, a system that automatically transforms mobile applications to benefit from the cloud. The system is a flexible application partitioner and execution runtime that enables unmodified mobile applications running in an application-level virtual machine to seamlessly off-load part of their execution from mobile devices onto device clones operating in a computational cloud. CloneCloud uses a combination of static analysis and dynamic profiling to partition applications automatically at a fine granularity while optimizing execution time and energy use for a target computation and communication environment. At runtime, the application partitioning is effected by migrating a thread from the mobile device at a chosen point to the clone in the cloud, executing there for the remainder of the partition, and re-integrating the migrated thread back to the mobile device. Our evaluation shows that CloneCloud can adapt application partitioning to different environments, and can help some applications achieve as much as a 20x execution speed-up and a 20-fold decrease of energy spent on the mobile device.

[1]  Uwe Hansmann,et al.  Pervasive Computing , 2003 .

[2]  Sape J. Mullender,et al.  Protium, an infrastructure for partitioned applications , 2001, Proceedings Eighth Workshop on Hot Topics in Operating Systems.

[3]  Mahadev Satyanarayanan,et al.  Data Staging on Untrusted Surrogates , 2003, FAST.

[4]  J. Flinn,et al.  Energy-aware adaptation for mobile applications , 1999, SOSP.

[5]  Mahadev Satyanarayanan,et al.  The case for cyber foraging , 2002, EW 10.

[6]  Alan L. Cox,et al.  Java/DSM: A Platform for Heterogeneous Computing , 1997, Concurr. Pract. Exp..

[7]  Takashi Suezawa,et al.  Persistent execution state of a Java virtual machine , 2000, JAVA '00.

[8]  Fan Yang,et al.  Hilda: A High-Level Language for Data-DrivenWeb Applications , 2006, 22nd International Conference on Data Engineering (ICDE'06).

[9]  Paramvir Bahl,et al.  The Case for VM-Based Cloudlets in Mobile Computing , 2009, IEEE Pervasive Computing.

[10]  Kun Yang,et al.  An effective offloading middleware for pervasive services on mobile devices , 2007, Pervasive Mob. Comput..

[11]  Alan Messer,et al.  Towards a distributed platform for resource-constrained devices , 2002, Proceedings 22nd International Conference on Distributed Computing Systems.

[12]  Cho-Li Wang,et al.  JESSICA2: a distributed Java Virtual Machine with transparent thread migration support , 2002, Proceedings. IEEE International Conference on Cluster Computing.

[13]  Galen C. Hunt,et al.  The Coign automatic distributed partitioning system , 1999, OSDI '99.

[14]  Yannis Smaragdakis,et al.  J-Orchestra: Automatic Java Application Partitioning , 2002, ECOOP.

[15]  Ramesh Govindan,et al.  Reliable and efficient programming abstractions for wireless sensor networks , 2007, PLDI '07.

[16]  J. Wenny Rahayu,et al.  Mobile cloud computing: A survey , 2013, Future Gener. Comput. Syst..

[17]  Eric A. Brewer,et al.  Adapting to network and client variability via on-demand dynamic distillation , 1996, ASPLOS VII.

[18]  Alan Messer,et al.  Adaptive offloading inference for delivering applications in pervasive computing environments , 2003, Proceedings of the First IEEE International Conference on Pervasive Computing and Communications, 2003. (PerCom 2003)..

[19]  Alan L. Cox,et al.  Java/DSM: A platform for heterogeneous computing , 1997 .

[20]  Mahadev Satyanarayanan,et al.  Self-tuned remote execution for pervasive computing , 2001, Proceedings Eighth Workshop on Hot Topics in Operating Systems.

[21]  Mahadev Satyanarayanan,et al.  Tactics-based remote execution for mobile computing , 2003, MobiSys '03.

[22]  Gustavo Alonso,et al.  Calling the Cloud: Enabling Mobile Phones as Interfaces to Cloud Applications , 2009, Middleware.

[23]  Alois Ferscha,et al.  Pervasive Computing , 2004, Lecture Notes in Computer Science.

[24]  David G. Andersen,et al.  An Architecture for Internet Data Transfer , 2006, NSDI.

[25]  Helen Nissenbaum,et al.  Adnostic: Privacy Preserving Targeted Advertising , 2010, NDSS.

[26]  Juan-Carlos Cano,et al.  HOP: achieving efficient anonymity in MANETs by combining HIP, OLSR, and pseudonyms , 2006, OOPSLA 2006.

[27]  James D. Herbsleb,et al.  Simplifying cyber foraging for mobile devices , 2007, MobiSys '07.

[28]  Erick Gallesio,et al.  Hop: a language for programming the web 2.0 , 2006, OOPSLA Companion.

[29]  Jason Flinn,et al.  Slingshot: deploying stateful services in wireless hotspots , 2005, MobiSys.

[30]  Geoffrey H. Kuenning,et al.  Saving portable computer battery power through remote process execution , 1998, MOCO.

[31]  Stefan Berger,et al.  Trustworthy and personalized computing on public kiosks , 2008, MobiSys '08.

[32]  Xin Zheng,et al.  Secure web applications via automatic partitioning , 2007, SOSP.

[33]  Andrew P. Black,et al.  Fine-grained mobility in the Emerald system , 1987, TOCS.

[34]  Byung-Gon Chun,et al.  Augmented Smartphone Applications Through Clone Cloud Execution , 2009, HotOS.

[35]  Dawson R. Engler,et al.  KLEE: Unassisted and Automatic Generation of High-Coverage Tests for Complex Systems Programs , 2008, OSDI.

[36]  Mahadev Satyanarayanan,et al.  Towards seamless mobility on pervasive hardware , 2005, Pervasive Mob. Comput..

[37]  R. Acevedo,et al.  Research report , 1967, Revista odontologica de Puerto Rico.

[38]  Francis C. M. Lau,et al.  JESSICA: Java-Enabled Single-System-Image Computing Architecture , 2000, J. Parallel Distributed Comput..

[39]  Fan Yang,et al.  A unified platform for data driven web applications with automatic client-server partitioning , 2007, WWW '07.

[40]  Michael Factor,et al.  cJVM: a single system image of a JVM on a cluster , 1999, Proceedings of the 1999 International Conference on Parallel Processing.

[41]  Alec Wolman,et al.  MAUI: making smartphones last longer with code offload , 2010, MobiSys '10.

[42]  Philip Wadler,et al.  Links: Web Programming Without Tiers , 2006, FMCO.

[43]  Sivan Toledo,et al.  Wishbone: Profile-based Partitioning for Sensornet Applications , 2009, NSDI.