Expedient tool: a key component for OFELIA Control Framework

The OFELIA Control Framework is defined as the control plane application for OFELIA – Fp7 facility [1]. The main objective of this framework is to automate, simplify and authorize users to create projects and slices and to allocate resources inside each slice. The main resources to be manage are OpenFlow resources and virtual machines. Expedient tool is the core element of OFELIA control framework.

Expedient tool is a pluggable centralized GENI control framework that has been developed by Stanford University [2]. Its design has been inspired by the travel websites that allow a user to book flights, hotels and rental cars all within the same system. The tool has been implemented as a Web application using Python programming language and Django Web Framework.

Basically it provides two main facilities.  On the one side, it allows the user to access some simple abstract classes that resource developers can easily extend so as to build a plugin for their resource types. On the other side, Expedient tool provides a project, slice and user management environment.

It is important to stress that Expedient tool is still a proof-of-concept that yet has not been used in real production context. It is intended to be released under Open Source License and less restrictive than GPL.

Regarding Expedient tool’s architecture, it is based on a central control block that is connected to an Aggregate Manager through the corresponding plugin (see Figure 1). The Aggregate Manager is one of the main blocks that compose the control framework. It is the one that is responsible for the management of the set of resources that are underneath it. These resources will be presented to the user through Expedient user interface in an homogeneous way.

Figure 1. Expedient tool architecture

Therefore one of the main tasks that has been carried out by OFELIA people is to implement a Virtualization Aggregate Manager that will be in charge of managing Virtualization Servers. That means the creation of virtual machines inside of these servers and allowing the user to do  management actions (start, stop, delete or reboot the virtual machines, among other actions).

The hierarchical structure of the software inside the web interface -in addition to user management- is the following:

  1. Aggregate Manager addition to the control block.
  2. Project creation.
  3. Selection of the Aggregate Managers available for the project.
  4. Slice creation.
  5. Selection of the Aggregate Managers already added to the project that will be available for the slice.
  6. Resource management.

Regarding user management and authentication, at this moment Expedient uses  its own MySQL database to save authentication persistent information. On one side, users authenticate themselves against Expedient and on the other side, Expedient authenticates itself against the Aggregate Manager database. Expedient runs on top of an Apache2 server.

The different blocks that take part in the communication between the user and the resources to be managed are communicated through XML-RPC protocol. XML-RPC protocol is a remote procedure calling that uses HTTP as the transport and XML as the encoding.

In conclusion, the use of Expedient tool in order to implement OFELIA Control Framework has implied some pros and some cons. On the one hand, it is a tool that has allowed to OFELIA developers to skip all the implementation of a project, slice and resource management environment. On the other hand, an OpenFlow Aggregate Manager is also provided for Expedient tool users. It is called Optin Manager [3] and it allows to manage OpenFlow resources: flowspaces. However, there are also some important drawbacks. The most important is the fact that Expedient tool is built in Python language over Django Web framework. This is a strong restriction because it obliges developers to use these tools to implement the rest of the blocks of OFELIA Control Framework. Another important drawback is the fact that the code structure is organized in such a way that it is not intuitive for other programmers to understand.

Finally, although Expedient tool has some cons it is important to stress that it was designed with the purpose of being improved with the addition of new plugins -capable of handling all sort of different kind of resources-. In this sense, it is very positive the fact that each plugin is independent inside Expedient tool and different plugins for different resources can be developed separately [4].


[1] OFELIA Fp7 web page: http://www.fp7-ofelia.eu/open-calls/opencall-faq/

[2] Expedient tool web page: http://yuba.stanford.edu/~jnaous/expedient/

[3] Optin Manager site:


[4] Expedient Plugin Tutorial:



This entry was posted in Publications and tagged , , , . Bookmark the permalink.