Составители:
данных через сеть. Средства удаленного вызова процедур предназначены
для облегчения организации распределенных вычислений.
Наибольшая эффективность RPC достигается в тех приложениях, в
которых существует интерактивная связь между удаленными компонентами
с небольшим временем ответов и относительно малым количеством
передаваемых данных. Такие приложения называются RPC-
ориентированными.
Характерными чертами вызова локальных процедур являются:
− асимметричность — одна из взаимодействующих сторон
является инициатором взаимодействия;
− синхронность — выполнение вызывающей процедуры блокируется
с момента выдачи запроса и возобновляется только после возврата
из вызываемой процедуры.
Реализация удаленных вызовов существенно сложнее реализации
вызовов локальных процедур. Поскольку вызывающая и вызываемая
процедуры выполняются на разных машинах, то они имеют разные адресные
пространства и это создает проблемы при передаче параметров и
результатов, особенно если машины и их операционные системы не
идентичны. Так как RPC не может рассчитывать на разделяемую память, это
означает, что параметры RPC не должны содержать указателей на ячейки
памяти и что значения параметров должны как-то копироваться с одного
компьютера на другой.
Следующим отличием RPC от локального вызова является то, что он
обязательно использует нижележащую систему обмена сообщениями,
однако это не должно быть явно видно ни в определении процедур, ни в
самих процедурах. Выполнение вызывающей программы и вызываемой
локальной процедуры в одной машине реализуется в рамках единого
процесса. Но в реализации RPC участвуют как минимум два процесса — по
одному в каждой машине.
Идея, положенная в основу RPC, состоит в том, чтобы вызов
удаленной процедуры по возможности выглядел так же, как и вызов
локальной процедуры. Другими словами, необходимо сделать механизм RPC
прозрачным для программиста: вызывающей процедуре не требуется знать,
что вызываемая процедура находится на другой машине, и наоборот.
Механизм RPC достигает прозрачности следующим образом. Когда
вызываемая процедура действительно является удаленной, в библиотеку
процедур вместо локальной реализации оригинального кода процедуры
помещается другая версия процедуры, называемая клиентским стабом
(stub — заглушка). На удаленный компьютер, который выполняет роль
сервера процедур, помещается оригинальный код вызываемой процедуры, а
также еще один стаб, называемый серверным стабом (рис. 8.4).
119
данных через сеть. Средства удаленного вызова процедур предназначены
для облегчения организации распределенных вычислений.
Наибольшая эффективность RPC достигается в тех приложениях, в
которых существует интерактивная связь между удаленными компонентами
с небольшим временем ответов и относительно малым количеством
передаваемых данных. Такие приложения называются RPC-
ориентированными.
Характерными чертами вызова локальных процедур являются:
− асимметричность — одна из взаимодействующих сторон
является инициатором взаимодействия;
− синхронность — выполнение вызывающей процедуры блокируется
с момента выдачи запроса и возобновляется только после возврата
из вызываемой процедуры.
Реализация удаленных вызовов существенно сложнее реализации
вызовов локальных процедур. Поскольку вызывающая и вызываемая
процедуры выполняются на разных машинах, то они имеют разные адресные
пространства и это создает проблемы при передаче параметров и
результатов, особенно если машины и их операционные системы не
идентичны. Так как RPC не может рассчитывать на разделяемую память, это
означает, что параметры RPC не должны содержать указателей на ячейки
памяти и что значения параметров должны как-то копироваться с одного
компьютера на другой.
Следующим отличием RPC от локального вызова является то, что он
обязательно использует нижележащую систему обмена сообщениями,
однако это не должно быть явно видно ни в определении процедур, ни в
самих процедурах. Выполнение вызывающей программы и вызываемой
локальной процедуры в одной машине реализуется в рамках единого
процесса. Но в реализации RPC участвуют как минимум два процесса — по
одному в каждой машине.
Идея, положенная в основу RPC, состоит в том, чтобы вызов
удаленной процедуры по возможности выглядел так же, как и вызов
локальной процедуры. Другими словами, необходимо сделать механизм RPC
прозрачным для программиста: вызывающей процедуре не требуется знать,
что вызываемая процедура находится на другой машине, и наоборот.
Механизм RPC достигает прозрачности следующим образом. Когда
вызываемая процедура действительно является удаленной, в библиотеку
процедур вместо локальной реализации оригинального кода процедуры
помещается другая версия процедуры, называемая клиентским стабом
(stub — заглушка). На удаленный компьютер, который выполняет роль
сервера процедур, помещается оригинальный код вызываемой процедуры, а
также еще один стаб, называемый серверным стабом (рис. 8.4).
119
Страницы
- « первая
- ‹ предыдущая
- …
- 117
- 118
- 119
- 120
- 121
- …
- следующая ›
- последняя »
