1.1.2 Serveurs d'application et serveurs Web
Le serveur d'application et le serveur Web sont des logiciels
nécessaires au niveau du serveur pour faire tourner une application Web.
Les deux jouent des rôles différents mais se complètent. En
effet, le serveur Web se charge uniquement du traitement des requêtes
http et s'il constate que la requête reçue contient des codes
destinés au serveur d'application, il la lui transmet. Il revient au
serveur d'application de traiter le code pour envoyer la réponse via le
connecteur.
Le serveur d'application et le serveur Web ne sont pas
nécessairement séparés. Par exemple les
conteneurs d'application utilisant la technologie Java comme
Tomcat, JBoss, Jetty ou Glassfish incluent un serveur Web
généralement Apache. Ceci permet d'installer un serveur Web
complet en utilisant moins de ressources. Cependant on peut séparer ces
deux serveurs pour des raisons de productivité et de performance.
Dans cette section il sera présenté les conteneurs
d'applications utilisant la technologie Java afin de choisir celui qui est
approprié à notre application Web basée sur les JSP et les
Servlets.
1.1.2.1 Serveur d'application Tomcat
Apache Tomcat, un projet de la fondation Apache, est un
conteneur d'applications libre écrit en Java qui implémente les
spécifications des servlets et des JSP de Sun Microsystems. Il inclut
par défaut le serveur Web Apache et peut être utilisé en
autonomie avec ce serveur Web, ou en collaboration avec d'autres comme IIS
(Internet Information Server) par exemple [4]. Tomcat est libre et
distribué sous une licence Apache.
Tomcat est un ensemble de plusieurs composantes ayant chacun un
rôle. Il s'agit par exemple
de :
- catalina : un conteneur servlet qui implémente
les spécifications de Sun pour les servlets et les JSP;
- coyote : un connecteur http qui écoute le
trafic entrant, dirige les requêtes au moteur de Tomcat et renvoie la
réponse au client;
- jasper : un moteur JSP qui compile les fichiers JSP en
tant que servlets et est capable de détecter les modifications des
fichiers et de les recompiler à la volée.
Tomcat offre quelques avantages :
- il est simple à administrer, beaucoup plus que les
serveurs d'application Open Source complets;
il n'occupe que deux ports sur la machine (8080 : port propre de
Tomcat et 8009 : port de communication entre Apache et Tomcat via le protocole
AJP13 1 ).
La version actuelle Tomcat 7.0.25 (sortie en janvier 2012)
implémente les spécifications Servlet 3.0, JSP 2.2 et EL
(Expression Language) 2.2, support java 6, améliore la
détection et la prévention des fuites de mémoire.
1. AJP13 : Apache JServ Protocol v1.3
1.1.2.2 Serveur d'application Jetty
Jetty est un serveur http et un moteur de Servlets
entièrement écrit en Java [4]. En raison de sa petite taille, il
convient parfaitement pour fournir des services Web une fois embarqué
dans une application Java. La première version date de 1995. Jetty peut
être utilisé en autonomie, comme serveur Web traditionnel, ou peut
être intégré dans un serveur d'application Java.
Jetty est un logiciel libre. Depuis 2009, le développement
du noyau est hébergé par la fondation Eclipse. Il offre plusieurs
avantages à savoir :
- il est complet et est basé sur des normes;
- il est flexible et extensible;
- il est distribué sous double licence : Apache et
Eclipse;
- il utilise moins de ressources et est moins encombrant.
|