L'objectif de cette maquette est de rendre accessible et interrogeable les donnees presente actuellement sur l'espace
http://jmmc.fr/oidata
Pour cela nous allons installer une instance de
DSA et mettre en place un mini base de données qui regroupera les donnees oidata.
Nous réaliserons un
mini client d'interrogation pour montrer la faisabilité en mode web.
Par la suite il serait possible de faire une application autonome d'interrogation permettant de fournir a n'importe quelle application VO (par SAMP) l'url du fichier a telecharger...
TODO voir comment presenter correctement d'un point de vu semantique VO nos url (appelees ACREF dans SSAP).
Composants technique du service de base de données
Service VO (niveau TAP/CS)
Role
Repondre aux interfaces VO ( TAP, CS, VOSI....) et retourner les references (URL) des donnees disponibles.
Solution retenue
Installer la web app DSA qui repond aux standarts TAP (ADQL seulement pour l'instant) ou CS en puisant less données dans un SGBD et rendant des VOtables (ou autres formats...).
Memo technique
DSA
Mysql
- Creer la structure de la base
CREATE TABLE IF NOT EXISTS `oidata` (
`_ra` DOUBLE NOT NULL,
`_dec` DOUBLE NOT NULL,
`filename` varchar(256) NOT NULL,
`targetname` text NOT NULL,
`insname` text NOT NULL,
`min_wavelength` DOUBLE NOT NULL,
`max_wavelength` DOUBLE NOT NULL,
`nb_channels` INT NOT NULL,
`nb_vis` INT NOT NULL,
`nb_vis2` INT NOT NULL,
`nb_t3` INT NOT NULL,
`url` text NOT NULL,
`subdate` timestamp NOT NULL default CURRENT_TIMESTAMP COMMENT 'Date of submission',
PRIMARY KEY (`filename`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
DSA
- Generer le fichier metadoc qui indique les liaisons a faire pour passer de la DB aux VOtables
- Redemmarer la web app
A ce point les services VO de DSA sont operationnels, mais il reste a renseigner la base de donnee
Client d'interrogation
Role
Fournir une interface d'interrogation de la base et une visualisation des resultats
Solution retenue
Fournir une mini application web (PHP). Afin de faire un client leger, les formulaires premacheront des requetes types. Les quelques etapes principales etant:
- a partir des formulaires (html) d'interrogation, prendre en argument des parametres de requete dans un script PHP
- les transmettres a DSA
- afficher la VOTable rendue par DSA en HTML pour utilisation ( information, telechargement, redirection vers un visualisateur web ) a l'aide d'un xslt.
Memo technique
Les formulaires travaillent en mode GET afin de montrer au maximum les informations qui circulent.
Alimentation de(s) la base(s)
Role
Rajouter de nouvelles ressources dans la ou les bases du SGBD. Un outil doit permettre d'extraire les parametres essentiels des oifits.
Solution retenue
Cette solution s'appuie sur des solutions deja mise en place au JMMC (cf
http://www.jmmc.fr/oival)
- Recuperation d'une liste d'URLS d'oifits
- pour chaque oifits en recuperer son contenu sous forme XML
- le transformer en enregistrement Ascii reprenant les colonnes des tables Mysql séparés par des tabs
- Charger le fichier TSV
Memo technique
Le fichier TSV se charge grace a la commande MySql :
LOAD DATA INFILE '/home/users/mella/oidb.txt' INTO TABLE oidata;
Le dernier enregistrement subdate a une valeur par defaut, du coup son omission dans le fichier TSV n'empeche pas le bon chargement.
Diagramme Architecture
Concretement, le service VO fournit des VOTables en reponse a des requetes niveau base.
Il est utilisé par le portail qui repond a des requetes haut niveau ou des applications VO (client java, portail distant...)
Les fichiers Oifits sont heberge le plus simplement derrieres des serveurs web http/ftp.
Commentaires
- Vous trouverez ci dessous le brouillon de l'architecture d'un service OV interféro à modifier amender commenter en particulier par Guillaume suite à notre discussion téléphonique de ce jour. Il apparait qu'il devient essentiel d'avoir dès que possible l'expression des besoins utilisateurs avant de trop avancer dans la définition d'architecture.
Après discussion avec Daniel Bonneau un autre chantier à mener sérieusement sera celui du crossmatch entre catalogues interféro avec si possible une définition d'un identificateur commun voir une méthode complémentaire de vérification pour s'assurer que l'on a le même objet. Essayez de rechercher Sirius dans 2mass et regardez ses coordonnées en les comparant avec celle de Simbad .... --
JeanMichelClausse - 07 Sep 2010
- Est-il necessaire de faire plusieurs bases ou doit-on avoir une colonne permettant de faire cette distinction tout en facilitant l'interrogation globale? -- GuillaumeMella - 20 Aug 2010
- Comparé au site http://apps.jmmc.fr/oidata les descriptions des fichiers ne sont plus la, ni le fait d'etre rataché à un dataset. On perd donc en fonctionnalité (regroupement par dataset) et en information utilisateur. La resolution de ce probleme peut rapidement prendre de grande dimensions d'un point de technique, quel en est le point de vue des utilisateurs ? Cependant si l'on implement correctement les champs de VORessources, cela repondra a un bon nombre de cas. -- GuillaumeMella - 20 Aug 2010