Chrystel Moreau & François Agneray
MISE A DISPOSITION
DE DONNÉES SCIENTIFIQUES RENCONTRE RÉSEAU PRODEV
http://cesam.lam.fr/anis
SOMMAIRE
Contexte
Présentation d’ANIS
Technologie d’ANIS
Environnement
de développement
LE CONTEXTE
Collecte de données
Traitement des données
Accès aux données
Systèmes d’Information
ACCES AUX DONNÉES
186 Go ANIS
Application web
interactive de mise à
disposition des données scientifiques du CeSAM
3.3 To
PROJET ANIS
Gestion du projet ANIS :
• Durée : 2 ans
• Effectif : 3 personnes
• Version actuelle v2.1.2
Phase d’Exploitation
!
• maintenance corrective
• maintenance évolutive
• capitalisation
Phase de Réalisation
!
• développement de l’application
• tests
• validation
• déploiement Phase Préparatoire
!
• étude du besoin
• définition d’un calendrier
• étude technique et fonctionnelle
• definition de l’architecture
LES FONCTIONNALITÉS
Différents modes de recherche :
• par critères
• par position
• par liste d’objets
• par « SQL-Module »
LES VISUALISATIONS
Visualisation des résultats des recherches :
• données numériques
• images, figures
• liens
Possibilité de filtrer les résultats
LES DOWNLOADS
Export du résultat de la recherche :
• données numériques (format CSV, ASCII, VO)
• images FITS
• spectres
CONFIGURATION D’ANIS
Paramétrage des données métier via ANIS-ADMIN :
• définition des jeux de données
• définition des critères
• définition des
paramètres de sortie
Interface client
ANIS-ADMIN
PRÉSENTATION TECHNIQUE
Interface
Metadata Framework
BdD métier
BDD METADATA
Mettre à jour la base
MetaData, c’est mettre à jour l’interface web du projet.
FRAMEWORK - PRÉSENTATION
« kit » de composants logiciels communs à
toutes les instances ANIS Fonctionnalités :
• Moteur MVC
!
• Chargement automatique des classes
!
• Connexions aux bases de données
!
• Fabrication des requêtes SQL
!
• Gestion des modes de recherche
FRAMEWORK - SQLBUILDER
Le package SqlBuilder permet de construire dynamiquement une
requête SQL à partir des paramètres utilisateurs
<?php!
$select = new SelectSqlQuery();!
$select->setTable(new Table('galaxies');!
!$id = new Column('id');!
$ra = new Column('ra');!
$dec = new Column('dec');!
!$select->addColumn($id)!
->addColumn($ra)!
->addColumn($dec);!
!$between = new BetweenCriterion('z', 1.2, 1.3);!
$select->addWhere($between);!
!echo $select->getSqlQuery();!
!// Le script retourne : ! // SELECT id, ra, dec ! // FROM galaxies !
// WHERE z BETWEEN 1.2 AND 1.3;
FRAMEWORK - TEMPLATESI
Le package Templatesi gère les différents modes de recherche et fabrique l’objet SelectSqlQuery
<?php!
$dataset = $this−>_request->getParam('dataset');!
!$criteria = new CriteriaSelectSqlQueryBuilder();!
$criteria->init($dataset);!
$critiera->where($_REQUEST);!
$count = new Column('count(*)');!
$criteria->getSqlQuery()->addColumn($count);!
$manager = Manager::getInstance();!
$nbObject = $manager->execSqlQuery($criteria->getSqlQuery());!
$criteria->getSqlQuery()->resetColumns();!
$criteria->select($_REQUEST);!
!!
// Récupération de la requête SQL fabriquée!
echo $criteria->getSqlQuery();
INTERFACE UTILISATEUR
Instance ANIS propre à chaque projet et associée à une base MetaData et une base Métier.
Composant PHP 1
• utilisation du framework
Composant JavaScript
• gestion des formulaires
• DataTables, JQplot Composant IHM
• design projet
• pages web (menu, formulaires, …)
INTERFACE - FORMULAIRES
Génération d’un
formulaire de recherche : 1. sélection du dataset 2. requête AJAX vers le
serveur
3. récupération des infos de la matadata
4. formulaire renvoyé au
client. 1 2 3
4
INTERFACE - DATATABLES
Génération d’une page de résultat :
1. envoi de la requête 2. affichage du résultat
par le plugin JQuery DataTables
1
2
INTERFACE - JQPLOT
Plugin jQuery JQPLOT :
• séries de points
• histogrammes
• camembert
ENVIRONNEMENT - ARCHITECTURE
ENVIRONNEMENT - OUTILS
Développement :
!
• environnement de
développement intégré
• gestionnaire de version
• gestionnaire de projet
• tests unitaires et fonctionnels