Title: Applications Internet
1Applications Internet
- Chapitre 7, Sections 7.17.5
2Survol
- Concepts Internet
- Formats des données sur le web
- HTML, XML, DTDs
- Introduction à larchitecture à trois niveaux
- Le niveau de présentation
- Formulaires HTML méthodes HTTP Get et POST,
encodage des URLs Javascript Stylesheets XSLT - Le niveau du milieu
- CGI, serveurs dapplication, Servlets,
JavaServerPages, passages darguments,
maintenance des états (cookies)
3Survol
- Concepts Internet
- Formats des données sur le web
- HTML, XML, DTDs
- Introduction à larchitecture à trois niveaux
- Le niveau de présentation
- Formulaires HTML méthodes HTTP Get et POST,
encodage des URLs Javascript Stylesheets XSLT - Le niveau du milieu
- CGI, serveurs dapplication, Servlets,
JavaServerPages, passages darguments,
maintenance des états (cookies)
4Identificateurs de Ressource Uniformes (URI)
- Schéma de dénomination uniforme pour identifier
les ressources sur Internet - Il y a une variété de ressources
- Index.html
- mysong.mp3
- picture.jpg
- Exemple de URIs
- http//www.cs.wisc.edu/dbbook/index.htmlmailto
webmaster_at_bookstore.com
5Structure des URIs
- http//www.cs.wisc.edu/dbbook/index.html
- Un URI a trois parties
- Schéma de dénomination (http)
- Nom de lordinateur hote (www.cs.wisc.edu)
- Nom de la ressource (dbbook/index.html)
- Les URLs sont un sous-ensemble de URIs
6Hypertext Transfer Protocol (HTTP)
- Protocole de communication
- Ensemble de standards qui définissent la
structure de léchange de messages - Exemples TCP, IP, HTTP
- Que se passe-t-il lorsque vous cliquez sur
www.cs.wisc.edu/dbbook/index.html? - Le client (fureteur) envoie une requête HTTP au
serveur - Le serveur reçoit la requête et répond
- Le client reçoit la réponse fait une nouvelle
requête
7HTTP (Suite)
- Du client au serveur
- GET /index.html HTTP/1.1
- User-agent Mozilla/4.0
- Accept text/html, image/gif, image/jpeg
- Le serveur répond
- HTTP/1.1 200 OK
- Date Mon, 04 Mar 2002 120000 GMT
- Server Apache/1.3.0 (Linux)
- Last-Modified Mon, 01 Mar 2002 092324 GMT
- Content-Length 1024
- Content-Type text/html
- ltHTMLgt ltHEADgtlt/HEADgt
- ltBODYgt
- lth1gtBarns and Nobble Internet Bookstorelt/h1gt
- Our inventory
- lth3gtSciencelt/h3gt
- ltbgtThe Character of Physical Lawlt/bgt
- ...
8Structure du Protocole HTTP
- Requêtes HTTP
- Ligne de requête GET /index.html HTTP/1.1
- GET méthode HTTP (valeurs possibles GET et
POST voir plutard) - /index.html URI
- HTTP/1.1 version du protocole HTTP
- Type de client User-agent Mozilla/4.0
- Types de fichiers que le client
acceptera Accept text/html, image/gif,
image/jpeg
9Structure du Protocole HTTP (Suite)
- Réponses HTTP
- Ligne de statut HTTP/1.1 200 OK
- Version HTTP HTTP/1.1
- Code du statut 200
- Message du serveur OK
- Combinaisons code/serveur usuelles
- 200 OK Succcès de la requête
- 400 Bad Request La requête na pas pu être
traitée par le serveur - 404 Not Found Lobjet requis nexiste pas sur le
serveur - 505 HTTP Version not Supported
- Date de creation Last-Modified Mon, 01 Mar
2002 092324 GMT - Nombre doctets envoyés Content-Length 1024
- Type dobjet envoyé Content-Type text/html
- Autre information telle que le type de serveur,
le temps du serveur, etc.
10Quelques Remarques sur HTTP
- HTTP na pas détats
- Pas de sessions
- Chaque message est complètement autonome
- Aucune interaction antérieure nest sauvée par le
protocole - Réalise une balance entre la facilité
dimplémentation et la facilité du développement
des applications Les autres fonctionnalités
doivent être ajoutées par après - Implications pour les applications
- Toute information sur létat doit être encodée
dans chaque requête HTTP et dans chaque réponse! - Il existe des méthodes populaires pour le
maintien des états - Cookies
- URL uniques générées dynamiquement au niveau du
serveur
11Format des Données sur le Web
- HTML
- Le langage de présentation pour lInternet
- XML
- Un modèle de données auto descriptif et
hiérarchique - DTD
- Schéma de standardisation pour XML
- XSLT (non couvert dans le manuel)
12HTML Un Exemple
- ltHTMLgt
- ltHEADgtlt/HEADgt
- ltBODYgt
- lth1gtBarns and Nobble Internet Bookstorelt/h1gt
- Our inventory
- lth3gtSciencelt/h3gt
- ltbgtThe Character of Physical Lawlt/bgt
- ltULgt
- ltLIgtAuthor Richard Feynmanlt/LIgt
- ltLIgtPublished 1980lt/LIgt
- ltLIgtHardcoverlt/LIgt
- lt/ULgt
-
- lth3gtFictionlt/h3gt
- ltbgtWaiting for the Mahatmalt/bgt
- ltULgt
- ltLIgtAuthor R.K. Narayanlt/LIgt
- ltLIgtPublished 1981lt/LIgt
- lt/ULgt
- ltbgtThe English Teacherlt/bgt
- ltULgt
- ltLIgtAuthor R.K. Narayanlt/LIgt
- ltLIgtPublished 1980lt/LIgt
- ltLIgtPaperbacklt/LIgt
- lt/ULgt
- lt/BODYgt
- lt/HTMLgt
13HTML Courte Introduction
- HTML est un langage de balisage
- Les commands sont des balises (tags)
- Balise de début et balise de fin
- Exemples
- ltHTMLgt lt/HTMLgt
- ltULgt lt/ULgt
- Beaucoup déditeurs génèrent automatiquement des
documents HTML directement à partir dun document
de départ (p.ex. Microsoft Word a une facilité
Save as html)
14HTML Exemples de Commandes
- ltHTMLgt
- ltULgt liste non trié
- ltLIgt entrée dune liste
- lth1gt entête le plus large
- lth2gt 2ème entête le plus large lth3gt, lth4gt
sont analogues - ltBgtTitlelt/Bgt Gras
15XML un Exemple
- lt?XML version"1.0" encoding"UTF-8"
standalone"yes"?gt - ltBOOKLISTgt
- ltBOOK genre"Science" format"Hardcover"gt
- ltAUTHORgt
- ltFIRSTNAMEgtRichardlt/FIRSTNAMEgtltLASTNAM
EgtFeynmanlt/LASTNAMEgt - lt/AUTHORgt
- ltTITLEgtThe Character of Physical
Lawlt/TITLEgt - ltPUBLISHEDgt1980lt/PUBLISHEDgt
- lt/BOOKgt
- ltBOOK genre"Fiction"gt
- ltAUTHORgt
- ltFIRSTNAMEgtR.K.lt/FIRSTNAMEgtltLASTNAMEgtN
arayanlt/LASTNAMEgt - lt/AUTHORgt
- ltTITLEgtWaiting for the Mahatmalt/TITLEgt
- ltPUBLISHEDgt1981lt/PUBLISHEDgt
- lt/BOOKgt
- ltBOOK genre"Fiction"gt
- ltAUTHORgt
- ltFIRSTNAMEgtR.K.lt/FIRSTNAMEgtltLASTNAMEgtN
arayanlt/LASTNAMEgt
16XML Extensible Markup Language
- Langage
- Un moyen de communiquer linformation
-  Markup (balisage)
- Meta-données décrivant vos données
- Â ExtensibleÂ
- La capacité de définir de nouveaux balisages (et
donc de nouveaux langages) est quasiment
illimitée.
17XML Etat des Lieux
- Vous pouvez inclure vos données et la description
de ce que ces données représentent - Utile pour définir vos propres langages et
protocoles - Exemple Langage à balisage chimique
- ltmoleculegt
- ltweightgt234.5lt/weightgt
- ltSpectragtlt/Spectragt
- ltFiguresgtlt/Figuresgt
- lt/moleculegt
- Les objectifs du design de XML
- XML devrait être compatible avec SGML
- Il devrait être facile décrire des processeurs
pour XML - Le design devrait être formel et précis
18XML Structure
- XML Combine des aspects de SGML et HTML
- XML ressemble à HTML
- XML est une hiérarchie de balises définies par
lutilisateur et appelées éléments avec
attributs et données - Les données sont décrites par les éléments qui,
eux, sont décrits par les attributs. - ltBOOK genre"Science" format"Hardcover"gtlt/BOOKgt
19XML -- Éléments
- ltBOOK genre"Science" format"Hardcover"gtlt/BOOKgt
- Les majuscules et les espaces sont significatifs
en XML - Les noms des éléments de la balise de début et de
la balise de fin doivent être identiques - Balise de début lt nom délément gt
- Balise de fin lt/ nom délément gt
- Les éléments vides nont aucune donnée, ni de
balise de fin - Ils commencent avec un lt et se terminent avec
un /gt - ltBOOK/gt
20XML Attributs
- ltBOOK genre"Science" format"Hardcover"gtlt/BOOKgt
- Les attributs fournissent de linformation
additionnelle pour les éléments. - Il peut y avoir zéro ou plusieurs attributs dans
chaque élément chacun deux a la forme suivante - attributvaleur
- Il ny a pas despace entre le nom dattribut et
- Les valeurs dattribut doivent être mises entre
guillemets ( ou ) - Les attributs multiples sont séparés par des
espaces vides.
21XML Données et Commentaires
- ltBOOK genre"Science" format"Hardcover"gtlt/BOOKgt
- Les données XML sont tout ce qui apparaît entre
la balise de début et celle de fin - Les données XML ne doivent contenir les
caractères lt et gt - Commentaires lt!- comment -gt
22XML Imbrication et Hiérarchie
- Les balises XML peuvent être imbriquées les une
dans les autres et former un arbre hiérarchique - Les documents XML ne peuvent avoir quune seule
racine - Entre une balise de début et une de fin on peut
insérer - 1. des données
- 2. dautres éléments
- 3. une combinaison de données et déléments
- ltrootgt
- lttag1gt
- Un quelconque Texte
- lttag2gtDavantage de textelt/tag2gt
- lt/tag1gt
- lt/rootgt
23XML Stockage
- Un document XML est stocké comme nimporte quel
autre arbre n-aire (DOM)
ltrootgt lttag1gt Un quelconque Texte
lttag2gtDavantage de textelt/tag2gt
lt/tag1gt lt/rootgt
24DTD Document Type Definition
- Un DTD est un schéma pour les données XML
- Les protocoles XML et les langages peuvent être
standardisés avec des DTDs - Un DTD indique quels éléments et attributs sont
requis et lesquels sont optionnels - Définit la structure formelle du langage
25DTD Un Exemple
- lt?XML version'1.0'?gt
- lt!ELEMENT Basket (Cherry, (Apple Orange)) gt
- lt!ELEMENT Cherry EMPTYgt
- lt!ATTLIST Cherry flavor CDATA REQUIREDgt
- lt!ELEMENT Apple EMPTYgt
- lt!ATTLIST Apple color CDATA REQUIREDgt
- lt!ELEMENT Orange EMPTYgt
- lt!ATTLIST Orange location Floridagt
- --------------------------------------------------
------------------------------ -
ltBasketgt ltApple/gt ltCherry
flavorgood/gt ltOrange/gt lt/Basketgt
ltBasketgt ltCherry flavorgood/gt ltApple
colorred/gt ltApple colorgreen/gt lt/Basket
gt
26DTD - !ELEMENT
- lt!ELEMENT Basket (Cherry, (Apple Orange)) gt
- !ELEMENT déclare un nom délément, ainsi que le
contenu de chaque élément enfant imbriqué - Types de contenus
- Autres éléments
- PCDATA (parsed character data)
- EMPTY (aucun contenu)
- ANY (aucune validation à lintérieur de cette
structure) - Une expression régulière
Nom
enfants
27DTD - !ELEMENT (Suite)
- Une expression régulière a la structure suivante
- exp1, exp2, exp3, , expk Une liste
dexpressions régulières - exp Une expression optionnelle avec zéro ou
plusieurs apparitions déléments - exp Une expression optionnelle avec un ou
plusieurs apparitions déléments - exp1 exp2 expk Une disjonction
dexpressions
28DTD - !ATTLIST
- lt!ATTLIST Cherry flavor CDATA
REQUIREDgt - lt!ATTLIST Orange location CDATA REQUIRED
- color orangegt
- !ATTLIST définit une liste dattributs pour un
élément. - Les attributs peuvent être de différents types,
être requis ou non requis et peuvent avoir des
valeurs par défaut.
Element
Attribute
Type
Flag
29DTD Document Bien Formé vs. Valide
- lt?XML version'1.0'?gt
- lt!ELEMENT Basket (Cherry)gt
- lt!ELEMENT Cherry EMPTYgt
- lt!ATTLIST Cherry flavor CDATA REQUIREDgt
- --------------------------------------------------
------------------------------
Pas bien formé ltbasketgt ltCherry
flavorgoodgt lt/Basketgt
Bien formé, mais invalid ltJobgt
ltLocationgtHomelt/Locationgt lt/Jobgt
Bien formé et valide ltBasketgt ltCherry
flavorgood/gt lt/Basketgt
30XML and DTDs
- De plus en plus de DTDs standardisés sont
développés - MathML
- Chemical Markup Language
- Etc.
- Les DTDs permettent un échange allégé de données
ayant la même sémantique - Il existe des langages de requête sophistiqués
pour XML - Xquery
- XPath
31Survol
- Concepts Internet
- Formats des données sur le web
- HTML, XML, DTDs
- Introduction à larchitecture à trois niveaux
- Le niveau de présentation
- Formulaires HTML méthodes HTTP Get et POST,
encodage des URLs Javascript Stylesheets XSLT - Le niveau du milieu
- CGI, serveurs dapplication, Servlets,
JavaServerPages, passages darguments,
maintenance des états (cookies)
32Composantes des Systèmes de Gestion des Données
- Trois types de fonctionnalité séparés
- Gestion des données
- Logique de lapplication
- Présentation
- Larchitecture du système détermine si ces trois
composantes résident sur un même système
(tier) ou sur plusieurs systèmes séparés
33Architecture à Une Etage (Single-Tier)
- Toutes les fonctionnalités sont combinées dans un
même système, souvent un mainframe - Accès à travers des terminaux passifs
- Avantages
- Maintenance et administration aisées
- Désavantages
- Actuellement, les utilisateurs sattendent à des
interfaces graphiques - Centralisation à outrance (peut excéder la
capacité du système)
34Architectures Client-Serveur
- Division de travail Client léger
- Le client implémente seulement linterface
(graphique) - Le serveur implémente la logique de lapplication
(business logic) ainsi que la gestion des
données - Division de travail Client lourd
- Le client implémente à la fois linterface
(graphique) et la logique de lapplication - Le serveur implémente seulement la gestion des
données
35Architecture Client-Serveur (Suite)
- Désavantages des clients légers
- Aucune centralisation des modification de la
logique dapplication nest faite - Problèmes de sécurité Le serveur a besoin de
faire confiance aux clients - Accès et authentification doivent être gérés par
le serveur - Les clients ont besoin de laisser le serveur dans
un état consistent - Une possibilité Encapsuler tous les accès aux
bases de données dans des procédures stockées - Pas applicable si le nombre de clients va au delÃ
de quelques centaines - Large transfert de données entre serveur et
client - Problème de gestion des connections avec x
clients et y serveurs on a xy connexions
36Architecture à Trois Étages (Three-Tier)
Client (Web Browser)
Système de présentation
Serveur dapplication
Etage intermédiaire
SGBD
Étage de gestion des données
37Les Trois Étages
- Étage de présentation
- Interface première dutilisateur
- Doit être adaptée aux différents appareils de
présentation existants (PC, PDA, téléphone
cellulaire, voix?) - Étage intermédiaire
- Implémente la logique dapplication (implémente
des actions complexes, maintient létat du
processus déchange en cours) - Accède aux différents SGBDs
- Étage de gestion des données
- Un ou plusieurs SGBDs standards
38Exemple Système de Réservations pour Lignes
Aériennes
- Comment construire un tel système
- Quest ce qui est fait aux diverses étages?
- SGBD
- Info sur les lignes aériennes, sièges
disponibles, info sur les clients, etc. - Serveur dapplication
- Logique des réservations, annulation des
réservations, addition de nouvelles lignes, etc. - Programme client
- Log in de différents utilisateurs, affichage de
formulaires et de rapports en format lisible
39Technologies
HTML Javascript XSLT
Programme Client(Web Browser)
JSPServlets Cookies CGI
Serveur dapplication(Tomcat, Apache)
SGBD(DB2, Oracle, MS SQLServer)
XML
Procédures stockées
40Avantages de lArchitecture à Trois Étages
- Systèmes hétérogènes
- Maintien, modification et remplacement
indépendants des étages - Clients légers
- Contiennent seulement la couche de présentation
(web browsers) - Accès intégré aux données
- Plusieurs SGBDs peuvent être accédés de manière
transparente à létage intermédiaire - Gestion centralisée des connexions
- Extensibilité
- Rendu possible par la réplication de la logique
dapplication à létage intermédiaire - Développement des logiciels
- Le code pour la logique dapplication est
centralisé - Linteraction entre les étages est bien définie
au travers de divers APIs Des composantes
standard peuvent être réutilisées