vendredi 4 février 2011

04 - le flux général des données

Dans le post précédent, nous avions commencé à parler de modèle client, de transformation xsl ou de css. Afin de mettre tout cela en perspective, nous allons présenter le flux général des données auquel nous pensons à priori pour Clojadventure. En voici le schéma :

flux de données

Décrivons les étapes du flux de données :
  1. l'utilisateur interagit avec son navigateur web;
  2. le navigateur envoie une requête Http au serveur;
  3. le serveur renvoie dans la réponse Http le 'modèle client' :
    1. en fonction de l'action et de l'état courant, un nouvel état est créé. Utilisation du 'modèle serveur';
    2. cet état est sauvegardé en base. Utilisation du 'modèle de stockage';
    3. une vue partielle du nouvel état courant est assemblé. Utilisation du 'modèle client';
    4. cette vue est convertie en au format XML;
    5. ce 'modèle client' au format XML est retourné au navigateur web;
  4. le client interprète le 'modèle client' pour générer un rendu HTML :
    1. une transformation XSL permet de générer la structure HTML cible;
    2. le navigateur crée un rendu visuel à partir du HTML et des propriétés CSS;
  5. l'utilisateur obtient le retour visuel de sa requête.

Les principaux axes de travail identifiés afin de mettre en oeuvre ce flux de données sont :
  • la gestion des requêtes http : en se basant sur Google App engine et les librairies clojure;
  • le modèle serveur : en fonction du modèle client;
  • la gestion du stockage : en se basant sur Google App engine;
  • le modèle de stockage : en fonction du modèle serveur;
  • les modèles client : en fonction des écrans;
  • la conversion des données en xml : cf librairies clojure;
  • la transformation xsl : mise en place des techniques;
  • les fichiers XSL : en fonctions des écrans;
  • les fichiers CSS : en fonctions des écrans.

Ces axes seront développés dans les posts à venir.

jeudi 3 février 2011

03 - modélisation

Avant d'aller plus loin dans la description des environnements de développement, j'aimerai vous parler un peu de la phase de modélisation du projet.

Nous utiliserons l'outil UMLet. Petit outil gratuit permettant une modélisation UML complète et customisable tout en restant très simple et intuitif d'utilisation. Bon nombre d'éditeur devrait s'inspirer de la conception de ce petit outil.

Nous utiliserons une méthodologie itérative. L'idée pour modéliser un logiciel existant est simple, vous prenez un écran et vous modélisez ce que vous voyez. Puis vous prenez un autre écran et vous affinez votre modélisation ainsi de suite. Enfin, vous complétez par toute information dont vous disposez par ailleurs.