“As open source, community-driven software, OpenNebula is fully committed to standards, ensuring that our users can avoid vendor lock-in. We provided the first reference implementation of the OCCI specification, and have many users and innovative projects that are building solutions around this implementation, so contributing to create an open ecosystem.” – Ignacio m. Llorente. The OCCI implementation in OpenNebula is available through the software ecosystem community web site and is based on the rOCCI framework.
rOCCI is an OCCI 1.1 compliant server implementation written in Ruby. Through its modular architecture it can be easily extended to support arbitrary Cloud Frameworks.
Work on rOCCI started as part of the EU FP7 project SLA@SOI under the working name OGF-OCCI in early 2011. The goal was to develop an OCCI 1.1 compliant server which initially supports OpenNebula and can later be easily extended to support other Cloud Frameworks. As OpenNebula offered a robust Ruby API binding, it was decided to develop the project in Ruby as well. Soon after work on the implementation started it was accepted as an official OpenNebula Ecosystem project.
Interoperability with other implementations of the OCCI standard was ensured by taking part in testing sessions during the SNIA Cloud Plugfests and using OCCI compliance tools such as the OCCI ANTLR Grammar and the DoYouSpeakOCCI tool. For the last Plugfest taking place at the end of February 2012, the project was renamed to rOCCI in order to distinguish it from the name of the standard (OGF-OCCI).
The current architecture of rOCCI is shown in the following overview:
Current features include:
- Full OCCI 1.1 support
- Experimental support for EC2 (current development version)
- Easy deployment in an Nginx or Apache webserver by using Phusion Passenger
- Usage of the official OCCI ANTLR grammer for parsing / validation
- Passing the DoYouSpeakOCCI Compliance Testing Facility
- Support for the current draft of the OCCI JSON rendering specification
- Modular, easy to extend backend management
- Support for OpenNebula 3.0 and 3.2
- Dummy backend for testing
- Support for HTTP basic authentication
- Experimental support for X.509 certificate authentication (current development version)