Comparatif des scripts côtés serveur - JSP
ECL - Campus - Options TIC

Comparaison des scripts côté serveur
Sommaire
o Introduction
o ASP
o JSP
o Perl
o PHP
o Conclusion


  Présentation :
JavaServer Pages™ (JSP) est une technologie de scripts côté serveur comparable à Netscape server-side JavaScript (SSJS) et à Microsoft Active Server Pages (ASP). Cependant, il se distingue des précédents en étant plus extensible et non propriétaire par rapport à un constructeur ou un type particulier de serveur. Même si les spécifications ont été établies sous l'égide de Sun Microsystems, tout constructeur peut implémenter JSP sur ses propres systèmes.

Ceux qui travaillent aujourd'hui ou comptent travailler avec les technologies de Netscape peuvent dès maintenant se familiariser avec JSP. En effet, Netscape va prochainement présenter des produits les utilisant. Ainsi, ils ont déjà déclaré que la prochaine version de leur serveur Netscape Application Server (NAS) utilisera JSP comme "technologie de couche de présentation" (presentation layer technology). Nous verrons les caractéristiques de JSP, ses utilisateurs cibles et ses utilisations privilégiées. Nous terminerons par une comparaison avec les technologies actuelles de Netscape, telles que SSJS et le langage à balises de NAS.



  JSP : les bases
JSP est une technologies de couche de présentation qui reposent sur le modèle des servlets Java. A l'instar de SSJS, cette technologie permet de générer des pages dynamiques en mélangant du HTML statique avec des scripts côté serveur. Par défaut, le langage de script est le Java ; cependant, les spécifications permettent d'employer d'autres langages, tout comme ASP autorisent le JScript et le VBScript. En dépit du fait que les pages JSP écrites en Java restent plus flexibles et robustes que les scripts codés dans des langages plus simples tels que le JavaScript et le VBScript, le Java demande un temps d'apprentissage plus long que les langages de scripts simples.

Pour jouer sur les deux tableau à la fois, c'est-à-dire avoir une plate-forme applicative robuste pour le web et un langage facile à utiliser, JSP est pourvu d'un certain nombre de balises côté serveur qui permettent aux développeurs de produire la plupart des opérations de génération de contenus dynamiques sans la moindre ligne de code en Java. Ces balises sont plus particulièrement destinées aux développeurs familiers aux scripts, voire aux graphistes n'utilisant que le HTML mais même les développeurs Java peuvent les utiliser pour obtenir des opérations avancées dans les pages JSP.



  Des "pages" aux "composants"
Pour comprendre toute la puisance de JSP il faut d'abord saisir la différence entre les développements orientés composants et ceux orientés pages. Les technologies SSJS et ASP ont été conçues il y a deçà quelques années, lorsque le web était "jeune" et que personne ne savait faire mieux que de "déverser" dans des pages web de scripts tout ce qui concerne le commerce, les données et la logique de présentation. Ce modèle orienté page était facilement compréhensible et permettait des développements vraiment rapides. Cependant, les gens ont réalisé au fil du temps que ce n'était pas la bonne méthode pour construire des grandes applications web. Les environnements uniquement de scripts enfermaient les fonctionnalités à l'intérieur des pages sans d'autre moyen de réutilisation que le copier-coller. La logique utilisée pour la présentation graphique était souvent mélangée avec les fonctionnalités pour le commerce et les données, compliquant ainsi la maintenance : comment toucher à la présentation sans changer la logique commerciale ? Des composants sophistiqués et réutilisables existaient déjà dans les entreprises mais personne ne voulait les transcrire pour des applications web. De ce fait, les graphistes et les développeurs ne pouvaient travailler séparément, ces derniers devant implémenter à la main les travaux des premiers pour chaque page. En peu de temps, les applications web devinrent d'une grande complexité d'où la mise en cause certaine des limitations du modèle orienté page.

Alors même qu'on était à la recherche de solutions valables pour la construction d'applications web, les composants battaient leur plein dans le monde du client-serveur. Les fournisseurs d'outils pour des développements rapide d'applications (Rapid Application Development) présentèrent aux développeurs Java et Windows les JavaBeans et ActiveX comme un moyen de développer rapidement de complexes applications. Ces technologies permettaient aussi à des experts dans un certain domaine d'écrire des composants pour des applications verticales, réutilisables par des développeurs non experts dans ce domaine. Ce n'était qu'une question de temps avant qu'une technologie émerge pour mettre en pratique la programmation orientée composants dans le monde des applications web côtés serveur.

