Vous êtes sur la page 1sur 26

SIMES - 961620 Systme dInformation Multimdia Pour lEnvironnement Subsaharien

Proddures de stockage et dorganisation des donnes dans une base de donnes


Deliverable number : D6.1 Nature:P Contractual Date of Delivery: 14 November 1998 Task WP1.2 : Acquisition, stockage et pr-traitement des donnes Nom du rdacteur Mouhamed Tidiane SECK
Alex CORENTHIN Institut ESP-DAKAR Adress Dakar seckm@ucad.snl Corenthin@ucad.sn Abstract: Le prsent rapport tablit les diffrents mcanismes qui seront mis en place afin : Dtablir des liens de transfert ou dextraction avec les bases de donnes existantes contenant les donnes ncessaires aux indicateurs pertinents du projet, telles que dcrites dans le dlivrable Description fonctionnelle des donnes stockes , tout en tenant compte de lhtrognit des bases de donnes et de lvolutivit du systme. Dorganiser et de stocker ces donnes dans une base de donnes centralise dont la copie matresse sera installe l E.S.P. de Dakar. Cette base de donnes, couple un serveur WEB permettra daccder aux informations travers Internet. Lobjectif du projet est de crer une interface WEB adapte au type dutilisateur et la nature des requtes soumises au systme. Pour y parvenir, nous nous appuierons sur les travaux effectus par les autres quipes spcialises notamment en matire de traitement dimages, systmes multi-agents etc De spcifier et de tester sur un cas concret un prototype permettant dillustrer quelques fonctionnalits de base du futur systme. The present report establishes the various schemes which will be implemented : To define transfer and extraction links with the existing Data Bases containing the data related to the relevant indicators, such as the ones described in the deliverable Functional description of the stored data , by taking into account the heterogeneousness of Data Bases and the evolutivity of the system. To organize and store these data in a centralized Data Base whose master copy will be installed at ESP dakar. This Data Base, linked to a Web server will allow to access to the data via Internet. The goal of the project is to create a Web interface which suits to potential expected users and requests. To achieve this goal, we will rely on work done by other teams in advanced data processing (Image processing, multi-agent systems). To specify and to test on an actual case a prototype including some key functionalities of the forthcoming system.

SIMES

Deliverable 6.1

SIMES

Deliverable 6.1

PROCEDURES DE STOCKAGE ET DORGANISATION DES DONNEES DANS UNE BASE DE DONNEES

Contenu
AVANT PROPOS...................................................................................................................................................5 1 - IMPORTATION DES DONNES EXISTANTES ........................................................................................5 2- STOCKAGE ET ORGANISATION DES DONNES ...................................................................................5 3 - SCHMA DE PRINCIPE DU FUTUR SYSTME.......................................................................................7 4- CRITRES DE CHOIX DE LA PLATE-FORME LOGICIELLE. ...........................................................10 5 - TYPES D'APPLICATION .............................................................................................................................15 6 - DIFFRENTES ARCHITECTURES DE COUPLAGE BASES DE DONNES / WEB........................16 8 - ETUDE DE CAS..............................................................................................................................................19 SOURCE DE LA PAGE HTML................................................................................................................................20 SOURCE DU FICHIER DE CONNEXION BASE DE DONNES (IDC ASSOCI LA PAGE RSULTAT)...........................23 9 - CONCLUSION................................................................................................................................................25

SIMES

Deliverable 6.1

SIMES

Deliverable 6.1

Avant propos
Pour lessentiel, le projet SIMES puise ses donnes dans des sources diverses cres et maintenues par des structures autonomes. Ces donnes sont stockes dans des bases de donnes ou sont disponibles sous format numrique.

1 - Importation des donnes existantes


Le systme doit prendre en compte l'htrognit des sources de donnes, non seulement par rapport au type de donne (fichiers texte, images cartographiques, etc.) mais aussi, par rapport au type de SGBD (Access, Oracle, Foxpro etc.). Il sagit, dans un premier temps, de choisir un SGBD pivot capable de stocker tous les types de donnes identifis (alphanumriques, images, animations etc). Ensuite on spcifie les procdures dextraction dinformations en fonction des bases de donnes sources. Pour cela : Les donnes de base doivent tre disponibles au niveau du site central de lESPDakar. La situation optimale correspondrait celle o toutes les bases de donnes seraient accessibles par Internet. Dans ces conditions, on pourrait envisager de vhiculer certaines requtes vers des bases de donnes distantes ou d'effectuer des traitements sur des sites distants particulirement adapts. Cette solution est loin de pouvoir tre ralisable court terme car ltat actuel de la connectivit IP des sites participants au projet SIMES ne permet pas datteindre les performances requises pour une telle approche. Toutefois, il est nanmoins ncessaire davoir en ligne le plus grand nombre de bases de donnes. Les transferts de donnes de la source vers le site centralis seront raliss en utilisant des techniques standard : 1. FTP pour les donnes distantes. 2. Techniques dimportation pour les bases de donnes sources offrant une interface avec le SGBD pivot. 3. Lien ODBC pour les bases de donnes sources disposant du driver associ avec le SGBD pivot. Il faut noter lexistence de drivers ODBC entre tous les SGBD standard du march. En ce qui concerne les donnes qui ne sont pas en ligne, le transfert des informations vers la base de donnes centralise lESP-Dakar se fera laide de disquettes, bandes, ou CDROM.

2- Stockage et organisation des donnes


Dans cette prsentation nous partons de lhypothse que certaines donnes disponibles sur des sites en ligne ne sont pas dupliques sur le site matre du projet.

SIMES

Deliverable 6.1

Lensemble des donnes disponibles devra tre organis de sorte optimiser le temps de rponse aux requtes de lutilisateur. Seront alors stocks sur le site centralis : Les modles de requtes prdfinis fournissant les rsultats les plus reprsentatifs des donnes et de leurs traitements. Cela servirait par ailleurs de guide sur les potentialits du systme aux utilisateurs dsirant formuler des requtes spcifiques. Les donnes de grande taille, comme les images frquemment demandes par des requtes diffrentes, seraient dupliques sur le site central. Enfin, toutes les donnes dont les sources ne sont pas en ligne sur Internet. Pour assurer la validit des rsultats, il sera ncessaire de dfinir une frquence de rafrachissement des informations. En effet, toutes les donnes pertinentes du projet ne sont pas totalement centralises, cela ncessiterait des grands moyens matriels (grande capacit de stockage) et des procdures lourdes pour assurer les mises jour partir des donnes relles produites par les sites distants.

SIMES

Deliverable 6.1

3 - Schma de principe du futur systme


Laccs aux informations du projet SIMES se fera travers le rseau Internet via linterface WEB. Le modle global de cette interface distingue trois niveaux : Le client WEB support par un navigateur standard (Internet explorer ou Netscape etc..). Le serveur WEB grant les pages HTML La base de donnes contenant les donnes du systme dinformation.

Entre ces trois composantes on fait intervenir diffrentes passerelles et protocoles qui seront tudis dans la suite du document. De faon classique cest le protocole HTTP qui sert de passerelle entre le client et le serveur WEB, ce dernier joue deux rles essentiels savoir, dune part, stocker les pages HTML en vue de les fournir la demande aux clients WEB, et, dautre part, appeler des applications via linterface CGI pour gnrer des pages HTML dynamiques vers les clients WEB (cas des formulaires). Cest en particulier travers linterface CGI que le serveur WEB peut encapsuler des requtes (SQL) vers les bases de donnes et gnrer comme prcdemment des pages HTML dynamiques contenant les rsultats souhaits. Par exemple, pour une application CGI qui gre le traitement des requtes via ODBC on distingue les tapes suivantes : Choix de la source de la donne Connexion la source Envoi de la requte sous forme dinstructions SQL Rception et traitement des rsultats ventuels de la requte et/ou des erreurs obtenues. Validation ou annulation de la transaction Dconnexion de la base de donnes.

La figure 1 ci-dessous donne un aperu global du systme propos. On notera la prsence de deux canaux ODBC, reliant lapplication CGI avec la base de donnes centralise dune part et lensemble des bases de donnes sectorielles dautre part.

SIMES

Deliverable 6.1

Client WEB BROWSER

Requtes HTTP

Rsultats (pages HTML)

Internet

HTTP Base de donnes distante Rpertoires HTML Application CGI

Base de donnes distante ODBC

Base de donnes centralise

Base de donnes distante

SYSTEME CENTRAL ESP-DAKAR

Lgende
: Mise jour de la base de donnes centralise : Envoi requtes SQL et rception rsultats. : Transferts CGI (URL, paramtres, pages) : Transferts pages HTML : Pages HTML virtuelles : Pages HTML statiques :Pages HTML interactives (Formulaires)

Fig.1 : Systme futur : Organisation des donnes rparties.

SIMES

Deliverable 6.1

Le systme prsent considre que la mise jour de la base de donnes centralise se fera via une liaison ODBC. Bien entendu, dautres possibilits existent dont en particulier limportation de donnes pralablement transfres sur le site central via FTP. Les utilisateurs envoient leurs requtes au serveur web en utilisant leur navigateur prfr, sur lequel seront galement affichs les rsultats de ces requtes. Suivant la nature de la requte, le protocole HTTP pourra fournir lutilisateur les rsultats suivants : Une page statique Un formulaire, dont les zones de saisie seront renseignes par lutilisateur, informations qui seront transmises comme paramtres lapplication CGI. Une page virtuelle gnre par lapplication CGI. Le serveur Web de lESP-Dakar aura donc grer trois types de pages HTML : Les pages statiques, par exemple la page daccueil du site SIMES. Leur mise jour ne peut se faire que par modification du fichier HTML correspondant. Les pages interactives, ou formulaires, qui permettent la saisie (dans des zones ddies cet effet) des paramtres de la requte de lutilisateur. Ces paramtres seront par la suite traits par lapplication CGI et les rsultats seront cherchs dans les bases de donnes via ODBC. Les pages virtuelles, qui sont cres par lapplication CGI pour rpondre la requte de lutilisateur. Il sagit dun fichier HTML qui servira de modle pour laffichage des rsultats de la requte. Cette application CGI est appele par un utilisateur travers une requte. Evidemment, le serveur Web peut inclure des pages HTML hybrides, qui partagent les caractristiques des pages dcrites plus haut. Par exemple, partir de la page virtuelle reprsentant le rsultat de la demande dune carte hydrographique de lAfrique, on pourrait saisir comme paramtres les coordonnes de la rgion sur laquelle on veut un zoom, la page servant ainsi de formulaire. Ces paramtres pourront par la suite tre utiliss par un script CGI afin deffectuer le zoom de la zone demande, puis dafficher le rsultat partir dune page virtuelle. Il serait aussi intressant de produire des rsultats de requtes en fonction du profil de lutilisateur. Les avantages de ces pages dynamiques ne sont pas ngligeables : outre une meilleure convivialit, les ressources du serveur sont optimises car certaines oprations comme des mises en forme ou des tris sont alors totalement excutes sur lordinateur du client. Le serveur web se trouverait ainsi libr de certaines tches encombrantes et/ou rptitives. Sur tous ces aspects concernant les pages HTML, il reste rsoudre le problme du maintien de leur cohrence. Les investigations que nous avons dj effectues sur le plan bibliographique nous conduisent penser que ce thme peut constituer un des thmes de recherche que nous pouvons prendre en charge.

