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.