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

Développement Web en Java Discussion :

[Stratégie] Traitement asynchrone suite à la validation d'un formulaire web


Sujet :

Développement Web en Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 143
    Points : 68
    Points
    68
    Par défaut [Stratégie] Traitement asynchrone suite à la validation d'un formulaire web
    Bonjour

    Dans mon application, à la suite de la validation d'un formulaire web par un utilisateur un traitement doit être lancé. Ce traitement consiste à construire un fichier avec des données extraites de la base de données puis d'enregistrer ce fichier à un endroit bien précis. Ce traitement est long et on ne peut pas attendre qu'il se termine pour rendre la main à l'utilisateur sur l'interface graphique web.

    Je travaille en JSF. Le point d'entrée du traitement est donc une méthode d'un backing bean. Que me conseillez-vous (en m'expliquant...) ? :

    - Créer un Thread dans lequel mon traitement lourd s'exécute et rendre la main à l'utilisateur en laissant s'exécuter le Thred père.

    - Utiliser JMS


    Si JMS, sachant que mon appli sera déployée sous Tomcat, que faire ? Tomcat possède-t-il un service JMS ? Il ne me semble pas... Sinon quoi utiliser ? OpenJMS, autres .... ?

    Merci d'avance pour votre aide.

  2. #2
    Membre habitué

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 143
    Points : 157
    Points
    157
    Par défaut
    Si tu créée toi-même tes threads, tu t'exposes à pas mal de problèmes :
    - Si ton traitement est lancé plusieurs centaines de fois en même temps, cela risque de faire crasher ton serveur (sur Internet, il faut se méfier)
    - Il faut bien vérifier que ton Thread se termine bien
    Ceci dit il y a plein de librairies aujourd'hui pour t'aider à faire cela (regarde les concurrent util), c'est donc sans doute la solution la plus simple à réaliser.
    Ca l'air un peu bidouille comme ça, mais j'ai fait il y a quelques temps la première page d'un gros opérateur telecom, et on lançait comme cela plusieurs threads à la connexion de chaque utilisateur - ça fonctionnait très bien au final.

    Si tu veux faire "propre", le mieux est d'utiliser JMS. Dans ce cas, je te conseille d'utiliser ActiveMQ (5.1.0 de préférence à l'heure actuelle), qui est un autre projet Apache et qui marche très bien avec Tomcat. Tu peux le lancer à part ou "embarqué" dans ton appli Web (ce qui est plus simple à mettre en place). De même, embarquer un ActiveMQ dans son appli Web a l'air un peu bidouille, mais je viens de voir une très grosse société française qui utilisait avec succès ce système pour des messages vitaux (au sens propre du terme). Bref, c'est également un bon système, et qui a le mérite de bien gérer les threads à ta place. Si tu as le temps, prends plutôt cette deuxième option.
    Julien Dubois

    http://www.ippon.fr

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 143
    Points : 68
    Points
    68
    Par défaut
    Merci pour ta réponse très pédagogique Julien.

    Je vais effectivement partir avec JMS. Cela me permettra de gérer l'aspect asynchrone proprement. Un multi thraed avec un Executor aurait fait l'affaire étant donné que mon appli n'aura pas à supporter de grosses montées en charge (Appli sur Intranet avec 100 utilisateurs en tout et pour tout dispatchés dans le monde). Mais je connais déjà ces techniques de multi thread et ça m'intéresse de découvrir JMS qui est le seule techno de JEE sur laquelle j'ai pas encore bossée.

    Pour le serveur d'appli, je vais partir avec JBoss je pense. Comme à son habitude, Spring fournit une couche d'abstraction qui facilitera l'utilisation de cette techno. Je vais également m'appuyer dessus.

    Merci encore

    A +

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 16/06/2009, 15h50
  2. [W3C] 16 erreurs suite à la validation.Comment les corriger ?
    Par colorandesign dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 06/04/2009, 12h36
  3. [W3C] 39 erreurs suite à la validation.Comment les corriger ?
    Par colorandesign dans le forum Balisage (X)HTML et validation W3C
    Réponses: 9
    Dernier message: 12/12/2008, 23h06
  4. Réponses: 4
    Dernier message: 04/12/2008, 20h46
  5. Recherche Framework pour traitement asynchrone
    Par kisitomomotene dans le forum Langages de programmation
    Réponses: 2
    Dernier message: 02/06/2008, 17h59

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