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 :

communication inter clients


Sujet :

Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    255
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 255
    Points : 99
    Points
    99
    Par défaut communication inter clients
    Bonjour,

    dans le cas d'une étude sur les techniques de communication entre deux applications identiques sur des clients différents, j'aimerais que vous me citiez quelques solutions, sachant que les clients peuvent communiquer via HTTP avec un serveur qui peut donc servir d'intermédiaire.

    J'ai pensé à l'utilisation de RMI, mais étant débutant dans la chose je ne sais pas s'il est possible d'instancier un serveur par poste client de manière à réaliser des appels distants de client à client. Dans ce cas je suppose que les clients posteraient sur le serveur leur IP et le port utilisé. En changeant de port serait-il possible d'avoir ainsi plusieurs clients sur la même machine ?

    Merci d'avance pour vos lumières !

  2. #2
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    423
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 423
    Points : 303
    Points
    303
    Par défaut
    salut,
    les serveurs sont faits pour communiquer avec plusieurs clients à la fois.
    c'est possible en RMI. tu veut ici que les clients communiquent entre eux ou avec le serveur?

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    255
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 255
    Points : 99
    Points
    99
    Par défaut
    Je voudrais que les clients communiquent entre eux.

    Mais il est possible d'utiliser un intermédiaire pour les coordonner lors de l'initialisation (une machine serveur qui ne connaît que HTTP).

    Merci pour ton intérêt à mon problème.

  4. #4
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    423
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 423
    Points : 303
    Points
    303
    Par défaut
    salut,
    tu peut utiliser RMI. comme tu as dit un intermédiaire tu va créer un serveur avec qui les clients vont se connecter et laisser leurs IP (tu peut fixer un port pour l'émission et un port pour la transmission pour tous les clients.)après la connexion le client pourra consulter la liste des clients connectés qui se trouve sur le serveur.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    255
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 255
    Points : 99
    Points
    99
    Par défaut
    Cette méthode peut-elle permettre de démarrer deux fois la même application sur une même machine ?

    Le serveur JNI ne va-t-il pas refuser l'enregistrement à l'une des deux applications ? Avoir le proxy et le stub sur la même machine et même dans la même archive ne pose-t-il pas problème ?

  6. #6
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    423
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 423
    Points : 303
    Points
    303
    Par défaut
    salut,
    je ne voit pas la relation avec la JNI?

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    255
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 255
    Points : 99
    Points
    99
    Par défaut
    Je voulais parler de JNDI, pardon.
    Mais son utilisation n'est peut-être pas obligatoire ?

    Et qu'en est-il de la politique de sécurité ? Doit-on l'inclure ? Si oui comment spécifier la politique dans le cas de clients inter-opérants ? Doit-on ajouter une politique pour chaque client qui se connecte en précisant l'IP de la machine ?

    Et quel code utiliser ? Voici deux exemples glanés ça et là :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    System.setSecurityManager(new java.rmi.RMISecurityManager());
     
    java.rmi.Naming.bind("rmi://localhost/Voiture",
       new VoitureImpl());
    java.rmi.Naming.bind("rmi://localhost/Personne",
       new PersonneImpl());
    Ou bien : (mais là il faut lancer le client en ligne de commande ; si on veut utiliser une applet, comment faire ???)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    java -Djava.security.policy=./java.policy fr.monServeur

  8. #8
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    423
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 423
    Points : 303
    Points
    303
    Par défaut
    salut,
    tu peut utiliser simplement l'authentification chaque client doit donner son login et son mot de passse. pour le transfert des données il existe plusieurs méthodes tel que le cryptage ou bien le tunelling.

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    255
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 255
    Points : 99
    Points
    99
    Par défaut
    J'aurais aimé avoir l'avis d'autres personnes sur d'autres solutions éventuelles.

    Il me semble que cette solution est cependant déjà très bien.
    Merci pour tes réponses.

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    255
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 255
    Points : 99
    Points
    99
    Par défaut
    J'ai consulté http://java.sun.com/sfaq/

    et j'ai trouvé au point 8 cela :

    # How can an applet open a network connection to a computer on the internet?

    Applets are not allowed to open network connections to any computer, except for the host that provided the .class files. This is either the host where the html page came from, or the host specified in the codebase parameter in the applet tag, with codebase taking precendence.

    For example, if you try to do this from an applet that did not originate from the machine foo.com, it will fail with a security exception:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Socket s = new Socket("foo.com", 25, true);
    Et le point 16 résume les capacités des applications java.

    Je crois que ça répond en partie à ma question : il n'est pas possible d'utiliser une applet chargée depuis le net pour communiquer avec autre chose que le fournisseur de l'applet.

    Dans mon cas il faut donc absolument utiliser une application indépendante/une applet lancée depuis de FS client et pas une applet chargée depuis le net.

    C'est étrange cette limitation dans la communication entre applets... avec Flash on peut très bien le faire sans soucis ! Dommage, j'aurais bien aimé faire une appli utilisable dans un browser.

    Il me reste toujours JWS pour permettre un déploiement facile pour les utilisateurs.

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

Discussions similaires

  1. [windows] Communication inter-processus
    Par litbos dans le forum Windows
    Réponses: 6
    Dernier message: 16/01/2007, 09h13
  2. Communication inter-fenêtre
    Par NeoMan dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 01/08/2005, 14h35
  3. communication inter-processus
    Par benoit70 dans le forum MFC
    Réponses: 1
    Dernier message: 14/04/2005, 09h55
  4. [Java] Communication entre client et serveur
    Par danje dans le forum CORBA
    Réponses: 1
    Dernier message: 14/12/2004, 18h08
  5. [MFC] communication inter exe
    Par Kevgeii dans le forum MFC
    Réponses: 2
    Dernier message: 06/01/2004, 16h47

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