Bases de données et sites WEB Cours 5 : Bases de données et Web Anne Doucet 1 Architectures Web • Le Web • Les applications – Les nouveaux besoins • Architecture – Client/serveur 3-tiers – Serveurs d’applications • Web et BD • Couplage HTML-BD • Perspectives 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, 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 Impact du Web • Client/serveur universel – Un seul outil pour la communication intra- et interentreprise • Intranet, extranet (les partenaires), internet (tous) • Accès aux bases de données • Adopté par toute l’industrie du logiciel – Nombreux produits, nombreux fournisseurs • De nombreux serveurs Web – Information et services • Le fondement de la société de l’information 4 Applications e-business • E-business = utilisation professionnelle du Web – Au sein de l’entreprise : B2E – Avec les clients : B2C – Avec les partenaires : B2B • Applications majeures – – – – Intranets Portails d’information d’entreprise Commerce électronique Publication en ligne 5 Intranet • Serveur Web pour les besoins internes de l’entreprise – Réseau privé avec accès sécurisé à Internet • firewalls – Utilisateurs connus • Services avancés : visio-conférence – Services internes • Publication d’information et workflow • Forum de discussion, email et groupware • Réduit les coûts de communication et améliore l’efficacité • Problème : – Intégration avec les sources de données de l’entreprise 6 Portail d’information d’entreprise • Porte d’accès à l’information de l’entreprise – Vue uniforme d’information agrégée à partir de sources de données hétérogènes • Applications existantes • Bases de données • Systèmes documentaires – Pour des utilisateurs spécifiques • Décideurs, employés, clients, fournisseurs • Problème : – Difficile d’accéder à toute l’information de l’entreprise 7 E-commerce • Elimination des procédures manuelles (papier) entre les partenaires d’un commerce • Au minimum : B2C – Vitrines de magasin électronique (Web storefronts) • Pleine puissance : B2B – Intégration de la chaîne de distribution avec Extranet (nouvel EDI) 8 Vitrine de magasin électronique • Interface Web à des catalogues de produits et de services – Sites très connus, (Amazon.com, Dell Computers, etc.) – Gestion de la relation client – Intégration avec les bases de données – Transactions électroniques sécurisées pour commander • Cartes de crédit, monnaie électronique, E-check • Problème : – Pas d’automatisation du côté client • Difficile de faire du commerce avec plusieurs fournisseurs 9 Electronic Data Interchange (EDI) • Echange électronique de données entre une entreprise et ses partenaires pour supporter les transactions – Connexion de systèmes d’information hétérogènes – Gestion efficace de la chaîne de distribution • Réduction des coûts de traitement des commandes et de gestion d’inventaire – Transactions standards et fixes (EDIFACT) – Adapté aux grandes entreprises • Problèmes de l’EDI traditionnel – Trop compliqué et cher • Connexions 1-to-1 entre partenaires – Les bénéfices viennent d’une migration complète • Pour éviter de maintenir le processus papier 10 Extranet • Implémentation de l’EDI sur Internet – Un seul protocole et réseau pour l’échange de données – Facilite les connexions entre entreprises • Mais ne résoud pas les problèmes durs de l’EDI – Systèmes d’information incompatibles, règles de gestion et formats de données différents 11 Publication en ligne • Publication de l’information sur le Web, en plus d’autres médias – Information dynamique, à jour – Différentes sortes de documents • Manuels, rapports, mémos, articles, etc. – Présentations multiples • Browser Web, PDA, téléphone cellulaire (WAP, UMTS) • Autres médias : CD-ROM, e-mail, papier • Problème : – Besoin de présentations multiples de l’information agrégée à partir de sources de données multiples 12 Ouverture de la gestion d’information • Gestion de l’information indépendamment de tout programme, y compris celui qui l’a créé • Principe = indépendance des données – du stockage présentation présentation – de la présentation Vue logique stockage stockage 13 Architecture d’un serveur Web requête Interface HTTP Index répertoire administration Contrôle d’accès traducteur Accès document Document HTML Interface CGI réponse Programme externe 14 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 navigateur client documents HTML TCP/IP serveur supportant HTTP 15 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 16 Evolution des architectures PC Besoins : •Ergonomie •Simplicité •intégration Serveurs d’entreprise C/S 2 tiers IHM applications Applications Transactions Bases de données Besoins : •Fiabilité •Passage à l’échelle •Performances Standards : SQL3, CORBA, etc. Standards : Web, Java, XML, etc C/S 3 tiers App Internet : E-commerce, Internet, Extranet 17 Architecture client/serveur 3-tiers Applications existantes Serveur d’application Interface utilisateur Serveur d’application Applications et transactions Serveur de données 18 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 19 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 20 Couplage BD et Web Pourquoi coupler ? Deux domaines qui se sont développés indépendamment, mais qui ont de nombreux points communs : - Ensemble important de données (modélisation, stockage, indexation) - Interrogation (langage déclaratif) - Multi-utilisateurs - Performances - Fiabilité 21 Données du Web Données hétérogènes, fortement corrélées, évoluant souvent La gestion de ces données avec un SGF et un système d’exploitation pose des problèmes : gestion des liens difficile gestion de l’évolution (pas d’indépendance logique-physique) performances moyennes (pas ou peu d’index) Bref, les mêmes problèmes des SGF qui ont motivé la définition de SGBD. 22 BD et Web BD pour Web : De nombreuses applications ont besoin de fonctionnalités BD. Commerce électronique : présentation des catalogues et édition des 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 (schéma), SQL + indexation Web pour BD : Répartition des données sur divers sites Intégration immédiate d’Internet Exploitation directe des BD via le Web Modélisation des données adaptées à chaque utilisateur (pas de schéma) 23 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 24 Couplage HTML-bases de données • Serveur HTTP dynamique – Basé sur CGI – Serveur Web dédié aux BD • Oracle WebDB, VersantWeb, etc. • Pages serveurs dynamiques – MS Active Server Page (ASP) – Java Server Page (JSP) 25 Accès base de données Fichiers Html statiques HTML http Demande de page Navigateur (client http) données HTML cgi, nsapi,.. paramètres serveur http odbc,jdbc SQL Programme passerelle SGBD Middleware WEB Script CGI Perl, JavaScript, VB Script, Java, etc Problèmes ne passe pas à l’échelle (CGI) solutions propriétaires 26 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 : 3. 4. • CGI : Common Gateway Interface • NSAPI (Netscape), ISAPI (MS) Le programme applicatif : 1. extrait les données nécessaires du SGBD 2. produit la page HTML incluant ces données Le SGBD reçoit des requêtes et renvoie les résultats Solutions du marché : solutions SGBD +/- intégrées (+ : Oracle, Informix, - : Sybase, DB2) solutions + générales : ASP (MS-Windows), JSP (JAVA), … 27 L’existant La plupart des éditeurs de SGBD proposent des connexions au Web. ORACLE Websystem (Oracle Powerbrowser + W ebserver) permet d’interroger une base Oracle à partir d’un navigateur. Création dynamique de pages HTML à partir de requêtes SQL spécifiées sur le navigateur : templates de pages Web intégrant du HTML et des informations dynamiques en provenance de la base. Composé d’un serveur HTTP, d’un module de conversion d’expressions HTML en SQL, d’un module d’exécution de requêtes en parallèle sur plusieurs serveurs et d’un module de développement d’applications Java, PL/SQL, C INFORMIX (Illustra et Web Datablade) Outils pour créer des templates HTML (stockés dans la BD), qui contiennent des requêtes SQL et des scripts de formattage. Les requêtes sont exécutées sur la base, le résultat HTML est envoyé au serveur HTTP. Le couplage est fait par une CGI. 28 Page serveur 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 %> ” %> “A1” </TD><TD> “A2 ” </TD></TR> “A1” </TD><TD> “A2 ” </TD></TR> <TR><TD> <TR><TD> <%end-iterate%> </TABLE> </BODY> </HTML> 29 Exécution de page serveur dynamique HTTP URL+input browser HTML paramètres HTML Template (ex:fichier PHP) HTTP server HTML Template Interpreter (ex: PHP) SQL BD Plus efficace que le serveur HTTP dynamique Problème : les templates ne peuvent transformer les résultats de requêtes. 30 ASP versus JSP ASP – 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) JSP – Combinent HTML, Java et Java Beans – Accès aux composants EJB (serveurs) • Interface JDBC – Standard, proposé par tous les serveurs d’applications J2EE 31 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 32 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 33 XML pour l’échange de données universel Le langage XML – Standard du W3C – Décrit le contenu, pas la présentation • Structure, type, schéma, requêtes, etc. – Une base forte : XML est un sous-ensemble de SGML – Fournit l’indépendance des données au stockage et à la présentation : supporte la règle d’or Facilite l’échange de données entre applications 34