Apache jclouds is a framework provided by the Apache Software Foundation. The framework is written in Java and serves the purpose to provide an independent library for typical cloud operations. At present (November 2014), Apache jclouds provides 2 kinds of services: a compute service and a blob service [Apa14b]. Apache jclouds can be used from Java and Clojure. The library offers an abstraction for more than 30 cloud providers, including AWS, Azure, OpenStack and Rackspace.
Apache jclouds is primarily built for infrastructure interoperability. As for the platform layer, only blob storage is currently supported. The focus of jclouds is to support a large variety of platforms over implementing a large variety of services. The Blob storage in Apache jclouds works with the concept of Containers, Folders and Blobs. The library supports access control lists for objects. The upload of Multipart objects is also supported, which allows jclouds to handle large files. [Apa14c]
[Apa14d] Apache libcloud is similar to Apache jClouds. The library is developed as an abstraction to different cloud providers. Libcloud currently supports more than 30 different providers. Libcloud is available as a Python library.
Libcloud is infrastructure-focused with most of it’s implementations done for computing, DNS and Load balancing. There is also an object storage implementation available.
This post is part of a work done on Cloud interoperability. You can access the full work here and the list of references here.