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 :

GWT et l'architecture 3 tiers


Sujet :

GWT et Vaadin Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de baya1
    Inscrit en
    Février 2007
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 112
    Par défaut GWT et l'architecture 3 tiers
    Bonjour à tous,

    Je suis débutante en GWT. Je voudrais faire une application web 3 tiers. Pour faire ça, on a l'habitude d'utiliser le modèle MVC selon J2EE (jsp, servlet et EJB). mais on m'a dit que gwt était plus intéressant et plus facile à utiliser.

    ma question est: est-ce que avec gwt on peut faire une architecture 3 tiers et comment? sinon, est ce qu'il y a une autre alternative?

    Je vous remercie d'avance pour votre aide.

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2009
    Messages : 36
    Par défaut
    Salut,

    Une architecture 3tiers c'est pour moi 3 couches (web, métier, dao).
    Le MVC lui ne s'applique qu'à la "partie" web (qui correspondrait à GWT). Je dirait donc oui on peut faire de l'architecture 3tiers avec GWT.

    En espérant aider.

  3. #3
    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
    Par défaut
    Il y a le pattern MVC (Modèle, Vue, Contrôleur) qui peut être appliqué à des composants ou a des applications.

    Selon moi, il faut comprendre que le MVC, c'est du découplage de responsabilités : à chacun son job !
    M, tu gères les données.
    V, tu gères l'affichage des données.
    C, tu contrôle les échanges entre M et V
    Cela évite de faire tout n'importe où ...

    Dans des composants GWT, comme SWT ou Swing d'ailleurs, on peut voir +/- ce pattern MVC mais c'est un autre sujet.

    Si on parle de MVC appliqué à une application web, on peut voir le modèle en couche (3 tiers pour les adeptes des 3 couches / certains ont rajoutés d'autres couches pour d'autres niveaux de découplage) comme une application du pattern MVC à une web app :
    • La couche accès aux données (Le modèle) : Les EJB.
    • La couche présentation (La vue) : Les pages JSP réservées pour l'affichage.
    • La couche métier (Le contrôleur) qui fait le lien entre les deux : Les servlets.

    Ceci est ma vue personnelle car les séparations ne sont pas toujours nette :
    Dans les EJB, il n'y a pas que des setters/getteurs, il y a aussi du code métier. Lorsque les EJB ne sont pas utilisés, on a fait de POJOS (couche DAO) et des classes métier qui manipulent ces POJOS (couche service)
    Les servlets qui font le lien entre l'ihm web et les dao, c'est du code d'actions (qui souvent appellent les services métiers)

    Dans le cadre d'application WEB, GWT s'attache principalement à la couche présentation (partie cliente de GWT). Les composants GWT te permettent de faire ta vue à la place des JSP.
    Les services RPC peuvent être vus comme des contrôleurs qui font l'échange entre le client et le serveur. C'est par défaut des servlets et jouent donc le rôle dévolu au servlet dans l'architecture java 3 tiers classiques.
    Une difficulté de GWT, c'est lorsqu'il faut faire transiter les POJOS java jusque dans la partie cliente. Ils doivent être convertible en javascript et là, il peut y avoir des difficultées (cf librairie GILEAD)

  4. #4
    Membre confirmé Avatar de baya1
    Inscrit en
    Février 2007
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 112
    Par défaut
    Merci beaucoup pour vos réponses,

    Donc si je comprends bien, si on veut utiliser le modèle mvc pour trois couches, avec GWT, on aura:
    - la partie vue : GWT
    - la partie modèle: EJB
    - la partie contrôleur: RPC

  5. #5
    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
    Par défaut
    Tu peux te dire cela mais garde à l'esprit que les frontières ne sont pas aussi nettes : RPC, c'est du GWT. Et par EJB, je te conseillerai plutôt les EJB3 : Les simples Pojos et pas les anciens EJB2 (assez lourd).

    Donc :

    Modèle :
    Ecris des POJO avec des annotations JDO ou JPA qui représentent tes entités (objets de ton modèle objet / beans correspondants aux tables de ta base).
    Ecris une couche de service (appelons la couche domaine pour éviter la confusion avec les services RPC) indépendante de GWT (juste du métier) qui expose des méthodes métiers pour manipuler tes POJOS. Ex : un service de stock : StockService : add(Product p); remove(Product p); getProductById(int id), getProductBySupplier(int supplierId) . ...

    Vue :
    Composants GWT pour la vue. Je te conseillerai de créer des classes de vues (dérivant de composites) et c'est dans elle que tu va faire une hiérarchie de omposants GWT.

    Contrôleur :
    A cheval entre les deux :
    Les interfaces des services RPC appelées à partir des composants GWT.
    L'implémentation du service RPC qui appelle les services de ta couche domaine.

    Remarques :
    • Tes vues et tes interfaces de services RPC sont dans la partie cliente de GWT.
    • Tes implémentations de services RPC et tes services (métiers) de domaine sont dans la partie serveur de GWT.
    • Tes objets métiers (POJO / EJB) peuvent rester dans la partie serveur si ils ne transitent pas via le RPC sinon ils devront être dans la partie cliente.
      Si tu as des problèmes à ce niveau, soit tu utilses un truc comme GILEAD, soit tu as des EJB côté serveur et leur équivalent côté client et il ta faut faire les transformations de l'un à l'autre ...
    • Si je te conseille de créer des services de ton domaine indépendant des services RPC de GWT, c'est pour te permettre de réutiliser tous tes règles et objets métiers indépendamment de ton ihm en GWT, par des WebService par exemple ou autre ...

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2009
    Messages : 36
    Par défaut
    Je ne voyais pas ça de manière aussi large. Pour moi le MVC ne s'appliquait qu'à la partie web (donc GWT) seulement, les couches métier et DAO n'en faisant pas partie.

    Dans l'application sur laquelle je travaille c'est comme ça que j'ai appliqué le MVC ...
    Les Vues sont les panels, windows etc de GWT (Ext-GWT en fait).
    Les Models sont en quelques sortes les RPC (le serveur manipule les objets et me renvois ceux ci mis a jour).
    Les Contrôleurs gèrent les Events et envoient les informations à qui de droit (Vues ou Services RPC).

    Est ce 1 erreur de ma part que d'avoir vue les choses de cette façon ?

Discussions similaires

  1. Architecture 3 tiers : quelle est la véritable nouveauté ?
    Par unix27 dans le forum Langages de programmation
    Réponses: 8
    Dernier message: 11/03/2007, 18h21
  2. [N-Tier] Problème conception architecture 3-tiers
    Par Royd938 dans le forum Autres
    Réponses: 3
    Dernier message: 17/06/2005, 11h47
  3. [info] Architecture 3-tiers
    Par Shiryu44 dans le forum Servlets/JSP
    Réponses: 22
    Dernier message: 29/03/2005, 10h30
  4. [VB.NET] Architecture n-tiers
    Par Dnx dans le forum ASP.NET
    Réponses: 2
    Dernier message: 08/02/2005, 19h10
  5. [Design Patterns] Architecture 3 tiers
    Par HPJ dans le forum Design Patterns
    Réponses: 1
    Dernier message: 29/07/2003, 11h49

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