Tutoriel de Bases de Données Relationnelles

Tutoriel de Bases de Données Relationnelles

Accueil  > Produits > Web/BD > Outils prototypage > Architecture

Description de l'architecture d'un outil de prototypage

Un environnement de prototypage rapide d’applications web  pour bases de données

 

 

Bruno Defude

Institut National des Télécommunications

9 rue Charles Fourier 91011 Evry Cedex

Bruno.Defude@int-evry.fr

 

RÉSUMÉ. Nous décrivons un environnement de prototypage rapide d'applications web pour bases de données, qui permet à partir d'un schéma entité-association de dériver automatiquement le schéma de bases de données équivalent et une application web. L'environnement est constitué de trois outils qui peuvent être utilisés soit de manière intégrée, soit isolément. Cet environnement est utilisé surtout dans un contexte d'enseignement car il permet à des étudiants de développer très rapidement et très simplement des applications bases de données.

MOTS-CLÉS : prototypage rapide, application web, outil pour l'enseignement des bases de données, programmation CGI, Oracle, XML

 

 


1. Introduction

Le Web est devenu de fait la plate-forme idéale de déploiement d’applications puisqu’il fait appel à des standards éprouvés tant au niveau protocole (HTTP), qu’au niveau des langages de description de documents (HTML et maintenant XML).

De nombreux outils de développement sont apparus venant soit du monde web (interprète de langages de programmation associés à un serveur HTTP comme ASP [ASP] de Microsoft, JSP [JSP] et servlet de Java ou PHP [PHP] de la communauté logiciel libre), soit des langages de programmation (modèle J2EE [J2EE] de Java par exemple). Ces solutions sont puissantes et permettent de répondre en grande partie aux besoins mais par contre ne sont pas très faciles à utiliser pour des non-informaticiens. Elles ne sont pas non plus très centrées sur les bases de données mais plus sur l’interface utilisateur ou bien la logique applicative.

Dans le domaine des bases de données, plusieurs propositions ont été faites tant dans le monde commercial (WebDB [WEBDB] d’Oracle par exemple), que dans le monde académique (Strudel [FLO  00] par exemple). Enfin, il y a des outils web d’administrations de bases de données (PHPMyAdmin [PHPMYADMIN] pour MySQL en est un exemple) mais qui ne remplissent pas complètement nos objectifs puisqu’ils ne permettent pas réellement de développer des applications.

Les objectifs de notre projet sont de disposer d’une suite logicielle complète (depuis la conception des schémas de la base de données, jusqu’au code de l’application Web qui permet de la manipuler), gratuite, modifiable, facile à déployer et facile d’utilisation pour nos étudiants. L’application produite n’a pas forcément vocation a être l’application finale (c’est plutôt un prototype jetable qui permet au moins de valider le schéma de base de données). Notre approche est très voisine de celle de WebDB, mais nous essayons d’être plus indépendant du SGBD et notre vision de l’interaction web/SGBD est assez différente (Oracle essaye de faire le maximum de travail dans le SGBD alors que nous préférons en sortir certaines fonctions comme l’habillage HTML).

Le reste de l’article est structuré comme suit. La section 2 décrit l’architecture logique de l’environnement et ses principes d’utilisation. La section 3 décrit plus précisément les fonctionnalités de la passerelle web/SGBD. Nous tirons dans la section 4 un bilan et les perspectives d’évolution de cet environnement.

2. Architecture logique

L’architecture logique et les principes d’utilisation de notre environnement sont décrits dans la figure 1. Cette suite logicielle comprend trois outils intégrés :

 

Figure 1 : Architecture logique et principes d~Rutilisation

-un outil de conception de schéma de bases de données : il permet classiquement à partir d’un schéma Entité-Association de générer le code SQL équivalent pour un SGBD donné (Oracle et MySQL pour l’instant) ainsi qu’une description XML de l’application à produire exprimée dans le langage d’entrée du générateur (celle-ci peut être modifiée par le programmeur car elle ne correspond pas forcément à ses besoins). Le code SQL peut être interprété sur le SGBD par n’importe quel interprète SQL. Cet outil est implanté en langage Java et Swing. La représentation interne des schémas se fait en XML, ce qui permet de faire la génération de code SQL par des feuilles de style XSLT (cela permet d’ajouter facilement de nouvelles cibles). ;

-une passerelle gérant l’interface avec le SGBD qui permet l’interprétation d’une ou plusieurs requêtes SQL et l’habillage HTML du résultat produit ;

