vos:group vs. uws:JobInfo
Matthew Graham
mjg at cacr.caltech.edu
Fri Aug 13 17:18:50 PDT 2010
Hi Pat,
I would be happy with #3 as well if it is allowed.
Cheers,
Matthew
On Aug 13, 2010, at 5:06 PM, Patrick Dowler wrote:
> On Friday 13 August 2010 06:20:34 Paul Harrison wrote:
>> The easiest interpretation comes where the JDL is simply a set of
>> application/x-www-form-urlencoded (name, value) pairs such as what is
>> produced by a HTML form submission, but this model is fairly restrictive
>> when it comes to defining relations between the parameters as you are
>> wanting to do here. I think that the only viable solution with this simple
>> model is to introduce parameter naming rules that indicate the
>> relationships - but this sort of thing quickly reaches its limitations.
>
> I recall that the idea was that a specific service could chose to specify a set
> of parameters to define the JDL *or* specify an XML extension and hook it in,
> but not both.
>
> In DAL services, parameters are single valued (in the http sense: you only
> have one param=value pair) and multiple values are done using a list syntax.
> This works fine for DAL and hence TAP was able to trivially use the parameter
> list to contain the entire job description. It is true that this is limited,
> but so far as I am aware DAL has not run into the limit.
>
>> The more general idea in UWS is to have a more expressive JDL such as can
>> be achieved with XML (though other encodings/ domain specific languages
>> are equally valid), and in this case there might not be a simple mapping
>> into the individual "parameters" within the JDL.
>
> In our vospace implementation, we were slightly hampered by our UWS library
> only handling POST of parameters (eg application/x-www-form-urlencoded); that
> has since been extended to accept text/xml (a uws job document). We are also
> limited in our current use to requiring authentication and certificates for
> most things so the client was coded to always only ask for https; this we may
> have just not run into this multiple-pairs of values thing.
>
> I think there are 3 options:
>
> 1. naming convention or the grouping attribute: I find it ugly as it introduces
> all these odd error conditions and complex code to make sure both halves of
> the pair are found and put together
>
> 2. allow multiple protocol/endpoint pairs, but use a single parameter with a
> pair of values, eg:
>
> <uws:parameter id="datasource">
> ivo://ivoa.net/vospace/core#httpput
> DELIMITER
> http://some.server.com/put/the/data/here
> </uws:parameter>
>
> where DELIMITER needs to be something never allowed in the URI or URL. Then
> one could have multiple datasource=<protocol>,<value> in the request. It still
> means application code has to interpret/parse this manually and I don't
> generally like using an (xml) parser and still having some parsing to do :)
>
> 3. use an XML format for the structure and use that inside the uws job
> document; I see that the <transfer> has a <protocol> element with a child
> <endpoint> element, which seems to provide the necessary structure... maybe
> this could be a <transfer> element with multiple <protocol> inside. Thus the
> request (job) has a <transfer> with multiple <protocol> and the result
> (job.results.transferDetails) has a <transfer> with just the chosen/used
> <protocol>.
>
> So, assuming I understand the use of the xs:any in the UWS schema, instead of
> the example in 5.4.4 (pushFromVOSpace) one could POST this:
>
> <uws:job>
> <uws:jobId/>
> <uws:ownerId xsi:nil="true"/>
> <uws:phase/>
> <uws:startTime xsi:nil="true"/>
> <uws:endTime xsi:nil="true"/>
> <uws:executionDuration>0</uws:executionDuration>
> <uws:destruction xsi:nil="true"/>
>
> <vos:transfer>
>
> <vos:target>vos://nvo.caltech!vospace/mydata1</vos:target>
> <vos:direction>pushFromVoSpace</vos:direction>
> <vos:view>ivo://ivoa.net/vospace/core#defaultview</vos:view>
>
> <vos:protocol uri="ivo://ivoa.net/vospace/core#httpput">
> <vos:endpoint>http://some.server.com/put/the/data/here</vos:endpoint>
> </vos:protocol>
>
> <vos:protocol uri="ivo://ivoa.net/vospace/core#ftpput">
> <vos:endpoint>ftp://some.other.server.com/put/the/data/here</vos:endpoint>
> </vos:protocol>
>
> </vos:transfer>
> </uws:job>
>
> where I obviously gloss over the necessary xml schema declarations :-)
>
> I don't really like #1 or #2; having more or less finished implementing both a
> VOSpace 2.0 service and client recently, there's plenty of XML already and #3
> would not be a burden to implement or use. In fact, I think it would be
> easier.
>
> --
>
> Patrick Dowler
> Tel/Tél: (250) 363-0044
> Canadian Astronomy Data Centre
> National Research Council Canada
> 5071 West Saanich Road
> Victoria, BC V9E 2M7
>
> Centre canadien de donnees astronomiques
> Conseil national de recherches Canada
> 5071, chemin West Saanich
> Victoria (C.-B.) V9E 2M7
>
More information about the grid
mailing list