| Flightdeck-UI Server, Network and Industrial Process Monitoring | ||
|---|---|---|
| <<< Previous | Next >>> | |
This chapter describes the overall software architecture of the Flightdeck-UI monitoring application components. The user interface aspects of Flightdeck-UI are covered in the previous chapter and, more generally, in the Flightdeck-UI whitepaper [Bel03].
The most common approach is to build a separate client-server infrastructure to support the monitoring operation. Servers gather the data, and clients receive it for display to the operators. the Flightdeck-UI monitoring subsystem avoids this approach, in favor of using the existing infrastructure to carry the monitoring data.
The current version of Flightdeck-UI consists of a library (version 0.1.5) and the Multi-Variable Monitor (MVM) application (version 0.1.2); both written in Python. The latter includes a graphical editor for creating control files to configure the built-in monitoring client. MVM uses plug-in modules to gather data. Each Flightdeck-UI element in an MVM panel can use a different module; this is configured via the editor.
MVM expects a getoutput function in each plug-in module. To this function, it passes a command (a string), and then filters the output through a regular and a numerical expression to arrive at the final monitored result. The standard Python commands module can be used directly by MVM.
To create a flexible monitoring client, an MVM plug-in module (called MVMurllibCmd) that uses the standard urllib is used. As MVM samples, each retrieved URL is passed through a regular expression filter, and a numerical expression is applied to the result. This fits well into the overall MVM architecture, with the URL playing the role of the command name.
The results of the above approach is that many monitoring tasks are immediately possible. Any value of interest that can be accessed from any website around the world can be monitored by MVM in minutes (knowledge of regular expressions is required, but otherwise the configuration is extremely simple through the MVM graphical editor). As an example, MVM 0.1.2 includes a pair of control files to monitor weather conditions via the NOAA website.
To provide more information for MVM to monitor, it is useful to create a program to generate digests of server logs and other information. This work is planned as the next stage of the Flightdeck-UI monitoring project (see Project Stages). The digest generator can be run by a simple cron job, triggered from a CGI script, etc. If a web server is being monitored, the resulting digest can be served directly as plain text, or secured by purely conventional means. The following section further describes the reason for the Flightdeck-UI monitor design.
The simple solution behind Flightdeck-UI monitoring has a large number of advantages over the more typical separate-server approach. These are described in the following list.
Flexibility: Zope, Apache, Squid and many other servers can be monitored by the same basic method.
The monitoring solution rides along upon existing primary server infrastructure, which must scale to its operational requirements anyway. Monitoring provides only a low incremental load, and does not compete with the primary servers for system resources, as a separate daemon would.
Administrative burden is light, since there is no additional daemons to manage. As installations become more complex, maintaining something like an extra CGI script becomes increasingly a trivial task.
There are no additional open ports to complicate firewall configuration or provide conduits for attacks on the system.
The monitoring solution can be secured by conventional means (e.g. https), with no additional security subsystem to maintain.
Developers may publish their own variables for monitoring (e.g. by displaying them in web pages with Zope or a CGI script) and introduce them without the need for administrative changes to the system.
| <<< Previous | Home | Next >>> |
| Analog Devices | Project Stages |