Image
image
image
image


Développer son Site Internet - Partie 2


JSP (JavaServer Pages) : site Internet dynamique avec connexion à un serveur de données.

JSP a été conçu avec, comme cahier des charges, la portabilité et l'extensibilité (taglib). JSP n'exige ni système d'exploitation ni serveur web http particulier. Si vous devez à la fois développer un site Internet dynamique sous Linux ou Macintosh et sous Windows, le JSP est un choix logique.

Le serveur web JSP crée et compile une servlet en arrière plan. Celle-ci est chargée et exécutée automatiquement dans le but de générer le contenu d'une page HTML/XML, qui est alors renvoyée au client. JSP embarque des morceaux de code, et cette insertion directe de code permet d'obtenir une page dynamique.

Chaque bloc, appelé "scriptlet" débute par une balise d'ouverture et une balise de fermeture avec une série de variables prédéfinies comme request (un objet HttpServletRequest), réponse (un objet HttpServletReponse), out (un objet PrintWriter pour les sorties), et in (un objet BufferedReader pour les entrées). Il y a aussi page (la servlet elle-même), pageContext (une instance PageContext qui contient les données associées à la page entière) et session (la session HTTP, qui peut conserver de l'information à propos d'un utilisateur par exemple). Les API JSP séparent la génération du contenu (logique applicative) de la présentation de celui-ci, ce qui permet à une servlet de générer du contenu et de le stocker dans le contexte d'une requête.

