Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Введение в распределенные системы. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
06.09.2026
Размер:
1 Мб
Скачать
Клиент
Запрос
Сервер
Рис. 4. Модель взаимодействия "клиент-сервер"
Модель, представленная на рис. 4, дает всего лишь сведения об организации обмена информацией. Она широко используется на практике, но ее реализация в различных про­граммных продуктах имеет свои особенности. Модель пред­полагает разделение функций разрабатываемого приложения на три части, принипиально отличающихся друг от друга. Одна из них отвечает за функции ввода и отображения ин­формации. Другая – за прикладные функции, присущие сфере использования приложения. Последняя – за функции хране­ния и управления данными (БД, файловыми системами и т. д.).
В соответствие со сказанным выше стандартное при­ложение структурно разделяется на три составляющих:
компоненту представления (поддержка функ-
ций ввода и отображения информации);
прикладную компоненту (поддержка приклад-
ных функций);
компоненту доступа к информационным ре-
сурсам или менеджер ресурсов (поддержка функций послед­ней группы).
Разновидности модели «клиент-сервер» перечислены ниже:
41
модель доступа к удаленным данным (Remote
Date Access - RDA);
модель сервера базы данных (DateBase Server -
DBS);
модель сервера приложений (Application Server -
AS).
Функции первых двух компонентов реализуются на стороне клиента. Поскольку клиентом поддерживаются функции ввода и отображения информации, а также приклад­ные функции, то организовать доступ к информационным ре­сурсам можно при помощи операторов специального язнка (например, SQL для обращения к БД) или посредством вызо­ва функций специальной библиотеки (при наличии требуемо­го API). Под API (application programming interface) понима­ют интерфейс программирования приложений, т.е. набор го­товых классов, процедур, функций, структур и констант, вос­требованных во внешних программных продуктах. В RDA­модели запросы к информационным ресурсам посылаются по сети удаленному компьютеру-серверу (например, серверу БД). На стороне сервера запросы обрабатываются, выполня­ются, и клиенту отправляются результаты выполнения запро­сов. На рис. 5 структурно проиллюстрирована реализация обмена, предусмотренного в рассмотренной выше модели.
В DSB-модели процессы на стороне клиента реализу­ют лишь функции представления. На рис. 6 структурно про­иллюстрирована реализация обмена, предусмотренного в DSB-модели. Прикладные функции реализованы в хранимых
процедурах (в литературе используются синонимы - компи­лируемые резидентные процедуры, процедуры БД). Из ри­сунка видно, что весь этот функционал, а также БД и ядро СУБД (управляет доступом к данным, хранящимся в БД),
находятся на компьютере-сервере.
Понятие информационного ресурса в RDA-модели ограничено БД. Это обстоятельство объясняется тем, что ме-
42
ханизм хранимых процедур (отличительная черта DBS-
Запрос
Блоки
клиент
Комп
о-
ления
При
кла
д-
Компо-
Запрос
SQL
модели) имеется только в СУБД.
Компонент
представле-
ния
Компьютер-клиент
Прикладной компонент
данных
Компьютер-сервис
Рис. 5. Модель доступа к удаленным данным
нент
представ-
Компьютер-
ной ком-
понент
Компьютер-сервер
Рис. 6. Модель сервера базы данных
Компонент дрступа к ресурсам
нент
дрступа
к БД
БД
На рис. 6 представлена стандартная модель. На прак­тике она может видоизменяться. Поддержка целостности БД, а также ряд простых прикладных функций осуществляются хранимыми процедурами на стороне сервера, а сложные функции предметной области – в прикладной программе, вы­полняемой на компьютере-клиенте. В таких ситуациях гово­рят об использовании смешанной модели RDA и DBS.
Таким образом, схема разделения функций определяет основное различие RDA- и DBS- моделей. В RDA-модели
43
сторона клиента обеспечивает выполнение прикладных
Комп
о-
ления
При
кла
д-
Компо
нент
Запрос Вызов
функций, а прикладной компонент и компонент представле­ния представляют собой единое целое. В DBS-модели ядро СУБД обеспечивает выполнение прикладных функций. Ком­понент доступа к БД и прикладной компонент представляют собой единое целое.
Рассмотренные выше классы двухзвенных системы относят к РС условно. Представители этих классов считаются простейшими РС.
Дальнейшим развитием двухзвенных моделей являют­ся трехзвенные. Рис. 7 структурно представляет такую модель РС. Она имеет свое название – AS-модель. Рисунок показыва­ет, что процесс, осуществляющий ввод и отображение дан­ных, выполняется на компьютере-клиенте, а процессы, реали­зующие прикладные функции, – на стороне сервера. Группу процессов, реализующих прикладные функции, называют серверами приложений. Серверы приложений размещаются на одном или нескольких удаленных компьютерах. Доступ к информационным ресурсам осуществляется так же, как и аналогично RDA-модели.
Транзакция – это группа логически объединённых по­следовательных операций по работе с данными, обрабатыва­емая или отменяемая целиком. Отдельный процесс – мони- тор транзакций – координирует все транзакции.
нент
представ-
ной ком-
понент
дрступа к
ресурсам
Компьютер-клиент
Компьютер-сервер
Компьютер-сервер
Рис. 7. Модель сервера приложений
44
Прикладным компонентам РС доступны общие ресур­сы: БД, очереди, обслуживание запросов и др. Серверы при­ложений реализуются обычно на компьютере, где функцио­нирует менеджер ресурсов. Допускается реализация на дру­гих компьютерах. На уровне прикладного компонента ис­пользуются технологии многозадачной ОС и имеются стан­дарты интерфейсов с двумя другими компонентами AS­модели.
На стороне сервера приложения имеется ряд приклад­ных функций, предназначенных для предоставления опреде­ленных услуг программам, имеющим возможность ими поль­зоваться. Серверов приложений может быть несколько. За каждым из них закреплен лишь определенный набор услуг. Особенности реализации прикладных функций в сервере приложений являются прозрачными для клиента приложения. Клиент всегда обращается с запросом не к серверу приложе­ний, а к какой-то определенной службе сервера. Такая техно­логия эффективна для управления балансом загрузки. Запро­сы от клиентов организуются в очередь к процессу сервера приложений. Каждый такой запрос имеет свой приоритет. Согласно приоритету сервер приложений достает очередной запрос и отсылает его требуемой службе.
Клиенту присущи самые различные функции: под­держка интерфейса с конечным пользователем (выступает как компонент представления); обеспечение обмена информаци­ей с периферийными устройствами и др. Клиенту могут назначаться функции сервера приложений – технология предназначена для реализации многоуровневых РС. При этом в AS системах не ограничивается количество уровней серве­ров.
6.2. Понятие промежуточной среды
С позиций одного из компьютеров РС, другие входя­щие в РС компьютеры являются удаленными системами. Теоретически взаимодействие удаленных систем внутри РС
45
основывается на модели взаимодействия открытых систем OSI/ISO (Open Systems Interconnection). Согласно стандартам модели процесс взаимодействия двух сторон разделяется на 7 уровней: физический, канальный, сетевой, транспортный, се­ансовый, прикладной, представительский. Приложение со­держит описание модели.
Стандартные протоколы определяют процессы взаи­модействия узлов в открытых системах. Стек протоколов ­это иерархически организованный набор сетевых протоколов, достаточный для организации взаимодействия узлов в сети. В сетях распространенного стека протоколов TCP/IP (Transmission Control Protocol/Internet Protocol) протокол TCP есть протокол транспортного уровня, а IP – протокол сетевого уровня. Интерфейс к транспортному уровню обычно обеспе­чивает сетевая компонента ОС. При этом интерфейс для верхних уровней обычно основывается на сокетах.
Со кет – это название программного интерфейса, обеспечивающего обмен данными между процессами. При этом процессы могут выполняться как на одном, так и на раз­личных компьютерах одной сети.
Протокол TCP/IP дает возможность организовать пу­тем использования сокетов стандартный, межплатформен­ный, но низкоуровневый сервис для обмена данными между компонентами. Функции высоких уровней – сеансового и представительского – выполняет промежуточная среда (дру­гое встречающееся в литературе название – промежуточное программное обеспечение). Эта среда позволяет организовать взаимодействие различных компонент РС, и тем самым помо­гает создавать открытые, масштабируемые и устойчивые РС.
Одна РС может использовать несколько видов проме­жуточных сред. Выделение промежуточного уровня является изменением базовой модели OSI. Промежуточный уровнь за­меняет уровени представления и сеансовый, т.е. вместо двух уровней используется один, содержащий протоколы, не зави­сящие от приложений.
46
Службы промежуточной среды обеспечивают:
– единое и независимое от механизма ОС использова­ние одними программными компонентами служб других компонент;
– безопасность РС;
– целостность данных;
– балансировку нагрузки на серверы с программными компонентами;
– обнаружение удаленных компонент.
6.3. Концепции взаимодействия программных компонент
Взаимодействия программных компонент могут осу-
ществляться посредством:
1) обмена сообщениями между компонентами;
2) вызова процедур или методов объекта удаленной компоненты (по аналогии с локальными вызовами процеду­ры).
В конечном итоге, в основе перечисленных взаимо­действий лежит использование сокетов TCP/IP. Первичным, с позиций промежуточной среды, является обмен посредством сообщений на низком уровне. Он проводится на основе сете­вых сокетов, сервис которых не устанавливает формат для передаваемого сообщения. Затем, посредством протоколов TCP или HTTP (HyperText Transfer Protocol), могут быть сформированы прикладные протоколы обмена сообщениями более высокого уровня абстракции. Подобная технология позволяет реализовать различные и достаточно сложные ал­горитмы обмена сообщениями, а также удаленный вызов процедур.
6.3.1. Обмен сообщениями
Обмен сообщениями между удаленными системами может осуществляться следующими двумя методами: непо-
47
средственный обмен сообщениями и использование очере­дей сообщений.
Первый метод предполагает, что передача сообщения происходит напрямую, но необходимо учитывать готовность принимающей стороны к принятию сообщения.
Второй метод передачи сообщения невозможен без посредника – менеджера очередей сообщений. Согласно этой технологии программный компонент передается сооб­щение в одну из очередей менеджера, параллельно с работой менеджера и независимо от него. Программный компонент не прекращает свою работу, а сообщение выбирается из очереди менеджера принимающей стороной, и далее происходит его обработке.
Область промежуточного программного обеспечения богата разработками: Microsoft Message Queuing, IBM MQSeries, Sun Java System Message Queue и др. В рамках этой технологии промежуточная среда позволяет:
добавить сообщение в очередь;
проверить наличие сообщений в очереди;
выбрать из очереди первое сообщение;
приостановить процесс, пока в очереди не появится
хотя бы одно сообщение;
установить обработчик, вызываемый при появле- нии сообщений в очереди.
Как менеджер очереди сообщений, так компоненты, и принимающие участие в обмене, могут размещаться на раз­ных компьютерах. В этом случае сообщение сначала помеща­ется в очередь на компьютере, на котором содержится ком­понента, посылающая сообщение, а затем передается мене­джеру.
Маршрутизация сообщений применяется для доста­точно сложных систем обмена. Такая технология предполага­ет, что сообщения передаются через несколько промежуточ­ных менеджеров очередей сообщений. Схематично передача
48
Приложение
Мененджеры очередей
Сервер
Промежуто
ч-
Промежуто
ч-
Промежуточная
Очередь Очередь
сообщений с использованием очередей сообщений представ­лена на рис. 8.
Клиент
Клиент
Приложение Приложение
сообщений
ная среда
Исходящая
среда
ная среда
Рис. 8. Системы очередей сообщений
Основные достоинства технологии передачи сообще­ний с использованием очередей сообщений:
– независимость друг от друга времени функциониро­вания сервера и времени работы клиентов;
– независимость промежуточной среды от средств раз­работки компонент и используемого языка программирова­ния;
– упрощение алгоритмов разработки устойчивых и масштабируемых РС благодаря тому, что считывание и обра­ботка заявки из очереди может выполняться несколькими не­зависимыми компонентами;
Недостатки систем очередей сообщений:
необходимость явного использования очередей со- общений;
алгоритмы синхронного обмена отличаются сложно- стью;
применение менеджеров очередей требует опреде- ленные накладные расходы;
49
для каждого компонента, отправляющего заявки, требуется очередь, что обуславливает сложность получения ответа на запрос.
6.3.2. Удаленный вызов процедур
Технология удаленного вызова процедур RPC (remote procedure call) разрабатывалась в середине 80-х годов про-
шлого столетия. Смысл этой технологии – использование промежуточной программной среды для вызова функции на удаленном компьютере по аналогии с вызовом функции на локальном компьютере.
Чтобы разобраться в сути технологии вспомним неко­торые определения.
Процесс — это выполнение инструкций компьютер­ной программы на процессоре ЭВМ.
Процедура - это подготовленный специальными син­таксическими средствами фрагмент программы, доступный для других программ через применение стандартных опера­ций вызова процедур.
Процедура-заглушка – это фиктивная часть заменяе­мого фрагмента (модуля), которая удовлетворяет требовани­ям интерфейса, но не выполняет функций фрагмента (моду­ля), или выполняет их частично.
Процедура-заглушка используется для того, чтобы удаленный вызов происходил прозрачно, т.е. программист не замечал, откуда вызывается процедура. Клиентскому прило­жению для вызова процедура-заглушка (stub) предоставляет­ся промежуточной средой.
Технология RPC очень результативна в приложениях, имеющих интерактивную связь между удаленными компо­нентами, где имеются относительно небольшая временная длительность ответов и небольшое количество передаваемых данных. Подобные приложения именуются RPC- ориентированными. С позиций реализации вызовы локаль- ных процедур проще, чем RPC вызовы, поскольку реализация
50
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]