Skip to content

Monitoring Web Application

Mark A. Greenslade edited this page Apr 2, 2015 · 14 revisions

Overview

The web application is built as a rich internet application (RIA) that interacts with a RESTful web service (API). The RIA pulls information from the API whenever needed, e.g. at startup or in response to user interaction. The RIA recieves notifications from the API whenever appropriate, e.g. whenever a simulation starts or ends.

Thus it will be observed that the communication channel between the RIA and API is 2-way, i..e push and pull. As a result the RIA can be considered to be a real time application exhibiting very low latency between a simulation event being fired from a computing centre and the RIA receiving the event notification.

Technology Stack

The RIA is constructed as a single HTML page which is rendered by an embedded javascript application and is styled via CSS stylesheets. The RIA leverages the following 3rd party plugins:

The API is constructed as a python based web server application. As well as the standard HTTP communication protocol it also supports the Web Sockets (WS) communication protocol thereby supporting the construction of real-time web applications that push notifications to connected clients over web socket channels. The API leverages the following:

  • python - a general purpose programming language
  • tornado - a Python web framework and asynchronous networking library
  • MongoDB - a NOSQL open source database
  • PostgreSQL - a relational open source database
  • RabbitMQ - an open source messaging server supporting AMPQ

Clone this wiki locally