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

5.6. Системные среды автоматизированных систем

Интерфейс - Приложение СУБД Базы данных

DBS RDA FS

Рис. 5.12. Варианты двухзвенных схем распределенных вычислений

4) AS - сервер приложений. Варианты различаются распределением между

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

данных в приложениях и интерфейса с пользователем. На рис. 5.12 место среды

передачи данных показано вертикальной чертой для первых трех вариантов.

Каждый вариант имеет свою область применения.

Вариант файл-сервера характерен для локальных сетей на персональных

ЭВМ с небольшим числом пользователей. Вследствие интенсивного трафика

и трудностей с защитой информации эта структура для большинства АС

малоэффективна. Поэтому предпочтительнее иметь СУБД в узле сервера.

Вариант RDA - это модель удаленного узла, она наиболее распространена в

настоящее время среди АС. В ней уменьшен трафик по сравнению с FS,

унифицирован интерфейс с СУБД на основе языка SQL.

Примечание. Клиентов в FS и RDA иногда именуют «толстыми» клиентами, так

как в них сосредоточены средства выполнения приложений.

Дальнейший переход к системе распределенных вычислений приводит к

перемещению прикладного ПО или его части на специальный сервер или сервер

базы данных, т. е. реализуются двух- и трехзвенные схемы. DBS - двухзвенная

структура дистанционного управления, основанная на разделении прикладных

процедур на две части: индивидуальные для каждого пользователя и общие

для многих задач. В этой структуре под приложением понимают совокупность

именно общих процедур. Эта совокупность обычно представляется на

процедурных расширениях SQL и сохраняется в специальном словаре базы

данных. В альтернативных вариантах (например, в RDA) все прикладные

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

необходимости их изменения приходится модифицировать практически все

прикладное ПО. Выделение таких процедур в отдельное приложение облегчает

их модификацию. Кроме того, в DBS снижается трафик, так как обмены по

сети происходят не для каждой операции с базой данных, а для каждой

транзакции, состоящей из нескольких операций.

Вариант AS реализуется по трехзвенной схеме, в которой для приложений

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

сервера базы данных, т. е. одновременно используются модели DBS и RDA.

Помимо проблемы распределения серверных функций между узлами сети

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

АС. Эта проблема решается либо по схеме «один к одному», либо по много-

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

здается своя копия СУБД. Во второй СУБД должна быть реентерабельной

программой, обслуживающей одновременно многих пользователей.

ю- 275

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

Распределенные базы данных

В крупных АС, построенных на основе корпоративных сетей, не всегда уда-

ется организовать централизованное размещение всех баз данных и СУБД на

одном узле сети. Поэтому появляются распределенные базы данных (РБД).

При построении РБД приходится решать ряд сложных проблем, связанных

с минимизацией трафика, обеспечением интероперабельности обработки дан-

ных и целостности данных.

Минимизация трафика нужна в связи с тем, что при обслуживании запро-

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

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

лиц из разных узлов. Очевидно, что целесообразна однократная пересылка

таблиц (причем таблиц именно меньшего размера) на один узел, на котором и

будет обрабатываться запрос.

Интероперабелъностъ выражает способность взаимодействия программ,

работающих в гетерогенных сетях (в разных операционных средах или с раз-

ными СУБД). Интероперабельность обеспечивается или с помощью программ-

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

щью единого унифицированного языка взаимодействия. Таким языком для

доступа к базам данных является язык SQL, Интероперабельность на его ос-

нове имеет место в системе ODBC (Open Data Base Connectivity), пример ре-

ализации которой показан на рис. 5.13. В примере СУБД FoxPro находится в

локальном узле, а СУБД Ingres и Informix - в удаленных узлах. Прикладная

программа имеет ODBC-интерфейс, не зависимый от особенностей различ-

ных СУБД. Менеджер драйверов реализует на базе унифицированного языка

SQL все нюансы доступа к базам данных, общие для разных СУБД. Драйвер

конкретной СУБД преобразует инвариантные к СУБД запросы в форму, приня-

тую в данной СУБД. В трехзвенной структуре менеджер драйверов может

быть размещен на промежуточном сервере.

Обеспечение целостности в РБД намного сложнее, чем в одноузловых ба-

зах данных. Различают два подхода к построению РБД: 1 ) тиражирование (реп-

ликация), при котором на нескольких серверах (в узлах) сети расположены ко-

пии базы данных; 2) полномасштабная распределенность, при которой разные

части базы данных находятся на разных серверах сети (классическая распре-

деленность).

Клиент

!

Драйвер

Ingres - Программа

связи

Драйвер

Informix

- Программа

связи

FoxPro

Драйвер

FoxPro

Серверы

Коммуникацион-

ный сервер

Коммуникацион-

ный сервер

Ingres

Рис. 5.13. Структура системы ODBC

276

5.6. Системные среды автоматизированных систем

Применяют два способа тиражирования.

Способ, называемый репликацией первой копии, основан на выделении сре-

ди серверов с копиями базы данных одного первичного сервера (репликатора).

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

ного сервера, который в дальнейшем осуществляет тиражирование. Тиражи-

рование - это перенос изменений баз данных из первичного сервера во все

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

чтения данных. Репликатор реагирует на события, фиксируемые триггерами,

периодически пересылает обновленные данные в копии базы данных. Недо-

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

структурам.

Надежность повышается при использовании способа голосования: измене-

ния посылаются не в один первичный, а в некоторые N серверов. При этом

любой запрос на чтение направляется к некоторым М серверам, причем

N + М > К, где К- общее число серверов. Принимается последняя по времени

обновления версия ответа.

Тиражирование вносит избыточность в хранимые данные, появляются труд-

ности с разрешением конфликтов ввиду возможных несогласованных измене-

ний в локальных базах данных. Однако по сравнению с классическими РБД, в

которых данные не дублируются, заметно уменьшается трафик, надежнее и

проще работа с локальными базами данных. Обеспечение надежности и удоб-

ства работы особенно актуально в случае ненадежных и медленных каналов

связи, что имеет место во многих сетях в России.

В классических распределенных СУБД (РСУБД) необходимо управлять

одновременным доступом, что должно гарантировать целостность (сериали-

зуемость) баз данных. Наиболее широко используются алгоритмы управле-

ния, основанные на механизме блокировки. При этом блокировкой называют

ситуацию, при которой некоторая транзакция объявила о желании получить пол-

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

имеют права занимать этот ресурс.

Одним из способов управления является централизованное блокирование,

при котором на одном из узлов поддерживается единая таблица блокировок.

Такой узел устанавливает очередность выполнения транзакций, что исключает

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

требуется мощный сервер.

В РСУБД с репликацией нет проблемы согласования при записи действий

многих узлов. Собственно тиражирование чаще всего выполняется по правилу

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

транзакции рассылаются по всем локальным базам данных. Чтение же выпол-

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

телю в функциональном или географическом смысле.

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

РСУБД без тиражирования. Одним из распространенных протоколов распре-

деленного управления является протокол двухфазной фиксации транзакций. На

277