Laboratoire 2 Conception du serveur d application et du client



Documents pareils
Tutoriel d installation de Hibernate avec Eclipse

La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1

Développement Web - Object Relational Mapping and Hibernate

Laboratoire 4 Développement d un système intelligent

Compte Rendu d intégration d application

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

I4 : Bases de Données

Types d applications pour la persistance. Outils de développement. Base de données préexistante? 3 modèles. Variantes avec passerelles

INF 1250 INTRODUCTION AUX BASES DE DONNÉES. Guide d étude

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Nom de l application

Documentation Liste des changements apportés

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

PLAN DE COURS DÉPARTEMENT ÉLECTRONIQUE INDUSTRIELLE. TITRE DU COURS Ordinateur Outil RA 1-4-2

Mise en œuvre des serveurs d application

Refonte front-office / back-office - Architecture & Conception -

Jade. Projet Intelligence Artificielle «Devine à quoi je pense»

CQP Développeur Nouvelles Technologies (DNT)

SITE WEB E-COMMERCE ET VENTE A DISTANCE

BIRT (Business Intelligence and Reporting Tools)

Cours en ligne Développement Java pour le web

Plan de cours. Chiffriers et bases de données en gestion commerciale

Compiere. Installation et adaptation avec Hibernate. Travail de Bachelor. Thibaut Schorderet Septembre 2005

Etude de cas : PGE JEE V2

Formation Webase 5. Formation Webase 5. Ses secrets, de l architecture MVC à l application Web. Adrien Grand <jpountz@via.ecp.fr> Centrale Réseaux

Conduite de projets informatiques Développement, analyse et pilotage (2ième édition)

Auto-évaluation Aperçu de l architecture Java EE

La gestion de la persistance avec Hibernate. Hibernate et la gestion de persistance. La gestion de la persistance (1/2) Introduction

Accès aux bases de données

COMMENT REDIGER UN RAPPORT TECHNIQUE?

24/11/2011. Cours EJB/J2EE Copyright Michel Buffa. Plan du cours. EJB : les fondamentaux. Enterprise Java Bean. Enterprise Java Bean.

Catalogue des Formations Techniques

1. Installation d'un serveur d'application JBoss:

Java pour le Web. Cours Java - F. Michel

Sage 100 CRM Guide de l Import Plus avec Talend Version 8. Mise à jour : 2015 version 8

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

Application web de gestion de comptes en banques

CalDav Manager : Gestionnaire d emploi du temps

arcopole Studio Annexe 4 Intégration LDAP et processus d authentification Site du programme arcopole :

Information utiles. webpage : Google+ : digiusto/

XML et Bases de données. Les bases de données XML natives.

Plateforme de capture et d analyse de sites Web AspirWeb

Gestion de base de données

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

Cahier Technique. «Développer une application intranet pour la gestion des stages des étudiants» Antonin AILLET. Remi DEVES

Soutien technique en informatique

RAPPORT DE CONCEPTION UML :

Extension SSO Java. Cette note technique décrit la configuration et la mise en œuvre du filtre de custom SSO Java.

Création d une application JEE

Réalisation d un couplage téléphonie-informatique pour la suite Novanet

Master Informatique et Systèmes. Architecture des Systèmes d Information. 03 Architecture Logicielle et Technique

1. Base de données SQLite

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

SQL Server 2012 Administrez une base de données : Exercices et corrigés

IFT3030 Base de données. Chapitre 1 Introduction

Meta Object Facility. Plan

Création et Gestion des tables

APIs de table pour SQL Server

Encryptions, compression et partitionnement des données

Générer du code à partir d une description de haut niveau

A QUOI SERVENT LES BASES DE DONNÉES?

Bases de Données Avancées

Gestion d Epargne de Crédit & Comptabilité

Gestion de stock pour un magasin

SIO-6029-Z1 : Gestion de projet et du changement

Patrons de Conception (Design Patterns)

PROSOP : un système de gestion de bases de données prosopographiques

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

ASA-Advanced Solutions Accelerator. Solution pour la gestion des données des laboratoires et des plateformes de service

PRISE EN MAIN RAPIDE

Web Tier : déploiement de servlets

TP2 : Client d une BDD SqlServer

PHP 4 PARTIE : BASE DE DONNEES

D une part, elles ne peuvent faire table rase de la richesse contenue dans leur système d information.

Informations sur l utilisation du webmail du CNRS. Webmail du CNRS. Manuel Utilisateur

Environnements de Développement

Tutoriel XBNE Connexion à un environnement XBMC distant

DESCRIPTION DES PRODUITS ET MÉTRIQUES

CREATION WEB DYNAMIQUE

Documentation de conception

Un serveur d'archivage

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour

Comment Connecter une Base de Données MySQL via un Driver JDBC Avec OpenOffice.org

Application des Spécifications détaillées pour la Retraite, architecture portail à portail

TP JEE Développement Web en Java. Dans ce TP nous commencerons la programmation JEE par le premier niveau d une application JEE : l application web.

