The Open-source Project for a Network Data Access Protocol (OPeNDAP) is both the name of a non-profit organization and the name of the protocol, which the OPeNDAP organization has developed. The protocol provides a discipline neutral means of requesting and providing data across the World Wide Web. It implements a stateless, client-server model and provides parameterized URL (Uniform Resource Locator) based access to data from widely separated repositories, regardless of local storage format. It thus provides the framework that simplifies scientific data networking.
The precursor to OPeNDAP was an effort called "Distributed Oceanographic Data System" or DODS. DODS is software system that allows users access to widely distributed Oceanographic data encapsulated behind DODS enabled servers. The users of DODS simply define the source and the limits of the data they want, and the desired data is extracted from the data store and packaged into a standardized format for transmission. Along with the data, metadata describing the data package is also sent back to the DODS enabled application, which now knows how to unpack, interpret and present the data to the user. A conscious design objective of the DODS system was to provide for an abstract model of operation, independent of the underlying domain and, in order to extend the use of the DODS system to other domains, the discipline neutral portion of DODS (its data access protocol or DAP) was extracted and became the purview for further development of the OPeNDAP project. Because of this discipline neutrality the OPeNDAP protocol is know being used in a wide variety of data system environments, including Oceanography, Meteorology, Solar-terrestrial Physics and Hydrology.
The Data Access Protocol (DAP) is characterized by HTTP URL's following the request/response paradigm.
The DAP URL follows the syntax::
DAP_URL = "http:" "//" host [ ":" port ] [ abs_path ]
abs_path = server_path dataset_id "." ext [ "?" query ]
ext = "das" | "dds" | "dods" | "ver" | "html" | "info" | "asc"
In addition to specifying the request type in request URL's, clients may also optionally, specify DAP specific filters or constraints (query) in order to limit those requests to specific variables or values within the data source. The DAP returns responses which are classified into presentation or application level. Presentation level responses include directives for the return of ASCII text data suitable for input into a spreadsheet as well as HTML for browser display. Application level responses can return data metadata in the form of a Data Descriptor Structure (DDS) or a Data Attribute Structure (DAS). The DDS describes the structure of the Data record so that the application can unpack and parse the record and the DAS describes the attributes and data types of individual attributes within the record. Applications may also retrieve both the DDS and the binary streams of data in a single operation (DODS) or the entire metadata record consisting both the DDS and the DAS, again, in a single operation (INFO). Once the format of the data and its attributes are understood by the application, data values can be retrieved, in total or individually by attribute.
Open source software and tools are available to build OPeNDAP clients and servers .