Simple DataLink question: Can links be relative?
Tom McGlynn (NASA/GSFC Code 660.1)
tom.mcglynn at nasa.gov
Fri Feb 16 19:19:11 CET 2018
Thanks to Carlos and Mark for responding. Sounds like I should forego any thought of using relative
URLs.
I'd suggest that this should be made explicit in any future revision of thestandard. Carlos' quote
from the standard is arguably relevant, but I think the language is quite unclear -- while I
understand what it means not to have to add parameters what 'client handling' covers is vague. It's
not obvious to me that it would preclude relative URLs. The one thing that the relative URL is sure
to have is the parameters! And of course this text doesn't apply to the service descriptor queryURL.
Mark's comment that DataLinks might be stored, could apply equally to HTML documents where we
nonetheless find relative URLs helpful -- in circumstances similar to what I was thinking of.
The use case I was considering is where I have a set of interconnected VO services, e.g., a TAP
service that refers to a DataLink service which in turn might refer to SIA and SSA services (among
others)
If I want to have a multiple versions of this framework (development, test, operations, e.g.), then
it would be very clean to use relative addresses. E.g., I might have a development environment at
http://anyURL/devel
where I could run a TAP request
http://anyURL/devel/vo/tap/sync?.....
that refers to a service at
../../datalink
which when invoked returns a row pointing to an associated SIA service at
../sia?POS=...
Nothing at all would need to change when I delivered the framework to
http://anyURL/ops
Instead the code will need to dig up the invoked URL dynamically (subject to issues when playing
with firewalls and load balancers) or have addresses hardwired into the system using a settings file
or some such. In general I think maintenance of related systems is substantially easier if the
elements can refer to each using their relationship rather than by absolute addresses.. But if the
clients don't support relative URL's I guess I'm out of luck!
Tom
Carlos Rodrigo wrote:
> Hi Tom
>
> In my understanding, whenever URL are provided by VO services, they must be full URLs. Otherwise,
> clients would need to remember the url that generated the current VOTable to be able to complete the
> following URL, what looks like a complication.
>
> So, although I don't remember that this is specified explicitely by any standard, I would say that
> relative URL are not a very good idea (at least at first sight).
>
> In the DataLink particular case, it is said (sec 3.2.2)
>
> "The access_url column contains a URL to download a single resource. The URL
> in this column must be usable as-is with no additional parameters or client
> handling; it can be a link to a dynamic resource (e.g. preview generation)."
>
> So I think that it is clear that relative url's are not allowed.
>
> Carlos
>
> On 15/02/18 20:57, Tom McGlynn (NASA/GSFC Code 660.1) wrote:
>> In a service descriptor (4.1 in the sDataLink tandard) can I use a relative URL to describe the
>> location of the service to be invoked in the accessURL?
>>
>> Similarly can relative URLs be used in a DataLink results table (section 3.2) in the accessURL
>> column of the table?
>>
>> Tom McGlynn
>>
>>
>>
>>
>>
More information about the dal
mailing list