Программный интерфейс высокого уровня. - Механизм вызова удаленных процедур - RPC
Использование подпрограмм в программе - традиционный способ структурировать задачу, сделать ее более ясной. Наиболее часто используемые подпрограммы собираются в библиотеки, где могут использоваться различными программами. В данном случае речь идет о локальном (местном) вызове, т. е. и вызывающий, и вызываемый объекты работают в рамках одной программы на одном компьютере.
В случае удаленного вызова процесс, выполняющийся на одном компьютере, запускает процесс на удаленном компьютере (т. е. фактически запускает код процедуры на удаленном компьютере). Очевидно, что удаленный вызов процедуры существенным образом отличается от традиционного локального, однако с точки зрения программиста такие отличия практически отсутствуют, т. е. архитектура удаленного вызова процедуры позволяет сымитировать вызов локальной.
Однако если в случае локального вызова программа передает параметры в вызываемую процедуру и получает результат работы через стек или общие области памяти, то в случае удаленного вызова передача параметров превращается в передачу запроса по сети, а результат работы находится в пришедшем отклике.
Данный подход является возможной основой создания распределенных приложений, и хотя многие современные системы не используют этот механизм, основные концепции и термины во многих случаях сохраняются. При описании механизма RPC мы будем традиционно называть вызывающий процесс - клиентом, а удаленный процесс, реализующий процедуру, - сервером.
Удаленный вызов процедуры включает следующие шаги:
- 1. Программа-клиент производит локальный вызов процедуры, называемой заглушкой (stub). При этом клиенту "кажется", что, вызывая заглушку, он производит собственно вызов процедуры-сервера. И действительно, клиент передает заглушке необходимые параметры, а она возвращает результат. Однако дело обстоит не совсем так, как это себе представляет клиент. Задача заглушки - принять аргументы, предназначаемые удаленной процедуре, возможно, преобразовать их в некий стандартный формат и сформировать сетевой запрос. Упаковка аргументов и создание сетевого запроса называется сборкой (marshalling). 2. Сетевой запрос пересылается по сети на удаленную систему. Для этого в заглушке используются соответствующие вызовы, например, рассмотренные в предыдущих разделах. Заметим, что при этом могут быть использованы различные транспортные протоколы, причем не только семейства TCP/IP. 3. На удаленном хосте все происходит в обратном порядке. Заглушка сервера ожидает запрос и при получении извлекает параметры - аргументы вызова процедуры. Извлечение (unmarshalling) может включать необходимые преобразования (например, изменения порядка расположения байтов). 4. Заглушка выполняет вызов настоящей процедуры-сервера, которой адресован запрос клиента, передавая ей полученные по сети аргументы. 5. После выполнения процедуры управление возвращается в заглушку сервера, передавая ей требуемые параметры. Как и заглушка клиента; заглушка сервера преобразует возвращенные процедурой значения, формируя сетевое сообщение-отклик, который передается по сети системе, от которой пришел запрос. 6. Операционная система передает полученное сообщение заглушке клиента, которая, после необходимого преобразования, передает значения (являющиеся значениями, возвращенными удаленной процедурой) клиенту, воспринимающему это как нормальный возврат из процедуры.
Таким образом, с точки зрения клиента, он производит вызов удаленной процедуры, как он это сделал бы для локальной. То же самое можно сказать и о сервере: вызов процедуры происходит стандартным образом, некий объект (заглушка сервера) производит вызов локальной процедуры и получает возвращенные ею значения. Клиент воспринимает заглушку как вызываемую процедуру-сервер, а сервер принимает собственную заглушку за клиента.
Таким образом, заглушки составляют ядро системы RPC, отвечая за все аспекты формирования и передачи сообщений между клиентом и удаленным сервером (процедурой), хотя и клиент и сервер считают, что вызовы происходят локально. В этом-то и состоит основная концепция RPC - полностью спрятать распределенный (сетевой) характер взаимодействия в коде заглушек. Преимущества такого подхода очевидны: и клиент и сервер являются независимыми от сетевой реализации, оба они работают в рамках некой распределенной виртуальной машины, и вызовы процедур имеют стандартный интерфейс.
Похожие статьи
-
Структуры сообщений протокола. - Механизм вызова удаленных процедур - RPC
При передаче RPC-сообщений поверх транспортного протокола, несколько RPC-сообщений могут располагаться внутри одного транспортного пакета. Для того чтобы...
-
Примеры операторов вызова процедур - Структурирование программы
T; {нет списка фактических параметров Summa(x, y,z); {x, y,z - фактические параметры; x: integer; у, z; real} a(z); {z - фактический параметр, z:d} При...
-
Языки программирования высокого уровня - Инструментальные средства разработки экспертных систем
Языки высокого уровня являются в руках опытного программиста прекрасным средством быстрого создания прототипа экспертной системы, позволяют обеспечить...
-
Модификацией программно-аппаратного комплекса может быть использование умного РОЕ инжектора. POE инжектор (injector или midspan) -- устройство,...
-
Уровни программного обеспечения. - Основы теории информации
1. Базовый уровень - самый низкий уровень ПО представляет базовое ПО. Оно отвечает за взаимодействие с базовыми аппаратными средствами. Как правило,...
-
Структурная схема умного почтового ящика Основой программно-аппаратного комплекса является одноплатный компьютер Raspberry Pi. Программный интерфейс...
-
Технология клиент-сервер. - Использование компьютерных сетей
Характер взаимодействия компьютеров в локальной сети принято связывать с их функциональным назначением. Как и в случае прямого соединения, в рамках...
-
Служба трансляции имен DNS - Компьютерные сети
Клиенты DNS - специализированные библиотеки (или программы) для работы с DNS (в Windows - служба "DNS-клиент"). Серверная сторона DNS - множество...
-
Составляющие сетевой операционной системы В сетевой операционной системе отдельного компьютера можно выделить несколько частей (рис.1): 1. Средства...
-
Программный интерфейс телефонии (TAPI) - Разработка системы регистрации новых пользователей
Microsoft Win32 прикладной программный интерфейс телефонии (TAPI) обеспечивает услуги, которые дают возможность прикладному разработчику добавить...
-
В данной выпускной квалификационной работе разработан прототип умного почтового ящика, удаленного сетевого устройства для контроля почтовой...
-
Выбор средств реализации информационной системы Названные в параграфе 1.4. настоящей работы задачи могут быть решены тремя типами средств автоматизации:...
-
Описание устройства, технические характеристики, необходимое программное обеспечение в ООО "ЖБК №9" Чтобы не потратить деньги на оборудование,...
-
Учебный процесс в ННГАСУ сопровождается значительной информационной базой, развитием компьютерного парка и внедрением в образовательный процесс...
-
В организации ООО "Дружба" имеется различное оборудование. Оно подразделяется на офисную оргтехнику и профессиональное оборудование в цехе. Офис оснащен...
-
Проектирование модели - Разработка программного приложения "Калькулятор коммунальных услуг"
При проектировании информационных систем предметная область отображается моделями данных нескольких уровней. Число используемых уровней зависит от...
-
Принципы работы служб прикладного уровня - Компьютерные сети
Сетевая служба - это набор функций, которые уровень выполняет для вышележащего уровня (например, коррекция ошибок). Набор свойств и функций, которыми...
-
Не все сетевые протоколы поддерживают возможность маршрутизации (например, не поддерживает ее NetBEUI). В таких случаях возникает необходимость в...
-
В ходе эксплуатации возможны сбои и неисправности в работе компьютерной системы. Все неисправностей, которые по тем или иным причинам возникают в ПК или...
-
Любая производственная деятельность, в том числе и работа с электронными устройствами, сопряжена с появлением опасных для жизни и здоровья факторов,...
-
Обзор языков программирования высокого уровня - Теоретические основы информационных технологий
Fortran (Фортран) Это первый компилируемый язык, созданный в 50-е годы. Программисты, разрабатывавшие программы исключительно на ассемблере, выражали...
-
Автоматизированный почтовый драйвер аппаратный Результатом данной выпускной квалификационной работы стало создание прототипа умного почтового ящика,...
-
Оценка требований Для решения задачи необходимо следующее оборудование: Одноплатный компьютер; Роликовый сканер; Соединение с Internet. Требования к...
-
Использование linux в наши дни - Свободное программное обеспечение
На сегодняшний день более 75% серверов обеспечивающие надежную работу Интернет работают под управлением Linux. Сервера таких известных компаний как...
-
Операционная система Windows - Программное обеспечение информационных компьютерных систем
Само название Windows, на русском языке означает "Окна" и имеет в нашем языке синонимы Виндовс, Вундоуз и другие производные полученные после перевода....
-
Платные услуги для ПО с открытым исходным кодом - Свободное программное обеспечение
Для устранения недостатков open source пользователи продуктов объединяются вокруг каждого подобного проекта в сообщества, которые осуществляют...
-
Можно выделить три основных метода разработки программного обеспечения: 1. Конструкторы программ (Аlgoritm2, Devel Studio, MnCreator, Game Maker и др.)....
-
К программным методам защиты в сети Internet можно отнести прежде всего защищенные криптопротоколы, с использованием которых появляется возможность...
-
Интерфейс, Основные инструменты Adobe Photoshop - Adobe Photoshop
Рисунок 5. Интерфейс 1. Главная панель. Здесь находится весь функционал, заложенный в Photoshop. Начиная с сохранения файла и заканчивая фильтрами и...
-
Концентраторы вместе с сетевыми адаптерами, а также кабельной системой представляют тот минимум оборудования, с помощью которого можно создать локальную...
-
Математическое и программное обеспечение (МО, ПО)- совокупность математических методов, моделей, алгоритмов и программ для реализации целей и задач...
-
Уровни и межсетевые протоколы компьютерных сетей - Использование компьютерных сетей
Протокол UDP (User Datagram Protokol) -- протокол пользовательских дейтаграмм является одним из двух основных протоколов, расположенных непосредственно...
-
Коммуникация между клиентом и сервером начинается прежде всего с "рукопожатия" ( SSL Handshake). Цели данного рукопожатия, следующие [10]: 1. клиент...
-
Из универсальных языков программирования сегодня наиболее популярны следующие: Бейсик (Basic), Паскаль (Pascal), Си++ (C++), Ява (Java). Для каждого из...
-
Тестирование ЛВС осуществляется на стадии завершения работ по монтажу ЛВС и представляет собой осмотр сети на предмет ее соответсвия принятым стандартам....
-
Ручная настройка Необходимо, чтобы компьютеры находились в одной рабочей группе, в одном диапазоне адресов и с разными сетевыми именами. Настройка этих...
-
Для того, чтобы использовать симметричные алгоритмы шифрования, необходимо безопасно обменяться ключами. Протокол Диффи - Хеллмана позволяет двум и более...
-
Вирусы и антивирусное программное обеспечение
Реферативная часть Что такое вирус? Один из известных "докторов" Д. Н Лозинский дал определение вируса на примере клерка. Представим себе аккуратного...
-
Цель Работы - изучить приемы создания и использования шаблонов классов. - Теоретические сведения Достаточно часто встречаются классы, объекты которых...
-
Модуль - Самостоятельно компилируемый файл ТР, который может содержать описание констант, переменных и типов, процедур и функций. Он имеет имя и хранится...
Программный интерфейс высокого уровня. - Механизм вызова удаленных процедур - RPC