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 :

Java JEE + Batch


Sujet :

Java EE

  1. #1
    Candidat au Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2
    Points : 3
    Points
    3
    Par défaut Java JEE + Batch
    Bonjour,

    J'ai besoin d'avis/d'aide.

    Je travaille actuellement sur un nouveau projet pour pouvoir utiliser JEE au sein de mon entreprise.
    Le POC est concluant mais le jour de la présentation, une question est survenue:

    --> Dans un but de réutilisation de code, de standardisation, que se passe-t-il, pour une classe annotée Stateless (ou autres).
    Si nous voulons utiliser celle-ci dans un batch par exemple... Quid aussi de tout ce qui est laissé géré par le conteneur comme les transactions, l'entityManager ?

    Je remarque qu'il y a un nouveau standard dans la version 7 "JSR 352" qui permet de faire du batch... Quelqu'un a-t-il de l'expérience dans ce domaine, quel est son avis, est ce que cela pourrai être la solution à notre question ?

    Merci d'avance de votre participation.

  2. #2
    Membre régulier
    Profil pro
    Développeur Java
    Inscrit en
    Juillet 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 42
    Points : 96
    Points
    96
    Par défaut
    Je ne suis pas certain de bien comprendre ton soucis mais voici malgré tout quelques éléments quant à la réutilisabilité du code.

    Même s'il est possible d'invoquer un Stateless bean depuis pas mal d'endroits, je recommande généralement à mes développeurs de placer la logique de traitement plutôt dans des beans CDI, le Stateless ne gérant alors que l'aspect transactionnel et d'éventuels conversions d'exceptions. A mon sens, la meilleure brique, la plus facilement réutilisable en environnement JEE, est le bean CDI. CDI est un outil fantastique de souplesse pour la réutilisabité et l'extension. Je recommande également de faire de petits beans CDI et de déléguer les traitements à un autre bean CDI de manière à avoir des classes à très forte cohésion (elle ne gère qu'un aspect du problème et un seul). Ainsi, grâce à CDI, plus les classes sont petites et ont une forte cohésion, plus le code est extensible, simple à comprendre et lisible (EDIT: et surtout testable unitairement !!). Le contract fonctionnel de chacun de ces beans CDI doit être extrêmement précis et clair. Le seul point point à garder en tête est alors le nombre de beans que l'implémentation de CDI devra scaner au démarrage du conteneur.

    Ai-je répondu à ta question ?

  3. #3
    Membre régulier
    Profil pro
    Développeur Java
    Inscrit en
    Juillet 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 42
    Points : 96
    Points
    96
    Par défaut
    Quant à la "JSR 352", il s'agit d'une reprise presque à l'identique des batchs de Spring qui sont un standard éprouvé depuis pas mal d'années. Je n'ai malheureusement aucun retour concret au niveau d'un environnement de production à faire pour le moment. Sans doute que d'autres ont déjà mis en production cet outil très intéressant qui vient combler un manque dans JEE.

  4. #4
    Membre du Club
    Homme Profil pro
    Oracle Java EE 6 Architect
    Inscrit en
    Mai 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Oracle Java EE 6 Architect

    Informations forums :
    Inscription : Mai 2015
    Messages : 7
    Points : 67
    Points
    67
    Par défaut
    EJB ou CDI c'est presque la meme chose, la difference est comment ils sont invoqués.
    CDI le container regarde le scope (session, application, requete , conversion)
    EJB le container regarde le hashmap si le bean is stateful ou stateless ou singleton
    Les CDI ou EJB sont reutilisables s'il sont deployés dans un serveur d'app. qui est java EE 6+ compliant, en ce qui concerne leur design, les principes sont les memes.
    En voici quelques uns

    - forte cohesion (comme le dit le post precedent)
    - couplage faible
    - Separation on concerns (pense a la separation des pouvoirs dans la vie courante )
    - Single responsability principle (ton EJB ou CDI ne doit s'occuper que d'un domaine d'affaire bien precis)
    - keep it simple and clear (soit clair et concis dans ta conception)
    ...

    Concernant java EE + batch
    - Dans un passé pas tres lointain, on utilisait des servlets, puis on les appelait dans la crontab unix en utlisant la commande wget. ça fonctionnait assez bien.
    Puisque dans la servlet etait injecté le EJB qui faisait la logique d'affaire, qui lui etait deployé dans le container java EE et beneficiait ainsi du context transactionnel et qui utilise une implementation JPA (entityManager) pour l'access au data,
    - Quartz/Spring est arrive et il est vraiment bon pour ça, il est largement utilisé il utilise la notion de crontab expression (comme unix crontab) pour l'appel de ta classe batch, qui elle va appeler ton ou tes EJB qui sont deployes dans le container
    - Java EE avec JSR 352 vient combler ce vide

    Moi je partirai avec le JSR 352

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