Vous êtes sur la page 1sur 37

Rapport de Stage

Plate-forme Web pour la gestion des plans d'expriences de VLE


SALOM Daniel (dansal62@gmail.com) Master 1 ISIDIS

Anne Scolaire : 2008 - 2009 Stage du 30 mars au 31 juillet 2009

Responsable ULCO : Mr Arnaud LEWANDOWSKI Matre de stage : Mr Eric RAMAT

Plate-forme Web pour la gestion des plans d'expriences de VLE

Remerciements
Je tiens tout dabord remercier mon matre de stage, Mr Eric RAMAT pour m'avoir accueilli au sein de l'unit Biomtrie et Intelligence Artificielle de l'Institut National de Recherche Agronomique bas Toulouse. Je tiens galement remercier Mr Eric RAMAT, Mr Gauthier QUESNEL et Mr Patrick CHABRIER responsables du projet Virtual Laboratory Environment, pour m'avoir fourni leur aide durant le dveloppement. Je remercie aussi toutes les personnes employes dans lunit pour laquelle j'ai travaill ainsi que les autres stagiaires pour la bonne ambiance durant les quatre mois ce qui m'a permis de passer un stage agrable.

SALOM Daniel Master 1 ISIDIS

Rapport de stage

Plate-forme Web pour la gestion des plans d'expriences de VLE

Sommaire
Remerciements ....................................................................................................................................... 2 Sommaire ................................................................................................................................................ 3 Introduction ............................................................................................................................................. 5 INRA ......................................................................................................................................................... 6

1. 2.

Prsentation de lentreprise ........................................................................................... 6 Localisation gographique et effectif.............................................................................. 7

Le projet .................................................................................................................................................. 8

1.
a. b. c.

Etude de l'existant ........................................................................................................... 8


Virtual Laboratory Environment .............................................................................................. 8 Programmes composant VLE................................................................................................... 9 VLEWeb ................................................................................................................................. 10

2. 3.
a. b. c. d. e. f. g. h. i. j. k.

Objectifs du stage .......................................................................................................... 12 Droulement ................................................................................................................. 13


Gestion des utilisateurs ......................................................................................................... 14 Importation des expriences................................................................................................. 15 Excution normale et affichage des rsultats ....................................................................... 16 Modification des expriences ............................................................................................... 18 Exportation des rsultats ...................................................................................................... 19 Excution en mode plan d'expriences ................................................................................. 20 Paramtrage avanc des rsultats ........................................................................................ 21 Gestion des paquets .............................................................................................................. 23 Gestion des espaces utilisateurs et de groupes .................................................................... 23 Prise en charge des erreurs d'excution et dbogage .......................................................... 25 Aide l'utilisateur et documentation .................................................................................... 26

Bilan de comptences ........................................................................................................................... 27

1. 2.

Comptences comportementales ................................................................................. 27 Comptences techniques .............................................................................................. 28

Conclusion ............................................................................................................................................. 29 Webographie ......................................................................................................................................... 30 Annexes ................................................................................................................................................. 31 SALOM Daniel Master 1 ISIDIS Rapport de stage

Plate-forme Web pour la gestion des plans d'expriences de VLE

1. 2. 3. 4. 5.

Modle Conceptuel de Donnes ................................................................................... 31 Template Mako de base de VLEWeb ............................................................................ 31 Configuration du serveur Pylons (development.ini) ..................................................... 33 Script d'installation du serveur Pylons (websetup.py) .................................................. 34 Exemple de fichier VPZ : equation1.vpz ........................................................................ 35

SALOM Daniel Master 1 ISIDIS

Rapport de stage

Plate-forme Web pour la gestion des plans d'expriences de VLE

Introduction
Dans le cadre de la premire anne du Master Ingnierie des Systmes Informatiques Distribus l'Universit du Littoral Cte d'Opale, j'ai ralis un stage de quatre mois au sein du centre toulousain de l'Institut National de la Recherche Agronomique (INRA), du 30 mars au 31 juillet 2009. Le sujet de mon stage consistait dvelopper une interface Web pour le logiciel VLE1 dvelopp par l'INRA en collaboration avec l'Universit du Littoral, afin de proposer ses utilisateurs un aperu des possibilits offertes par ce logiciel et de faire des simulations via leur navigateur internet.
Ce rapport prsentera tout dabord une brve description du cadre dans lequel a t effectu ce stage, puis dtaillera le projet qui ma t confi ainsi que le travail ralis durant le droulement de celui-ci, et enfin le bilan concernant ce projet.

1 2

SALOM Daniel Master 1 ISIDIS

Virtual Laboratory Environment Discrete Event System Specification

Rapport de stage

Plate-forme Web pour la gestion des plans d'expriences de VLE

INRA
1. Prsentation de lentreprise

Tout d'abord, ce stage s'est droul au sein de l'Unit Biomtrie et Intelligence Artificielle

(UBIA) dans le dpartement Mathmatiques et Informatiques Appliques (MIA) au centre de l'Institut National de Recherche Agronomique situ Toulouse.

Le rle de cette unit est le dveloppement et la mise en uvre de mthodes informatiques et mathmatiques contribuant l'analyse et la gestion de systmes agricoles, forestiers et naturels ainsi que l'analyse des organismes de bactries, plantes et animaux avec une approch gnomique et gntique, en produisant des logiciels et en fournissant la formation qui va de paire pour la diffusion de ceux ci. Cette unit se focalise sur deux axes principaux : Gnome et Biotechnologie : tude de l'organisation et du fonctionnement des gnes des animaux et de vgtaux en fournissant les outils "bioinformatiques" ncessaires Territoire et Produits : ingnierie et gestion des productions agricoles, gestion et prservation des ressources naturelles et biologiques en dveloppant les mthodes et les outils informatiques ncessaires la comprhension des dynamiques des agrocosystmes et leur conception. Pour accomplir cela, diffrents partenariats sont mis en jeu, tout d'abord avec les ples scientifiques des universits de la rgion de Toulouse, les collectivits territoriales et locales, le Conseil Rgional de la rgion Midi-Pyrnes, et enfin le Laboratoire Informatique du Littoral (LIL) situ l'Universit du Littoral Cte d'Opale de Calais plus particulirement dans le dveloppement d'un systme de modlisation.

SALOM Daniel Master 1 ISIDIS

Rapport de stage

Plate-forme Web pour la gestion des plans d'expriences de VLE

2. Localisation gographique et effectif


Le centre toulousain de l'Institut National de la Recherche Agronomique est situ cette adresse : Centre INRA de Toulouse Midi-Pyrnes 24 Chemin de Borde Rouge BP 52627 31326 Castanet Tolosan cedex D'un point de vue effectif, l'Unit Biomtrie et Intelligence Artificielle de ce centre est constitue de : 14 chercheurs 18 ingnieurs 4 doctorants L'effectif de cette unit est rparti en : 2 quipes scientifiques : - Modlisation des Agrocosystmes et Dcision - Statistique et Algorithmique pour la Biologie 1 quipe Plates-formes bioinformatiques 1 quipe Informatique Documentation et Administration de l'Unit