SIMES

Deliverable 6.1

4- Critres de choix de la plate-forme logicielle


Chaque partenaire du projet SIMES a bien videmment acquis une exprience sur une plate-forme particulire. Il serait ainsi illusoire de mettre tout le monde sous le mme moule. Nanmoins, il nous a paru utile de donner quelques indications sur les tendances au niveau international.

Fig 2 : Croissance des serveurs Web dAot 1995 Septembre 1998 (en nombre de serveurs) Source :Netcraft WebServer Survey http://www.netcraft.co.uk/survey/ Nous nous sommes rfrs ltude du Netcraft WebServer Survey qui prend en considration plusieurs critres comme la rapidit et la scurit du serveur. Dans cet extrait nous avons retenu les serveurs parmi les plus connus du march. Lenqute porte sur plus de trois millions de serveurs. Lanalyse de cette courbe montre que le serveur Apache est le plus utilis, suivi de celui de Microsoft IIS fourni avec Windows NT et en troisime position la suite Netscape. Tous les autres, dont Oracle, sont regroups dans Other . Un premier choix aurait donc pench vers lun de ces trois serveurs. Mais nous devons prendre en compte lutilisation massive des bases de donnes paralllement lutilisation des pages Web, seul domaine pris en compte dans lenqute cite plus haut. Dans ces conditions, la solution Oracle intgrant la fois un serveur WEB et un SGBD performant ou des solutions comme O2 qui fournissent des solutions intgres bases sur lapproche objet, ne sont pas carter. Le tableau ci-dessous tabli un comparatif de quatre serveurs WEB candidats. Les indications portent essentiellement sur les caractristiques gnrales, les prix, les systmes dexploitations supports, la scurit, louverture aux interfaces standard.

SIMES

Deliverable 6.1

10

Nom du Serveur

ORACLE Oracle Web Application Server 3.01 Oracle Corp.

APACHE Apache

MICROSOFT NETSCAPE Internet Information Netscape Server Server 4.0 Microsoft Corp. 3.5.1 Netscape Communications Corp Pages ASP, Java run-time (JDK compatible 1.1). Microsoft APIs et Convertit PDF en driver ODBC HTML. Compatible LDAP, Oracle et Informix Gratuit avec NT 4.0 $1,295 option pack Windows NT Digital UNIX AIX HPUX Windows NT IRIX

Version Vendeur

1.3 The Apache Group

Meilleures caractristiques

Environnement pour le dveloppement dapplications

Rapide, support public pour le dveloppement

Prix Systme dexploitation

appeler Oracle HPUX Windows NT Windows 95 Solaris

