UWS 1.1 working draft

Patrick Dowler patrick.dowler at nrc-cnrc.gc.ca
Tue Jun 3 10:44:44 PDT 2014


When Dave and I were talking about this on the bus, we came to the 
conclusion that the block behaviour could be quite simple and more general:

- block until something in the job changes (any phase change, addition 
of result(s), etc) and then redirects (to the job url)

- if the job is in a state where it cannot change (one of the terminal 
phases) then the resource no longer blocks, immediate redirect


I think this way you don't really need anything extra at all. The client 
does need to check the job to see exactly what changed, but they can 
just get the phase if that is what they care about.

The client is "notified" of every state change, but we don't ever convey 
the change itself in the notification (typical event-handler patterns 
try to do that but the payload continually changes as you adapt to new 
use cases; I think we need to avoid that trap). For example, say we 
decided to add (or allow as an extension) a progress indicator in the 
job; an implementer could unblock whenever the progress indicator 
changed - the payload doesn't have to change and the client could decide 
to get the phase, the progress indicator, or the whole job.

In principle, the response from the block could still be the 
(text/plain) phase, but I find that to be marginally misleading if other 
changes of state are also triggering the unblock... I'm more in favour 
of redirecting to the job url when unblocking as it is semantically 
correct although less efficient in many typical cases.


One of Dave's use cases was that they want the client to be able to see 
and react to results as they are added to the job (during the EXECUTING 
phase). I think being able to expose partial results is a nice feature 
that enables some interesting things without changing anything for those 
that don't need this.

My personal use case was similar: a web UI issuing TAP  queries and 
trying to avoid (i) hammering the service with polling and (ii) extra 
apparent latency by polling less frequently.  Dave's idea to expose 
partial results would also allow one to support starting to read the 
async results before they were completely written, which would let me 
have the robustness of async with the faster response of sync.

Pat

On 03/06/14 09:33 AM, Mark Taylor wrote:
> Paul+GWS,
>
> the Blocking Endpoints addition is a great idea, I hadn't noticed this
> was under consideration, sorry I couldn't attend the relevant GWS
> session at ESAC since I was elsewhere.  However, if I understand
> the current proposal as written in WD-UWS-1.1-20140527, it doesn't
> quite fit my requirements at least.
>
> In topcat and stilts, I don't just want to wait for the job to complete,
> I'd like to display the current phase to the user as it transitions
> between phases, in particular the potentially long-lived phases not
> under client control, i.e. QUEUED, EXECUTING and maybe SUSPENDED.
> Since the current proposal only lets me do a long poll to detect
> the end of EXECUTING, I'm still going to have to do normal polling
> to find out when EXECUTING starts.
>
> I thought about suggesting that the blockingphase endpoint should
> return whenever the phase changes, but that doesn't really work
> because you don't know for sure what the phase was when you called it.
> So instead, could that endpoint have a parameter, something like
>
>     /{jobs}/(job-id)/blockingphase?not_equal_to=EXECUTING
>
> which returns immediately if the phase is different from the
> given parameter value (EXECUTING in the example above), and
> otherwise blocks until it changes?
>
> Mark
>
> On Wed, 28 May 2014, Paul Harrison wrote:
>
>> Hi,
>>
>> As a result of the discussion at the Interop I have published a new version of UWS 1.1 as an official working draft on the IVOA site. http://www.ivoa.net/documents/UWS/20140527/
>>
>> The changes are summarised here http://www.ivoa.net/documents/UWS/20140527/WD-UWS-1.1-20140527.html#ver11
>>
>> and detailed changes are available from volute https://code.google.com/p/volute/source/diff?spec=svn1353&r=2639&format=side&old_path=/trunk/projects/grid/uws/doc/UWS.html&path=/trunk/projects/grid/uws/doc/UWS.html&old=1353 (or from your favourite svn diff tool).
>>
>> Please consider implementing the changes and giving feedback on whether the new version succeeds in its aim of backwards compatibility.
>>
>> Regards,
>> 	Paul.
>>
>>
>>
>>
>>
>>
>
> --
> Mark Taylor   Astronomical Programmer   Physics, Bristol University, UK
> m.b.taylor at bris.ac.uk +44-117-9288776  http://www.star.bris.ac.uk/~mbt/
> .
>

-- 

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