Systems Development/Web Interface

Introduction
The Beowulf Clusters web portal will be and frontend application where users can:
 * Work with jobs
 * List their current jobs
 * Get information on one of their jobs
 * Kill one of their jobs
 * Start a new job
 * Work with applications
 * List available applications
 * Start a new jobs from an application
 * Get information on an available application
 * Work with projects
 * List projects they are a member of
 * Get information on a project they are a member of
 * Work with files
 * List their files
 * View one of their files
 * Delete one of their files
 * Upload a file
 * View system status messages
 * Find out where to get help

Architecture
The Web Interface will consist of two components: a frontend portal and a backend service. Separating the web interface from the Grid Engine software will allow the web interface to be hosted on a server outside the cluster. Or, one web interface could control both clusters.

Web Interface
The frontend will store as little state as possible, instead sending stateless queries to the backend on each request.

Web Service
The backend will operate as a web service, communicating with the interface over a secure channel. The data provided by the backend will allow the frontend to integrate information from multiple clusters in a single interface.

Web Interface Structure
The Web Interface will organize information into a number of distinct pages. All pages except  have a common banner with tabs allowing access to the various top-level pages.


 * / - The default page. Automatically forwards to  if the user is logged in, or   if the user is not logged in.
 * /login - The login page. Protects the web interface by requiring users with an unauthenticated session key to provide their username and password. When these credentials are submitted to this page, the user is forwarded to the page that referred them to.
 * /jobs - The default page for authenticated users. Displays a list of all the user's jobs on the left. Each job is a link to, and a Kill link targets  . The right column of the page displays the current status of each cluster the user has access to. A graphic button targets.
 * /jobs/[jobid] - The job information page for . If a user is not authorized to view , they are forwarded to.
 * /jobs/[jobid]/kill - Confirms that the user wants to kill . If a user is not authorized to kill , they are forwarded to  . If the kill confirmation is posted to this page, the job is killed and the user is forwarded to.
 * /applications - Displays a list of applications that the user has access to. Each application is a link that targets . A Start link targets.
 * /applications/[appid] - An information page about an application