Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
И.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
818.57 Кб
Скачать

5.1. Функции сетевого программного обеспечения

Находят применение технологии распределенных вычислений RFC (Remote

Procedure Call), ORB (Object Request Broker), DCE (Distributed Computing

Environment), мониторы транзакций ТРМ (Transaction Processing Monitors) и др.

Средства RFC входят во многие системы сетевого ПО. Процедурная бло-

кирующая синхронная технология RPC предложена фирмой Sun Microsystems.

Вызов удаленных программ подобен вызову функций в языке С. При пересыл-

ках на основе транспортных протоколов TCP или UDP данные представляют-

ся в едином формате обмена. Синхронность и блокирование означают, что кли-

ент, обратившись к серверу, для продолжения работы ждет ответа от сервера.

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

например для RPC — язык IDL (Interface Definition Language), который позво-

ляет пользователю оперировать различными объектами безотносительно к их

расположению в сети. На этом языке описываются интерфейсы к распределен-

ным по сети компонентам в виде списка выполняемых компонентами проце-

дур, типов аргументов и результатов процедур. С помощью компилятора языка

Idl описание интерфейса преобразуется в программные модули, называемые

стабами. Стаб на стороне клиента предназначен для упаковки параметров про-

цедуры и обращения к системному вызову «послать», который позволяет пере-

дать параметры серверу. Стаб на стороне сервера распаковывает параметры

и вызывает запрошенную процедуру. После выполнения процедуры аналогич-

ным образом стабы участвуют в передаче клиенту результатов процедуры.

Формат RPC-сообщения:

идентификатор сообщения;

тип сообщения (запрос или ответ);

идентификатор клиента;

идентификатор удаленной процедуры;

аргументы.

В идентификатор процедуры входят: имя узла, номер программы (часто

номер означает совокупность программ определенного назначения), версия

программы (версия — это идентификатор копии программы, например, версия

- это время создания копии, копии создаются для использования в многополь-

зовательском режиме), имя процедуры в программе. Имя сервера указывает-

ся в аргументах сгенерированного стаба. При компиляции стаба это имя уже

известно или благодаря широковещательной рассылке информации сервером,

или с помощью специальной программы — агента связывания.

ORB — технология объектно-ориентированного подхода, базирующаяся на

спецификациях CORBA. Спецификации CORBA (Common Object Request Broker

Architecture) устанавливают способы использования удаленных объектов (сер-

верных компонентов) в клиентских программах. Взаимодействие клиента с

сервером происходит с помощью программы-посредника (брокера) ORB. В

случае применения ORB (в отличие от RPC) хранить сведения о расположении

серверных объектов в узле-клиенте не нужно, достаточно знать расположение

в сети брокера ORB. Поэтому доступ пользователя к различным объектам

203

5. Методическое и программное обеспечение автоматизированных систем

(программам, данным, принтерам и т.п.) существенно упрощен. Брокер дол-

жен определять, в каком месте сети находится запрашиваемый ресурс, и ини-

циализировать серверную программу. После этого клиент может направлять

запрос в серверный узел, а после выполнения запроса сервер будет возвращать

результаты пользователю.

Для описания интерфейсов распределенных объектов используют язык ГОЬ,

предложенный в CORBA. Этот язык отличается от языка IDL технологии RPC,

в нем имеются средства описания интерфейсов, но нет средств описания опе-

раций.

При использовании ORB может увеличиться нагрузка на сеть, однако име-

ется и ряд преимуществ: обеспечивается взаимодействие разных платформ,

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

ся программирование сетевых приложений и поддержка мультимедиа.

В CORBA создан протокол ПОР (Internet Inter-ORB Protocol), который обес-

печивает взаимодействие между брокерами разных производителей.

Мониторы транзакций отличаются от RPC наличием готовых процедур

обработки транзакций (в том числе отката транзакций), что упрощает работу

программистов. Принимая запросы от клиентов и мультиплексируя их, мони-

тор транзакций избавляет от необходимости создавать для каждого клиента

отдельное соединение с базой данных. Мониторы транзакций могут оптималь-

но распределять нагрузку на серверы, выполнять автоматическое восстанов-

ление после сбоя и перезапуск системы.

Технология DCE разработана консорциумом OSF (Open Software Foundation).

Она не противопоставляется другим технологиям (RPC, ORB), а является сре-

дой для их использования, например, в одной из реализаций DCE пакет Encina

есть монитор транзакций, а пакет Orbix ORB представляет собой технологию

ORB.

В DCE возможна одно- или многоячеечная структура сети. Выделение ячеек

производится по функциональным, а не по территориальным признакам. В каж-

дой ячейке должен быть главный сервер данных и возможно несколько допол-

нительных серверов с копиями содержимого главного сервера, причем доступ

к дополнительным серверам разрешен только для чтения. Обновление данных

осуществляется исключительно через главный сервер. Ячейка может зани-

мать значительную территорию, главный сервер размещается вблизи от цент-

ра ячейки, дополнительные серверы — по периферии.

К функциям DCE относятся распределение вычислений по технологии RPC;

распараллеливание вычислений (но программист сам проектирует параллель-

ный процесс); защита данных; синхронизация (согласование времени); поддер-

жка распределенной файловой системы.

Работая в DCE, пользователь дополнительно к своей прикладной програм-

ме пишет IDL-файл, в котором указывает свое имя, требуемые операции и

типы данных. IDL-компилятор на основе этого файла создает три модуля: кли-

ентский стаб (С1), серверный стаб (Sr), головной файл (Hd). Модуль С1 содер-

204