Tags:
create new tag
, view all tags
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

Topic attachments
I Attachment Action Size Date Who Comment
JPEGjpg aladin_vospec_splat.jpg manage 186.4 K 2007-01-22 - 19:20 ThomasBoch  
JPEGjpg aladin_vospec_splat_small.jpg manage 29.9 K 2007-01-22 - 19:20 ThomasBoch  
JPEGjpg data_exchange.jpg manage 160.3 K 2007-01-22 - 17:03 ThomasBoch  
JPEGjpg data_exchange_small.jpg manage 31.0 K 2007-01-22 - 17:03 ThomasBoch  
JPEGjpg linked_views.jpg manage 180.7 K 2007-01-22 - 18:38 ThomasBoch  
JPEGjpg linked_views_small.jpg manage 28.9 K 2007-01-22 - 18:38 ThomasBoch  
PNGpng plastic_event_monitor.png manage 76.2 K 2007-01-22 - 16:17 ThomasBoch  
PNGpng plastic_event_monitor_small.png manage 51.5 K 2007-01-22 - 16:18 ThomasBoch  
JPEGjpg plastic_from_plane.jpg manage 100.2 K 2007-01-22 - 15:49 ThomasBoch  
PNGtif plastic_from_plane.tif manage 2964.3 K 2007-01-22 - 15:49 ThomasBoch  
JPEGjpg plastic_from_plane_small.jpg manage 15.3 K 2007-01-22 - 15:52 ThomasBoch  
JPEGjpg plastic_from_tree.jpg manage 82.9 K 2007-01-22 - 16:27 ThomasBoch  
JPEGjpg plastic_from_tree_small.jpg manage 20.0 K 2007-01-22 - 16:27 ThomasBoch  
JPEGjpg plastic_icon.jpg manage 96.8 K 2007-01-22 - 15:14 ThomasBoch  
JPEGjpg plastic_icon_small.jpg manage 19.8 K 2007-01-22 - 15:14 ThomasBoch  
JPEGjpg plastic_icon_states.jpg manage 23.0 K 2007-01-22 - 15:28 ThomasBoch  
JPEGjpg plastic_prefs.jpg manage 101.9 K 2007-01-22 - 14:54 ThomasBoch  
JPEGjpg plastic_prefs_small.jpg manage 18.6 K 2007-01-22 - 14:54 ThomasBoch  
JPEGjpg plugin_plastic.jpg manage 179.7 K 2007-01-22 - 19:53 ThomasBoch  
JPEGjpg plugin_plastic_small.jpg manage 33.7 K 2007-01-22 - 19:54 ThomasBoch  
Topic revision: r10 - 2007-05-23 - ThomasBoch
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback