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.
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':
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
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