Examen - LI 328. Ludovic Denoyer - Sylvain Lamprier. 16 avril 2013



Documents pareils
Technologies Web. Ludovic Denoyer Sylvain Lamprier Mohamed Amine Baazizi Gabriella Contardo Narcisse Nya. Université Pierre et Marie Curie

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

Mise en œuvre des serveurs d application

MapReduce. Nicolas Dugué M2 MIAGE Systèmes d information répartis

HTTP Commander. Table des matières. 1-Présentation de HTTP Commander

Développement des Systèmes d Information

Architecture Orientée Service, JSON et API REST

Guide utilisateur FaxToMail et MailToFax - Unifax

Comment déposer les comptes annuels des associations, fondations et fonds de dotation.

Programmation Web. Madalina Croitoru IUT Montpellier

Programme ASI Développeur

GUIDE D UTILISATION DU LOGICIEL DE TELE-EXPERTISE BOGOU

Optimiser les performances d un site web. Nicolas Chevallier Camille Roux

Vous pouvez désormais consulter les textes signés par la DILA, le rechargement du code Applet se fera automatiquement.

Manuel d'installation

Dossier Technique. Détail des modifications apportées à GRR. Détail des modifications apportées à GRR Le 17/07/2008. Page 1/10

Guide utilisateur du prélèvement bancaire SEPA

Barid Al Maghrib. Guide d utilisateur Boite Postale Electronique. Fonctions de base. Version 1.0

Guide d implémentation. Réussir l intégration de Systempay

T4E.fr présente SSRPM, son offre de reset de mot de passe en self service

Créer une connexion entre Sage CRM et Sage Etendue pour émettre directement des devis et commandes

AIDE ENTREPRISE SIS-ePP Plateforme de dématérialisation des marchés publics

Introduction à. Oracle Application Express

Manuel d utilisation du site web de l ONRN

DECOUVRIR. Le portail La recherche Les présentations & documents

ODH. Mon Espace. Manuel d utilisation. MON ESPACE ODH Manuel d utilisation. Une question? Contactez le service client au

1. Aménagements technologiques 2. Installation de Microsoft SQL Server 2012

Principales failles de sécurité des applications Web Principes, parades et bonnes pratiques de développement

API ONE-TIME PASSWORD

GUIDE PRATIQUE déplacements professionnels temporaires en France et à l étranger

Formation. Module WEB 4.1. Support de cours

Bases de données documentaires et distribuées Cours NFE04

Utilisation des ressources informatiques de l N7 à distance

WEB & DÉVELOPPEMENT LES BASES DU WEB LE LANGAGE HTML FEUILLES DE STYLES CSS HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES

Le Registre sous Windows 8 architecture, administration, script, réparation...

Notice d installation et d utilisation du blog nomade avec un nouveau blog

NoSQL. Introduction 1/23. I NoSQL : Not Only SQL, ce n est pas du relationnel, et le contexte. I table d associations - Map - de couples (clef,valeur)

Découverte des applications de la suite

EP60.92 Projet d application pluridisciplinaire La chasse aux trésors

Installation et configuration du serveur syslog sur Synology DSM 4.0

Gestion de stock pour un magasin

Cartographie des solutions BigData

Guide de configuration

Un exemple d'authentification sécurisée utilisant les outils du Web : CAS. P-F. Bonnefoi

UTILISATION DE L'APPLICATION «PARTAGE DE FICHIERS EN LIGNE»

Procédure d installation :

Création, analyse de questionnaires et d'entretiens pour Windows 2008, 7, 8 et MacOs 10

Compte Rendu d intégration d application

Connexion à SQL server

Outil de planification en ligne pour des créations de rendez-vous ou de sondage

Plateforme PAYZEN. Intégration du module de paiement pour la plateforme Magento version 1.3.x.x. Paiement en plusieurs fois. Version 1.

K?ellaWeb Saisie des absences, retards et sanctions APLON en mode Web

