Bases de données - Laboratoire d`Informatique de Paris 6
Transcription
Bases de données - Laboratoire d`Informatique de Paris 6
Module MABD Master Informatique Spécialité IAD Cours 4– Bases de données et Web 1 Plan • Applications du Web – Les besoins d’accès à des bases de données • Fonctionnement du Web • Couplage des bases de données et du Web – – – – CGI ASP JSP PHP • Bilan et perspectives 2 Le Web Système hypermédia distribué fonctionnant sur TCP/IP – simple à utiliser • Navigateurs graphiques, interactifs : Netscape, Explorer – – – – portable faible coût extensible utilise des standards • HTTP, URL, HTML, XML • Évolutions contrôlées par le W3C (MIT, Inria, U. de Keisho) – accès aux applications Internet – utilisation au sein d’une entreprise (Intranet) 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 = utilisation professionnelle du Web – Au sein de l’entreprise : B2E – Avec les clients : B2C – Avec les partenaires : B2B • Applications majeures – – – – Intranet 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-1 entre partenaires) – Les bénéfices viennent d’une migration complète (é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ésout 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 – 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 Gestion de l’information Gestion de l’information indépendamment de tout programme, y compris celui qui l’a créé présentation présentation indépendance des données stockage, présentation Vue logique stockage stockage 13 Constat • Accès à des informations très diverses et hétérogènes : – documents HTML, ASCII, PDF, etc., – données structurées ou non, multimédia (vidéo, image), de divers formats (mpeg, mp3, jpg, etc.) • Outils nombreux et variés, avec leurs propres formats et structures de données (SQL, Editeur HTML, Java) Intégration des sources Accès uniforme, personnalisé, rapide, à toutes les données de l’entreprise Séparer la représentation des données et leur mode d’accès 14 Bases de données et Web • Points communs – Gestion de grands volumes de données • Modélisation • Stockage • Indexation – – – – Interrogation (langage déclaratif) Multi-utilisateurs Performances Fiabilité 15 Bases de Données pour le 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… – Systèmes de réservation : transactions, cohérence, … 16 Pourquoi coupler ? • Le Web est une BD – – – – Sans schéma Sans langage de requêtes Sans transactions (et les mécanismes associés) Sans fiabilité, sécurité, … • Les données des SGBD doivent souvent être accessibles par le Web. 17 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 18 Comment coupler ? • Fonctionnalités à assurer : 1. décodage de la requête http (passage des variables d’environnement vers SQL) 2. exécution de la requête sur le SGBD 3. formatage HTML du résultat 19 Rappels sur le Web • HTTP (HyperText Transfer Protocol) – protocole de transfert permettant de demander un fichier au serveur ainsi qu’une description de types des données associées. • HTTPS – version sécurisée permettant de crypter les échanges • TCP/IP (Transmission Control Protocol/Internet Protocol) – ensemble de règles de communication sur Internet s’appuyant sur la notion d’adressage IP. • HTML – langage dérivé de SGML utilisant des balises fixes pour coder et transférer des documents avec des présentations intégrées sur le Web. • W3C – Organisme chargé de standardiser les protocoles et langages relatifs à Internet 20 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 21 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 au client la page.html en format MIME. 4. Le navigateur interprète la page et l’affiche. 22 Evolution des architectures PC Besoins : •Ergonomie •Simplicité •intégration Serveurs d’entreprise C/S 2 tiers IHM applications Standards : Web, Java, XML, etc Applications Transactions Bases de données Besoins : •Fiabilité •Passage à l’échelle •Performances Standards : SQL3, CORBA, etc. C/S 3 tiers Serveur d’applications App Internet : E-commerce, Internet, Extranet 23 Architecture client/serveur 3-tiers Applications existantes Serveur d’application Interface utilisateur Browser Web Mobile Client Java … Serveur d’application Applications et transactions Serveur de données 24 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 Support de la sécurité Outils de développement 25 Avantages du 3-tiers Le 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 26 Document HTML <HTML> <HEAD> <TITLE>Modélisation avancée des bases de données</TITLE> </HEAD> <BODY BGCOLOR="white"> <!-- Ceci est un commentaire --> <CENTER> <H1>Couplage des bases de données et du Web</H1> </CENTER> Plusieurs solutions existent <B>CGI, ASP, JSP, PHP</B> </BODY></HTML> 27 HTML : principales balises • La balise de début <HTML> – elle doit être fermée à la fin du document par </HTML>. • La balise de titre <TITLE> – elle permet d’indiquer le titre de la page éditée de manière spéciale par les navigateurs; se termine après le titre par une balise </TITLE>. • Les balises de niveaux – Exemple: <H1> Bienvenue sur le Web </H1>, <H2> Les BD et le Web </H2>. • Les balises de mise en forme – Exemple: <B> Ceci est en gras </B>, <I> Ceci est en italique </I>. • Les balises d’intégration d’images et de son – <IMG SRC = "URL de l’image">. • Les amarres vers d’autres documents – exemple <A HREF = "URL de l’amarre"> cliquez ici </A>. • Les listes non numérotées du type – <UL> <LI> alinea 1 <LI> alinea 2 </UL>. • Les listes numérotées du type – <OL> <LI> alinea 1 <LI> alinea 2 </OL>. 28 Couplage HTML -Bases de données • Couplage simple : HTML statique – Les pages sont modifiées manuellement Maintenance difficile – Pas de pages personnalisées – Impossibilité de créer une page dynamiquement selon le contenu d’une base de données problèmes de mise à jour, redondances, cohérence 29 Couplage HTML-bases de données • Nécessité de créer des sites Web dynamiques – Accès à une BD – Accès SQL via des templates • Solutions du marché – Serveur HTTP dynamique • Basé sur CGI (Common Gateway Interface) • Serveur Web dédié aux BD – Oracle WebDB, VersantWeb, etc. – Serveur de pages dynamiques • MS Active Server Page (ASP) • Java Server Page (JSP) – PHP (Hypertext Preprocessor) 30 Accès base de données Fichiers Html statiques HTML http cgi, nsapi,.. Demande de page Navigateur (client http) données HTML odbc,jdbc paramètres serveur http SQL Programme passerelle SGBD Middleware WEB Problèmes ne passe pas à l’échelle (CGI) solutions propriétaires 31 Accès base de données 1. 2. 3. Le client http lance une demande de page Web (URL statique ou dynamique) vers le serveur. L’URL dynamique contient un appel au programme applicatif + des paramètres. La connexion est fermée dès que le client obtient la réponse. 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, NSAPI, ISAPI..) Le programme applicatif - extrait les données nécessaires du SGBD - produit la page HTML incluant ces données 4. Le SGBD reçoit les requêtes et renvoie les résultats 32 Common Gateway Interface (CGI) • Standard de programmation pour accéder aux données des formulaires HTML côté serveur. • La passerelle invoque les scripts (généralement écrits en Perl, Javascript, VBscript) en passant les paramètres sous une forme codée • Un processus séparé est activé à chaque appel de programme • L’envoi de paramètres à un script CGI se fait par l’intermédiaire d’un formulaire HTML, avec la balise <FORM>, qui contient des boutons, des champs, des listes ou cases à cocher repérés par les noms de paramètres et un bouton de soumission du formulaire. 33 Problème du CGI Client 1 Client 2 Client 3 Process Process du serveur Serveur W3 CGI Process Process 34 Bilan CGI + utilisable avec n’importe quel navigateur et serveur Web + simple, intégré avec HTML + accepte de nombreux langages - Supporte mal le multi-utilisateurs - Beaucoup de code à écrire (un CGI par requête) - Pas de gestion de contexte (session) 35 Serveur Web dédié aux BD • La plupart des éditeurs proposent des connexions au Web, selon le principe classique: – Génération dynamique ou automatique de pages HTML à partir de requêtes SQL – Serveur HTTP, interface CGI • Exemples : – – – – – ORACLE WebSystem (Oracle Powerbrowser + Webserver) INFORMIX (Illustra et Datablade) SYBASE DB2 (NetData, WebSphere Application Server, VisualAge for Java) OBJECTSTORE 36 Les scripts serveur • 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) • Les langages (Perl, Javascript, VBScript, Python, C, C++, Java,…) sont interprétés ou compilés. 37 Limitations • Performances – scripts serveurs, fastCGI • Sécurité – https – Protocole SSL • Transactions – HTTP 1.0 : Utilisation de cookies – HTTP 1.1 : connexions persistantes (TCP) • Interface utilisateur – HTML pas très puissant 38 Serveur de pages dynamique Page HTML avec scripts pour accéder à la base de données – Variables et paramètres avec des balises spéciales – 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> ” %> 39 Exécution de page serveur dynamique HTTP URL+input browser HTML paramètres HTML template 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. 40 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 41 PHP (Hypertext Preprocessor) • Langage de scripts intégré aux pages HTML • Les scripts PHP sont entre les balises <?php ….?> • Possibilité de récupérer les variables de formulaires HTML ($variable) Exemple : <html> <head> <title> Coucou </title> </head> <body> <?php echo "Coucou "; ?> </body> </html> 42 PHP • PHP transforme tous les champs en variables d’environnement (globales), qui sont directement accessibles par nom, et accessibles dans les tableaux associatifs $HTTP_POST_VARS et $HTTP_GET_VARS. • L’accès aux BD suit la même méthode quelque soit le SGBD, et s’effectue selon la séquence suivante : – – – – Connexion Requête Exploitation des résultats Fermeture de la connexion 43 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 44 Quelles solutions ? 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 45 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 46