03-07-2012, 12:38 PM
Virtual Smartphone over IP system
Virtual Smartphone over IP system .docx (Size: 552.03 KB / Downloads: 32)
INTRODUCTION
The number of smartphone users and mobile application offerings are growing rapidly. Smartphones are often expected to offer PC-like functionality, which requires powerful processors, abundant memory and long-lasting battery life. However, their hardware today is still very limited and application developers are forced to take these limitations into consideration.
A number of service providers such Dropbox [1] and Zumodrive [2] provides online storage services to smartphone users in attempt to alleviate the limitations of smartphone storages. However, to the best of our knowledge, there is still no service that offers full computation resources to smartphone users. In this paper, we propose Virtual Smartphone over IP, which provides cloud computing environment specifically tailored for smartphone users. It allows users to create virtual smartphone images in the cloud and to remotely run their mobile applications in these images as they would locally. The motivation is to allow smartphone users to more easily tap into the power of the cloud and to free themselves from the limit of processing power, memory and battery life of a physical smartphone. Using our system, smartphone users can choose to install their mobile applications either locally or in the cloud, as illustrated in Figure 1.
Running applications remotely in the cloud has a number of advantages, such as avoiding untrusted applications from accessing local data, boosting computing resources, continuing to run applications on the background and opening up new ways to use smartphones.
This paper presents the design and implementation of Virtual Smartphone over IP. Section II describes the basic design of our system and Section III describes a proof-of- concept prototype that we have implemented. Section IV discuss the possible applications of our system and Section V reports the results of our experiments that demonstrate how we can leverage the performance of mobile applications in the cloud. Section VI discusses the related work in the research community and Section VII concludes this paper.
BASIC DESIGN
Our Virtual Smartphone over IP system adopts an architecture similar to ones commonly used by server hosting providers. As illustrated in Figure 2, the system is composed of a number of external smartphone clients, a front-end server, a virtual smartphone farm, a management server and a network file system (NFS).
Virtual smartphone farm is the most important component of our system. It is a virtualization environment that hosts a collection of virtual smartphone images, each of which is dedicated to a smartphone user. In Section III, we discuss in detail about how we have implemented a virtual smartphone farm.
The front-end server admits service requests from smartphone users across the Internet and establishes remote sessions to the appropriate virtual smartphone images. The frond-end server also allows smartphone users to create, configure and destroy virtual smartphone images. Once a remote session is established, the user can install and run mobile applications on one of these images instead of his own physical smartphone.
The network file system is used by virtual smartphones for all persistent file storage, in much the same way that an SD card holds data for physical smartphones. Since the NFS is easily scalable, it practically provides each virtual smartphone an unlimited file storage.
The management server is used to manage the virtual smartphone farm. Typical operations of a management server include the creation of virtual images in bulk and troubleshooting individual images.
Users control their virtual smartphone images through a dedicated client application installed on their smartphones. This client application receives the screen output of a virtual smartphone image and presents the screen locally in the same way as conventional thin-client technology. Since we expect most users to access their virtual smartphone images through an unstable network such as 3G, the image must continue to run on the farm and be in the same state when the user is connected again after the user is disconnected in an unexpected manner.
IMPLEMENTATION
We have implemented a proof-of-concept prototype using Android [3], an open-source mobile OS initiated by Google. The main reason behind our choice is that Android OS is not only designed for smartphone devices with an ARM processor, but also is being ported to the x86 platform [4]. Although Android-x86 is originally intended for netbooks, it gives us an opportunity to create a virtual image of Android using a bare- metal hypervisor. This allows each virtual Android-x86 image to tap into the power of server hardware in a data center. The fact that we do not need a CPU emulator (i.e. x86-to-ARM) to run the virtual image is very important since such emulator always introduces enormous overhead and may neutralize any performance advantage offered by a data center.
We have also chosen to implement our client application on an Android smartphone. Although our system does not require the physical and the virtual smartphones to be on the same platform, this particular setting allows us to more tightly integrate both environments.
Our prototype is depicted in Figure 3. We have implemented a pair of VNC-based server and client programs. The server program resides in each Android-x86 image that run on top of VMWARE ESXi while the client program is installed in the physical Android device. The client program enables a user to remotely interact and control Anroid-x86 images. The client program transmits various events from the physical device to the virtual smartphone and receives graphical screen updates from the virtual smartphone.
We have also implemented a virtual sensor driver in the Android-x86 image. Most modern smartphones are equipped with various sensor devices such as GPS, accelerometer and thermometers. While VNC itself supports only keyboard and mouse as the primarily input devices, we have extended our client program to transmit sensor readings (accelerometer, orientation, magnetic field and temperature etc) to the virtual sensor driver in the Android-x86 image. The virtual sensor driver is implemented in such a way that the sensor readings from the physical Android device would appear to come from the Anroid-x86 image itself. This is an important feature as it allows Android applications in an Android-x86 image to obtain sensor readings from the physical smartphone without any modification.
Our prototype allows applications running in the cloud to
appear like local applications on the physical device, with functions such as copy-and-paste between local and remote applications. Our prototype also features remote shortcuts to remote applications in the virtual smartphone that minimize the number of steps required for users to launch remote applications, as illustrated in Figure 4. Furthermore, each short-cut can point to a different virtual Android-x86 image, and thus allowing users instant access to remote applications residing in multiple Android-x86 images in one single menu Figure 5 is a photo of our prototype in action. The user in the photo is accessing an Android-x86 image hosted in our data center.
APPLICATION
Our system allows users to customize each image to meet different needs. To create a new smartphone image in the cloud, the user can simply select from a number of pre- configured image templates to get up and running immediately. The following are some examples of how our system can be used.