Console IAP Manuel d utilisation

cbox VOS FICHIERS DEVIENNENT MOBILES! INTERFACE WEB MANUEL D UTILISATION

Alfstore workflow framework Spécification technique

Keyyo Guide de mise en service CTI / API / TAPI Keyyo

INTRODUCTION AUX TESTS DE PERFORMANCE ET DE CHARGE

sécurisé de l ENSMM Accès au serveur FTP - Microsoft Windows 7 École Nationale Supérieure de Mécanique et des Microtechniques

Le stockage local de données en HTML5

AnaXagora LMS v3.0. Guide d utilisation

Devenez un véritable développeur web en 3 mois!

Application web de gestion de comptes en banques

1. Aménagements technologiques 2. Installation de Microsoft SQL Server Microsoft SQL Server 2008 Service Pack 3

[APPLICATON REPARTIE DE VENTE AUX ENCHERES]

Cours 8 Not Only SQL

Datalift. + + Architecture Modularité Déploiements. d j = 09/04/2015 Laurent BIHANIC

Examen organisé en vue du recrutement et de la constitution de réserves de recrutement. d'assistants (gestionnaire de systèmes et développeur)

FOIRE AUX QUESTIONS PAIEMENT PAR INTERNET. Nom de fichier : Monetico_Paiement_Foire_aux_Questions_v1.7 Numéro de version : 1.7 Date :

Connexion entre une BD FileMaker Pro 10 et ArcGis 10.x sous Windows 7

CAS, un SSO web open source. 14h35-15h25 - La Seine A

Manuel v. 6sV Simplement surfer. Simplement cliquer. Simplement bloguer.

Connexion au panneau de contrôle du Cloud Service Portal (CSP)

Serveurs de noms Protocoles HTTP et FTP

Master1 ère année. Réseaux avancés I. TP nº5 filière ISICG

Installation et configuration du logiciel BauBit

Logiciel de connexion sécurisée. M2Me_Secure. NOTICE D'UTILISATION Document référence :

Plate-forme de tests des fichiers XML virements SEPA et prélèvements SEPA. Guide d'utilisation

Formation : WEbMaster

Installer Enterprise Miner 5.1 en SAS environnement Windows

Guide de migration BiBOARD V10 -> v11

CRÉER SON SITE INTERNET. Créer son site Internet. Méd de Roanne. FG 16/09/08

Introduction à MapReduce/Hadoop et Spark

guide d utilisation de showtime

MapReduce. Malo Jaffré, Pablo Rauzy. 16 avril 2010 ENS. Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril / 15

NFA016 : Introduction. Pour naviguer sur le Web, il faut : Naviguer: dialoguer avec un serveur web

Solution Pro pour l Envoi de SMS direct opérateurs PUSH SMV MODE HTTP. Documentation Technique

SITE WEB E-COMMERCE ET VENTE A DISTANCE

AIDE ENTREPRISE SIS-ePP Plateforme de dématérialisation des marchés publics

Catalogue des Formations Techniques

WinTask x64 Le Planificateur de tâches sous Windows 7 64 bits, Windows 8/ bits, Windows 2008 R2 et Windows bits

Direction Eau, Environnement & Ecotechnologies. H. Leprond et N. Chauvin

Prezi. Table des matières

Installation 1K-Serveur

Windows Front-End Installation Guide HOPEX V1R1 FR

Questions fréquemment posées:

La base de données XML exist. A. Belaïd

Etape 1 : Connexion de l antenne WiFi et mise en route

Groupe Eyrolles, 2003, ISBN : X

INTRODUCTION AUX TESTS CODES DE L INTERFACE UTILISATEUR

ADMINISTRATION DE ADOBE LIVECYCLE MOSAIC 9.5

Transcription:

