widely open => heavily used Highly coupled level

Download Report

Transcript widely open => heavily used Highly coupled level

Experiences gained from
enabling Interoperability
in Aladin
Pierre Fernique [CDS]
Two interaction levels

Lower coupled level: a classical approach
=> command line parameters & files
=> http parameters & urls,
=> script commands (stdin or http)
=> widely open => heavily used

Highly coupled level: a java approach
=> java object interface
=> some implementations (VOPlot/AVO
proto/CADC tools…)
The ExtApp context

Connect VOPlot and Aladin:
– Aladin asks VOPlot to create 2D diagrams
– VOPlot asks Aladin to visualize astronomical
data on the sky
Requires a management of the object selection
callbacks (to select/highlight them in both
applications)
1. launch the
other application
2. send objects
2. each application
can call the other one
to highlight or select
a list of objects
ExtApp.java
 A symmetrical
java interface
implemented in both applications :
– void loadVOTable(ExtApp app, InputStream in);
– void showVOTableObject(String oid[]);
– void selectVOTableObject(String oid[]);
– String execCommand(String cmd);
Need for ExtApp2

To complete VOTable exchange:
InputStream getVOTable(String dataSetID)

To exchange images :
double [] getPixels(ra,dec,w,h) / (x,y,w,h)
setPixels(x,y,pix[]) / (ra,dec,pix[])?

To allow observer registering :
boolean add(this,MOUSE|PIXEL)
– to transmit current mouse ra,dec position:
void pos(ra, dec)
– to transmit pixel under mouse position:
void pix(double pix)
Lessons learnt

Several solutions (depend on the interaction
level)
 Close interactions easy to implement inside
java world…
 But how to cross the java border? =>
PLASTIC