The system is comprised of three main Perl scripts: dsplyserver.pl, nph-dsply.pl, and dsplystatus.pl as well as several configuration and support files (Fig. 2).
As is obvious from the name, dsplyserver.pl, is a server script and must be running on the host system before it is needed. It sets up a TCP/IP socket (Stevens 1990, 1992) and waits for other processes to establish a connection to it. When this occurs, it captures the message from the connecting system and parses it. If the message contains a request for a new data display, typically from nph-dsply.pl, the server adds that connection to its list of display system clients or 'listeners'. If the message contains a request for status, typically from dsplystatus.pl, the server returns the list of current listeners and their connect times. If neither of these, the message is treated as data to be displayed and after some formatting, it is sent on to each listener in the list.
The listening and display tasks are handled by nph-dsply.pl. When the web browser on the user's system invokes its uniform resource locator (URL), the web server on the host system executes the script, which then connects to the display server as a listener. The CGI mechanism (Gundavaram, 1996), HTTP and HTML (Musciano and Kennedy, 1998) are used to exchange information with that browser and its user. By using 'no parsed headers' (NPH) mode, the connection from the display server through nph-dsply.pl and the web server to the user's browser is maintained, allowing the displayed web page to be updated as data becomes available. When implemented using the Multipurpose Internet Mail Extensions (MIME) type called 'multipart/x-mixed-replace', the entire page is overwritten with each update. This technique is known as 'server push'.
In order to examine the status of the display system, the CGI script dsplystatus.pl is run from the user's browser using the method described above. It generates a web page that presents an HTML table containing the names and connect times of the listeners that are currently connected to the display server.