Table des matières

TP: Modèles de données

Mises à jour:

Modalités

Ce TP est à rendre pour le 03/10/2012, à raison d'un rendu par binôme.
URL de rendu SPIRAL: http://spiralconnect.univ-lyon1.fr/spiral/spiral.html#/activities/goto_folder/1742262

Il est demandé de rendre le TP sous forme d'un dépôt Mercurial qui aura été initialisé en clonant le dépôt indiqué ci-dessous. Mercurial est un gestionnaire de version, au même titre que par exemple git. A la différence de svn ou CVS c'est système décentralisé, permettant de réaliser des commit sans connexion avec un quelconque serveur central. Une introduction rapide à Mercurial est à disposition ici.

Introduction

Le but de ce TP est mettre en place un petit modèle de données objet ainsi que des mappings entre ce modèle et les modèles relationnels et semi-structurés.

Un projet maven de départ est disponible ici:

hg clone https://forge.univ-lyon1.fr/hg/inf2018m-2012-tpbase

Ce projet comporte des sous-projets. Le projet modele contient les classes du modèles.

Remarques:

Etapes

Modèle relationnel

Mettre en place un mapping avec un modèle relationnel en utilisant l'API JPA dans une base relationnelle1):

Il est possible de modifier le modèle, en particulier en ajoutant/modifiant des méthodes. Toute modification doit cependant être justifiée dans le fichier README.txt.

Quelques liens utiles:

Remarque: les dépendances sur l'API JPA et le runtime hibernate sont déjà déclarées dans le pom.xml du projet, ainsi qu'une dépendance vers les pilotes JDBC pour derby dans le cadre des tests.

Modèle semi-structuré

Mettre en place un mapping avec XML via JAXB3):

Quelques liens utiles:

Remarque:

Extrait d'une base de films

Créer une classe tiw5.modele.InfosFilms contenant une liste de personnes, une liste de films et une liste de sociétés. Ajouter les annotations JAXB pour la sérialisation XML et mettez à jour le schéma XML.

Accès web

Le projet maven interface-web contient un squelette d'application Web. Créer une servlet renvoyant une représentation XML d'un film en fonction de son numéro, ainsi qu'une page HTML avec un formulaire pour la tester facilement. Changer la servlet pour envoyer la représentation XML d'une instance d'InfosFilms contenant le film et toutes les personnes et les sociétés qui y sont liées.

Ajouter la possibilité de passer paramètre format donnant le choix entre le format XML défini dans le fichier xsd du modèle et le format XHTML. La présentation XHTML se fera via l'application d'une feuille de style XSL. Les personnes/sociétés (et les détails les concernant) seront indiquées dans la description du film.

1)
par exemple une base derby qui évite de configurer un SGBD sur la machine de développement
2)
Attention: le test doit pouvoir être exécuté plusieurs fois de suite
3)
annotations de mapping XML JEE