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 Discussion :

Utiliser Java EE pour les batchs, est-ce pertinent ?


Sujet :

Java

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Utiliser Java EE pour les batchs, est-ce pertinent ?
    Que pensez-vous de l'utilisation de Java EE pour les traitements batchs ?

    Quelqu'un a-t-il un retour, positif ou négatif, d'une boite ayant fait cette expérience ?

    Sinon, qu'utilisez-vous pour vos batchs ?

  2. #2
    Membre éclairé
    Avatar de gerald2545
    Profil pro
    Inscrit en
    Février 2003
    Messages
    744
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 744
    Points : 773
    Points
    773
    Par défaut
    bonsoir,
    qu'entends-tu exactement par batch?
    quel est le traitement que tu veux effectuer?

  3. #3
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Points : 4 314
    Points
    4 314
    Par défaut
    Par batch, je suppose que tu veux parler d'un traitement qui s'effectue régulièrement (tous les jours à minuit par exemple)

    Si tu veux utiliser java pour effectuer le traitement, pourquoi pas... tout dépend du type de traitement batch. Par contre, si il s'agit d'utiliser java pour planifier les traitements, je suis moins convaincu. C'est possible en utilisant l'API Quartz par exemple, mais cela nécessite d'avoir ton programme java qui tourne en permanence.

    C'est pourquoi j'utiliserais plutôt des outils proches du système pour la planification: tâches planifiées sous Windows, tâches CRON sous Linux...

  4. #4
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Je veux dire par là traitement de masse, qui s'oppose à un système transactionnel ou interactif.

    Typiquement, un batch est un traitement que l'on lance le soir pour avoir le résultat le lendemain matin. Par essence, c'est un traitement long (sinon, autant faire un système interactif, comme une page web comprenant un script), qui gère des quantités colossales de données.
    Ex : synchronisation entre deux bases, calcul des intérêts des comptes rémunérés d'une banque, passage des francs en euro des comptes, calcul de statistiques ou extractions particulières...

    Un des principes est que si un problème est rencontré pour un bout du traitement, au lieu d'avoir un message box retry/cancel, on a un message d'alerte dans les logs, et le traitement n'est pas forcément arrêté pour autant.

    C'est du back-office, invisible à l'utilisateur final.

    Les batchs sont courants en entreprise mais pas très utiles pour les besoins personnels.

  5. #5
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Points : 4 314
    Points
    4 314
    Par défaut
    De nombreuses entreprises effectuent des traitements batchs en java sans que celà pose le moindre problème... A mon sens, il n'y a aucun problème à faire effectuer à un programme java des traitements de masse

    Ensuite, si on veut vraiment une performance optimale, il va falloir réveiller le vieux débat "Java vs C++" du point de vue des performances: il y a déjà une littérature très (trop) abondante sur le sujet.

  6. #6
    Membre chevronné
    Profil pro
    Fabrication GED
    Inscrit en
    Octobre 2005
    Messages
    1 405
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Fabrication GED

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 405
    Points : 1 958
    Points
    1 958
    Par défaut
    Il faut étudier le batch, ce n'est pas rien qu'il existe des analystes d'exploitation (j'en fait partie ).
    Si les traitements ne sont pas trop importants en terme de charge machine, tu peux y aller et tout faire en java. Maintenant si les traitements batch risque de froler l'ensemble du temps hors TP, c'est pas très conseillé. En effet, avec java, lorsque tu lances un programme, cela se passe en deux temps : chargement de la JVM puis programme lui-même. Le fait de devoir charger la JVM à chaque programme peut te faire exploser les temps (je prend mon exemple où c'est environ 30 000 programmes lancés par nuit...).

  7. #7
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    J'aurais tendance à dire que tout dépend de la nature de tes batchs.
    Personnellement, j'ai développé un moniteur de batch java, donc, la jvm est loadée une seule fois, les traitements se faisant par des threads.
    Il est vrai qu'à l'époque, je n'avais pas entendu parler de Quartz (j'aurais au moins regardé comment il fonctionne avant de développer un spécifique)

    Ceci dit, il n'y a rien de sorcier dans ce genre de développement.
    En gros, tu as un thread qui boucle sur des définitions de travaux, et quand l'heure est arrivée, tu lances un thread pour exécuter la tâche.
    J'utilise des classes étendant Thread pour le codage d'un type de tâche, du coup, l'appel est standard

    Bref, il y a certainement mieux, mais pourquoi utiliser une usine à gaz quand on a des besoins limités...

    A+

  8. #8
    Rédacteur
    Avatar de lunatix
    Homme Profil pro
    Architecte technique
    Inscrit en
    Novembre 2002
    Messages
    1 960
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 960
    Points : 3 738
    Points
    3 738
    Par défaut
    il y a même des projets solides en préparation autour de ce theme

    spring-batch
    et une explication blog spring-batch/

    ca peut inspirer

  9. #9
    Membre habitué Avatar de le Daoud
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    287
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2002
    Messages : 287
    Points : 169
    Points
    169
    Par défaut
    Salut,

    Je développe actuellement un site en J2EE. J'ai aussi quelques batchs à faire tourner. Pour cela j'utilise le Scheduler de JBoss. L'avantage : j'appelle mes EJBs Session et je bénéficie donc de tous leurs avantages. Inconvénient : c'est propre à JBoss.

    C'était pour info.

  10. #10
    Rédacteur
    Avatar de lunatix
    Homme Profil pro
    Architecte technique
    Inscrit en
    Novembre 2002
    Messages
    1 960
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 960
    Points : 3 738
    Points
    3 738
    Par défaut
    il me semble qu'il y a des EJB timer dans la norme EJB
    sinon, perso j'utilise quartz

Discussions similaires

  1. utiliser le calendrier pour les champs date
    Par montassar.nizar dans le forum JDeveloper
    Réponses: 3
    Dernier message: 17/08/2008, 15h31
  2. Utilisation des références pour les tableaux
    Par Bouboubou dans le forum Tableaux - Graphiques - Images - Flottants
    Réponses: 4
    Dernier message: 14/12/2005, 14h47
  3. utilisation de UpdateResource pour les icônes ?
    Par JuanLopez1966 dans le forum Windows
    Réponses: 5
    Dernier message: 12/01/2005, 09h13

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