• Aucun résultat trouvé

Développement d’une Plateforme Web pour l’Automatisation des Simulations

N/A
N/A
Protected

Academic year: 2021

Partager "Développement d’une Plateforme Web pour l’Automatisation des Simulations"

Copied!
38
0
0

Texte intégral

(1)

HAL Id: hal-02785561

https://hal.inrae.fr/hal-02785561

Submitted on 4 Jun 2020

HAL is a multi-disciplinary open access

archive for the deposit and dissemination of sci-entific research documents, whether they are pub-lished or not. The documents may come from

L’archive ouverte pluridisciplinaire HAL, est destinée au dépôt et à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des établissements d’enseignement et de

Développement d’une Plateforme Web pour

l’Automatisation des Simulations

Zouhair Mortabit

To cite this version:

Zouhair Mortabit. Développement d’une Plateforme Web pour l’Automatisation des Simulations. Autre [cs.OH]. 2018. �hal-02785561�

(2)

Polytech Clermont-Ferrand UREP - INRA, site de Crouel

Campus des Cézeaux 2 5, Chemin de Beaulieu

63178 AUBIERE - CS 60026 63000 Clermont-Ferrand

Rapport de stage

5 ème année

Développement d’une Plateforme Web pour

l’Automatisation des Simulations

Présenté par :

Zouhair MORTABIT

Tuteur INRA :

Raphaël MARTIN

Tuteur Polytech : François BOUCHON

(3)

Remerciements

Merci à mes tuteurs d’entreprise M. Raphaël Martin, Ingénieur de Recherche à l’INRA et d’école, M. François Bouchon, Maître de Conférences à l’UCA.

Je souhaite ensuite remercier M. Gianni Bellocchi et M. Loïc Yon, pour l’intérêt porté à mon projet, le suivi et les conseils procurés tout au long de mon stage.

Je tiens également à faire part de ma reconnaissance à l’ensemble des employés du site de Crouel, et surtout mes collègue de bureau (Jean-Noël, Sylvain, Valérian, Célia et Candice) pour leur accueil chaleureux et pour l’ambiance qu’ils ont apporté durant cette période.

(4)

Résumé

L’étude des impacts des changements climatiques est un sujet de recherche majeur à l’heure actuelle. Ces recherches se basent sur l’utilisation des modèles de climat et d’im-pact.

VulClim est une plateforme permettant d’automatiser le lancement de ce type de simu-lations afin d’évaluer les vulnérabilités des systèmes agricoles aux changements clima-tiques. Elle facilite ainsi le calcul des impacts des changements climatiques à l’échelle régionale.

VulClim prend en entrée une série de données (fonction du modèle choisi), lance la si-mulation et met en forme les sorties.

Le thème principal de ce stage est de trouver un outil permettant de lancer à travers le web, des simulations qui demandent des calculs de haute performance. J’ai principale-ment appris à réaliser l’étude fonctionnelle et technique d’un projet informatique tout en renforçant mes compétences sur le framework SpringBoot et en m’initiant à l’outil SLURM.

J’ai donc commencé par analyser profondément l’outil existant et les techniques de stockage de données utilisées, afin de comprendre son fonctionnement et faire une com-paraison avec les autres technologies possibles qui sont performants et seraient compa-tibles avec le langage choisi.

(5)

Abstract

Currently, the study of the impacts of climate changes is a major research topic. This research is based on the use of climate and impact models.

VulClim is a platform to automate the launch of this type of simulations, in order to es-timate the vulnerabilities of the agricultural systems at the climate change. So, it makes easier the calculation of the impacts of climate change in The regional scale.

VulClim takes as input a series of data (depending of the chosen model), launches the simulation and formats the outputs.

The goal of this internship is to find a tool to launch, through the web, simulations that require high performance calculations. I acquired new skills, such as knowledge of the working of the servers, the scheduling of the computer activities, some web develop-ment frameworks. So I started by deeply analyzing the existing application and the techniques used for data storage, in order to understand how it works and make a com-parison with the other possible technologies that are efficient and would be compatible with the chosen language.

(6)

Table des matières

Résumé 1 Abstract 1 Introduction 3 1 Présentation de l’entreprise 4 1.1 Échelle régionale . . . 5 1.2 L’UREP et le stage . . . 5

1.3 Description des tâches à effectuer pendant le stage . . . 6

2 Conception du projet 8 2.1 La plateforme VulClim actuelle . . . 8

2.1.1 Présentation générale . . . 8

2.1.2 Cas classique d’utilisation . . . 9

2.1.3 Résumé du fonctionnement actuel . . . 12

2.2 Fonctionnement souhaité . . . 14

2.2.1 Un module d’authentification . . . 14

2.2.2 Un module de soumission et de partage des modèles . . . 14

