5 | | This is the beginning of the living document that will document the DETER testbed API> |
| 5 | The DETER API is really an interface with two sides, an outward facing side (the testbed API) that allows people to manage resources on the testbed and an inward facing side (the containers API) that coordinates the containers that make up an experiment environment. This document defines these interfaces and documents how to use them. It is a living document that will gain detail as the specification grows and implementations are put into service. At this point (July 2013) it is mostly a roadmap. |
| 6 | |
| 7 | The testbed API is responsible for managing the following things: |
| 8 | |
| 9 | Users:: |
| 10 | researchers |
| 11 | Projects:: |
| 12 | groups of related users, used to manage what users can see and do to other testbed resources |
| 13 | Experiments:: |
| 14 | a research environment that may be stored, edited, and realized on testbed resources |
| 15 | Resources:: |
| 16 | building blocks for experiments: computers, disk images, external access |
| 17 | |
| 18 | The testbed API how users ask a DETER testbed to do things for it. It will generally be called from a more user-friendly front end, tuned to the user's experience and goals, such as the evoloving DETER Beginners Interface. |
| 19 | |
| 20 | The containers API is used by the DETER control system to manage the resources that make up an experimental topology in progress. The goal of this API is to take raw resources inside the testbed that have been allocated using the testbed API, and configure them into a usable environment. Each logical element of an experiment (a computer, a router, etc.) is represented by a container which must be managed by DETER. |
| 21 | |
| 22 | Managing a container consists of: |
| 23 | |
| 24 | * Installing and configuring any virtualization software or configuring hardware |
| 25 | * This involves translating from a more generic topology/configuration description into the setup for a specific container type |
| 26 | * Configuring and starting MAGI software necessary to connect to the experiment management system |
| 27 | * Exposing and using container-specific features to provide DETER services |
| 28 | |
| 29 | We discuss the testbed API and then the containers API. Then we discuss some initial implementation details and present a roadmap for development. |