Examen - LI 328 Ludovic Denoyer - Sylvain Lamprier 16 avril 2013 Les documents sont autorisés. Les exercices sont indépendants les uns des autres, mais il est essentiel de lire le Contexte de cet examen pour comprendre de quoi il retourne. Contexte général Nous allons nous intéresser ici au développement d un site Web de type DIGG/REDIT. Un tel site Web est basé sur le principe suivant : Des utilisateurs peuvent s inscrire (en utilisant le nom+prénom) et avoir des amis (identifiés par leur login) Un utilisateur peut ajouter une news au site si elle n existe pas déjà dans le site, c est à dire référencer une page Web (une URL) pour signaler son existence aux autres utilisateurs. Chaque URL est identifiée par un identifiant (un nombre hexadécimal de 32 bits unique pour chaque news) Un utilisateur peut aimer ou détester une news ajoutée précédemment par un utilisateur Un utilisateur peut commenter une news ajoutée précédemment par un utilisateur Exercice I - Spécifications des Web Services (3 points) Pour chaque service, vous spécifierez les entrées du service, et donnerait un exemple de sortie au format JSON. Par exemple : == Service Login == Entrée: login : le login de l utilisateur password : le mot de passe (en clair...) de l utilisateur == Description: Le service permet de s authentifier sur le site et renvoie, en cas de login réussi, une clef de session. En cas d erreur, le service renvoie un message d erreur == Erreurs possibles: * Login inconnnu * Mot de passe incorrect == Exemple de sortie: {key = "0BAE569F3AC"} - si login OK {error = "Login inconnu"} - en cas d erreur Service de Création de compte :- ATTENTION : si la création de compte est réussie, le nouvel utilisateur est automatiquemnt loggué dans le site. Service Like/Dislike j aime/je déteste - en un seul service. 1

Service d informations sur une news : permet de récupérer les informations sur une news en fonction de son identifiant. Les informations continennent l URL, l utilisateur qui a rajouté cet news, le nombre de j aime, le nombre de je déteste, la date d ajout et le titre de la news. Quels autres services proposeriez vous que le site soit complet (une à deux lignes de description par service)? Exercice II - Bases de Données (3 points) On s intéresse au stockage des différentes données du site. Nous utiliserons uniquement une base de donnée MongoDB pour stocker les informations de ce site. Rappelez l intéret d utiliser une base MongoDB/NoSQL plutôt qu une base de type SQL. On considère qu une une news décrite par : son indentifiant (32 caractères), son URL, l utilisateur qui l a ajoutée, la date d ajout et le titre de la news. On souhaiterait stocker dans le même enregistrement les j aime/je déteste ainsi que les commentaires. Soit la news suivante : Titre: Euro 2012 - Yanga-Mbiwa et Gourcuff écartés Auteur de l ajout: ldenoyer Date de l ajout: mar, 29 mai 11:23:00 2012 URL: http://fr.sports.yahoo.com/29052012 J aime par slamprier, fhollande Je déteste par nsarkozy Commentaires: * Date: mar, 29 mai 12:32:00 2012 * Auteur : ygourcuf * Commentaire: pas terrible cette sélection Proposez un format de stockage en JSON de cette news. Si l on considère que les news sont stockées dans une collection examen sur une BD li351 du serveur mongodb li351.com, écrivez la fonction JAVA permettant de stocker une news en fonction de son URL, son titre, la date d ajout (sous forme de chaine de caractères), son auteur. Ecrivez la fonction JAVA permettant d afficher le titre des news que ldenoyer aime. Exercice III - Servlets (5 points) Rappelez le principe des servlets. Quels sont les différentes possibilités de réponse que l on peut envisager lorsque l on travaille avec des Servlets. Quels sont les avantages d une réponse au format JSON? Page 2

