Распределенные вычисления: технология Microsoft RPC. Часть1. Фертиков В.В. - 3 стр.

UptoLike

Составители: 

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 может выделять для каждой функции