Сети ЭВМ и телекоммуникации. Глобальные сети. Брейман А.Д. - 83 стр.

UptoLike

Составители: 

83
узлах, (или в других адресных пространствах) точно так же, как и локальные
процедуры.
В случае локального вызова процедуры, вызывающая сторона размещает
передаваемые параметры в некотором известном месте (например, в регистрах
или стеке) а затем передает управление этой процедуре. После того, как
процедура выполнена, вызывающая сторона вновь получает управление,
извлекает возвращаемые
параметры из регистров или стека и продолжает свою
работу.
Удаленный вызов процедуры для вызывающей стороны выглядит очень
похоже. Поток управления проходит через два процесса: вызывающий
(клиентский) и обслуживающий (серверный). Клиентский процесс отправляет
сообщение-запрос серверному и приостанавливает свою работу до получения
сообщения-ответа. Сообщение-запрос содержит передаваемые параметры, а
сообщение
-ответвозвращаемые параметры. После того, как сообщение-
ответ получено, клиентский процесс извлекает из него данные и продолжает
свою работу. Серверный процесс в основном ожидает поступления сообщений-
запросов. Когда запрос поступил, из него извлекаются значения параметров,
выполняется требуемая процедура, формируется и отправляется сообщение-
ответ, и серверный процесс опять переходит в состояние
ожидания.
В этой модели клиентский и серверный процессы выполняются
синхроннов каждый момент времени выполняется только один из них. Тем
не менее, расширения протокола RPC (например, пакет ONC+ фирмы Sun
Microsystems) допускают и асинхронный режим, когда клиентский процесс
может выполнять некоторую полезную работу во время ожидания ответа.
Наряду со значительным подобием, имеется ряд серьезных
отличий
между удаленным и локальным вызовом процедур. Во-первых, обработка
ошибок: необходимо обрабатывать отказы сети и удаленного сервера. Во-
вторых, глобальные переменные и побочные эффекты: поскольку сервер не
имеет доступа к адресному пространству клиента, нельзя передавать в
процедуру данные через глобальные переменные, а также возвращать данные
узлах, (или в других адресных пространствах) точно так же, как и локальные
процедуры.
     В случае локального вызова процедуры, вызывающая сторона размещает
передаваемые параметры в некотором известном месте (например, в регистрах
или стеке) а затем передает управление этой процедуре. После того, как
процедура выполнена, вызывающая сторона вновь получает управление,
извлекает возвращаемые параметры из регистров или стека и продолжает свою
работу.
     Удаленный вызов процедуры для вызывающей стороны выглядит очень
похоже. Поток управления проходит через два процесса: вызывающий
(клиентский) и обслуживающий (серверный). Клиентский процесс отправляет
сообщение-запрос серверному и приостанавливает свою работу до получения
сообщения-ответа. Сообщение-запрос содержит передаваемые параметры, а
сообщение-ответ — возвращаемые параметры. После того, как сообщение-
ответ получено, клиентский процесс извлекает из него данные и продолжает
свою работу. Серверный процесс в основном ожидает поступления сообщений-
запросов. Когда запрос поступил, из него извлекаются значения параметров,
выполняется требуемая процедура, формируется и отправляется сообщение-
ответ, и серверный процесс опять переходит в состояние ожидания.
     В этой модели клиентский и серверный процессы выполняются
синхронно — в каждый момент времени выполняется только один из них. Тем
не менее, расширения протокола RPC (например, пакет ONC+ фирмы Sun
Microsystems) допускают и асинхронный режим, когда клиентский процесс
может выполнять некоторую полезную работу во время ожидания ответа.
     Наряду со значительным подобием, имеется ряд серьезных отличий
между удаленным и локальным вызовом процедур. Во-первых, обработка
ошибок: необходимо обрабатывать отказы сети и удаленного сервера. Во-
вторых, глобальные переменные и побочные эффекты: поскольку сервер не
имеет доступа к адресному пространству клиента, нельзя передавать в
процедуру данные через глобальные переменные, а также возвращать данные
                                       83