Data-Intensive Mobile Cloud Computing
Mobile computing, where mobile users continuously gather, process, and share sensor or application-specific data, is emerging as a new computing and network paradigm of data sharing in seamless manner. The key enablers are the smartphones (e.g., iPhones and Android phones) equipped with onboard sensors (e.g., cameras, accelerometer, compass, GPS) and various wireless devices (e.g., WiFi, 3G/4G-LTE, and other network standards). However, despite of all the advances in recent years, mobile devices have limited resources for computation, memory, network, and battery. Mobile cloud computing (MCC) is a promising practical approach to relax such constraints in mobile devices for computational intensive applications, where computation offloading to virtually unlimited resources in clouds can help them to save the energy consumption.
Existing offloading algorithms and corresponding MCC systems offload computationally intensive applications to remote cloud servers in a distributed manner.
However, they fail to address challenges in modern data-intensive applications, where sensor data is continuously harvested and application-specific data among users is shared to process or personalize applications. For instance, modern machine learning (ML)-based applications require the large amount of training data to train a model, often require periodic retraining or adaptation based on gathered user's specific profiles and context data. For such applications, offloading is not only computationally intensive but data intensive, and it requires a seamless interface to upload/fetch data to/from cloud storage.
A comprehensive survey provides 15 different perspectives in ten major MCC systems from the viewpoint of data-intensive computation offloading. Typical MCC surveys often constitute network protocol, code rewrite requirement, offloading granularity, profiling, resource monitoring, cost model, and software preinstallation requirement. Our survey differs from typical MCC surveys mainly in several ways: scalable big data and computing support and fault-tolerance of MCC systems, providing features such as parallel offloading, multi-cloud support, disconnected operation, reliable message delivery, cloud sever scalability, and cloud storage access.
The process of computation offloading is complex. In this thesis, we tackle it as several subsystem problems:
First, existing MCC systems fail to address multiple cloud settings in computation offloading scenarios. The application partitioning and offloading to multiple clouds are formally formulated and solved as an integer linear programming (ILP) problem. The objective function of the partitioning problem makes a set of offloading decision in terms of tradeoffs between mobile execution and cloud execution with respect to energy costs and time cost under the assumption of multi-clouds;
Second, existing MCC systems fail to address a wireless network instability problem. In order to achieve fault-tolerant communication between mobile devices and cloud servers, we propose and implement a mechanism that can tolerate unstable network conditions by asynchronous implementation of network binding;
Third, existing MCC systems fail to achieve reliable offloading message delivery, where millions of mobile devices submit computation offloading requests and data related requests to clouds. To achieve such scalability and reliability, we propose a producer/consumer-based message queue, where producers for delivering offloading requests send offloading requests over the network to the cluster, which in turn serves them up to consumers. The multiple consumers are in charge of submitting the offloaded tasks to cloud resources. Eventual reliability is achieved by message partitioning and replication in the message queue system while scalable message delivery is achieved by horizontal scaling of producers/consumers and reconfiguring of message partition factor.
Fourth, cloud resource management is another challenging area, where researchers put little attention to data intensive application offloading. Existing MCC systems are not scalable when dealing with millions of offloading requests as well as data requests. For the data intensive application offloading, we consider integration to one of the conventional big data systems where a thin mobile client is to access data and to process it from the cloud. We propose the fuse of Hadoop-based parallel computation offloading to multiple clouds by developing seamless interfaces. The integration enables our MCC system to be scalable and reliable in scheduling offloading tasks and in serving data-related operations on top of Hadoop.
We provide a couple of evaluation results in terms of time saving and energy saving based on two types of benchmarks: computationally-intensive applications and data-intensive applications. For the former, we consider chess game, puzzle game, cryptographic algorithm, and Huffman compression algorithm, for the latter, we consider the state-of-the-art speech recognition application. The evaluation extends a single offloading to parallel offloading. The further evaluation of data-intensive computational cloud is performed in several aspects: performance comparison of Hadoop version 1 and version 2, Hadoop overhead, benefit of file compression, and performance of cloud storage to support small/large files. Finally, the performance of the proposed message queue is presented.