Project

General

Profile

SeaScape - Browser-Based Monitoring for E906/SeaQuest

SeaScape Design:

SeaScape Server:

  • WSGI (Python based) Apache module
  • Multithreaded web application, uses the Flask micro-framework, with JINJA2 as HTML templating engine. This setup allows for a highly modular and extensible backend, acting in a parallelized (responsive) environment.
  • Communicates with the MySQL server and manages server connections in a robust way using the fault-tolerant and highly parallel PySQLPool (and MySQLdb) libraries, and a custom written querybuilder (based on the GAE query builder API).

SeaScape Client:

  • Modern interactive web application using the latest technologies (HTML5, CSS3, Javascript/ES5)
  • Interface design with Twitter's Bootstrap CSS3 framework
  • Interactivity obtained through Javascript, making use of the jQuery javascript framework for dynamic DOM modification. The plotting routines are delegated to the Flot library (a jQuery plugin using HTML5 Canvas). Both jQuery and Flot also provide the necessary fallbacks for older browsers
  • All of the custom JavaScript is designed as a loosely connected set of jQuery plugins, achieving a very high level of modularity (and therefor maintainability and extensibility).

SeaScape Installation:

The main installation of SeaScape is available on http://seaquest.fnal.gov/seascape. The performance and and uptime of the webserver is monitored on the orion server. The web traffic is analyzed via AWStats.

SeaScape is running on the web2007.fnal.gov virtual machine under the usear 'web-seaq'. To log onto this machine, ssh from an on-site machine:

ssh -x -l web-seaq web2007.fnal.gov

The code is kept in the '/home/web-seaq/htdocs/seascape' directory. Once changes are made to any files in this directory, they should be immediately reflected in the website.

If the httpd needs to be restarted, execute the following to do so:

sudo /etc/init.d/httpd graceful

SeaScape Development