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



Documents pareils
INSTALLATION DE L APPLICATION DU CONTEXTE ITASTE

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

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

Comment Créer une Base de Données Ab Initio

CONNECTEUR PRESTASHOP VTIGER CRM

La protection des données dans les bases de données

PRODIGE V3. Manuel utilisateurs. Consultation des métadonnées

SQL Server et Active Directory

LES ACCES ODBC AVEC LE SYSTEME SAS

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

Qu'est ce que le Cloud?

Canon Mobile Printing Premiers pas

PHP 5.4 Développez un site web dynamique et interactif

Phone Manager Soutien de l'application OCTOBER 2014 DOCUMENT RELEASE 4.1 SOUTIEN DE L'APPLICATION

TP réseau Android. Bidouilles Tomcat. a) Installer tomcat : il suffit de dézipper l'archive apache-tomcat windowsx64.zip.

Note : Ce tutoriel a été réalisé sur GNU/Linux (Ubuntu) avec un serveur LAMP installé en local.

Comment Accéder à des Bases de Données MySQL avec Windows lorqu'elles sont sur un Serveur Linux

GLPI OCS Inventory. 1. Prérequis Installer un serveur LAMP : apt-get install apache2 php5 libapache2-mod-php5 apt-get install mysql-server php5-mysql

Création d'un site dynamique en PHP avec Dreamweaver et MySQL

GLPI (Gestion Libre. 2 ième édition. Nouvelle édition. de Parc Informatique)

ORACLE TUNING PACK 11G

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

Phone Manager Soutien de l'application OCTOBER 2014 DOCUMENT RELEASE 4.1 SOUTIEN DE L'APPLICATION

TP 7, 8 & 9 : Installation et Gestion de GLPI et Télédéploiement SISR 1 HUBERT JULIEN LABBE RICHARD DAY MICKAEL DOGNY CHRISTOPHE

Technologies du Web. Ludovic DENOYER - ludovic.denoyer@lip6.fr. Février 2014 UPMC

Mercredi 15 Janvier 2014

OWASP Open Web Application Security Project. Jean-Marc Robert Génie logiciel et des TI

MOTEUR DE WORKFLOW Mise en oeuvre d'openwfe Version septembre 2006

Installation FollowMe Q server

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

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

Application web de gestion de comptes en banques

Stockage du fichier dans une table mysql:

clef primaire ; clef étrangère ; projection ; restriction ; jointure ; SQL ; SELECT ; FROM ; WHERE

PDO : PHP Data Object 1/13

Sage CRM. Sage CRM 7.3 Guide du portable

Installation et prise en main

CA ARCserve Backup Patch Manager pour Windows

Partager la connexion Internet de son te le phone portable

Cyberclasse L'interface web pas à pas

Business Sharepoint Contenu

GUIDE D'USAGE DE LA CLASSE MOBILE TABLETTES TACTILES

eps Network Services Alarmes IHM

Installation d'un serveur RADIUS

Gestion du parc informatique matériel et logiciel de l Ensicaen. Rapport de projet. Spécialité Informatique 2 e année. SAKHI Taoufik SIFAOUI Mohammed

Guide de l'utilisateur de l'application mobile

PMI PLACE DE MARCHE INTERMINISTERIELLE GUIDE D'UTILISATION UTILISATEUR OPERATEUR ECONOMIQUE

TP Composants Java ME - Java EE. Le serveur GereCompteBancaireServlet

Bases de données avancées Introduction

PHP 4 PARTIE : BASE DE DONNEES

1-Introduction 2. 2-Installation de JBPM 3. 2-JBPM en action.7

SYNC FRAMEWORK AVEC SQLITE POUR APPLICATIONS WINDOWS STORE (WINRT) ET WINDOWS PHONE 8

SAP Lumira Version du document : Guide de l'utilisateur de SAP Lumira

Canon Mobile Printing FAQs

lundi 3 août 2009 Choose your language What is Document Connection for Mac? Communautés Numériques L informatique à la portée du Grand Public