SALOM Daniel Master 1 ISIDIS

Rapport de stage

Plate-forme Web pour la gestion des plans d'expriences de VLE

Le projet
1. Etude de l'existant
a. Virtual Laboratory Environment Au sein de l'unit BIA est dvelopp la plateforme logicielle Virtual Laboratory Environment (VLE), sous licence GNU GPL conue la base par le Laboratoire Informatique du Littoral ds 2003, qui permet la simulation de systmes complexes dynamiques. Cette plateforme propose aux chercheurs de modliser et de simuler des expriences lies leurs recherches dans des conditions les plus optimales possibles et est conu sur la base du formalisme vnement discret DEVS2 de B.P. Zeiger.

VLE est dvelopp en langage C++ (grce aux librairies Boost, STL3, GTKmm, libxml++, Cairo), utilise les technologies XML et fonctionne sur la plupart des systmes d'exploitation Linux, Machintosh et Windows. Le dveloppement d'expriences sous VLE repose sur les fichiers VPZ4 qui sont de type XML dans lesquels sont dcrits toutes les composantes d'un projet (voir exemple en annexe) : les modles : systmes dynamiques en fonction du temps, dvelopps en C++, le couplage entre les modles, les dynamiques, les expriences : les informations globales de l'exprience par elle-mme (nom, dure, grane), les vues : ce que l'on observe de l'exprience, les sorties : les rsultats obtenus de l'observation, les conditions : les paramtres de l'exprience en elle-mme qui peuvent varier les librairies : un projet peut faire partie d'une ou plusieurs librairies et peut faire appel des librairies externes.

2 3

Discrete Event System Specification Standard Template Library 4 VLE Project gZipped

SALOM Daniel Master 1 ISIDIS

Rapport de stage

Plate-forme Web pour la gestion des plans d'expriences de VLE

Voici un schma du fonctionnement de VLE par lui-mme :

Figure 1 : Fonctionnement de VLE

b. Programmes composant VLE La plateforme logicielle VLE est compose de divers programmes et outils : VLE : cur de l'application duquel dpendent toutes les autres applications, permet de lancer des simulations et de crer de nouveaux projets en ligne de commande GVLE : interface graphique de VLE, dveloppe sous GTK, permet de modliser de manire graphique et de saisir plus simplement les paramtres d'une exprience EOV : permet d'afficher les valeurs d'exprience au cours d'une simulation via divers plugins RVLE : permet d'excuter les expriences sous l'environnement R afin de faire des analyses statistiques AVLE : combinaison de GVLE et RVLE

La dernire version stable de VLE est sortie en mai 2009 en 0.7.1, tandis que la version en cours de dveloppement actuelle est la 0.8.

SALOM Daniel Master 1 ISIDIS

Rapport de stage

Plate-forme Web pour la gestion des plans d'expriences de VLE

10

Figure 2 : GVLE version 0.8 (release de juillet 2009)

c. VLEWeb Au cours de cette anne scolaire, dans le cadre des projets annuels de premire anne de Master, le dveloppement d'une interface Web pour VLE sous le nom VLEWeb a t dbut en langage Python reposant sur le framework Pylons5, une base de donnes SQLite gre par SQLAlchemy6 et les technologies AJAX par l'intermdiaire de jQuery7. Le projet consistait en l'laboration d'une interface web permettant lexcution de simulations directement sur un serveur web. Ce projet est destination des chercheurs de l'Institut National de la Recherche Agronomique (INRA) de Toulouse pour avoir accs directement par internet aux logiciels VLE. Le dveloppement de l'application se fait sous le modle MVC : Modle - Vue Contrleur. La partie modle regroupe les reprsentations des objets de la base de donnes, la partie vue regroupe tous les diffrents templates (en HTML ici) qui affichent les objets manipuls via les contrleurs qui constituent le cur de l'application et regroupant toutes les fonctionnalits.

5 6

http://www.pylonshq.com/ : site officiel de Pylons http://www.sqlalchemy.org/ : site officiel de SQLAlchemy 7 http://www.jquery.com/ : site officiel de jQuery

SALOM Daniel Master 1 ISIDIS

Rapport de stage

Plate-forme Web pour la gestion des plans d'expriences de VLE

11

Modle (SQL Alchemy)


Base de donnes

Vue (HTML)
Template

Contrleur (Python)

Serveur WEB

Figure 3 : Modle-Vue-Contrleur

Durant le droulement de ce projet, les fondations de VLEWeb ont t mises en place, c'est dire la dfinition des besoins, des contraintes, dveloppement de l'interface HTML (mise en page), une gestion sommaire des futurs utilisateurs et une excution simplifie d'exprience afin de se familiariser avec ces diffrentes technologies et le fonctionnement de VLE par lui-mme, chose qui a ncessit pas mal de temps au cours de l'anne scolaire, notamment cause de divers problmes techniques. Par consquent, il tait ncessaire d'effectuer ce stage afin de terminer le dveloppement de VLEWeb et d'obtenir une interface fonctionnelle et complte, une premire formation VLEWeb tant prvue en mai 2009 via une premire version.

SALOM Daniel Master 1 ISIDIS

Rapport de stage

Plate-forme Web pour la gestion des plans d'expriences de VLE

12

2. Objectifs du stage
Initialement, le projet a t organis en deux phases tales sur la dure de lanne scolaire et le stage prvu, une troisime tant prvoir en fonction de lvolution de celui-ci: Premire phase : fonctionnalits initiales 1. Mise en place du framework et de sa base de donnes 2. Style et mise en page de la plateforme Web 3. Ajout, suppression, modification des utilisateurs 4. Le mcanisme d'identification 5. Gestion des groupes et rles utilisateurs 6. Importation des fichiers Vpz et des modles dans la base de donnes SQLite 7. Excution normale et affichage des rsultats dans un graphique simple et un tableau en fonction du temps Deuxime phase : fonctionnalits avances 1. Aperu rapide des Vpz avant importation 2. Modification paramtres dexprience 3. Exportation des rsultats 4. Excution en mode plan dexpriences (replicas) 5. Configuration avance de la sortie graphique, de lexportation, et de laffichage des rsultats sous forme de tableau en fonction du temps et de plusieurs ports Ces objectifs devaient tre accomplis pour la premire version de VLEWeb du mois de mai 2009 pour une premire dmonstration aux utilisateurs.

Troisime phase : Amliorations supplmentaires et fonctionnalits diverses 1. 2. 3. 4. 5. Gestion des paquets Gestion despaces utilisateurs et espaces communs Prise en charge des erreurs dexcution de VLE Slection de la combinaison excuter en mode plan dexpriences Mise en place d'un tutoriel et d'un systme d'aide l'utilisateur

