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

Documents pareils