Virtual Mobile Storage – A Distributed Internet Storage Service Platform Chetna Kaur Motivation With the popularity of mobile internet devices growing exponentially every year, mobile computing is emerging as a new platform in the evolution of internet computing. A key area that needs to evolve in this paradigm shift is the development of efficient storage services that meets the demands of a modern mobile internet device user. While many corporations have focused on providing explicit storage space to the traditional end user PC applications, most of them do not provide means to extend this available storage to the new generation mobile internet applications. Therefore, what is required is a storage service available on the internet that can be used to deliver content to the end user mobile internet device keeping in mind the limitations that are inherent to the mobile internet device platform. The service thus provided could then be used in such a way so as to extend the storage capability of mobile internet devices and will pave the way for new generations of applications to be written that will provide rich content to the mobile internet user regardless of their memory limitations and geographical location. Objectives The major design objectives for any internet storage service are – Efficiency: Currently, data rate dictates the cost of internet access from a mobile device. Though this trend will change in the future, efficient techniques for accessing the storage must be designed. An example would be to provide APIs that will let the user access files from the remote store without having to download the file locally in its entirety. Or tags representing metadata can be stored (cached) locally on the mobile device and can be used to provide a view of the data store to the end user. A connection to the storage server would be requested only when the user attempts to access the data. Scalability: The storage service must be scalable to meet the requirements of ever increasing mobile internet users. The systems that provide the actual storage could be server farms residing in different physical locations. The storage service must be capable of running on this distributed cluster of servers. Performance: This design goal probably will make or mar the prospects of a successful storage service intended for access from a mobile device. End user systems are limited in their computation power and local store capabilities. The storage service APIs should bear in mind this limitation while providing seamless access to storage that will enhance the user experience of operating in a mobile environment. Simple API interface: The APIs should follow a simple model of Remote Procedure Call (RPC) based on HTTP and XML interfaces. Portability: Since the service will be used mainly by applications residing on the mobile device, the API set should be usable from existing mobile platforms such as Symbian, Windows Mobile, MobiLinux and Google Android. Another design consideration is to design the data store (file system) such that it can be remotely mounted but it looks as if it is local to the remote users. Related work An existing model for accessing internet storage over the network is by using network file systems such as CIFS, CODA or NFS. The drawback of such a model is the need for a complete implementation of the file system client on a mobile device which is a burden on the resources available on the typical mobile platform. Further, the look-ahead caching mechanisms are not suited for low data rate networks and low memory footprints available on a mobile device. Nirvanix Storage Delivery Network (SDN), Amazon Simple Storage Service (S3) and XDrive JSON are another source of network storage service providers currently. These APIs cater to the applications that reside on a PC rather than a mobile internet device. The APIs operate on a file level granularity instead of a smaller subset which is more efficient in a disconnected network environment. Proposed System Develop a storage service platform that will enable mobile internet devices to configure, access and manage storage over the internet. System Architecture Meta File System Server WWW Distributed Storage Server Access Server The various components that will be developed in this project are 1. Internet Storage API: This consists of a set of APIs for the mobile device that interfaces with the storage server at the backend. The communication framework between the mobile device and the API layer is based on a set of RPC. This layer does not store or maintain any client specific context information and acts a broker between the mobile device and the storage server. 2. Access Server & Meta File System: Provides a back-end to the API subsystem. Clients shall connect to the storage server via this server. This server is responsible for authenticating the mobile devices based on configuration information stored in the Meta File Server. This would also serve as the load balancer and would be responsible for redirecting the client’s request to access their accounts to the appropriate storage server. 3. Storage Server: A cluster of computers with database connectivity hosting the data store. 4. Web based Account Management System – This would be a web site from where clients can create and manage their extended storage accounts. Once they have created an account on this site, they can use their mobile devices to connect to their data stores. 5. Mobile client application: A reference implementation using the API set will be developed on an internet platform. The scope of the work can be extended to port the client application on a mobile platform (Nokia N60 emulator). Minimum Goal Since the system is quite complex, it shall not be possible to implement the entire system described above. This project shall initially concentrate on implementing the following subsystems: 1) Internet Storage API with all basic file management features. 2) Centralized Server. 3) Storage Server – One storage server will be used initially. This will be extended to a distributed file storage system if time permits. 4) A basic web-based client built upon the developed APIs will de developed for demo purposes. Desirable Features In addition to the above features for the system to be complete, the following components would have to be developed. 1) Build a distributed file storage system. 2) Provide user authentication. 3) Provide a file sharing service, so that users may share some of their files with other users. 4) Build a reference client implementation for the Nokia N60 emulator. 5) Build an account management web-service. Plan of action Resources: 1. Linux Server hosting a webserver and database connectivity 2. Multiple Windows or Linux desktops acting as mobile clients Sl No 1 Due Date 30th Feb 2 3 4 6 7 8 9 March 6th March 20th March 30rd April 15th April 20th April 25th April 27th Milestone - Study existing solutions for internet storage access - Study of database access mechanism for the storage server - Define a set of system requirements - Define the set of APIs. - High level and detailed design of system components - Implementation of API layer - Implementation of Meta File System - Design and Implement Access Server. - Implement Reference Client implementation. - System Testing - Project Report Preparation Evaluation and Testing Method 1. Functional test: This covers the basic functionality of the product as a whole. The tester should be able to provision storage space on the server, store and retrieve data files onto the web client application 2. Performance test: Response time will be calculated for file read and write access. This will be compared to the response times when multiple clients will access the storage server. Bibliography 1. Introduction to the Open XDrive API (http://dev.aol.com/article/2007/xdrive_api) 2. The Storage Delivery Network (http://nirvanix.com/platform.aspx) 3. IFS – an Internet File System implementation based on Web services and peer-topeer technology by Stoyan Damov (http://www.codeproject.com/KB/webservices/ifs.aspx) 4. OpenDHT: http://www.opendht.org/