2.2.3 Un module de soumission et de partage des données . . . 16

2.2.4 Un module de lacement des simulations . . . 17

2.2.5 Un module de gestion des jobs . . . 20

2.3 Architecture souhaitée . . . 20

3 Développement de la nouvelle plateforme 22 3.1 Prérequis pour le développement de la nouvelle plateforme . . . 22

3.1.1 Notre serveur . . . 22

3.1.2 SLURM . . . 25

3.2 Développement du nouvel outil . . . 26

3.2.1 Langages utilisés . . . 26

(7)

2

4 Analyse et réflexion des apports du stage 29

4.1 Analyse concernant la mission . . . 29 4.2 Analyse du travail . . . 29

4.2.1 Connaissance préalables (acquises durant le cursus scolaire et personnellement) . . . 29 4.2.2 Connaissances manquantes et celles acquises durant le stage . . 30 Autonomie . . . 30 Difficultés rencontrées . . . 30

Conclusion 32

(8)

Introduction

Dans le cadre de mon cursus d’ingénieur à Polytech Clermont-Ferrand, j’ai effectué mon stage de fin d’étude au sein de l’unité UREP à l’INRA de Crouël à Clermont-Ferrand du 12 février au 12 août 2018.

Pour ma part, mon stage a été consacré à la conception et au développement d’un outil permettant le lancement de simulations automatisées. Cela m’a permis d’exploiter les connaissances que j’ai acquises suite aux différents projets de développement réalisés dans le cadre de mon cursus.

Durant mon stage, j’ai effectué dans un premier temps le développement de deux pro-totypes afin de me permettre de sélectionner la technologie permettant de répondre à nos besoins. Ensuite, j’ai travaillé sur la conception de la plateforme : analyse de l’exis-tant, définition des objectifs, exploration de différentes fonctionnalités et le design (ma-quette) des différentes pages souhaitées. Ces différentes tâches m’ont permis d’acquérir des nouvelles notions de développement et d’avoir une vision plus juste du cycle de vie complet d’une application web.

(9)

Chapitre 1

Présentation de l’entreprise

L’INRA, Institut National de la Recherche Agronomique est une structure Française, ayant le statut d’entreprise public à caractère scientifique et technologique sous la tu-telle du ministère de l’agriculture et du ministère de la recherche. Il est le premier institut de recherche agronomique en Europe et deuxième en science agricole dans le monde, il a été fondé en 1946, au lendemain de la Seconde Guerre mondiale, dans le but de répondre à la question "comment nourrir la France" alors que la pénurie alimentaire s’étend sur le territoire.

«La fonction de cet institut est d’explorer, de comprendre, d’expérimenter, et anticiper sur différents domaines qui ont évolués depuis la création de l’institut, mais certains do-maines restent les mêmes : l’alimentation, l’agriculture et l’environnement. Les enjeux majeurs de l’institut sont le territoire, la santé, le développement durable, la bio écono-mie et de rester compétitif avec les entreprises privées.

Les missions, activités et résultats de l’INRA vont impacter la population de diverses façons, à commencer par nourrir la France et la planète, réduire la dépendance aux pes-ticides et engrais du monde agricole, assurer une alimentation saine et durable, sauver les espèces et dans la logique conserver la biodiversité génétique, innover en sélection animale et végétale sans oublier anticiper et lutter contre le changement climatique. Ce sont ces missions qui vont définir les 13 département de recherche qui composent l’INRA.

Depuis 2015, l’INRA s’inscrit dans une stratégie à long terme sur une période de 10 ans, dans le but d’atteindre différent objectifs : explorer de nouveaux mondes microbiens, modéliser les phénomènes naturels (culture et élevage du futur), cerner l’influence de l’environnement sur l’expression des gènes et s’engager dans une politique de donnée ouvertes en maitrisant les avalanches de données.

Un budget de 881.57 millions est à disposition de l’INRA pour atteindre ces objectifs, ce qui lui permet de gérer 17 centres de recherche comprenant 250 unité de recherche

(10)

1.1 Échelle régionale 5

avec un total de 8 165 agents titulaires dont 1 815 chercheurs.»1

1.1

Échelle régionale

«Le centre Auvergne-Rhône-Alpes comporte 29 unités réparties sur 15 sites, cela repré-sente environ 10% de l’effectif total de l’INRA.»2Il développe des recherches multidis-ciplinaires dans une large gamme de domaines, réparties en 4 grands axes : « Biologie intégrative des plantes modèles et cultivées et adaptations à leur environnement », « Nutrition humaine, métabolismes intégratifs et complexité alimentaire », « Agroéco-logie des systèmes d’élevage herbagers, qualité des produits, épidémioAgroéco-logie animale et développement des territoires », « Écologie des systèmes aquatiques sous contraintes anthropiques ». Le site de Crouël se situe en périphérie de Clermont Ferrand, il regroupe 3 unités différentes, le GDEC (Génétique, diversité et écophysiologie des céréales), le PIAF (Physique et Physiologie Intégratives de l’Arbre en environnement Fluctuant) et l’UREP (Unité mixte de Recherche sur Écosystème prairial).

