Appel de procédure à distance
En informatique et en télécommunication, l'appel de procédure à distance souvent abrégé RPC (Remote Procedure Call) est un protocole réseau permettant de faire des appels de procédures sur un ordinateur distant à l'aide d'un serveur d'applications. Ce protocole est utilisé dans le modèle client-serveur pour assurer la communication entre le client, le serveur et d’éventuels intermédiaires.
Ce système est également utilisé pour la conception des micro-noyaux.
Histoire et origines
[modifier | modifier le code]L'idée de l'appel de procédure à distance date d'au moins 1976, quand il a été décrit dans le RFC 707[1]. Une des premières utilisations commerciales d'appel de procédure à distance a été faite par la firme Xerox sous le nom de Courier en 1981. La première implantation populaire d'appel de procédure à distance sur Unix était celle de Sun (maintenant appelée ONC RPC), utilisée comme la base pour NFS (Network File System).
Passage de messages
[modifier | modifier le code]Un appel de procédure à distance est initié par le client qui envoie un message de requête à un serveur distant connu pour exécuter une procédure spécifique avec des paramètres spécifiques. Le serveur distant envoie une réponse au client puis l'application continue son déroulement. Il y a beaucoup de variations et subtilités dans diverses implémentations, donnant lieu à une variété de protocoles d'appels de procédure à distance (incompatibles). Pendant que le serveur traite l'appel, le client est bloqué (il attend que le serveur ait terminé son traitement sur les données).
Une différence importante entre appels de procédures à distance et appels locaux est que les appels à distance peuvent échouer à cause de problèmes de réseau imprévisibles. Aussi, les appelants doivent en général gérer ces échecs sans savoir si la procédure à distance a été effectivement invoquée. Les procédures idempotentes (c’est-à-dire qui n'ont pas d'effet additionnel si elles sont appelées plus d'une fois) sont gérées facilement, mais il y a beaucoup de difficultés restantes, qui font que le code d’appel de procédures distantes est souvent confiné à des sous-systèmes de bas niveau écrits soigneusement.
Secure RPC
[modifier | modifier le code]Secure RPC protège les appels de procédure à distance par un mécanisme d'authentification. Le mécanisme de Diffie-Hellman est utilisé pour authentifier l’hôte et l'utilisateur auteurs de la requête. Le mécanisme d’authentification utilise le Data Encryption Standard (DES). NFS, NIS et NIS+ sont des exemples d'applications utilisant Secure RPC[2].
Voir aussi
[modifier | modifier le code]Articles connexes
[modifier | modifier le code]- Java RMI API Java proposant des appels de méthodes à distance sur des objets
- XML-RPC
- SOAP
- REST
- gRPC, Cadriciel d'appel de procédure à distance en code source libre initialement développé par Google
Liens externes
[modifier | modifier le code]Notes et références
[modifier | modifier le code]- (en) Cet article est partiellement ou en totalité issu de l’article de Wikipédia en anglais intitulé « Remote procedure call » (voir la liste des auteurs).
- (en) « A High-Level Framework for Network-Based Resource Sharing », Request for comments no 707,
- (en) « Overview of Secure RPC »