Bases de données et sites WEB

publicité
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
Téléchargement