Архитектура и принципы построения распределённых систем

Распределённая информационная система представляет собой совокупность узлов (офисов, отделов, подразделений, филиалов) и коммуникационную сеть.

Каждый узел имеет:

1) локальную БД

2) элементы глобальной БД

3) фрагменты распределённого справочника

Для организации доступа к данным используется распределённая СУБД.

Локальные БД предназначена для хранения данных, используемых пользователями данного узла.

Глобальные БД создаются для предоставления информации пользователям различных узлов.

Справочник (каталог распределённой СУБД) служит для хранения метаданных, которые содержат информацию о логической схеме БД, схеме размещения БД и таблиц по узлам системы.

Распределённая СУБД – совокупность СУБД, размещенных в отдельных узлах и предназначенных для предоставления пользователям доступа к корпоративным данным. Если на каждом узле установлена одна и та же СУБД, то такая система называется однородной, в противном случае – неоднородной. В гомогенных системах на всех серверах используются СУБД, поддерживающих один и тот же тип логической модели данных (иерархическая, сетевая, реляционная, объектно-реляционная или объектная). В гетерогенных системах используются разнородные типы моделей.

Принципы построения распределённых систем (правила Дейта):

1) Локальная автономность – доступ к локальным данным узла, обеспечение их целостности и безопасности возлагается на СУД конкретного узла.

2) Децентрализация системы – устанавливает равноправие узлов и отсутствие специальных узлов для реализации определённых сервисов.

3) Независимость от расположения или прозрачность размещения – позволяет пользователям обращаться к объектам БД с помощью глобальных имён, включающее имя сервера, имя владельца и имя объекта. Причём сервер может быть локальным или связанным.

4) Независимость от тиражирования – позволяет пользователю не иметь информации о наличии копий БД и их размещении по узлам сети.

5) Независимость от фрагментации – предполагает отсутствие у пользователя информации об используемых типах фрагментации и распределении фрагментов по серверам сети.

Фрагментация – процесс декомпозиции таблицы на несколько непересекающихся частей или фрагментов. Создание фрагментов позволяет повысить надежность и доступность данных, производительность системы, минимизировать затраты на передачу данных, обеспечить локальность ссылок. Различают горизонтальную, вертикальную, смешанную и горизонтальную производную фрагментацию. Фрагментация является корректной, если выполняются условия полноты, восстановимости и непересекаемости.

6) Независимость от аппаратного обеспечения – предполагает, что информационная система способна успешно функционировать на различных аппаратных платформах.

7) Независимость от операционной системы - указывает на возможность применения в узлах различных операционных систем.

8) Независимость от сетевой архитектуры - указывает на способность системы функционировать в различных видах сетевой архитектуры.

9) Независимость от типа СУБД – указывает на возможность применения в узлах различных СУБД.

10) Обеспечение поддержки различных способов доступа к данным – поддержка средств выполнения удалённых запросов, удалённых транзакций, распределённых транзакций и распределённых запросов, репликации.

Способы доступа к удалённым данным:

Наиболее простым средством доступа к удалённым данным является реализация удалённого запроса, которая предполагает инициирование пользователем SQL-оператора и его выполнение на удалённом узле.

Удалённая транзакция характеризуется тем, что все операторы, входящие в транзакцию, выполняются на удалённом сервере. Ответственность за целостность данных и фиксацию или откат транзакции возлагается на СУБД, установленную на этом узле.

Распределённая транзакция – это транзакция, отдельные операторы которой выполняются на различных серверах и для различных баз данных. Для обеспечения сохранения целостности данных и фиксации или отката транзакции в этом случае применяется механизм двухфазной фиксации транзакции.

На подготовительной стадии сервер, инициирующий транзакцию, принимает на себя роль сервера-координатора, выполнят свою часть транзакции, принимает решение о ее фиксации и передает служебную команду GET READY на все локальные сервера. На каждом сервере журнализируются операции, выполняемые в процессе реализации соответствующего фрагмента распределённой транзакции. Локальные сервера, в случае успешной фиксации своей части транзакции, передают серверу-координатору ответ YES, в противном случае – NO.

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

Распределённый запрос характеризуется тем, что в операторе запроса содержится обращение к различным локальным БД.

Репликация – технология генерации и воспроизведения копий БД или их фрагментов на различных серверах распределённой информационной системы. Эта технология представляет собой альтернативу применению распределённых СУБД.

Основные понятия репликации

1) сервер-публикатор

2) публикация

3) статья

4) распределительный сервер

5) сервер-подписчик

6) подписка

Виды подписки:

1) принудительная

2) подписка по запросу

Основные типы репликации:

1) мгновенная

2) репликация слиянием

3) транзакционная репликация

Наши рекомендации