Project abstract and context

Introduction - Cloud computing overview

Cloud computing is the provision of dynamically scalable and often virtualised resources as a service over the Internet on a utility basis. The main advantage of this approach is that users need not have knowledge of, expertise in, or control over the technology infrastructure in the "cloud" that supports them.

Cloud computing services often provide common business applications online that are accessed from a web browser, while the software and data are stored on the servers.

Recent interest in cloud computing has been driven by new offerings of computing resources that are attractive due to per-use pricing and elastic  scalability, providing a significant advantage over the typical acquisition and deployment of equipment that was previously required. The effect has been a shift to outsourcing of not only equipment setup, but also the ongoing IT administration of the resources as well.

Cloud storage

Cloud storage overview

Cloud storage, in particular, has also recently gained a great amount of popularity due to may of the same reasons as Cloud Computing. Cloud storage delivers virtualized storage on demand, over a network, based on a request for a given qulity of service (QoS).  There is no need to purchase storage or even provision it before storing data. One only pays for the amount of data he actually consumes.

Advantages of cloud storage

Cloud storage claims many of the advantages that Cloud computing provides, such as:

- Agility improves with users able to rapidly and inexpensively re-provision storage infrastructure resources;

- Cost is claimed to be greatly reduced and capital expenditure is converted to operational expenditure;

- Device and location independence.

-Reliability improves through the use of multiple redundant sites, which makes cloud storage suitable for business continuity and disaster recovery;

- Scalability via dynamic ("on-demand") provisioning of resources on a fine-grained, self-service basis near real-time, without users having to engineer for peak loads;

- Security typically improves due to centralization of data, increased security-focused resources, etc., but concerns can persist about loss of control over certain sensitive data, and the lack of security for stored kernels.

Some of the use cases

Cloud storage can be used in many different ways. For example:

- local data, such as on a laptop computer, can be backed up/migrated to a cloud storage;

- a virtual disk can be synchronized to the cloud and distributed to other computers;

- the cloud can be used as an arhive to retain data for regulatory or other purposes.

The purpose of this project, or how can the concept of cloud storage be improved

The cloud storage is a great concept and a great bussiness model, higly scalable and portable, and as suchs it has been adopted by many of the major players in the world, like Amazon (Amazon S3, Amazon Simple DB) or Windows Live SkyDrive.

Given the diversity of the offerings and the fact that one can make us of multiple cloud storage services, limiting the access of the storage resources only to the web browser interface can be time consuming.

This is why, integrating cloud storage services with the current operating systems shell interface, by accessing them as if they were local files and folders can greatly increase the quality of the user's experience with various cloud storage providers.

How does this work

The software that shall provide this kind of functionality shall act as a middleware between the user and the user interface and the storage backend, and consequently it has to provide the following functions:

- shell extensions that assist the user in accessing  his cloud storage backend;

- file system drivers and filters that provide the virtualization of the storage backend image;

- ensure communicaton between the local machine and the cloud storage devices/machines over the network, in a secure manner.

Current context

An example of how this concept can be implemented is provided by Gladinet's Cloud Desktop a tool that integrates cloud services (including cloud storage) with the user's desktop or laptop computer. More details about this software can be found here.

An excelent article on cloud computing ca be found on Wikipedia: http://en.wikipedia.org/wiki/Cloud_computing.

The Storage Networking Industry Association and the Open Grid Forum have also produced an article on cloud storage, that can be found here.