Ecrivez une servlet qui prend deux nombres en paramètres, et retourne la multiplication de ces deux nombres (format JSON). Ecrivez une servlet permettant d implémenter le service de Login décrit dans l exercice 1. Vous considérerez que les utilisateurs sont stockés dans la base MongoDB sous un format que vous spécifierez. Notez par ailleurs que la clé fournie pour la session doit être temporaire (elle doit donc posséder une date de péremption). Exercice IV - Map/Reduce (3 points) Si l on considère maintenant que les j aime/je déteste sont stockés dans une collection différente de celle des news sous la forme : { id_news = "A09B8E8CFF...", login = "ldenoyer", score = "1" } avec score = 1 si l utilisateur déteste. Ecrivez les fonctions map et reduce permettant de calculer le score final (la somme des scores) de toutes les news. Par exemple : {news= "A09B8E8CFF...", score_total = 38} {news= "0BAE569F3AC...", score_total = -25}... Ecrivez les fonctions map et reduce permettant de calculer le score moyen donné par chaque utilisateur sur toutes les news - on considèrera pour un utilisateur donné, uniquement les news scorées. Par exemple : {login= "ldenoyer", score_moyen = 2.3} {login= "slamprier", score_total = -5.3}... Exercice V - Développement d un client (6 points) On s intéresse ici au développement d un client simple, permettant aux utilisateurs d ajouter et de noter des news. Proposez le code HTML/CSS permettant d obtenir une interface semblable à celle donnée par la figure suivante (on affichera ici des commentaires fictifs, donnés en dur dans le code HTML) : Page 3

On souhaite maintenant faire en sorte que les news affichées correspondent aux dix dernières news ajoutées sur le site. Pour cela, on suppose que le serveur offre le service suivant : == Service LastNews == Entrée: nb : nombre de news == Description: Le service retourne les nb dernières news postées sur le site. En cas d erreur, le service renvoie un message d erreur == Erreurs possibles: * Probleme serveur == Exemple de sortie: {news = [ {id="0bae569f3ac", titre="euro 2012 - Yanga-Mbiwa et Gourcuff écartés", url="http://fr.sports.yahoo.com/29052012", auteur= "ldenoyer", date= "29/05/2012", score=-2}, {id="aa425f89abb", titre="l alcool favorise les idées de droite", url="http://www.slate.fr/lien/52277/conservatisme-alcool-droite", auteur= "joe", date= "28/05/2012", score=1} ] } - si Ok (correspond à la liste de news affichée dans la figure) {error = "Probleme serveur"} - en cas d erreur En considérant que les communications doivent se faire en asynchrone par le biais d AJAX et que la servlet correspondant aux service LastNews est stockée sur le même domaine que le code client, écrire le code javascript permettant de récupérer les dix dernières new ajoutées sur le site (uniquement le code de l appel AJAX). En cas de succès de la communication, on appelera une fonction traitereponsenews (à écrire dans les questions suivantes) qui attend la réponse au format texte. En cas d echec on affichera un message Echec de la communication avec le serveur. Écrire une classe Javascript News qui vise à regrouper les informations d une news et propose une fonction gethtml() qui retourne le code HTML de la news (on pensera à faire en sorte Page 4

que le clic sur les boutons + et - appelent une fonction modifscore, que l on suppose déjà écrite, à laquelle on passe l identifiant de la news et la valeur du bouton cliqué en arguments) Écrire une classe Javascript ListeNews qui correspond à une liste d objets News et propose une fonction gethtml() qui retourne le code HTML de la liste de news Question 5 Rappeler pourquoi il est préférable d utiliser la fonction JSON.parse plutôt que la fonction native eval pour reconstruire un objet réponse à partir d un texte au format JSON Question 6 Écrire une fonction ListeNews.revival qui définit la manière de reconstruire un objet ListeNews à partir d un texte au format JSON. Cette fonction sera utilisée dans la fonction traitereponsenews de la manière suivante : var liste=json.parse(json_texte,listenews.revival); avec json texte correspondant au texte retourné par la servlet LastNews Question 7 Écrire la fonction traitereponsenews permettant d afficher la liste de news retournée par le serveur dans l interface client Page 5