A la fin du projet, nous tions arrivs entre l'tape 3 et 4 de la premire phase, il restait donc pas mal de tches accomplir durant ce stage pour parvenir une premire version fonctionnelle.

SALOM Daniel Master 1 ISIDIS

Rapport de stage

Plate-forme Web pour la gestion des plans d'expriences de VLE

13

3. Droulement
Le stage s'est effectu en majorit en tltravail car les diffrents collaborateurs et interlocuteurs du projet travaillaient divers endroits en France : Nord-Pas-De-Calais, Toulouse ou Montpellier, et effectuaient rgulirement des dplacements. Afin d'obtenir un travail et un suivi efficaces sur le projet, nous communiquions en permanence via un salon IRC, ce qui permettait aux responsables de vrifier et juger le travail effectu quotidiennement, ainsi que notre prsence. De plus, quelques runions en visioconfrence ont t organises au sein de l'Universit du Littoral avec nos collaborateurs situs Toulouse, pour planifier le cheminement de ce projet et faire une dmonstration de notre avancement, ainsi nous pouvions discuter dans de meilleures conditions. Au niveau du dveloppement de VLEWeb par lui mme, nous avons opt pour la mthodologie de travail d'eXtreme Programming qui tait dj employe pour le dveloppement des autres applications de VLE. Le principe de cette mthode est de dcouper le dveloppement de l'application en tches de dure quivalente une journe environ, la fin desquelles un patch contenant le code de la partie correspondante tait fourni aux responsables du projet afin d'tre valid et intgr dans l'application, le cas chant le dveloppeur de cette partie pouvait apporter plus facilement une correction son code. Cette mthode est utilise et a fait ses preuves dans le dveloppement de divers projets dans le monde du logiciel libre, comme les applications GIMP, eMule, Filezilla ou Azureus. Pour appliquer cette mthodologie, j'ai utilis des utilitaires de versionning comme Git et me suis appuy sur le site internet du projet VLE sur Sourceforge9 qui proposait un tracker pour planifier les diffrentes tches selon un degr de priorit et dcrire succinctement le but de chacune de ces tches. Un des gros avantages du versionning est la possibilit de revenir une version antrieure de l'application trs facilement afin de comparer les avances, trs utile en cas d'un bug de programme apport par un patch pour retrouver quelle mise jour a ajout ce bug.
8

8 9

http://git-scm.com/ http://www.sourceforge.net

SALOM Daniel Master 1 ISIDIS

Rapport de stage

Plate-forme Web pour la gestion des plans d'expriences de VLE

14

Soumission d'une tche sur le tracker

Assignement de la tche un dveloppeur

Dveloppement du patch

Application du patch et push

Validation du patch par le responsable

Conversion et soumission du fichier de patch

Clture de la tche sur le tracker


Figure 4: Mthodologie de travail via Git

a. Gestion des utilisateurs Tout d'abord, il fallait complter et finaliser la gestion des utilisateurs de VLEWeb qui reposait sur le module Authkit10, dvelopp en langage Python pour le framework Pylons utilis par notre projet. En thorie il devait apporter une gestion complte des utilisateurs, c'est dire leur authentification, l'ajout, suppression et modification ainsi la gestion de leurs rles et groupes. En pratique, ce module m'a pos beaucoup de problmes durant sa mise en place, ce qui a notamment ralenti le dveloppement durant l'anne scolaire, surtout cause d'un srieux manque de documentation. En effet, les tutoriaux proposs sur le site officiel tait disponibles uniquement pour les versions antrieures de Pylons, et s'avraient tre incompltes. Le premier problme qui m'a t pos tait l'ajout et la suppression des utilisateurs dans la base de donnes SQLite, qui tait compltement impossible via l'API d'Authkit car son approche envers la base de donnes tait uniquement en lecture seule, chose non spcifie dans la documentation officielle. J'ai donc contourn ce problme en utilisant des requtes en langage SQL, l'approche objet tant interdite par Authkit. Le second problme a t la gestion des groupes et des rles limites, chaque utilisateur ne pouvait disposer que d'un rle et d'un unique groupe, problme contourn par la cration de nouvelles tables SQL, ce qui a rendu obsolte les mthodes de l'API. J'ai ensuite mis en place le chiffrement des mots de passe via l'algorithme de hachage MD511, et l'utilisation de l'application en mode HTTPS uniquement
10 11

http://www.authkit.org/ Message Digest 5 (sur 128 bits)

SALOM Daniel Master 1 ISIDIS

Rapport de stage

Plate-forme Web pour la gestion des plans d'expriences de VLE

15

pour chiffrer les donnes via SSL12 qui transitent du navigateur de l'utilisateur vers le serveur, ce qui tait demand par les responsables du projet, l'accs en HTTP normal tant alors bloqu par Pylons. Une fois la mise en place de la gestion des utilisateurs ainsi que de leur authentification termine, la gestion des accs envers telle ou telle partie de site par le menu principal s'en est retrouve beaucoup plus simplifie grce aux mthodes offertes par Authkit. De plus, les futurs administrateurs de VLEWeb disposent dsormais de tous les outils de gestion des utilisateurs, chaque utilisateur peut tre administrateur d'un groupe et ajouter manuellement des utilisateurs au sein de son groupe ce qui lui permettra de partager ses expriences en vitant de les afficher en public. La connexion des utilisateurs au site se fait par l'intermdiaire du formulaire situ dans l'entte de la page Web.

Figure 5 : Administration des utilisateurs

b. Importation des expriences Ensuite, afin de permettre aux utilisateurs de manipuler les diffrentes expriences, il a t ncessaire d'implmenter l'importation de fichiers VPZ dans la base de donnes. Pour se faire, il fallait d'abord proposer un aperu du contenu des VPZ l'administrateur ainsi qu'aux utilisateurs qui dsiraient l'utiliser. Deux possibilits tait offertes pour lire les fichiers VPZ : soit un parsing XML classique, trs limit, soit l'utilisation de l'API de VLE via le langage Python, avec le wrapper PyVLE dont le dveloppement a t commenc par Mr RAMAT, bas sur la librairie Boost pour convertir les objets C++ en Python et inversement. J'ai donc retenue cette dernire solution et en ai continu le dveloppement pour mes besoins.

12

Secure Sockets Layer

SALOM Daniel Master 1 ISIDIS

Rapport de stage

Plate-forme Web pour la gestion des plans d'expriences de VLE

16

