22
A L I M E N T A T I O N A G R I C U L T U R E 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 ? Pourquoi une interface

Embed Size (px)

Citation preview

Page 1: 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

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

Page 2: 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

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 d’une base de données, génération dynamique d’une interface d’interrogation et de mise à jour

Technologie : linux/apache/php/mysql (technologie web)

Implémentation : serveur virtuel privatif CTIG (intranet)

Page 3: 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

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 biologiquesGestion et suivi métrologie des pipettes

Incertitudes sur l’un d’entre eux (échantillons) pour des raisons politiques (barcode) et fonctionnelles (périmètre de barcode)

Interface réutilisable, donc générique

Page 4: 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

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

Page 5: 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

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 d’affichage : Nombre d’occurrence affichées (pagination)

Masquage/affichage des colonnes réglables

Valeurs par défaut : include_config.php

Masquage/affichage des requêtes au choix

Page 6: 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

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

L’interface : page d’entrée

Page 7: 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

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

L’interface : choix du travail global (thème) ou par table

Page 8: 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

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

L’interface : réglage de l’affichage

Page 9: 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

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

L’interface : construction de la requête

Page 10: 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

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

L’interface : afficher le résultat de la requête

Page 11: 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

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

L’interface : mise à jour identique à consultation, sauf que les valeurs affichées sont modifiables (à l’exception des clés)

Page 12: 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

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

L’interface : code :

PHP

Adaptation aux applications :renseignement de variables (include_config.php)règles de nommages des tables et colonnes

Jointures :calculées à l’installation (et si modif schéma)stockées dans une table de service (jointures)

Page 13: 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

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 l’attribut ‘comment’ de mysql (séparateur : ‘, ‘ si table appartient à plusieurs domaine)

Page 14: 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

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_...’, dateNom : ‘date_creation’, date système ajout recordClé primaire : début de table

Page 15: 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

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 l’instant :

Gestion des échantillons biologiques

Gestion de la métrologie des pipettes

Page 16: 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

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) : < 100000 échantillons

Cible : Equipe G2B, puis GABI, puis ?

Page 17: 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

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

Page 18: 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

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 ?

Page 19: 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

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

Page 20: 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

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

Page 21: 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

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

L’interface : Interface générique (phpmygi) :

Avantages : Multi-projet Souplesse : schéma modifiable sans redéveloppementPortable facilement

Inconvénients :

Lourdeur du développement initialCarrossage rudimentairePerformances pas excellentes

Page 22: 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

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 l’interface

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,...