Projet associé à l'UE SOR 2008/2009
Y. Autret,
F. Singhoff
1. Introduction
Le but du projet est de construire une application
qui fait la synthèse de différents environnements de
développement étudiés dans le cadre de l'UE SOR : CORBA et
JEE (Java Enterprise). Dans ce projet, vous devez développer une
architecture n-tiers comme celle de la figure ci-dessous :
L'architecture est constituée de plusieurs composants logiciels :
- Un client "léger" qui est un navigateur Web. La fonction de ce client léger est de gérer l'affichage des données.
- Un serveur HTTP tel que Tomcat chargé de gérer les requêtes du client. Pour ce faire, le client soumet une URL JSP qui sera traitée par le serveur Tomcat.
- Un serveur CORBA invoqué via Tomcat. Ce service implante les fonctions de l'application et exploite des données stockées dans un SGBD. Ici, on implante les traitements que le client souhaite invoquer.
- Et enfin un SGBD qui permet la gestion et l'accès aux données de l'application via JDBC.
Cette architecture sépare donc effectivement la présentation, le traitement et le stockage
des données d'une application.
On décrit par la suite certains éléments de cette architecture.
2. Invocation du serveur CORBA par Tomcat
Le répertoire
EXEMPLE_CORBA
contient un exemple de programme CORBA pouvant être invoqué depuis une page Web.
Il s'agit du premier exemple CORBA étudié au début de l'UE SOR, mais adapté au
fonctionnement des Web-services avec Java.
Ce répertoire comprends :
- Une interface IDL (tpcorba.idl) décrivant les services que le client peut
invoquer.
- Une implantation de ce service (fichiers calculImpl.java et
Serveur.java).
Le serveur doit bien être lancé quelque part sur le réseau accessible au serveur
Tomcat.
- Le client (fichier Client.java) qui est exécuté à partir d'une page Web. Ce client
est un client CORBA adapté afin de pouvoir être intégré dans un projet
Eclipse. L'adaption consiste a spécifier la référence absolue
du fichier calcul.ref.
- Un ensemble de fichiers générés par le compilateur IDL pour l'interface
IDL tpcorba.idl. Comme Client.java, tous ces fichiers doivent être
intégrés dans le projet Eclipse.
- Enfin le fichier index.jsp montre comment instancier
le client et lui fournir
un environnement d'exécution compatible à son exécution. Ce fichier
doit aussi être intégré au projet
eclipse indiqués aux points 3 et 4.
Remarque: cette description est sommaire. Dans l'application réelle on aura des classes JAVA différentes de celles indiquées ci-dessus. Ce seront elles et non pas "index.jsp" qui assureront la connexion au serveur CORBA.
3. Accès au SGBD via JDBC
On doit passer du monde SQL au monde JAVA et inversement. Les données SQL devront être systématiquement transformées en objets ou en collection d'objets JAVA. Inversement on doit pouvoir enregistrer des objets JAVA en base de données.
4. Travail à réaliser
L'application proposée se rapporte à la gestion de la bibliothèque du
département d'Informatique. La table bib_livre définit la notion de livre:
create table bib_livre (
idLivre varchar(255) NOT NULL,
codeBarre varchar(255) NOT NULL,
type varchar(255) NOT NULL,
rubrique varchar(255) NOT NULL,
motscles varchar(255) NOT NULL,
auteurs varchar(255) NOT NULL,
titre text NOT NULL,
identification varchar(255) NOT NULL,
isbn varchar(255) NOT NULL,
commentaire varchar(255) NOT NULL,
demandeur varchar(255) NOT NULL,
PRIMARY KEY(`idLivre`)
);
Exemples d'enregistrements:
insert into bib_livre values ('LIVR00001','D00001','LIVRE',
'LANGAGES','LATEX, TEX, UNIX, TRAITEMENT DE TEXTE, BIBTEX',
'ROLLAND Christian','LaTeX, GUIDE PRATIQUE','I875,I871,I870',
'2-87908-025-8','','');
insert into bib_livre values ('LIVR01289','D01339','PROCEEDINGS','ROBOTIQUE',
'ROBOTS MOBILE','cemagref (hors serie)',
'BULLETIN TECHNIQUE DU MACHINISME ET DE L´EQUIPEMENT AGRICOLES','I1038',
'2-85362-091-3','','');
Les enregistrements seront fournis sous la forme de scripts SQL
(environ 2000 enregistrements).
Le travail à effectuer va concerner la gestion des mots-clés.
Dans la base actuelle les mots-clés sont mal gérés. On ne
dispose que d'un champ "motscles" pour tous les mots-clés d'un livre. Notre application devra permettre de mieux gérer les mots-clés des livres. Tout utilisateur préalablement identifié pourra
proposer des mots-clés pour des livres, la validation des mots-clés proposés étant du res
sort des "super-utilisateurs". En option on pourra envisager
la modification des mots-clés déjà enregistrés.
Les étapes de la réalisation sont les suivantes:
- Créer les tables SQL nécessaires (le champ motscles
restera dans bib_livre mais ne sera plus utilisé).
- Définir et implémenter l'interface CORBA permettant
l'envoi et la réception des objets et des
collections d'objets correspondant aux données de la base.
- Définir et implémenter les JSP et les classes JAVA nécessaires au fonctionnement de l'application. Les fichiers JSP pourront
être éventuellement remplacés par des fichiers XML. Il est conseillé de faire une première version de l'application entièrement en JSP et de n'aborder la partie XML qu'après, s'il reste du temps. La version XML pourra constituer une seconde version de l'application indépendante de la première.
Elle pourra être présentée incomplète.
Les documents nécessaires (scripts SQL, ...) peuvent être chargés
à l'adresse suivante.
5. Organisation et évaluation
Vous devez vous organiser en groupes de 2 étudiants.
Vous devrez fournir par mail un rapport contenant:
- un document (à imprimer également sur papier pour la soutenance) contenant :
- une page montrant les tables SQL utilisées,
- une page listant les fonctionnalités implémentées au niveau de l'interface
client,
- une page listant les fonctions implémentées au niveau de l'interface CORBA.
- les sources de votre application.
L'évaluation se fera sur ce rapport et sur une démonstration en fin de semaine (vendredi après-midi).
Les critères d'évaluation sont les suivants :
- La qualité du rapport,
- Le niveau fonctionnel
atteint,
- la conception détaillée,
- la qualité du jeu de tests,
- la qualité du code
(propreté, fiabilité).