La version complète du DS6 Study Report est disponible sur cette page
5.4 VO-enabling visualization software
We describe in this section the motivations behind making Aladin PLASTIC-compatible, the actual implementation of PLASTIC in Aladin, and how PLASTIC has helped increase the ways that Aladin can be used, illustrated by various examples.
Pre-PLASTIC era
The PLASTIC protocol was born from the need to make desktop tools interoperable. In the pre-PLASTIC era, the Aladin team had already proposed several solutions - coming out from concrete use cases - to tackle this issue :
- The VOApp interface (previously known as ExtApp) is a Java interface defining possible interactions between Aladin and another Java application. This interface is currently used to interface Aladin with VOPlot (a 2D plotter developed by VO India) and with APT (the Astronomer Proposal Tool, developed by the STScI). (Fore more details about VOApp, have a look at Pierre Fernique's presentation, given at the Interoperability meeting at Victoria, May 2006, comparing PLASTIC and VOApp)
- In the frame of the AVO demos 2004 and 2005, Aladin has been interfaced with the spectra viewers VOSpec (developed by ESAC) and Specview (developed at STScI). This interface has been developed through direct calls to ad-hoc Java methods.
- Aladin can be controlled by an external script or application by sending script commands via the standard input (STDIN). This method has been used by VisIVO (developed by INAF), and has been now deprecated in favor of PLASTIC.
Each of those approachs have drawbacks or limitations :
- The VOApp interface is limited to Java applications, running in the same Java Virtual Machine. It also means that interconnected applications have to be packaged together.
- Calling directly works well for specific collaborations, though also limited to Java applications running in the same JVM. Moreover, this solution is not flexible, nor extensible.
- The third solution, passing script commands through STDIN, does not allow callbacks from Aladin to the calling application. Thus, the communication is one-way only, an application taking control of Aladin. Aladin has no channel to communicate back to it.
PLASTIC overcomes those limitations, notably the programming language bareer, and provides a two-way communication channel. Moreover, PLASTIC's philosophy to let each application independent from each other, gives much more flexibility. In other words, the list of applications Aladin can collaborate with is not predefined.
Those arguments led us to make Aladin compatible with PLASTIC, this protocol being a generic solution for the interoperability between astronomical desktop tools.
Making Aladin PLASTIC-aware
Thanks to our previous experiences, we developed a first prototype of a PLASTIC-compatible Aladin in a few days, relying on the existing entry points and general architecture developed for the VOApp interface. This early prototype implementation had following advantages :
- proof of concept - Early PLASTIC adopters helped to demonstrate the capability of the PLASTIC concept.
- implementation feedback - The prototype implementation helped to identify problems in the PLASTIC standard itself and to resolve them. It also helped to debug the reference PLASTIC hub, basis of the architecture.
In order not to disturb usual Aladin users with PLASTIC teething problems, we decided in a first time to integrate PLASTIC-related developement in a prototype version freely available but separated from the official release. Thus, users interested in PLASTIC features in Aladin could test it and provide us some useful feedback.
Given that the PLASTIC protocol is stabilized, and that we consider our PLASTIC implementation as tested and reliable, PLASTIC features will be fully integrated in Aladin version 4, planned for release in the coming weeks.
Solving usability issues
Allowing users to test early implementation of PLASTIC in Aladin allowed to identify some bugs, but also some usability issues. Indeed, we found that some users had difficulties understanding the
PLASTIC hub concept. Actually, the fact that you need launch an external application, the hub, then connect the different applications to the hub, before being able to make the different applications interact, was not intuitive for some of our "beta testers".
That is why we decided to integrated a hub within Aladin, and to launch it by default in case no other hub is currently running, and to also to connect to the hub at startup. In this way, users do not have to understand the internal working of the PLASTIC machinery, and can still use it in a more friendly manner.
The integrated hub in Aladin is Mark Taylor's microhub, minimal version of
PlasKit. It fit our needs, still being very light (less than 100KB).
We would like to stress on the fact that we do not enforce usage of our internal hub. Advanced users can easily choose (from the PLASTIC preferences window, see figure 1) not to launch the internal hub at startup, thus allowing them to use any hub they want. Our aim was to give the maximum of freedom to the user, though providing an easy default behaviour for beginners.
Fig. 1 : PLASTIC preferences window in Aladin
Another improvement in term of usability was the addition of a small icon reflecting the current status of PLASTIC (see fig. 2). In a glance, the user knows if there is a running PLASTIC hub, if Aladin is connected to it, and if Aladin can transmit to other PLASTIC-aware applications. This icon also gives access to the different PLASTIC options.
Fig. 2 : The radio antenna icon reflects PLASTIC status
Figure 3 depicts the different possible states of this icon (from left to right) :
- no hub is running
- a hub is running but Aladin is not connected to it
- Aladin is connected to the running hub
- Aladin is connected to the hub, and can interact with other connected applications
- Aladin is currently sending a message to the hub
Fig. 3 : Possible states of the PLASTIC icon
We also tried to integrate PLASTIC features closely with existing Aladin UI elements. For instance, when a user wants to transmit an image or a table to another application, he just chooses the plane of his interest, right-click and choose
Broadcast in the pop-up list (see figure 4). In a same way, data being displayed in a metadata tree (images, catalogues, spectra) can be visualized in a PLASTIC-compatible application by right-clicking on and selecting the application to use (see figure 5).
Fig. 4 : Broadcasting a catalogue plane via PLASTIC
Fig. 5 : Sending a catalogue URL to a PLASTIC application
Benefits
The PLASTIC compatibility has greatly widen the possible usage of Aladin. There is no more a limitation to the Java world. Moreover, possible interactions between Aladin and other applications are no longer dictated by the initial choice of developers, but are now dynamic and flexible. Not only can Aladin uses other applications to extend its features, but the contrary is also true.
We will detail in the next paragraph what extra interactions are now possible using PLASTIC.
Data Exchange
Relying on PLASTIC and on existing format standards (FITS and VOTable), data exchange (tables and images) between Aladin and other applications is straightforward and transparent for the user. He doesn't have to worry about saving data in one application, and reloading it in the other. His work flow is much smoother, as he can focus on his science, rather than having to fight with files and data formats.
For example, let us imagine a user loads a table in Aladin from a VO service and would like to add an additional column. He just have to send this table to TOPCAT, computes the new column, and sends the table back to Aladin. Then, he creates a filter to visualize the extra column, and how its value is distributed over the sky. If he needs a 3D plot, he can startup VisIVO, and sends the table. Look at figure 6 for an illustration of this example.
Fig. 6 : Exchanging data between Aladin, TOPCAT and VisIVO
Extend Aladin's features
By enabling communication with other applications which expose their supported messages, PLASTIC allows to extend Aladin's capabilities. For instance, Aladin can query a SSAP (Simple Spectrum Access Protocol) server, displays the result list of available specta but can not display any spectrum. Using PLASTIC, Aladin is able to look for a spectrum viewer (eg. SPLAT-VO or VOSpec) and to visualize selected spectra in this application. Figure 7 illustrates this example.
Fig. 7 : Sending spectra URLs from Aladin to VOSpec and SPLAT
Using Aladin to extend his own application features
In a similar way, other applications can take advantage of Aladin's features, notably displaying images and overlaying catalogues. When designing a new application, the developer can consider Aladin as a building block he can use at his ease, Aladin API being the list of messages Aladin supports :
- load a VOTable document (from a URL or directly from a string)
- load a FITS image from a URL
- select a list of objects in a table
- highlight a given object
- show a given position on the sky
Using the Aladin plugin mechanism (see section
Advanced usage), this list of supported messages could even be extended by third-party developers.
This ability to pilot Aladin is available for Java, but also for any language having support for XML-RPC.
Example : The
eStar prototype event monitor makes use of Aladin (through PLASTIC) in order to visualize the position on the sky of VOEvent packets (see figure 8).
Fig. 8 : eStar PLASTIC event monitor. Diagram courtesy of Alasdair Allan
Cross-selection of data
One of the most promising and powerful feature brought by PLASTIC is the ability to visualize simultaneously selection of objects in different collaborative applications. Those linked views across applications are quite useful to explore a dataset, to see it from different perspectives. For instance, when using together Aladin, VisIVO and TOPCAT, the user is able to select a subset of sources in the parameter space and to see where they lie in the physical space (ie on the sky). Conversely, selecting some sources located in a given region of the sky will show in TOPCAT and VisIVO their location in a 2D or a 3D plot.
In figure 9, a subset of sources has been selected in a 2D graph in TOPCAT. Corresponding sources have been selected in Aladin, and in VisIVO 3D plot.
Fig. 9 : Linked views between TOPCAT, Aladin and VisIVO
Collaborative applications
The Wiki page
TopcatAladinSnapshots gives an overview of how TOPCAT and Aladin can collaborate via PLASTIC.
Advanced usage
The Aladin v4 release will include a
mechanism allowing users to develop their own plugins.
When combined with PLASTIC, this plugin mechanism can lead to powerful developments. Figure 10 shows such an example. When clicking on a pixel of a data cube, the plugin extracts the corresponding spectrum, connects to PLASTIC, and asks VOSpec to visualize the created spectrum.
Fig. 10 : An example of Aladin plugin using PLASTIC
--
ThomasBoch - 15 Jan 2007