Voici comment peut se présenter le classique "Hello World" : Hello.jsp <HTML>
<HEADxTITLE> Hello World! </TITLEx/HEAD> <BODY>
if request.getParameterf'name") === null) {out.println ("Hello World!");
else
out.println("Hello " + request.getParameter(//name"));
</BODY> </HTML>

Le deuxième accès sera plus rapide, car le serveur web aura déjà compilé une première fois la servlet. Mais si le contenu de votre page .jsp a été modifié, le serveur web devra recréer et recompiler celle-ci.

En effet le moteur de JSP vérifie si la date du fichier .jsp correspond à celle du fichier .class, le moteur de JSP ne transforme et compile la classe que dans le cas où le script JSP a été mis à jour. La création de la servlet consiste à passer du code mixte HTML/XML du fichier d'extension ".JSP" à du code java. JSP peut faire partie d'une architecture 3-tiers, ce qui signifie qu'un serveur web applicatif supportant les Java Server Pages pourra servir d'intermédiaire entre le navigateur du client et une base de données (le serveur web de données proprement dit).

JSP fournit la syntaxe nécessaire à la connexion au serveur web de données, ainsi qu'à la manipulation de celles-ci via le langage SQL. Retenons que les JSP sont aussi  multithreadées, portables, orientées objet et sûres.

Choisir sa base de données

Deux bases se distinguent : les SGBDR " serveur web, " permettant généralement des connexions par un quelconque protocole réseau : Microsoft SQL Server, Firebird, PostGreSQL, MySQL et Oracle sont parmi les SGBDR " serveur webs " les plus utilisés.

En matière d'architecture, ces SGBDR permettent de séparer concrètement le stockage des données du reste de l'programme (serveur web d'application, clients). La source de données n'est donc pas forcément sur la même machine que l'programme cliente. Les SGBDR reposant sur un système de fichiers embarquant le moteur de base de données, comme Microsoft Access ou SQLite, ne permettent pas cette séparation. Ils conviennent tout à fait à des programmes autonomes, pour lesquelles la source de données est déployée sur la même machine que l'programme. On peut se servir du SGBDR comme d'un simple conteneur de données auquel l'programme adressera des requêtes pour extraire, supprimer, modifier ou insérer des enregistrements.

On peut utiliser les fonctionnalités des procédures stockées et des triggers disponibles dans certains SGBDR pour assurer une partie du code métier de l'programme. Il s'agit alors de développer des fonctions dans un langage supporté par le SGBDR, dont l'exécution sera prise en charge par le SGBDR lui-même et non par l'programme. Les triggers sont conçus de la même façon et sont déclenchés automatiquement sur certains événements. Tous les SGBDR n'offrent pas ces fonctionnalités.

A noter également que certains produits, s'ils supportent tous le langage de requête ANSI SQL 92, enrichissent ce dernier de leurs propres fonctionnalités. Les puissances de ces systèmes de bases de données ne sont pas équivalentes. Deux critères de performances sont à prendre en compte : la vitesse d'exécution des requêtes et la capacité du serveur web de base de données à supporter des connexions simultanées. Certains SGBDR voient leur performance s'amenuiser au fur et à mesure de l'augmentation du volume stocké, d'autres sont robustes et performants et sont donc utilisables au sein de projets complexes, traitant de grandes quantités de données. De tels SGBDR sont utilisés, par exemple, dans des programmes de business intelligence et servent de support à d'imposants Datawarehouses ou à d'agiles Datamarts.

Si l'optimisation des performances est d'abord à la charge du DBA qui devra configurer correctement le SGBDR, il demeure que le développeur devra prendre soin de ne pas le solliciter inutilement.

ASP.NET : un bon choix ?

La création d'un projet web, comme tout autre type de projet, demande    une analyse préalable de l'existant et   des technologies disponibles. Après un rapide passage en revue, le choix s'avère ample et délicat !

ASP.NET, comparativement à d'autres technologies du marché telles qu'ASP 3.0, PHP 4.0 ou PHP 5.0, voir JSP, offre de nombreux avantages non négligeables tant en terme de fonctionnalités disponibles nativement au sein  de son Framework .NET qu'en terme de stabilité et de performances.
Les avantages de la technologie ASP.NET, peuvent se représenter au travers de ces premiers points :

•  Le choix du langage : VB.NET, C#, J#,

•  Le mode compilé : Intermédiate Language (IL). Augmentant les performances et garantissant une stabilité en production de votre code au travers de la vérification au moment de la compilation.

•  Le mode dual de gestion de code : Code Behind ou Code Inline

•  L'architecture native du .NET Framework au travers des classes unifiées

•  Des  contrôles clients  riches de validation  de  données (RequiredFieldValidator, RegularExpressionValidator,...) et de binding de celles-ci (DataGrid, DataList, DataRepeater,...)

•  Un IDE riche, performant et intuitif qu'est VS.NET 2003 et 2005, mais aussi l'existence d'autres IDE libres tout aussi simples d'utitisation.

•  Un mode Debug non négligeable

•  Une compatibilité ascendante ASP.NET vers ASP.NET 2.0 Comparativement, les défauts seront plutôt qualifiés de défauts de jeunesse et ont été corrigés par le Service Pack ou seront palliés dans la version 2.0 d'ASP.NET. Nous pourrions mettre en avant la faille de sécurité du mode d'authentification par formulaire Web du Framework .Net qui a été rapidement corrigée par Microsoft, ou encore, ce faux problème qu'est la mauvaise gestion des contrôles Validator pour le navigateur FireFox qui, en définitive, n'est pas géré par le Framework .NET au travers de sa signature puisque ce navigateur était non existant au moment de la sortie de la version 1.1.

L'adaptation a, quant à elle, aussi été fournie très rapidement par les équipes de Redmond. Enfin, et si le choix ne semblait pas encore intuitif, ASP.NET se retrouve depuis sa sortie entouré d'un écosystème communautaire foisonnant de tutoriaux, codes ou projets complets utilisables complètement ou partiellement (StarterKits Microsoft, Blogs, Communautés Francophones, ...).

Pourquoi utiliser PHP sur son site Internet ?

Parmi les avantages incontestablement nombreux de l'utilisation de PHP, on peut commencer par citer sa facilité d'apprentissage. En J effet, quelques heures de i lectures sur le web, et vous serez prêts à rédiger vos premiers scripts.

De plus, l'interpréteur PHP est généralement disponible d'emblée sur les hébergements personnels comme professionnels, ce qui permet de ne pas se préoccuper de sa mise en place (il faut préciser que MySQL est également présent de manière systématique).

Ensuite, il y a l'impressionnante importance de la communauté d'utilisateurs, qui permet le plus souvent de trouver des solutions rapides et efficaces aux problèmes que l'on peut rencontrer lors des ses développements. Dans sa dernière série, la 5.x, PHP s'est vue doté d'un tout nouveau moteur offrant un support avancé de la programmation objet, ce qui était l'une des plus grosses lacunes des versions antérieures.

Entre autres nouveautés, on ne peut manquer non plus de parler de l'intégration du moteur SQLite, qui tout en travaillant sur des fichiers plats et autonomes (i.e. sans serveur web), offre des performances spectaculaires (pour peu que le nombre de connexions concurrentes reste limité). Enfin, le support de la librairie SimpleXML a, comme son nom le laisse entendre, grandement facilité la manipulation de sources de données XML (comme les fameux flux RSS).

Ceci étant, PHP n'est pas exempt de défauts, et souffre de certaines faiblesses, comme tout autre langage. Pour un point notamment, PHP à les défauts de ses qualités : le framework de PHP, pour complet qu'il soit, n'est pas fortement structuré. Si la liberté offerte au programmeur expérimenté par ce modèle très souple est généralement très appréciée, elle peut en revanche désorienter le débutant.

L'un des autres points rébarbatifs, généralement constaté auprès des développeurs, concerne le développement en équipe. Il faut reconnaître que les environnements dédiés à ce langage ne sont pas légion. Et parmi ceux-ci, les seuls à proposer une forme de travail collaboratif se reposent sur CVS, qui impose un certain nombre de contraintes qui peuvent à la longue devenir franchement contre-productives.

Enfin, il y a les limites imposées par un existant qui peuvent également écarter PHP du champ des choix technologiques possibles, notamment sur des projets d'importance.

Zope/Plone, une plate-forme pour les systèmes de gestion de contenu

Pourquoi utiliser un CMS (Système de gestion de contenu, SGC en français) ? Pour améliorer la communication commerciale et marketing, pour rationaliser la documentation technique, pour réaliser des économies. L'offre aujourd'hui, aussi bien commerciale que libre, est arrivée à maturité. Certains fournisseurs vendent des licences mais proposent aussi des formule ASP (Programme Service Provider) (plus de la moitié des systèmes CMS aux Pays-Bas seraient déjà vendus via cette formule).

Un logiciel CMS séparera le fond de la forme et de cette manière, l'utilisateur final se concentrera uniquement sur la rédaction d'un contenu, tandis que le logiciel CMS mettra en page ces informations et les publiera sur Internet ou Intranet. Une entreprise pourra de cette manière réaliser l'économie d'un imprimeur en arrêtant de publier un catalogue annuel "papier et figé" de ses produits. Mieux : le catalogue électronique mis en place par le CMS sera à jour en permanence, et accessible à tous à partir d'un simple navigateur ou gravé sur cd-rom. Il existe aussi des solutions gratuites GPL comme SPIP ou Zope/PLone. Il faut néanmoins distinguer les CMS ne nécessitant pas de base de données (comme Guppy), des portails (PHP-Nuke, XOOPS) et les systèmes de publications (plus orientées entreprises).

les avantages du CMS

•  Le pouvoir de l'information revient aux détenteurs de celles-ci, et non aux informaticiens, n'importe quel utilisateur sans connaissance technique est capable de mettre en ligne de l'information
•  Gestion et encodage automatisé
•  Uniformisation du rendu, haute qualité de l'information publiée
•  Suivi des versions de chaque document
•  Validation, vérification du contenu par des tierces personnes

Zope/Plone permet de construire des site Internet collaboratifs, c'est-à-dire qu'un utilisateur peut s'identifier et mettre à jour son contenu dans un espace privé.

Une fois ce travail de composition achevé, il peut ou non (suivant les règles en vigueur) décider de le partager avec la communauté. Un modérateur pourra aussi éventuellement intervenir pour approuver les changements. Les documents seront automatiquement stockés et indexés dans un catalogue (avec moteur de recherche objet intégré). Contrairement à d'autres CMS qui utilisent PHP, Plone s'appuie sur Python et Zope. Avec Zope le processus de s*=* Sybase

La publication de contenu se déroule en quatre étapes : Identification, Composition, Modération et Publication. Le chemin que doit suivre le document pour être validé est baptisé "workflow", tandis que le "Content Management Framework" (CMF) constitue une boîte à outils de services logiciels. De plus, il respecte les normes d'ergonomie et d'accessibilité (XHTML et CSS)

Quelques Systèmes CMS

• SPIP : Système de Publication pour l'Internet Partagé
• SPIP-Agora : Version enrichie (XHTML) de SPIP développée par le Service d'Information du Gouvernement Français
• Plume-CMS : Système CMS sous licence CNU GPL, rapide, simplet et conforme aux standards W3C
• My-kiwy : CMA Français pour entreprises (gère les fonds documentaires, mais aussi module de commande électronique


image


image
image