Changes between Version 3 and Version 4 of OMF

Apr 6, 2019, 3:51:09 PM (3 years ago)



  • OMF

    v3 v4  
    1 = OMF Documentation =
     1[[TOC(heading=OMF Documentation, OMF/*, reverse, depth=1)]]
    3 We have separate wikis for each OMF version, please choose one you are interested in:
     3= OMF Documentation =
    5 [[TOC(heading=OMF Documentation, OMF/*, reverse, depth=1)]]
     5== What is OMF? ==
     7OMF is a generic framework for controlling and managing networking testbeds. From an experimenter's perspective OMF provides:
     9* a domain-specific language, named OEDL, which allows the user to:
     10 * describe the resources needed for an experiment, and their required configuration
     11 * describe the applications to use in an experiment, and the measurements to collect from them
     12 * describe the different tasks to perform during an experiment, and the time or event that trigger them
     13* a set of software tools, which:
     14 * accept as an input the previously described experiment
     15 * initialize and configure the needed resources with the required configuration and applications
     16 * send commands to the resources to effectively execute the described experiment tasks at the appropriate time/events
     17 * collect measurement data from the applications and/or the resources
     18 * access and analyse the resulting experimental data
     20This overview of OMF from an user's perspective is illustrated in the Figure 1:
     23Figure 1: OMF Overview
     25As mentioned earlier, the input to OMF is an experiment described with OEDL. OMF deploys and configures this experiment on the testbeds based on the user's description. It then initiates and controls the execution of the experiment. While the experiment is being executed, data is measured and collected according to the user's description. This data is stored in a database for later analysis, or re-used by the OMF's control functions to steer some aspects of the experiment.
     28== System Architecture from a User's Perspective ==
     30Figure 2 shows the OMF system architecture and entity interactions when running an experiment. The OMF entities are represented in red and yellow boxes on this figure. Please refer to the OMF Glossary for the detailed definition of the terms on this figure.
     33Figure 2: OMF System Architeture
     35These are the steps and interactions that occur when an experiment is ran with OMF:
     37* The experimenter Alice starts a new instance of an Experiment Controller (EC), and passes her Experiment Description (ED) to it
     38* The EC interprets the ED, and sends some requests to the Aggregate Manager (AM) of the testbed to ask for the initialisation and configuration of Alice's required resources
     39* The multiple services of the AM initialise and configure these resources (e.g. copy an entire disk image or just some application packages on the resources, etc...)
     40* When the resources are ready, the EC sends commands to the Resource Controllers (RCs), which run on each of these resources
     41* The RCs interpret these commands and execute the actions, such as starting up application M, changing the parameters of application N, etc...
     42* At this stage the experiment is "running"...
     43* While the experiment is running, the applications may send measurement data to the Measurement Library (ML)
     44* The ML may execute some pre-processing filter operation on the measurements (e.g. compute average over a window, etc...)
     45* The ML sends the pre-processed measurements to the Measurement Collection Service, which stores them in a unique database for this experiment
     47As illustrated on Figure 2, OMF allows multiple researchers to run many experiments concurrently. However, the current OMF release does not support resource virtualization yet. Therefore, concurrent experiments have to use disjoint set of resources (e.g. Alice's experiment uses resource 1, 2, and 3, while Bob's experiment uses resources 7 and 8). Furthermore, when using wireless resources, concurrent experiments need to use disjoint separate channels to avoid interferences. The testbed booking/scheduling service allows such selection.
     49Please refer to the OMF Glossary for the detailed definition of the OMF entities on Figure 2.
     51== More on Data Measurement, Collection and Analysis ==
     52OMF uses the OMF Measurement Library (OML) for collecting experiment results.
     54OML enables real-time collection of data from the various applications being run during an experiment. It provides a Measurement Library, which enables experimenters to define measurement points inside their C/C++ application source code. OML also allows experimenters to define and configure filters to apply some pre-processing function to the data collected from a measurement points. Furthermore, in case the source code of an application is not available, OML provide a simple scheme to "wrap" around such an application, and collect its outputs as measurements.
     56The following Figure 3 provides a schematic view of OML interaction with OMF
     59Figure 3: OML interaction with OMF
     61OML is based on a client/server architecture, and comprises an OML Collection Server and an OML Measurement Library (Client). The Collection Server constantly runs as a daemon on a testbed server (e.g. the server running the AM). It collects results from the various resources specified in the experiment. An OML Client is available as a library on each resources used by an experiment. The applications running on a given resources forward the required measurements to their OML Client. The OML Client applies any defined pre-processing filters on this data and sends the result to the OML Collection Server.
     63Once an experiment is complete, the stored measurements or results can be accessed for further analysis. Currently, these measurements are stored in an SQLite database. User can then manipulate these data using SQL queries or export them in some other format for further processing and analysis.
     65For detailed information on using OML with OMF, refer to the [wiki:/OMF/OMF60/user/guide OMF User Guide].
     67=== Note about OMF/OML: ===
     68OML has been designed and developed as a set of software completely independent from OMF (although OMF has some ''hooks'' included to work seamlessly with OML when present).
     69In other words, OML can be used without OMF, and it is in fact being used in such context by third party institutions at the moment.
     70Similarly, OMF can also be used without OML, i.e. as long as your experiment or applications are not using OML measurement points, OMF will run your experiment happily. However, you will then need to deploy your own measurement collection scheme.
     71== Next... ==
     72 * You are an OMF users, e.g. researchers, experimenters, go on to the [wiki:/OMF/OMF60/user/guide OMF User Guide]
     73 * You are a testbed operator, you may want to download and install OMF on your testbed
     74 * You are a developer, you may want to check out OMF's development notes, or [ browse the source repository], or check out the [ open development issues]
     77Each OMF version has a separate set of documentation pages:
    779* [wiki:/OMF/OMF60 OMF version 6.0]