Une fois l'aperu mis en place, il ne me restait plus qu' proposer un paramtrage simple de l'importation via un formulaire afin de saisir les informations et les autorisations des utilisateurs des expriences, et ensuite grer l'importation par elle-mme. Pour cela, j'ai cr plusieurs tables dans la base de donnes : une table models qui regroupe tous les modles d'une exprience, une table languages qui rassemble les diffrents langages de programmations utilisables via VLE, une table libraries qui regroupe toutes les libraires disponibles et utiliss par les fichiers VPZ et une table experiments qui regroupe les informations gnrales des VPZ. Une fois l'importation lance, ces tables sont alors remplies automatiquement par VLEWeb, ce qui me sera utile pour implmenter l'utilisation par ellemme de ces expriences. L'importation s'effectue en utilisant le mappage des tables de la base de donnes propos par SQLAlchemy en objets avec une approche OQL13. Les administrateurs de VLEWeb peuvent donc grer les expriences comme ils l'entendent, les modifier, les supprimer, autoriser tel ou tel utilisateur modifier ou simuler celles-ci, les rendre publiques ou non.

Figure 6 : Page principale d'importation

c. Excution normale et affichage des rsultats Une des fonctionnalits de base de VLEWeb est l'excution des simulations d'expriences et l'affichage sous diffrentes formes des rsultats de celles-ci. Les rsultats peuvent tre disponibles sous deux types : sous forme de tableau ou sous forme graphique. Pour ce faire, diverses mthodes taient proposes par PyVLE pour obtenir les rsultats sous forme de matrice, afin de les afficher via Pylons. Ces mthodes permettent d'excuter les
13

Object Query Language

SALOM Daniel Master 1 ISIDIS

Rapport de stage

Plate-forme Web pour la gestion des plans d'expriences de VLE

17

simulations de diffrentes manires par VLE. Cette partie du dveloppement ne m'a pas pos de problmes particuliers grce des outils et librairies Python puissants. L'affichage en mode tableau se fait via un tableau HTML tout simple, tandis que l'affichage sous forme graphique se fait par l'intermdiaire de MatPlotLib14 qui gnre un fichier image PNG selon les maps Python contenues en sortie d'excution de VLE et avec un paramtrage trs prcis des courbes. Deux choix sont possibles en mode graphique : une sortie en fonction du temps ou une sortie en fonction d'une autre. Dans les deux cas, l'utilisateur doit slectionner les sorties afficher sur le graphique final. A cette tape du projet, seul un paramtrage simple tait permis par VLEWeb, une configuration plus pousse tant prvue une tape ultrieure, et l'excution de la simulation de l'exprience pouvait se faire en mode normal uniquement, un mode d'excution de plan d'exprience (replicas) tant prvu galement.

Figure 7 : Graphique de simulation en mode normal

14

http://matplotlib.sourceforge.net/

SALOM Daniel Master 1 ISIDIS

Rapport de stage

Plate-forme Web pour la gestion des plans d'expriences de VLE

18

d. Modification des expriences Une fois l'excution normale implmente, j'ai par la suite dvelopp la partie sur la modification des paramtres d'expriences. Le but de cette partie tait d'offrir la possibilit aux utilisateurs de modifier les valeurs des conditions d'exprience. Pour cela, il fallait lister les modles de l'application, lister les conditions en relation chaque modle et enfin lister les diffrentes valeurs par condition. La mise en relation entre les modles, conditions et valeurs se sont faites partir de nouvelles mthodes que j'ai dvelopp dans PyVLE. Ainsi, un fichier est compos de modles, qui sont composs d'une ou plusieurs conditions, elles mmes composes d'une ou plusieurs valeurs; une condition pouvant tre attache plusieurs modles. VLEWeb devait donc permettre l'ajout, la modification ou la suppression de valeurs dans une condition, le reste tant fixe car cod en dr dans le modle, en effet si une condition d'un modle est manquante, l'exprience plante. Seules les valeurs de type simple sont manipulables par VLEWeb : entiers, flottants, chane de caractres ou boolens; les types complxes ou composs tant difficiles grer via une interface Web.

Modle A
Condition 1 Condition 2

Modle B
Condition 3

0.5

0.6

1500

0.10

Figure 8 : Hirarchie entre modles, conditions et valeurs

Pour viter un plantage l'excution d'une simulation, une vrification est faite la vole au moment de la saisie d'une valeur par l'intermdiaire des outils de jQuery, ainsi le formulaire n'est pas valid tant que la valeur saisie ne correspond pas au type choisi. J'ai donc dvelopp quelques mthodes dans PyVLE pour simplifier cette vrification ainsi que l'ajout d'une valeur d'un type donn, l'API de VLE fournissant toutes les mthodes ncessaires cette ralisation qu'il ne me restait plus qu' appeler via le wrapper Python. Enfin, j'ai mis en place d'dition de valeur de la graine et de la dure de l'exprience sur le mme modle que l'dition des valeurs de conditions.
SALOM Daniel Master 1 ISIDIS Rapport de stage

Plate-forme Web pour la gestion des plans d'expriences de VLE

19

Les informations globales des fichiers VPZ comme le nom, le propritaire, le niveau d'accs, stockes dans la base de donnes sont aussi modifiables via ce mode. Les autres composantes des VPZ comme les observables ne sont pas modifiables mais peuvent tre aperues. Concernant cette partie, la documentation Doxygen15 du projet VLE m'a t d'une trs grande aide d'o un gain de temps considrable, car elle m'a vit d'aller chercher dans le code C++ de VLE les mthodes dont j'avais besoin.

Figure 9 : Edition d'une exprience

e. Exportation des rsultats Afin de pouvoir traiter les rsultats obtenus la suite d'une simulation, il tait ncessaire d'offrir la possibilit aux utilisateurs d'exporter ceux-ci vers des fichiers qu'ils pourraient tlcharger sur leur ordinateur. VLEWeb offre trois formats d'exportation : CSV, Text et RData. Comme pour la modification des expriences, j'ai d'abord dvelopp les mthodes ncessaires l'exportation dans PyVLE puis implment les fonctions ncessaires dans VLEWeb. Encore une fois, l'API de VLE m'a t d'une trs grande utilit pour le dveloppement de cette partie.
15

http://www.stack.nl/~dimitri/doxygen/

SALOM Daniel Master 1 ISIDIS

Rapport de stage

Plate-forme Web pour la gestion des plans d'expriences de VLE

20

Chaque utilisateur de VLEWeb dispose de son propre dossier avec un sous-dossier par exprience cr automatiquement au moment du lancement de l'exportation, afin d'y stocker les fichiers obtenus. La slection du format d'exportation se fait via un formulaire pour chaque vue de l'exprience voulue.

Figure 10 : Configuration de l'exportation des rsultats

