Распределенные вычисления: технология Microsoft RPC. Часть1. Фертиков В.В. - 6 стр.

UptoLike

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

6
Теперь начинает работу серверный стаб. Он распаковывает параметры и
помещает их соответствующим образом в стек . Извлечение (unmarshalling) мо-
жет включать необходимые преобразования (например , изменения порядка
расположения байтов). Когда все готово , выполняется вызов настоящей проце-
дуры -сервера, которой адресован запрос клиента, с передачей ей полученных
по сети аргументов. После выполнения процедуры сервер передает результаты
клиенту . Для этого выполняются все описанные выше этапы , только в обратном
порядке: стаб сервера преобразует возвращенные процедурой значения, форми-
руя сетевое сообщение- отклик , который передается по сети системе, от которой
пришел запрос. Операционная система передает полученное сообщение стабу
клиента, который , после необходимого преобразования, передает значения (яв-
ляющиеся значениями, возвращенными удаленной процедурой ) клиенту , вос-
принимающему это как нормальный возврат из процедуры . Рис. 2 демонстри-
рует описанные этапы выполнения RPC-вызова.
Рис. 2. Этапы выполнения процедуры RPC
Итак , с точки зрения клиента, он производит вызов удаленной процедуры ,
как он это сделал бы для локальной . То же самое можно сказать и о сервере:
вызов процедуры происходит стандартным образом , некий объект (стаб серве-
ра) производит вызов локальной процедуры и получает возвращенные ею зна-
чения. Клиент воспринимает стаб как вызываемую процедуру -сервер , а сервер
принимает собственную заглушку за клиента.
Таким образом , стабы составляют ядро системы RPC, отвечая за все аспек -
ты формирования и передачи сообщений между клиентом и удаленным серве-
ром (процедурой ), хотя и клиент и сервер считают, что вызовы происходят ло-
кально. В этом -то и состоит основная концепция RPC полностью спрятать
распределенный (сетевой ) характер взаимодействия в коде стабов. Преимуще-
                                     6
     Теперь начинает работу серверный стаб. Он распаковывает параметры и
помещает их соответствующим образом в стек. Извлечение (unmarshalling) мо-
жет включать необходимые преобразования (например, изменения порядка
расположения байтов). Когда все готово, выполняется вызов настоящей проце-
дуры-сервера, которой адресован запрос клиента, с передачей ей полученных
по сети аргументов. После выполнения процедуры сервер передает результаты
клиенту. Для этого выполняются все описанные выше этапы, только в обратном
порядке: стаб сервера преобразует возвращенные процедурой значения, форми-
руя сетевое сообщение-отклик, который передается по сети системе, от которой
пришел запрос. Операционная система передает полученное сообщение стабу
клиента, который, после необходимого преобразования, передает значения (яв-
ляющиеся значениями, возвращенными удаленной процедурой) клиенту, вос-
принимающему это как нормальный возврат из процедуры. Рис. 2 демонстри-
рует описанные этапы выполнения RPC-вызова.




                 Рис. 2. Этапы выполнения процедуры RPC

     Итак, с точки зрения клиента, он производит вызов удаленной процедуры,
как он это сделал бы для локальной. То же самое можно сказать и о сервере:
вызов процедуры происходит стандартным образом, некий объект (стаб серве-
ра) производит вызов локальной процедуры и получает возвращенные ею зна-
чения. Клиент воспринимает стаб как вызываемую процедуру-сервер, а сервер
принимает собственную заглушку за клиента.
     Таким образом, стабы составляют ядро системы RPC, отвечая за все аспек-
ты формирования и передачи сообщений между клиентом и удаленным серве-
ром (процедурой), хотя и клиент и сервер считают, что вызовы происходят ло-
кально. В этом-то и состоит основная концепция RPC – полностью спрятать
распределенный (сетевой) характер взаимодействия в коде стабов. Преимуще-