Файл: ТЕХНОЛОГИЯ ПОСТРОЕНИЯ РАСПРЕДЕЛЕННЫХ ИНФОРМАЦИОННЫХ СИСТЕМ В РФ.pdf
Добавлен: 16.05.2023
Просмотров: 393
Скачиваний: 3
СОДЕРЖАНИЕ
1. Теоретические аспекты использования распределенных информационных систем
1.1. Общая характеристика задач, решаемых с использованием распределенных информационных систем
1.2. Обзор средства работы с распределенными данными
1.3 Основные подходы к реализации распределенных баз данных
2.Аппаратная реализация распределенных вычислений
2.1 Преимущество кластерных вычисления в HPC
2.2 Классификация кластерных вычислений
2. Обработка двумерных массивов
4) Методы обеспечения целостности
Важная характеристика распределенных ИС связана с обеспечением поддержки ссылочной целостности данных таблицы-мастера и данных связанных с ней таблиц. Рассмотрим пример обеспечения ссылочной целостности. Пусть в распределенной БД хранятся следующие таблицы:
- таблица с данными о детях сотрудников;
- таблица с данными о зарплатах сотрудников за год;
- таблица с данными о темах, выполненных сотрудником.
В данных таблицах содержится столбец "ФИО сотрудника". Правила обеспечения ссылочной целостности требуют, чтобы при изменении значений столбца "ФИО сотрудника" в одной таблице, автоматически выполнялась корректировка значений данного столбца в других таблицах. Для обеспечения ссылочной целостности используются 2 различных метода - триггеры и декларативные ограничения целостности стандарта ANSI [7].
1.3 Основные подходы к реализации распределенных баз данных
Распределённые базы данных (РБД) — совокупность логически взаимосвязанных баз данных, распределённых в компьютерной сети.
РБД включают наборы узлов, связанных посредством коммуникационных сетей, в которых [2]:
- На каждом узле развернута отдельная СУБД;
- Взаимодействие узлов построено таким образом, что пользователи каждого из них имеют возможность получения доступа к любым данным в сети таким образом, как будто они развернуты на его собственном узле.
Каждый узел выступает в качестве системы базы данных. Любому пользователю доступно выполнение операций с данными на своих локальных узлах аналогично отсутствию распределённой системы. Распределённая система баз данных может рассматриваться как партнёрство отдельных локальных СУБД на отдельных локальных узлах.
Фундаментальное правило реализации распределённых баз данных («правило 0»): «Для пользователей распределённые системы должны выглядеть аналогично нераспределённым системам».
Цели создания распределенных систем:
1. Обеспечение локальной независимости. Узлы в распределённых системах должны быть автономными. Локальная независимость предполагает возможность контроля всех операций на узле данным узлом.
2. Отсутствие необходимости в опоре на центральный узел. Локальная независимость предполагает, что все узлы в распределённых системах должны быть равными, что предполагает отсутствие приоритета какого-либо из узлов.
3.Непрерывность функционирования. Распределённые системы должны предоставлять более высокий уровень по характеристикам надёжности и доступности.
4. Обеспечение независимости от расположения. Пользователи не должны знать, где именно данные хранятся физически и должны работать с ними так, как если бы хранение всех ресурсов осуществлялось на их собственных локальных узлах.
5. Независимость от фрагментации. Система поддерживает независимость от фрагментации, если данная переменная-отношение может быть разделена на части или фрагменты при организации её физического хранения. В этом случае данные могут храниться в том месте, где они чаще всего используются, что позволяет достичь локализации большинства операций и уменьшения сетевого трафика.
6. Независимость от репликации. Система поддерживает репликацию данных, если данная хранимая переменная-отношение — или в общем случае данный фрагмент данной хранимой переменной-отношения — может быть представлена несколькими отдельными копиями или репликами, которые хранятся на нескольких отдельных узлах.
7. Возможность обработки запросов, представленных в распределенной форме. Суть в том, что для обработки запросов возможно обращение к нескольким сетевым узлам. В данной системе возможно множество возможных методов пересылки данных, которые позволяют выполнять рассматриваемые запросы.
8. Возможность управления распределёнными транзакциями. Существуют следующие аспекты управления транзакциями: управление системами восстановления и управление системами параллельности обработки. Управление восстановлением обеспечивает атомарность транзакций в распределённых средах, в системе должно гарантироваться, что все множество относящихся к данным транзакциям агентов (агенты — процессы, выполняемые для определенных транзакций на отдельных узлах) или зафиксировало свои результаты, или выполнило откат. Что касается управления параллельностью, то оно в большинстве распределённых систем базируется на механизме блокирования, точно так, как и в нераспределённых системах.
9.Обеспечение аппаратной независимости. Необходимо иметь возможности запуска одних и тех же СУБД на разных аппаратных платформах и, более того, добиться, чтобы различные машины были задействованы в работе распределённых систем в качестве равноправных партнёров.
10. Обеспечение независимости от операционных систем, что обеспечивает возможности функционирования СУБД под различными программными платформами.
11. Обеспечение независимости от систем передачи данных. Возможность поддержки множества принципиально разных узлов, которые отличаются оборудованием и операционными системами, а также рядом типов различных коммуникационных сетей.
12. Обеспечение независимости от типа СУБД. Необходимо, чтобы экземпляры СУБД на различных узлах все вместе поддерживали один и тот же интерфейс, и совсем необязательно, чтобы это были копии одной и той же версии СУБД [6].
Основной задачей систем управления распределенными базами данных является обеспечение средств интеграции локальных баз данных, которые располагаются в определенных узлах вычислительных сетей, с тем, чтобы пользователи, работающие в любом сегменте сети, имели возможность доступа ко всем этим базам данных как к единой базе данных.
Возможна реализация однородных и неоднородных распределенных базы данных. В однородных базах данных управление каждой локальной базой данных осуществляется посредством одной и той же СУБД. В неоднородных системах локальные базы данных могут относиться даже к разным моделям данных.
Кроме вышеназванных видов распределенных баз данных существуют также следующие [10]:
- Мультибазы данных, имеющие глобальную схему. Системы Мультибаз данных являются распределёнными системами, выступающими в качестве внешних интерфейсов для доступа к нескольким локальным СУБД.
- Федеративные базы данных, не располагающие глобальной схемой, к которой производится обращение всех приложений. Вместо этого реализована поддержка локальных схем импорта-экспорта данных. На всех узлах поддерживаются частичные глобальные схемы, описывающие информацию по тем удалённым источникам, данные из которых необходимы для обеспечения их работы.
- Мультибазы с общим языком доступа являются распределёнными средами управления на основе клиент-серверной технологии
- Интероперабельные системы - это системы, в которых сами приложения, исполняемые в среде той или иной СУБД, ответственны за интерфейсы между различными средами приложения, в независимости от того, являются они однородными или неоднородными. Системы ориентированы главным образом на операции обмена данными. Дальнейшим развитием данных систем являются объектно-ориентированные базы данных.
1.4. Принцип действия распределенных баз данных
В головном офисе проводится создание начальных образов базы (для каждого подразделения - собственный образ) с дальнейшей передачей данных для загрузки. При этом необходимо определить настройки обмена, в соответствии с которыми будет производиться синхронизация между периферийными (подчиненными) базами с главной базой.
Структура компании может быть такова, что у удаленных подразделений, подчиненных главному офису, могут существовать собственные удаленные подразделения. В таком случае проводится процедура, аналогичная той, которая производилась при настройке филиалов, подчиненных напрямую главной базе [5].
Таким образом, можно подытожить, что в распределенных базах проводится формирование древообразных связей. Например, когда в компании главному офису подчиняется два филиала, при этом у первого филиала имеется два удаленных подразделения, а у второго - три подразделения. В таком случае основной базе подчиняется две периферийных базы. Первой периферийной базе, в свою очередь, подчинено еще две базы, а второй периферийной - три. Схема связей в такой распределенной базе показана на рисунке 1.
Рис. – Схема распределенной базы данных
Узел 1 является корневым для всей распределенной базы и главным узлом для подчиненных ему второму и третьему. Второй узел является главным узлом для подчиненных ему четвертому и пятому. Третий узел будет главным для подчиненных ему шестому, седьмому и восьмому.
Любой узел распределенной базы данных (УРБД) связан только с соседними узлами, с которыми проводятся операции обмена данными.
Внесение изменений в данные информационной базы возможно в любом узле УРБД, причем изменения данных передаются между любыми связанными узлами. На схеме направления, по которым передаются изменения данных, обозначены зелеными стрелочками (по ним из любого узла УРБД за определенное количество шагов можно попасть в любой другой узел, отсюда следует, что при внесении изменений в данные любого узла эти изменения постепенно перенесутся во все остальные).
Внесение изменений в конфигурацию информационной базы возможно только в одном (корневом) узле УРБД, причем изменения конфигурации передаются от главного узла к подчиненным. На схеме направления, по которым передаются изменения конфигурации, обозначены красными стрелочками [9].
Теперь рассмотрим, каким образом осуществляется обмен данными между узлами УРБД. При внесении изменений в данные информационной базы программа запоминает, что было изменено и каким образом. Для любого узла раз в определенный промежуток времени запускается обработка (вручную либо автоматически), которая формирует специальные сообщения, в каких в формате XML отображена информация о том, были ли изменения (если были, то какие), и отправляет их в определенные каталоги по локальной сети либо по FTP, или же на определенные адреса электронной почты. Также обработка проверяет, появились ли в этом каталоге либо электронном ящике аналогичные сообщения от других узлов, связанных напрямую с этим узлом, адресованные ему. Если появились, то загрузит сообщения, а следовательно и изменения в данных. Инфраструктура сообщений поддерживает нумерацию сообщений, и позволяет получать подтверждения от узла-получателя о приеме сообщений. Такое подтверждение содержится в каждом сообщении, приходящем от узла-получателя в виде номера последнего принятого сообщения.
Если узел-приемник еще не успел загрузить сообщение из каталога обмена , узел-источник не будет выкладывать, а тем более формировать файл сообщений в каталог обмена по этому узлу. Подразумевается, что после успешной загрузки, файл удаляется из каталога обмена. Это позволяет не осуществлять лишние операции при обмене и не загружать канал лишний раз.
При изменении конфигурации базы информация об изменениях распространяется в сообщениях обмена вместе с изменениями данных.
Алгоритм обмена данными между базами [12]:
- В базе-источнике система проводит определение списка изменённых объектов за время, прошедшее с предыдущего этапа выгрузки данных.
- По данному списку система формирует XML-пакет, который передается в базу-приемник.
- Для возможности формирования пакета система проводит обращение к модифицированным объектам базы данных. При обращении система проводит блокировку данных объектов.
- передача XML-пакета в базу-приемник.
- Развертывание XML-пакета базе-приемнике, запись проведенных изменений в основную базу.
- Запись всех изменений в рамках одной транзакции, блокировка измененных объектов.
2.Аппаратная реализация распределенных вычислений
2.1 Преимущество кластерных вычисления в HPC
Построение кластерных компьютеров не является самоцелью, а средством достижения большей эффективности и продуктивности научной работы. Существует определенный тип задач, которые требуют более высоких характеристик производительности, нежели можно получить, посредством использования обычных компьютеров. В указанных случаях из нескольких мощных систем создаются HPC (High Perfomance Computing) кластеры, позволяющие разносить вычисления не только на разные процессоры (если применяются многопроцессорные SMP-системы), но и на разные компьютеры. Для задач, которые поддерживают приемлемые характеристики распараллеливания и не предъявляют высоких требований для взаимодействия параллельных потоков, зачастую принимается решение о реализации HPC кластеров из большого числа однопроцессорных систем небольшой мощности. Часто использование решений подобного типа, при наличии низких стоимостных характеристик, позволяют достигать гораздо больших параметров производительности, чем аналогичные характеристики суперкомпьютеров.