VOSpace-2.1 prototype
Patrick Dowler
patrick.dowler at nrc-cnrc.gc.ca
Thu Jun 4 21:27:00 CEST 2015
Our vospace implementation now supports the 2.1 transfer document
format, which allows one to include a securityMethod in the requested
protocol and get URLs back that support/require that method. The term
securityMethod was lifted from VOResource, where it is used in
VOSI-capabilities to describe the exact same concept: authentication
required to call an interface.
The usage for vospace transfers is as follows:
- client submits a transfer document with all the
protocol+securityMethod combinations they can perform in addition to the
node URI and direction of the transfer
- the service picks the ones that it supports, adds endpoint URLs and
returns the result
Some interesting things I realised while writing the tests:
1. client should specify all the things they can do because for various
implementation detail reasons some combinations may not be available.
This includes always asking for protocol(s) with no securityMethod!
Example: in our service, users can call /vospace/transfers (or sync
equivalent) anonymously or authenticate using x509, username/password,
cookie, or a special token scheme. Because of the way our web server is
configured, all https requests currently require an x509 certificate so
we don't really support the other methods over https. However, the URLs
to actually get or put data to vospace only support two combinations:
- https + x509
- http + anon
In the latter case, we have distributed storage and external sites
cannot perform authentication and authorization so we generate a unique
URL that they can validate instead. So, while it is http+anon it can
correctly deliver private data to authorised users. The additions in
WD-VOSpace-2.1 are fine as is: they correctly allow the client to say
what they can do and the service to provide URLs that match.
One nice aside: since transfer negotiation sends documents both ways,
the service can tell which version of vospace the client is using and
respond in kind. For our service, if he client sends a 2.0 doc they get
a 2.0 doc back and if they send a 2.1 doc (with extra goodies) they get
a 2.1 doc back. We updated our java client but not our python client and
so far all is well (including users of the old java client).
So: backwards compatible implementation is quite easy to do.
--
Patrick Dowler
Canadian Astronomy Data Centre
National Research Council Canada
5071 West Saanich Road
Victoria, BC V9E 2E7
250-363-0044 (office) 250-363-0045 (fax)
More information about the grid
mailing list