Возвращает клиенту универсальный адрес программы. | |
В запрос включается нужный номер версии программы. | |
Выводит список адресов программы. Клиент может выбрать из нескольких доступных транспортных протоколов. | |
Список всех элементов базы данных RPCBIND (например, предоставление сведений для вывода командой | |
Поддержка широковещательного запроса — RPCBIND пересылает запрос локальной программе. | |
Поддержка косвенных запросов, которые являются многоадресными — RPCBIND пересылает их локальной программе и возвращает назад результат или сообщение об ошибке. | |
Возвращает местное время сервера, отсчитанное в секундах от полночи первого дня января 1970 г. | |
Преобразование универсальных адресов в адреса, специфичные для данного транспорта. | |
Преобразование специфичных для транспорта адресов в универсальные адреса. | |
Предоставление статистики о количестве и типах полученных запросов. |
15.8 Сообщения RPC
Клиент RPC посылает запросы серверу и получает ответы на них в специальных сообщениях. Что должны содержать эти сообщения, чтобы клиент и сервер поняли друг друга?
Необходим идентификатор транзакции, определяющий соответствие между запросом и ответом. Запрос клиента должен указывать программу и процедуру, которую он хочет запустить. Клиенту необходим некоторый способ идентифицировать себя через мандат (credentials), доказывающий право использования службы. Наконец, запрос клиента должен содержать входные параметры. Например, запрос
В дополнение к сообщению о результатах успешных запросов серверу необходим способ сообщения клиенту об отмене запроса и причинах такой отмены. Запрос может быть отклонен при несоответствии версий программы или ошибке при аутентификации клиента. Сервер должен сообщить об ошибках в параметрах или событиях, например: 'Не могу найти файл'.
На рис. 15.5 показано взаимодействие клиента с программой сервера. Клиент посылает запрос. Когда работа затребованной процедуры завершается, серверная программа возвращает ответ. Как видно из рис. 15.5, запрос включает:
■ Идентификатор транзакции
■ Текущий номер версии RPC
■ Номер программы
■ Версию программы
■ Номер процедуры
■ Мандат аутентификации
■ Проверочные сведения (verifier) аутентификации
■ Входные параметры
Рис. 15.5. Сообщения RPC
Если процедура выполнена успешно, ответ содержит результаты. Если при выполнении выявлены проблемы, ответ будет содержать информацию об ошибках.
15.9 Аутентификация в RPC
Некоторые службы не нуждаются в защите. Для вывода времени дня на сервере служба RPC может быть оставлена открытой для общего доступа. Однако клиент, обращающийся к личным данным, должен обеспечить некоторую опознавательную информацию (проходить аутентификацию). В некоторых случаях важно, чтобы сервер также подтверждал свою подлинность. Не следует посылать номер своей кредитной карточки через систему интерактивных заказов, если не будет гарантии в подлинности сервера. Таким образом, в некоторых случаях аутентификационные данные должен предоставлять как клиент, так и сервер (они будут как в запросах, так и в ответах).
В сообщении запроса аутентификационные сведения RPC пересылаются в двух полях:
■ Поле
■ Поле