Projet Viticulture - TP 4 : Projet H2O de traitement des eaux en viticulture BTS Services informatiques aux organisations



Documents pareils
Projet Viticulture - TP 3 : bases de données distantes BTS Services informatiques aux organisations

Application web de gestion de comptes en banques

Stockage du fichier dans une table mysql:

PHP 5. La base de données MySql. A. Belaïd 1

BTS S.I.O PHP OBJET. Module SLAM4. Nom du fichier : PHPRévisionObjetV2.odt Auteur : Pierre Barais

CREATION WEB DYNAMIQUE

Utilisation de GCM (Google Cloud Messaging) pour Android. Partie préliminaire éventuelle : Création d'un AVD lisant GCM

Programme de formation

Installation et paramétrage. Accès aux modèles, autotextes et clip- art partagés

Dans l'article précédent, vous avez appris

Pour valider les pré-requis nécessaires, avant d'aborder le TP, répondez aux questions ciaprès

Guide de l'utilisateur

Procédures Stockées WAVESOFT ws_sp_getidtable Exemple : ws_sp_getnextsouche Exemple :... 12

I. MySQL : Serveur et SGBD

Service de certificat

Installer une imprimante réseau.

INSTALLATION DE L APPLICATION DU CONTEXTE ITASTE

Hébergement WeboCube. Un système performant et sécurisé. Hébergement géré par une équipe de techniciens

Projet Personnalisé Encadré PPE 2

Configuration de plusieurs serveurs en Load Balancing

SPECIFICATIONS TECHNIQUES : Gestion des Médicaments et des commandes de médicaments

Initiation aux bases de données (SGBD) Walter RUDAMETKIN

Le Langage De Description De Données(LDD)

Les sites Internet dynamiques. contact : Patrick VINCENT pvincent@erasme.org

inviu routes Installation et création d'un ENAiKOON ID

ACCORD-CADRE DE TECHNIQUES DE L'INFORMATION ET DE LA COMMUNICATION. PROCEDURE ADAPTEE En application des articles 28 et 76 du Code des Marchés Publics

Les modules SI5 et PPE2

Service de réplication des données HP pour la gamme de disques Continuous Access P9000 XP

Serveur de travail collaboratif Michaël Hoste -

Situation présente et devis technique

Programmation Web. Introduction

PDO : PHP Data Object 1/13

Comment créer un site web Proxy gratuitement!

Avantic Software Présentation de solutions GED pour mobiles (Gestion Electronique de Documents)

PHP. Bertrand Estellon. 26 avril Aix-Marseille Université. Bertrand Estellon (AMU) PHP 26 avril / 214

Gestion des utilisateurs : Active Directory

ESCALE MANUEL UTILISATEUR SIMPLIFIÉ ÉTAT : VERSION VALIDÉE DGFIP - BUREAU SI-2B - DEPS - ÉCHANGE DE DONNÉES. Version 1.

Module SMS pour Microsoft Outlook MD et Outlook MD Express. Guide d'aide. Guide d'aide du module SMS de Rogers Page 1 sur 40 Tous droits réservés

B2i. LE B2i Brevet Informatique et Internet. Niveau : tous. 1 S'approprier un environnement informatique de travail. b2ico1.odt.

THEGREENBOW FIREWALL DISTRIBUE TGB::BOB! Pro. Spécifications techniques

Présentation. Référenciel : textes officiels

1. Comment accéder à mon panneau de configuration VPS?

Formation en Logiciels Libres. Fiche d inscription

Importation des données dans Open Office Base

TP Service HTTP Serveur Apache Linux Debian

1. Base de données SQLite

SECURIDAY 2013 Cyber War

SOLUTION D ENVOI DE SMS POUR PROFESSIONNELS

Responsabilités du client

Qu'est ce que le Cloud?

Pratique et administration des systèmes

CA ARCserve Backup Patch Manager pour Windows

Olivier Mondet

Compétences Business Objects

CONNECTEUR PRESTASHOP VTIGER CRM

ORACLE TUNING PACK 11G

Acronis Backup & Recovery 10 Advanced Server Virtual Edition. Guide de démarrage rapide

