Towards an Elastic Application Model for Augmenting the Computing Capabilities of Mobile Devices with Cloud Computing
We propose a new elastic application model that enables seamless and transparent use of cloud resources to augment the capability of resource-constrained mobile devices. The salient features of this model include the partition of a single application into multiple components called weblets, and a dynamic adaptation of weblet execution configuration. While a weblet can be platform independent (e.g., Java or .Net bytecode or Python script) or platform dependent (native code), its execution location is transparent膒it can be run on a mobile device or migrated to the cloud, i.e., run on one or more nodes offered by an IaaS provider. Thus, an elastic application can augment the capabilities of a mobile device including computation power, storage, and network bandwidth, with the light of dynamic execution configuration according to device's status including CPU load, memory, battery level, network connection quality, and user preferences. This paper presents the motivation behind developing elastic applications and their architecture including typical elasticity patterns and cost models that are applied to determine the elasticity patterns. We implement a reference architecture and develop a set of elastic applications to validate the augmentation capabilities for smartphone devices. We demonstrate promising results of the proposed application model using data collected from one of our example elastic applications.