django-daiquiri / daiquiri

A framework for the publication of scientific databases
https://escience.aip.de/daiquiri
Apache License 2.0
26 stars 8 forks source link

IMPROVEMENT: Custom UWS Service #216

Open agy-why opened 1 year ago

agy-why commented 1 year ago

What is an UWS Service?

The IVOA SOAP services like TAP, ConeSearch, Datalink... are all based on a general construct called UWS service: Universal Worker Service. They provide a discovery interface (capabilities) and a availability interface (service online), as well as a SOAP interface. They can be called via a URI plus Parameters and some kind of objects.

Compatibility with IVOA and TopCat

The Advantage of implementing an UWS Service is its compatibility to the IVOA Standard and IVOA clients like TopCat. Therefore PyVO and TopCat both naturally support this kind of interface, allowing the Daiquiri Instance Designer to declare Custom Services compatible with the UWS standard.

Implementation in daiquiri

In Daiquiri UWS Service additionally have a REST API, making them even more vesatile allowing users to also interact with such services via REST API instead of the IVOA SOAP interface.

Example of implementation: spectra_download app

An example of implementation of such services is the spectra_download app from the gaia.aip.de instance. please refer to it for more details.

The idea would be to partially transfer some part of this app into daiquiri to simplify the implementation of Custom UWS Service for the instance designer (framework users).

according to #213 such service would look like:

graph LR
USER-->IVOA-SOAP["IVOA Soap
capability, availability, service"]
USER-->REST
IVOA-SOAP-->REST
REST-->MetaDB["MetaDB 
(JobQuery)"]