laposte.net) Ministère de l'éducation nationale Atelier sécurité Rabat RALL 2007

Qu'est-ce que c'est Windows NT?

Documentation pour l envoi de SMS

Création de formulaires interactifs

I4 : Bases de Données

BES WEBDEVELOPER ACTIVITÉ RÔLE

les techniques d'extraction, les formulaires et intégration dans un site WEB

Google Drive, le cloud de Google

Intégration d'un moteur de workflow dans le SI : Dématérialisation des Ordres de misson

Sophos Mobile Encryption pour Android Aide. Version du produit : 1.0

Version en date du 01 avril 2010

Bac Professionnel Systèmes Electroniques Numériques

TP 1 : prise en main de Windows. TP 1 : prise en main de Windows

Optimisations des SGBDR. Étude de cas : MySQL

GesTab. Gestion centralisée de tablettes Android

Seafile, pour simplifier l'accès à ses fichiers, les partager et les synchroniser

et Groupe Eyrolles, 2006, ISBN :

Préparer la synchronisation d'annuaires

webmestre : conception de sites et administration de serveurs web 42 crédits Certificat professionnel CP09

SUPPORT DE COURS / PHP PARTIE 3

Méthode de Test. Pour WIKIROUTE. Rapport concernant les méthodes de tests à mettre en place pour assurer la fiabilité de notre projet annuel.

KAJOUT WASSIM INTERNET INFORMATION SERVICES (IIS) 01/03/2013. Compte-rendu sur ISS KAJOUT Wassim

Cloud public d Ikoula Documentation de prise en main 2.0

POUR ALLER UN PEU PLUS LOIN SUR UN TABLEUR. Version EXCEL

DOSSIER D'ACTIVITES SUR LE PHP N 03 Créer une base de données MySQL avec PHPMyAdmin

Sage CRM. 7.2 Guide de Portail Client

TP Composants Java ME - Java EE. Le serveur GereCompteBancaireServlet

NFA 008. Introduction à NoSQL et MongoDB 25/05/2013

FinImportExport Documentation Utilisateur Gestion d'environnement dans Fininfo Market

Installation de Joomla avec Filezilla

Guide de l exportation postale en ligne Objets interdits et admis conditionnellement

DOM - Document Object Model

Atelier Administration

Cahier des charges de l application visant à effectuer un suivi de consommation énergétique pour les communes. Partenaires du projet :

Le stockage local de données en HTML5

IMO - Informatique, modélisation et optimisation

Activité sur Meteor. Annexe 1 : notion de client-serveur et notion de base de données

Installation et utilisation d'un certificat

1 Position du problème

Titre: Version: Dernière modification: Auteur: Statut: Licence:

Transcription:

Projet Viticulture TP 4 : projet H2O Description du thème Partie 1 : bases de données locales SQLite Partie 2 : projet H2O stockage local Partie 3 : bases de données distantes Partie 4 : projet H2O synchronisation avec un serveur distant Ce TP qui prend appui sur les TP et le projet H2O précédents, propose aux étudiants de mettre en pratique les techniques acquises afin de finaliser le projet. Propriétés Intitulé long Formation concernée Matière Présentation Notions Pré-requis Description Projet Viticulture - TP 4 : Projet H2O de traitement des eaux en viticulture BTS Services informatiques aux organisations SLAM 4, PPE Mise en pratique des concepts vus pendant le TP3 sur l'utilisation des bases de données distantes sous Android. Ce projet exploite les bases de données SQLite dans un environnement mobile Android, et les bases de données MySQL par l'intermédiaire d'un serveur web. Savoirs D4.1 - Conception et réalisation d une solution applicative D4.2 - Maintenance d une solution applicative Savoir-faire Programmer un composant logiciel Exploiter une bibliothèque de composants Adapter un composant logiciel Valider et documenter un composant logiciel Programmer au sein d un framework Développement mobile sous Android, TP1, 2 et 3 du projet Viticulture. Outils Eclipse, framework Android API 18 Mots-clés Durée Auteur(es) Application mobile, Android, SQLite, MySQL, PHP, DAO 6h Version v 1.0 Mathieu Capliez Date de publication Mars 2015 Remarques pour l'enseignant : Pour utiliser ces TP, il est indispensable de bien configurer le projet fourni, et le serveur de base de données. Dans le projet Android, les variables serveur et chemin doivent contenir respectivement l'adresse du serveur web utilisé et le chemin vers les scripts PHP. Sur le serveur web, la base de données MySQL doit être créée et les scripts PHP configurés correctement. La configuration des variables $login, $mdp, $bd, $serveur est accessible dans le fichier fonctions.php. http://www.reseaucerta.org CERTA - Mars 2015 v1.0 Page 1/7

