As mobile devices, such as smartphones, take on a larger role in our lives, they need to handle more complicated tasks and computations. Due to limited computational, storage and energy resources, mobile devices have to utilize advanced cloud services in order to complete the tasks at an optimal level. For example, storage services allow mobile devices to save documents in the cloud, and offloading services allow those devices to move tasks to the cloud.
Many companies have provided exemplary storage services, including Amazon’s Cloud Drive service and Dropbox, which allow individuals to tap into applications for large-volume and reliable data storage and exchanges, but mobile devices still lag behind. For instance, Amazon finally released the cloud storage service Cloud Drive for mobile phones, which is available on iOS, Android and Amazon’s app store, but Cloud Drive solely offers read-only versions of files stored in the servers. According to The Verge, “There's no ability to automatically sync or even upload files, and you can't edit or move the files you're viewing.”
The lack of functionality within Amazon’s Cloud Drive highlights a larger problem: cloud storage services for mobile phones are reduced versions of products that were mostly designed for desktops and cannot satisfy the needs of mobile users.
The Most Popular Cloud Applications
Dropbox and iCloud are the two most popular cloud apps for mobile phones, and they have different benefits. Perhaps the biggest upside to Dropbox is the ability to almost instantly update files in the cloud servers and sync across all online platforms: mobile, tablet and PC. It’s easy to use, and the interface is simple and well designed. Plus, it works the same if you’re an iOS, Android, Windows Phone or even a BlackBerry user.
However, Dropbox does not support offline file operations since it does not maintain any local copies on mobile devices (it does so on PCs). Thus, the apps on a mobile device cannot access the files in Dropbox when the device is not online. Even when the device is online, all the accesses (reads and updates) must be immediately directed to the server, which takes a tremendous amount of battery and data use. Dropbox may drain your battery quickly, and it uses significant data, which costs the user money.
In contrast, iCloud Drive is Apple’s cloud storage service, and it’s effective for backing up photos and data. The cloud service saves photos across various platforms: iMac, iPad and iPhone. It’s simple to use, but it can be quite costly when you upgrade the service. The biggest problem with iCloud is that a user simply uploads and downloads the files, and there is no real way to organize the files from iCloud. There is also no programming interface, nor is there a way to synchronize the files and edits with seamless functionality like Dropbox.
Requirements on cloud storage services for mobile devices
At the New Jersey Institute of Technology, we are working with a team of researchers to find a solution to the above problem. We aim to provide cloud storage services that can meet the following requirements of mobile devices: full-storage services, energy and network efficiency and primary storage space.
First, the cloud storage service for mobile devices will have similar functionalities to those for PCs, instead of offering a reduced version. Mobile devices have become indispensable personal computing devices and handle complicated tasks and computations that have been conventionally conducted on PCs. This requires full-fledged storage services.
Second, the cloud storage service for mobile devices must be robust, energy effective and network efficient. It must be specially designed, based on the features and constraints of mobile devices, e.g., limited storage and energy resources, poor availability (since mobile devices are not always on or reachable) and limited and potentially costly network connections.
Third, the cloud service should be able to provide primary storage space for mobile devices. Most back-up storage services work well for mobile devices. Unlike PCs, mobile devices rely more on cloud storage services and offloading computations to the cloud. It’s desirable to have primary storage in the cloud, which hosts the data shared by the computations on mobile devices and in the cloud.
A Cloud Storage System
We hope to develop a storage system, which provides primary storage for mobile devices and other cloud services (including the computations offloaded to the cloud) of a user. To design a cloud storage system to meet the above requirements, buffering data (e.g., frequently-accessed data and recently-accessed data) on the local storages of mobile devices is a nature choice. The buffered data can be used to support disconnected operations and improve performance and network and energy efficiency (since remote accesses are reduced).
However, in the storage system, the synchronization between multiple copies of the same document at different locations is the key factor for user experience, performance and efficiency. The biggest question we are trying to answer is how the apps can work with the cloud service and leverage the locally buffered data to avoid unnecessary power and data consumption. Some applications need to synchronize their data immediately. Other applications can tolerate lazy synchronization to save power and data traffic. Our team is researching how to have the app communicate with the storage system in a logical manner to make smart decisions about whether and when to update the data immediately or to hold off.
We plan to explore techniques to allow applications to specify how regularly their documents should be synchronized. Specifically, we plan to define some standard synchronization models (e.g., immediate, on-demand, lazy, lease, etc) based on the demands of applications. Applications can specify the synchronization models by calling corresponding APIs. One challenge to this solution is that some applications may not know which model is appropriate, and other applications may just want to synchronize the data aggressively (e.g., they are not programmed to care how much energy or data the system consumes). To address this issue, the cloud service may analyze application usage patterns to predict the required synchronization models.
This article is published as part of the IDG Contributor Network. Want to Join?