Prev Up Next Index
Go backward to 5.1 Server Architecture
Go up to 5.1 Server Architecture
Go forward to 5.2 Installing an OPeNDAP Server

5.1.1 Service Programs

At this point, the request for data, encoded in a URL, has caused the httpd server to execute the CGI program that represents the OPeNDAP server. The OPeNDAP server, in turn, executes one of several different service programs, and returns the result of that execution to the client. Though there may be others available on a given machine, five of the services constitute the core functionality of the OPeNDAP server:

NOTE: There are other important OPeNDAP services. For a description of all the OPeNDAP services, see Section 2.2.

The OPeNDAP server is structured as a dispatch function, invoking ancillary helper programs to provide its services. Installing an OPeNDAP server involves making sure that each of the required helper programs is available to the server software. Here is a table of the helper programs required for each of the OPeNDAP services for the netCDF server. For another OPeNDAP server, the names of some of the helper programs would have a different root (e.g. ff_ for the FreeForm server, jg_ for JGOFS, etc.).

OPeNDAP Services, with their suffixes and helper programs.
 

Service Suffix Helper Program
Data Attribute .das nc_das
Data Descriptor .dds nc_dds
OPeNDAP Data .dods nc_dods
ASCII Data .asc or .ascii asciival
Information .info usage, see Section 5.2.3 for configuration information.
WWW Interface .html None
Version .ver None
Help Anything else None

The service programs are started by the CGI depending on the extension given with the URL. If the URL ends with `.das' then the DAS service program is started. Similarly, the extension `.dds' will cause the DDS service to run and so on. The CGI program (the "dispatch" script), which serves to dispatch the request to one of the three service programs, can be very simple. In the servers distributed with OPeNDAP, the CGI is simply a shell script that takes its own name and catenates the enclosed URL suffix. The services, being more complex programs, will generally be written in C or C++.

On the client side, the user may never see the `.das,' `.dds,' or `.dds' URL extensions. Nor will the user necessarily be aware that each URL given to the OPeNDAP client produces three different requests for information. These manipulations happen within the client library, and the user need never be aware of them.

There may be more than five service programs for a given server implementation.14 A server may provide other "services," such as the catalog service, or a service specific to a particular data implementation. The three data services, however, constitute the minimum configuration for a functional server. All three services are involved in data requests, as the client program will use the output from the _dds and _dds services to allocate memory and define parameters for the output of the _dods service, which is the actual data requested. The remaining two services, the ASCII and information services, are primarily intended for interactive use, as they make dataset and service information directly available to a browser client, such as Netscape.


Tom Sgouros, August 25, 2004

Prev Up Next