Разделение программы на локальные и удаленные процедуры

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

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

Добавление кода, необходимого для дистанционного вызова процедур

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

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

Процедуры-заглушки

Дополнительные процедуры, которые вводятся в программу для реализации дистанционного вызова процедур, называются процедурами-заглушками. Чтобы лучше понять, что такое процедура-заглушка, проще всего представить себе, что нераспределенная программа разделена на две программы путем перемещения одной из существующих процедур на удаленный компьютер. В вызывающей (клиентской части) процедура-заглушка заменяет вызываемую процедуру. В части удаленной процедуры (серверной части) процедура-заглушка заменяет вызывающую процедуру. Эти две заглушки обеспечивают выполнение всех функций связи, необходимых для дистанционного вызова процедур, в результате чего две первоначальные процедуры (вызывающая и вызываемая) остаются неизменными. На рис. 22.2 проиллюстрировано понятие заглушки и показано, что процедуры-заглушки позволяют разделить вызов процедуры, приведенный на рис. 22.1, на локальную и удаленную части. Поскольку в заглушках используется такой же интерфейс, как и в первоначальных вызовах, введение их в программу не требует внесения изменений в первоначальные процедуры — вызывающую и вызываемую.

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