Virtual Mobile Storage – A Distributed Internet Storage Service Platform

advertisement
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/
Download