Quelle est la différence réelle entre Java RMI et RPC?
J'ai lu à certains endroits que RMI utilise Objects?
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 Java) et elle est orientée objet.
Avec RPC, vous pouvez simplement appeler des fonctions distantes exportées sur un serveur. Dans RMI, vous pouvez avoir des références à des objets distants et appeler leurs méthodes, ainsi que transmettre et renvoyer davantage de références d'objets distants pouvant être distribuées sur de nombreuses instances de machine virtuelle Java, ce qui le rend beaucoup plus puissant. .
RMI se démarque lorsque le besoin de développer quelque chose de plus complexe qu'une architecture purement client-serveur se fait sentir. Il est très facile de répartir des objets sur un réseau, ce qui permet à tous les clients de communiquer sans avoir à établir explicitement des connexions individuelles.
La principale différence entre RPC et RMI est que RMI implique des objets . Au lieu d'appeler des procédures à distance à l'aide d'une fonction proxy , nous utilisons plutôt un objet proxy .
La transparence avec RMI est plus grande, notamment en raison de l’exploitation d’objets, de références, de l’héritage, du polymorphisme et d’exceptions lors de l’intégration de la technologie dans le langage.
RMI est également plus avancé que RPC, permettant un invocation dynamique , où les interfaces peuvent changer au moment de l'exécution et une adaptation d'objet , qui fournit une couche supplémentaire d'abstraction.
1. Approche:
RMI utilise un paradigme orienté objet dans lequel l'utilisateur doit connaître l'objet et la méthode de l'objet à appeler.
RPC ne traite pas les objets. Au contraire, il appelle des sous-routines spécifiques déjà établies.
2. Travailler:
Avec RPC, vous recevez un appel de procédure qui ressemble assez à un appel local. RPC gère les complexités liées au passage de l'appel local à l'ordinateur distant.
RMI fait exactement la même chose, mais RMI transmet une référence à l'objet et à la méthode appelée.
RMI = RPC + Orientation objet
. Un meilleur:
Le RMI est une meilleure approche par rapport au RPC, en particulier pour les programmes plus volumineux, car il fournit un code plus propre, plus facile à identifier en cas de problème.
4. Exemples de systèmes:
Systèmes RPC: Sun RPC, DCE RPC
Systèmes RMI: Java RMI, CORBA, Microsoft DCOM/COM +, SOAP (protocole d'accès d'objet simple)
appel de procédure distante (RPC) est une communication entre processus qui permet d'appeler une fonction d'un autre processus résidant en local ou machine distante.
L'invocation de méthode distante (RMI) est une API qui implémente RPC dans Java = avec support de paradigmes orientés objet.
Vous pouvez penser à appeler RPC, c'est comme appeler une procédure C. RPC prend en charge les types de données primitifs où, en tant que RMI, les paramètres/types de méthode de retour sont les objets Java objets.
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.
RPC est neutre vis-à-vis du langage contrairement à RMI, qui est limité à Java
RMI est un peu plus lent à RPC
Regardez ceci article pour l'implémentation RPC en C
RMI ou Invocation de méthode distante est très similaire à l'appel RPC ou de procédure distante en ce que le client envoie des objets proxy (ou stubs) au serveur, mais la différence subtile réside dans le fait que le RPC invoque du côté client [~ # ~] fonctions [~ # ~] via la fonction proxy et RMI invoque [~ # ~] 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.
De ici .
Pour plus d'informations et d'exemples, prenez un regardez ici .
La différence entre RMI et RPC est la suivante:
La seule différence réelle entre RPC et RMI réside dans le fait qu'il existe des objets impliqués dans RMI: au lieu d'appeler des fonctions via une fonction proxy, nous appelons des méthodes via un proxy.
RPC est un ancien protocole basé sur C.It peut appeler une procédure distante et lui donner l'apparence d'un appel local.RPC gère les complexités de la transmission de cette invocation distante sur le serveur et obtenir le résultat sur le client.
Java RMI réalise également la même chose mais légèrement différemment. Il utilise des références à objets distants . Ainsi, il envoie une référence à l’objet distant avec le nom de la méthode à appeler. C’est mieux, car le code est plus propre dans le cas de programmes volumineux et la distribution des objets sur le réseau permet à plusieurs clients de invoquer des méthodes sur le serveur au lieu d’établir chaque connexion individuellement.
RMI ou Invocation de méthode distante est très similaire à l'appel RPC ou de procédure distante en ce que le client envoie des objets proxy (ou stubs) au serveur. Toutefois, la différence est que RPC côté client invoque des FONCTIONS via la fonction proxy et RMI appelle METHODS via le fonction proxy. RMI est considéré comme légèrement supérieur puisqu'il s'agit d'une version de RPC orientée objet.