Installation Guide


In an OMF testbed, everything is a resource. The entity that controls one or multiple resources is called Resource Controller (RC). The RC can run directly on the resource (e.g. a PC), or run on a separate computer that can control the resources (e.g. a bunch of sensor nodes or an OpenFlow switch). OMF is designed to support many different types of resources, and additional RCs for those resources can make use of our OMF APIs.

All communication in OMF is done via Publish/Subscribe (PubSub). By default OMF uses AMQP for that, but other messaging layers such as XMPP are supported. Each OMF component must be able to talk to at least one PubSub server, although there can be multiple PubSub servers used in an experiment. The examples in this guide are using XMPP.

The experimenter uses the Experiment Controller (EC) to run the experiment script and steer the resources. The EC can be installed on a user-facing machine inside the testbed, or alternatively on the user's own computer.

OMF components

Prepare Your Environment

OMF could run under Ruby with versions not earlier than 1.9.3. Your operating system most likely have this version available by the time of writing this documentation. If you do require information regarding installing Ruby, please see official ruby site, or simply search for it.

Some additional packages shall be installed in order to compile native extensions for certain dependent libraries, for example 'Eventmachine':

Under Ubuntu/Debian

sudo apt-get install ruby-dev build-essential libssl-dev

If you decided, for some particular reasons, to choose XMPP over AMQP as your communication layer, you also need additional libraries which handle XML parsing.

sudo libxml2-dev libxslt-dev

Under Fedora

sudo yum update -y audit

sudo yum install -y ruby-devel make gcc gpp gcc-c++ openssl-devel

Again, ONLY needed for XMPP and XML

sudo yum install -y libxml2 libxml2-devel libxslt libxslt-devel

You Do Need A Pub/Sub Server

Setup Resource Controller (RC) To Control Resources

Use Experiment Controller (EC) To Execute Experiments