Aips Web Services

 

One of the aims of the Virtual Observatory project is to make existing tools accessible to users and software developers in a standard form. Currently this standard is through web services. The AIPS++ package has many useful tools, and so one of our aims is to make some of these available separately as web services. As a first step we have chosen a simple module - Quanta - to work with, allowing us to experiment with some of the web service tools. These pages will describe the process of creating web services for the Quanta module and also provide user documentation.

Choosing which tools to use

There are some extra difficulties when working with pre-existing software, as you are not as free to choose how you implement the web service as when you are starting from scratch. AIPS++ is written in C++ and so the easiest way of interfacing it would be with a C++ service. An alternative is to write the service in another language (you might want to do this if the support for web services is better in that language). This is what Brett Beeson has done in his QuantaService.

I have chosen to use the gSOAP toolkit (gSOAPToolkit) for C and C++. For more information about this see the gSOAP homepage: http://www.cs.fsu.edu/~engelen/soap.html

Overall design of the web service

The system consists of a web service which calls the Quanta.convert method. The Quanta module is documented at: http://www.atnf.csiro.au/computing/software/aips++/stable/docs/user/General/node452.html#quanta

A quantity in AIPS++ is a value with a unit. For example, '5km/s', or '20Jy/pc2'. The convert method takes a quantity and the units you want to convert it to (eg. 10km/s --> m/s). The Quanta module supports a massive range of units which are listed at: http://www.atnf.csiro.au/people/tmurphy/unitslist.html

Once a web service has been created, programmers can use the WSDL (Web Services Description Language) file to access the services that it provides. Alternatively, the service provider can also provide a client with a user interface (such as a webpage) so that users can access it.

I have made a client to access the service, with a basic user interface (currently a very simple website, but this will be improved). In the next sections I will explain how to create a web service, client, WSDL file and html front end using the gSOAPToolkit. I have split the documentation into two parts:

  • AipsWebServicesUserDocs? (which describes how to use the demo service)
  • AipsWebServicesProgDocs (which describes how the demo service was created)

-- TaraMurphy - 04 Mar 2004