IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

GWT et Vaadin Java Discussion :

Application client serveur avec GWT


Sujet :

GWT et Vaadin Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 26
    Points : 20
    Points
    20
    Par défaut Application client serveur avec GWT
    Bonjour à tous,

    Cherchant un moyen de créer une application web, je suis tombé sur GWT. Je trouve le concept excellent, cependant, je ne comprend pas bien comment la partie client et serveur sont séparée dans mon projet Eclipse?
    Peut-être n'ai je pas compris encore la mode de fonctionnement d'une application web java?

    Quelqu'un peut-il me renseigner ?

    Merci

    Kevin

  2. #2
    Rédacteur
    Avatar de benwit
    Profil pro
    dev
    Inscrit en
    Septembre 2004
    Messages
    1 676
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 676
    Points : 4 265
    Points
    4 265
    Par défaut
    Un site web :
    Un serveur web (apache, ...) délivre du contenu statique (pages html, feuille de styles css, images png, ... qui se trouvent sur le serveur) au client web (firefox, ie, ...)

    Une application web (Java pour l'exemple) :
    Un serveur d'application (tomcat, ...) délivre du contenu dynamique (code html généré à partir de servlets et/ou pages jsp et de données (fichiers, bdd, ...), ...) au client web. Il délivre également du contenu statique (html, css, png, ...) ou peut déléguer cette tâche à un serveur web.

    Généralement, l'application est divisée en couches :
    - la couche de présentation, l'interface graphique (les vues)
    - la couche applicative, les services (les traitements)
    - la couche d'accès aux données (le modèle)

    Avec les technologies classiques, l'application fabrique l'interface graphique (les pages web) à partir des données et du code "métier". Cette fabrication se fait dynamiquement côté serveur et est envoyé au client web (ton navigateur) en fonction de ses requêtes.
    Avec GWT, tu peux écrire une application qui sera compilée en "code statique" (javascript, html, images). Lorsque le client se connecte au serveur web, il reçoit ce code statique. Par la suite, il reçoit uniquement les données et les traite en manipulant le DOM de la page HTML via Javascript.
    Pour résumer, GWT te permet donc d'écrire en Java une application en Javascript/HTML sans écrire une ligne de Javascript.
    Remarque que si cela est parfaitement suffisant pour une petite application, tu atteint vite les limites. Pour des questions de sécurité, le navigateur et donc ton application javascript/html n'a pas accès au disque dur (sauf cas particuliers non détaillé ici).
    Si ton application souhaite lire et sauver des données, elle doit interagir avec son serveur d'origine. Tu as donc une partie "cliente" et une partie "serveur".

    Avec les technologies classiques, on ne fait pas trop cette distinction client/serveur (mis à part pour distinguer les données accessibles depuis l'extérieur).
    Avec GWT, on distingue la partie cliente de la partie serveur car seul le code Java de la partie cliente sera transformé en javascript (la fameuse génération du contenu statique obtenu par compilation).

    Je t'ai montré que lorsque l'application a besoin de gérer des données, la partie serveur est obligatoire. Cette partie serveur peut être écrite :
    - en Java (et là, tu as accès à toute les librairies Java, ce qui n'est pas le cas de la partie cliente car je te le rappelle, son code Java est transformé en Javascript et on ne peut donc pas tout faire) Pour te faciliter la tâche, GWT te propose de faire du RPC (Permet à du code client d'appeler des méthodes Java du coté serveur).
    - avec un autre langage tel que PHP (les données sont alors échangée via JSON/XML entre la partie cliente et la partie serveur via un classique échange de requêtes/réponses)

    Remarque :
    Pour respecter la séparation client/serveur nécessaire à GWT et le pattern MVC (Modèle, Vue, Controleur) recommandé pour éviter de tout mélanger, la partie cliente implémente la vue, appel des services (interfaces dans la partie cliente) implémentés coté serveur (code qui accède aux données). Bien entendu, les objets envoyés par le serveur au client devront être dans un package client pour que ce dernier puisse les lire.

    Dans le dossier source de ton projet eclipse :
    - Si tu fais juste une application javascript (qui n'a pas besoin de partie serveur) ou si tu n'utilises pas le mode RPC de gwt (la partie serveur est écrite en php, ou tu utilises des webservices, ...), tu as uniquement un package client qui sera intégralement compilé.
    - Si tu développes une application qui utilise le mode RPC de gwt, tu as un package client qui contient le code Java converti en Javascript (attention aux limites, tu ne peux pas utiliser toutes les classes et librairies Java) et un package serveur qui contient le code Java qui n'a pas besoin d'être compilé en Javascript (aucunes limites)

    Remarque :
    Tu as également un dossier public où tu dois mettre les ressources statiques (css, images, ...)

    Tout le monde savait que c'était impossible. Il est venu un imbécile qui ne le savait pas et qui l'a fait. Marcel PAGNOL
    On ne savait pas que c'était impossible, alors on l'a fait. John Fitzgerald KENNEDY.
    L'inexpérience est ce qui permet à la jeunesse d'accomplir ce que la vieillesse sait impossible. Paul (Tristant) BERNARD
    La meilleure façon de prédire l'avenir, c'est de l'inventer.

Discussions similaires

  1. application client-serveur avec les sockets
    Par matheo600 dans le forum C++
    Réponses: 1
    Dernier message: 20/04/2008, 17h21
  2. Application Client Serveur avec DB Oracle
    Par ouranos21 dans le forum JDBC
    Réponses: 16
    Dernier message: 10/01/2008, 09h42
  3. application client/serveur avec les sockets
    Par baya1 dans le forum JBuilder
    Réponses: 1
    Dernier message: 24/02/2007, 15h37
  4. Réponses: 1
    Dernier message: 01/02/2006, 17h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo