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

Concurrence et multi-thread Java Discussion :

[Conception] Threading


Sujet :

Concurrence et multi-thread Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 22
    Par défaut [Conception] Threading
    Bonjour,

    Jaimerais avoir vos avis sur ma problématique. Voici ce que je souhaite mettre en place:

    - un objet "Référentiel" (stockage des données)
    - 2 objets "Panel" (interfaçe graphique)
    - 2 objets "Hard" (pilotage dun périphérique du port série)

    Chaque "Panel" est lié à un "Hard" puisquil est son "afficheur".

    Voilà comment je vois la chose:

    Au lancement, mon application, cherche les threads Hard, si elle ne les trouvent pas, elle les instancies avec des données issuent dun fichier.
    Ensuite, elle lance les Panel, qui se connectent avec leur propre Hard.
    Jusque là, tout va bien...

    Maintenant je souhaite que mes objets communiquent entres-eux. Par le biais dEvent mais pas seulement.
    Il faut par ex., que Panela puisse appeller une méthode de Harda ou au Référentiel pour y extraire des infos.
    Mais surtout, il faut que je puisse quitter mon application sans tuer les threads Hards

    Jaimerais tout simplement savoir si je ne me fourvois pas dans la solution et si vous aviez des commentaires/mises en garde/exemples/suggestions...

    Merci

  2. #2
    Membre éprouvé Avatar de jerome.petit
    Inscrit en
    Novembre 2002
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 78
    Par défaut Re: [Threading] ??
    je ne vois pas très bien ce que tu veux dire par
    Citation Envoyé par mouloude
    Mais surtout, il faut que je puisse quitter mon application sans tuer les threads Hards
    Tu veux simplement fermer les fenêtres et que l'appli continue de tourner, ou avoir réellement deux processus indépendants ?
    cela change l'architecture de ton appli.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 22
    Par défaut
    Justement, il serait pêtre temps que je me pose la question, dou mes inquiétudes.
    Je souhaite effectivement pouvoir quitter complètement mon application.
    En dautres mots, rendre le fonctionnement du pilotage des port série indépendant de la partie graphique.
    Il nest pas prévu pour le moment de faire tourner tout ça sur des machines différentes. Je pense donc que tout peut tourner dans la même JVM ??

  4. #4
    Membre éprouvé Avatar de jerome.petit
    Inscrit en
    Novembre 2002
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 78
    Par défaut
    Il y a une petite contradiction dans le fait de voiloir "quitter complètement l'application" et "piloter les ports série dans la même machine virtuelle".
    En effet, la JVM est une application au sens de l'OS. Donc si tu quittes ton application, cela signifie que tu quittes la JVM. Si je ne m'abuses ce que tu veux c'est pouvoir afficher ou non ton IHM sans quitter l'application. Cela étant dit, est-ce vraiment indispensable pour ton appli de faire disparaitre l'IHM ? ne peux-tu pas te contenter de rendre la fenêtre minimisée ?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 22
    Par défaut
    Si elle est petite ça va alors
    Sérieusement, ok jai pas tout capté alors, cétait bien le bût de ce post que dy remédier et je ten remercie.
    Cest tjrs agréable de trouver un peu de chaleur dans ces moments de solitude.

    Ok, et comment je fais alors?
    Il nest effectivement pas indispensable que je quitte mon application, je pourrais faire un setVisible(false) sur ma motherFrame et le tour serait joué.
    Mais ça me tarabusque tout de même.
    Daprès ce que tu me dis, je veux faire dialoguer 2 applications (au sens OS) entres elles. Mes motivations sont purement paranoïaque alors.
    En fait, je souhaite donner un maximum de chance aux objets Hard. Je ne voudrais pas qune erreur de manip ou un dysfonctionnement quelconque de linterfaçe influt sur le fonctionnement des objet Hard. Cest pour ça que jenviseage le multithreading et je me pose des questions.
    Ya aussi le problème des ressources, même si on est plus à mon époque "CsousDos", jai quand même le souhait de les limiter et mes périphériques doivent tourner en permanence, avec ou sans linterfaçe graphique.
    Mais si janticipe correctement ce que tu repondras pêtre, je pourrais faire tourner une JVM Hard sur une machine et linterfaçe sur un autre PC, ce qui revient au même que 2 JVM sur le même. ??? ce qui serait qlq part une garantie de robustesse., cest pas con...
    Tu vas me parler que quel techno alors, jai comme limpression davoir mis le doigt là où il ne fallait pas

  6. #6
    Membre éprouvé Avatar de jerome.petit
    Inscrit en
    Novembre 2002
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 78
    Par défaut
    Si tes périphériques sont des ports série, je ne pense pas que tu rencontres des gros problèmes pour faire tourner tes threads "hard" dans la même JVM que ton interface.

    Celà étant si tu souhaite faire "discuter" deux applis Java sur un même PC ou sur deux PC séparés, tu peux utiliser (par exemple) RMI.

    Avant de te lancer là dedans je te conseille de faire des essais dans la même JVM, mets déjà au point tes classes Hard, et en fonction des résultats choisis l'une ou l'autre des architectures logicielles.

    Bon courage

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 22
    Par défaut
    Bon, je viens de jeter un oeil sur RMI. Si jai bien compris, dans mon cas ça donne un truc du genre:

    Appli 1
    Je crée une interfaçe qui hérite de Remote afin de spécifier ttes les méthodes que je souhaite communiquantes.
    Jimplémente cette interfaçe dans mes class Hard que jinstancis en nommant les objets à laide de Naming.rebind.

    Appli 2
    Jimplémente linterfaçe dans mes Panel et jutilise les méthodes de Hard définit dans linterfaçe de la même façon que si jétais en local. Ceci après récupéré la connexion avec le Hard pendant à laide de Naming.lookup(nom_donné_lors_de_linstanciation_des_hard).

    Ai-je bien compris??, peux-tu réajuster/commenter ??

    Effectivement, je me laisse encore qlqs temps pour prendre ma décision.
    Il faut que jassimile ça pour voir les implication en cas de changement davis prévisible plus tard.
    A terme, il est évident que la soluce de faire tourner sur 2 machines est réellement tentante.

  8. #8
    Membre éprouvé Avatar de jerome.petit
    Inscrit en
    Novembre 2002
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 78
    Par défaut
    Voilà, c'est le principe.
    Bon courage et bonne mise au point (si j'ai bien compris le point crucial de ton appli c'est le code des threads Hard, teste les bien isolément avant de les intégrer dans ton architecture logicielle)

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 22
    Par défaut
    Merci, je suis rassuré maintenant
    Je vais probablement attendre davoir du code solide avant de mettre en place RMI.

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

Discussions similaires

  1. Réponses: 13
    Dernier message: 24/04/2010, 01h07
  2. Problème de conception Thread et Socket
    Par NeqO55 dans le forum Concurrence et multi-thread
    Réponses: 6
    Dernier message: 15/10/2009, 09h57
  3. Question de conception: thread
    Par Flophx dans le forum POSIX
    Réponses: 27
    Dernier message: 22/02/2007, 00h02
  4. [Conception] Thread local
    Par smutmutant2003 dans le forum Concurrence et multi-thread
    Réponses: 8
    Dernier message: 29/01/2007, 21h04
  5. Réponses: 7
    Dernier message: 19/10/2004, 19h09

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