JAVA 8. JAVA 8 - Les fondamentaux du langage. Les fondamentaux du langage Java. Avec exercices pratiques et corrigés JAVA 8 29,90.

Guide utilisateur Module Parents

Déploiement, administration et configuration

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

À propos du Guide de l'utilisateur final de VMware Workspace Portal

Qlik Sense Desktop. Qlik Sense Copyright QlikTech International AB. Tous droits réservés.

TUTORIEL: INSTALLATION D'UN SERVEUR LOCAL SOUS WINDOWS 7 POUR APPINVENTOR version du 06/04/2013

Présentation de l'architecture QlikView. Livre blanc sur la technologie QlikView. Date de publication : octobre

Service de certificat

TP architecture N-tiers en Java EE ou Java EE, Android : la synthèse. Le serveur GereCompteBancaireServlet

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

Guide d'installation sous Windows

Sage CRM. 7.2 Guide de Portail Client

Documentation utilisateur, manuel utilisateur MagicSafe Linux. Vous pouvez télécharger la dernière version de ce document à l adresse suivante :

Micro-ordinateurs, informations, idées, trucs et astuces utiliser le Bureau à distance

contact@nqicorp.com - Web :

1. Base de données SQLite

CAHIER DES CHARGES D IMPLANTATION

Diffuser un contenu sur Internet : notions de base... 13

TAGREROUT Seyf Allah TMRIM

Installation et configuration d OCS/GLPI sur un Serveur Debian

Projet 2. Gestion des services enseignants CENTRE D ENSEIGNEMENT ET DE RECHERCHE EN INFORMATIQUE. G r o u p e :

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

2. Technique d analyse de la demande

TecLocal 4.0. Nouveautés de la version 4.0 (notes de mise à jour)

Galaxy est une plateforme de traitements (bio)informatiques accessible depuis l'url : (en précisant votre login et mot de passe LDAP «genotoul»).

Programme de formation

NovoSIP manuel de mise en service

ipra*cool v 1.08 guide de l utilisateur ipra*cool v.1-08 Guide de l'utilisateur ipra*cool v

Architecture N-Tier. Ces données peuvent être saisies interactivement via l interface ou lues depuis un disque. Application

Réalisation d'une application de gestion des candidatures

Edutab. gestion centralisée de tablettes Android

[COMPTE RENDU SEMAINE DU 21 AU 27 JANVIER] Client

NAS 224 Accès distant - Configuration manuelle

"Indy\Source\Fulld7.bat" 6. Lancer à présent Delphi. Allez dans le menu "Composant" puis sur "Installer des paquets...".

Manuel d utilisation NETexcom

Maarch Framework 3 - Maarch. Tests de charge. Professional Services. 11, bd du Sud Est Nanterre

TP2 : Client d une BDD SqlServer

Mysql. Les requêtes préparées Prepared statements

Transcription:

