Le développement de sites interactifs,
nécessitant de conserver des données sur les visiteurs,
d'accéder à de grandes masses d'information ou de modifier
régulièrement le contenu, repose aujourd'hui sur une architecture
à 3 niveaux (ou architecture trois-tiers) entre serveur de
données, serveur d'applications et client web.
Ce type d'architecture, plus complexe que le client-serveur,
permet l'accès aux bases de données stockées
elles-mêmes sur un serveur. Plus généralement, elle offre
la possibilité d'exécuter des programmes du côté
serveur. Les résultats sont prétraités avant leur envoi
final, vers le navigateur.
Les 3 niveaux s'articulent dès lors de la
manière suivante:
? Le premier niveau s'occupe de l'interface avec
l'utilisateur depuis le navigateur.
? Le second héberge le serveur web qui est
complété par le serveur d'application qui exécutent les
traitements demandés lors de l'appel HTTP d'une page. Le serveur HTTP,
aussi appelé middleware, est donc à la fois serveur et client.
Serveur vis-à-vis du navigateur et client par rapport au conteneur web
à qui il envoie une requête et dont il attend en retour le
résultat. Une fois reçus, le serveur HTTP le renvoie au
client.
11
? Le troisième niveau assure la gestion des
données au sein d'un SGBD (Système de Gestion de Bases de
Données) et répond aux requêtes du serveur HTTP.
Entre le serveur de données et le serveur
d'applications, il existe toute une panoplie de technologies, disponibles
suivant les serveurs. Les serveurs dynamiques sont capables de publier des
informations adaptées aux besoins des utilisateurs en disposant de
technologies comme la passerelle CGI, les API ou encore les servlets Java qui
vont permettre d'ajouter des extensions aux serveurs (contenant les
paramètres des requêtes) et de produire ainsi du contenu
dynamique.
Les technologies serveurs les plus récentes offrent
aujourd'hui la possibilité de composer des pages actives sur le serveur.
Le principal bénéfice de technologies telles PHP, les ASP ou les
JSP est de fournir au serveur HTTP des données issues de programmes
d'application mais directement intégrés au code HTML suite
à un traitement préalable (le plus souvent par un
interpréteur ou moteur particulier). Les pages actives côté
serveur s'inscrivent dans une architecture trois-tiers, mais peuvent être
perçues comme une couche supplémentaire de fonctionnalités
sur le serveur.
Dans la technologie la plus courante, l'application web
s'oriente autour d'un serveur web sur lequel est branché le logiciel
applicatif, le tout parfois accompagné d'un serveur de bases de
données. L'ensemble est appelé Serveur d'applications.
Figure I.2 Architecture d'une application web à trois
niveaux
Le code source du logiciel applicatif est placé
directement dans des pages web. Ces pages sont stockées par le serveur.
Lorsque le client demande une page, le serveur web va rechercher la page, puis
exécute les instructions qu'elle contient. Ces instructions peuvent
faire appel au serveur de base de données. Le serveur web transmet la
page avec le résultat de l'exécution au client.
12
La transmission des informations entre le client et le serveur
se fait selon le protocole http. Ce qui permet d'utiliser le même
logiciel client : un navigateur web. Ce qui rend l'application portable,
c'est-à-dire qu'elle ne dépend pas de plateforme (système
d'exploitation).
Les applications web font souvent usage du mécanisme
des cookies : en réponse à une requête, le serveur envoie
une information de repérage au client (le cookie). Puis le client va lui
renvoyer cette information lors de la prochaine requête. Le
mécanisme est utilisé pour identifier le client et suivre les
manipulations