Développement des Systèmes d Information

Cours Bases de données

CHARGÉE DE COURS : Catherine Pelletier, MBA, chargée de communication, Service des communications et des relations avec le milieu, FSA

OpenPaaS Le réseau social d'entreprise

A QUOI SERVENT LES BASES DE DONNÉES?

PROJET ARCHI WINDOWS SERVER

Le langage SQL pour Oracle - partie 1 : SQL comme LDD

Bases de Données relationnelles et leurs systèmes de Gestion

L alternative, c est malin 1. Comment faire plein de choses pour pas cher sur MacIntosh

Choisir ses priorités: le développement incrémental de produit. Copyright Pyxis Technologies

Cours Base de données relationnelles. M. Boughanem, IUP STRI

Chapitre VIII. Les bases de données. Orientées Objet. Motivation

Transcription:

DÉPARTEMENT DE GÉNIE LOGICIEL ET DES TI LOG660 - BASE DE DONNÉES HAUTE PERFORMANCE Laboratoire 2 Conception du serveur d application et du client 1 Introduction Au cours de la session, les laboratoires auront comme sujet le développement d une application de gestion de données, à l image des projets qui se font en entreprise. Chacun des quatre (4) laboratoires du cours portera sur un ou plusieurs concepts vus en classe, et sera effectué en équipe de trois (3) à quatre (4) étudiants. L objectif de ce second laboratoire est de vous familiariser avec la conception d une application Web à trois niveaux (three-tier application) dont les données transactionnelles sont stockées dans une BD relationnelle. En particulier, ce laboratoire portera sur l utilisation du framework de mappage objet/relationnel (ORM) Hibernate pour assurer la persistance transparente des données. Le travail à réaliser dans le cadre de ce laboratoire se base sur celui accompli lors du laboratoire précédent. Ainsi, l application Web à développer devra utiliser le schéma relationnel conçu au laboratoire précédent, de même que les données qui y ont été insérées. 2 Travail à réaliser Tâche 1 : Modélisation des classes de l application en Java En se basant sur le diagramme de classe UML fait lors du premier laboratoire, vous devrez tout d abord coder en Java toutes les classes métier nécessaires pour traiter SEULEMENT les cas d utilisation 2, 3 et 4 du document de mise en situation, soit : Cas 2 : connexion d un utilisateur au système ; Cas 3 : consultation interactive des films ; Cas 4 : location de films. Vous devrez également coder la ou les classes nécessaires pour interfacer ces classes métiers à l aide du patron de façade. Toute requête complexe au système (ex : recherche de films, insertion d une location, etc.), provenant de la couche de contrôle/présentation, devrait se faire à travers un objet de la façade, et non directement sur les objets métier. 1

Consigne 1 : Vous pouvez, si nécessaire, apporter des modifications à votre diagramme de classe ou votre schéma relationnel. Ces modifications peuvent faciliter la mappage objet-relationnel de la Tâche 2. Consigne 2 : Bien que vous n êtes pas tenu de mettre des commentaires pour chaque élément de votre code, vous serez pénalisé si celui-ci n est pas suffisamment compréhensible. En particulier, choisissez des noms appropriés et significatifs pour vos classes, attributs et méthodes. Tâche 2 : Mappage des objets à la BD avec Hibernate Pour cette seconde tâche, vous devrez définir le mappage de vos objets aux tables de la BD en utilisant le framework Hibernate. Dans un premier temps, vous devrez modifier le fichier de configuration hibernate.cfg.xml se trouvant dans le répertoire src/main/resources, afin de mettre les bons paramètres de connexion (username, password et default schema) : <hibernate-configuration> <session-factory name="hibernate"> <property name="hibernate.connection.driver_class"> oracle.jdbc.driver.oracledriver</property> <property name="hibernate.connection.password"> lemotdepasse</property> <property name="hibernate.connection.url"> jdbc:oracle:thin:@big-data-3.logti.etsmtl.ca:1521:log660</property> <property name="hibernate.connection.username"> equipexx</property> <property name="hibernate.dialect"> org.hibernate.dialect.oracle10gdialect</property> <property name="hibernate.default_schema"> EQUIPEXX</property> <property name="hibernate.transaction.auto_close_session"> false</property> </session-factory> </hibernate-configuration> À noter : la valeur du paramètre default schema doit être en lettres majuscules. Ensuite, vous devrez créer, pour chacune des classes métier nécessaires pour traiter SEULEMENT les cas d utilisation 2, 3 et 4, un fichier de mappage (hibernate-mapping) définissant : Le mappage de la classe vers une table ; Le mappage de l identifiant de la classe vers une clé primaire, et le mécanisme de génération si la clé est artificielle ; Le mappage des propriétés de la classe vers des colonnes de sa table ; Le mappage des relations d association (ex : 1-1, 1-plusieurs, plusieurs-1, etc.) ; 2

