Основные подходы к проектированию распределенных баз данных

       

Механизм работы RPC


            RPC позволяет клиенту напрямую вызывать процедуры, находящиеся в программе на удаленном сервере. Клиент и сервер имеют различные адресные пространства; так, каждый имеет свою собственную память, в которой распределены данные, используемые процедурами. Следующий рисунок иллюстрирует архитектуру RPC:

Рис.2.3. Механизм работы RPC.

 

            Как показано на рис.2.3, клиентское приложение вызывает локальную заглушку вместо кода, непосредственно реализующего необходимую процедуру. Заглушка компилируется и линкуется с клиентским приложением. Заглушка клиента выполняет следующие действия:

·      Запрашивает необходимые параметры из адресного пространства клиента

·      Переводит параметры в стандартную форму представления данных в сети (NDR - standard network data representation)

·      Вызывает необходимые функции из библиотеки времени выполнения RPC для отсылки запроса с параметрами на сервер.

Заглушка сервера выполняет следующие шаги:

·      Библиотека времени выполнения RPC принимает запрос и вызывает процедуру заглушки сервера

·      Заглушка сервера принимает параметра из буфера и конвертирует их из формата NDR в формат, процедуры сервера.

·      Заглушка вызывает необходимую процедуру на сервере.

Удаленная процедура выполняется, генерирует выходные параметры и возвращаемое значение. Когда процедура завершена, следующие шаги возвращают данные клиенту:

·      Удаленная процедура возвращает данные заглушке сервера

·      Заглушка сервера конвертирует возвращаемые параметры в формат NDR и возвращает их функции библиотеки времени выполнения RPC

·      Библиотечные функции передают данные через сеть на клиентский компьютер

Клиент завершает процесс принятием данных из сети и их возвратом вызывающей функции:


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

·      Заглушка клиента конвертирует данные из формата NDR в формат, используемый клиентским приложением

·      Приложение клиента продолжает свою работу.

Для Microsoft Windows и Windows NT библиотеки времени выполнения используются двумя путями: как статическая библиотека, линкуемая в приложение; и библиотека, реализованная как DLL.

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

            Таким образом, реализовав коммуникационный сервис на базе слоя RPC, можно существенно сэкономить время на разработке протоколов обмена информацией, а также получить систему, работающую по любым транспортным протоколам.


Содержание раздела