Protocole d'appel de procédure à distance (RPC) dans un système distribué
Qu'est-ce que le RPC ?
Appel de procédure à distance (RPC) est une technique de communication interprocessus. La forme complète de RPC est Appel de procédure à distance. Il est utilisé pour les applications client-serveur. Les mécanismes RPC sont utilisés lorsqu'un programme informatique provoque l'exécution d'une procédure ou d'un sous-programme dans un espace d'adressage différent, qui est codé comme un appel de procédure normal sans que le programmeur ne code spécifiquement les détails de l'interaction à distance.
Cet appel de procédure gère également le protocole de transport de bas niveau, tel que User Datagram Protocol, Transmission Protocole de contrôle/Protocole Internet, etc. Il est utilisé pour transporter les données de message entre les programmes.
Types de RPC
Il existe trois types de RPC :
- RPC de rappel
- RPC de diffusion
- RPC en mode batch
RPC de rappel
Ce type de RPC permet un paradigme P2P entre les processus participants. Cela aide un processus à être à la fois un service client et un service serveur.
Fonctions du rappel RPC :
- Problèmes d'application interactive traités à distance
- Offre un serveur avec un handle client
- Le rappel fait attendre le processus client
- Gérer les blocages de rappel
- Il facilite un paradigme peer-to-peer entre les processus participants.
RPC de diffusion
Broadcast RPC est une requête d'un client, diffusée sur le réseau, traitée par tous les serveurs disposant de la méthode pour traiter cette requête.
Fonctions du RPC de diffusion :
- Permet de spécifier que le message de demande du client doit être diffusé.
- Vous pouvez déclarer des ports de diffusion.
- Cela permet de réduire la charge sur le réseau physique
RPC en mode batch
Le RPC en mode batch permet de mettre en file d'attente, de séparer les requêtes RPC, dans un tampon de transmission, côté client, puis de les envoyer sur un réseau en un seul lot au serveur.
Fonctions du RPC en mode batch :
- Il minimise les frais généraux liés à l'envoi d'une requête car il les envoie sur le réseau en un seul lot au serveur.
- Ce type de protocole RPC n'est efficace que pour les applications nécessitant des tarifs d'appel inférieurs.
- Il a besoin d’un protocole de transmission fiable.
RPC Architecture
L'architecture RPC comprend principalement cinq composants du programme :
- Projet
- Talon du client
- Exécution RPC
- Talon du serveur
- Server
Comment fonctionne le RPC ?
Les étapes suivantes ont lieu pendant le processus RPC :
Étape 1) Le client, le stub client et une instance d'exécution RPC s'exécutent sur la machine client.
Étape 2) Un client démarre un processus stub client en transmettant des paramètres de la manière habituelle. Le stub client est stocké dans le propre espace d'adressage du client. Il demande également au RPC Runtime local de renvoyer le stub du serveur.
Étape 3) À ce stade, l'utilisateur accède au RPC en effectuant un étalonnage procédural local régulier. RPC Runtime gère la transmission des messages entre le réseau via le client et le serveur. Il effectue également le travail de retransmission, d'accusé de réception, de routage et de cryptage.
Étape 4) Après avoir terminé la procédure du serveur, il retourne au stub du serveur, qui regroupe (rassemble) les valeurs de retour dans un message. Le stub du serveur renvoie ensuite un message à la couche de transport.
Étape 5) Au cours de cette étape, la couche de transport renvoie le message de résultat à la couche de transport client, qui renvoie un message au stub client.
Étape 6) À ce stade, le stub client décompresse (décompresse) les paramètres de retour, dans le paquet résultant, et le processus d'exécution revient à l'appelant.
Caractéristiques du RPC
Voici les caractéristiques essentielles du RPC :
- La procédure appelée se trouve dans un autre processus, susceptible de résider sur une autre machine.
- Les processus ne partagent pas d’espace d’adressage.
- Les paramètres sont transmis uniquement par des valeurs.
- RPC s'exécute dans l'environnement du processus serveur.
- Il n'offre pas d'accès à l'environnement de la procédure appelante.
Caractéristiques du RPC
Voici les fonctionnalités importantes de RPC :
- Syntaxe d'appel simple
- Offre une sémantique connue
- Fournir une interface bien définie
- Il peut communiquer entre des processus sur la même machine ou sur des machines différentes
Avantages du RPC
Voici les avantages/avantages du RPC :
- La méthode RPC aide les clients à communiquer avec les serveurs par l'utilisation conventionnelle d'appels de procédure dans des langages de haut niveau.
- La méthode RPC est calquée sur l'appel de procédure locale, mais la procédure appelée est plus susceptible d'être exécutée dans un processus différent et généralement sur un ordinateur différent.
- RPC prend en charge les modèles orientés processus et threads.
- RPC rend le mécanisme interne de transmission des messages caché à l'utilisateur.
- L'effort nécessaire pour réécrire et re-développer le code est minime.
- Les appels de procédure à distance peuvent être utilisés à des fins d'environnement distribué et local.
- Il engage de nombreuses couches de protocole pour améliorer les performances.
- RPC fournit l'abstraction. Par exemple, la nature de la transmission de messages de la communication réseau reste cachée à l'utilisateur.
- RPC permet l'utilisation des applications dans un environnement distribué qui n'est pas seulement dans l'environnement local.
- Avec le code RPC, les efforts de réécriture et de re-développement sont minimisés.
- Prise en charge des modèles orientés processus et threads par RPC.
Inconvénients du RPC
Voici les inconvénients/inconvénients de l’utilisation de RPC :
- L’appel de procédure à distance transmet les paramètres uniquement par valeurs et valeurs de pointeur, ce qui n’est pas autorisé.
- Le temps d'appel (et de retour) d'une procédure distante (c'est-à-dire les frais généraux) peut être considérablement inférieur à celui d'une procédure locale.
- Ce mécanisme est très vulnérable aux pannes car il implique un système de communication, une autre machine et un autre processus.
- Le concept RPC peut être implémenté de différentes manières, ce qui n'est pas standard.
- N'offre aucune flexibilité dans RPC pour l'architecture matérielle car il est principalement basé sur l'interaction.
- Le coût du processus est augmenté en raison d'un appel de procédure à distance.
Résumé
- Un appel de procédure distante est un communication interprocessus technique.
- Trois types de RPC sont 1) RPC de rappel, 2) RPC de diffusion et 3) RPC en mode batch.
- L'architecture RPC comprend principalement cinq composants du programme : 1) Client 2) Client Stub 3) RPC Runtime 4) Server Stub et 5) Serveur
- Dans la méthode RPC, les processus ne partagent pas l'espace d'adressage
- RPC offre une syntaxe d'appel simple et une sémantique connue
- La méthode RPC aide les clients à communiquer avec les serveurs par l'utilisation conventionnelle d'appels de procédure dans des langages de haut niveau.
- Le plus gros inconvénient de la méthode RPC est qu’elle est très vulnérable aux pannes car elle implique un système de communication, une autre machine et un autre processus.