-un générateur d’applications web qui, à partir d’une description XML de l’application, construit les formulaires HTML s’interfaçant avec la passerelle. Ces formulaires vont pouvoir être stockés sur n’importe quelle machine (pas nécessairement celle où se trouve le SGBD) et interprétés par des navigateurs web supportant le langage Javascript. Le générateur est développé en langage Java en utilisant l’interface de programmation JAXP qui permet de manipuler des documents XML.

 

3. Passerelle web/SGBD

Son rôle est d’interpréter une ou plusieurs requêtes SQL sur le SGBD et de renvoyer le résultat récupéré habillé en HTML. L’interprétation des requêtes SQL se fait dans la même transaction. L’originalité de cette passerelle réside dans le paramétrage assez poussé qu’elle permet au niveau de l’habillage HTML. L’idée consiste à utiliser le dictionnaire de données pour obtenir de l’information utile pour la génération. Par exemple, simplement à partir du nom d’une relation on peut générer un formulaire permettant l’insertion d’un tuple dans cette relation.

Pour l’instant la passerelle est implantée sous forme d’un programme de type CGI écrit en langage C en utilisant l’interface de programmation Pro*C d’Oracle. Du côté client, la passerelle se programme via un ensemble de variables dont le nom est fixé (par exemple UID pour la chaîne de connexion Oracle, SQLSTATEMENT pour les instructions SQL que l’on veut interpréter, …).

Pour augmenter les fonctionnalités de la passerelle, nous avons introduit plusieurs modes d’interaction :

-mode normal : la passerelle interprète les instructions SQL et habille le résultat en HTML ;

-modes insertion/suppression/mise à jour : la passerelle génère un formulaire HTML et du code Javascript permettant l’insertion/suppression/mise à jour d’un tuple dans une relation donnée en paramètre ;

-mode QBE : la passerelle génère un formulaire HTML et du code Javascript permettant l’interrogation de type QBE d’une relation donnée en paramètre ;

-mode hypertexte : la passerelle interprète les instructions SQL et s’il s’agit de requêtes de type SELECT, elle génère pour chaque valeur de clé étrangère un formulaire qui va permettre l’accès au tuple pointé par la clé. Ce mode permet de naviguer «à la hypertexte » dans une base de données via les clés étrangères ;

-mode copie : la passerelle interprète une requête de type SELECT et génère pour chaque valeur retournée un formulaire qui permet la recopie de cette valeur dans une variable du formulaire. Ce mode permet la construction de menus déroulant dont les valeurs sont extraites de la base de données.

4. Bilan et perspectives

Cet environnement de prototypage est complètement opérationnel et a été utilisé dans de nombreux projets d’élèves de l’INT depuis maintenant plusieurs années. Nous avons, par exemple, développé un interprète SQL entièrement web qui nous permet de ne plus utiliser de produits comme sqlplus d’Oracle. Nous l’utilisons aussi dans le cadre de travaux pratiques et il permet de faire réaliser aux élèves une application base de données dans un délai très court (3 à 6 heures). Il est également utilisé dans le cadre d’applications de gestion internes à l’INT. Il est disponible sur simple demande auprès de l’auteur pour les établissements d’enseignement supérieur. Les évolutions les plus importantes en cours traitent de l’indépendance vis à vis du SGBD. La passerelle est en cours de re-développement sous forme de servlet Java ce qui va permettre de pouvoir sélectionner son SGBD, d’avoir une gestion des connexions au SGBD plus efficace et du multithreading.

Un autre travail en cours consiste à donner une implantation sous forme de JSP (Java Server Page) à la passerelle. Dans ce contexte, nous proposons de définir une bibliothèque de balises spécialisées (taglib pour JSP) encapsulant les principaux modes d’interaction de la passerelle. Ceci doit permettre une programmation de pages JSP beaucoup plus facile, tout en gardant l’avantage des JSP de mieux pouvoir gérer l’habillage HTML.

Remerciements

L’implantation de cet environnement a été réalisée en partie par de nombreux projets d’élèves de l’INT que nous tenons à remercier pour le travail réalisé.

Bibliographie

[ASP] http://msdn.microsoft.com/asp

[FLO  00] D. Florescu, K. Yagoub, A. Levy, D. Suciu « Declarative Specification of Web Sites with Strudel », VLDB Journal, Vol 9, No 1, 2000

[J2EE] http://java.sun.com/products/j2ee

[JSP] http://java.sun.com/products/jsp

[PHP] http://www.php.net

[PHPMYADMIN] http://sourceforge.net/projects/phpmyadmin

[WEBDB] http://otn.oracle.com/products/webdb/content.html

[fil RSS du site]
Dernière mise à jour : 03/09/2009