Gratuit NetBSD Digital UNIX BSDI AIX OS/2 SCO HPUX Windows NT Linux FreeBSD IRIX Solaris - Peut crire des connexions multiples - Les fichiers de connexion peuvent tre automatiquement recycls ou archivs. - Le serveur peut gnrer des commentaires Les scripts CGI peuvent crer leur propre connexion Peut servir des rpertoires racine diffrents pour des adresses IP diffrentes CERN/NCSA - Format de connexion commun - Sexcute comme un service et/ou application Windows NT - Peut sexcuter partir de inetd (pour les systmes Unix
Deliverable 6.1

Dmarrage et connexion

- Peut crire des connexions multiples - Les fichiers de connexion peuvent tre automatiquement recycls ou archivs - Le serveur peut gnrer des commentaires - Connexions de mesure de performances - Les scripts CGI peuvent crer leur propre connexion CERN/NCSA - Format de connexion commun - Sexcute comme un service et/ou application Windows NT - Peut sexcuter partir de inetd (pour les systmes Unix et OS/2) - Peut couter

- Peut crire des connexions multiples - Les fichiers de connexion peuvent tre automatiquement recycls ou archivs. - Le serveur peut gnrer des commentaires. Les scripts CGI peuvent crer leur propre connexion Peut servir des rpertoires racine diffrents pour des adresses IP diffrentes CERN/NCSA Format de connexion commun Sexcute comme un service et/ou application Windows NT Peut couter des adresses et ports multiples

- Peut crire des connexions multiples Les fichiers de connexion peuvent tre automatiquement recycls ou archivs - Le serveur peut gnrer des commentaires - Connexions de mesure de performance Les scripts CGI peuvent crer leur propre connexion Peut servir des rpertoires racine diffrents pour des adresses IP diffrentes CERN/NCSA Format de connexion commun Sexcute comme un service et/ou application Windows NT Peut sexcuter partir de inetd (pour les systmes Unix et
11

SIMES

des adresses et ports multiples - Les connexions peuvent tre personnalises - Peut chercher un utilisateur dans une connexion - Connexion avec syslog (Unix) ou Event Log (Windows NT) - Peut gnrer des connexions pour des browsers

et OS/2) - Peut couter des adresses et ports multiples - Les connexions peuvent tre personnalises - Connexion avec syslog (Unix) ou Event Log (Windows NT) - Peut gnrer des connexions pour des browsers

- Les connexions peuvent tre personnalises. - Connexion avec syslog (Unix) ou Event Log (Windows NT) - Peut gnrer des connexions pour des browsers

OS/2) - Peut couter des adresses et ports multiples - Les connexions peuvent tre personnalises - Peut chercher un utilisateur dans une connexion - Connexion avec syslog (Unix) ou Event Log (Windows NT) - Peut gnrer des connexions pour des browsers Serveur certifi intgr Interdit laccs par le nom du domaine Interdit laccs par adresse IP Interdit laccs par utilisateur et groupe Compatible S-HTTP Peut changer la liste de contrle daccs de lutilisateur sans redmarrer le serveur Permissions hirarchiques pour les documents bass sur le rpertoire Groupes utilisateurs configurables (pas seulement une liste dutilisateur unique) Peut cacher une partie dun document suivant des rgles de scurit Compatible SSL v.2, SSL v. 3, Set Peut ncessiter mot de passe Les rgles de scurit peuvent se baser dURLs

Scurit

- Serveur certifi intgr - Interdit laccs par le nom du domaine - Excution CGI par UID - Interdit laccs par adresse IP Interdit laccs par utilisateur et groupe - Compatible SHTTP - Peut changer la liste de contrle daccs de lutilisateur sans redmarrer le serveur - Permissions hirarchiques pour les documents bass sur le rpertoire - Interdit laccs par rpertoire et fichier - Groupes utilisateurs configurables (pas seulement une liste dutilisateur unique) Compatible PCT, SSL v. 2, SSL v. 3, Set - Peut ncessiter mot de passe Les rgles de scurit peuvent se baser dURLs

Interdit laccs par le nom du domaine Excution CGI par UID Interdit laccs par adresse IP Interdit laccs par utilisateur et groupe Peut changer la liste de contrle daccs de lutilisateur sans redmarrer le serveur Permissions hirarchiques pour les documents bass sur le rpertoire Interdit laccs par rpertoire et fichier Groupes utilisateurs configurables (pas seulement une liste dutilisateur unique) Peut cacher une partie dun document suivant des rgles de scurit Compatible SSL v. 2, SSL v. 3 Peut ncessiter mot de passe Les rgles de scurit peuvent se baser dURLs

Serveur certifi intgr Interdit laccs par le nom du domaine Excution CGI par UID Interdit laccs par adresse IP Interdit laccs par utilisateur et groupe Compatible SHTTP Peut changer la liste de contrle daccs de lutilisateur sans redmarrer le serveur Permissions hirarchiques pour les documents bass sur le rpertoire Interdit laccs par rpertoire et fichier Groupes utilisateurs configurables (pas seulement une liste dutilisateur unique) Peut cacher une partie dun document suivant des rgles de scurit Compatible SSL v.2, SSL v. 3, Set Peut ncessiter mot de passe Les rgles de scurit peuvent se baser dURLs

SIMES

Deliverable 6.1

12

Autres caractristiques

Agit aussi comme serveur proxy HTTP Outils interactifs inclus Accs direct (sansCGI) au SGBD Moteur de recherche Maintenance distance

le code source complet du serveur inclus Agit aussi comme serveur proxy HTTP Outils interactifs inclus Accs direct (sansCGI) au SGBD Maintenance distance Moteur de recherche

Sert aussi dautres protocoles TCP Outils interactifs inclus Accs direct (sansCGI) au SGBD Maintenance distance Moteur de recherche

Outils interactifs inclus Accs direct (sansCGI) au SGBD Maintenance distance Moteur de recherche

Tab 1 : Comparaison dtaille entre les serveurs Web Oracle, IIS, Apache et Netscape.Source : WebServer Directory http://Webserver.internet.com Il apparat, en conclusion de cette comparaison que ces quatre serveurs offrent peu de choses prs les mmes fonctionnalits pour la gestion de pages HTML, la scurit et la conformit par rapport aux standards.

