Exploratory study of Aladin usage of ACR API


Scope

The scope of this document is to report my experience with the Astrogrid Client Runtime (ACR) API. People unfamiliar with what the ACR API is should have a look here : http://www.astrogrid.org/maven/docs/HEAD/desktop/multiproject/acr-interface/apidocs/index.html

This work has been performed during Noel Winstanley visiting CDS in August 2005. The primary goal of this visit was explore potential use in Aladin of ACR API. Finally, we have explored and developed prototypes for the following topics :

  • Accessing MySpace files from Aladin
  • Querying the registry to retrieve a list of SIAP services
  • Accessing and launching CEA applications from Aladin

Ease of use

The API is well-structured, the JavaDoc readable and understandable. Once you understand how to invoke a given service, you have no problem to invoke and use another one. The API is structured in a way that won't make break existing code if the API evolves.
Moreover, as most of API methods are used in the Workbench GUI, it is nice to know that if you can do something through the Workbench interface, there is a service and an associated method to perform the same task programmatically.

Not only does the ACR API provides classes to access AstroGrid services, but it also provides GUI elements (MySpace file browser), which still reduces the development process.

I was worried about how Aladin would be able to connect to a running instance of the Workbench. But my concern was pointless, given the ACR API provides a service to find an instance of the Workbench.

The ACR API offers several access methods (RMI, XMLRPC, ...). Aladin being developped in Java, the obvious choice was RMI, and all the developments were done using this access method.

Access to MySpace

The development to download MySpace data in Aladin was straightforward, half a day of work. It was mainly a matter of creating the needed entry points at the Aladin level.
To me, accessing MySpace through the ACR API is a no-brainer (understand : very few development) and an easy-win for VO applications who would like to access AstroGrid services.

The inverse process, uploading files from Aladin to MySpace, has not been developed yet.

Access to registry (ADQL queries)

The idea here is to use the ACR API to query the registry in order to get a list of services of a given type (SIA, SSA, ConeSearch). The user would then pick a service of interest, and query it in Aladin.
I developed a first prototype allowing to look for for SIA servers, then to choose and query a given server, and finally to retrieve images from that server.

Look at the screenshots for more details.

Access to CEA applications

The idea was to be able to launch CEA applications with parameters being some Aladin catalogue or image planes.
I was able to easily retrieve the list of CEA applications, to build the CEA document corresponding to the given parameters, and to finally execute the application.

The screenshots above show an example with the ivo://org.astrogrid/CrossMatcher application.

Needed JARs

Being involved in the development of Aladin (which tries to remain a small applet), I have interest in the size of needed JARs .

To access MySpace and to perform queries to the registry, I only needed the 3 following JAR files:

  • acr-interface-x.x.jar, 41K
  • commons-logging-x.x, 31K
  • rmi-lite-x.x.jar, 9K

To be able to execute a CEA application, I needed - in addition to the JARs previously described - the 2 more JARs (needed to create the XML document describing the CEA application) :

  • xerces-x.x.x.jar, 875K
  • xml-apis-x.x.jar, 107K

Of course, this does not take into account the total size of the Workbench (which is a pretty large download the first time you launch it). But if we presume that the Workbench is (will become ?) the standard portal to access Astrogrid services, I have no problem with that.

Possible improvements

Here is a list of points that could be improved (Noel, please edit this page if my remarks are already outdated !) :

  • As far as I know, the registry we connect to is set at the login. I think being able to query any arbitrary registry would be very useful, for instance for people developing and testing their own registry
  • Setting the parameters for a CEA application could be easier. I think of having a method like setParameter(ParameterBean paramBean)
  • There is no method to query an SIA/SSA/ConeSearch/... service. That means you have to build yourself the URL, which is not a big deal but being able to query these services directly would improve the API by reducing the development time !

Screenshots

Access to MySpace

In Aladin, a new tab is dedicated to the access to MySpace:

myspace01.png

If the user is not logged in yet, a dialog box pops up:

myspace02.png

Once logged in, the user is able to browse through its files, and to select the one he wants to load into Aladin:

myspace03.png

The selected MySpace file loaded into Aladin:

myspace04.jpg

Querying the registry

The user queries the registry and gets back a list of servers conforming to its query (in our case, SIAP services):

registry01.png

Then, he selects one of the servers in the list, chooses a target and a search radius, and gets back a list of available images for the chosen field:

registry02.png

Finally, the user selects and loads in Aladin one or more images:

registry03.jpg

Launching CEA applications

The new item to access CEA applcations from the "Tools..." menu:

cea01.jpg

The user has selected the CrossMatcher application. Aladin planes can be referenced by their names (eg "2MASS") when filling the input parameters. The result of the cross-match will be stored in a MySpace file:

cea02.png

Once the cross-match is finished, we download the result from MySpace in Aladin for visualization purpose:

cea03.jpg

-- ThomasBoch - 07 Sep 2005

Topic attachments
I Attachment Action Size Date Who Comment
jpgjpg cea01.jpg manage 94.4 K 2005-09-08 - 13:46 ThomasBoch  
pngpng cea02.png manage 7.6 K 2005-09-08 - 15:39 ThomasBoch  
jpgjpg cea03.jpg manage 98.6 K 2005-09-08 - 15:39 ThomasBoch  
pngpng myspace01.png manage 11.3 K 2005-09-08 - 12:31 ThomasBoch  
pngpng myspace02.png manage 11.4 K 2005-09-08 - 12:31 ThomasBoch  
pngpng myspace03.png manage 13.9 K 2005-09-08 - 12:31 ThomasBoch  
jpgjpg myspace04.jpg manage 63.7 K 2005-09-08 - 12:38 ThomasBoch  
pngpng myspace04.png manage 230.5 K 2005-09-08 - 12:31 ThomasBoch  
pngpng registry01.png manage 14.7 K 2005-09-08 - 12:32 ThomasBoch  
pngpng registry02.png manage 34.9 K 2005-09-08 - 12:33 ThomasBoch  
jpgjpg registry03.jpg manage 83.6 K 2005-09-08 - 12:36 ThomasBoch  
Topic revision: r4 - 2005-09-08 - 15:42:45 - ThomasBoch
 
This site is powered by the TWiki collaboration platformCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback