15.3 Программы и процедуры RPC

15.3 Программы и процедуры RPC

Основные концепции RPC достаточно просты:

? Служба RPC реализуется одной или несколькими выполняющимися на сервере программами. Например, существуют отдельные программы управления доступом и блокировок файлов.

? Каждая программа может выполнять несколько процедур. Идея состоит в том, что процедура должна реализовывать одну простую, четко ограниченную функцию. Например, существуют отдельные процедуры файлового доступа NFS для операций чтения, записи, переименования и удаления файлов.

? Каждой программе присвоен числовой идентификатор.

? Каждая процедура программы также имеет числовой идентификатор.

На момент написания книги выделением уникальных номеров для программ занималась компания Sun Microsystems (в будущем это должно перейти под юрисдикцию IANA). Диапазоны идентификаторов программ показаны в таблице 15.1. Числовой идентификатор присваивается процедурам программы разработчиком этой программы. Например, процедура чтения NFS — 6, а переименования NFS — 11.

Таблица 15.1 Присваивание номеров в RPC

0–1fffffff Определяются компанией Sun (rpc@sun.com)
20000000–3fffffff Номера только для использования внутри сайта
40000000–5fffffff Для приложений, динамически генерирующих номера программ
60000000–7fffffff Зарезервировано
80000000–9fffffff Зарезервировано
a0000000–bfffffff Зарезервировано
c0000000–dfffffff Зарезервировано
e0000000–ffffffff Зарезервировано

Запрос клиента RPC идентифицирует запускаемую программу и процедуру по ее номеру. Например, чтобы прочитать файл, запрос RPC обратится к программе 100003 (NFS) и процедуре 6 (чтение). На рис. 15.3 показано клиентское приложение, обращающееся к удаленной процедуре программы 100003.

Опыт показывает, что через какое-то время программы меняются. Процедуры дорабатываются, и их становится все больше. По этой причине запрос RPC должен указывать версию программы. Очень часто на хосте сервера одновременно работает несколько версий одной программы RPC.

Рис. 15.3. Доступ к удаленной процедуре из клиентского приложения

Удаленный запрос к процедуре (RPC) послан от клиента серверу в форматированном сообщении. RPC не заботится о том, какой транспортный протокол используется для пересылки сообщения. В мире TCP/IP RPC может работать поверх UDP или TCP, но можно использовать и другой транспорт.

Хотя обычно предполагается взаимодействие клиента с уникальным сервером, запросы RPC могут передаваться в многоадресных или широковещательных рассылках.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг:

Процедуры и функции 

Из книги автора

Процедуры и функции  VBScript поддерживаются два вида подпрограмм: встроенные функции и функции или процедуры


15.17.2 Процедуры NFS

Из книги автора

15.17.2 Процедуры NFS Существуют процедуры NFS, обеспечивающие клиенту доступ, чтение или запись удаленного файла. Клиент может узнать структуру и реальную емкость удаленной файловой системы либо запросить атрибуты удаленного файла. Допустимо удалять и переименовывать


3.2. Процедуры

Из книги автора

3.2. Процедуры Пример 1.8: Процедура вычисляет корни квадратного уравненияAX2+BX+C=0PROGRAM KU (INPUT, OUTPUT);VAR A, B, C, D, X1, X2 : REAL;PROCEDURE KVUR (A, B, C: REAL; VAR D, X1, X2: REAL); BEGIN D:=SQR (B) -4*A*C; IF D = 0 THEN X1:= (-B) / (2*A) ELSE IF D> 0 THEN BEGIN X1:= ((-B) – SQRT (D)) / (2*A); X2:= ((-B) + SQRT (D)) / (2*A) END END; BEGINWRITE (‘Введите A=’);READLN (A);WRITE (‘Введите


Процедуры

Из книги автора

Процедуры Введение Наконец-то мы принимаемся за хорошую главу!К этому моменту мы изучили почти все основные особенности компиляторов и синтаксического анализа. Мы узнали как транслировать арифметические выражения, булевы выражения, управляющие конструкции,


Создание хранимой процедуры с помощью программы SQL Query Analyzer

Из книги автора

Создание хранимой процедуры с помощью программы SQL Query Analyzer Процесс создания хранимой процедуры с помощью SQL Query Analyzer практически не отличается от аналогичного процесса в окне программы SQL Server Enterprise Manager. НА ЗАМЕТКУ Убедитесь в том, что хранимая процедура создается в базе


Процедуры типа Sub

Из книги автора

Процедуры типа Sub Термин процедура типа Sub кажется мне довольно неуклюжим, но он достаточно точно отражает суть дела. В некоторых языках программирования суб процедурам и, или подпрограммами, называются процедуры, вызываемые главными процедурами. В VBA, хотя процедуры типа


Хранимые процедуры

Из книги автора

Хранимые процедуры Хранимые процедуры выполняются в контексте тех транзакций, которые их вызвали. Сделанная работа, включая ту, которая была выполнена в задачах встроенных или рекурсивных вызовов, будет иметь результат, если все завершится без ошибок, с обработанными


Хранимые процедуры

Из книги автора

Хранимые процедуры Хранимые процедуры могут быть использованы в приложениях различными способами.* Процедуры выбора используются на месте таблицы или просмотра в оператореSELECT.* Выполняемые процедуры исполняются оператором EXECUTE PROCEDURE для выполнения одной операции или


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

Из книги автора

Вызов процедуры При вызове указывается имя подпрограммы, возможно, с фактическими аргументами. В инструкции вызова подпрограмма должна быть процедурой. Вызов функции является выражением. Хотя сейчас нас интересуют инструкции, следующие правила применимы в обоих


Однократные процедуры

Из книги автора

Однократные процедуры Функция close должна вызываться только один раз. Контроль над количеством ее вызовов рекомендуется возложить на глобальную переменную приложения. Из руководства к коммерческой библиотеке функций языка C Механизм однократных функций интересен и


3 Рутинные процедуры

Из книги автора

3 Рутинные процедуры Слово «рутинный» имеет отрицательный оттенок. Анонсы новых программных продуктов пестрят обещаниями избавить пользователя от рутинной работы. «Рутинный» означает «скучный», не так ли?Не так! Как системный администратор я приветствую скуку. Я


Специальные процедуры

Из книги автора

Специальные процедуры Существует несколько способов скрыть вирус или сделать его более эффективным. Например, можно создать специальный макрос, прячущий вирус, если Tools/Macro открывается для просмотра. Код такого макроса может выглядеть примерно так:Sub MAIN On Error Goto