Nous ajoutons quelques commentaires sur la manire dont ces diffrents serveurs grent des accs aux bases de donnes, locales comme distantes. On retrouve ici la dichotomie entre le monde Unix, majoritairement occup par les serveurs Appache et Netscape. Les accs bases de donnes sont raliss par des applications CGI gnralement crites en PERL et dans une moindre mesure en Java, C ou C++. En revanche, dans le monde Microsoft on trouve majoritairement le serveur IIS coupl des bases de donnes comme SQL server, Oracle ou Access pour les petites applications. La connexion la base de donnes se fait par l intermdiaire dODBC et les applications CGI sont crites en Vbscript, Javascript ou par des techniques propritaires comme IDC (Internet database connector) ou ASP (active server pages). La mthode IDC utilise des fichiers dextension .idc qui contiennent des instructions SQL. LURL envoy par le navigateur nest plus le nom dune page HTML mais le nom dun fichier .idc avec les paramtres ncessaires. Une fois ces instructions SQL excutes au niveau de la base de donnes, le rsultat est envoy au navigateur en utilisant comme modle un fichier dextension .htx. Plus puissante, la mthode ASP consiste incorporer des scripts (en VBScript , JavaScript ou PERL) dans les pages HTML, ce qui donne plus de facilits au programmeur. Toutefois, laccs aux bases de donnes est ici plus complexe : Les pages ASP se connectent aux bases de donnes via des composants ActiveX.

SIMES

Deliverable 6.1

13

Oracle Web Application Server, quant lui, se connecte aux bases de donnes en suivant le schma de la figure 3 ci-dessous :
Client Web BROWSER

requtes

Pages HTML

Web Listener

Pages statiques & formulaires Pages virtuelles

Rpertoires HTML

requtes

Dispatcher

----ODBC JWeb PL/SQL

donnes Base centralise Oracle

donnes

Toolkit de dveloppement Oracle WebServer

Systme Central (ESP-Dakar)


Base distante

Fig.3 : Organisation des donnes reparties sous Oracle Web Application Server

SIMES

Deliverable 6.1

14

Le Web Listener est un dmon HTTP, qui reoit les requtes de lutilisateur sous forme dadresses URL. Ce listener peut tre un serveur web quelconque Apache, IIS ou le listener fourni par dfaut avec Oracle Web Application Server. Le web Listener cherche ensuite les pages HTML et formulaires demands par la requte de lutilisateur. Quand une requte ncessite des accs aux bases de donnes, le Web Listener ladresse au Web Request Broker (WRB). Suivant la nature de la requte reue, le WRB se chargera daccder la base de donnes puis de gnrer une page virtuelle contenant les rsultats. Pour cela, le WRB utilise des modules de routines livres avec le systme. Le module PL/SQL, qui excute des procdures PL/SQL dans des bases de donnes. Le module Jweb, qui permet dexcuter des procdures Java ou se connecter des bases de donnes, en utilisant JDBC. Le module ODBC, permettent dexcuter des requtes SQL vers des bases de donnes offrant cette connexion. Le module C, pour excuter des modules C. Le module LiveHTML, permettant dinterprter et gnrer des pages dynamiques contenant des scripts Perl . Le module Perl, pour excuter des modules Perl.

5 - Types d'applications
Comme nous l'avions soulign plus haut, les applications web dynamiques fournissent une information actualise. Dans ce cas, il existe une interaction entre le navigateur et la base de donnes. Mais lexamen de la nature de cette interaction peut rvler une certaine complexit qui requiert de faire une analyse pralable sur la nature de l'applicatif (transactionnelle ou interactive). Cas d'une application transactionnelle Lorsqu'il s'agit d'accder une base de donnes en temps rel, on se heurte au concept de transaction, le web devient vritablement dynamique, et les applications fonctionnent comme des applications Client-Serveur. Une telle architecture ncessite d'interfacer le serveur web avec un moniteur transactionnel charg de dialoguer avec le serveur de bases de donnes. Pour ce type d'application, variante du ClientServeur de prsentation, le dveloppement s'effectue depuis un environnement utilisant un langage de quatrime gnration (L4G). Cest le cas dOracle qui permet de gnrer des applications transactionnelles dont les interfaces clientes sont directement accessibles partir dun navigateur Web. Cas d'une application interactive Il s'agit d'applications pour lesquelles le temps de rponse nest pas un facteur critique. Pour cela, il existe des automates d'interfaage Web/SGBD. Ces outils permettent au concepteur de disposer de composants pralablement dfinis dans un environnement visuel. Microsoft propose notamment lIDC que nous dtaillerons plus
SIMES Deliverable 6.1 15

loin. Les autres produits se composent d'au moins deux modules : l'un pour laborer les pages web et les formulaires, l'autre est le programme CGI appel au niveau du serveur qui assume la connexion avec le serveur de bases de donnes l'aide de pilotes natifs ou ODBC.

6 - Diffrentes architectures de couplage bases de donnes / Web


