Definitive version of the VOTable schema for web services

Doug Tody dtody at nrao.edu
Tue Jul 29 21:34:47 PDT 2008


Hi Matthew -

Thanks, that is what I needed to know.

I think the SOAP code should be treating the VOTable as either
your case 1 or 2 (string or XML-formatted string), but not as 3
(VOTable with schema).  Aside from asking for trouble from such
a complex schema, and having redundant object verification, it
is inefficient to carry schema validation this far.  The VOTable
should be passed through either as a string or as an XML formatted
string, probably the former, with the client using real class code
(a VOTable library) to deal with it.  Aside from reducing complexity
and improving efficiency, if I were writing an application I would
prefer to discover object-related errors when I deal with the object,
not at the level of the low level interface.

It is not clear to me that this means a client can't use a toolkit -
if the WSDL treats a complex document as a string one could probably
still use a toolkit or framework.

We probably do not want to change old code like SkyNode to fix this
problem.  Changing the VOTable schema to avoid this problem is not
right either if we are changing good code to work around problems
in bad code.  One option would be to use a temporary VOTable schema
until the "broken" SOAP code is fixed or retired.  This is the status
quo of course.

With that said: personally I do not think VOTable needs recursive
structures.  These are causing problems with "whatever" technology
(doesn't really matter what it is), are likely to do so in the
future as well, and we do not need this feature.  So far as I know
nothing uses it, and it is not a good idea in any case to introduce
hierarchical structure into something which is based upon the
relational model (the table).  Like one-to-many GROUPs, this is an
unnecessary complexity which we do not need.

	- Doug



On Tue, 29 Jul 2008, Matthew Graham wrote:

> Hi,
> 
> If you specify in the WSDL that your service returns a string then that string
> can just as easily be "Hello World" as the string representation of a VOTable.
> The serialization is really trivial. Of course, you have to code your client
> and service to translate that string back into VOTable class code to do the
> business logic.
> 
> If you specify in the WSDL that your service returns a piece of XML then the
> story is pretty much the same except that the serialization code will probably
> throw an error if you send something that is not XML up or down the wire.
> 
> If you specify in the WSDL that your service returns VOTable then you have
> define what VOTable is in terms of schema so that the service can build the
> appropriate serialization code to convert the service-side object into a form
> that can go over the wire. Unfortunately most of the toolkits which are
> supposed to make this easy for you were not designed for complex (recursive)
> data structures such as VOTable.
> 
> So the moral of the story is don't use the toolkits if you can possibly avoid
> it - they really complicate things. Actually just building the SOAP requests
> and response by hand is a lot faster and simpler than using the toolkits and
> allows to just send VOTable as XML instead of putting it through a code
> binding. Of course, you have to be able to read and understand WSDL.
> 
> 	Cheers,
> 
> 	Matthew
> 
> 
> On Jul 29, 2008, at 8:47 PM, Doug Tody wrote:
> 
> > Hi -
> > 
> > This discussion may be academic as we may not want to modify "legacy"
> > code such as SkyNode etc., but it may still be worthwhile to help
> > determine why we have this problem and how to avoid it if we mix
> > VOTable and WSDL in the future.
> > 
> > The easiest way for a client app to deal with something as complex as
> > a VOTable is using VOTable class code.  The VOTable is passed through
> > the interface as a string or file, and accessed via the class code.
> > There is no need to bind it in a SOAP interface, except possibly to
> > a string parameter.
> > 
> > Of course a beginner (or wizard) might want to just use a tool such
> > as wsdl2java.  So the real question is, are WSDL and SOAP capable of
> > passing through a large complex string containing an encoded object?
> > In other words, is the problem with the SkyNode etc. interface and
> > WSDL, with the VOTable schema, or both?
> > 
> > This stuff really is broken if it tries to parse and validate very
> > complex schemas for external objects - that is a matter for the object
> > class code, not the interface, to deal with.
> > 
> > We still might want to simplify the VOTable schema, but the reason to
> > do that would be to simplify the schema and avoid unnecessary problems,
> > not to fix broken SOAP code.  It would be good to understand better
> > how these two issues sort out.
> > 
> > 	- Doug
> > 
> > 
> > On Tue, 29 Jul 2008, Matthew Graham wrote:
> > 
> > > Hi,
> > > 
> > > I agree entirely with you, Doug. There, however, a number of services such
> > > as
> > > OpenSkyQuery,  SkyNodes, CasJobs, WESIX, etc. which give VOTable in
> > > response.
> > > The easiest way to use these for complete beginners is to use wsdl2java or
> > > wsdl2py and then just employ the client stubs. It takes a certain amount
> > > of
> > > experience and knowledge to bypass these tools and deal with VOTable
> > > directly
> > > in client calls with SOAP.
> > > 
> > > 	Cheers,
> > > 
> > > 	Matthew
> > > 
> > > 
> > > On Jul 29, 2008, at 7:51 PM, Doug Tody wrote:
> > > 
> > > > Hi -
> > > > 
> > > > I sympathize with the folks who don't much care about automatically
> > > > code-binding a VOTable, as this makes little sense for such a complex
> > > > object, however we have little need for a recursive constructs in
> > > > a table mechanism.  Simplifying the schema would have little effect
> > > > on any existing, heavily used code but could simplify these SOAP use
> > > > cases so might be worthwhile in any case.  On the other hand, why are
> > > > we referencing something as large and complex as the VOTable schema
> > > > at all in a SOAP call? (the same question would apply to something
> > > > like STC).  There ought to be a way to pass-through the VOTable as a
> > > > string without need to reference the schema.  The schema should only be
> > > > used for simple function arguments can be bound to language datatypes.
> > > > 
> > > > 	- Doug
> > > > 
> > > > 
> > > > On Tue, 29 Jul 2008, Matthew Graham wrote:
> > > > 
> > > > > Hi,
> > > > > 
> > > > > I really think that this has to come from the VOTable WG, even if it
> > > > > is
> > > > > now
> > > > > officially dormant. We have complained about this enough for long
> > > > > enough
> > > > > that
> > > > > it is shocking that we do not have a solution. Hopefully, one of the
> > > > > other
> > > > > national projects is sitting on a version of VOTable that actually
> > > > > works
> > > > > with
> > > > > all the code binders so it's minimal effort.
> > > > > 
> > > > > 	Cheers,
> > > > > 
> > > > > 	Matthew
> > > > > 
> > > > > On Jul 29, 2008, at 6:44 PM, Roy Williams wrote:
> > > > > 
> > > > > > If only there were some really smart person who understands XML
> > > > > > schema
> > > > > > and
> > > > > > WSDL and all that -- who would be kind enough to volunteer to help
> > > > > > the
> > > > > > IVOA
> > > > > > by proposing a universal VOTable schema.
> > > > > > Roy
> > > > > > 
> > > > > > 
> > > > > > Matthew Graham wrote:
> > > > > > > Hi,
> > > > > > > 
> > > > > > > Yes, I know it has and it's normally this time of year that I make
> > > > > > > the
> > > > > > > same request. It would be nice if we could actually sort this out
> > > > > > > once
> > > > > > > and
> > > > > > > for all.
> > > > > > > 
> > > > > > > Cheers,
> > > > > > > 
> > > > > > > Matthew
> > > > > > > 
> > > > > > > On Jul 29, 2008, at 6:02 PM, Alberto Conti wrote:
> > > > > > > 
> > > > > > > > I hope you will have more success that I had pointing this out.
> > > > > > > > It has been this way since a long long time ago....
> > > > > > > > -A
> > > > > > > > 
> > > > > > > > On Jul 29, 2008, at 8:18 PM, Matthew Graham wrote:
> > > > > > > > 
> > > > > > > > > Hi,
> > > > > > > > > 
> > > > > > > > > The VOTable schema that exists on the IVOA web site cannot
> > > > > > > > > just be
> > > > > > > > > imported into a WSDL document. There are several web services,
> > > > > > > > > e.g.
> > > > > > > > > Open SkyQuery, SkyNode, WESIX, which have produced their own
> > > > > > > > > version
> > > > > > > > > of the schema to work with WSDL - essentially all the
> > > > > > > > > complexTypes
> > > > > > > > > need to be named and globally defined instead of being
> > > > > > > > > anonymous
> > > > > > > > > under
> > > > > > > > > the elements. I was wondering whether the VOTable group could
> > > > > > > > > produce
> > > > > > > > > a sanctioned version of the VOTable 1.1 schema that will work
> > > > > > > > > with
> > > > > > > > > WSDL?
> > > > > > > > > 
> > > > > > > > > Cheers,
> > > > > > > > > 
> > > > > > > > > Matthew
> > > > > > > > 
> > > > > > > > Dr Alberto Conti
> > > > > > > > Community Missions Office
> > > > > > > > Space Telescope Science Institute
> > > > > > > > contact | tel: 410-338-4534 | aim: wscience
> > > > > > > > 
> > > > > > > > 
> > > > > > > 
> > > > > > 
> > > > > > -- 
> > > > > > 
> > > > > > California Institute of Technology
> > > > > > 626 395 3670
> > > > > > 
> > > > > 
> > > > 
> > > 
> > 
> 



More information about the grid mailing list