Différence entre RPC et RMI

Auteur: Laura McKinney
Date De Création: 1 Avril 2021
Date De Mise À Jour: 9 Peut 2024
Anonim
Différence entre RPC et RMI - La Technologie
Différence entre RPC et RMI - La Technologie

Contenu


RPC et RMI sont les mécanismes qui permettent à un client d'appeler la procédure ou la méthode depuis le serveur en établissant une communication entre client et serveur. La différence commune entre RPC et RMI est que RPC ne prend en charge que programmation procédurale alors que RMI supporte programmation orientée objet.

Une autre différence majeure entre les deux réside dans le fait que les paramètres transmis à l’appel de procédures distantes consistent en: structures de données ordinaires. D'autre part, les paramètres passés à la méthode distante consistent en objets.

  1. Tableau de comparaison
  2. Définition
  3. Différences Clés
  4. Conclusion

Tableau de comparaison

Base de comparaisonRPCRMI
Les soutiensProgrammation procédurale
Programmation orientée objet
ParamètresLes structures de données ordinaires sont transmises aux procédures distantes.Les objets sont transmis aux méthodes distantes.
EfficacitéInférieur au RMIPlus que RPC et supporté par une approche de programmation moderne (c'est-à-dire des paradigmes orientés objet)
Frais générauxPlus
Moins comparativement
Les paramètres d'entrée-sortie sont obligatoires.OuiPas nécessairement
Fourniture de facilité de programmation
Haute
faible


Définition de RPC

Appel de procédure distante (RPC) est une fonctionnalité de langage de programmation conçue pour l’informatique distribuée et basée sur la sémantique de procédure locale appels. Il s’agit des formes les plus courantes de service à distance et a été conçu pour permettre d’abstraire le mécanisme d’appel de procédure à utiliser entre des systèmes connectés via un réseau. Il est similaire au mécanisme IPC dans lequel le système d'exploitation permet aux processus de gérer des données partagées et de gérer un environnement dans lequel différents processus s'exécutent sur des systèmes distincts et nécessitent nécessairement une communication basée sur les informations.

Voyons comment RPC est implémenté à travers les étapes suivantes:

  • Le processus client appelle le stub client avec des paramètres et son exécution est suspendue jusqu'à la fin de l'appel.
  • Les paramètres sont ensuite traduits dans une forme indépendante de la machine en effectuant une séquence via le stub client. Ensuite, on prépare le qui contient la représentation des paramètres.
  • Pour rechercher l’identité du site, le stub client communique avec le serveur de noms sur lequel existe une procédure distante.
  • À l'aide du protocole de blocage, le client est transféré sur le site où l'appel de procédure à distance existe. Cette étape arrête le stub client jusqu'à ce qu'il reçoive une réponse.


  • Le site du serveur reçoit l’envoi du côté client et le convertit au format spécifique à la machine.
  • Le stub de serveur exécute maintenant un appel sur la procédure serveur avec les paramètres, et le stub de serveur est interrompu jusqu'à la fin de la procédure.
  • La procédure serveur renvoie les résultats générés au stub du serveur, qui est ensuite converti au format indépendant de la machine sur le stub du serveur et crée un contenant les résultats.
  • Le résultat est envoyé au stub client qui est reconverti au format spécifique à la machine et adapté au stub client.
  • Au dernier client, le stub renvoie les résultats au processus client.

Définition de RMI

Invocation de méthode à distance (RMI) est similaire à RPC mais est spécifique à la langue et est une fonctionnalité de Java. Un thread est autorisé à appeler la méthode sur un objet distant. Pour conserver la transparence côté client et serveur, il implémente un objet distant à l'aide de stubs et de squelettes. Le stub réside avec le client et, pour l'objet distant, il se comporte comme un proxy.

Lorsqu'un client appelle une méthode distante, le stub correspondant à la méthode distante est appelé. Le stub client est responsable de la création et de l'intégration du colis contenant le nom d'une méthode et des paramètres marshalled. Le squelette est responsable de la réception du colis.

Le squelette unmarshals paramètres et appelle la méthode souhaitée sur le serveur. Le squelette regroupe la valeur donnée (ou les exceptions) avec le colis et le transmet au stub client. Le talon réassemble le colis de retour et l’envoie au client.

En Java, les paramètres sont transmis aux méthodes et renvoyés sous forme de référence. Cela pourrait être gênant pour le service RMI car tous les objets ne sont peut-être pas des méthodes distantes. Donc, il doit déterminer ce qui pourrait être passé comme référence et ce qui ne pourrait pas.

Java utilise un processus nommé la sérialisation où les objets sont passés en tant que valeur. L'objet distant est localisé par passe par valeur. Il peut également transmettre un objet par référence en passant une référence distante à l'objet avec l'URL de la classe de stub. Passer par référence restreint un stub pour l'objet distant.

  1. RPC prend en charge les paradigmes de programmation procédurale et est donc basé sur C, tandis que RMI prend en charge les paradigmes de programmation orientée objet et est basé sur Java.
  2. Les paramètres transmis aux procédures distantes dans RPC sont les structures de données ordinaires. Au contraire, RMI transite des objets en tant que paramètre de la méthode distante.
  3. RPC peut être considéré comme l'ancienne version de RMI. Il est utilisé dans les langages de programmation prenant en charge la programmation procédurale. Il ne peut utiliser que la méthode passage par valeur. Par contre, la fonctionnalité RMI est conçue sur la base d’une approche de programmation moderne, qui pourrait utiliser la méthode de passage par valeur ou par référence. Un autre avantage de RMI est que les paramètres passés par référence peuvent être modifiés.
  4. Le protocole RPC génère plus de temps système que RMI.
  5. Les paramètres passés dans RPC doivent être “in-out”Ce qui signifie que la valeur transmise à la procédure et la valeur de sortie doivent avoir les mêmes types de données. En revanche, il n’existe aucune contrainte de passer “in-out”Paramètres dans RMI.
  6. Dans RPC, les références n'étaient pas probables car les deux processus ont un espace d'adressage distinct, mais cela est possible dans le cas de RMI.

Conclusion

RPC et RMI remplissent le même objectif, mais sont utilisés dans les langages qui prennent en charge différents paradigmes de programmation. Ils ont donc des fonctionnalités distinctes.