Previous Up Next

Chapter 9  Architecture Serveur

La technologie WEB évoluant, il est maintenant temps de fournir un panorama de quelques techniques utilisées coté serveur facilitant le développement.


Figure 9.1: Architecture d'un serveur


Un serveur HTTP fournit des extensions (non standard), afin de pouvoir exécuter les requêtes des clients au sein du seveur HTTP lui-même.

Un ensemble de fonctions supplémentaires est en général fourni sous forme d'A.P.I (Application programming interface) et les extensions du serveur sont développées en utilisant cette dernière.

En utilisant les API propres du serveur Web(NSAPI, ISAPI, Apache API), on peut créer un module, s'exécutant dans l'espace du serveur, qui intercepte les requêtes HTTP, les fait suivre à l'application, et relaie la réponse.

A l'initialisation du module, lorsque le serveur Web démarre, une ou plusieurs sessions avec l'application sont lancées. Elles sont fermées lorsque le module est arrêté, c'est à dire au moment de l'arrêt du serveur Web.


Figure 9.2: Architecture d'un module serveur


Le principal inconvénient de cette approche est qu'un bug du module peut occasionner l'arrêt inattendu du serveur Web. Ceci doit être tempéré par le fait qu'un serveur est rarement monolithique (le plus souvent une requete entrante provoque la duplication du serveur (Fork).

D'autre part, un module étant attaché à un type de serveur, cela rend difficile la tâche des éditeurs de solutions.

L'avantage des architectures basées sur les API des serveurs Web est de favoriser la réutilisation des application client/serveur existantes.

Cependant, elles nécessitent de développer au-dessus des fonctions de base des serveurs Web, des fonctions de gestion des sessions d'utilisateurs, des fonctions de gestion d'habilitation, des fonctions de gestion de présentations. Ces problèmes peuvent être limités avec les ateliers de développement tel DELPHI qui fournissent ces prestations.

Afin de faciliter ce type d'approche, des modules d'interprétations sont apparus, qui ont permis de standardiser le développement d'application Web quelque soit le serveur, et ainsi de favoriser la réutilisation de fonctions communes.

Ces modules d'interprétation s'appliquent aux langages ASP, Javascript, JSP, PHP, PHYTON,...


Previous Up Next