1.2

L’UREP et le stage

L’effectif de l’UREP est actuellement de 33 personnes. Sous la direction de Pascal Car-rere, elle se structure autour d’un pôle administratif en charge de la gestion des moyens, d’un collège scientifique en charge de la prospective et de la stratégie scientifique et d’un collège technique.

«L’UREP possède une expertise internationale dans le domaine de l’écologie prairiale et plus particulièrement sur l’impact du changement climatique, les bilans de gaz à effet de serre, la séquestration de carbone, les cycles carbone et azote, les interactions plantes-sol (microorganismes) et herbe-animal, ou encore les effets des pratiques de gestion sur la dynamique prairiale.»3

L’ensemble de l’équipe est présenté par l’organigramme ci-dessous.

1Site de l’INRA

2Site de l’INRA Auvergne - Rhône-Alpes 3Site de l’UREP

(11)

1.3 Description des tâches à effectuer pendant le stage 6

FIGURE1.1 : Organigramme UREP-UMR

1.3

Description des tâches à effectuer pendant le stage

Durant mon stage, j’ai plusieurs tâches à effectuer :

• Analyse de l’existant : Compréhension du fonctionnement de VulClim, étude des fichiers XML (code en C++ )

• Étude des solutions techniques : Réflexion sur une nouvelle version de la plateforme et quelles fonctionnalités devront être implémentées ?

• Cahier des charges : Définition des besoins.

• Dossier Architecture : Mise en place de l’architecture du projet, et identifi-cation des acteurs ? Comment interagissent-ils ?

• Prototypage logiciel : Création des maquettes, simulation des pages web. • Développement :

(12)

1.3 Description des tâches à effectuer pendant le stage 7

– Tests de deux technologies logiciel pour le choix du framework – Développement du module d’authentification.

(13)

Chapitre 2

Conception du projet

Tout au début de mon stage, j’ai commencé par développer des prototypes, afin de choi-sir la technologie correspondante à nos besoin. Pendant cette période j’ai acquis des compétences en développement informatique en utilisant la bibliothèque [1]JavaFX et le framework [2]SpringBoot. Ensuite, nous somme allé voir Monsieur Loïc Yon expert Java EE, pour nous donner son avis sur nos choix et nous guider sur le projet. Cette ren-contre m’a permis de prendre le temps de réfléchir et formuler nos besoins en rédigeant un cahier de charge fonctionnel. J’ai pu aussi faire une analyse des outils techniques utilisés dans la plateforme existante et concevoir le nouvel outil à travers des maquettes des différentes vues souhaitées. Ce document fonctionnel a été rédigé sous Latex et l’ensemble des maquettes a été réalisé via l’outil Pencil (logiciel libre et gratuit pour la création des maquettes).

2.1

La plateforme VulClim actuelle

2.1.1

Présentation générale

Les recherches sur l’impact des changements climatiques se basent sur l’utilisation des modèles de climat et d’impact. VulClim est une plateforme permettant d’automatiser le lancement de ce type de simulation afin d’évaluer les vulnérabilités des systèmes agri-coles aux changements climatiques. Elle facilite ainsi le calcul des impacts des change-ments climatiques à l’échelle régionale.

Actuellement, il y a une première version de la plateforme qui intègre ces outils et qui permet d’automatiser les différentes étapes d’une évaluation de la vulnérabilités. Les deux modèles intégrés au sein de la plateforme sont : PaSim et ModelTest. Pa-Sim est un modèle de simulation d’un écosystème prairial géré. Il modélise, à l’échelle d’une parcelle, les flux de carbone, d’azote, d’eau et d’énergie à l’interface entre le sol,

(14)

2.1 La plateforme VulClim actuelle 9

la végétation, les animaux et l’atmosphère. PaSim est composé de plusieurs modules représentant les processus de la végétation, du microclimat, de la biologie et de la phy-sique du sol.

Le ModelTest a pour but de calculer la moyenne des deux séries de températures : Ta-Min (température minimal) et TaMax (température maximal), fournies comme inputs pour ce modèle.

FIGURE2.1 : Le Modèle "ModelTest"

Cette plateforme est un [3]développement interne fait initialement en C++ (en uti-lisant le framework Qt). Toutefois, il est souhaité que cette plateforme soit accessible à distance, en se basant ainsi sur une technologie web.

2.1.2

