The Source for Java Technology Collaboration

As the new Java.net infrastructure contains project-level wikis, this main wiki will be shut down in the near future. For wiki page export and general wiki questions please contact the site admin at communitymanager@java.net.
Java.net was hacked recently and they had to restore all content from backups. I have been told that the backups were from August 21st which means we lost all the cloudloop wiki and documentation hosted on java.net.

We are trying to get it back from another server which i had but it will take some time.

Meanwhile send any questions you have to the users mailing list or post them on the forum, and we will try our best to answer them.

-- Main.abg1979 - 2010-01-26

Quickstart


What is Cloudloop?

Cloudloop is a universal adapter for cloud storage that gives you a single common interface for storing and managing your data in the cloud. For instance, let's say you want to create an application that uses cloud storage. Typically, you would choose a provider (e.g. Amazon S3 or Rackspace) and use that provider's API to store and manage your data. However, by using a specific provider's API, you've become "locked in" to their interface. Switching to a new provider will require you to make changes to your code and create specialized scripts or tools to migrate your data to your new provider. Here are a few differences between providers that could lock you in:

  • Some providers (Amazon and Sun) use a key-value based system, whereas other providers (Nirvanix, Rackspace, and Microsoft) use a directory structure to organize data.

  • Each provider has a different authentication mechanism.

  • No standard set of management tools. Several third-party vendors have created products specific to providers, but no one has created a means of managing data across providers.

Cloudloop handles these differences, giving you a single standard Java API and command-line management tool that works with all major cloud storage providers.

Cloudloop also addresses some of the shortcomings in vendor API's. Among other features, the cloudloop API provides a folder structure, support for copying data, retry logic, and strong encryption.

Architecture

cloudloop-architecture.png

Cloudloop is a layer that sits between your application and the cloud. It routes calls to one or more CloudProviders based on your configuration and code. Currently, cloudloop only provides an API for cloud storage operations, such as copying files and directories, but the architecture is extensible to other cloud-based resources (e.g. queues, machines, databases, etc).

Adapters

In order to communicate with a CloudProvider, cloudloop requires an Adapter. The Adapter translates operations exposed in the cloudloop API to provider-specific API calls.

An adapter is a Java class that extends the CloudStoreAdapterBase class. Adapters are loaded at runtime as needed from an Adapter Repository.

Adapter Repository

The Adapter Repository holds a collection of Adapters that cloudloop uses to communicate with CloudProviders. In its basic implementation, the Repository is a directory that contains the Java .class or .jar files containing implementations of the adapters.

By convention, the adapters/ directory is located in the bin directory of the application using the cloudloop API, although you can set a custom location for this directory in the cloudloop config file.

Cloud Path

Cloudloop needs a way to locate resources (files, directories, etc) in the cloud. The mechanism it uses for this is called a "cloud path".

A cloud path is a standard Uniform Resource Identifier (URI), where the authority is the name of the store containing a file, and the path is the path to your directory or file. Here are a few examples:

 //s3/some/directory/some_file.txt
 
 //nirvanix/some/directory.some_file.txt
 
 //local/a/local/dir/
 
 /a/dir/in/default/store/

Cloud Paths could also be used to represent other resources in the cloud (e.g. queues, machines, etc). For example, to locate a machine in the cloud, you could have a cloud path:

 machine://provider/path/to/machine/machine_identifier

Management Console

The cloudloop Management Console gives users an easy way to manage cloud-based resources using the cloudloop API. The Management Console is designed to feel similar to a linux shell. And although it currently only supports basic file management operations, we eventually hope to extend the console's functionality to include management of other types of cloud infrastructure.

Topic CloudloopWiki . { Edit | Ref-By | Printable | Diffs r4 < r3 < r2 < r1 | More }
 XML java.net RSS

  

Revision r4 - 2010-02-05 - 03:56:19 - abg1979