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 est 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 également transmettre et renvoyer plus de références d'objets distants qui peuvent être distribuées entre de nombreuses instances JVM, donc c'est beaucoup plus puissant .
RMI se démarque lorsque le besoin de développer quelque chose de plus complexe qu'une pure architecture client-serveur se fait sentir. Il est très facile de répartir des objets sur un réseau permettant à 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 en utilisant une fonction proxy , nous utilisons à la place un objet proxy .
Il y a une plus grande transparence avec RMI, notamment en raison de l'exploitation des objets, des références, de l'héritage, du polymorphisme et des exceptions car la technologie est intégrée dans le langage.
RMI est également plus avancé que RPC, permettant un appel dynamique , où les interfaces peuvent changer au moment de l'exécution, et l' adaptation d'objet , qui fournit une couche supplémentaire d'abstraction.
1. Approche:
RMI utilise un paradigme orienté objet où l'utilisateur a besoin de connaître l'objet et la méthode de l'objet qu'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 à peu près à un appel local. RPC gère les complexités impliquées dans le passage de l'appel de l'ordinateur local à l'ordinateur distant.
RMI fait exactement la même chose, mais RMI transmet une référence à l'objet et à la méthode qui est appelée.
RMI = RPC + Orientation objet
3. Mieux:
RMI est une meilleure approche par rapport à RPC, en particulier avec des programmes plus volumineux car il fournit un code plus propre qui est 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 (Simple Object Access Protocol)
L'appel de procédure à distance (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'appel de méthode à distance (RMI) est une API, qui implémente RPC en java avec la prise en charge des paradigmes orientés objet.
Vous pouvez penser que l'invocation de RPC revient à appeler une procédure C. RPC prend en charge les types de données primitifs où comme RMI prennent en charge les paramètres de méthode / les types de retour en tant qu'objets java.
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 indépendant du langage contrairement à RMI, qui est limité à java
RMI est un peu plus lent à RPC
Consultez cet article pour l'implémentation RPC en C
RMI ou Remote Method Invokation est très similaire à RPC ou Remote Procedure Call en ce que le client envoie tous deux des objets proxy (ou stubs) au serveur, mais la différence subtile est que le RPC côté client appelle FUNCTIONS via la fonction proxy et RMI appelle METHODS via le fonction proxy. RMI est considéré comme légèrement supérieur car il s'agit d'une version orientée objet de RPC.
D' ici .
La différence entre RMI et RPC est que:
method
et a function
? En Java, il n'y a pas de fonctions ... mais en POO pour autant que je me souvienne, ce sont des synonymes, tout comme invocation
et call
.
RPC est un ancien protocole basé sur C.Il peut invoquer une procédure distante et la faire ressembler à un appel local.RPC gère les complexités de la transmission de cet appel distant au serveur et de l'obtention du résultat au client.
Java RMI réalise également la même chose mais un peu différemment.Il utilise des références à des objets distants.Ainsi , ce qu'il fait, c'est qu'il envoie une référence à l'objet distant avec le nom de la méthode à invoquer.C'est mieux car il en résulte un plus propre le code dans le cas de programmes volumineux et la distribution d'objets sur le réseau permettent à plusieurs clients d'appeler des méthodes sur le serveur au lieu d'établir chaque connexion individuellement.
RMI
qu'en Java, c'est quelque chose commegRPC
dans .Net ...