Le mappage des relations de spécialisation (ex : une table par hiérarchie, par sous-classe, etc.) Voici un exemple de fichier de mappage Film.hbm.xml : <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN" "http://hibernate.org/dtd/hibernate-mapping-3.0.dtd"> <hibernate-mapping> <class name="film" table="film"> <id name="id" column="id_film"/> <generator class="native"/> </id> <property name="titre" column="titre"/> <property name="annee" column="annee_sortie"/>... <set name="lesacteurs" inverse="true" cascade="all"> <key column="id_film"/> <one-to-many class="personne"/> </set> </class> </hibernate-mapping> Consigne 1 : Basez-vous sur les acétates présentées en classes pour la définition des fichiers de mappage. Vous pouvez également vous référer à la document en-ligne de Hibernate disponible ici. Consigne 2 : Utilisez le mode native pour la stratégie de génération des clés artificielles. Consigne 3 : Si vous préférez, les annotations Hibernate peuvent être employées pour faire le mappage, au lieu des fichiers XML. Tâche 3 : Implémentation du client mince Dans cette troisième tâche, vous aurez à développer la couche de présentation de votre application sous la forme d un client mince. Ce client doit pouvoir traiter SEULEMENT les cas d utilisation 2, 3 et 4. Pour le développement de votre client, vous avez deux options : 1. Client Web à l aide de Servlet Java (ou technologie équivalente au choix) ; 2. Interface GUI au choix (ex : Swing). Pour la première option, référez-vous au document Application Web et Servlet Java disponible avec cet énoncé pour des instructions détaillées. Le squelette d un client Web vous sera également fourni pour faciliter votre travail. Note : bien qu il ne soit pas obligatoire d implémenter un client Web, cela cadre mieux dans la philosophie d une application à trois couches. 3

À noter : toute opération transactionnelle de l application doit être faite à l intérieur d une session Hibernate. Par exemple : Session unesession = HibernateUtil.getSessionFactory().openSession(); unesession.begintransaction(); List lesclients = unesession.createquery( "FROM Client c WHERE c.courriel = jean.bon@etsmtl.ca ").list(); Client unclient = (Client) lesclients.next(); List lescopies = unesession.createquery( "FROM Copie c WHERE c.titre = La revanche du Jean Bon AND c.statut = disponible ").list(); Copie unecopie = (Copie) lescopies.next(); Client.getLocations().add(uneCopie); unecopie.setemprunteur(unclient); unecopie.setstatut("louee"); unesession.gettransaction().commit(); unesession.close(); Consigne 1 : Ne passez pas trop de temps sur le côté esthétique de l application, car celui-ci ne sera pas évalué. Consigne 2 : Assurez de bien tester toutes les fonctionnalités de votre application, y compris les utilisations non-prévues et autres cas d erreurs. Consigne 3 : Les mêmes règles d affaires (contraintes) que pour le laboratoire 1 s appliquent au laboratoire 2. Par exemple, un client ne peut toujours pas louer plus de films que le permet son forfait. Ses règles peuvent être validées soit au niveau de la BD (ex : les TRIGGER développées au laboratoire 1) ou au niveau de l application. Tâche 4 : Rédaction du rapport Enfin, la dernière tâche du laboratoire sera de rédiger un rapport décrivant votre travail et justifiant vos décisions de conception. Note : utilisez le gabarit prévu à cet effet. 3 Consignes de remise Avant la fin de la première séance du laboratoire 2, vous devrez envoyer à l adresse courriel log660.remiseslabo@gmail.com le document de planification complété. 4

Avant la date limite disponible sur le calendrier du cours, vous devrez envoyer à l adresse courriel log660.remiseslabo@gmail.com les deux éléments suivants : 1. Le gabarit de rapport complété ; 2. Tous les fichiers de configuration et de mappage Hibernate ; 3. Le code source de votre application (serveur et client mince). Note : Tous les fichiers de remise doivent être dans un répertoire compressé ayant comme nom log660-labo2-equipex, où X est le numéro de votre équipe. Consultez le site du cours pour avoir plus de détails sur les consignes de remise. 4 Barème de correction L évaluation du laboratoire sera faite sur un total de 100 points, distribués comme suit : COMPOSANTE POINTS Rapport : (45 pts) Manuel utilisateur 5 Stratégie de test 5 Patrons de conception 5 Validation des contraintes et de l accès 5 Code de mappage et justification 10 Question 1 5 Question 2 5 Autres items 5 Qualité du français Pénalité jusqu à 10 pts Code source : (30 pts) Code Hibernate 15 Code d application Java 15 Qualité du code Pénalité jusqu à 10 pts Fonctionnalité et interface utilisateur : (25 pts) Correction interactive 25 TOTAL 100 5 Pénalités et retard Une pénalité de 10% par jour, incluant les jours de fin de semaine, sera systématiquement appliquée à tout travail remis en retard. Un travail en retard de plus de trois (3) jours recevra automatiquement la note 0. Une pénalité allant jusqu à 10% pourra également être appliquée à tout travail ne respectant pas rigoureusement les directives de remise. 5