DAP4, SOAP and THREDDS James Gallagher OPeNDAP Presented by Steve Hankin
Overview DAP2 and DAP4: Caveat, DAP4 is still in development. DAP4 SOAP interfaces SOAP and binary data SOAP and REST
DAP 2 versus DAP 4 Metadata in two responses: DAS & DDS Encoded using ‘unique’ notation Data returned in non- standard document mixing text and binary REST interface only Metadata in one response: DDX Encoded using XML Data returned in a Multipart-MIME document; text/xml and binary Both SOAP and REST interfaces
Other Responses Most DAP servers support additional responses such as: ASCII, HTML interface for data requests, version information, directory browsing These ‘other responses’ will be documented more formally. The ad hoc directory response will be replaced by THREDDS in OPeNDAP’s servers.
THREDDS The DAP2 servers from OPeNDAP (and most other sources) supported a very limited ‘directory browsing feature:’ –Tied to the file system which held data files –Unable to support data in databases –Dependent on a web daemon to provide the HTML directory listing; varied from server to server THREDDS improves this by: –Supports provider-defined organizations for data –No longer dependent on files and file systems –Uniform across different servers
About the SOAP Interface Requests: –GetVersion: DAP protocol version –GetDDX: Metadata –GetData: Data –GetTHREDDSCatalog: Machine readable catalog Responses: –Version, DDX, DataDDX, ErrorX, THREDDS –Each response contains the matching request Pooling: Each request includes a Request ID and several requests can be sent to the server in one SOAP envelope. DAP4 uses ‘SOAP with Attachments’ (SWA)
SOAP and Binary Data There are two general ways to send binary data and XML: –“Out-of-band transmissions” (embed a URL) –SWA Out-of-band is simple, but not standard SWA: briefly, this uses a multipart MIME document where the XML is in the ‘main’ part and zero or more binary parts are in attachments. SWA is as efficient as Out-of-band because: –once the SOAP envelope is closed, the response can be sent, which provides a way to stream the binary data. –Non-xml information is never seen by the XML parser.
SOAP versus REST SOAP: –Standard –Integrated discovery mechanism –Good for machine-to-machine interactions REST/GET: –Entire request encoded in URL - Simple –Integrates well with web browsers –Works well with hypertext/human interfaces Strategy: Support both –design systems so that’s easy