Lightweight Application-Level Task Migration for Mobile Cloud Computing

Mobile cloud computing allows mobile applications to use the enormous resources in the clouds. In order to seamlessly utilize the resources, it is common to migrate computation among mobile nodes and cloud nodes. Therefore, a highly portable and transparent migration approach is needed. In terms of portability, application-level migration with code instrumentation is the most portable approach. However, in the existing literature, this approach imposes significant runtime overhead, even when no migration takes place. Most of these works are for mobile agents, and migrations are to be invoked by the programs. Migration points are also restricted to certain locations where migration status is being polled. In this paper, we propose a Java byte code transformation technique for realizing task migration without imposing significant overhead on normal execution. Asynchronous migration technique is used to allow migrations to take place virtually anywhere in the user codes, and the proposed Twin Method Hierarchy minimizes the overhead resulting from state-restoration codes in normal execution. We have implemented our approach in our middleware. The results show that our approach can allow lightweight computation migration at application level, achieve considerable speedups and utilize the cloud resources from mobile devices.

[1]  Letizia Leonardi,et al.  Mobile JikesRVM: A framework to support transparent Java thread migration , 2008, Sci. Comput. Program..

[2]  Cho-Li Wang,et al.  A Stack-on-Demand Execution Model for Elastic Computing , 2010, 2010 39th International Conference on Parallel Processing.

[3]  Sara Bouchenak,et al.  Zero Overhead Java Thread Migration , 2002 .

[4]  Stefan Fünfrocken,et al.  Transparent migration of Java-based mobile agents: Capturing and re-establishing the state of Java programs , 1998, Personal Technologies.

[5]  Byung-Gon Chun,et al.  CloneCloud: elastic execution between mobile device and cloud , 2011, EuroSys '11.

[6]  Jason Nieh,et al.  Proceedings of the 5th Symposium on Operating Systems Design and Implementation , 2022 .

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

[8]  Wouter Joosen,et al.  Portable Support for Transparent Thread Migration in Java , 2000, ASA/MA.

[9]  Assaf Schuster,et al.  JavaSplit: a runtime for execution of monolithic Java programs on heterogenous collections of commodity workstations , 2003, 2003 Proceedings IEEE International Conference on Cluster Computing.

[10]  Francisco José da Silva e Silva,et al.  Migration transparency in a mobile agent based computational grid , 2005 .

[11]  Cho-Li Wang,et al.  eXCloud: Transparent runtime support for scaling mobile applications in cloud , 2011, 2011 International Conference on Cloud and Service Computing.

[12]  P. Mell,et al.  The NIST Definition of Cloud Computing , 2011 .

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

[14]  Cho-Li Wang,et al.  A computation migration approach to elasticity of cloud computing , 2013 .

[15]  Akinori Yonezawa,et al.  A Simple Extension of Java Language for Controllable Transparent Migration and Its Portable Implementation , 1999, COORDINATION.

[16]  Rocco De Nicola,et al.  Translating Strong Mobility into Weak Mobility , 2001, Mobile Agents.

[17]  Michael Weber,et al.  Transparent Migration of Mobile Agents Using the Java Platform Debugger Architecture , 2001, Mobile Agents.

[18]  Akinori Yonezawa,et al.  Bytecode Transformation for Portable Thread Migration in Java , 2000, ASA/MA.

[19]  Gerald Baumgartner,et al.  Implementation of strong mobility for multi-threaded agents in Java , 2003, 2003 International Conference on Parallel Processing, 2003. Proceedings..