WebTool

From Isiwiki

Jump to: navigation, search

Quelques remarques sur les environnements de développement pour le Web.


Contents

[edit] Eléments d'une application Web

Une application Web est structurée de la façon suivante:

  • du coté client un browser capable:
    • d'émettre des requêtes avec des paramètres vers les serveurs
    • d'interpréter les réponses des serveurs
    • de metre en forme ces réponses pour les afficher
    • de gérer les interactions avec l'utilisateur
  • du coté serveur un programme capable:
    • d'interpréter les requêtes avec des paramètres vers les serveurs
    • d'émettre les réponses vers les clients
    • d'utiliser d'autres ressources ou services pour répondre (répertoire de fichiers, Base de données, ...)
    • de gérer les interactions avec l'utilisateur

[edit] modèle HTTP

Le départ du Web avec le HTTP 0.9 est basé sur:

  • du coté client un browser capable:
    • d'émettre URL (serveur + path + fichier
    • d'interpréter le MIME Type (type de la réponse:html, txt, ... )
    • de metre en forme la réponse (balisage du HTML)
    • de gérer les "clicks" sur les ancres (nouvelles URL)
  • du coté serveur un programme capable:
    • d'interpréter les requêtes avec des paramètres vers les serveurs (path + fichier)
    • envoi du fichier vers le client + MIME type qui indique la nature du fichier (html, txt, ... )

Les versions ultérieur 1.0, 1.1 vont améliorer les entêtes, permettre une persitence de la connexion, de multiple requêtes pour un même client simultanément. Ces améliorations optimisent la vitesse de transfert des informations et donc autorise des pages complexes du point de vue graphique.

Mais HTTP reste un protocole "stateless". Chaque requête est traitée pour elle-même sans tenir compte du passé. Il n'y a pas de modification de l'état du serveur après avoir traité une requête pour un client. Une requête donnera toujours le même résultat. Le serveur HTTP est donc très simple puisqu'il ne doit pas garder des informations sur ses clients et les requêtes qu'ils ont effectués.

[edit] ajouter des transactions sur HTTP

On comprend bien que pour effectuer une transaction (au sens des bases données, c'est à dire un ensemble de sous tâches qui contribuent à une action)il sera sans doute nécessaire d'accéder à plusieurs pages différentes donc il faut pouvoir garder des informations sur l'état de la transaction, par exemple les étapes déjà accomplies et les paramètres saisis. Ces informations peuvent être conservées du coté du client et/ou du coté du serveur. On trouve les mécanismes suivants:

  • les cookies; qui sont des informations conservées par le client. Le serveur les crée et les met à jour pour suivre l'avancement d'une tâche
  • les sessions du côté du serveur; on crée des sessions qui identifient les clients. Les variables de la session conservent l'état de la tâche.
  • les variables cachées; Dans les pages avec des formulaires, on crée des variables cachées qui conservent l'état de la tâche.
  • exécuter une application dans le browser; ajouter la possibilité d'exécuter du code, par exemple avec les applets ou avec applications flash.

[edit] les applications riches!

Les applications riches (Rich Internet Applications-RIA) sont des applications web qui sont comme des applications autonomes sur un ordinateur. Cependant, elles sont distribuées par internet et généralement sont exécutées dans le navigateur. L'interactivité et la fluidité de l'exécution sont primordiales pour le succés de ces applications.

On trouve les technologies suivantes pour la réalisation des RIA:

  • javascript
  • applet
  • requête sans recharger la page
  • java Web Start
  • plugins autres (flash)

[edit] Les outils pour développer

javascript incontournable!

  • oui
    • ajax
    • jsp
    • jsf
  • on génére du javascript
    • gwt; initiative de Google, aout 2007 (version 1.4 Open source). L'idée est de développer comme en java (Swing). Mais la partie à déployer sur le client est compilée en Ajax.
    • echo2
  • langage déclaratif; on génére pour un pluqing (java, flash):
    • javafx; initiative de Sun, mai 2007. Un langage déclaratif de script pour générer des interfaces web. la syntaxe du langage est proche de celle de java.
    • flex; initiative de Adobe, 2006 (en open source depuis avril 2007). Un langage déclaratif de script pour générer des interfaces web. Le moteur est celui de flash. La syntaxe du langage est du XML
Personal tools