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.