Increasing the efficiency of code offloading through remote-side caching

End users execute today on their smart phones different kinds of mobile applications like calendar apps or high-end mobile games, differing in local resource usage. Utilizing local resources of a smart phone heavily, like playing high-end mobile games, drains its limited energy resource in few hours. To prevent the limited energy resource from a quick exhaustion, smart phones benefit from executing resource-intensive application parts on a remote server in the cloud (code offloading). During the remote execution on the remote server, a smart phone waits in idle mode until it receives a result. However, code offloading introduces computation and communication overhead, which decreases the energy efficiency and induces monetary cost. For instance, sending or receiving execution state information to or from a remote server consumes energy. Moreover, executing code on a remote server instance in a commercial cloud causes monetary cost. To keep consumed energy and monetary cost low, we present in this paper the concept of remote-side caching for code offloading, which increases the efficiency of code offloading. The remote-side cache serves as a collective storage of results for already executed application parts on remote servers, avoiding the repeated execution of previously run application parts. The smart phone queries the remote-side cache for corresponding results of resource-intensive application parts. In case of a cache hit, the smart phone gets immediately a result and continues the application execution. Otherwise, it migrates the application part and waits for a result of the remote execution. We show in our evaluation that the use of a remote-side cache decreases energy consumption and monetary cost for mobile applications by up to 97% and 99%, respectively.