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

Langage Java Discussion :

Donnees communes a plusieurs Serveurs


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    201
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Octobre 2004
    Messages : 201
    Par défaut Donnees communes a plusieurs Serveurs
    Bonjour,

    J'ai fait une appli qui au lancement de celle-ci cree plusieurs servers. (serverSocket), chaqun de ces serveur peut donc accpeter des connections et donc creer plusieurs threads.
    Le souci est que tous ces serveurs auraient besoin de "communiquer" entre eux, ou pouvoir consulter tous les memes variables. Creer une partie "commune" en gros.
    Je pensai donc creer une classe avec des valeurs static, et mettre dedan touts les champs que je voudrai rendre accessible a mes differents serveurs...
    les server accederont/modifiront ces val de facon synchronisee.

    Qu'est ce que vous en pensez ?

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

    Informations professionnelles :
    Activité : Fabrication GED

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 405
    Par défaut
    C'est une façon de faire (c'est un peu comme cela que marchent les IPC)... Attention à la synchronisation !
    Sinon tu peux utiliser RMI également.

  3. #3
    Membre confirmé
    Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    201
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Octobre 2004
    Messages : 201
    Par défaut
    OK merci du tuyau !

    edit: Il n'y aura pas de prob de synchronisation avec RMI ?

  4. #4
    Membre expérimenté
    Inscrit en
    Mai 2007
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 335
    Par défaut
    Bonjour,
    le RMI c'est surtout entre jvm différentes.
    plutôt que d'avoir plusieurs éléments statiques, mieux vaut un singleton (basé sur un seul statique) qui contient des attributs d'instances (normaux).
    ça permet d'avoir plus de polymorphisme sur ta classe au besoin (pas d'override sur les static) et éventuellement d'avoir plusieurs instance le jour ou ce n'est plus un singleton.

    la synchronisation il suffit de le faire à l'écriture (sur tes set()) et c'est bon.

  5. #5
    Membre confirmé
    Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    201
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Octobre 2004
    Messages : 201
    Par défaut
    Citation Envoyé par deltree Voir le message
    mieux vaut un singleton (basé sur un seul statique) qui contient des attributs d'instances (normaux)
    Merci mais je vois pas trop ce que c'est
    t'as une petite demo sous la main

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    442
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 442
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    public class Singleton {
         /**
          * Création de l'instance au niveau de la variable.
          */
         private static final Singleton INSTANCE = new Singleton();
     
         /**
          * La présence d'un constructeur privé supprime
          * le constructeur public par défaut.
          */
         private Singleton() {}
     
         /**
          * Dans ce cas présent, le mot-clé synchronized n'est pas utile.
          * L'unique instanciation du singleton se fait avant
          * l'appel de la méthode getInstance(). Donc aucun risque d'accès concurrents.
          * Retourne l'instance du singleton.
          */
         public static Singleton getInstance() {
             return INSTANCE;
         }
     }

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 25/06/2013, 19h22
  2. Objet commun a plusieur DLL
    Par petitcoucou31 dans le forum Langage
    Réponses: 2
    Dernier message: 10/12/2003, 23h07
  3. IP et plusieurs serveurs
    Par Joelindien dans le forum Hardware
    Réponses: 8
    Dernier message: 03/11/2003, 13h46
  4. [SSL]Communication avec un serveur en https
    Par menon dans le forum Développement Web en Java
    Réponses: 3
    Dernier message: 04/09/2003, 17h38
  5. [configuration] lancer plusieurs serveurs Tomcat
    Par polo54 dans le forum JBuilder
    Réponses: 4
    Dernier message: 13/06/2003, 16h52

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