ВУЗ:
Составители:
3
Концепция удаленного вызова процедур
Распределенные вычисления имеют дело с понятиями более высокого
уровня , чем физические носители, каналы связи и методы передачи по ним со-
общений . Распределенная среда должна дать пользователям и приложениям
прозрачный доступ к данным , вычислениям и другим ресурсам в гетерогенных
системах , представляющих собой набор средств различных производителей .
Стратегические архитектуры каждого крупного системного производителя ба-
зируются сейчас на той или иной форме распределенной вычислительной сре-
ды (Distributed Computing Environment – DCE). Ключом к пониманию выгоды
такой архитектуры является прозрачность. Пользователи не должны тратить
свое время на попытки выяснить, где находится тот или иной ресурс, а разра-
ботчики не должны писать коды для своих приложений , использующие место -
положение в сети.
Хорошо известный механизм для реализации распределенных вычислений ,
вызов удаленных процедур (Remote Procedure Call – RPC), расширяет традици-
онную модель программирования – вызов процедуры – для использования в се-
ти. RPC может составлять основу распределенных вычислений . В каждом вы -
зове удаленной процедуры участвуют две стороны : активный клиент, который
отправляет запрос вызова процедуры на сервер , и сервер , который отправляет
клиенту ответ. Следует иметь в виду, что термины «клиент» и «сервер» в дан -
ном случае относятся к определенной транзакции. Конкретное программное
обеспечение (процесс или программа) могут работать как в роли клиента, так и
в роли сервера. Наибольшая эффективность использования RPC достигается в
тех приложениях, в которых существует интерактивная связь между удаленны -
ми компонентами с небольшим временем ответов и относительно малым коли-
чеством передаваемых данных. Такие приложения называются RPC-
ориентированными.
Характерными чертами вызова локальных процедур являются асиммет -
ричность (то есть одна из взаимодействующих сторон является инициатором )
и синхронность (то есть выполнение вызывающей процедуры приостанавлива-
ется с момента выдачи запроса и возобновляется только после возврата из вы -
зываемой процедуры ). Подобными свойствами обладает и удаленный вызов:
процесс клиента отправляет серверу сообщение, в которое включены парамет-
ры вызываемой процедуры и ожидает ответного сообщения с результатами ее
работы . При получении ответа результат считывается, и процесс продолжает
работу . Со стороны сервера процесс- обработчик вызовов находится в состоя-
нии ожидания и при поступлении сообщения считывает параметры процедуры ,
выполняет ее, отправляет ответ и становится в состояние ожидания следующе-
го вызова. Необходимо заметить, однако, что протокол RPC не накладывает ка-
ких- либо требований на дополнительные связи между процессами и не требует
синхронности выполняемых функций , т. е. вызовы могут быть асинхронными и
взаимно независимыми, так что клиент во время ожидания ответа может вы -
полнять другие процедуры . Сервер RPC может выделять для каждой функции
3 Концепция удаленного вызова процедур Распределенные вычисления имеют дело с понятиями более высокого уровня, чем физические носители, каналы связи и методы передачи по ним со- общений. Распределенная среда должна дать пользователям и приложениям прозрачный доступ к данным, вычислениям и другим ресурсам в гетерогенных системах, представляющих собой набор средств различных производителей. Стратегические архитектуры каждого крупного системного производителя ба- зируются сейчас на той или иной форме распределенной вычислительной сре- ды (Distributed Computing Environment – DCE). Ключом к пониманию выгоды такой архитектуры является прозрачность. Пользователи не должны тратить свое время на попытки выяснить, где находится тот или иной ресурс, а разра- ботчики не должны писать коды для своих приложений, использующие место- положение в сети. Хорошо известный механизм для реализации распределенных вычислений, вызов удаленных процедур (Remote Procedure Call – RPC), расширяет традици- онную модель программирования – вызов процедуры – для использования в се- ти. RPC может составлять основу распределенных вычислений. В каждом вы- зове удаленной процедуры участвуют две стороны: активный клиент, который отправляет запрос вызова процедуры на сервер, и сервер, который отправляет клиенту ответ. Следует иметь в виду, что термины «клиент» и «сервер» в дан- ном случае относятся к определенной транзакции. Конкретное программное обеспечение (процесс или программа) могут работать как в роли клиента, так и в роли сервера. Наибольшая эффективность использования RPC достигается в тех приложениях, в которых существует интерактивная связь между удаленны- ми компонентами с небольшим временем ответов и относительно малым коли- чеством передаваемых данных. Такие приложения называются RPC- ориентированными. Характерными чертами вызова локальных процедур являются асиммет- ричность (то есть одна из взаимодействующих сторон является инициатором) и синхронность (то есть выполнение вызывающей процедуры приостанавлива- ется с момента выдачи запроса и возобновляется только после возврата из вы- зываемой процедуры). Подобными свойствами обладает и удаленный вызов: процесс клиента отправляет серверу сообщение, в которое включены парамет- ры вызываемой процедуры и ожидает ответного сообщения с результатами ее работы. При получении ответа результат считывается, и процесс продолжает работу. Со стороны сервера процесс-обработчик вызовов находится в состоя- нии ожидания и при поступлении сообщения считывает параметры процедуры, выполняет ее, отправляет ответ и становится в состояние ожидания следующе- го вызова. Необходимо заметить, однако, что протокол RPC не накладывает ка- ких-либо требований на дополнительные связи между процессами и не требует синхронности выполняемых функций, т. е. вызовы могут быть асинхронными и взаимно независимыми, так что клиент во время ожидания ответа может вы- полнять другие процедуры. Сервер RPC может выделять для каждой функции