Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Судаков / Лекции / lec5_rpc.ppt
Скачиваний:
38
Добавлен:
20.03.2015
Размер:
242.69 Кб
Скачать

Основные определения

Процедура характеризуется

номером программы

номером версии

номером функции

Клиент – программа, которая вызывает удаленную функцию

Сервер – программа, которая выполняет запрос клиента

Определитель транспорта – сервер, который ставит в соответствие номеру программы и номеру версии порт транспортного протокола

Схема запроса

Машина 1 (клиент)

Вызов функции 1 программы 1, версии 1 на машине 2

Обращение к библиотеке

Запрос на сервер какой номер порта у программы 1 версии 1?

Обращение к машине 2 порт 1234. Вызов функции 1 и получение результата

Машина 2 (сервер)

Portmap порт 111

Ответ порт 1234

Сервер 1,1 слушает порт 1234

Выполнение функции 1 и возврат результата

Вызов удаленной процедуры

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Использование

клиентом

 

 

 

 

 

 

Int r =proc(int a, char* b)

 

 

 

 

 

 

результата

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Определение порта и

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

транспортного протокола

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

сервера (udp/1234)

 

 

 

Десериализация результата

 

 

 

 

 

 

 

 

 

 

 

 

XDR – extended data representation

 

 

 

 

Авторизация

 

 

 

 

 

 

 

 

 

 

 

XDR_int(r)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Передача номера процедуры

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Прием результата от

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

сервера

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Сериализация агрументов

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

XDR – extended data representation

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ожидание результата

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

XDR_int(a), XDR_string(b)

Передача аргументов не

сервер

Выполнение процедуры

серверомРегистрация в

 

определителе транспорта

 

 

 

 

 

 

и получение номера

 

 

 

 

 

 

 

 

Передача результата

 

 

порта (udp/1234)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Сериализация результата

 

 

Ожидание запросов

 

 

 

 

 

 

 

 

(udp/1234)

 

 

XDR_int

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

авторизация

 

Выполнение процедуры

 

 

 

Int proc(int a, char* c)

 

 

 

 

 

 

 

 

Прием номера процедуры Десериализация

аргументов

 

Прием аргументов

 

XDR_int, XDR_string

 

 

 

 

 

 

Синхронное и асинхронное

выполнение

Асинхронный

Синхронный

 

 

 

 

 

 

 

Вызов процедуры

 

Вызов процедуры

 

 

 

 

 

 

 

 

 

 

Ожидание результатов

 

Продолжение работы

 

 

 

 

 

 

 

 

 

 

Получение результатов

 

Прерывание работы

 

 

 

 

 

 

 

 

 

 

Продолжение работы

 

Получение результатов

 

 

 

 

Продолжение работы

Синхронное выполнение

Преимущества

Простота реализации программы

Недостатки

Затрачивается время на ожидание

Асинхронное выполнение

Преимущества

Эффективное использование процессорного времени

Недостатки

Сложность реализации программ

Обратный вызов

Клиент вызывает функцию на сервере и продолжает работу

Сервер после выполнения функции вызывает функцию на клиенте

И сервер и клиент являются агентами

Авторизация

AUTH_NONE отсутствует

AUTH_SYS по идентификатору пользователя

AUTH_DES по зашифрованному имени машины

RPC на реальных машинах

Соседние файлы в папке Лекции