TAP RFC [VOSI]

Doug Tody dtody at nrao.edu
Mon Sep 28 10:59:13 PDT 2009


On Mon, 28 Sep 2009, Patrick Dowler wrote:

> Just to clarify:
> 
> I take it that with this compromise resources and service ops
> (getCapabilities) would both be required in TAP 1.0, with a very
> simple explanation that they return the same document. Thus, the sync
> endpoint would retain the DAL RPC style interface and the users of
> either endpoint could use the resources or the RPC mechanism in 1.0.

Yes, this is the proposal.  Both should be provided and should be
mandatory.

> It would open up the possibility in future to make one or both of
> async and sync optional. Just looking ahead to that a bit, it seems
> one would likely do it as follows:
> 
> - async is optional
> - if async is supported, async must have sibling resources for metadata
> - sync is optional
> - if sync is supported, sync must support service ops

In practice I think this would want to be specified separately for
each interface.  For example while either sync/async might be optional
for TAP, a sync QueryData operation might be mandatory for SIA/SSA.

> It appears we could make such a change without making any TAP 1.0
> services invalid. Thus, we have two usage patterns that mesh together
> and we just have to make it clear that these few things that look like
> the same thing really are and they return the same metadata documents.
> 
> We retain the REQUEST and VERSION (it was retained in the proposed
> change, maybe that was not clear) as an avenue for future evolution
> or as a way for services to do custom operations.

REQUEST and VERSION would be retained, and would be the standard
way to specify logical service operations (operations with params)
using the sync/async resources.  Hence we can have any number of such
operations sharing the same basic service mechanism, including both
standard operations as well as custom operations added by a given
service implementation.

As you say this gives us a nice way to mesh the two usage patterns.
Some services might take the OO/RPC approach using REQUEST/VERSION,
but others could take the REST approach, depending upon which model
is more appropriate for the problem being addressed.

 	- Doug


> Does that capture the essence of the proposed compromise? Does anyone
> see any issues or dead-ends for later versions?
> 
> Pat
> 
> PS-I don't know that we will ever want to make sync/async
> optional... but I will comment in response to Alberto's question in
> a separate message.
> 
>
>  On Sunday 27 September 2009 10:11:22 Douglas Tody wrote:
> >      1)  We add resource endpoints for the VOSI operations.  Hence for base
> >          resources we have the following (all with the same baseURL):
> >
> >              sync
> >              async
> >              capabilities
> >              availability
> >              tableMetadata
> >
> >      2)  We retain REQUEST and VERSION to specify the logical (service
> >          specific) service operations.  These use either the sync or
> >          async endpoints.  Hence we have
> >
> >              async/REQUEST=doQuery&VERSION=1.0&...       # TAP
> >              sync/REQUEST=queryData&VERSION=1.0&...      # Other DAL
> >                  (etc.)
> >
> >      3)  We require that getCapabilities be provided as a service
> >          operation as well as as a base resource:
> >
> >              sync/REQUEST=getCapabilities
> >
> 
>



More information about the dal mailing list