Changes between Version 12 and Version 13 of Software


Ignore:
Timestamp:
Nov 23, 2007, 1:15:44 AM (16 years ago)
Author:
thierry
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Software

    v12 v13  
    3131The main component of the Experiment Management Service is the '''Node Handler''' that functions as an Experiment Controller.  It multicasts commands to the nodes at the appropriate time and keeps track of their execution.  The '''Node Agent''' software component resides on each node, where it listens and executes the commands from the '''Node Handler'''. It also reports information back to the '''Node Handler'''.  The combination of these two components gives the user the controls over the testbed, and enables the automated collection of experimental results.  Because the '''Node Handler''' uses a rule-based approach to monitoring and controlling experiments, occasional feedback from experimenters may be required to fine tune its operation. Figure 4 illustrates the execution of an experiment from the user's point-of-view.
    3232
    33 Finally, using the '''Node Handler''' (via a dedicated experiment called ''imageNodes'', see here), the user can quickly load hard disk images onto the nodes of his/her experiment. This ''imaging process'' allows different groups of nodes to run different OS images. It relies on a scalable multicast protocol and the operation of a disk-loading ''Frisbee'' server from M. Hibler et al. ([http://www.cs.utah.edu/flux/papers/frisbee-usenix03-base.html link]).
     33Finally, using the '''Node Handler''' (via a dedicated experiment called ''imageNodes'', which will be described [wiki:Tutorial/HowToImage later]), the user can quickly load hard disk images onto the nodes of his/her experiment. This ''imaging process'' allows different groups of nodes to run different OS images. It relies on a scalable multicast protocol and the operation of a disk-loading ''Frisbee'' server from M. Hibler et al. ([http://www.cs.utah.edu/flux/papers/frisbee-usenix03-base.html link]).
    3434
    3535[[Image(OMF-User-View.png)]]
    36 [[BR]]Figure 1. Execution of an Experiment from a User's point-of-view
     36[[BR]]Figure 4. Execution of an Experiment from a User's point-of-view
    3737
    3838=== 2.2 Measurement & Result Collection ===
    3939
    40 The '''Collection Server''' collects experimental results.  There is one instance of the '''Collection Server''' per experiment.  The Berkeley database is used for scalability, and an SQL database is used for persistent data archiving.  One multicast channel per experiment is used for logical segregation of data and for scalability.
     40The '''ORBIT Measurement Framework & Library (OML)''' is responsible for collecting the experimental results. It is based on a client/server architecture as illustrated in Figure 5 below.
    4141
    42 Besides ORBIT Services, other ORBIT-developed software includes '''Libmac''' and the '''ORBIT Measurement Framework'''.  Each provides procedures that may be called in user-developed applications.  '''Libmac''' is a user-space C library that allows applications to inject and capture MAC layer frames, manipulate wireless interface parameters at both aggregate and per-frame levels, and communicate wireless interface parameters over the air on a per-frame level.
     42One instance of an '''OML Collection Server''' is started by the Node Handler for a particular experiment execution. This server will listen and collect experimental results from the various nodes involved in the experiment. It uses an SQL database for persistent data archiving of these results.
    4343
    44 The '''ORBIT Measurement Framework (OML)''' has a client/server architecture illustrated in Figure 4 below.  '''OML''' uses IP multicast to send data to the measurement server as it is collected.  '''OML''' includes a client application programming interface (API).  A developer can use this client API through a web interface to define the measurement points and parameters for his or her application.  Such definitions are saved as an XML-based configuration file and source code for the measurement client is automatically generated that contains application-specific methods that handle type-safe data collection.  This source code can be compiled and linked with the application.
     44On each experimental node, one '''OML Collection Client''' is associated with each experimental applications. The details and "How-To" of such association will be presented in a following part of this tutorial. In the context of this introduction to the testbed, the client-side measurement collection can be viewed as follows. The application will forward any required measurements or outputs to the OML collection client. This OML client will optionally apply some filter/processing to these measurements/outputs, and then sends them to the '''OML Collection Server''' (currently over one multicast channel per experiment for logical segregation of data and for scalability)
     45
     46There are two alternative methods for the user to interface their experimental applications with the '''OML Collection Clients''' and to define the requested measurement points and parameters. These methods and measurement definitions will be presented in details later in this tutorial.
    4547
    4648[[Image(oml-50.png)]]
    47 [[BR]]Figure 4. '''OML''' component architecture.
     49[[BR]]Figure 5. '''OML''' component architecture.
    4850
    49 User-developed software includes the script for the experiment, the application(s) and any modifications to system software.  The user-developed script for the experiment contains three static components:  the configuration of nodes, the configuration of the application software, and the configuration of the '''ORBIT Measurements Framework and Library (OML)'''.  The application is one or more programs that implement the intended behavior of the active nodes in the experiment.  Modified system software may include modified Linux components or custom device drivers.  Each of these types of user-developed software is covered in more detail in the Testbed Experiments section of this tutorial.
    50 
    51 
     51Finally, the ORBIT platform also provides the '''Libmac''' library. '''Libmac''' is a user-space C library that allows applications to inject and capture MAC layer frames, manipulate wireless interface parameters at both aggregate and per-frame levels, and communicate wireless interface parameters over the air on a per-frame level. Users can interface their experimental applications with '''Libmac''' to collect MAC layer measurements from their experiments. This [wiki:Documentation/Libmac other section] of the documentation provides more information on '''Libmac''' and its operations.