Quelle est la différence réelle entre Java RMI et RPC?
J’ai lu dans certains endroits que RMI utilise des 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 basée sur Java et orientée object.
Avec RPC, vous pouvez simplement appeler des fonctions distantes exscopes dans un serveur. Dans RMI, vous pouvez avoir des références à des objects distants et appeler leurs méthodes. Vous pouvez également transmettre et renvoyer des références d’objects distantes pouvant être réparties entre plusieurs instances JVM. .
RMI se distingue par le besoin de développer quelque chose de plus complexe qu’une architecture client-serveur pure. Il est très facile d’étaler des objects 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 objects . Au lieu d’appeler des procédures à distance en utilisant une fonction proxy, nous utilisons plutôt un object proxy.
Il y a une plus grande transparence avec le RMI, notamment en raison de l’exploitation des objects, des références, de l’inheritance, du polymorphism et des exceptions lorsque la technologie est intégrée au langage.
RMI est également plus avancé que RPC, ce qui permet un appel dynamic , où les interfaces peuvent changer à l’exécution et l’ adaptation d’object , ce qui fournit une couche d’abstraction supplémentaire.
1. Approche:
RMI utilise un paradigme orienté object dans lequel l’utilisateur doit connaître l’object et la méthode de l’object qu’il doit invoquer.
RPC ne traite pas des objects. Il appelle plutôt des sous-routines spécifiques déjà établies.
2. travail:
Avec RPC, vous obtenez un appel de procédure qui ressemble à un appel local. RPC gère les complexités liées à la transmission de l’appel de l’ordinateur local à l’ordinateur distant.
RMI fait la même chose, mais RMI transmet une référence à l’object et à la méthode appelée.
RMI = RPC + Orientation object
3. Un meilleur:
Le RMI est une meilleure approche que le RPC, en particulier avec les programmes plus volumineux, car il fournit un code plus clair, plus facile à identifier en cas de problème.
4. Exemples de système:
Systèmes RPC: SUN RPC, DCE RPC
Systèmes RMI: Java RMI, CORBA, Microsoft DCOM / COM +, SOAP (protocole simple d’access aux objects)
Remote Procedure Call (RPC) est une communication inter-processus qui permet d’appeler une fonction dans un autre processus résidant sur une machine locale ou distante.
L’invocation de méthode distante (RMI) est une API qui implémente RPC en Java avec prise en charge de paradigmes orientés object.
Vous pouvez penser à invoquer 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 parameters de méthode / types de retour sont pris en charge en tant qu’objects java.
RMI est facile à programmer contrairement à RPC. Vous pouvez penser votre logique métier en termes d’objects au lieu d’une séquence de types de données primitifs.
RPC est un langage neutre contrairement à RMI, qui est limité à Java
RMI est un peu plus lent à RPC
Jetez un oeil à cet article pour l’implémentation RPC en C
L’invocation de méthode RMI ou distante est très similaire à l’appel de procédure RPC ou distante dans la mesure où le client envoie des objects proxy (ou stubs) au serveur. La différence subtile réside dans le fait que fonction proxy RMI est considéré légèrement supérieur car c’est une version orientée object de RPC.
De là
Pour plus d’informations et des exemples, consultez ici .
La différence entre RMI et RPC est la suivante:
La seule vraie différence entre RPC et RMI est qu’il y a des objects impliqués dans RMI: au lieu d’invoquer des fonctions via une fonction proxy, nous invoquons des méthodes via un proxy.
RPC est un ancien protocole basé sur C.Il peut appeler une procédure distante et la faire ressembler à un appel local. Le RPC gère la complexité de transmettre cette invocation à distance au serveur et de transmettre le résultat au client.
Java RMI réalise également la même chose mais légèrement différemment. Il utilise des références à des objects distants . Donc, ce qu’il fait, c’est qu’il envoie une référence à l’object distant avec le nom de la méthode à appeler. Le code dans le cas de programmes volumineux et la dissortingbution d’objects sur le réseau permettent à plusieurs clients d’appeler des méthodes sur le serveur au lieu d’établir chaque connexion individuellement.
L’invocation de méthode RMI ou distante est très similaire à l’appel de procédure RPC ou distante dans la mesure où le client envoie des objects proxy (ou stubs) au serveur. La différence subtile réside dans le fait que RPC côté client fonction proxy RMI est considéré légèrement supérieur car c’est une version orientée object de RPC.