Simple Spectral Data Model

test implementation

This is a test implementation of the spectral data model suggested in the following IVOA draft: http://www.ivoa.net/twiki/bin/view/IVOA/IVOADMSpectraWP . We implemented the data schema using C# concerning on future uses in web services according to the SOAP standard. Our C# spectrum class is optimized for the programming environment as well as for web services (XML serialization) and VO compatibility (VOTABLE serialization).

The SOAP specification allows using nullable variable in SOAP classes (ie. the serialized class may not contain any of the nullable xml tags), so it is possible to reduce network traffic by nulling the not required fields. However, using additional variables that are not described in the XSD is not possible, the clients who created their proxy classes using the XSD (or WSDL) won't be able to access those variables.

Since the schema defined in the draft does not cover many of properties we use for example with SDSS spectra, we suggest to define some additional groups, params and fields. Implementing these additional properties should be obligatory, since the SOAP protocol requires an exact description of the class (XSD). We suggest adding a custom property list to each spectra, which can be processed by the common web service frameworks (.net, axis) and gives the freedom of each VO user to add his/her specific information to the spectrum headers.

The XML representation should use the <Custom> tag to define the custom parameters, which may have an array of <Parameter> tags (ie. not hierarchical!). The VOTABLE representation should have a <GROUP utype="Custom"> tag which may have an array of <PARAM> elements but not <GROUP> child elements.

The above modification does not effect the VOTABLE serialization, since VOTABLE is not a standard for XML Web Services.

*

We also considered some further performance issues just like using the generated proxy classes on client side. Since these automatically generated proxy classes have all the obligatory variables that the schema defines, working with large amount of spectra (especially with numerous bins) may require a large amount of useless memory to store only the 0 values in variables. To avoid this overhead, manual modifications to the automatically generated classes may be required.

This issue does not effect the VOTABLE deserialization, since VOTABLE is not a standard for XML Web Services.

*

Although this implementation uses date and time formats as the proposal, we suggest using some standard string date format instead of double precision numeric values.

*

By visiting the following links, you can check the output of the serialization of a simple spectrum (with few headers) and a complex spectrum (with many headers) in XML and VOTABLE format.

You can download the Spectrum class definitions as an XSD

You can download a sample client application written in C# (generated automatically with Visual Studio) which uses our sample service to retrieve a spectrum via XML Web Services.


Last Modified: 03/31/2004
Authors: László Dobos, Tamás Budavari, Johns Hopkins University