OCCI’fied Amazon EC2

OCCI has been successfully mapped and implemented upon the Amazon EC2 API. The work has been carried out by TU Dortmund University in cooperation with the compute and research center GWDG. The implementation uses the rOCCI framework – more on that in a later post!

Screencast EC2 in rOCCI from Max Günther on Vimeo.


Do You Speak OCCI?

The doyouspeakOCCI Compliance Testing Facility is a Google App Engine (GAE)-based checking tool for the Open Cloud Computing Interface (OCCI) family of specifications. More specifically, it provides a full compliance test suite for the OCCI Core (GFD.183)OCCI Infrastructure (GFD.184), and OCCI RESTful HTTP Rendering (GFD.185)specifications.

doyouspeakOCCI is written in Python and heavily building on the GAE services, mainly Task QueueURL Fetch, and the webapp Framework.

Note that doyouspeakOCCI is not to be considered the “official” testing suite for OCCI endorsed by the Open Grid Forum, but rather than that, a third-party contribution which aims to be as close as possible. For a more thorough explanation, please take a look at the wiki pages.

How to Use

doyouspeakOCCI was hard to implement, but is simple to use. Just point your browser tohttp://doyouspeakocci.appspot.com, enter the base URL of your OCCI implementation, and press “Go!”.

Optionally, you can provide credentials for HTTP basic auth, if your service is secured. We strongly recommend to use a one-time test account; although we promise to use the credentials only for the compliance test, we cannot guarantee what others on the way (especially GAE) will do with them. In the near future, doyouspeakOCCI will support OAuth to ameliorate this issue.

Please note that doyouspeakOCCI records data on every test run in the GAE DataStore. This is done solely for the sake of displaying usage statistics. Within the limitations of applicable jurisdiction and the GAE Terms of Service, we will not disclose this data to anyone beyond what is being displayed on the doyouspeakOCCI web presence.

For other questions, please also take a look at the FAQ.

Where to Get

doyouspeakOCCI is available as a source code release only, which can be obtained by two ways:

Alternatively, you might want to pick one of the advertised downloads (click on the “Downloads” button in the upper right of the doyouspeakOCCI development home page at GitHub.

If you wish to run the service on your local system for testing purposes, please take a look at the doyouspeakOCCI Installation Guide for a detailed explanation on how to setup the environment.


doyouspeakOCCI aims to be a community effort, and help is always welcome. Please contact us on the mailing list to learn more.


We think that doyouspeakOCCI should be available to everyone with the utmost amount of freedom. To make sure that contributions to doyouspeakOCCI itself remain perpetually free, the code has been developed under the GNU General Public License, Version 3. The documentation coming with doyouspeakocci is available under a Creative Commons Attribution Share-Alike 3.0 License.

OCCI and OpenStack

OpenStack is one of the major players in the cloud community at the moment. Still it currently lacks an standardized Interface which can be used to manage VMs. This changes now! During the Cloud Plugfest OCCI has been demoed on top of OpenStack.

The blueprint (details on wiki) for this feature enhancement has been around a while now. And based on this blueprint a first implementation has been created.

Andy Edmonds presented the following slides during the Cloud Plugfest in Düsseldorf which highlight more details of the OCCI interface for OpenStack

As noted this work has partly been sponsored by dgsi and FI-WARE. Now on to interoperability testing and looking into getting other Standards like CDMI on top of OpenStack.

Dortmund’s Present to OCCI’s 2nd Birthday – An OCCI-libvirt Implementation

TU Dortmund University is proud to announce the official release of “OCCI4Java“, an open-source, Java-based implementation of OCCI on top of the libvirt Hypervisor Abstraction API on the second birthday of the OCCI Working Group. The first release offers a maven-based loose coupling of all three specification documents and supports all possible actions on compute resources and several actions on network and storage resources.

“After six month of intense work, we are proud to release our implementation to the public. During my collaboration with the OCCI-WG (especially Andy Edmonds and Thijs Metsch), I have gained valuable experience and had also a lot of fun.” says Sebastian Heckmann, responsible for the first maven project organization and the Core, Infrastructure and HTTP implementations.

The packages are structured along the specification documents (Core,Infrastructure, HTTP). This, along with the provisioning via Maven, allows the independent use of one or more modules in the context of other projects: other implementors can reuse either of the implemented parts, and interdependencies are automatically resolved and managed. Using this mechanism, the “Core”,”Infrastructure” and “HTTP” parts stack properly on each other. Implementation of additional flavors (i.e. new extensions for other use cases besides IaaS) can be done easily by extending the core mechanisms (such as a comprehensive action model), using software engineering best practices. The use of Spring as base framework technology ensures dynamic loading and thus loose coupling of the specific actions on infrastructure resources – third-party implementations plugin seamlessly via configurable run-time loading.

“It was a lot of work to implement every detail of the OCCI specification, but it was also a great pleasure to see that everything works.” says Sebastian Laag, responsible for parts of the OCCI and libvirt implementation.

Alexander Papaspyrou, co-author of the OCCI family of specifications, was pleased to see a complete implementation of all parts in such a short timeframe.

“The fact that two young developers are able to do a full OCCI implementation as part of a graduate student project in six months proved OCCI’s claim of implementation ease, and the enthusiastic feedback during their pioneering work helped the group to better understand idiosyncrasies in the specification text towards further improvement for future implementors.”

The release is available via GitHub and licensed under the GNU Lesser General Public License (LGPL). Feedback on issues with and improvements of the code, its documentation, or any kind of runtime problems is highly appreciated and can be communicated via the GitHub platform. If you want to join the team, please feel more than welcome to contact Sebastian Heckmann or Sebastian Laag.