JSP sort alors du lot en se définissant comme une plate-forme orientée composant. Il est fondé sur un modèle dans lequel les composants JavaBeans et Enterprise JavaBeans (EJB) encapsulent la logique de l'application concernant le commerce et les données. Il fournit en outre des balises et un environnement de script utilisés pour afficher dans une page HTML le contenu renvoyé ou généré par les beans. De part la nature orientée composant de JSP, il peut être utilisé de la même façon par des développeurs Java avertis ou non. Les pages JSP peuvent en effet contenir d'une part des balises JSP implémentant des beans crées par des développeurs Java expérimentés, d'autre part directement du code Java pour un contrôle plus fin au niveau de la présentation.



  Requêtes HTTP :
Dans le modèle classique de requêtes, une requête est envoyée directement à la page JSP. La Figure 1 ci-dessous illustre à ce propos les flux d'informations. Le code JSP contrôle les interactions avec les composants JavaBeans pour les processus concernant le commerce et les données, puis affiche les résultats en mixant HTML généré dynamiquement et HTML statique.

Figure 1. Basic JSP request model

Les beans représentés peuvent être des composants JavaBeans ou EJB. Il existe d'autres modèles de requêtes, plus complexes, dans lesquels la page JSP demandée appelle d'autres pages JSP ou des servlets Java.



  JSP, SSJS et NAS :
JSP ne remplace pas ou ne menace pas nécessairement SSJS en tant que plate-forme de développement web ; chacun trouve sa place dans le marché. Bien que JSP reste généralement plus puissant et plus flexible que SSJS, pour écrire des scripts il faut apprendre le Java - tout du moins tant que d'autres fournisseurs ne proposent pas de versions supportant des langages plus simples comme le JavaScript. En attendant, SSJS fournit toujours le langage simple mais efficace qu'est le JavaScript, possèdant en outre l'avantage de présenter un temps d'apprentissage plus court que le Java et d'être dans un certain sens plus flexible (langage vaguement typé).

En ce qui concerne NAS, il est clair que JSP ne remplacera jamais la robuste fonctionnalité offerte par NAS, ce n'est d'ailleurs pas le but cherché. JSP est plutôt un frontal (portion d'un programme responsable de l'interface utilisateur), une technologie agissant sur la couche présentation qui s'adapte bien à l'architecture NAS. NAS utilise actuellement un langage à balises propriétaire pour l'élaboration de documents modèles de présentation (templates). Ce langage est quelque peu fermé et n'accepte pas qu'on rajoute des lignes de script dans les pages, ce qui le rend en fin de compte moins flexible que JSP. Dans la version 4.0 de NAS, Netscape permettra l'utilisation de JSP en alternative au langage à balises par défaut qui tourne avec le modèle de base de servlet NAS. De ce fait, JSP est une bonne chose pour les développeurs sous NAS.



  JSP et XML :
JSP et XML ont une relation de parenté intéressante. D'une part, on peut mélanger XML et JSP, tout comme on le fait avec HTML et JSP, de telle sorte que l'on peut utiliser du JSP pour générer dynamiquement des pages XML. Ce n'est pas une particularité propre à JSP, tout autre environnement de script, en particulier CGI, SSJS et ASP, permet de générer du XML et de la même qu'ils le font pour du HTML. Cependant, les spécifications de JSP définissent explicitement que la génération de document XML est supportée par JSP, sans violer aucune règle XML.

D'autre part, les pages mêmes JSP peuvent être comprises comme des documents XML. Les spécifications de JSP définissent des balises compatibles avec XML pour être utiliser à la place de celles qui ne sont pas. Par exemple, les scriptlets habituellement écrites entre <%...%> peuvent se définir à l'aide des balises <jsp:scriptlet> et </jsp:scriptlet> compatibles avec XML. On peut faire ici un parallèle avec PHP : <?php...?> est équivalent à <script language="php">...</script>.

Il est clairement plus facile d'écrire du code sous la première forme que sous forme XML. Cependant, le format XML format rend la génération et la validation de pages JPS plus faciles à l'intérieur d'IDEs ou d'autres outils de développement JSP. On se réferrera aux specifications JSP pour pour plus de détails sur les relations entre JSP et XML.



  Points de vue :
JSP est certain de recevoir beaucoup de considérations de la part des développerus web, du fait qu'il peut être utiliser par les non programmeurs à travers l'emploi des balises, mais aussi par ceux qui ont des connaissances avancées en Java ou en programmation de scripts. En fait, un petit nombre de fournisseurs autres que Netscape proposent d'ors et déjà des implémentations de JSP. Et comme JSP est un standard ouvert qui accepte d'autres langages à la place du Java, tels que le JavaScript, JSP devrait remporter prochainement plus de suffrages chez les industriels.


  Lien officiel :


  Mes signets :

© 2000 Romain Deneau