Parmi les diffrents modles d'architecture Web coupls aux bases de donnes, on distingue les modles suivants : CGI, API, JAVA, ASP et IDC. L'accs CGI (Common Gateway Interface) Cet accs est le plus ancien, il consiste utiliser un appel CGI pour excuter des programmes contenant des requtes SQL vers une base de donnes. Cette mthode consomme beaucoup de ressources systmes car chaque requte provenant dun client web provoque au niveau du serveur HTTP un appel un programme externe. L'accs API (Application Programming Interface) Plus moderne que le CGI, il consiste utiliser une API existante entre le serveur HTTP et la base de donnes. Il existe deux API auxquels se conforment les principales bases de donnes : NSAPI de Netscape et ISAPI de Microsoft. Ces API permettent de s'affranchir de codages de programmes en incluant dans les pages HTML les codes d'accs aux bases de donnes. Cet accs est trs la mode mais constitue un handicap au portage des applications, aussi bien par rapport aux serveurs HTTP quaux systmes de gestion de bases de donnes. L'accs distribu : JAVA Dernire ne des technologies, celle-ci vise fournir au client le logiciel lui permettant de faire lui mme la connexion avec la base de donnes. Ceci est un des enjeux de JAVA qui notamment avec son extension JDBC permet de fournir une applet charge de se connecter au serveur par une connexion ODBC. JAVA est un langage de dveloppement bien adapt au Web pour deux raisons : d'abord l'excution d'une applet s'effectue sur une machine virtuelle Java, donc indpendamment de la plate-forme; ensuite, les applets sont compactes, donc transitent facilement sur le rseau. Son avantage par rapport ODBC est qu'il ne ncessite pas de pilotes sur le poste client. Le tlchargement dynamique de lapplet permet d'interroger plus aisment des bases de donnes htrognes, quelle que soit leur localisation. Toutefois, le poste client doit assumer une partie des traitements tandis que le propre du web est de concentrer le traitement sur le serveur. Toutes ces mthodes, bien que possdant un certain nombre de qualits et d'avantages, prsentent aussi de nombreuses contraintes, notamment au niveau de la compatibilit du navigateur client ; mais encore et surtout un manque de facilit et de flexibilit quant leur mise en uvre. C'est pourquoi nous nous sommes tourns

SIMES

Deliverable 6.1

16

vers les accs ASP (Active Server Pages) et IDC (Internet Database Connector) pour raliser nos premiers tests. L'accs ASP Les ASP (en franais Pages de Serveur Actives) sont des scripts (applications dynamiques performantes et totalement interactives) excuts depuis un serveur web intgrant la technologie ASP. Ici, le problme de compatibilit du Browser Client en fonction du langage utilis pour script ASP ne se pose plus. Il convient nanmoins de prciser qu'un script ASP est du code cheval entre HTML et les langages de programmation tels que JavaScript, VBSript et JAVA. Le code HTML tant gnralement utilis pour la mise en forme et les liens hypertextes, tandis que les langages de programmation sont utiliss pour donner aux ordinateurs une srie d'instructions complexes. L'intrt que nous portons l'ASP rside dans sa simplicit et sa flexibilit d'intgration de langages tels que VBScript, Jscript, REXX, PERL, JAVA et les composants ActiveX, dans un mme document. Les rsultats satisfaisants dj obtenus avec la technologie IDC/HTX nous ont pousss effectuer nos premiers dveloppements. L'accs IDC/HTX IDC est un lment d'Internet Information Server de Microsoft. Il correspond un fichier DLL (httpodbc.dll) qui s'appuie, comme son nom l'indique, sur le standard ODBC (Open DataBase Connectivity). L'intrt de cette approche est que cette passerelle fonctionne avec n'importe quel SGBD possdant un driver ODBC, ce qui en fait une solution gnrique adaptable diffrents contextes d'application (bases SQL Server, Oracle, ACCESS...). Les diffrents composants de cette solution s'interfacent de la faon suivante : deux types de fichiers sont utiliss par httpodbc.dll pour transmettre une requte la base de donnes et permettre l'affichage des rsultats. Les fichiers Internet Database Connector (.idc) permettent l'accs la base de donnes et l'excution des requtes, et les fichiers modles d'extension HTML (.htx) assurent la prsentation des rsultats sous forme de pages HTML. Le fichier IDC indique la source ODBC laquelle on veut accder, les informations ncessaires l'identification d'un utilisateur, la requte soumettre au SGBD, et le fichier qui contient la prsentation HTML respecter pour visualiser le rsultat de la requte. Exemple de Fichier IDC : Datasource: Soucre Username : nom PassWord : mot_de_passe Template: fichier.htx SQLStatement: + SELECT nom , prenom FROM utilisateur WHERE pays = 'Sngal' Ceci est un exemple simple de consultation. Le mme principe peut tre appliqu pour des consultations plus complexes ou la mise jour d'informations via les procdures stockes de SQL Server.

SIMES

Deliverable 6.1

17

