Что такое удаленный вызов процедуры

«Что такое удаленный вызов процедуры» — вопрос из категории API и интеграции, который задают на 27% собеседований Системный Аналитик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Удаленный вызов процедур (RPC, Remote Procedure Call) — это механизм, позволяющий программе вызвать функцию или процедуру на другом компьютере в сети, как если бы она выполнялась локально.

Ключевые аспекты:

  • Клиент и сервер обмениваются сообщениями через сеть.
  • Абстрагирует сетевое взаимодействие, предоставляя интерфейс, похожий на локальные вызовы.
  • Использует сериализацию данных для передачи аргументов и результатов.

Пример (gRPC на Python):

# Определение сервиса в .proto файле
service Greeter {
  rpc SayHello (HelloRequest) returns (HelloReply) {}
}

# Сервер
class Greeter(grpc.Servicer):
    def SayHello(self, request, context):
        return HelloReply(message=f"Hello, {request.name}!")

# Клиент
stub = GreeterStub(channel)
response = stub.SayHello(HelloRequest(name="Alice"))
print(response.message)  # "Hello, Alice!"

Популярные реализации: gRPC, Apache Thrift, XML-RPC.