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 :

[Concept] Différence entre rmi et les socket


Sujet :

API standards et tierces Java

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Août 2003
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 159
    Points : 171
    Points
    171
    Par défaut [Concept] Différence entre rmi et les socket
    Bonjour,
    Ceci est une question d'ordre général.
    J'aimerais savoir réellement quelle est la différence entre
    les socket et le rmi.
    Lequel utiliser suivant quel besoin?

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

    Informations professionnelles :
    Activité : Fabrication GED

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 405
    Points : 1 958
    Points
    1 958
    Par défaut
    Si je me rappelle bien, RMI sert à exécuter des méthodes qui se trouvent sur une machine distante. Cela peut être utilisé par exemple pour soulager les machines clients de calculs lourds en consommation.
    Les sockets ça te sert à transférer des données ( primitives ou objets ) entre deux machines.
    Quelqun d'autre pour compléter ( notament sur RMI et ses intérêts ) ?

  3. #3
    Membre régulier

    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 84
    Points : 75
    Points
    75
    Par défaut
    RMI permet à un client d'exécuter des objets instanciés sur des machines distantes, un peu comme Corba (il parait). Par exemple, pour exécuter des calculs lourds, mais aussi par exemple, pour mettre en place des solutions de peer2peer assez facilement (partage de donnée à accès protégé sur un réseau entre plusieurs client).

    Les sockets c'est les fondements du réseau, on y fait passer des données quelconque que se soit du RMI, du http, du ftp ou autre.

    En gros RMI est plus évolué conceptuellement parlant sur les sockets pour effectué des communication réseau.

  4. #4
    Membre averti
    Homme Profil pro
    Inscrit en
    Juillet 2002
    Messages
    705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 705
    Points : 393
    Points
    393
    Par défaut
    Il ne faut pas tout confondre !

    Le mécanisme des sockets, ou plus exactement l'API socket, permet d'établir une communication entre deux process (2 thread si on préfère).

    Une socket est comme une prise électrique dont la localisation de fait par une numéro IP (associé adresse mac) et un numéro de port. C'est un peut comme de repérer une boite au lettre. Lorsque c'est repéré on peut y mettre les messages que l'on veut. Peut importe le protocole (langage).

    C'est dissocié du RMI (également nommé RPC ou APD : appel de proc distante).

    Bon lorsque la socket est établi, donc la boite au lettre on peut recevoir les messages qu'on veut.

    Avec RMI le but est d'établir un protocol de communication tel qu'on peut invoquer une procédure distance (sur un autre processus). Pour cette invocation il faut bien sur la socket pour communiquer. Cependant RMI masque tout un tas de prb de protocoles de communication et assure la cohérence entre les programmes.

    Si tu utilise pas RMI, tu peux produire ton propre protocole de communication et de coordination, mais dans tous les cas il te faudra ouvir un socket pour la communication.

    Voilà tout

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 106
    Points : 130
    Points
    130
    Par défaut
    Exactement.

    Le protocol RMI est très proche du corba. On crée des objets sur le serveur pui on génère des "stubs" coté clients. Il s'agit d'un objet ayant les même méthodes que l'objet serveur et dont l'implementation fait les requetes serveurs pour appeler la méthode correspondante.
    Les paramètres d'entrée / sortie sont marshallés (ou sérializé).

    Et tous ces envois de données se font grâce à une socket qui ouvre un "tub" tcp ou udp entre la machine cliente et le seveur.

    Les web services c'est le meme topo. Ou lieu d'avoir des objets remote, on a des services. Au lieu d'avoir une socket statefull on a une stocket stateless qui envoie des données http SOAP.

    En espérant que ca vous éclaire.
    PHP / J2EE

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

Discussions similaires

  1. [Conception]problème de relation entre les tables
    Par vaness76 dans le forum Modélisation
    Réponses: 3
    Dernier message: 18/04/2007, 11h32
  2. Réponses: 2
    Dernier message: 19/08/2006, 16h40
  3. [Entrée standard] Prendre les entrées clavier.
    Par Katyucha dans le forum Langage
    Réponses: 4
    Dernier message: 19/09/2005, 12h22
  4. [Reflection] diff de perf entre newInstance() et appel classic
    Par guipom dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 07/07/2005, 14h50

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