IaaS Framework

Infrastructure as a Service Framework



The IaaS Framework is a generalized approach to the outcome of years of research under the UCLP research programs funded by CANARIE. It is now a common practice to create applications to connect your devices to the Web. As the next generation Internet blossoms, more organizations and individuals seek to share their hardware with others. This phenomena known as Infrastructure as a Service (IaaS) and consists of creating a software representation of the device in question to provide interactivity and shared infrastructure. However, it is complex enough to develop software only applications or hardware device drivers, and keeping the two synchronized is a complex task. Instead of reinventing the wheel for each different device we want to make accessible on the Internet, the IaaS Framework provides a streamlined approach at creating web applications, portlets, web services or middleware for hardware devices.IaaS Framework is built on OSGi and the Spring Framework and uses, Hibernate and other proven open-source technologies and can potentially provide a one-stop-shop to your virtualization needs. However, because of its modularity it is possible to choose only the parts you need and use other frameworks like Grails, Struts or Appfuse to provide the final interface. Following Spring's best practices, this framework was designed to be non-intrusive. The IaaS Framework is composed by four modules (engines, resources, services and tools) that allow create applications to connect your devices to the Web. For each module there is not direct dependency, it is therefore possible to use the Framework to create simple web services without any need to communicate with a hardware device or external application.


The purpose of this project is to design and develop an open source software framework to manage infrastructure as a service and virtualisation. This modular software framework will provide the programming model, common modules and a runtime platform to host the different components. The targeted framework must provide the following features:

  • Hardware and software resource abstraction, synchronization and modeling. Heterogeneous hardware and software resources must be abstracted and represented in order to interact with them, for management and configuration purposes. The framework must provide means of adding support for new devices in a simple and modular fashion.
  • Resource Management. Provide a unified approach towards the management of the abstracted resources, by defining common management operations that the different types of resources may or may not implement.
  • Remoting technologies for the remote interaction with the abstracted resources. The software developers that use the framework to develop their applications should be able to choose within a myriad of remoting technologies (HTTP, REST, SOAP, XML-RPC, JMX, RMI, or others) to remotely expose the functionality provided by their resources.
  • Security, accounting, persistence. The framework should provide a security model and provide security libraries as plug-ins to let the software developers implement authentication and authorization mechanisms. Also, logging mechanisms that can be plugged into different accounting and billing solutions are necessary. A persistence framework that provides access to different persistence providers is also one important requirement for this framework.
  • Dynamic, modular component model and runtime platform. It is of crucial importance that the framework provides a modular component model, where new modules can be plugged in an out, discovered and used at runtime. A runtime platform that serves as the hosting environment of all the modules (the framework ones plus the ones developed by other developers) is a key requirement.
  • A Software Development Kit (SDK) to allow developers to quickly integrate the framework into their development environments, and to ease up the framework’s use.
  • Java open source framework for creating IaaS and other infrastructure (resource) management applications or middleware.
  • Software implemented using the most advanced and modular Java technologies: the Open Services Gateway Initiative (OSGi) and the Spring Framework.
  • This project allows organizations and individuals to share software and hardware for different applications and users.
  • Pluggable Authentication, Authorization and Accounting are built in the software.
  • Applications based on the IaaS Framework allow exploiting new business models based on the infrastructure resource sharing .
  • Tools provided by the framework are open source (ASLv2 license), so every organization will be able use the Framework as a starting point of their research project or commercial product.


07/2008 to 12/2010
Autofinançat per cada participant
100.000 €