TAP RFC [VOSI]

Alberto Micol amicol.ivoa at googlemail.com
Wed Sep 30 05:36:28 PDT 2009


On 30 Sep 2009, at 13:37, Guy Rixon wrote:

> Hi Alberto,
>
> I'm making a distinction between a generic TAP-client (which might  
> be a software library or might be an application or might be in a  
> web portal) and one intended only for services known to be fast.  
> E.g. if I write a 10-line, disposable Python script, I try a basic  
> GET on the /sync resource before I even consider UWS. If I write a  
> shared, maintainable app for a group of 20 services which are all  
> fast, then I use synchronous query. But if write a general portal on  
> behalf of EuroVO then I better damn well implement the asynchronous  
> client, because 5% of all use cases is too much to lose, especially  
> when those might be the most productive. It would be rude to the  
> users not to provide this.

Yap, but you are talking about clients, while I talk about servers.
The EuroVO portal, as any other client, will obviously need to  
implement both SYNC and ASYNC
to communicate to both simple SYNC/GET services and with more complex
ASYNC/POST services. Individual services should not be required to do  
so.


>
> To get this in perspective, the client part for a web portal can be  
> really, really simple. You could try it with the test app I  
> mentioned earlier.
>
> Try this: write a web for that submits  HTTP POST to
>
> http://casx020-zone2.ast.cam.ac.uk:8080/wfs-objects/TAP/async
>
> with TAP query-parameters. A suitable test-query would be
>
> select top 1000 * from maincat
>
> which would be quick enough for synchronous querym, or you can scale  
> up a little so that it takes longer. (Caveat: pre-beta  
> implementation, so you can probably break it if you try.)
>
> When you submit this, the browser will get redirected to the jobs  
> resource and that resource will show up as a web page (HTML ex XML  
> via XSLT in the browser) that says whether the job is QUEUED,  
> RUNNING, COMPLETED etc. Keep pressing reload in the browser until  
> the job-phase goes to COMPLETED and then the results are hyperlinked  
> from the job page.
>
> It's ugly as sin, but the only thing you have to write in the portal  
> is the form for the initial post. If the portal author wants to  
> pretty it up, then he can run the XML-HTML transformation inside the  
> portal and maybe do the polling with Javascript.
>
> I'll post the basic XSTL for the transformation if anybody's  
> interested.
>

Very  nice, I will play with it a bit!

Alberto


> Cheers,
> Guy
>
> On 30 Sep 2009, at 12:11, Alberto Micol wrote:
>
>>
>>
>> Hi Guy,
>>
>> Again, I'm not disputing on the usefulness of a ASYNC.
>> I'm saying that the client should not ask for it (in 95% of the  
>> cases), and let the service decide how to react.
>>
>> Is it for that 5% of the cases that we want to build a porsche  
>> instead of a the famous Andy's bike?
>>
>> Alberto
>>
>>
>> On 30 Sep 2009, at 13:02, Guy Rixon wrote:
>>
>>>
>>> On 30 Sep 2009, at 11:33, Alberto Micol wrote:
>>>
>>>> [...]
>>>> All that going back and forth is completely unnecessary (unless  
>>>> of course there is a real
>>>> bug in the question, but not otherwise).
>>>> - If the service decides upfront to use ASYNC (because it offers  
>>>> a huge catalog) the user
>>>> will simply send his query, and the answer will be to please use  
>>>> ASYNC.
>>>> - If the service decides upfront to use SYNC (because it offers  
>>>> access to a small catalog) the user
>>>> will simply send his query, and will receive her answer shortly.
>>>> Of course, the problem arises if a huge catalog is served only in  
>>>> SYNC mode, or if
>>>> a small catalog is served and the network connection is not that  
>>>> good.
>>>> Timeouts will likely  happen often in those two cases. In such  
>>>> case, yes, the user will have to limit
>>>> using MAXREC, if not done so by the provider herself. Some  
>>>> handling of the kind proposed by Pat
>>>> will always happen, but we should limit the number of cases to  
>>>> only the strictly necessary ones,
>>>> balancing it out with the burden otherwise imposed to data  
>>>> providers.
>>>>
>>>> In one sentence: Why complicating things at both ends?
>>>>
>>>> Alberto
>>>
>>> There is a third case where an asynchronous query is needed: when  
>>> the query is known a priori to be long-running and the client  
>>> doesn't intend to stay connected.
>>
>>> This is possibly rare, but it's exactly the sort of special case -  
>>> large-scale data-mining, basically - where the VObs can be worth  
>>> more than its its predecessors.
>>>
>>> We need to make the asynchronous gear optional in services (Gerard  
>>> proposed this months ago), for the reasons you yourself have  
>>> stated in the last few mails. If we did make asynchronous queries  
>>> optional in 1.00, then we urgently need a way to denote this in  
>>> the service metadata, as per my earlier email today. This must be  
>>> part of the TAP standard, not the VOSI standard.
>>>
>>> However, a generic TAP client is much, much less useful if it  
>>> ignores UWS where offered. It would be a crying shame if the VObs  
>>> became limited to piffling little queries because the application  
>>> writers wimped out. It's a lot simpler to write a UWS client for  
>>> TAP than it is to write the service end.
>>>
>>> Cheers,
>>> Guy
>>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.ivoa.net/pipermail/dal/attachments/20090930/76d7dae0/attachment-0003.html>


More information about the dal mailing list