thumb|upright=1.5|Vue d'ensemble d'un système RPC
En informatique et en télécommunication, 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.
L'idée de RPC date d'au moins 1976, quand il a été décrit dans le . Une des premières utilisations commerciales de RPC a été faite par la firme Xerox sous le nom de Courier en 1981. La première implantation populaire de RPC sur Unix était le RPC de Sun (maintenant appelée ONC RPC), utilisée comme la base pour NFS ().
Un RPC 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 RPC (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 protège les appels RPC par un mécanisme d'authentification.
Cette page est générée automatiquement et peut contenir des informations qui ne sont pas correctes, complètes, à jour ou pertinentes par rapport à votre recherche. Il en va de même pour toutes les autres pages de ce site. Veillez à vérifier les informations auprès des sources officielles de l'EPFL.
This course teaches the journey taken by software engineering teams from incipient ideas to software products that solve real problems for real people.
thumb|Démonstration d'une routine appelant une base de données dans une interface de programmation. En informatique, une interface de programmation d’application ou interface de programmation applicative, souvent désignée par le terme API pour « application programming interface », est un ensemble normalisé de classes, de méthodes, de fonctions et de constantes qui sert de façade par laquelle un logiciel offre des services à d'autres logiciels.
CORBA, acronyme de Common Object Request Broker Architecture, est une architecture logicielle pour le développement de composants et d’object request broker (ORB). Ces composants, qui sont assemblés afin de construire des applications complètes, peuvent être écrits dans des langages de programmation distincts, être exécutés dans des processus séparés, voire être déployés sur des machines distinctes. CORBA est un standard maintenu par l’Object Management Group.
vignette|Schéma d'une sérialisation puis d'une désérialisation de données En informatique, la sérialisation (de l'anglais américain serialization) est le codage d'une information sous la forme d'une suite d'informations plus petites (dites atomiques, voir l'étymologie de atome) pour, par exemple, sa sauvegarde (persistance) ou son transport sur le réseau (proxy, RPC...). L'activité réciproque, visant à décoder cette suite pour créer une copie conforme de l'information d'origine, s'appelle la désérialisation (ou unmarshalling).
Couvre l'implémentation du protocole Language Server pour le compilateur IME, en se concentrant sur des fonctionnalités telles que l'auto-complétion et les assistants de signature.
Distributed systems designers typically strive to improve performance and preserve availability despite failures or attacks; but, when strong consistency is also needed, they encounter fundamental limitations. The bottleneck is in replica coordination, whi ...
Online services have become ubiquitous in technological society, the global demand for which has driven enterprises to construct gigantic datacenters that run their software. Such facilities have also recently become a substrate for third-party organizatio ...
EPFL2022
, ,
In the distributed remote (CEO) source coding problem, many separate encoders observe independently noisy copies of an underlying source. The rate loss is the difference between the rate required in this distributed setting and the rate that would be requi ...