Mobile code offloading: should it be a local decision or global inference?

Mobile and cloud computing are converging as the prominent technologies that are leading the change to the post-pc era. Mobile devices are looking towards cloud-aware techniques, driven by their growing interest to provide ubiquitous PC-like functionality to mobile users. These functionalities mainly target at increasing storage and computational capabilities. On one hand, storage limitations of the devices have been overcome by many cloud services provided in the Internet, which are built under different protocols (e.g. SyncML). On the other hand, binding computational cloud services such as Amazon EC2 to low-power devices such as smartphones have been proven feasible with latest mobile technologies [2, 1], mostly due to virtualization technologies and their synchronization primitives, enabling transparent migration and execution of intermediate code. Moreover, multiple research works have proposed different offloading strategies to empower the mobile application with cloud resources. Most of these solutions try to overcome the problem by granting the mobile, a local context logic, which is used to decide whether a mobile component is offloaded or not. However, given this context, we can argue that much of the advantages of cloud computing are left unexploited and poorly considered. A cloud does not just mean a virtual machine or a pool of servers which are accessible from the Internet. It has its own intrinsic features like utility computing, fine-grained billing, parallelization of tasks, etc. So an ideal mobile cloud framework should take advantage of several of these features. Cloud computing may introduce many other dynamic variables to current code offloading models that could affect the overall offloading decision process. For instance, performance metrics (e.g. CPU load) of the instance/cluster at the cloud may be useful by the mobile in order to determine 1) whether a server is not that busy so that it can handle an incoming request and 2) a dynamic execution plan that allows to parallelize mobile operations in a single machine with multiple cores or in different machines, each with a single core. Consequently, a code offloading model should not just target mobility aspects, but also target oscillating changes in cloud infrastructure. On the basis of these assumptions, we envisioned in this work, an ”Evidence-based mobile code offloading approach”[3] that enables to transform raw code offloading traces, which are obtained by the huge amount of devices that connect