Dans ce cas, on peut crer un formulaire HTML qui rfrence un fichier IDC auquel les valeurs saisies sont passes en paramtre. La commande SQL du fichier IDC passera son tour les paramtres la procdure stocke. Les procdures stockes permettent ainsi de dvelopper des applications plus complexes. Elles assurent une vrification des valeurs saisies, l'insertion/la mise jour/la suppression de lignes sur plusieurs tables en une seule transaction, et elles amliorent les scurits d'accs en limitant par exemple les permissions accordes au compte utilisateur Internet. Un fichier HTX contient la prsentation HTML respecter pour visualiser le rsultat d'une requte. C'est donc une page HTML contenant des balises standard, compltes de zones spcifiques qui seront remplaces par les informations issues de la requte (les zones spcifiques sont matrialises par <% ... %>). Exemple de Fichier HTX : <HTML> <B><%nom%></B> <%prenom%> </HTML> Les mots-clefs entre les balises <% et %> sont interprts et remplacs par les informations trouves dans la base sous forme de listes. En reprenant le schma d'interaction des composants d'Internet Database Connector, nous positionnons les fichiers HTX et IDC de la faon suivante : cette offre de connexion entre le serveur Web et un SGBD est un exemple d'extension ISAPI d'Internet Information Server, extensions propritaires qui remplacent le standard CGI.

SIMES

Deliverable 6.1

18

8 - Etude de cas
Le Centre de Suivi Ecologique ( CSE ), partenaire privilgi du projet SIMES sur lOpration pilote Valle du fleuve Sngal nous a sollicit pour laider dvelopper un site WEB coupl une base de donnes Access. Cest pourquoi l'ensemble des applications ont t ralises et tests sur un projet du CSE o il a t question de la "Mise en place d'un systme d'interrogation distance d'une base de Mta Donnes pour le Systme d'Information sur la Dsertification".

Figure 4 : le modle relationnel

SIMES

Deliverable 6.1

19

Figure 5 : Exemple de requte envoye vers la base de donnes via un formulaire sur le web

Source de la page HTML


<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <meta name="GENERATOR" content="Microsoft FrontPage 2.0"> <title>Formulaire de recherche par mots cls et zone</title> </head> <body bgcolor="#F0DC9F"> <p align="center"><font color="#008000" size="7"><em><strong><u>Systme d'Informations sur la Dsertification </u></strong></em><em><strong>(SID)</strong></em></font></p> <p align="center"><img src="Turquoise_et_gris2.gif" width="872" height="7"></p> <p align="center"><font size="6"><em><strong><u>Formulaire de recherche dans la base de mtadonnes </u></strong></em></font></p>

SIMES

Deliverable 6.1

20

<p align="center"><font size="5"><strong><img src="lacet_fin93A1.gif" width="623" height="18"></strong></font></p> <form action="rechzone.idc" method="POST"> <blockquote> <blockquote> <div align="center"><center><table border="0" cellpadding="9" cellspacing="11"> <tr> <td><strong>Type : </strong><font size="5"><select name="type" multiple size="3"> <option value="1">Carte</option> <option value="2">Image</option> <option value="3">Texte</option> <option value="4">Tableau</option> <option value="5">Autres</option> </select></font></td> </tr> </table> </center></div><div align="center"><center><table border="0" cellpadding="2" cellspacing="5"> <tr> <td><strong>Mots cls : </strong><select name="zone" multiple size="8" tabindex="2"> <option>Dakar</option> <option>Saint-Louis</option> <option>Ferlo</option> <option>Dpartement Dagana</option> <option>Rgion Saint-Louis</option> <option>Dpartement Dagana</option> <option>Delta du fleuve Sngal</option> </select></td> <td valign="bottom"><input type="radio" name="choix" value="or"><strong>Ou</strong><input type="radio" checked name="choix" value="And"><strong>Et</strong></td> <td><select name="motcle1" multiple size="8" tabindex="2"> <option value="Ressource Naturelle">Ressources Naturelles</option> <option value="Amnagement du territoire">Amnagement du territoire</option> <option value="Sociologie Rurale">Sociologie Rurale</option> <option value="Acridiens">Acridiens</option> <option value="Acteur de l'conomie">Acteur de l'conomie</option> <option value="Activits prives">Activits prives</option> <option value="Agriculture">Agriculture</option> </select></td> </tr> </table> </center></div><p align="center"> </blockquote> <p align="center"><input type="submit" name="B1" value="Envoyer"> <input type="reset" name="B2" value="Effacer"></p> </form> </body> </html>

SIMES

Deliverable 6.1

21

Figure 6 : modle du fichier HTX rsultat

Code HTML associ la page Rsultat (figure 6)


<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <meta name="GENERATOR" content="Microsoft FrontPage 3.0"> <title>Rsultat de la requete</title> </head> <body bgcolor="#F0DC9F"> <p>&nbsp;</p> <p align="center"><font size="7"><em><strong><u>Rsultat de la requte</u></strong></em></font></p> <div align="center"><center> <table border="2"> <tr> <td align="center"><p align="center"><strong>Mot cl</strong></td> <td align="center"><strong>Disponible </strong></td> <td align="center"><strong>Acronyme</strong></td> <td align="center"><strong>Type</strong></td> <td align="center"><strong>Titre </strong></td> <td align="center"><strong>URL</strong></td> <td align="center"><font size="3"><strong>Nom de la zone</strong></font></td> </tr> <%begindetail%> <tr> <td align="center"><%mot_cl%> </td> <td align="center"><%Nom%> </td> <td align="center"><%Acronyme%> </td> <td align="center"><%CLType%> </td> <td align="center"><%Intitul%> </td>

SIMES

