Quelle est la différence réelle entre Java RMI et RPC ?
J'ai lu à certains endroits que RMI utilise des objets ?
Quelle est la différence réelle entre Java RMI et RPC ?
J'ai lu à certains endroits que RMI utilise des objets ?
RPC est basé sur le langage C, et en tant que tel, il a une sémantique de programmation structurée. D'autre part, RMI est une technologie basée sur Java et est orientée objet.
Avec RPC, vous pouvez simplement appeler des fonctions distantes exportées dans un serveur. Avec RMI, vous pouvez avoir des références à des objets distants et invoquer leurs méthodes, et également transmettre et renvoyer d'autres références d'objets distants qui peuvent être distribuées entre de nombreuses instances de la JVM, ce qui est beaucoup plus puissant.
RMI s'impose 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 les objets sur un réseau, ce qui permet à tous les clients de communiquer sans avoir à établir explicitement des connexions individuelles.
C'est incorrect. RPC est également basé sur Java. JAX-RPC 1.1 a été remplacé par 2.0, qui a ensuite été rebaptisé JAX-WS. En Java, lorsque vous parlez de RPC, vous parlez de SOAP et de services Web. Voici un article d'IBM sur le passage de JAX-RPC 1.1 à JAX-WS. ibm.com/developerworks/library/ws-tip-jaxwsrpc
@MattC Je pense que l'article dont vous avez donné le lien a souligné que la raison de ce changement de nom de "JAX-RPC" à "JAX-WS" est exactement que le nom original n'était pas exact, car cette spécification implique plus que juste "RPC" dans un sens traditionnel. Cette réponse, qui parle de ce que signifie traditionnellement RPC, est donc toujours correcte.
Ouais, ce que je voulais dire, c'est que RPC est né dans le monde C/Unix (du moins l'implémentation RPC la plus courante, ONCRPC) et en tant que tel, il est calqué sur ce modèle de calcul ; bien sûr, rien n'empêche de l'implémenter au-dessus de tout autre langage de programmation
La principale différence entre RPC et RMI est que Le RMI implique objets . Au lieu d'appeler les procédures à distance en utilisant un proxy fonction nous utilisons plutôt un proxy objet .
Il y a une plus grande transparence avec RMI, notamment grâce à l'exploitation des objets, des références, de l'héritage, du polymorphisme et des exceptions au fur et à mesure que la technologie est intégrée au langage.
RMI est également plus avancé que RPC, permettant de invocation dynamique où les interfaces peuvent changer au moment de l'exécution, et adaptation de l'objet qui fournit une couche d'abstraction supplémentaire.
Quelles sont les différences que vous soulignez implicitement, mais que vous ne clarifiez pas, entre une method
et un function
? En Java, il n'y a pas de fonctions... mais en POO, pour autant que je m'en souvienne, ce sont des synonymes, tout comme le sont invocation
y call
.
RMI ou Remote Method Invokation est très similaire à RPC ou Remote Procedure call en ce sens que le client envoie des objets proxy (ou stubs) au le serveur, mais la différence subtile subtile est que le RPC côté client côté client invoque FONCTIONS par le biais du proxy et RMI invoque MÉTHODES par le biais de la fonction de proxy. Le RMI est est considéré comme légèrement supérieur car il s'agit orienté objet version de RPC.
De aquí .
Pour plus d'informations et d'exemples, consultez regardez ici .
La méthode est ce que les fonctions sont appelées en java, la fonction est ce que la méthode est appelée en c/c++. Quelle est donc la différence ?
La différence est que (dans le cas des méthodes d'instance), il y a un objet qui invoque. L'objet d'invocation doit soit être envoyé (avec son code), soit se trouver sur le serveur de retrait mais avoir un moyen d'être référencé sur le serveur local.
Sans tenir compte de la façon dont les langages de programmation spécifiques traitent les méthodes par rapport aux fonctions, la signification littéraire est que les fonctions renvoient une valeur alors que les méthodes modifient un état.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.
0 votes
Je pense
RMI
en Java est quelque chose commegRPC
en .Net...