Micro-projet Conception et développement d’application Oracle/Web

Mastère Internet et Systèmes Répartis

2000-2001

Introduction

Il
s'agit dans ce TP d'aborder les problèmes de conception de schéma et
ensuite de prototypage d'applications bases de données dans un
environnement Web. La phase de conception est abordée à l'envers, c'est
à dire que l'on va faire la rétro-conception d'un schéma relationnel
existant et non pas concevoir un schéma conceptuel de données à partir
d'une analyse des besoins.

Les outils et langages utilisés seront GEM (partie
conception), SQL (définition et accès à la base de données), Java/JDBC
(génération de code Javascript), Javascript et HTML (formulaires
clients) et la passerelle Oracle/Web (soumission de requêtes SQL via
les formulaires HTML).

Phases de développement

Le TP se déroule selon les phases suivantes :

  1. rétro-conception du schéma relationnel abstrait.
    Le domaine visé est celui des portails électroniques qui permettent
    l'accès à des ressources à partir d'une classification. Le schéma doit
    être générique et doit permettre de modéliser n'importe quelle
    classification (à partir du moment ou elle est hiérarchique) et
    n'importe quelle ressource (à partir du moment ou on en a une
    description minimale),
  2. le schéma conceptuel de type Entité-Association qui a été obtenu à
    l'étape précédente va être saisi dans un outil de conception qui
    s'appelle GEM. Cet outil offre un éditeur graphique spécialisé ainsi
    qu'une génération du code SQL représentant la base de données. Une fois
    le code SQL obtenu il va être exécuté sous Oracle via cette interface
    Web (en faisant un copier/coller du contenu de la fenêtre GEM dans la
    fenêtre de saisie de requêtes SQL de l'interface),
  3. construction de l'application Web. Celle-ci va comporter trois grandes fonctionnalités :

  1. création d'un portail. Cette fonction est restreinte
    à l'administrateur de l'application. Elle permet de rajouter un nouveau
    portail donc une nouvelle hiérarchie. Les fonctions attendues ici sont
    la consultation des hiérarchies existantes et l'insertion d'une
    nouvelle hiérarchie,
  2. ajout d'une ressource dans un portail existant. Cette fonction est
    offerte aux utilisateurs qui peuvent ajouter des resources sur le
    portail. L'ajout de ressources consiste d'une part à décrire la
    ressource et d'autre part à l'indexer, c'est à dire choisir quelle(s)
    entrée(s) de la classification correspond à la ressource,
  3. navigation dans la classification dans un but de recherche de
    ressources. Cette fonction est offerte à tous les utilisateurs du
    portail. Il s'agit de pouvoir se déplacer dans la classification et
    d'accéder aux ressources indexées par le nœud courant. Il faut donc
    supporter les fonctions de navigation dans la classification. Pour ce
    faire, nous allons utiliser un programme Javascript appelé Joust qui
    réalise cette fonction. Cependant Joust nécessite une description de la
    classification en Javascript qui est assez longue et pénible à faire.
    Pour éviter ce travail on générera automatiquement ce code à partir du
    contenu de la base de données. Cette génération se fera en par un
    programme Java utilisant l'API JDBC,
  4. interrogation des ressources sans navigation : cette fonction est
    offerte à tous les utilisateurs. Il s'agit de pouvoir interroger
    directement les ressources sans passer par une navigation. Une
    expression de recherche sera une conjonction ou une disjonction
    d'entrées de la classification que l'on aura choisies via un menu
    déroulant. Une fonction Javascript transformera cette suite d'entrées
    en une requête SQL qui sera envoyée à la passerelle Oracle/Web.

Travail à faire

Le
travail se fera par groupe de 2 ou 3. Tous les groupes vont faire les
phases 1 et 2, par contre pour la phase 3 chaque groupe va choisir une
des 4 fonctionnalités (sachant qu'il faut que toutes les
fonctionnalités soient choisies). Le but final est d'avoir à la fin un
portail qui fonctionne avec toutes les fonctionnalités. Ce portail sera
utilisé dans un premier temps comme portail dans le domaine des TIC
pour l'INT en indexant les ressources des enseignants-chercheurs.

Schéma type pour Oracle

Quelques explications sur le schéma de la BD

Exemple de fichier html/Javascript pour Joust

Exemple de code à générer pour Joust