VOSpace vs WebDAV

Dave Morris dave.morris at metagrid.co.uk
Thu May 15 14:22:56 PDT 2014


On 2014-05-15 13:20, Markus Demleitner wrote:
> 
> .... and frankly I think plain HTTP
> (in the sense of "curl is all you need") just won't do as a Registry
> client protocol, even with accept: and all the other fancy stuff.
> 

Actually ... Norman's description of the ARK service got me thinking.
I agree with Paul, Norman is probably right about many things and we 
should listen to him more often ;-)

For a registry resolver service, all we want it to do is to resolve an 
'ivo://' URI into the corresponding VOResource document.

So, could we define a 'RegistryResolver' service as a web server where 
you add an 'ivo://' URI to the RegistryResolver endpoint, and you get 
back the corresponding VOResource document, or a 404 error.

Nothing more than that.
No resource discovery.
No query language, table formats or schema.
No partial fragments or subsections of the document.

Just the VOResource XML or a 404 error.

----------------

That would simplify the resolving of 'vos://' URIs into service 
endpoints. Just take everything between 'vos://' and the first '!' and 
send it to your favourite RegistryResolver service.

The RegistryResolver would return the VOResource registration for the 
service.

The VOResource registration would list the service capabilities, one of 
which may be a VOSpace service with all of the protocol negotiation 
stuff.

However, there is nothing in the specification that says that the 
VOResource registration pointed to by a 'vos://' URI should only provide 
a VOSpace service as a capability. In fact, the specification doesn't 
say anything about what capabilities the VOResource should contain. As 
written the VOSpace specification _assumes_ it has at least one VOSpace 
capability, but it doesn't explicitly state that.

In which case, it would be perfectly legit for the VOResource 
registration to list a WebDAV endpoint as a capability. All we would 
need to do to make that happen is bless an IVOA std URI to represent the 
WebDAV standard.

So .. given a 'vos://', take everything before the first '!', and pass 
it to a 'RegistryResolver' service which responds with the VOResource 
document.

If you want to use WebDAV as the protocol, then look for a 'std:WebDAV' 
capability in the list of service capabilities.

If you don't want to implement the full VOSpace webservice API, you 
don't have to.

I don't see a problem with registering a VO service with a simple 
VOResource document that just lists a 'std:WebDAV' capability.

This would enable you to use a standard WebDAV server to provide the 
workspace your users want, and at the same time be able to register it 
as a VO service and point to objects within it using 'vos://' URLs.

----------------

On the other hand, if resolving the 'vos://' into the service endpoint 
is the issue, because a standard desktop app doesn't know what to do 
with a 'vos://' URI, then Walter and Paul are right, we should just use 
'http://' URLs.

I agree that for most client-server use cases the standard WebDAV 
probably already does everything we need. The only caveat is that the 
only way to find out if a 'http://' service actually supports WebDAV is 
to try using it. If it does not support WebDAV then it will respond with 
an error - which is fine, we just need to document that.


Hope this helps,
Dave

--------
Dave Morris
Software Developer
Wide Field Astronomy Unit
Institute for Astronomy
University of Edinburgh
--------



More information about the grid mailing list