Учебники

Python — Удаленный вызов процедур

Система удаленного вызова процедур (RPC) позволяет вам вызывать функцию, доступную на удаленном сервере, используя тот же синтаксис, который используется при вызове функции в локальной библиотеке. Это полезно в двух ситуациях.

  • Вы можете использовать вычислительную мощность нескольких машин с помощью rpc без изменения кода для вызова программ, расположенных в удаленных системах.
  • Данные, необходимые для обработки, доступны только в удаленной системе.

Таким образом, в python мы можем рассматривать одну машину как сервер, а другую — как клиент, который будет вызывать сервер для запуска удаленной процедуры. В нашем примере мы возьмем localhost и используем его как сервер и клиент.

Запуск сервера

Язык Python поставляется со встроенным сервером, который мы можем запустить как локальный сервер. Скрипт для запуска этого сервера находится в папке bin установки python и называется classic.py. Мы можем запустить его в приглашении python и проверить, работает ли он как локальный сервер.

python bin/classic.py

Когда мы запускаем вышеуказанную программу, мы получаем следующий вывод:

INFO:SLAVE/18812:server started on [127.0.0.1]:18812

Запуск клиента

Затем мы запускаем клиент, используя модуль rpyc для выполнения удаленного вызова процедуры. В приведенном ниже примере мы выполняем функцию печати на удаленном сервере.

import rpyc
conn = rpyc.classic.connect("localhost")
conn.execute("print('Hello from Tutorialspoint')")

Когда мы запускаем вышеуказанную программу, мы получаем следующий вывод:

Hello from Tutorialspoint

Оценка выражения через RPC

Используя приведенные выше примеры кода, мы можем использовать встроенные функции python для выполнения и вычисления выражений через rpc.

import rpyc
conn = rpyc.classic.connect("localhost")
conn.execute('import math')
conn.eval('2*math.pi')

Когда мы запускаем вышеуказанную программу, мы получаем следующий вывод: