Quelle est la différence entre Java RMI et RPC?

Quelle est la différence réelle entre Java RMI et RPC?

J'ai lu à certains endroits que RMI utilise des objets?

135
demandé sur user207421 2010-04-28 14:10:29

9 réponses

RPC est basé sur C, et en tant que tel, il a une sémantique de programmation structurée, de l'autre côté, RMI est une technologie basée sur Java et orientée objet.

Avec RPC, vous pouvez simplement appeler des fonctions distantes exportées vers un serveur, dans RMI, vous pouvez avoir des références à des objets distants et appeler leurs méthodes, et aussi transmettre et renvoyer plus de références d'objets distants qui peuvent être réparties entre de nombreuses instances JVM, donc c'est beaucoup plus puissant.

RMI se distingue lorsque la nécessité de développer quelque chose de plus complexe qu'une architecture client-serveur pure se pose. Il est très facile d'étaler des objets sur un réseau permettant à tous les clients de communiquer sans avoir à établir explicitement des connexions individuelles.

117
répondu fortran 2012-09-06 15:35:45

La principale différence entre RPC et RMI est que RMI implique des objets . Au lieu d'appeler des procédures à distance en utilisant un proxy function, nous utilisons plutôt un proxy object.

Il y a une plus grande transparence avec RMI, à savoir en raison de l'exploitation des objets, des références, de l'héritage, du polymorphisme et des exceptions lorsque la technologie est intégrée dans le langage.

RMI est également plus avancé que RPC, permettant dynamique invocation , où les interfaces peuvent changer à l'exécution, et object adaptation , qui fournit une couche supplémentaire d'abstraction.

38
répondu Humphrey Bogart 2016-01-24 13:50:07

1. Approche:

RMI utilise un paradigme orienté objet, où l'utilisateur doit connaître l'objet et la méthode de l'objet, il doit invoquer.

RPC ne traite pas les objets. Au contraire, il appelle des sous-programmes spécifiques qui sont déjà établis.

2. Travail:

Avec RPC, vous obtenez un appel de procédure qui ressemble à un appel local. RPC gère les complexités impliquées dans le passage de l'appel du local à la télécommande ordinateur.

RMI fait la même chose, mais RMI transmet une référence à l'objet et à la méthode appelée.

RMI = RPC + orientation de l'Objet

3. Meilleur:

RMI est une meilleure approche par rapport à RPC, en particulier avec des programmes plus grands car il fournit un code plus propre qui est plus facile à identifier si quelque chose ne va pas.

4. Exemples De Système:

Systèmes RPC: SUN RPC, DCE RPC

Systèmes RMI: Java RMI, CORBA, Microsoft DCOM / COM+, SOAP (Simple Object Access Protocol)

12
répondu Dhaval Simaria 2015-03-26 03:33:36

Appel de procédure à distance (RPC) est une communication inter-processus qui permet d'appeler une fonction dans un autre processus résidant dans une machine locale ou distante.

invocation de méthode distante (RMI) est une API, qui implémente RPC en java avec le support des paradigmes orientés objet.

  1. Vous pouvez penser à invoquer RPC est comme appeler une procédure C. RPC prend en charge les types de données primitifs où comme paramètres de méthode de support RMI / types de retour comme des objets java.

  2. RMI est facile à programmer contrairement à RPC. Vous pouvez penser votre logique métier en termes d'objets au lieu d'une séquence de types de données primitifs.

  3. RPC est neutre en langage contrairement à RMI, qui est limité à java

  4. RMI est un peu plus lent à RPC

Jetez un oeil à cet article pour l'implémentation RPC en C

7
répondu Ravindra babu 2015-12-01 13:48:20

L'appel de méthode RMI ou distant est très similaire à RPC ou à distance Appel de procédure en ce que le client les deux envoient des objets proxy (ou des stubs) à le serveur cependant, le subtil la différence est que RPC côté client appelle Fonctions via le proxy fonction et RMI appelle Méthodes via la fonction proxy. RMI est considéré comme légèrement supérieur tel qu'il est une version orientée objet de RPC.

À Partir de ici.

Pour plus d'informations et d'exemples, ont un regardez ici.

6
répondu Kyle Rozendo 2010-04-28 10:13:42

La différence entre RMI et RPC est la suivante:

  • RMI comme son nom l'indique, la méthode distante invoque une méthode ou un objet. Et
  • RPC il appelle une fonction.
6
répondu sis 2012-10-21 10:03:08

La seule différence réelle entre RPC et RMI est qu'il y a des objets impliqués dans RMI: au lieu d'invoquer des fonctions via une fonction proxy, nous appelons des méthodes via un proxy.

5
répondu jiby 2010-08-10 12:16:05

RPC est un ancien protocole basé sur C.It peut invoquer une procédure distante et la faire ressembler à un appel local.RPC gère les complexités de passer cette invocation distante au serveur et d'obtenir le résultat au client.

Java RMI réalise également la même chose mais légèrement differently.It utilise des références à objets distants.donc, ce qu'il fait est qu'il envoie une référence à l'objet distant alongwith le nom de la méthode à invoke.It c'est mieux parce qu'il en résulte un code plus propre dans le cas de grands programmes et aussi la distribution d'objets sur le réseau permet à plusieurs clients d'appeler des méthodes dans le serveur au lieu d'établir chaque connexion individuellement.

3
répondu Ruben Bhattacharya 2016-10-23 07:46:08

L'appel de méthode RMI ou Remote est très similaire à RPC ou à Remote Procedure call en ce que le client envoie des objets proxy (ou stubs) au serveur, mais la différence subtile est que RPC côté client appelle des fonctions via la fonction proxy et RMI appelle des méthodes via la fonction proxy. RMI est considéré comme légèrement supérieur car il s'agit d'une version orientée objet de RPC.

1
répondu Sun Arthur 2016-03-23 07:29:44