f. Excution en mode plan d'expriences Initialement, VLE propose deux modes d'excution : un mode normal et un mode plan d'expriences (replicas). Le mode plan d'expriences s'applique pour les fichiers VPZ disposant de conditions possdant plusieurs valeurs ou d'une valeur du nombre de rplicas dfinie. A partir de l, deux possibilits d'excution sont possibles, soit une combinaison totale, soit une combinaison linaire, dans les deux cas elles sont construites partir des diffrentes valeurs de conditions valeurs multiples. Dans ce mode, chaque combinaison est excute comme en mode normal et les rsultats des combinaisons sont rassembls dans une matrice en sortie. Les fonctionnalits proposes par VLEWeb ici sont nombreuses, d'abord les utilisateurs ont le choix entre plusieurs possibilits de tracer les courbes de rsultats : toutes les courbes de toutes les combinaisons sur un mme graphe ou non, une courbe pour une seule combinaison au choix, ou la moyenne et la variance de toutes les courbes, une combinaison de plusieurs de ces choix tant possible. Pour chaque trac, une slection des ports est au pralable ncessaire comme pour l'excution normale, de plus si le mode de traage d'une combinaison uniquement est choisi, le choix de la combinaison est propos avec un aperu des combinaisons dont les valeurs varient correspondantes. Enfin, dans le mode d'affichage sous forme de matrice ou le mode d'exportation, le choix de la combinaison est propos avant l'excution d'une simulation. Dans cette partie, pas mal de mthodes ont t dveloppes dans PyVLE afin de simplifier et d'optimiser la configuration et la gnration des matrices de rsultats : une mthode d'affichage des diffrentes conditions impactes par le changement de combinaison, une mthode pour gnrer la matrice de rsultats correspondants une
SALOM Daniel Master 1 ISIDIS Rapport de stage

Plate-forme Web pour la gestion des plans d'expriences de VLE

21

combinaison unique en dcoupant les fichiers VPZ pour gnrer des fichiers temporaires correspondant aux choix voulus qui seront excuts directement d'o un gain de temps pour l'utilisateur qui ainsi ne doit pas patienter aprs l'excution de toutes les sous-expriences comme c'tait le cas auparavant dans la version initiale de PyVLE, la mthode pour l'exportation a quant elle t remodele en consquence pour prendre en charge l'excution des plans d'expriences et enfin une mthode dtectant le nombre de combinaisons du VPZ en fonction des conditions valeurs multiples. Concernant VLEWeb, une bonne partie du code concernant l'excution normale a t reprise et adapte pour ce mode, les formulaires et les vues ont simplement t modifis pour prendre en charge ces nouvelles fonctionnalits qui sont proposes uniquement si le fichier VPZ entre dans cette configuration, de mme pour l'excution en elle-mme.

Figure 11 : Exemple de sortie graphique d'un plan d'expriences

g. Paramtrage avanc des rsultats Afin d'toffer les possibilits offertes aux utilisateurs de VLEWeb, un paramtrage avanc des rsultats en sortie de simulation a t dvelopp pour mieux correspondre leurs besoins. Ce paramtrage s'applique surtout pour la sortie graphique qui a t

SALOM Daniel Master 1 ISIDIS

Rapport de stage

Plate-forme Web pour la gestion des plans d'expriences de VLE

22

profondment remanie, en effet celle-ci est dsormais totalement configurable dans les dtails. Les paramtrages proposs en mode graphique sont le titre du graphique, le nom et l'chelle des axes, la taille en pixels de l'image finale gnre via matplotlib, la lgende des courbes, la couleur, l'paisseur et le type de traits et de points des courbes ainsi que leurs extremums, et l'affichage ou non de la grille. Les paramtres peuvent tre laisss vides par les utilisateurs, ils sont par consquents ignors au moment de la gnration de l'image finale par Matplotlib. Par souci de rutilisabilit du code et pour le rendre gnrique afin d'tre utilis pour d'autres projets prvus l'INRA, j'ai factoris le code correspondant ces paramtrages et la vue de la sortie graphique dans une nouvelle librairie Python nomme VLEWebLib dj utilise pour le projet d'un stagiaire utilisant l'application allge VLEWebLite que j'ai dveloppe cet effet.

Figure 12 : Configuration avance du mode graphique

SALOM Daniel Master 1 ISIDIS

Rapport de stage

Plate-forme Web pour la gestion des plans d'expriences de VLE

23

h. Gestion des paquets Pendant la priode de stage, une fonctionnalit importante et nouvelle a t ajoute la version en cours de dveloppement de VLE, qui propose aux utilisateurs de stocker et d'utiliser leurs expriences ainsi que les librairies associes sous forme de paquet pour plus de simplicit en dveloppement, en installation et en utilisation car auparavant les diffrents rpertoires propres une exprience taient spars et pas trs pratiques. Il m'a donc fallu implmenter cette gestion de paquets aussi dans VLEWeb et adapter tous les fonctionnalits existantes et aussi grer leur importation dans la base de donnes. Par consquent PyVLE et VLEWebLib ont t adapts en modifiant les rpertoires appels par ceux-ci au moment d'ouvrir ou enregistrer un VPZ. De nouvelles mthodes ont t dveloppes partir des ajouts de l'API de VLE, notamment pour lister les paquets installs sur le serveur, indiquer l'arborescence des dossiers de paquets, slectionner et excuter les VPZ contenus dans les paquets. Encore une fois, la documentation gnre pour l'API m'a t d'une trs grande aide de mme que la lisibilit du code de VLE pour dvelopper cette partie.

Figure 13 : Importation de paquets en base de donnes en mode admin

i. Gestion des espaces utilisateurs et de groupes Pour permettre aux utilisateurs de stocker et de partager leurs expriences avec d'autres membres de leur groupe de travail ou aux utilisateurs non-inscrits, j'ai dvelopp un systme de gestion d'espaces utilisateurs et d'espaces communs de groupes en modifiant tous les contrleurs et toutes les vues afin de dtecter automatiquement quel dossier utiliser pour chaque action de l'utilisateur.
SALOM Daniel Master 1 ISIDIS Rapport de stage

Plate-forme Web pour la gestion des plans d'expriences de VLE

24

Il a donc fallu ajouter diverses interfaces pour l'utilisateur afin d'importer les expriences globales (celles disponibles par dfaut tous) et les paquets dans son nouvel espace de travail et de paramtrer le degr de partage (non-partag, partage avec le groupe uniquement en lecture seule, partage avec le groupe avec autorisation de modifier, partage au public en lecture-seule) de celles-ci. Ainsi dans la vue globale de l'espace de travail de l'utilisateur sont regroupes les expriences globales importables, excutables et modifiables si elles lui appartiennent, les expriences propres lui-mme et les expriences des autres membres de son groupe.

Figure 14 : Espace utilisateur

SALOM Daniel Master 1 ISIDIS

Rapport de stage

Plate-forme Web pour la gestion des plans d'expriences de VLE

25

