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 :
  1. 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.
  2. 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.
  3. 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.
  4. 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 :
  1. Une interface IDL (tpcorba.idl) décrivant les services que le client peut invoquer.
  2. 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.
  3. 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.
  4. 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.
  5. 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:

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: 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 :