Difference between revisions of "DAP4: Capabilities and Versioning"

From OPeNDAP Documentation
Line 5: Line 5:
 
== Background ==
 
== Background ==
  
Providing OPeNDAP clients with information on the particular capabilities of a given server and given dataset has been discussed many times. Types of capabilities include supported DAP versions, supported server-side functions. Another possible capability would be support for multiple encodings of the various OPeNDAP response types.
+
Providing OPeNDAP clients with information on the particular capabilities of a given server and given dataset has been discussed many times. Types of capabilities include supported DAP versions, supported server-side functions. Another possible capability would be support for multiple encodings of the various OPeNDAP services. Providing capabilities documents can also make it easier to plan for extensibility and the future evolution of OPeNDAP.
  
Providing capabilities documents can also make it easier to plan for extensibility and the future evolution of OPeNDAP.
+
Negotiating versions using HTTP headers or URL keywords is described in [[DAP4:_DAP_Versions|DAP 4.0 Design doc]]. Advertising DAP protocol services is described in the [[DAP_Service_Terminus|DAP Service Terminus document]].
 
 
Negotiating versions by HTTP headers or URL keywords is described in [[DAP4:_DAP_Versions|DAP 4.0 Design doc]]. Advertising DAP protocol services is described in the [[DAP_Service_Terminus|DAP Service Terminus document]].
 
 
 
 
 
Providing a dataset capabilities document with links to both DAP2 and DAP4 resources allows for DAP2 backward compatibility and will support protocol extensibility and future evolution of the protocol.
 
  
 
== Problem addressed ==
 
== Problem addressed ==
Line 22: Line 17:
 
* Support for multiple encoding formats (media types) for each resource type
 
* Support for multiple encoding formats (media types) for each resource type
 
* Support description of server and dataset capabilities (e.g., server-side processing capabilities)
 
* Support description of server and dataset capabilities (e.g., server-side processing capabilities)
 +
 +
----
 +
? To allow servers full control of their URL space, DAP4 URLs will be identified by their resource link type rather than their "file extension".
 +
----
  
 
== Proposed solution ==
 
== Proposed solution ==
 +
 +
Provide server and dataset capabilities documents. A dataset's capabilities document includes links to the various OPeNDAP services for that dataset. Each link is described with a link relationship type and a media type.
 +
 +
Providing a dataset capabilities document with links to both DAP2 and DAP4 resources allows for DAP2 backward compatibility and will support protocol extensibility and future evolution of the protocol.
  
 
=== Raw DAP Dataset URLs Return Capabilities Documents ===
 
=== Raw DAP Dataset URLs Return Capabilities Documents ===
Line 46: Line 49:
 
The '''dataset''' section should include
 
The '''dataset''' section should include
 
* a link to the full dataset capabilities document (this document)
 
* a link to the full dataset capabilities document (this document)
* links for all service endpoints for each supported version
+
* links for all resource types for each supported version
 
* a list of extensions the dataset supports
 
* a list of extensions the dataset supports
 
* a list of the types of constraint expressions supported for this dataset
 
* a list of the types of constraint expressions supported for this dataset
 
* a list of the types of processing instructions supported for this dataset
 
* a list of the types of processing instructions supported for this dataset
 +
 +
When a dataset capabilities document is linked to in a document
 +
  
 
NOTE: Should there be a separate server capabilities document?
 
NOTE: Should there be a separate server capabilities document?

Revision as of 22:20, 16 April 2012

<-- back to OPULS Development

--EthanDavis 13:32, 16 April 2012 (PDT)

1 Background

Providing OPeNDAP clients with information on the particular capabilities of a given server and given dataset has been discussed many times. Types of capabilities include supported DAP versions, supported server-side functions. Another possible capability would be support for multiple encodings of the various OPeNDAP services. Providing capabilities documents can also make it easier to plan for extensibility and the future evolution of OPeNDAP.

Negotiating versions using HTTP headers or URL keywords is described in DAP 4.0 Design doc. Advertising DAP protocol services is described in the DAP Service Terminus document.

2 Problem addressed

The proposal attempts to address the following requirements:

  • Support for multiple versions of DAP protocol in a backwards compatible way
  • Support for extensibility and evolution of protocol
  • Support for multiple encoding formats (media types) for each resource type
  • Support description of server and dataset capabilities (e.g., server-side processing capabilities)

? To allow servers full control of their URL space, DAP4 URLs will be identified by their resource link type rather than their "file extension".


3 Proposed solution

Provide server and dataset capabilities documents. A dataset's capabilities document includes links to the various OPeNDAP services for that dataset. Each link is described with a link relationship type and a media type.

Providing a dataset capabilities document with links to both DAP2 and DAP4 resources allows for DAP2 backward compatibility and will support protocol extensibility and future evolution of the protocol.

3.1 Raw DAP Dataset URLs Return Capabilities Documents

http://server.org/some/path/data.nc

A GET request on a DAP dataset URL returns the capabilities document for the dataset. To take advantage of web caching, capabilities Document should try to be light weight (i.e., quick creation) and as stable as possible.

Supported media types could include:

  • application/vnd.opendap.org.capabilities+xml
  • application/vnd.opendap.org.capabilities+json
  • application/vnd.opendap.org.capabilities+pbuf

A capabilities resource must contain a server section and a dataset section.

The server section should include

  • a link to the full server capabilities document (if applicable)
  • a list of the DAP versions the server supports
  • the implementation version (e.g., "TDS 4.3.57" or "Hyrax 1.7.45")
  • a list of extensions the server supports

The dataset section should include

  • a link to the full dataset capabilities document (this document)
  • links for all resource types for each supported version
  • a list of extensions the dataset supports
  • a list of the types of constraint expressions supported for this dataset
  • a list of the types of processing instructions supported for this dataset

When a dataset capabilities document is linked to in a document


NOTE: Should there be a separate server capabilities document?

3.2 Other Resource Types

3.3 Examples

See below.

4 Rationale for the solution

5 Discussion

---

6 Other Resource Types

7 Example Capabilities Document