j. Prise en charge des erreurs d'excution et dbogage Un gros problme qui a t pos pour VLEWeb est la gestion des erreurs d'excution de VLE qui entranaient obligatoirement un plantage du serveur de l'application en cas de VPZ erron ou d'une erreur de segmentation classique, il fallait donc chaque fois relancer le serveur de Pylons. Deux solutions taient alors envisageables : soit empcher VLEWeb de planter en essayant de passer l'excution via des threads part, soit relancer le serveur automatiquement en cas de plantage. La premire solution s'est avre impossible mettre en place car le thread principal plantait quand mme si l'un de ses fils plantait, mme si je les utilisais via Python ou via C++. La seconde solution a t plus abordable en utilisant le mode dmon de Pylons via l'appel de la ligne de commande pour lancer le serveur en ajoutant les arguments ncessaires. Cela reste tout de mme problmatique si d'autres expriences sont excutes en parallle par d'autres utilisateurs qui verraient alors tout simplement leur simulation chouer. Le temps imparti ne m'a pas t assez suffisant pour que je puisse tudier les cas de simulation sur des serveurs distants. Concernant les erreurs d'excution classiques dues un VPZ ou un modle erron avec un message de retour dans la console, j'ai pu les traiter en les faisant afficher l'issue de l'excution dans VLEWeb. Ainsi si l'excution s'excute normalement, les rsultats demands sont affichs, sinon le message d'erreur correspondant est affich pour que l'utilisateur corrige ses erreurs.

Figure 15 : Message d'erreur de simulation

SALOM Daniel Master 1 ISIDIS

Rapport de stage

Plate-forme Web pour la gestion des plans d'expriences de VLE

26

k. Aide l'utilisateur et documentation Afin d'offrir une simplicit d'utilisation de VLEWeb aux futurs utilisateurs, j'ai mis en place un tutoriel et un systme d'aide pour chaque fonction de l'interface. Le tutoriel est disponible via un fichier README.txt pour l'installation sur serveur, mais aussi dans l'interface utilisateur via le menu de gauche. Il reprend tout le droulement de l'application, de l'ajout dans l'espace de travail jusqu' la simulation en passant par la modification. Un autre tutoriel est aussi disponible pour VLEWebLite afin d'expliquer aux futurs dveloppeurs comment le personnaliser pour faire la dmonstration d'une exprience qui leur est propre. Le systme d'aide quant lui est consultable tout moment sur chaque page de l'interface en cliquant sur le bouton correspondant, qui affiche une info-bulle expliquant les possibilits offertes par chaque action utilisateur.

Figure 16 : Tutoriel

SALOM Daniel Master 1 ISIDIS

Rapport de stage

Plate-forme Web pour la gestion des plans d'expriences de VLE

27

