Proj-2014-2015-Mini datacenter portail SRS

=1.  Introduction=

1.1 Purpose of the requirements document
This Software Requirements Specification (SRS) identifies the requirements for this datacenter's webUI. The purpose of this document is to easily explain the development of this project and to provide instructions to understand and use the software.

1.2 Scope of the product
The purpose of this project is to provide an userfriendly web interface to simulate and use a small datacenter. Each node of the datacenter can perform some operations, users can interact with a group of nodes or a specific one.

1.3 Definitions, acronyms and abbreviations

 * Frontend: intern server allowing to interact with OAR-docker
 * OAR: task and resources manager
 * Docker: virtualization tools, using containers' technologies
 * Containers: VMs sharing their OS, comprising only an application and its dependencies
 * Cluster: group of nodes link together
 * Node: calculating unit

1.4 References

 * Grid'5000
 * OAR OAR is a versatile resource and task manager (also called a batch scheduler) for HPC clusters and other computing infrastructures. It's used on Grid'5000.
 * OAR-docker: oar-docker is a set of docker images especially configured for deploying your own OAR cluster. The main idea is to have a mini development cluster with a frontend, a server and some nodes that launch in just a few seconds on a simple laptop.
 * API REST API for OAR
 * Boostrap CSS
 * Datatables JQuery plugin, allowing to use tables
 * JQuery Plugin Form JQuery plugin, allowing to check form

1.5 Overview of the remainder of the document
The SRS document includes 3 main chapters : =2.  General description=
 * General description, which contains the general characteristics of the project and our implementation choices.
 * Specific requirements, which gives the main requirements of each function.
 * Product evolution, which details the different steps of implementation we chose.

2.1 Product perspective
Our project is based on a simulated infrastructure provided by OAR-docker. This cluster is made up of nodes, which can be used by only one user at a time. Our goal is to product a webUI easily understandable and usable by non-developers. As OAR-docker is designed only to test locally sub-developments' step, our webUI is not appropriate for external access.

2.2 Product functions
With this interface, users will be able to manage each node, submit a job to a node, cancel a job, create or delete a node.



2.3 User characteristics
The user can interacts with the interface even if he does not know how to manage the resources or deal with jobs.



2.4 General constraints
We have to gain access to the simulation in a private environment where docker is installed.

2.5 Assumptions and dependencies

 * Web browser which can interpret AJAX

=3. Specific requirements, covering functional, non-functional and interface requirements=

3.1 Requirement X.Y.Z (in Structured Natural Language)
Function:
 * Gather information from several nodes
 * Post information on a webUI, available from a browser

Description:
 * Generate an interface allowing to check resources' states, create or delete nodes and jobs

Inputs:
 * Information about the nodes of OAR-docker's cluster, sent in a json format.

Source:
 * OAR API

Outputs:
 * A website

Destination:
 * Searchers' team

Action:
 * Create or delete nodes
 * Affect or suppress jobs

Non functional requirements:
 * Easily usable: no user experience required
 * Small: does only need a few mega octets of space
 * Safe: specific users can do specific actions
 * Ethic: free-software used

Pre-condition:


 * Software:
 * - OAR-docker

Post-condition:

Side-effects:

=4. Product evolution= This webUI just use a part of what OAR-API can do, so it could be improved. Moreover, as OAR-docker is still in development, new functionalities can be added.

=5. Appendices= This document is inspired of the IEEE/ANSI 830-1998 Standard.

References:
 * http://www.cs.st-andrews.ac.uk/~ifs/Books/SE9/Presentations/PPTX/Ch4.pptx
 * http://en.wikipedia.org/wiki/Software_requirements_specification
 * IEEE Recommended Practice for Software Requirements Specifications IEEE Std 830-1998