EcommerceDEV. Développement, optimisation et sécurisation des sites de commerce électronique.
arrowAccueil arrow Conception arrow Patterns arrow La validation des données au niveau de la couche de présentation
Samedi 22 nov 2008
Nom d'utilisateur     Mot de passe      Conserver       Mot de passe perdu ?  Inscription
Menu
Accueil
A propos du site
Carte du site
Moteur de recherche
Nouvelles
Contactez-nous
Evénements
- - - - - - -
Analyse
Conception
Optimisation
Programmation
Sécurité
Produits/Services
Dec 23 2005
La validation des données au niveau de la couche de présentation Version imprimable Suggérer par mail
Appréciation des utilisateurs: / 0
FaibleMeilleur 
Conception - Anti-patterns
Ecrit par Kamal AOUDA   
23-12-2005
La validation des données au niveau de la couche de présentation

Les développeurs doivent souvent valider les données renseignées dans les formulaires électroniques aussi bien au niveau du client qu’au niveau du serveur. Ces validations peuvent être complémentaires ou redondantes dépendamment de la confidentialité de l’algorithme de validation, des ressources nécessaires pour l’implémenter et de la configuration du browser utilisé par le client.


Par exemple si l’objectif de l’algorithme de validation est de vérifier qu’un numéro de carte de crédit respecte la structure Master Card ou VISA, il serait à première vue aberrant de l’implémenter au niveau du serveur. Cet algorithme est en effet public. De plus des appels fréquents à un serveur distant peuvent l’épuiser inutilement et augmenter le temps de réponse perçu par le client. En revanche si l’objectif de l’algorithme est de vérifier que le numéro de la carte de crédit existe dans la base de données de la banque est qu’il n’a pas été opposé par le détenteur de la carte, son implémentation au niveau du serveur devient incontournable.

Un autre problème posé par le caractère fortement distribué du web est celui des scripts clients sur lesquels le développeur n’a aucune forme de contrôle. Ainsi si le client désactive l’interprétation du Javascript ou du Vbscript sur son browser le développeur est obligé d’implémenter un deuxième mécanisme de validation au niveau du serveur.

Pour éviter les va et vient inutiles entre le browser et l’application, le développeur peut toujours insérer dans son code des instructions pour vérifier si Javascript ou Vbscript sont activés sur le poste du client [168]. Dans l’affirmative, une double validation au niveau du serveur ne ferait qu’accroître le temps de réponse et la consommation des ressources.

Habituellement, les scripts et les messages de validation sont générés dynamiquement à partir d’un fichier de ressources partagées comme celui utilisé par Struts (Resource Bundle) ou codés en dur manuellement dans la vue. La première approche facilite la maintenance du code mais elle a des retombées non négligeables sur les performances parce qu’elle fait appel à des opérations complexes comme :

• Le parsing des fichiers de ressources [169] pour charger les algorithmes et les paramètres de validation dans des objets Java.

• L’interprétation des formules de l’Expression Language. Notons cependant que ces formules peuvent parfois se révéler plus performantes que les algorithmes de validation basés sur les boucles et les switchs (surtout lorsque les validations déclenchent des itérations dans les éléments d’une chaîne de caractères).

Pour sa part, la deuxième approche consomme moins de ressources parce que le serveur traite les scripts client inclus dans les JSP comme du code statique. Contrairement à la première approche le script de validation n’est pas construit de toutes pièces à partir du fichier des ressources. Il est renvoyé au browser aussitôt qu’il est détecté par le serveur web.

NB : Il est important de noter que la mixture de plusieurs langages de scripts dans une même page est une cause de ralentissement de l’interprétation au niveau du browser.
On constate encore une fois que les besoins en performance et les besoins en maintenance ne vont pas toujours de pair.
Face à ce dilemme il faut essayer de trouver une solution de compromis en gardant à l’esprit que la performance n’est pas seulement une affaire de temps de réponse mais aussi une affaire de coûts.
 

Notes de bas de page

 

[168] Cette information est incluse par le browser dans l’entête du paquet http envoyé au serveur.
[169] Formatés souvent en XML
 

Dernière mise à jour : ( 20-02-2006 )
< Précédent   Suivant >
Moteur de recherche
Recommander ce site
Collaboration
Téléchargements
Derniers événements
Aucun événement
Sondages

Struts est-il adapté pour le développement des sites e-commerce ?

  
Blogs Ecommerce
Blog de capitaine commerce
top

Ce site a été crée avec le CMS Mambo. Un logiciel gratuit disponible sous licence GPL.

Copyright Ecommerce DEV 2006.

Hosted by SiteGround