Projet Viticulture TP 3 : bases de données externes 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 permet d'aborder par la pratique les techniques permettant d'accéder à des bases de données stockées sur un serveur distant à l'aide d'android. Propriétés Intitulé long Formation concernée Matière Présentation Notions Pré-requis Outils Mots-clés Durée Auteur(es) Description Projet Viticulture - TP 3 : bases de données distantes BTS Services informatiques aux organisations SLAM 4, PPE Les TP permettent de découvrir différentes méthodes pour accéder et utiliser des bases de données MySQL stockées sur un serveur distant dans un environnement mobile Android 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 et 2 du projet Viticulture. Eclipse, framework Android API 18, PHP/MySQL Application mobile, Android, MySQL, PHP, DAO 6h Version v 1.0 Mathieu Capliez Date de publication Février 2015 Remarques pour l'enseignant : Pour utiliser ces TP, il est indispensable de bien configurer les projets fournis et le serveur de base de données. Dans les projets 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é Documentation : http://www.json.org/fatfree.html http://developer.android.com/reference/org/json/jsonobject.html http://developer.android.com/reference/android/os/asynctask.html Ressources : projets BD3 et BD4 ; archive zip contenant les scripts PHP. Rappel du contexte de l'activité précédente (TP1) : Dans le cadre d'un concours, les producteurs de vin de la région Aquitaine sont évalués selon la qualité gustative de leur production. Lors de la dégustation, chaque membre du jury attribue une note au viticulteur pouvant aller de 0 à 100. Si le jury souhaite modifier cette dernière, ou s'il goûte un autre vin du viticulteur, il pourra changer la note associée. Le contexte de cet exercice reprend et complète celui du TP1. Évolution du contexte : Les membres du jury pourront, de la même manière, accéder et modifier les données sur les viticulteurs qui seront enregistrées sur un serveur distant. Les applications Android peuvent utiliser des bases de données externes en complément d'une base de données interne SQLite ou de manière autonome. Habituellement, une application se connecte à un SGBDR directement ou via un middleware. Cette connexion permet d'exécuter des requêtes SQL via des connecteurs et de récupérer des curseurs contenant le résultat. De par le type de connexion réseau des périphériques mobiles, on évite une connexion directe avec le SGBDR. Un serveur web sert le plus souvent d'intermédiaire. Dans ce TP, différentes méthodes d'accès aux bases de données distantes seront étudiées. Vous pourrez ainsi déterminer les pratiques et/ou les plus adaptées à vos projets. Après avoir importé les deux projets "bd3" et "bd4", vous testerez et observerez les codes afin de répondre aux questions posées dans les parties suivantes. Partie 1 : Base de données Question 1 Structure de données À l'aide des sources PHP et de l'annexe 1, répondre aux questions suivantes : 1.1. Identifier le rôle de chaque script PHP mettant en œuvre des requêtes SQL. À l'aide d'un navigateur et par l'intermédiaire d'un serveur web, observer le résultat d'exécution du script getviticulteurs.php. (http://serveurweb/getviticulteurs.php) 1.2. Dans le script getviticulteurs.php, indiquer le type de données créé (variable $resultat) lors de la lecture du curseur, et le rôle de la fonction json_encode(). http://www.reseaucerta.org CERTA - Mars 2015 v1.0 Page 2/7

Question 2 Accès aux données À l'aide des affichages en logcat lors de l'exécution du projet bd3, des classes correspondantes, et de l'annexe 2, répondre aux questions suivantes. 2.1. Lors de l'exécution du projet, suivre l'ordre d'appel des différentes méthodes à l'aide du logcat. En déduire l'ordre chronologique d'exécution des fonctions. 2.2. Dans la classe AccesHTTP, indiquer le rôle des variables affichées en logcat. 2.3. En étudiant le code de la méthode doinbackground() de la classe AccesHTTP, identifier le contenu, puis le rôle des variables cnxhttp, paramcnx. Lorsqu'une application a besoin d'une grande quantité de données, le téléchargement peut prendre beaucoup de temps. C'est souvent le cas lorsque la réception est de mauvaise qualité ou lorsque l'utilisateur se trouve en zone non couverte par la 3G, ou 4G. 2.4. En utilisant des applications connectées sur un smartphone (application de cartographie, navigateur web, etc.), l'application se bloque-t-elle lors du téléchargement des données, ou au contraire, l'interface estelle toujours active? 2.5. Expliquer pourquoi le téléchargement des données n'est pas fait par la classe MainActivity? 2.6. Expliquer pourquoi l'affichage des données n'est pas fait dans la classe AccesHTTP? 2.7. En observant les traces d'exécution du projet, indiquer le rôle des méthodes doinbackground(), et onpostexecute(). Expliquer pourquoi la méthode onpostexecute() est redéfinie dans la classe MainActivity. 2.8. Bilan : expliquer le fonctionnement de la classe AccesHTTP, et son utilisation dans MainActivity. Question 3 Organisation du code et niveau d'abstraction À l'aide des affichages en logcat lors de l'exécution du projet bd4, des classes correspondantes et des annexes 2 et 3, répondre aux questions suivantes. Après avoir lancé l'application, observer les affichages en logcat correspondant au chargement de la liste de viticulteurs ainsi que le code de la méthode remplirspinviticulteurs() dans la classe MainActivity. 3.1. Schématiser l'enchaînement des appels de méthodes nécessaires au remplissage de la liste déroulante (classes MainActivity, Viticulteur, ViticulteurDAO, et AccesHTTP). 3.2. Pour un traitement similaire à celui étudié dans le projet bd3, une classe supplémentaire est nécessaire. Indiquer laquelle. En extrapolant ce qui a été vu au TP1, expliquer le rôle de cette classe. Dans la classe AccesHTTP, le corps de la méthode onpostexecute peut être redéfini dans une classe anonyme (question 2.6). 3.3. En observant le code de la méthode remplirspinviticulteurs(), indiquer quelles méthodes de la classe ViticulteurDAO sont redéfinies lors de la création de l'objet viticulteuracces. 3.4. Rechercher d'où proviennent ces méthodes, et pourquoi elles doivent obligatoirement être implémentées. http://www.reseaucerta.org CERTA - Mars 2015 v1.0 Page 3/7

