The DODS data delivery architecture is based on a set of loosely cooperating data servers spread throughout host computers on the Internet. The extent of these host's commitment to DODS is that they run the servers and permit people with client software to connect and access data. This system architecture follows in the footsteps of other client-server systems where participation is wholly voluntary.
To provide a basic level of server security and accounting, the data delivery architecture prescribes that third-party HTTP servers be the principle network interface of DODS. Using these servers as the basis for the data servers frees the DODS project from the task of building secondary support services into DODS serves. The extra work required to build servers robust enough to be considered trustworthy is a considerable drawback to RPC technology.
The DODS data delivery architecture is based heavily on data access through a set of known, stable and documented APIs. Each of these APIs defines, to a greater or lesser extent, the semantics of the data models which it uses and thus the data it can be used to store/access. Given this and that most science data APIs draw on a small set data models, it is reasonable to assume that calls in these APIs can be translated into a common access protocol. Since each client program will use this common protocol to access data servers, DODS will facilitate interoperability between the set of APIs it supports. Because the characteristics of APIs that make this possible are not limited to a small set of APIs it is reasonable to assume that the set of APIs supported by DODS can be extended without radical modifications to the basic structure of the system.
In order to maximize the body of existing software that can be used with DODS, the development of the data delivery system will concentrate on building data servers and reimplementing API libraries. The data servers can be used to provide access to data stored in any one of the supported APIs data sets. The reimplemented libraries (i.e., client libraries) can be used to re-link existing application programs providing the extended functionality of DODS without necessitating any modification of those programs.