Вызов удаленных процедур (Remote Procedure Call, RPC)

Идея состоит в расширении механизма вызова подпрограмм (функций) внутри локальной машины, на вызов через сеть

Реализация RPC гораздо сложнее реализации вызова локальных процедур т.к. процедуры выполняются на разных машинах, которые имеют разные адресные пространства, особенно если эти машины имеют разные ОС

В реализации RPC участвует как минимум два процесса. В случае если один завершается аварийно, возникают ситуации:

вызванные процедуры могут оказаться “осиротевшими”

вызвавшие процедуры могут оказаться “обездоленными”

Идея RPC заключается в том, чтобы вызов удаленной процедуры выглядел так же, как и вызов локальной процедуры. Для этого используется клиентский и серверный стаб (процедуры - заглушки). См. рисунок

Стабы могут генерироваться вручную или автоматически. В первом случае программист использует специальные функции для формирования стаба, а во втором - с помощью языка определения интерфейса (Interface Definition Language, IDL) описывается интерфейс между клиентом и сервером RPC