Вспомогательные средства программирования RPC

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

Программное обеспечение ONC RPC позволяет исключить значительную часть рутинной работы по программированию. В нем предусмотрены вспомогательные средства, которые подразделяются на четыре категории.

  1. Библиотечные процедуры XDR, которые преобразуют отдельные элементы данных из внутренней формы в стандартное внешнее представление XDR.
  2. Библиотечные процедуры XDR, которые формируют сложные агрегаты данных (например, массивы и структуры), используемые для определения сообщений RPC.
  3. Процедуры библиотеки времени выполнения RPC, позволяющие вызывать в программе удаленную процедуру, регистрировать удаленную программу (сервер) в службе привязки портов или передавать входящий вызов соответствующей удаленной процедуре удаленной программы.
  4. Инструментальные средства генератора программ, которые вырабатывают значительную часть файлов исходного кода на языке С, необходимых для построения распределенной программы в рамках технологии RPC.

В состав библиотеки времени выполнения RPC входят процедуры, предоставляющие основную часть функциональных средств, необходимых для дистанционного вызова процедур. Например, процедура callrpc передает сообщение RPC на сервер. Она имеет следующую форму: callrpc(host,prog,progvertprocnum,inproc,in, outproc,out);

Параметр host задает символьную строку, содержащую имя компьютера, на котором функционирует удаленная процедура. Параметры prog, progver и procnum определяют номер удаленной программы, версию применяемой программы и номер удаленной процедуры. Параметр inproc указывает адрес локальной процедуры, которая может быть вызвана для упорядочения (линеаризации и кодирования) параметров в виде сообщения RPC, а параметр in указывает адрес параметров для удаленной процедуры. Параметр outproc задает адрес локальной процедуры, которая может быть вызвана для разупорядочения (делинеаризации и декодирования) результатов, а параметр out определяет адрес в памяти, где должны быть помещены результаты. Реклама. У нас цветочные горшки с автополивом на выгодных условиях. Не отказывайтесь! пинцеты для линз

Хотя процедура callrpc выполняет основную часть рутинной работы, необходимой для передачи сообщения RPC, библиотека ONC RPC включает и другие процедуры. Например, в клиентской программе для получения целочисленного идентификатора, который может использоваться для отправки сообщений RPC, вызывается функция: handlerlnt_create (host,prog, vers,proto);

В технологии RPC такой целочисленный идентификатор называется дескриптором; дескриптор применяется в качестве одного из параметров в нескольких библиотечных процедурах RPC. Параметры процедуры clnt_create задают имя удаленного хоста — host, удаленную программу на этом хосте — progr, версию этой программы — vers и протокол (TCP или UDP) — proto.

Библиотека содержит также процедуры для формирования, записи в память и обработки аутентификационной информации, Например, для создания аутентификационного дескриптора конкретного пользователя на определенном хост-компьютере предназначена процедура:

authunixjnreate(host, uid, gid, len,aup_gids) ; 

Параметры этой процедуры задают удаленный хост — host, идентификатор регистрационной записи пользователя — uid, идентификатор основной группы пользователя — gid, а также набор дополнительных групп, к которым принадлежит пользователь, — aup_gids. Параметр len определяет число элементов в наборе.

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

Похожие статьи Меню Опрос Фото Популярное
rss