Deliverable 6.1

22

<td align="center"><a href="http://196.1.95.173/<%Chemin%>"><%Chemin%></a></td> <td><%nom_zone%> </td> </tr> <%enddetail%></table> </center></div> </body> </html>

Source du fichier de connexion base de donnes (IDC associ la page rsultat)


Datasource: Source Template: rechzone.htx SQLStatement: SELECT mots_cls.mot_cl, Organisme.Nom, Organisme.Acronyme, Donne.Chemin, Donne.Intitul, zone_geo.nom_zone, Donne.CLType +FROM (Organisme INNER JOIN (Donne LEFT JOIN zone_geo ON Donne.CodeD = zone_geo.[Code Donne]) ON (Organisme.Nom = Donne.CodeC) AND (Organisme.Nom = Donne.CodeP)) INNER JOIN mots_cls ON Donne.CodeD = mots_cls.[code donne] +WHERE (((mots_cls.mot_cl) In ('%motcle1%')) AND ((Donne.CLType) In (%type%))) %choix% ((zone_geo.nom_zone) In ('%zone%'));

Figure 7 : Rponse la requte envoye (Fichier HTX Rsultat)

A la slection de l'URL le document associ est visualis

SIMES

Deliverable 6.1

23

Figure 8 : IMAGES/carte1.gif

Source de la page de rsultat


<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <meta name="GENERATOR" content="Microsoft FrontPage 2.0"> <title>Rsultat de la requete</title> </head> <body bgcolor="#F0DC9F"> <p>&nbsp;</p> <p align="center"><font size="7"><em><strong><u>Rsultat de la requte</u></strong></em></font></p> <div align="center"><center> <table border="2"> <tr> <td align="center"><p align="center"><strong>Mot cl</strong></p> </td>
SIMES Deliverable 6.1 24

<td align="center"><strong>Disponible </strong></td> <td align="center"><strong>Acronyme</strong></td> <td align="center"><strong>Type</strong></td> <td align="center"><strong>Titre </strong></td> <td align="center"><strong>URL</strong></td> <td align="center"><font size="3"><strong>Nom de la zone</strong></font></td> </tr> <tr> <td align="center">bilharziose</td> <td align="center">Institut Franais de Recherche Scientifique pour le Dveloppement en Coopration</td> <td align="center">ORSTOM-FR</td> <td align="center">3</td> <td align="center">Reprsentation des maladies et recours thrapeutiques chez les peulh et la walo-walo de Richard Toll et des environs du Lac de Guiers: maladies sexuellement transmises, maladies associes l'eau</td> <td align="center"><a href="http://196.1.95.173/"></a></td> <td>Ferlo</td> </tr> </table> </center></div> </body> </html>

9 - Conclusion
Malgr la simplicit de la insuffisances telles que : solution IDC/HTX, nous avons relev de nombreuses

son incompatibilit avec UNIX puisque lie Windows NT; son manque douverture pour raliser des traitements spcifiques autres que les requtes SQL. Le manque de richesse fonctionnelle inhrent au modle HTX de visualisation des rsultats.

En plus de cela, lorsque la structure de la base de donnes devient complexe, la complexit des requtes saccrot et par consquent les contrles deviennent plus fins et moins facilement interprtables par le serveur. C'est pourquoi, nous avons dj entam la migration vers des outils de dveloppement plus puissants et multi plates-formes (ASP et JAVA). Les technologies voques dans ce rapport sont en pleine volution ; par consquent proposer un choix unique pleinement justifi parat actuellement prmatur. Cest la raison pour laquelle nous proposons de tester trois solutions qui semblent se dgager. Une solution entirement base sur LINUX avec lassociation du serveur WEB Appache de la base de donne Postgres et du langage Java.

SIMES

Deliverable 6.1

25

Cette solution offre le double avantage de la quasi gratuit de la plate-forme logicielle et de sa portabilit. En revanche les techniques sous-jacentes ne sont quau dbut de leur dveloppement au sein de lquipe de Dakar. Une solution entirement base sur Windows NT avec les technologies IDC et ASP. Cette solution est aujourdhui bien matrise par lquipe de Dakar et cest la raison pour laquelle ltude de cas que nous avons prsent ici repose sur la technique IDC. Il faut quand mme prciser labandon de la technique IDC et son remplacement par ASP. Une solution base sur loffre Oracle V8 et Oracle Web server. Lquipe de Dakar possde dj lintgralit du logiciel offert gracieusement par la socit Oracle dans le cadre dun appui aux activits pdagogiques et de recherche. Le dploiement de cette solution est galement en cours.

En tant qulment fdrateur de toutes ces solutions, Java apparat comme loutil de dveloppement qui permettrait terme de garantir la portabilit et donc de saffranchir de la contrainte de lunicit de la plate-forme matrielle et logicielle.

Bibliographie : [1] - Le Micro Bulletin CNRS N 74 mai/juin 1998. [2] - Visual Interdev, Joseph ONeil Orsborn/Mc Graw Hill. [3] - Programmation CGI, ShiShir Gundavaram , Editions O Reilly.

SIMES

Deliverable 6.1

26

Vous aimerez peut-être aussi