Go backward to 1.1.2 An Example: Using OPeNDAP
Go up to 1.1 Why Use OPeNDAP to Read Data?
Go forward to 1.2 Providing Data with OPeNDAP
1.1.3 The OPeNDAP Client
OPeNDAP uses a client/server model. As mentioned previously, the OPeNDAP servers are simply httpd web servers, equipped to interpret an OPeNDAP URL sent to them. (See Chapter 5.) The OPeNDAP client
program can be any program that uses one of the supported APIs, such
as JGOFS or netCDF.3
Without OPeNDAP, an application program that uses one of the common data
access APIs such as netCDF will operate as shown in figure 1.1.3.
The user
makes a request for data from the application program. The program in turn
uses procedures defined by the data access API to access the data,
which is stored locally on the host machine. Some APIs are somewhat more
sophisticated than this, of course, but their general operation is
similar to this outline.
The Architecture of a Data Analysis Package.
The operation of an OPeNDAP client is illustrated in figure 1.1.3.
Here, the
same application program that was used in figure 1.1.3
has been linked
with an OPeNDAP version of the data access API. Now, in addition to being
able to use local data as before, the application program is able to access
data from OPeNDAP server anywhere on the Internet in the same manner as the
local data.
To make some program into an OPeNDAP client, it must only be re-linked with
the OPeNDAP implementation of the supported API library. This is a simple
process, generally requiring only a few minutes. The process will
create a program that accepts URLs, specifying a location for the data
somewhere on the Internet, in addition to file pathnames which only
specify a location on the local platform's file system. (See
Section 3.1.)
The Architecture of a Data Analysis Package Using OPeNDAP.
OPeNDAP also provides a data translation facility. Data from the original
data file is translated by the OPeNDAP server into an OPeNDAP data model for
transmission to the client. Upon receiving the data, the client
translates the data into the data model it understands. (See
Chapter 6 for more information about the OPeNDAP data model.)
Because the data transmitted from an OPeNDAP server to the client travel
in the OPeNDAP format, the data set's original storage format is completely
irrelevant to the user of an OPeNDAP client. If the client was originally
designed to read netCDF format files, the data returned by the
OPeNDAP-netCDF library will appear to have been read from a netCDF file,
whatever the actual format of the files from which the data were
read4. If the
program expects JGOFS data, the DODS-JGOFS library will return data
that seem to have come from a JGOFS dataset, again, no matter what the
actual input file format.
OPeNDAP does not pretend to remove all the overhead of data searches. A
user will still have to keep track of the URLs of interesting data
sets in the same way a user must now keep track of the names of files
containing interesting data. an OPeNDAP catalog service is in the
process of being constructed that will help users scan the available
datasets.
Tom Sgouros, August 25, 2004
