Architectures Web et BD - IA

publicité
Module BD et sites WEB
Cours 8– Bases de données et Web
Anne Doucet
[email protected]
1
Architectures Web
• Le Web
• Architecture
– 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
Interface
HTTP
Index
répertoire
administration
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
navigateur
client
documents HTML
TCP/IP
serveur supportant
HTTP
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
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
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
HTML
http
cgi, nsapi,..
Demande
de page
Navigateur
(client http)
données
HTML
paramètres
serveur http
odbc,jdbc
SQL
Programme
passerelle
SGBD
Middleware WEB
21
Accès BD
1.
2.
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.
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
décode
Envoi des entêtes
HTTP-réponses
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
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.
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
Téléchargement