Bilan de comptences
1. Comptences comportementales
Ce stage ma apport beaucoup de choses du point de vue personnel. Tout dabord, jai dcouvert le fonctionnement de l'eXtreme Programming propre la plupart des projets OpenSource via la pratique et les mthodes de travail qui lui sont associes, ainsi que le travail distance pour lesquels j'ai du et su m'adapter pour une efficacit quivalente aux autres processus connus de dveloppement d'une application auxquels j'ai t confront dans mes prcdentes expriences en entreprise. Ensuite, dans certains cas, jai eu la possibilit de donner mon avis et de proposer des amliorations comme l'ajout de la gestion d'espaces utilisateurs et de groupes qui est une fonctionnalit qui sera trs utile pour les futurs utilisateurs de VLEWeb, ou encore le choix de certaines technologies AJAX (comme l'affichage par onglets, en accordon ou botes de dialogues) au niveau interface pour une meilleure ergonomie et praticit d'utilisation. Enfin, jai t capable de solutionner la plupart des problmes auxquels jai t confront pendant le dveloppement du projet. En effet, la plus grande partie des problmes rencontrs ont t issus de l'utilisation d'Authkit ou encore de Pylons par luimme, n'tant pas aid par la trs faible voire inexistante (dans le cas d'Authkit) documentation offerte ces propos, problmes dj poss lors du droulement du projet en priode scolaire, j'ai donc du tudier le fonctionnement de ceux-ci de trs prs en faisant divers tests ou tout simplement en tudiant le code de ces outils. Pour les autres outils utiliss, j'ai pu trouver toutes les informations ncessaires leur utilisation en trouvant les bonnes sources sur Internet. Jai donc t capable : de m'adapter au fonctionnement de l'eXtreme Programming et de travailler distance de proposer des amliorations dans le dveloppement de cette application de solutionner la plupart des problmes rencontrs au cours du projet. Jai su : agir en toute autonomie, travail distance oblige, couter et prendre en compte les opinions des divers interlocuteurs du salon IRC et appliquer leurs recommandations.

SALOM Daniel Master 1 ISIDIS

Rapport de stage

Plate-forme Web pour la gestion des plans d'expriences de VLE

28

2. Comptences techniques
Lapport en matire technique a t trs important ! Tout d'abord, j'ai pu me familiariser avec le dveloppement en langage Python et approfondir mes connaissances en C++; avoir une approche avec la mthodologie de dveloppement en Modle-Vue-Contrleur via le framework Pylons, mthodologie qui sera enseigne en deuxime anne de Master; et appliquer les connaissances acquises au cours de cette anne propos de l'approche objet d'une base de donnes avec SQLAlchemy. Ensuite, jai pu mettre en uvre diverses librairies et outils de dveloppement qui ont t trs nombreuses au cours du dveloppement de cette application : Pylons pour le framework de base, Authkit pour la gestion des utilisateurs, le templating Mako, le moteur de base de donnes SQLAlchemy, les librairies Boost, le gnrateur de graphiques Matplotlib, l'API jQuery et son homologue pour les interfaces jQueryUI. De plus, jai pu parfaire mes connaissances en technologies AJAX qui sont dsormais trs utilises dans le dveloppement de sites et d'applications Internet. Enfin, jai pu apprendre programmer de manire rapide et efficace, ce qui tait impratif pour le bon droulement du projet qui ma t confi, mais aussi organiser correctement le code et amliorer sa lisibilit, qui me faisaient auparavant un peu dfaut, pour simplifier la tche aux ventuels dveloppeurs qui seraient amens travailler et utiliser ce projet dans l'avenir.

SALOM Daniel Master 1 ISIDIS

Rapport de stage

Plate-forme Web pour la gestion des plans d'expriences de VLE

29

Conclusion
A travers ce stage, jai pu me familiariser avec une autre approche, plus oriente logiciels libres, du dveloppement d'applications; il ma permis de parfaire mes connaissances en dveloppement Web, mais aussi den acqurir des nouvelles notamment dans des langages de programmation plus classiques. J'ai pu aborder une mthode de programmation efficace et autodidacte, ce qui sera ncessaire dans le monde de l'entreprise. Les tches qui m'ont t confies au cours de ce stage, ont toutes t accomplies avec succs, ce qui permettra aux chercheurs de l'INRA ou d'autres instituts de pouvoir faire une dmonstration des expriences qu'ils auront dvelopps via la plateforme logicielle VLE, ou encore utiliser et personnaliser VLEWeb pour leurs propres besoins. Bien entendu, d'autres possibilits et fonctionnalits peuvent encore voir le jour comme notamment l'installation de VLEWeb sur un cluster de plusieurs machines, qui sera aborde en deuxime anne de Master. Le succs de ce projet, et la bonne impression que ce stage ma laiss ont donc renforc mon choix de continuer dans la filire du dveloppement logiciel et ddi internet, le tout en ayant acquis de nouvelles connaissances qui me seront trs utiles terme.

SALOM Daniel Master 1 ISIDIS

Rapport de stage

Plate-forme Web pour la gestion des plans d'expriences de VLE

30

Webographie
http://www.toulouse.inra.fr/ - http://www.inra.fr/compact/nav/externe/fr/unites/ecrans/875

Sites officiels de l'Institut National de la Recherche Agronomique et de l'unit BIA


http://vle.univ-littoral.fr/ - http://vle.toulouse.inra.fr/

Sites officiels du projet Virtual Laboratory Environment


http://sourceforge.net/projects/vle/

Site officiel du projet et des trackers de Virtual Laboratory Environment sur Sourceforge http://www.developpez.com Site de rfrence sur les diffrents langages de programmations existants. De plus ce site possde une communaut trs active.
http://www.python.org/doc/

Documentation de rfrence du langage Python


http://pylonsbook.com/

Manuel de rfrence officiel du framework Pylons


http://authkit.org/

Site officiel de la librairie Authkit


http://www.sqlalchemy.org/

Site officiel de l'outil SQLAlchemy http://ajaxian.com/ Site en anglais ddi la technique de programmation Web : AJAX http://www.webjax.eu/ Site europen ddi lAJAX et ses diffrentes librairies http://jquery.com/ - http://jqueryui.com/ Site en anglais ddi la librairie JavaScript : jQuery et son homologue jQueryUI http://www.jquery.info/ Site franais ddi jQuery
http://matplotlib.sourceforge.net/

Site officiel franais de la librairie graphique MatPlotLib


http://www.boost.org/

Site officiel des librairies C++ Boost http://www.alsacreations.com/ Site franais ddi aux langages HTML, CSS, X-HTML et aux standards W3C

SALOM Daniel Master 1 ISIDIS

Rapport de stage

Plate-forme Web pour la gestion des plans d'expriences de VLE

31

Annexes
1. Modle Conceptuel de Donnes

2. Template Mako de base de VLEWeb


<%! from vle.controllers import connection %> <html> <head> <title>VLE-Web - ${self.title()}</title> ${h.stylesheet_link('/reset-fonts-grids.css')} ${h.stylesheet_link('/base.css')} ${h.stylesheet_link('/js/jquery.alerts.css')} ${h.stylesheet_link('/js/css/smoothness/jquery-ui-1.7.1.custom.css')} <script src="/js/jquery-1.3.2.min.js"></script> <script src="/js/jquery-ui-1.7.1.custom.min.js"></script> <script src="/js/jquery.alerts.js"></script> <script src="/js/jquery.form.js"></script> <script type="text/javascript"> $(document).ready(function(){ $(".helpsct").css("display","none"); }); function show_help() { $(".helpsct").show(); }; function hide_help() { $(".helpsct").hide(); }; </script> </head> <body> <div id="doc2" class="yui-t2"> <div id="hd"> <img src="/imgs/logovle.png" class="logo"> <div class="loginform"> <table>

SALOM Daniel Master 1 ISIDIS

Rapport de stage

Plate-forme Web pour la gestion des plans d'expriences de VLE

32

<tr> %if connection.ValidAuthKitUser(): ${h.form(h.url_for('/connection/signout'), method='post')} <td class="welcomemsg">Welcome ${request.environ['REMOTE_USER']} !</td> <td>${h.submit('submit', 'Sign Out')}</td> ${h.end_form()} %else: ${h.form(h.url_for('/user/login'), method='post')} <td><img src="/imgs/icons/user.png"></td> <td>${h.text('username',style='width:80px;')}</td> <td><img src="/imgs/icons/lock.png"></td> <td>${h.password('password',style='width:80px;')}</td> <td>${h.submit('submit', 'Sign In')}</td> ${h.end_form()} %endif </tr> </table> </div> </div> <div id="bd"> <div id="yui-main"> <div class="yui-b"> <h1>${self.title()}<a href="javascript:show_help();"><img src="/imgs/icons/help.png"></a></h1> ${self.body()} </div> </div> <div class="yui-b"> <div id="nav"> <ul> %if connection.ValidAuthKitUser(): %if connection.HasAuthKitRole(['admin']): <li><a href="#">General</a></li> <li><a href="/user/index">User</a></li> <li><a href="/import/index">Import</a></li> <li><a href="/library/index">Library</a></li> <li><a href="/model/index">Model</a></li> <li><a href="/experiment/index">Experiment</a></li> <li><a href="/language/index">Language</a></li> <li><a href="/group/index">Group</a></li> <li><a href="#">Preferences</a></li> %else: <li><a href="/model/index">Model</a></li> <li><a href="/experiment/index">Experiment</a></li> <li><a href="/group/index">Group</a></li> <li><a href="#">Preferences</a></li> %endif %else: <li><a href="/model/index">Model</a></li> <li><a href="/experiment/index">Experiment</a></li> %endif </ul> </div> </div> </div> <div id="ft"> <b>V</b>irtual <b>L</b>aboratory <b>E</b>nvironment </div> </div> </body> </html>

SALOM Daniel Master 1 ISIDIS

Rapport de stage

Plate-forme Web pour la gestion des plans d'expriences de VLE

33

3. Configuration du serveur Pylons (development.ini)


# # vle - Pylons development environment configuration # # The %(here)s variable will be replaced with the parent directory of this file # [DEFAULT] debug = true # Uncomment and replace with the address which should receive any error reports #email_to = you@yourdomain.com smtp_server = localhost error_email_from = paste@localhost [server:main] use = egg:Paste#http host = 0.0.0.0 port = 5000 ssl_pem = %(here)s/ssl/server.pem [app:main] use = egg:vle full_stack = true cache_dir = %(here)s/data beaker.session.key = vle beaker.session.secret = somesecret sqlalchemy.url = sqlite:///vle.db authkit.setup.enable = true authkit.setup.method = form, cookie authkit.form.authenticate.user.type = authkit.users.sqlalchemy_driver:UsersFromDatabase authkit.form.authenticate.user.data = vle.model authkit.form.authenticate.user.encrypt = authkit.users:md5 authkit.form.authenticate.user.encrypt.secret = vle-web rocks authkit.cookie.secret = secret string authkit.cookie.signoutpath = /connection/signout authkit.form.template.obj = vle.lib.auth:render_signin attachments = %(here)s/attachments # If you'd like to fine-tune the individual locations of the cache data dirs # for the Cache data, or the Session saves, un-comment the desired settings # here: #beaker.cache.data_dir = %(here)s/data/cache #beaker.session.data_dir = %(here)s/data/sessions # WARNING: *THE LINE BELOW MUST BE UNCOMMENTED ON A PRODUCTION ENVIRONMENT* # Debug mode will enable the interactive debugging tool, allowing ANYONE to # execute malicious code after an exception is raised. #set debug = false # Logging configuration [loggers] keys = root, vle [handlers] keys = console [formatters] keys = generic [logger_root] level = INFO handlers = console

SALOM Daniel Master 1 ISIDIS

Rapport de stage

Plate-forme Web pour la gestion des plans d'expriences de VLE

34

[logger_vle] level = DEBUG handlers = qualname = vle [handler_console] class = StreamHandler args = (sys.stderr,) level = NOTSET formatter = generic [formatter_generic] format = %(asctime)s,%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s datefmt = %H:%M:%S

4. Script d'installation du serveur Pylons (websetup.py)


"""Setup the vle application""" import logging from paste.deploy import appconfig from pylons import config from vle.config.environment import load_environment from authkit.users.sqlalchemy_driver import UsersFromDatabase from authkit.users import md5 # Load the models from sqlalchemy import * from vle import model from vle.model import * meta.metadata.bind = meta.engine log = logging.getLogger(__name__) log.info("Adding the AuthKit model...") users = UsersFromDatabase(model) def setup_config(command, filename, section, vars): """Place any commands to setup vle here""" conf = appconfig('config:' + filename) load_environment(conf.global_conf, conf.local_conf) meta.metadata.create_all(checkfirst=True) log.info("Adding roles and uses...") users.role_create("admin") users.role_create("experiment") users.role_create("model") users.user_create("vle", password=md5("vle","vle-web rocks")) users.user_add_role("vle", role="experiment") users.user_create("admin", password=md5("admin","vle-web rocks")) users.user_add_role("admin", role="admin") users.user_create("eric", password=md5("toto","vle-web rocks")) users.user_add_role("eric", role="model") users.user_create("goth", password=md5("toto","vle-web rocks")) users.user_add_role("goth", role="model")

SALOM Daniel Master 1 ISIDIS

Rapport de stage

Plate-forme Web pour la gestion des plans d'expriences de VLE

35

users.user_create("pat", password=md5("toto","vle-web rocks")) users.user_add_role("pat", role="model") l1 = Library('equation1') #meta.Session.add(l1) l2 = Library('equation2') #meta.Session.add(l2) l3 = Library('ladybirdplantlouse') #meta.Session.add(l3) lg1 = Language('C++') meta.Session.add(lg1) lg2 = Language('Python') meta.Session.add(lg2) lg3 = Language('Java') meta.Session.add(lg3) m1 = Model('A1', 1, 1) #meta.Session.add(m1) m2 = Model('B1', 1, 1) #meta.Session.add(m2) m3 = Model('C1', 1, 1) #meta.Session.add(m3) m4 = Model('D1', 1, 1) #meta.Session.add(m4) m5 = Model('A2', 2, 1) #meta.Session.add(m5) m6 = Model('B2', 2, 1) #meta.Session.add(m6) m7 = Model('C2', 2, 1) #meta.Session.add(m7) m8 = Model('D2', 2, 1) #meta.Session.add(m8) m9 = Model('ladybird', 3, 1) #meta.Session.add(m9) m10 = Model('plantlouse', 3, 1) #meta.Session.add(m10) e1 = Experiment('equation1', 3, 'equation1.vpz', True) #meta.Session.add(e1) e2 = Experiment('equation2', 4, 'equation2.vpz', True) #meta.Session.add(e2) e3 = Experiment('qss_exp1', 5, 'qss_exp1.vpz', False) #meta.Session.add(e3) users.group_create("Test") ug1 = UserGroup(3,1) og1 = OwnerGroup(3,1) meta.Session.add(ug1) meta.Session.add(og1) meta.Session.commit()

5. Exemple de fichier VPZ : equation1.vpz


<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE vle_project PUBLIC "-//VLE TEAM//DTD Strict//EN" "http://vle.univlittoral.fr/vle-0.8.0.dtd"> <vle_project version="0.5" date="Tue, 12 May 2009" author="Eric Ramat"> <structures> <model name="m" type="coupled" > <submodels> <model name="A" type="atomic" conditions="cond,cond_A" dynamics="dynA" observables="obsA" > <out> <port name="update" /> </out>

SALOM Daniel Master 1 ISIDIS

Rapport de stage

Plate-forme Web pour la gestion des plans d'expriences de VLE

36

</model> <model name="B" type="atomic" conditions="cond,cond_B" dynamics="dynB" observables="obsB" > <in> <port name="update" /> </in> <out> <port name="update" /> </out> </model> <model name="C" type="atomic" conditions="cond,cond_C" dynamics="dynC" observables="obsC" > <in> <port name="update" /> </in> <out> <port name="update" /> </out> </model> <model name="D" type="atomic" conditions="cond,cond_D" dynamics="dynD" observables="obsD" > <in> <port name="update" /> </in> </model> </submodels> <connections> <connection type="internal"> <origin model="A" port="update" /> <destination model="D" port="update" /> </connection> <connection type="internal"> <origin model="A" port="update" /> <destination model="B" port="update" /> </connection> <connection type="internal"> <origin model="B" port="update" /> <destination model="C" port="update" /> </connection> <connection type="internal"> <origin model="C" port="update" /> <destination model="D" port="update" /> </connection> </connections> </model> </structures> <dynamics> <dynamic name="dynA" library="equation1" model="A1" type="local" /> <dynamic name="dynB" library="equation1" model="B1" type="local" /> <dynamic name="dynC" library="equation1" model="C1" type="local" /> <dynamic name="dynD" library="equation1" model="D1" type="local" /> </dynamics> <experiment name="exp" duration="1" seed="12389" > <conditions> <condition name="cond" > <port name="size" > <integer>3</integer> <integer>4</integer> <integer>5</integer> </port> <port name="time-step" > <double>0.1</double> </port> </condition> <condition name="cond_A" > <port name="name" > <string>a</string> </port>

SALOM Daniel Master 1 ISIDIS

Rapport de stage

Plate-forme Web pour la gestion des plans d'expriences de VLE

37

<port name="value" > <double>0</double> </port> </condition> <condition name="cond_B" > <port name="name" > <string>b</string> </port> </condition> <condition name="cond_C" > <port name="name" > <string>c</string> </port> <port name="value" > <double>1</double> </port> </condition> <condition name="cond_D" > <port name="name" > <string>d</string> </port> </condition> </conditions> <views> <outputs> <output name="o" location="" format="local" plugin="storage" /> </outputs> <observables> <observable name="obsA" > <port name="a" > <attachedview name="view1" /> </port> </observable> <observable name="obsB" > <port name="b" > <attachedview name="view1" /> </port> </observable> <observable name="obsC" > <port name="c" > <attachedview name="view1" /> </port> </observable> <observable name="obsD" > <port name="d" > <attachedview name="view1" /> </port> </observable> </observables> <view name="view1" output="o" type="timed" timestep="0.1" /> </views> </experiment> </vle_project>

SALOM Daniel Master 1 ISIDIS

Rapport de stage