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

API standards et tierces Java Discussion :

[RMI] Accès d'un serveur par plusieurs clients


Sujet :

API standards et tierces Java

  1. #1
    Membre averti
    Inscrit en
    Février 2008
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 40
    Par défaut [RMI] Accès d'un serveur par plusieurs clients
    J'ai eu une mauvaise surprise en mettant en place une application serveur et son client dans un contexte qui, je croyait, ne poserait aucun problème.

    D'abord, les requêtes au serveur doivent être sérialisées et il ne doit pas y avoir plusieurs requêtes concurrentes. Les clients qui font les requêtes sont gérés par un système différent qui je croyais sérialisait les exécutions des clients, or, ce n'est pas du tout le cas, il cré un processus enfant et n'attend pas le retour avant de créer un second processus enfant dans lequel il lance l'exécution d'un second client.

    Je me retrouve donc avec un problème d'accès au serveur et de ressources puisque celles-ci sont rapidement épuisées par la grande quantité de clients lancés lors de tests de volume.

    Primo, est-ce que je peux limiter le nombre de connexions à un serveur RMI, si oui, comment? Secundo, comment puis-je sérialiser les appels à des méthodes distantes dans le serveur?

    Et toute idée pouvant me mettre sur une piste de résolution est le bienvenue.

  2. #2
    Membre confirmé

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    120
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 120
    Par défaut
    Ben est ce que le pattern singleton ne pourrait pas t'aider ainsi que la déclaration de block syncrhonized ?

  3. #3
    Membre averti
    Inscrit en
    Février 2008
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 40
    Par défaut
    Merci pour cette réponse. J'ai fais la conversion et les modifications. Ça résoud le problème au niveau de la sérialisation des accès.

    Par contre, celui de la congestion des ressources demeure étant donné que plusieurs connexions sont quand même initiées de façon concurrente et que je ne sais pas comment limiter le nombre de connexions acceptées par le serveur.

    Éventuellement, j'aurai un autre problème av

  4. #4
    Membre averti
    Inscrit en
    Février 2008
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 40
    Par défaut
    Après quelques recherches, une avenue que j'envisage maintenant est d'utiliser les semaphores pour gérer le nombre de connexions disponibles.

    Par contre, de ce que je lis de la documentation, les semaphores fonctionnent pour synchroniser l'accès à des ressources en quantité X pour des threads. Est-ce que ça fonctionne pour des threads qui sont dans des machines virtuelles différentes? Je voudrais synchroniser des accès pour des machines virtuelles indépendantes. Chaque client est démarré dans une machine virtuelle indépendante et je voudrais les coordonner entre eux.

    Je rêve ou bien c'est possible? Si je ne rêve pas, comment dois-je procéder? Quelqu'un peut me mettre sur une piste?

    Merci à l'avance

  5. #5
    Membre averti
    Inscrit en
    Février 2008
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 40
    Par défaut
    Finalement, j'ai plutôt utilisé un fichier verrouillé pour coordonner les accès par des clients exécutants chacun dans des machines virtuelles indépendantes et le serveur utilise le pattern Singleton et le synchronized.

    Disons que les semaphores natifs permettent la synchronisation inter-processus, mais pas ceux de Java qui ne semblent pouvoir être utilisés qu'à l'intérieur d'une même machine virtuelle pour synchroniser uniquement des threads.

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

Discussions similaires

  1. Comment faire un serveur hébergeant plusieurs client simultanée
    Par Alexlesilex dans le forum Développement
    Réponses: 15
    Dernier message: 01/03/2007, 14h15
  2. [RMI] téléchargement de l'interface par le client
    Par bizet dans le forum API standards et tierces
    Réponses: 3
    Dernier message: 28/01/2007, 17h45
  3. Variable accessible par plusieurs clients
    Par mezoo dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 06/10/2006, 10h08
  4. problème d'accès aux données sur serveur par poste client
    Par rahan_dave dans le forum Requêtes
    Réponses: 1
    Dernier message: 25/02/2006, 09h13
  5. Réponses: 9
    Dernier message: 17/04/2004, 16h32

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