Module BD et sites WEB Cours 8 Bases de données et Web Anne Doucet Anne.Doucet@lip6.fr 1
Le Web Architecture Architectures Web Client/serveur 3-tiers Serveurs d applications Web et BD Couplage HTML-BD Scripts CGI Serveurs de pages 2
Le Web (ou World Wide Web) Système hypermédia distribué fonctionnant sur TCP/IP simple à utiliser Navigateurs graphiques, interactifs : Netscape, Explorer portable faible coût Standard HTTP, HTTPS, URL, HTML, XML Évolutions contrôlées par le W3C (MIT, Inria, U. de Keisho) accès aux applications Internet objets répartis : Java, ActiveX Permettent de télécharger du code 3
Architecture d un serveur Web requête administration Index répertoire Interface HTTP Contrôle d accès traducteur Accès document Document HTML Interface CGI réponse Programme externe 4
Fonctionnement du Web Architecture client-serveur à deux niveaux Le serveur met à disposition des documents HTML Le client accède aux documents HTML via un navigateur Entre les deux, un réseau supportant le protocole TCP/IP page HTML client navigateur TCP/IP serveur supportant HTTP documents HTML 5
Fonctionnement du Web Pour consulter un document (ex: http://serveur/page.html) 1. Le navigateur demande à son DNS (Domain Name Server) de lui renvoyer l adresse IP du serveur demandé dans l URL (Uniform Ressource Locator) 2. Le navigateur envoie une requête à l adresse IP pour demander la page.html précisée dans l URL. 3. le serveur envoie la page au client. 4. le navigateur interprète la page et l affiche. HTTP : protocole de transfert permettant de demander un fichier au serveur ainsi qu une description de types des données associées. IP : Internet Protocol 6
Evolution des architectures Besoins : Ergonomie Simplicité intégration PC IHM applications C/S 2 tiers Serveurs d entreprise Applications Transactions Bases de données Besoins : Fiabilité Passage à l échelle Performances Standards : Web, Java, XML, etc C/S 3 tiers Standards : SQL3, CORBA, etc. Serveur d applications App Internet : E-commerce, Internet, Extranet 7
Architecture client/serveur 3-tiers Applications existantes Serveur d application Interface utilisateur Serveur d application Applications et transactions Serveur de données 8
Avantages du 3-tiers Client universel Standard, multimédia Browser Web, client EJB, client COM, client CORBA Applets Portabilité Serveur d application Facilite la maintenance et le déploiement d applications Facilite le passage à l échelle (à n serveurs d applications) Facilite l accès à des serveurs de données hétérogènes Peut être généralisé à n tiers 9
Limites de HTML Difficile à maintenir (modifications manuelles des pages) Pas de personnalisation Impossible de créer une page dynamiquement à partir d une base de données 10
Serveur d application Simple = serveur Web Petites applications, pas de transactions Serveur d entreprise = serveur Web + Support des grandes applications, distribuées Standard CORBA, Open Group (XA) Support des transactions Support des composants Support de XML Outils de développement 11
Applications Intranet Portails d entreprises Commerce électronique E-business Publication en ligne 12
BD pour le Web Commerce électronique : présentation de catalogues Édition de rapports Intégrité des données transactions sur Internet (saisie, paiement, suivi de commande) couplage aux BD de l entreprise Génération de sites Web Cohérence Maintenance Uniformisation Gestion des métadonnées SQL + indexation Augmentation de la productivité du développeur 13
Web pour BD Répartition des données Intégration immédiate d Internet Exploitation directe des BD sur le Web Modélisation souple des données, adaptée à chaque utilisateur (pas de schéma) 14
Données du Web Données hétérogènes, fortement corrélées, évolutives Problèmes pour la gestion des données : Gestion des liens Gestion de l évolution (pas d indépendance logiquephysique) Performances (index?) Besoin des fonctionnalités des SGBD 15
Couplage BD et Web Deux domaines qui se sont développés indépendamment Nombreux points communs : Grands volumes de données Modélisation Stockage Indexation interrogation Multi-utilisateurs Performances Fiabilité 16
Apports des SGBD Gestion de gros volumes d information Bonnes performances d accès : index, stockage, gestion du disque Fiabilité des données : cohérence, sûreté de fonctionnement, sûreté d accès Partage et accès concurrents : transactions Productivité : indépendance physique-logique, réutilisation, outils Evolutivité : évolution du schéma Langage de requêtes et optimisation 17
Comment coupler? 1. Utilisation de la technologie BD pour les données du Web Transférer les données du Web dans les BD (ou utiliser les BD comme moyen de structuration du Web). importation des données : outils de traduction vers les modèles de données (ex. solutions des produits reposant sur Corba) outils de migration (ex. documents structurés SGML vers ODMG). nouveaux modèles de données (moins rigides) et langages : la notion de schéma tend à disparaître, langage d interrogation associé, optimisation. 18
Comment coupler? 2. Ouvrir les BD au Web Mettre les données des BD sur le Web (passerelles d accès aux BD) exportation de données (vers HTML) BD comme repository d un intranet 19
Couplage HTML-bases de données Serveur HTTP dynamique Basé sur CGI Serveur Web dédié aux BD Oracle WebDB, VersantWeb, etc. Serveur de pages dynamiques Langages de haut niveau permettant de définir des actions à faire exécuter sur le serveur ASP (MS Active Server Page) JSP (Java Server Page) PHP (Hypertext Preprocessor) 20
Accès base de données Fichiers Html statiques Navigateur (client http) HTML http Demande de page serveur http HTML cgi, nsapi,.. paramètres Programme passerelle données odbc,jdbc SQL SGBD Middleware WEB 21
Accès BD 1. Le client http lance une demande de page Web (URL statique ou dynamique) vers le serveur. URL dynamique : contient un appel au programme applicatif + paramètres. La connexion est fermée dès que le client obtient la réponse. 2. Le serveur http est en attente permanente. En cas de demande dynamique, il lance le programme applicatif avec les paramètres, en suivant un protocole : - CGI : Common Gateway Interface - NSAPI (Netscape), ISAPI (MS) 3. Le programme applicatif : - extrait les données nécessaires du SGBD - produit la page HTML incluant ces données 4. Le SGBD fait son travail de SGBD (reçoit des requêtes et renvoie les résultats) 22
Scripts serveur Programme ou script (fichier de commandes) capable de recevoir des paramètres depuis des clients, d'accéder à une ou plusieurs sources de données, de générer des résultats sous forme HTML ou XML. Langages de scripting ou de programmation Interprété ou compilé Perl, JavaScript, VB Script, Python C, C++, Java, VB, C#, L4G 23
CGI CGI : Common Gateway Interface Standard de programmation pour accéder aux données des formulaires HTML côté serveur Permet de faire communiquer les serveurs Web avec des applications externes Permet par ex. de se connecter à une BD et d exécuter des requêtes Select, avec des paramètres (spécifiés lors de l exécution) S exécute sur le serveur Peut être écrit en Perl, C, JavaScript, VB Script, Java, etc (tout langage compilé ou interprété) 24
CGI Protocole TCP-IP Envoi des entêtes HTTP requête Envoi des entêtes HTTP-réponses décode Client Serveur Web 25
Scripts CGI La passerelle invoque les scripts en passant les paramètres sous une forme codée L'envoi de paramètres à un script CGI se fait par l'intermédiaire d'un formulaire HTML. créé à l'aide de la balise <FORM> contenant des boutons, des champs, des listes et/ou des cases à cocher repérés par les noms de paramètres, et un bouton de soumission du formulaire 26
Exemple <HTML> <HEAD> <TITLE> Exemple de formulaire</title> </HEAD> <BODY> <H1>Exemple de formulaire</h1> <FORM METHOD=POST ACTION="/cgi-bin/invite.exe"> Nom: <INPUT TYPE=TEXT SIZE=30 NAME="nom"><BR/> Adresse e-mail: <INPUT TYPE=TEXT SIZE=20 NAME="email"><BR/> <P>Commentaires:<BR> <TEXTAREA COLS=60 ROWS=15 NAME="comment"></TEXTAREA> <INPUT TYPE=SUBMIT VALUE="OK"> </FORM>. 27
Bilan CGI Avantages utilisable avec n'importe quel navigateur et serveur Web simple - intégré avec HTML serveurs dans tous les langages Inconvénients supporte mal le multi-utilisateur pas de gestion de contexte (session) Extensions : version«fast CGI» Problème : ne passe pas à l échelle 28
Serveur de pages dynamique Page HTML avec scripts pour accéder à la base de données Variables et paramètres avec des tags spéciaux Templates pour la présentation des résultats en HTML <HTML> <BODY><H1>result of your selection</h1> <%select Q1 = select A1,A2 from R where %> <TABLE> <%iterate Q1 %> <TR><TD> A1 </TD><TD> A2 </TD></TR> <TR><TD> A1 </TD><TD> A2 </TD></TR> <%end-iterate%> </TABLE> </BODY> </HTML> 29
Exécution de page serveur dynamique HTTP URL+input paramètres HTML template browser HTML HTTP server HTML Plus efficace que le serveur HTTP dynamique Problème : les templates ne peuvent transformer les résultats de requêtes. Template Interpreter Ex: Php SQL BD 30
ASP Environnement de programmation côté serveur permettant de représenter sous forme d'objets les interactions entre le navigateur du client, le serveur web, ainsi que les connexions à des bases de données via SQL (ADO) Développement d'applications Web dynamiques Intégration de scripts serveur au sein d'une page HTML à l'aide de balises spéciales Combinent HTML, VB Scripts et ActiveX Efficace avec les ActiveX Data Objects (ADO) Interface DCOM pour l accès BD via ODBC ou OLE-DB Outils de développement intégrés (ex MS Visual interdev) 31
Exemple de ASP <%@ LANGUAGE="VBSCRIPT" %> <HTML> <HEAD> <TITLE>Exemple de script ASP</TITLE> </HEAD> <BODY> <% FOR i = 1 to 10 %> Bienvenue au cours BD et sites Web <% Next %> </BODY> </HTML> 32
Accès aux BD Intégration indirecte des requêtes nécessite un script dialogue avec les formes, boutons, tables,... émission des requêtes récupération des résultats Accès par objets VBScript Accès à la base via des ADO Création d'objets données 33
JSP Combinent HTML, Java et Java Beans Accès aux composants EJB (serveurs) Interface JDBC Standard, proposé par tous les serveurs d applications J2EE 34
Exemple de JSP <HTML> <HEAD> <TITLE> Exemple de JSP </TITLE> </HEAD> <BODY> <!-- Fixer les parametres de la page --> <%@ page language = "java" %> <!-- Declarer une variable caracteres --> <% char c = 0; %> <!-- Scriplet - Code Java --> <% for (int i = 0; i < 26; i++) { c = (char) (0x41 + i) ; %> <!-- Afficher c --> <% = c %> <% } %> </BODY> </HTML 35
Bilan pages actives Mixage HTML + scripts serveur Compilés en code intermédiaire ou interprétés Accès aux BD intégrés Évolution vers XML Séparation fond et forme Complément à XSL 36
Limitations du couplage HTML-BD Solutions propriétaires Excepté JSP Pas de protocole pour publier les données SQL n est pas conçu pour le Web Pas de format d échange de données standard : HTML est un format de présentation Mélange présentation et contenu Pas de structure, pas de sémantique, pas de contrainte d intégrité Perd la structure (schéma) provenant de la BD 37
La règle d or Le contenu doit être abstrait et indépendant du stockage et de la présentation Permet l intégration uniforme de données hétérogènes Provenant de différentes sources de données Permet des applications dynamiques La présentation peut être différente selon le médium, le temps, la requête ou le profil de l utilisateur 38
Conclusion La plupart des éditeurs de SGBD proposent des connexions au Web (Oracle Websystem, Informix (Web Datablade), Sybase, DB2 ). Nécessité de développer des clients dynamiques, nombreuses solutions existantes XML est une bonne solution pour l échange de données Standard du W3C Décrit le contenu, pas la présentation Structure, type, schéma, requêtes, etc. Fournit l indépendance des données au stockage et à la présentation : supporte la règle d or 39