Différence Entre RPC Et RMI

Table des matières:

Différence Entre RPC Et RMI
Différence Entre RPC Et RMI

Vidéo: Différence Entre RPC Et RMI

Vidéo: Différence Entre RPC Et RMI
Vidéo: Principe RPC (Remote Procedure Call) 2024, Avril
Anonim

RPC vs RMI

La différence fondamentale entre RPC et RMI est que RPC est un mécanisme qui permet d'appeler une procédure sur un ordinateur distant tandis que RMI est l'implémentation de RPC en java. RPC est indépendant du langage mais ne prend en charge que les types de données primitifs à transmettre. En revanche, RMI est limité à Java mais permet de passer des objets. RPC suit les constructions de langage procédural traditionnel tandis que RMI prend en charge la conception orientée objet.

Qu'est-ce que RPC?

RPC, qui signifie Remote Procedure Call, est un type de communication inter-processus. Cela permet d'appeler une fonction dans un autre processus exécuté sur l'ordinateur local ou sur un ordinateur distant. Ce concept est apparu il y a longtemps en 1980, mais la première implémentation célèbre a été vue sous Unix.

Le RPC comporte plusieurs étapes. Le client effectue un appel de procédure sur l'ordinateur local comme d'habitude. Le module appelé client stub collecte les arguments et crée un message et passe au système d'exploitation, le système d'exploitation fait un appel système et envoie ce message à l'ordinateur distant. Le système d'exploitation du serveur collecte le message et le transmet au module du serveur appelé stub de serveur. Ensuite, le stub du serveur appelle la procédure sur le serveur. Enfin, les résultats sont renvoyés au client.

L'avantage d'utiliser RPC est qu'il est indépendant des détails du réseau. Le programmeur doit simplement spécifier de manière abstraite tandis que le système d'exploitation s'occupera des détails du réseau interne. Cela facilite donc la programmation et permet à RPC de fonctionner sur n'importe quel réseau malgré les différences physiques et de protocole. Les implémentations RPC sont présentes dans tous les systèmes d'exploitation courants tels que Unix, Linux, Windows et OS X. RPC est généralement indépendant du langage, par conséquent, il limite les types de données aux plus primitifs car ils doivent être communs à tous les langages. L'approche dans RPC n'est pas orientée objet, mais c'est un mécanisme procédural traditionnel comme dans C.

Différence entre RPC et RMI
Différence entre RPC et RMI

Qu'est-ce que RMI?

RMI, qui signifie Remote Method Invocation, est une API (Application Programming Interface) qui implémente RPC en java pour prendre en charge la nature orientée objet. Cela permet d'appeler des méthodes Java sur une autre machine virtuelle Java résidant sur le même ordinateur ou sur un ordinateur distant. La limitation de RMI est que seules les méthodes Java peuvent être appelées, mais cela présente l'avantage que les objets peuvent être passés en tant qu'arguments et valeurs de retour. Lorsque les performances sont considérées, RMI est plus lente que RPC en raison de l'implication du bytecode sur la machine virtuelle Java, mais RMI est très conviviale pour les programmeurs et très facile à utiliser.

RMI utilise des mécanismes de sécurité intégrés dans Java et fournit également une fabrique de sockets qui permet l'utilisation de protocoles de couche de transport personnalisés non TCP. De plus, RMI fournit des méthodes pour contourner les pare-feu. Les étapes qui se produisent dans RMI sont similaires à RPC. L'implémentation de RMI s'occupe des détails du réseau interne là où le programmeur n'a pas à s'en soucier.

Quelle est la différence entre RPC et RMI?

• RPC est indépendant du langage tandis que RMI est limité à Java.

• RPC est procédural comme en C, mais RMI est orienté objet.

• RPC ne prend en charge que les types de données primitifs tandis que RMI autorise la transmission d'objets en tant qu'arguments et valeurs de retour. Lors de l'utilisation de RPC, le programmeur doit diviser tous les objets composés en types de données primitifs.

• RMI est facile à programmer ce RPC.

• RMI est plus lent que RPC car RMI implique l'exécution du bytecode java.

• RMI permet l'utilisation de modèles de conception en raison de la nature orientée objet alors que RPC n'a pas cette capacité.

Résumé:

RPC vs RMI

RPC est un mécanisme indépendant du langage qui permet d'appeler une procédure sur un ordinateur distant. Cependant, la fonctionnalité indépendante du langage limite les types de données qui sont passés en tant qu'arguments et retournent des valeurs aux types primitifs. RMI est l'implémentation de RPC en Java et prend également en charge le passage d'objets, ce qui facilite la vie du programmeur. L'avantage de RMI est la prise en charge de la conception orientée objet, mais la limitation à Java est un inconvénient.

Images de courtoisie:

Recommandé: