Changes between Version 10 and Version 11 of Tutorials/oMF/tut3


Ignore:
Timestamp:
May 5, 2015, 2:33:11 AM (9 years ago)
Author:
seskar
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Tutorials/oMF/tut3

    v10 v11  
    1 = Exercise 3: Socket Programming using New !MobilityFirst NetAPI =
     1== Exercise 3: Socket Programming using New !MobilityFirst NetAPI ==
    22
    33[[TOC(Tutorials/oMF*, depth=2)]]
    44
    55
    6 == !Design/Setup ==
    7 
    8 === Objective: ===
     6=== !Design/Setup ===
     7
     8==== Objective: ====
    99
    1010In this exercise we will learn to write, compile, and run a simple content distribution application using !MobilityFirst's new socket API. In particular we will focus on its Java release.
    1111
    12 === Pre-requisites ===
     12==== Pre-requisites ====
    1313
    1414 * Experimenters are expected to have basic networking knowledge and familiarity with Linux OS and some of its tools (command line tools, ssh, etc.).
     
    1616 * Some familiarity with the !MobilityFirst terminology.
    1717
    18 === Deploy the Network ===
     18==== Deploy the Network ====
    1919
    2020This tutorial assumes that a 4 nodes topology has been already established in one of the Orbit sandboxes or the grid:
     
    6666your nodes have been imaged correctly.
    6767
    68 === Deploy Network ===
     68==== Deploy Network ====
    6969
    7070Software and experiment control in the ORBIT testbed can be automated greatly using the OMF framework. An OMF control script is written in Ruby and allows the experimenter to specify the set of nodes, their network configuration, to specify software components and arguments, and to control their execution on one or more nodes. We will use an OMF script to bring up 4 ORBIT nodes to host our topology, with the corresponding software components.
     
    7272We will first introduce the main details of the scripts that will be run and then we will step to the execution process itself.
    7373
    74 ==== Software Component Specification ====
     74===== Software Component Specification =====
    7575
    7676The following snippet shows the specification of the !MobilityFirst components along with the required arguments. A typical application will have at least a brief description, a path for the associated binary to execute and a list of properties that correspond to the parameters  that will be passed once starting the executable.
     
    127127 * Most of the client settings are located in a configuration file pre-loaded on the ORBIT image in the folder ''/usr/local/src/mobilityfirst/eval/orbit/conf/''.
    128128
    129 ==== Setting up the Software Node Groups ====
     129===== Setting up the Software Node Groups =====
    130130
    131131The following snippet shows how the node groups for the routers are setup in the OMF control scripts. Node groups allow experimenters to use single statements to set configuration (e.g. network interfaces) and execute commands across all nodes belonging to the group.
     
    216216[[CollapsibleEnd]]
    217217
    218 === Develop Sender and Receiver Applications with MF Socket API ===
     218==== Develop Sender and Receiver Applications with MF Socket API ====
    219219
    220220As per the goal of the exercise, we will introduce the reader to the new MF Socket API. Two simple Java applications skeletons have been made available on the nodes. These applications consist of a sender, that takes as an input a file and transmit it to a receiver that once has received the complete file anwers back with an acknowledgement.
     
    371371 * Named operations: in contrast with BSD Sockets, named communications are implemented and name to address resolution is handled in conjunction between the network stack and the network components. 
    372372
    373 == Execute ==
     373=== Execute ===
    374374
    375375As in the previous tutorials, you will need to start the experiment via an OMF script. Download the script to the orbit console copying and pasting the following command in your terminal:
     
    421421This will trigger the transmission of a file of 10MB size directed to host 102.
    422422
    423 ==== What's next ====
     423===== What's next =====
    424424
    425425In this tutorial we only scratched the surface of what is possible to implement using the new Socket Network API. A few examples on what can be done:
     
    432432The Network API is available both for Java and C/C++ applications.
    433433
    434 == Finish ==
     434=== Finish ===
    435435
    436436Once the application has successfully completed its task, follow these steps to complete the experiments:
     
    438438This will stop all the applications and will conclude the experiment.
    439439
    440 === References ===
     440==== References ====
    441441
    442442For more information regarding the !MobilityFirst project, visit the project page: http://mobilityfirst.winlab.rutgers.edu/