UWS POST PHASE=RUN

Grégory Mantelet gmantele at ari.uni-heidelberg.de
Tue Nov 4 12:04:23 CET 2014


Hi,

 From all what have been said until now, I see the 3 following methods 
to submit parameters:

     1/ "application/x-www-form-urlencoded"
Only parameter/value pairs can be submitted with this method. However, 
these parameters can be the parameters needed to the job (JDL), the UWS 
parameters (execution duration, destruction time, PHASE=RUN, ...) or both.

     2/ "multipart/form-data"
Here, using DALI UPLOAD (like in TAP), parameters can be JDL, UWS 
parameters or both, as in 1/. So, the JDL can be submitted as 
parameter/value pairs or as one file (e.g. XML document). But it is also 
possible to submit other files which could be necessary to the job (for 
instance, if it is a job doing some processing over one or several files 
; those files could be provided inline or as URL).

     3/ other
Only the JDL can be provided. It is a blob, XML or other kind of 
document which is completely opaque and could not be interpreted by the 
UWS server. This document must be stored as provided and with no 
interpretation of the UWS server. It implies that UWS parameters 
(duration, destruction, ...) can not be provided in the initial POST and 
if the user want to modify their default value, it must do it after 
creation and before execution with one or several POST in 
"application/x-www-form-urlencoded".


Like Markus, I also think that 3/ could be a problem for large files and 
that's why 2/ is better. Then, allowing the 2 methods with the rule "if 
the file (JDL) is large, we use DALI UPLOAD", is for me source of 
problem for server, because giving a such choice to the user does 
generally not work. We can indeed see it in TAP with the choice of the 
synchronous and asynchronous execution. Generally users do not know the 
difference between the two modes or have not enough knowledge of DB 
query execution to decide which method should be used, and consequently, 
they generally stick to one method (which is often synchronous because 
the result is returned "immediately"). So, they have the choice, but are 
generally unable to decide which should be used...and that, is only when 
they know they have the choice and what is the rule to use.

So, I think that only the two first methods must be proposed, even if I 
understand the third one. The two first methods are simple, well-known 
and let cover all possible cases, whereas 3/ allows just one opaque file 
- eventually large - to be submitted and without any possibility to 
provide UWS parameters in the initial POST.

Cheers,
Grégory


On 04.11.2014 09:37, Markus Demleitner wrote:
> Hi,
>
> Let me extract these two parts from the conversation:
>
> On Mon, Nov 03, 2014 at 11:33:25PM -0800, Matthew Graham wrote:
>> The obvious exampled of a document-based JDL is VOSpace where data
>> transfers are coordinated via UWS. The transfer resource that is
>> posted to initiate a job is hierarchical and so could be difficult
>> to map to a parameterized form. It gets stored under the jobInfo
>> element for the UWS representation of the job.
>>
>> On Nov 3, 2014, at 11:22 PM, Paul Harrison wrote:
>>
>>> necessarily representable even under the <jobinfo> element -and I
>>> agree that there was no intent that the generic JDL and DAL
>>> ?parameter/value? mechanism could be mixed - which is why I was
>>> suggesting that there be some conventions written into the
>>> standard to make this separation clearer and make the language of
>>> the standard stronger in section 2.1.11 - so that the suggestions
>>> become ?should?s rather than ?best practice?.
> As to Matthew's point, any single file can be represented in the
> trivial parametrised from JOB=<blob>; UWS wouldn't know about any
> internal structure then, but that's probably what's intended in these
> cases anyway.
>
> So the big trick is to represent <blob>, and I'd really like to
> stress Paul's point here.  *If* we want to have these kinds of opaque
> parameters in the UWS job description, that has severe consequences
> in that we must say how non-XML would be represented (or outlaw it).
> Also, what about largeish uploads?  Do we really want job documents
> that are a couple of megabytes?  Gigabytes?
>
> All this is to say: We have DALI UPLOAD, with its built-in option of
> having both URL and inline uploads.  Something fairly akin to it
> already works ok for TAP.  It solves the problem of content not
> easily representable in XML, its representation always is of very
> reasonable size (an upload name and a URL), and there's no
> UWS-special tricks necessary.
>
> Hence: I propose to deprecate POSTing anything but parameters encoded
> browser-style (either form-encoded or as a multipart) and say opaque
> JCL should come in a single parameter (I like recommending the name
> JCL for it) if it's printable and short or be UPLOADed if it's not.
>
> Cheers,
>
>          Markus
>
>
>



More information about the grid mailing list