3.5. Indiquer à quel moment cette méthode est appelée, et quelle instruction provoque cet appel. 3.6. Quel avantage a-t-on à ce que ces méthodes soient redéfinies dans la classe MainActivity? À l'aide de l'annexe 4 et du projet bd4. 3.7. En prenant exemple sur le raisonnement des questions précédentes, expliquer comment se fait le chargement de données après saisie de l'identifiant de juré. 3.8. Expliquer comment savoir dans quelle version de la méthode ontacheterminee() doit-on placer le traitement exécuté après le téléchargement. Partie 2 : Application Question 4 Adaptation de la solution Lorsqu'un juré lance l'application sur un smartphone, il doit saisir son identifiant. Le nom et le prénom du juré sont alors téléchargés (un objet de la classe Jure est instancié avec ces données) et placés dans la propriété MainActivity.jureSelectionne. De la même manière, le viticulteur sélectionné dans la liste déroulante est placé dans la propriété MainActivity.viticulteurSelectionne. Lorsque le juré a saisi une note pour le viticulteur et appuyé sur le bouton Enregistrer, le score doit s'enregistrer dans la table noter. 4.1. Identifier les données à transmettre au serveur pour l'insertion et mettre en place le script PHP. 4.2. À l'aide des classes existantes, créer les classes Noter et NoterDAO permettant d'enregistrer les données saisies. 4.3. Compléter la méthode onclick() du bouton btnenregistrer pour finaliser l'enregistrement. Partie 3 : Réflexion Question 5 Analyse de la structure applicative 5.1. Quel est le rôle des classes DAO? 5.2. Pourquoi est-il plus judicieux de faire appel à la classe AccesHTTP dans les classes DAO plutôt que directement dans la classe MainActivity? 5.3. La classe ViticulteurDAO est abstraite et implémente l'interface EventAsyncViticulteur. Cette conception impose la redéfinition des méthodes ontacheterminee(). Expliquer l'intérêt de cette obligation. http://www.reseaucerta.org CERTA - Mars 2015 v1.0 Page 4/7

Annexe 1 : Modèle entité association Annexe 2 : Règles de conception d'applications Android Extrait de la documentation Android : http://developer.android.com/guide/components/processes-and-threads.html [...] the Android UI toolkit is not thread-safe. So, you must not manipulate your UI from a worker thread you must do all manipulation to your user interface from the UI thread. Thus, there are simply two rules to Android's single thread model: Do not block the UI thread Do not access the Android UI toolkit from outside the UI thread [...] Because of the single thread model described above, it's vital to the responsiveness of your application's UI that you do not block the UI thread. If you have operations to perform that are not instantaneous, you should make sure to do them in separate threads ("background" or "worker" threads). http://www.reseaucerta.org CERTA - Mars 2015 v1.0 Page 5/7

Annexe 3 : Méthode MainActivity.remplirSpinViticulteurs() http://www.reseaucerta.org CERTA - Mars 2015 v1.0 Page 6/7

Annexe 4 : Gestion de l'événement : modification de l'identifiant de juré http://www.reseaucerta.org CERTA - Mars 2015 v1.0 Page 7/7