Changes between Version 5 and Version 6 of NewAPI


Ignore:
Timestamp:
Jun 26, 2013 11:51:08 AM (11 years ago)
Author:
faber
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • NewAPI

    v5 v6  
    8888Resources are the physical and conceptual objects managed by the testbed that are used to build experimental environments.  They are the computers, network ports, externally routable addresses, virtual machine images, et al. from which experiments are constructed.
    8989
     90Resources are a class of objects that are user to build experiments.  Now there are are a few well known resources that are visible to the API, but generic resource objects are also supported by the API and provide a way to integrate new building blocks.  Some of the specialized resources are:
     91
     92 * computers
     93 * links
     94 * disk images
     95 * ssh keys
     96
    9097Access to and configuration of resources is affected by the project(s) a user is acting as a member of.  When a user requests resources, thay specify the projects under which they are requesting them.  A user requesting resources as a member of a project representing a university class may have access to different resources than one acting as a member of the testbed administration.  How membership affects the resources a group can claim is set by testbed [wiki:NewAdmin policy].
    9198
    9299In addition, the membership in projects controls how resources will be configured.  A resource in use by a particular project will generally be configured to be accessible to all members of that project.  A student who allocates resources as a member of a small design group while implementing a class project may later allocate resources as a member of the whole class when presenting the work to the class's TA and professor.
     100
     101==== Experiments ====
     102
     103All of the testbed API is ultimately geared toward the creation of experiments.  An experiment is:
     104
     105 A description of the experimental environment::
     106   topology of computers and other resources in which the experiment will take place, including infrastructure necessary to carryout and gather data from the experiment
     107 A set of constraints on the resources needed for experiment validity::
     108   failures of nodes or software can render an experiment invalid
     109 A procedure to carry out
     110   the repeatable sequence of events and reaction to those events that tests a hypothesis
     111 A data to be collected and methods for doing so
     112   mechanisms to understand the experiment without influencing it
     113
     114Not all experiments in the sense of the API data structure will have all these elements.  Testbeds are often used to create an environment in which to try ideas out and explore ideas without intending to reproduce the experience.  The other end of the spectrum is rigorous, repeatable hypothesis testing.  The API supports both by allowing some of these aspects to be omitted for some experiments (in the API sense).
     115
     116This API is primarily concerned with:
     117
     118 * Storing the experiment specification for repeated use
     119 * Sharing the experiment specification between users subject to [wiki:NewPolicy policy]
     120 * Assigning resources to carry out the experiment
     121 * Configuring resources using containers so that the experiment can be carried out successfully on limited resources
     122 * Initializing and supporting an experiment control system like MAGI to carry out the experiment's procedure, police invariants, and gather data.
     123
     124In order to support experiments that are making minimal use of experiment control systems, the API allows a user to manipulate a realized experiment, including
     125
     126 * viewing topology and state of containers
     127 * low-level operations on containers (start, shutdown, reconfigure)
     128
     129These interfaces use filtering and graph analysis to present useful views of large experiments.
     130
    93131
    94132