Énoncé Ressources : projet h2osynchro ; archive zip contenant les scripts PHP et le script de création de tables pour la base de données MySQL. Rappel du contexte du TP2 : Axelle Loriot est employée par une société de gestion du traitement des eaux. En lien avec les caves de la Gironde, du Périgord et du Lot-et-Garonne, elle a pour mission d'effectuer des relevés réguliers de la qualité de l'eau rejetée dans l'environnement par les exploitations viticoles après traitement par la station. Jusqu'à aujourd'hui, les rapports d'exploitation sont effectués à l'aide d'un tableau, les relevés sont eux effectués sur place et enregistrés à l'aide d'outils peu adaptés : papiers, notes sur un téléphone portable, etc. Plusieurs stations de traitement des eaux font l'objet d'un suivi et chacune d'entre elles est liée à des exploitations viticoles. Axelle souhaite disposer, dans un premier temps, d'une application dont le rôle est de faciliter les relevés. Cette application devra être accessible via un environnement mobile utilisant l'os Android. Les données relevées dans l'application Android devront être envoyées sur un serveur distant afin d'être traitées et sauvegardées. Les bilans seront alors automatiquement générés et envoyés aux différents organismes concernés. Évolution du contexte : L'application développée pour Axelle Loriot est maintenant fonctionnelle en local. Certains traitements prévus au départ ne sont toutefois pas encore implémentés. Les agents participant au relevé de données peuvent effectivement utiliser l'application, mais les données collectées ne sont toujours pas centralisées. De plus, l'élaboration des bilans mensuels et annuels des stations de traitement des eaux ne sont pas encore possibles : en effet la synchronisation n'est pas active. Lors de l'étude précédente (TP2), il a été conclu que les données provenant des tables station et critere doivent être envoyées vers la STA mobile. Les autres données (tables : relever, annee, mois) sont destinées à être saisies sur la STA mobile, puis transmises sur serveur pour faciliter l'élaboration des bilans. Partie 1 : Analyse Question 1 Étude de l'existant 1.1. Quelles classes permettent d'atteindre la base de données locale? 1.2. Quelles classes permettent d'atteindre la base de données distante? 1.3. Où sont utilisés les champs de la classe Parametres? Expliquer le rôle des mots clés abstract, final et static. 1.4. Les classes d'accès à la base de données en ligne ne contiennent pas toutes les mêmes méthodes. Certaines contiennent uniquement des méthodes get, d'autres uniquement des méthodes add. Expliquer pourquoi, et regrouper ces classes en deux catégories. Lorsque l'utilisateur appuie sur le bouton btnsyncdesc, l'application doit récupérer les données contenues dans la base de données distante afin de les intégrer dans la base de données locale. Gestion de l'appui sur le bouton btnsyncdesc : 1.5. Dans la méthode onclick associée au bouton btnsyncdesc, quelle méthode ontacheterminee() sera exécutée après exécution de l'instruction accesstationnet.getstations(? 1.6. Rappeler le rôle des méthodes ontacheterminee() des classes DAONet. 1.7. Expliquer comment est choisie la méthode ontacheterminee() appropriée lors de l'exécution? http://www.reseaucerta.org CERTA - Mars 2015 v1.0 Page 2/7

Partie 2 : Modification Question 2 Récupération d'informations depuis le serveur 2.1. Compléter le code permettant la synchronisation des stations dans la classe SynchroActivity. Méthode trouvée à la question 1.5. Comme pour les stations, les critères doivent être récupérés depuis un serveur distant. Les critères sont fournis par le script getcriteres.php sous forme de données au format JSON. La méthode getcriteres() doit convertir ces données JSON en données utilisables par l'application Android. À l'aide d'un navigateur web ou à l'aide de l'annexe 4, observer le résultat d'exécution du script getcriteres.php 2.2. Déterminer, à l'aide du résultat d'exécution du script getcriteres.php, le type d'objet qui sera récupéré lors de l'exécution de getcriteres() dans la classe CritereDAONet. 2.3. Compléter la méthode getcriteres() de la classe CritereDAONet afin d'implémenter le traitement demandé. Dans cette même classe, créer la méthode permettant de convertir les données JSON en objet. 2.4. Implanter, dans la classe SynchroActivity, le traitement de la section de récupération des critères, en utilisant la classe CritereDAONet complétée. Question 3 Envoi de données au serveur - méthode onclick() du bouton btnsyncasc, classe SynchroActivity Dans la méthode onclick() du bouton btnsyncasc, les données sont envoyées dans l'ordre suivant : années, mois, puis relevés. 3.1. L'ordre choisi a-t-il une importance? Justifier. Données annuelles : 3.2. Dans la section d'envoi des années, expliquer le rôle de l'objet suivant : accesanneenet. Le code permettant la gestion de l'envoi de données sur le serveur se trouve en annexe 5. 3.3. Expliquer le code à ajouter, puis indiquer s'il doit être placé dans une des méthodes ontacheterminee() ou après ces méthodes. Justifier, puis implémenter ce code. Données mensuelles : 3.4. À l'aide de l'annexe 6, expliquer quelles données sont transmises au script addmois.php lors des requêtes HTTP. 3.5. Compléter la méthode addmois() dans la classe MoisDAONet afin d'implémenter le traitement d'envoi de données au serveur. Données de relevés : Comme pour les données mensuelles et annuelles, implémenter le code nécessaire dans la méthode addrelever() de la classe ReleverDAONet, et dans la section appropriée de la méthode onclick() du bouton btnsyncasc dans la classe synchroactivity. Question 4 Évolutions Lors de la synchronisation, les champs tvlogsyncasc et tvlogsyncdesc de la classe SynchroActivity doivent permettre d'informer l'utilisateur de l'application de la progression. 4.1. Mettre en place les méthodes permettant d'indiquer la progression de la synchronisation. Ces méthodes http://www.reseaucerta.org CERTA - Mars 2015 v1.0 Page 3/7

doivent afficher les données mises à jour dans les champs de log associés. 4.2. Lors de l'envoi de données sur le serveur, les données déjà enregistrées ne sont pas écrasées. Quels problèmes peut-on rencontrer? Quel traitement plus judicieux pourrait-on proposer? 4.3. À l'aide des annexes, déterminer les traitements qui ne sont pas encore implémentés. Ces traitements doivent-ils être proposés sur l'application mobile? http://www.reseaucerta.org CERTA - Mars 2015 v1.0 Page 4/7

Annexe 1 : modèle conceptuel de données Annexe 2 : script de création de la base de données serveur create table station ( noms varchar(255), primary key (ids) create table critere ( idc bigint, libellec varchar(255), unitec varchar(50), primary key (idc) create table annee ( numa integer, introa text, conclusiona text, primary key (numa,ids), foreign key(ids) references station(ids) create table mois ( numm integer, remarquesm text, numa integer, primary key (numm,numa,ids), foreign key(numa,ids) references annee(numa,ids) http://www.reseaucerta.org CERTA - Mars 2015 v1.0 Page 5/7

create table relever ( numm integer, numa integer, idc bigint, numj integer, qteentreer integer, qtesortier integer, primary key (numm,numa,ids,idc,numj), foreign key(numm,numa,ids) references mois(numm,numa,ids), foreign key(idc) references critere(idc) INSERT INTO station (ids, noms) VALUES (1, 'Landerrouat'), (2, 'station des vignes du sud-ouest' INSERT INTO critere (idc, libellec, unitec) VALUES (1, 'Eau', 'm3'), (2, 'DCO', 'mg/l'), (3, 'MES', 'mg/l'), (4, 'haute densite', 'kg/l' Annexe 3 : entretien avec Axelle Loriot Q : Bonjour, pouvez-vous me décrire votre activité? Axelle Loriot : Bonjour, je vais essayer de vous l'expliquer le plus simplement possible. Je suis employée dans une organisation dont le rôle est de garantir la qualité de l'eau lorsqu'elle doit être renvoyée dans la nature après utilisation par des coopératives viticoles. Je dois contrôler la qualité de l'eau en effectuant régulièrement des relevés dans les stations de traitement des eaux. Q : Qu'est ce qu'un relevé? A.L. : Un relevé, c'est un ensemble de données que je mesure lorsque je me rends sur une station de traitement. Cette station est en lien avec une cave qui rejette une grande quantité d'eau et d'éléments pouvant être polluants dans la nature. Mon rôle est de contrôler la qualité de l'eau, en entrée dans la station lorsque la cave rejette ses déchets, et en sortie de station quand l'eau est renvoyée dans la nature. Q : Pourriez vous me décrire votre activité lorsque vous devez effectuer les relevés? A.L. : Actuellement, je dois noter sur des feuilles volantes les valeurs données par les instruments de mesure. Une fois toutes les mesures effectuées, je dois les recopier dans un tableur pour les enregistrer et préparer les bilans mensuels. C'est très fastidieux, et peu pratique. Je passe énormément de temps à saisir les données. Q : Pourquoi avez-vous besoin d'une application utilisable sur votre smartphone? A.L. : Il y a quelques semaines, la société qui m'emploie m'a fourni un smartphone Android sur lequel je peux saisir les données directement dans un tableur. J'ai bien tenté de l'utiliser, mais les cellules sont trop petites, j'ai du mal à utiliser cette application, et il m'est déjà arrivé de constater que lorsque j'étais dans une zone non couverte par le réseau téléphonique, mon fichier tableur n'était pas accessible. Q : Quel est le but final de vos relevés? A.L. : Je dois créer des rapports mensuels à intégrer dans un bilan final annuel que je dois commenter et envoyer à des organismes de contrôle. Q : Auriez-vous des besoins particuliers? A.L. : J'aimerais qu'il soit possible d'avoir une application pré-configurée, ou mieux encore : qu'il soit possible de saisir certaines informations sur mon ordinateur et qu'elles soient transférées sur le smartphone. http://www.reseaucerta.org CERTA - Mars 2015 v1.0 Page 6/7

Q : Quelles informations? A.L. : Les bilans mensuels, l'introduction de mon bilan annuel, les noms des stations, les unités... Je ne modifie quasiment jamais les unités, mais il m'arrive de devoir en ajouter pour de nouvelles mesures. J'ai quand même besoin des unités de mesures et des noms des stations lorsque je fais les relevés, il faut donc qu'elles soient disponibles dans le smartphone. Annexe 4 : résultat d'exécution du script getcriteres.php [{"idc":"1","libellec":"eau","unitec":"m3"}, {"idc":"2","libellec":"dco","unitec":"mg\/l"}, {"idc":"3","libellec":"mes","unitec":"mg\/l"}, {"idc":"4","libellec":"haute densite","unitec":"kg\/l"}] Annexe 5 : gestion des années AnneeDAO accesannee = new AnneeDAO(SynchroActivity.this ArrayList<Annee> listeannees = accesannee.getannees( for(int i=0;i<listeannees.size(i++){ accesanneenet.addannee(listeannees.get(i) } Annexe 6 : script addmois.php <?php include "fonctions.php"; $numm = $_POST['numM']; $numa = $_POST['numA']; $ids = $_POST['idS']; $remarquesm = $POST['remarquesM']; try { $cnx = connexionpdo( $req = $cnx->prepare("insert into mois (numm, numa, ids, remarquesm) values('$numm','$numa','$ids','$remarquesm')" $resultat = $req->execute( print($resultat } catch (PDOException $e) { print "Erreur!: ". $e->getmessage( die( }?> http://www.reseaucerta.org CERTA - Mars 2015 v1.0 Page 7/7