Cas classique d’utilisation

Dans un premier temps, l’utilisateur renseigne les caractéristiques générales de sa simu-lation (Figure 2.2).

(15)

2.1 La plateforme VulClim actuelle 10

FIGURE 2.2 : Interface permettant de fournir des informations générales sur la

simula-tion

Cela va permettre de renseigner : ∗ Année de début

∗ Année de fin

∗ Taille des pixels (côté en km) ∗ Point initial (longitude ;latitude)

∗ Zone géographique via l’interface suivante :

FIGURE2.3 : Interface de sélection de la zone géographique

∗ Le nom

∗ L’adresse email (nécessaire à l’envoi du mail lorsque les simulations sont finies) ∗ Le choix du modèle qui va conditionner la mise en forme des onglets input et output

(16)

2.1 La plateforme VulClim actuelle 11

Une fois le modèle sélectionné, l’interface se modifie dynamiquement afin de pré-senter uniquement les entrées nécessaires à la simulation (ici TaMax : Température maximal et TaMin : Température minimal pour le modèle "ModeleTest") :

FIGURE 2.4 : Interface permettant le renseignement des entrées pour le modèle

"Mo-delTest"

Les entrées peuvent être de deux types :

• Temporal : la variable est contenue au sein d’un fichier NetCDF et varie dans l’espace et le temps (trois dimensions : temps, longitude, latitude). L’utilisateur sélectionne donc dans un premier temps le fichier NetCDF qui contient la variable puis, une fois cela fait, la boite à choix multiples se met à jour et l’utilisateur sélectionne le nom de la variable cible.

FIGURE2.5 : Renseignement d’une donnée de type Temporal

• Constant : quand la variable est constante, on saisit directement la valeur.

(17)

2.1 La plateforme VulClim actuelle 12

2.1.3

Résumé du fonctionnement actuel

La plateforme VulClim actuelle est une application client lourd déployée sur le serveur de calcul de l’unité (HPC-UREP). À travers cet outil, on spécifie à l’utilisateur les en-trées nécessaire du modèle et leurs caractéristiques (nom, description, type, unité,...) via un fichier XML. XML est un langage de balisage extensible, conçu pour la description et le stockage. Contrairement au langage HTML, les balises du XML ne sont pas pré-définis.

Afin de lancer une simulation, la plateforme VulClim dispose d’un certain nombre de fichiers contenant les valeurs d’entrée, en fonction du modèle choisi et de la zone géo-graphique. Ainsi suite au choix de l’utilisateur, cette zone va être divisée en pixels Pi,j, i : 1 → longitude, j : 1 → latitude, sur lesquels vont être lancés des instances du modèle individuellement.

Il est ainsi nécessaire de préparer pour chacun de ces exécutions (runs) indépendantes, un ensemble de fichiers Fi,j spécifiques au modèle cible (en fonction des pixels Pi,j) à partir des fichiers source disponible dans le serveur (Pré-traitement). Ensuite, on ap-plique le fichier exécutable du modèle, correspondant au modèle compilé sur le serveur de calcul sur chaque pixel indépendamment des autres pixels.

Chacune des simulations va générer un ou plusieurs fichiers de sorties Oi,j. Afin d’être facilement exploitable, les variables d’intérêts vont être fusionnées au sein d’un unique fichier NetCDF (Post-traitement).

Le diagramme ci-dessous est pour expliciter l’interaction des différents composants de la plateforme.

(18)

2.1 La plateforme VulClim actuelle 13

FIGURE 2.7 : Ce diagramme représente le fonctionnement actuel de VulClim pour lan-cer une simulation

(19)

2.2 Fonctionnement souhaité 14

2.2

Fonctionnement souhaité

Afin de rendre la plateforme accessible aux utilisateurs distants, il a été décidé de déve-lopper une nouvelle version de VulClim en utilisant des technologies web. Nous souhai-tons aussi utiliser un mécanisme d’authentification pour les utilisateurs de la plateforme et rajouter des fonctionnalités de confidentialités pour contrôler le partage des données et des modèles entrés par les utilisateurs.

Le nombre de job lancés par la plateforme étant important, il est nécessaire de mettre en place un gestionnaire de jobs, qui gère efficacement les tâches lancées par les utili-sateurs dans le cluster, afin de mieux utiliser les ressources de notre serveur de calcul. Cet outil comportera donc les modules suivants :

2.2.1

Un module d’authentification

Ce module va contrôler l’accès à la plateforme. L’utilisateur va devoir dans un premier temps s’identifier via une interface web.

Si l’utilisateur est déjà enregistré, il peut se connecter via son identifiant (email) et son mot de passe enregistrés au sein d’une base de données (le choix de ne pas recourir au LDAP INRA a été effectué afin de permettre aux utilisateurs extérieurs d’accéder à l’application).

