|
Dans Remote Procedure Call (RPC), les stubs client et serveur sont des morceaux de code cruciaux qui agissent comme intermédiaires, permettant la communication entre une application client et une application serveur résidant sur des machines différentes. Ils font abstraction des complexités de la communication réseau, permettant aux programmeurs d'écrire du code comme s'ils effectuaient des appels de procédure locale.
Stub du client :
* Emplacement : Réside sur la machine client.
* Fonction : Agit comme proxy pour la procédure distante. Lorsque le client appelle une procédure distante, il appelle en fait une fonction dans le stub client.
* Responsabilités :
* Regroupement : Regroupe les arguments de la procédure dans un format adapté à la transmission sur le réseau (par exemple, sérialisation des structures de données).
* Communication réseau : Envoie les données rassemblées au serveur.
* Désorganisation : Reçoit la réponse du serveur et la décompresse (décompression) dans un format utilisable pour le client.
* Gestion des erreurs : Gère les erreurs réseau et autres exceptions pouvant survenir pendant la communication.
* Présentation : Présente le résultat de l'appel de procédure distante à l'application client comme s'il s'agissait d'un appel local.
Stub du serveur :
* Emplacement : Réside sur la machine serveur.
* Fonction : Agit comme un proxy pour la mise en œuvre réelle de la procédure distante par le serveur. Il reçoit les requêtes du stub client et interagit avec le serveur.
* Responsabilités :
* Désorganisation : Reçoit les données marshallées du stub client et les décompresse (démarshalling) dans un format adapté à la procédure du serveur.
* Invocation de procédure : Appelle l’implémentation côté serveur réelle de la procédure distante avec les arguments non marshallés.
* Regroupement : Regroupe le résultat de la procédure (et toute information d'erreur) dans un format adapté à la transmission au client.
* Communication réseau : Renvoie la réponse rassemblée au stub client.
Analogie :
Considérez un stub client et un stub serveur comme deux opérateurs téléphoniques. Le client (vous) parle au stub client (opérateur 1), qui relaie ensuite le message au stub serveur (opérateur 2) sur une ligne téléphonique différente. L'opérateur 2 interagit ensuite avec le serveur (la personne que vous appelez) et vous transmet la réponse via l'opérateur 1. Vous n'avez pas à vous soucier des détails du fonctionnement des lignes téléphoniques ; les opérateurs s’occupent de tout cela pour vous.
En substance : Les stubs client et serveur gèrent les détails de la communication réseau, de la sérialisation des données et de la gestion des erreurs, permettant aux développeurs de se concentrer sur la logique de leurs applications plutôt que sur les subtilités de l'informatique distribuée. Ils fournissent une interface claire et abstraite pour les appels de procédures distantes.
|