Удаленный вызов процедур
Удаленный вызов процедур
Вызова удаленных процедур (Remote Procedure Call - RPC) - механизм передачи управления и данных внутри программы, выполняющейся на одной машине, на передачу управления и данных через сеть. Алгоритм: клиент производит вызов процедуры, посылая пакет данных на сервер. Средства удаленного вызова процедур предназначены для облегчения организации распределенных вычислений.
Ключевые моменты (отличия от вызовов локальных процедур):
1) Реализация удаленных вызовов существенно сложнее реализации вызовов локальных процедур. Поскольку вызывающая и вызываемая процедуры выполняются на разных машинах, то они имеют разные адресные пространства, и это создает проблемы при передаче параметров и результатов.
2) Значения параметров должны копироваться с одного компьютера на другой.
3) В реализации RPC участвуют как минимум два процесса - по одному в каждой машине. В случае, если один из них аварийно завершится, могут возникнуть неприятные ситуации.
4) Существует ряд проблем, связанных с неоднородностью языков программирования и операционных сред.
3 уровня RPC
- верхний(highest), совершенно прозрачен для операционной системы машины и сети. Вызов удаленной процедуры производиться так же как обычные Си функции.
Если Вам понравилась эта лекция, то понравится и эта - 6 Диаграммы прецедентов.
- средний(inter medium), настоящий RPC с одной стороны программист сам определяет удаленную процедуру, организует кодировку передаваемых данных. С другой стороны не работает напрямую с сокетами.
- нижний(low), редко используется, позволяет детально программировать взаимодействия по RPC.
Взаимодействие программных компонентов при выполнении удаленного вызова процедуры иллюстрируется рисунком.
Следующий рисунок показывает последовательность команд, которую необходимо выполнить для каждого RPC-вызова