Dans le cas où l’utilisateur n’est pas enregistré, il peut le faire via une page d’inscription en fournissant des informations personnelles. Une fois les informations requises saisies et validées, un message apparait sur l’écran invitant l’utilisateur à valider son inscription en confirmant celle-ci via le lien envoyé par email.

Après une authentification réussie, l’utilisateur découvre sa session, et un mot person-nalisé de bienvenu est affiché.

Dans la barre de menu (nom et prénom de l’utilisateur), il est possible d’accéder direc-tement aux :

• Informations personnelles (nom, prénom, adresse email...) • Modèles accessibles pour le compte courant

• Modèles dont l’utilisateur est administrateur

• Jeux de données accessibles pour le compte courant • Jeux de données dont l’utilisateur est administrateur • L’état des jobs soumis par l’utilisateur

• Lien de déconnexion

2.2.2

Un module de soumission et de partage des modèles

Ce module va permettre de lister, les modèles que l’utilisateur courant peut utiliser/lancer. En effet, de nombreux modèles peuvent être déployés dans VulClim. Toutefois, avant de pouvoir en utiliser un, il faut que le propriétaire/administrateur du modèle donne son

(20)

2.2 Fonctionnement souhaité 15

autorisation.

Pour envoyer une demande d’accès à un modèle, on coche la case correspondante au modèle puis on clique sur valider (la demande sera envoyée au propriétaire du modèle). Dans la colonne État, la demande passe alors à "demande en attente". Dans le cas où la demande est acceptée, la politique d’accès passe à "Ouvert". Si la demande est refusée, la politique d’accès reste à "fermée" et la demande passe à "refusée".

FIGURE2.9 : Maquette pour l’écran Accès modèles

Dans la rubrique Mes modèles, l’utilisateur trouve la liste de toutes les demandes d’accès en cours relatives à ses modèles. On peut accepter ou refuser ces demandes via l’appui sur le bouton correspondant.

(21)

2.2 Fonctionnement souhaité 16

2.2.3

Un module de soumission et de partage des données

Afin de lancer un modèle, il est nécessaire de disposer de jeux de données. Les utilisa-teurs peuvent bien sûr utiliser leurs propres données stockées dans le serveur mais aussi autoriser les autres utilisateurs à y accéder et utiliser. La politique d’accès à ces données est calquée sur celle utilisée pour les modèles.

FIGURE2.11 : Maquette pour l’écran d’accès aux données

Dans la rubrique "Mes données", on trouve les demandes d’utilisation des jeux de données dont l’utilisateur est administrateur. L’utilisateur peut accepter ou refuser les demandes une à une.

(22)

2.2 Fonctionnement souhaité 17

2.2.4

Un module de lacement des simulations

J’ai conçu quartes onglets pour la plateforme afin de lancer une simulation : L’onglet Overview

Pour lancer une simulation, l’utilisateur commence par choisir le modèle. Ce choix se fait à travers une liste qui affiche en haut les modèles accessibles (avec un titre au dessus : Modèles accessibles) et ensuite les modèles non accessibles (avec un titre au dessus : Modèles non accessibles)

Si un modèle non accessible est sélectionné, une pop-up apparait qui invite l’utilisateur à demander l’accès au modèle concerné.

Si le choix du modèle à lancer est parmi les modèles accessibles, on valide le choix et on passe aux informations nécessaire à la simulation .

Voici les différents renseignements à fournir :

• Années de début et de fin. On vérifie que l’année de début est inférieure à l’année de fin

• Zone géographique

Pour sélectionner la zone géographique, on peut le faire :

• Via le choix de masques prédéfinis (hébergés sur le serveur) • Via une liste de zones proposés

(23)

2.2 Fonctionnement souhaité 18

L’onglet Input

Ensuite, dans l’onglet Input, l’utilisateur devra spécifier les données en entrée du modèle à simuler. Le contenu de l’onglet Input dépend du modèle sélectionné.

L’utilisateur doit indiquer à la plateforme pour chaque type d’entrée la source des don-nées ainsi que d’autres informations nécessaires à leurs extractions. Afin d’être le plus générique possible, nous utilisons uniquement comme source de données des fichiers NetCDF et des valeurs constantes (rentrées directement par l’utilisateur).

Dans l’interface de saisie des données, les deux colonnes : (Types et valeurs) vont influer sur la source de données. Elles permettent respectivement de choisir le type de la source de données et sa valeur. Ainsi, dans le cas où l’utilisateur choisit le type "Temporal", il devra indiquer la source à l’aide du bouton "Choose" qui ouvrira une fenêtre permettant la recherche du jeu adéquat (nécessité de mettre en place une BDD de métadonnées relatives aux jeux disponibles). S’il choisit par contre le type Constant il doit rentrer une valeur constante. Dans ce dernier cas, le bouton "Choose" disparait et la colonne "Variable" est désactivée.

(24)

2.2 Fonctionnement souhaité 19

L’onglet Output

Dans la colonne "sorties possibles", on trouve toutes les variables de sortie du mo-dèle concerné hormis celles déjà sélectionnées. Une autre liste recense les variables souhaitées pour la sortie. On peut faire passer les variables d’une liste à une autre via les flèches adéquats.

FIGURE 2.15 : Écran pour le choix des variables de sortie L’onglet Simuler

Une fois les inputs et les outputs renseignés, un récapitulatif de la simulation appa-rait, afin que l’utilisateur vérifie les informations avant qu’il lance la simulation.

(25)

2.3 Architecture souhaitée 20

2.2.5

Un module de gestion des jobs

Ce module va permettre à l’utilisateur d’examiner l’ensemble des simulations lancées, terminées ou non, par l’utilisateur via la rubrique "Mes jobs". Pour les simulations fi-nies, un lien ainsi qu’une date butoir permet à l’utilisateur de télécharger les résultats de sa simulation. Il devrait y avoir aussi un lien permettant de charger une ancienne simulation.

FIGURE2.17 : Maquette pour l’écran mes jobs

2.3

Architecture souhaitée

Aujourd’hui, on souhaite séparer la plateforme VulClim du serveur, afin de faciliter l’accès à la plateforme et le permettre aussi aux utilisateurs externes. On souhaite aussi, créer une base de données, pour le stockage des paramètres relatifs aux lancements des simulations.

La plateforme VulClim web va manipuler deux principaux types de données :

• Les données qui seront stockés au sein d’une BDD, idéalement côté "serveur web", et qui seront directement exploitable par l’application web : les données uti-lisateurs, sauvegarde du paramétrage des simulations, droits d’accès aux données et modèles, descriptions des modèles pour construction dynamique de l’interface spécifique des modèles

• Les données spatialement explicites stockées sous forme de fichiers NetCDF au sein du serveur de calcul. Ces fichiers peuvent être de taille conséquente (plu-sieurs centaines Go). Les fichiers d’entrées NetCDF seront décrit dans la base de données afin que l’utilisateur puisse spécifier quelles données son modèles doit

(26)

2.3 Architecture souhaitée 21

utiliser.

Toutefois c’est bien côté "serveur de calcul" que se fera la phase de désagrégation et que donc le fichier NetCDF sera utile. De même le fichier NetCDF généré en sortie du post-traitement sera stocké sur le serveur hpc pour un temps donné et supprimé automa-tiquement.

(27)

Chapitre 3

Développement de la nouvelle

plateforme

3.1

Prérequis pour le développement de la nouvelle

pla-teforme

3.1.1

Notre serveur

Un serveur informatique est un dispositif informatique (matériel ou logiciel) qui offre des services accessibles par le réseau.

« Un serveur fonctionne en permanence, répondant automatiquement à des requêtes provenant d’autres dispositifs informatiques (les clients), selon le principe dit client-serveur. Le format des requêtes et des résultats est normalisé, se conforme à des pro-tocoles réseaux et chaque service peut être exploité par tout client qui met en œuvre le protocole propre à ce service. »4

Description du serveur de calcul de l’UREP : ∗ Nombre de coeurs : 64 cadencés à 2.3 GHz ∗ Mémoire vive : 256 Go

∗ IP : 147.99.146.214

∗ Distributor ID : CentOS (Final) ∗ Release : 6.7

Le système d’exploitation du serveur est la distribution CentOS (Linux). L’accès au ser-veur depuis notre poste se fait grâce à PuTTY.

PuTTY est un émulateur de terminal. C’est un logiciel libre, il est disponible sur Win-dows, et sur diverses plates-formes UNIX.

(28)

3.1 Prérequis pour le développement de la nouvelle plateforme 23

FIGURE3.1 : PuTTY - Ici, nous avons à entrer l’adresse IP du serveur

(29)

3.1 Prérequis pour le développement de la nouvelle plateforme 24

SSH est un type de protocole qui permet au client et au serveur d’échanger des données sécurisées, car ces données sont chiffrées. Grâce à PuTTY, on peut ouvrir le Terminal du serveur de calcul en connaissant son adresse IP. Il suffit alors de rentrer son identifiant et son mot de passe, et nous sommes sur le serveur via le terminal.

Afin de transférer le dossier du projet, ainsi que pour mettre à jour la version du pro-jet, j’utilise Fillezilla. C’est un logiciel Open source dont la fonction principale est le transfert de fichiers entre un ordinateur local et un ordinateur à distance.

(30)

