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

Java EE Discussion :

Couche métier = forcement EJB ?


Sujet :

Java EE

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 35
    Points : 31
    Points
    31
    Par défaut Couche métier = forcement EJB ?
    Bonjour,

    Je me pose une question depuis un moment. Lorsqu'on parle de J2EE et plus précisemment de sa couche métier, on parle tout le temps d'EJB. Est-ce qu'il est pas possible d'avoir autre chose que des EJB comme par exemple un programme Java accessible par RMI ou JMS ?
    Si c'est le cas, est ce que des outils comme JBoss permettent de faire tourner des couches métier qui ne sont pas des EJB ?

    Il y a surrement des topics qui parlent déjà de ça mais j'ai pas réussit à les trouver, si c'est le cas, je veux bien que vous m'envoyez les liens. J'ai bien essayé de chercher mais c'est pas évident pour une question aussi générale.

  2. #2
    Membre expérimenté
    Avatar de viena
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    1 071
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 071
    Points : 1 512
    Points
    1 512
    Par défaut
    tu peux tres bien faire du J2EE sans EJB, avec des classes metier en java par exemple. Pas mal de boite (comme celle ou je bosse actuellement) n'utilisent pas les EJB (lourd, pas encore tres stables... en attente de la version 3) et s'en sortent tres bien. De ce fait, JBoss n'est plus tres utile.
    Tu peux tres bien avoir :
    une couche interface (souvent JSP via struts).
    une couche metier (classes java... eviter de les mettre dans les actions, c'est pas beau...)
    une couche d'acces aux données (via JDBC ou mapping (hibernate, CastorJDO....))
    Cours et tutoriels pour apprendre Java , FAQ Java, et Forum Java
    "La liberté de tout être s'arréte là où commence celle de l'autre... Respecter l'autre, c'est préserver sa liberté d'être, de penser et de vivre"

  3. #3
    Membre confirmé
    Avatar de bmoussaud
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    218
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2003
    Messages : 218
    Points : 555
    Points
    555
    Par défaut
    Pour faire simple je dirait que l'utilisation des EJB pour une couche métiers est necessaire si tu as :
    * besoin d'un contexte transactionnel
    * besoin de sécurité (role, autorisation,...)
    * besoin de distribution (application répartie)
    * besoin de fortes montée en charges (présente ou à venir)

    si tu réponds oui à au moins 1 point, ca se réflechit
    à 2 la réponses est OUI !

    Les EJB ne sont pas compliqués ,...qu'on se le dise...!

    NB: dans les 4 points, je n'ai pas parlé de persistence et c'est voulu !
    Benoit Moussaud - XebiaLabs - Automatisation des déploiements. Screencast & Demo

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 35
    Points : 31
    Points
    31
    Par défaut
    Tout d'abord, merci de vos réponses.

    La solution dont tu parle viena est celle que j'utilise actuellement. Le problème est que je vais avoir une application qui n'a pas d'interfaçe web, ni d'interfaçe graphique d'un autre type d'ailleur, c'est en faite un composant métier qui devra rendre certains services à d'autres composants.
    Une première solution est d'écrire les classes du composant métier en pure java, de faire une librairie que les autres composant inclus.
    Mais je me demandais s'il était pas possible que mon composant métier tourne tout seule dans sa propre JVM et soit appelé par les autres composants de manière distante. Par exemple par RMI.
    Je me demandais dont si un serveeur comme JBoss par exemple permettait de faire tourner mon composant métier bien qu'il ne soit pas EJB. Et si ce n'est pas le cas, comment je fais pour rendre mes services accessibles ?

  5. #5
    Membre confirmé
    Avatar de bmoussaud
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    218
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2003
    Messages : 218
    Points : 555
    Points
    555
    Par défaut
    pour ton probleme de distribution je te propose d'utiliser les EJB (un des points que j'avais cité) car faire du rmi classique ca va etre plus difficile à deployer par la suite....
    Sinon dans ton cas tu peux utiliser les WebServices : soit sous forme SOAP (cf projet AXIS de jakarta) soit tout simplement des servlets propriétaires ou tu passerais les arguments en GET (sur URL avec des &). Si ton modèle est simple cette derniere solution peut être efficace tout en restant avec des technologies simple et éprouvés[/b]
    Benoit Moussaud - XebiaLabs - Automatisation des déploiements. Screencast & Demo

  6. #6
    Membre expérimenté
    Avatar de viena
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    1 071
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 071
    Points : 1 512
    Points
    1 512
    Par défaut
    les WebServices me semblent en effet une excelente solution.
    Cours et tutoriels pour apprendre Java , FAQ Java, et Forum Java
    "La liberté de tout être s'arréte là où commence celle de l'autre... Respecter l'autre, c'est préserver sa liberté d'être, de penser et de vivre"

  7. #7
    Membre confirmé
    Avatar de bmoussaud
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    218
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2003
    Messages : 218
    Points : 555
    Points
    555
    Par défaut
    Citation Envoyé par viena
    les WebServices me semblent en effet une excelente solution.
    Merci
    Benoit Moussaud - XebiaLabs - Automatisation des déploiements. Screencast & Demo

  8. #8
    ego
    ego est déconnecté
    Rédacteur

    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    1 883
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 883
    Points : 3 510
    Points
    3 510
    Billets dans le blog
    2
    Par défaut
    juste histoire d'ajouter peut être qq précisions.
    Dans le cas d'utilisation de composants par d'autres applis, sans connaitre ton contexte et de manière générale, je te recommande de créer des objets métiers en pur Java.
    Ensuite, en fonction des accès distribués dont les autres applis auront besoin, cela te permettra facilement de wrapper tes objets métiers dans des EJB ou des WebServices. Tu peux regarder pour cela de design pattern Business Delegate.
    Un autre avantage de faire des classes Java pures est que tu peux tester facilement tes objets dans un contexte en dehors du conteneur Web/EJB.
    C'est aussi très facile pour des développeurs ne connaissant pas J2EE de réaliser des objets métiers et un spécialiste de J2EE pourra se charger de wrapper ces objets dans la techno voulue. Si tu as du temps tu pourras utiliser pour cela un outil comme XDoclet ou si tu as encore plus de courage, tu pourras TRES avantageusement regarder le framework SPRING. Je te le recommande vivement, au moins pour l'avenir.

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 35
    Points : 31
    Points
    31
    Par défaut
    Je suis effectivement parti sur la solution d'écrire des classes en pure Java pour implémenter mes services métiers. J'ai également une interface java à partir de laquelle dérive l'implémentation. Ensuite, j'utilise le design pattern factoy pour récupérer cette implémentation métier de manière transparente vis à vis du client de mes services. Ainsi, si dans l'avenir, je veut utiiser des EJB au lieu d'utiliser directement l'implémentation, je mettrais en place comme tu l'indique ego le design pattern Business Delegate et ma factory renverra ce delagate à la place de l'implementation. Cette dernière sera wrapper alors en EJB.

    En tout cas, merci beaucoup pour toutes vos réponses.

  10. #10
    ego
    ego est déconnecté
    Rédacteur

    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    1 883
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 883
    Points : 3 510
    Points
    3 510
    Billets dans le blog
    2
    Par défaut
    à tes heures perdues, tu pourras lire la doc du framework SPRING qui t'en dira long sur la manière de concevoir des objets métiers (entre autres). Tes classes pures Java, on les appelle aussi POJO - Plain Old Java Objects

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Intégration des couches métiers dans Rails
    Par MeMyself&I dans le forum Ruby on Rails
    Réponses: 2
    Dernier message: 19/03/2008, 12h00
  2. Architecture couche métier <-> couche présentation
    Par bozo614 dans le forum Visual C++
    Réponses: 7
    Dernier message: 22/11/2007, 17h11
  3. [EJB] Architecture couche métier + packaging
    Par st0ne dans le forum Java EE
    Réponses: 2
    Dernier message: 26/10/2007, 10h57
  4. Relation entre EJB, couche métiers, JSP et servlet
    Par infinity21 dans le forum Servlets/JSP
    Réponses: 13
    Dernier message: 05/03/2007, 23h50
  5. Organisation Couche métier
    Par tatemilio2 dans le forum Hibernate
    Réponses: 1
    Dernier message: 08/09/2006, 14h29

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