ВУЗ:
Составители:
6
Теперь начинает работу серверный стаб. Он распаковывает параметры и
помещает их соответствующим образом в стек . Извлечение (unmarshalling) мо-
жет включать необходимые преобразования (например , изменения порядка
расположения байтов). Когда все готово , выполняется вызов настоящей проце-
дуры -сервера, которой адресован запрос клиента, с передачей ей полученных
по сети аргументов. После выполнения процедуры сервер передает результаты
клиенту . Для этого выполняются все описанные выше этапы , только в обратном
порядке: стаб сервера преобразует возвращенные процедурой значения, форми-
руя сетевое сообщение- отклик , который передается по сети системе, от которой
пришел запрос. Операционная система передает полученное сообщение стабу
клиента, который , после необходимого преобразования, передает значения (яв-
ляющиеся значениями, возвращенными удаленной процедурой ) клиенту , вос-
принимающему это как нормальный возврат из процедуры . Рис. 2 демонстри-
рует описанные этапы выполнения RPC-вызова.
Рис. 2. Этапы выполнения процедуры RPC
Итак , с точки зрения клиента, он производит вызов удаленной процедуры ,
как он это сделал бы для локальной . То же самое можно сказать и о сервере:
вызов процедуры происходит стандартным образом , некий объект (стаб серве-
ра) производит вызов локальной процедуры и получает возвращенные ею зна-
чения. Клиент воспринимает стаб как вызываемую процедуру -сервер , а сервер
принимает собственную заглушку за клиента.
Таким образом , стабы составляют ядро системы RPC, отвечая за все аспек -
ты формирования и передачи сообщений между клиентом и удаленным серве-
ром (процедурой ), хотя и клиент и сервер считают, что вызовы происходят ло-
кально. В этом -то и состоит основная концепция RPC – полностью спрятать
распределенный (сетевой ) характер взаимодействия в коде стабов. Преимуще-
6 Теперь начинает работу серверный стаб. Он распаковывает параметры и помещает их соответствующим образом в стек. Извлечение (unmarshalling) мо- жет включать необходимые преобразования (например, изменения порядка расположения байтов). Когда все готово, выполняется вызов настоящей проце- дуры-сервера, которой адресован запрос клиента, с передачей ей полученных по сети аргументов. После выполнения процедуры сервер передает результаты клиенту. Для этого выполняются все описанные выше этапы, только в обратном порядке: стаб сервера преобразует возвращенные процедурой значения, форми- руя сетевое сообщение-отклик, который передается по сети системе, от которой пришел запрос. Операционная система передает полученное сообщение стабу клиента, который, после необходимого преобразования, передает значения (яв- ляющиеся значениями, возвращенными удаленной процедурой) клиенту, вос- принимающему это как нормальный возврат из процедуры. Рис. 2 демонстри- рует описанные этапы выполнения RPC-вызова. Рис. 2. Этапы выполнения процедуры RPC Итак, с точки зрения клиента, он производит вызов удаленной процедуры, как он это сделал бы для локальной. То же самое можно сказать и о сервере: вызов процедуры происходит стандартным образом, некий объект (стаб серве- ра) производит вызов локальной процедуры и получает возвращенные ею зна- чения. Клиент воспринимает стаб как вызываемую процедуру-сервер, а сервер принимает собственную заглушку за клиента. Таким образом, стабы составляют ядро системы RPC, отвечая за все аспек- ты формирования и передачи сообщений между клиентом и удаленным серве- ром (процедурой), хотя и клиент и сервер считают, что вызовы происходят ло- кально. В этом-то и состоит основная концепция RPC – полностью спрятать распределенный (сетевой) характер взаимодействия в коде стабов. Преимуще-
Страницы
- « первая
- ‹ предыдущая
- …
- 4
- 5
- 6
- 7
- 8
- …
- следующая ›
- последняя »