3.1 Prérequis pour le développement de la nouvelle plateforme 25

FIGURE3.4 : Transfère des fichiers entre l’ordinateur local et le serveur via Fillezilla

3.1.2

SLURM

Slurm, ou Simple Linux Utility for Resource Management est un gestionnaire de res-sources et d’ordonnancement de tâches Open Source hautement évolutif créé pour gérer efficacement les clusters Linux de toutes tailles.

Slurm propose des solutions pour les deux rôles les plus importants en matière de calcul haute performance :

• Resource Management :

Slurm alloue des ressources au sein d’un cluster de calcul, en fonction des de-mandes de traitement des jobs définie par l’utilisateur. Cette fonctionnalité est également responsable du lancement et de la gestion des tâches

• Job Scheduling :

Slurm gère les files d’attente de travail, avec des outils puissants pour démar-rer, arrêter, exécuter, et surveiller le travail sur un nombre quelconque de nœuds configurables dynamiquement.

Dans le cadre de ce stage, j’au eu l’opportunité de suivre une formation sur l’utilisation des serveurs de calculs qui s’est tenu au sein de l’ISIMA. Cette formation m’a permis de consolider mes connaissances sur l’utilisation des serveurs de calcul à haute perfor-mance et d’appréhender l’outil Slurm.

(31)

3.2 Développement du nouvel outil 26

3.2

Développement du nouvel outil

3.2.1

Langages utilisés

Puisque nous partions sur une technologie web, nous avons choisi le Framework Spring-Boot qui permet de construire l’infrastructure d’une application java .

J’ai donc utilisé les langages suivants : • Java, le framwork Spring Boot • HTML/CSS

• Javascript

Le langage HTML permet en fait de définir tous le coté client de la plateforme : les formulaires d’authentification, les pages web à travers lesquelles l’utilisateur interagit avec la plateforme.

Le langage JavaScript permet de rendre les pages plus interactives, par exemple pour afficher des informations lors d’un clic ou pour vérifier que la confirmation du mot de passe est identique au mot de passe du début lors d’une inscription.

3.2.2

Développement de la partie "Authentification"

J’ai commencé par le développement de cette partie. J’ai donc créé le vues nécessaires pour cette partie.

(32)

3.2 Développement du nouvel outil 27

SpringBoot est un framework libre pour construire et définir l’infrastructure d’une application Java, dont il facilite le développement et les tests. Le framework Spring boot nécessite moins de configuration. En effet, il fournit ce que l’on appelle des annotations :

@SpringBootApplication :Une annotation que l’on met dans la classe où il y a la fonc-tion main, pour dire à Spring que cette classe est le point de départ pour notre applica-tion.

Une instance du serveur Tomcat Apache est intégrée à ce framework, ce qui permet de lancer l’application localement sur le navigateur à partir de l’exécution du la fonction main.

@Controller : Cette annotation pour indiquer que notre classe est un contrôleur, c’est-à-dire un message qui permet de transmettre à Spring une requête (l’URL de page) et le code qu’il exécute quand on se connecte sur cet URL.

(33)

3.2 Développement du nouvel outil 28

Grâce à l’attribut html "required", on oblige l’utilisateur de rentrer toutes les infor-mations : nom, prénom, mot de passe, confirmation du mot de passe.

Le Document Object Model (DOM) est une norme pour accéder et manipuler des docu-ments.

Lorsqu’on utilise JavaScript, on fait très souvent appel au HTML DOM qui permet de récupérer un élément créer en HTML par son id ou son nom.

Avec une simple fonction en javascript en utilisant la méthode setCustomValidity(), on peut vérifier si le mot de passe de confirmation est identique à celui rentré au début. Cette méthode défini le message de validation personnalisé de l’élément sélectionné avec le message renseigné. Dans le cas où les deux champs de mots de passe ne sont pas identiques, la méthode prend en paramètre le message "Mot de passe non identique". Dans le cas contraire une chaîne de caractère vide indique que l’élément n’a pas de message d’erreur de validation personnalisé.

(34)

Chapitre 4

Analyse et réflexion des apports du

stage

4.1

Analyse concernant la mission

Le projet dans lequel s’inscrit ce stage vise à développer une plateforme autorisant le lancement sur des territoires des modèles de l’unité mais aussi d’autres structures. Mon stage s’est donc attaché à réaliser l’analyse de l’existant, à étudier la faisabilité d’un tel projet et à rédiger un cahier des charges complet.

Je n’avais pas l’habitude de réfléchir sur une solution. Maintenant, j’ai compris les diffé-rentes étapes d’un projet : il est inutile de commencer à développer sans avoir défini les besoins, l’architecture. De plus, le fait d’être convié aux réunions de travail m’a permis de mieux saisir le cycle de vie d’un tel projet.

