Implementation thoughts on discussion points

Matthew Graham mjg at cacr.caltech.edu
Tue Oct 6 14:33:34 PDT 2009


Hi,

Firstly, in addition to the discussing this on the list, I have copied  
these points on the VOSpace 2.0 discussion page (http://www.ivoa.net/cgi-bin/twiki/bin/view/IVOA/VOSpace20Spec 
) for posterity.

>> 1)   Pagination
>>
>> The listNodes method is to be removed - listing will be possible  
>> with a straightforward HTTP GET to the node. The representation  
>> returned can be altered with the use of a 'detail' keyword:
>>
>> http://nvo.caltech.edu/vospace-2.0/mjg/mytable1?detail= {min|max| 
>> properties}
>>
>> When the node is a container, it will return a list of direct  
>> children nodes in the container. Now if the container contains a  
>> lot of nodes (>10000) then the client can specify a numerically  
>> limited subset using 'limit' and 'offset' keywords:
>>
>> http://nvo.caltech.edu/vospace-2.0/mjg/mydir1?limit=500&offset=2500
>>
>> The ordering is determined by the server.
>>
>> The aim here is that listing no longer makes use of continuation  
>> tokens but that pagination of results is controlled by the client.
>>
>> findNodes can employ a similar mechanism but is directed against  
>> the appropriate search resource and not the node since a search can  
>> be an asynchronous activity.
>
> +1. I feel more RESTed already :)
>
> "The ordering is determined by the server": yes, but we should be  
> careful of the details. The ordering must be consistent between  
> calls such that each {limit, offset} is drawn from the same, ordered  
> sequence. That's implied, of course, but I would state it explicitly.
>
> What happens if a client specifies {limit, offset} in a GET request  
> to a leaf node? Do we treat it as an error or ignore the paging  
> parameters?

The server should ignore the paging parameters and just return the  
appropriate level of information.


>> 2) Simple HTTP GET for client-server transfers
>>
>> The aim here is to maintain the protocol negotiation capability to  
>> support
>> advanced protocols, but adding simple retrieval access via HTTP as  
>> well for
>> cases where nonauthenticated access is permissible.
>>
>> The HTTP URL should be persistent, i.e., it should be possible for  
>> multiple clients to retrieve the file given a single URL.  Even  
>> where authentication is required we might want to retain the same  
>> URL, but merely require HTTPS to access it.
>>
>> A view needs to specified to return the appropriate resource - a  
>> basic HTTP GET call to a node just returns the resource  
>> representation (listing). So the minimum call is:
>>
>> http://nvo.caltech.edu/vospace-2.0/mydata/table3?view=ivo://net.ivoa/core/views/votable-1.1
>>
>> This may result in a redirection to another endpoint if appropriate.
>
> I have two problems here.
>
> First, the mapping for a node from the vos:// URI to http:// is  
> broken. That's a bigger problem that I won't detail here, but it has  
> to be sorted out before this can work.

I thought that we had agreed in Strasbourg that there was no inherent  
mapping between the vos:// URI and the http:// one but that one would  
use a registry to resolve the correct VOSpace endpoint. However, the  
location relative to the root node of the space would remain  
unchanged. Thus:

vos://xyz.com!vospace/mydir/myimg/mydata.fits

would use  the registry to figure out the HTTP URL of the root node  
(e.g. http://efg.com/vospace) and then the file would be :

http://efg.com/vospace/mydir/myimg/mydata.fits.

	Cheers,

	Matthew
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.ivoa.net/pipermail/vospace/attachments/20091006/aa3a9719/attachment-0001.html>


More information about the vospace mailing list