A L I M E N T A T I O N A G R I C U L T U R E E N V I R O N N E M E N T PhpMyGI une interface générique mysql Interface générique ? Pourquoi une interface générique ? Fonctionalités Consultation, Mise à jour Code Adaptation aux BDs : nommage, paramètres Applications pilotes : échantillons, pipettes Echantillons Pipettes Avantages / Inconvénients Conclusion : perspectives
A L I M E N T A T I O N A G R I C U L T U R E E N V I R O N N E M E N T PhpMyGI une interface générique mysql Interface générique ? A partir dune base de données, génération dynamique dune interface dinterrogation et de mise à jour Technologie : linux/apache/php/mysql (technologie web) Implémentation : serveur virtuel privatif CTIG (intranet)
A L I M E N T A T I O N A G R I C U L T U R E E N V I R O N N E M E N T PhpMyGI une interface générique mysql Pourquoi une interface générique ? Deux projets à réaliser : Gestions échantillons biologiques Gestion et suivi métrologie des pipettes Incertitudes sur lun dentre eux (échantillons) pour des raisons politiques (barcode) et fonctionnelles (périmètre de barcode) Interface réutilisable, donc générique
A L I M E N T A T I O N A G R I C U L T U R E E N V I R O N N E M E N T PhpMyGI une interface générique mysql Fonctionnalités (1) : Domaine ou Thème : tables regroupées fonctionnellement (5 à 10) Requêtes affichées par table ou par domaine Requêtes sur domaine : résultats affichés pour les tables du domaine affichage des autres domaines par lien
A L I M E N T A T I O N A G R I C U L T U R E E N V I R O N N E M E N T PhpMyGI une interface générique mysql Fonctionnalités (2) : Fenêtre daffichage : Nombre doccurrence affichées (pagination) Masquage/affichage des colonnes réglables Valeurs par défaut : include_config.php Masquage/affichage des requêtes au choix
A L I M E N T A T I O N A G R I C U L T U R E E N V I R O N N E M E N T PhpMyGI une interface générique mysql Linterface : page dentrée
A L I M E N T A T I O N A G R I C U L T U R E E N V I R O N N E M E N T PhpMyGI une interface générique mysql Linterface : choix du travail global (thème) ou par table
A L I M E N T A T I O N A G R I C U L T U R E E N V I R O N N E M E N T PhpMyGI une interface générique mysql Linterface : réglage de laffichage
A L I M E N T A T I O N A G R I C U L T U R E E N V I R O N N E M E N T PhpMyGI une interface générique mysql Linterface : construction de la requête
A L I M E N T A T I O N A G R I C U L T U R E E N V I R O N N E M E N T PhpMyGI une interface générique mysql Linterface : afficher le résultat de la requête
A L I M E N T A T I O N A G R I C U L T U R E E N V I R O N N E M E N T PhpMyGI une interface générique mysql Linterface : mise à jour identique à consultation, sauf que les valeurs affichées sont modifiables (à lexception des clés)
A L I M E N T A T I O N A G R I C U L T U R E E N V I R O N N E M E N T PhpMyGI une interface générique mysql Linterface : code : PHP Adaptation aux applications : renseignement de variables (include_config.php) règles de nommages des tables et colonnes Jointures : calculées à linstallation (et si modif schéma) stockées dans une table de service (jointures)
A L I M E N T A T I O N A G R I C U L T U R E E N V I R O N N E M E N T PhpMyGI une interface générique mysql Règles de nommage (1) Tables : Nom des tables : un _ signifie relation n-n Le domaine est mentionné dans lattribut comment de mysql (séparateur :, si table appartient à plusieurs domaine)
A L I M E N T A T I O N A G R I C U L T U R E E N V I R O N N E M E N T PhpMyGI une interface générique mysql Règles de nommage (2) Colonnes : Nom : no_... _[tableorigine]_alien ou code_..._[tableorigine]_alien : clé étrangère Nom : no_[nomdelatable] ou code_[nomdelatable], clé primaire Nom : date_..., date Nom : date_creation, date système ajout record Clé primaire : début de table
A L I M E N T A T I O N A G R I C U L T U R E E N V I R O N N E M E N T PhpMyGI une interface générique mysql Applications : Deux applications pilotes pour linstant : Gestion des échantillons biologiques Gestion de la métrologie des pipettes
A L I M E N T A T I O N A G R I C U L T U R E E N V I R O N N E M E N T PhpMyGI une interface générique mysql Applications : Echantillons Complément local à barcode : échantillons hétérogènes, parfois mal référencés, orienté animal et expérimentation Communication avec barcode : import/export de feuilles de routes Volumétrie (est) : < échantillons Cible : Equipe G2B, puis GABI, puis ?
A L I M E N T A T I O N A G R I C U L T U R E E N V I R O N N E M E N T PhpMyGI une interface générique mysql Applications : Echantillons - schéma
A L I M E N T A T I O N A G R I C U L T U R E E N V I R O N N E M E N T PhpMyGI une interface générique mysql Applications : Métrologie des pipettes : en aval de la base de mesures, gestion du parc de pipettes Communications avec la base amont : import de fichiers csv (via Access) Volumétrie : < 1000 pipettes Cible : GABI, puis ?
A L I M E N T A T I O N A G R I C U L T U R E E N V I R O N N E M E N T PhpMyGI une interface générique mysql Applications : Metrologie pipettes - schéma
A L I M E N T A T I O N A G R I C U L T U R E E N V I R O N N E M E N T PhpMyGI une interface générique mysql Etat actuel du serveur : Pipettes : en ligne, comptes déquipes (tests) créés Premiers retours de bugs Echantillons : en ligne
A L I M E N T A T I O N A G R I C U L T U R E E N V I R O N N E M E N T PhpMyGI une interface générique mysql Linterface : Interface générique (phpmygi) : Avantages : Multi-projet Souplesse : schéma modifiable sans redéveloppement Portable facilement Inconvénients : Lourdeur du développement initial Carrossage rudimentaire Performances pas excellentes
A L I M E N T A T I O N A G R I C U L T U R E E N V I R O N N E M E N T PhpMyGI une interface générique mysql Perspectives dévolution : Court terme : Terminer les développements/débugages bloquants de linterface Mise en test, puis en production fonctionnalités en létat Moyen terme : Intégrer fonctionnalités prévues (dont affichage horizontal des domaines; bascule consultation/mise à jour) Améliorer performances et carrossage interface générique Supprimer les contraintes de nommage Etendre les possibilités de requêtage (toute requête sql) Documentation Long terme : Autres applicatifs, publication en open source,...