4.2

Analyse du travail

4.2.1

Connaissance préalables (acquises durant le cursus scolaire et

personnellement)

Durant mon stage, j’ai souvent dû faire appel à mes connaissances acquises lors de ma formation. Les cours d’UML (Langage de Modélisation Unifié), les cours de Web et les cours de Bases De Données m’ont permis d’avoir les bases et d’avancer plus ra-pidement. Grâce aux différents langages étudiés durant ma scolarité, il m’a été facile d’analyser le code de l’ancienne version de la plateforme en C++.

Pour les compétences relatives à la communication, j’ai pu grâce aux différents projets faits à l’école avoir assez d’aisance pour présenter le projet et pour travailler en groupe.

(35)

4.2 Analyse du travail 30

4.2.2

Connaissances manquantes et celles acquises durant le stage

Mon tuteur, Raphaël Martin, m’a apporté des compétences importantes au niveau de la réflexion sur les solutions et aux différentes étapes nécessaires pour développer un pro-jet. On m’a aussi beaucoup aidé et accompagné pour que je puisse me familiariser avec la terminologie utilisée dans l’unité et comprendre le fonctionnement de la plateforme.

Les nombreux cours et tutoriels sur Internet m’ont permis de monter en compétence en développement java web et découvrir des nouveaux frameworks comme SpringBoot. La formation que j’ai suivi pendant le stage sur l’utilisation des serveurs de calcul est une contribution enrichissante dans le début de mon parcours professionnel. Cette expérience va nécessairement m’aider à exceller tout au long de ma carrière.

En effet, au cours des différentes réunions que j’ai pu effectuer, avec notamment mon responsable de stage et Monsieur Loïc Yon professeur d’informatique à l’ISIMA, j’ai développé mon sens relationnel et acquis de meilleures compétences de communi-cation. J’ai aussi pu développer le sens de l’analyse et de réflexion que doit avoir un développeur et un scientifique en générale.

Enfin j’ai aussi étudié ce qu’était un Script Shell, mais cependant je ne maîtrise pas encore cela.

Autonomie

Durant la quasi-totalité de mon stage, j’ai pu travaillé en totale autonomie sur le projet à mon rythme. Je planifiais donc mes tâches à effectuer puis je faisais le point avec mon tuteur lorsque cela était nécessaire.

Difficultés rencontrées

J’ai eu au départ assez de mal à comprendre le sujet, mais grâce au différentes réunions et discussions, je comprenais mieux le besoin et la solution. Les étapes pour lancer une simulation sur la plateforme étaient nombreuses, avec plus d’interactions entre elles, mais aussi plus d’informations.

Au début de mon stage, le choix de la technologie était la première problématique à laquelle j’ai été confronté. On m’a proposé donc, de faire deux prototypes, le premier en JavaFX et le deuxième avec le framework SpringBoot (java EE). Les résultats de ce premier test ont montré que la technologie JavaFx n’est pas pertinente pour les applica-tions web, de plus, les pages web ne peuvent plus inclure de page JavaFX, et ce pour

(36)

4.2 Analyse du travail 31

des raisons de sécurité. Cette étape a ralenti mon avancée, néanmoins elle nous a aidé à prendre du recul sur le projet pour ne pas se retrouver dans une impasse plus tard.

(37)

Conclusion :

Au cours de mon stage au sein de l’unité UREP de l’INRA, j’ai pu découvrir ce que l’on attend d’un ingénieur R&D . Cela m’a ouvert les yeux sur la différence entre le domaine de la Recherche et développement (R&D) et le domaine de l’entreprise. Dans le domaine de la R&D, il faut sans cesse s’organiser, être rigoureux et surtout réfléchir car il arrive parfois que l’on ne sache plus où nous allons, le domaine de la recherche étant un terrain inconnu. En entreprise, on cherche surtout à répondre à un besoin, qu’il soit interne ou externe, c’est pourquoi on étudie une solution réalisable.

Il m’est très dur de conclure étant donné que j’écris ce rapport plus d’un mois avant la fin de mon stage. Pour ce qui est du développement, j’ai commencé actuellement le module d’authentification en utilisant les outils de Spring Boot.

Ce stage m’a énormément apporté. Grâce à lui, j’ai pu commencer un projet dés le dé-but. Cela m’a obligé à faire des choix et m’a permis de prendre plus confiance en moi.

(38)

Bibliographie

[1] Reemy, Les applications web avec javaFx , https://openclassrooms. com/courses/les-applications-web-avec-javafx

[2] Java Brain, What is Spring Boot, Java Brain, 2017

[3] Ulrich EZA, An open platform to assess vulnerabilities to climate change : An application to agricultural systems, ScienceDirect, 2015

Références

Documents relatifs