next up previous contents
Next: Client/Server and Program/Library Interfaces Up: Introduction Previous: Introduction   Contents


Process Configuration

The collection of processes involved in a single data transfer from a remote archive to a user program is shown in Figure [*]. In the figure, the components of each process are also shown. Initially the user program, which has been re-linked with the surrogate API implementation2, sends a Uniform Resource Locator (URL) to the HTTPD. HTTPD decodes the URL and executes the named CGI, passing to it parameters via environment variables. The CGI is run in a separate process, so once started, it operates independently from HTTPD. The CGI in turn examines its arguments and determines which of the DODS filter programs to execute. The filters write to standard output which, in this case, is a socket connecting the filter to the remote client (because the filter is a child process of the CGI which in turn is a child of httpd; httpd's standard input and output are connected to the remote client).

Each machine that makes data available to DODS clients must, first and foremost, have all the data to be accessible on line. By on line we mean that the data must be accessible without human intervention and without significant delay. It is unreasonable to expect that data to be incorporated into a user's display package will take a day to be transferred to their computer! Ideally, DODS users will not be able to tell that data they access is remote. This does not mean that data must be on a hard disk, however. Data could be stored on an auto changer, in a special purpose database machine or other mass storage device.

In addition to an on line data set, data providers will need to run HTTPD and will need to install a CGI and a set of filter programs. HTTPD is used as a network interfaceq, security and access logging tool for DODS. It is a standard piece of software distributed by National Center for Supercomputing Applications and is already installed on many computers.

In addition to HTTPD, a DODS data server consists of a CGI and a least three filter programs (See Figure [*]). The three filters handle, respectively, the client's requests to get the Data set Attribute Structure  [*] (DAS), the Data set Description Structure  [*] (DDS) and to read the values of variables in the data set. These three executables along with HTTPD and the dispatch CGI make up a complete DODS data server.

Figure: Run-Time Processes. The client connects to a HTTP server which then forks and executes the CGI/Translation module software. The latter is used to access the data.
\begin{figure}\centerline{\psfig{figure=process-config4.ps}}
\end{figure}

Figure: Executables needed to support access to a data set for DODS clients. This collection of three CGIs along with the appropriately coded translation modules and linked to the original implementation of the API used to access the data set constitutes a Data Server for DODS.
\begin{figure}\centerline{\psfig{figure=server-executables.ps}}
\end{figure}


next up previous contents
Next: Client/Server and Program/Library Interfaces Up: Introduction Previous: Introduction   Contents
James Gallagher 2004-04-21