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

Распределенные информационные системы и базы данных. Учебное пособие

.pdf
Скачиваний:
1
Добавлен:
12.08.2026
Размер:
1 Мб
Скачать

записи и размещаться так, чтобы это улучшало характеристики отклика системы. Требуемый уровень надежности по возможности должен достигаться при минимизации кратности дублирования данных и высокой степени локализации ссылок.

Каждый фрагмент в расчлененной базе данных должен выбираться как неделимая единица размещения данных.

На этом же этапе проводится анализ того, как приложения базы данных используют возможные разделы базы данных. Приложения могут быть классифицированы следующим образом:

приложения, использующие единственный фрагмент;

приложения, использующие несколько фрагментов:

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

приложения, допускающие синхронную обработку.

Размещение базы данных

После выбора стратегии фрагментации и конкретной системы управления распределенной базой данных встает задача рационального размещения данных по узлам сети. Для того чтобы получить лучшую структуру, этот этап повторяется для каждого возможного варианта фрагментации. Процесс длится до тех пор, пока не будет получен удовлетворительный результат или не будут рассмотрены все допустимые варианты фрагментации. При этом необходимо иметь информацию об особенности сети передачи данных (ее топологии, пропускной способности каналов), приложениях и их связях, а также знать требования, предъявляемые ко времени отклика и надежности, и ограничения, накладываемые аппаратными и программными средствами сети.

Поскольку количество вариантов размещения фрагментов растет очень быстро с увеличением количества узлов, то решение часто ограничивается нахождением не оптимального, а рационального размещения. Применение методов математического (линейного) программирования возможно при довольно жестких допущениях о характере потока запросов к базе, предопределенном числе и неизменности этих запросов, а также заранее известном числе хранимых фрагментов. Масштаб сети (количество узлов) устанавливает предел применимости формальных методов для решения задачи размещения.

51

Проектирование локальных баз данных

Это заключительный этап рассматриваемой последовательности, в процессе которого осуществляется проектирование физических структур локальных БД, образованных в результате выполнения всех процедур предшествующих шагов.

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

52

5. СИНХРОНИЗАЦИЯ В РАСПРЕДЕЛЕННЫХ ИНФОРМАЦИОННЫХ СИСТЕМАХ

Время в распределенных системах

Концепция причинно-следственной связи между событиями имеет фундаментальное значение для проектирования и анализа параллельных и распределенных вычислений и операционных систем. Знание причинно-следственной связи между событиями помогает решать разнообразные проблемы в распределенных системах. Приведем примеры некоторых из этих проблем [30].

1.Разработка распределенных алгоритмов. Знание причинноследственной связи между событиями помогает обеспечить жизнеспособность и справедливость алгоритмов взаимного исключения, помогает поддерживать согласованность в реплицируемых базах данных

ипомогает разработать правильные алгоритмы обнаружения взаимоблокировок, чтобы избежать фантомных и необнаруженных взаимоблокировок.

2.Отслеживание зависимых событий. При распределенной отладке знание причинно-следственных связей между событиями помогает создать согласованное состояние для возобновления повторного выполнения; при восстановлении после сбоя это помогает построить контрольную точку; в реплицируемых базах данных это помогает обнаружить несоответствия файлов в случае разделения сети.

3.Знание о процессе. Знание причинно-следственной зависимости событий помогает контролировать ход процессов в распределенных вычислениях. Это полезно при удалении устаревшей информации, сборке мусора и обнаружении завершения.

4.Оценка параллелизма. Знание того, сколько событий причиннозависимы, полезно при измерении степени параллелизма в вычислениях. Все события, не имеющие причинно-следственной связи, могут выполняться одновременно. Таким образом, анализ причинноследственных связей в вычислениях дает представление о параллелизме в программе.

53

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

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

Оба этих примера имеют общую цель – определить последовательность событий, основываясь на метках времени. Однако существует различие между централизованной системой и распределенной с точки зрения времени. В централизованной системе можно поддерживать единое время, которое может определять порядок различных событий на единственном узле системы. В распределенной системе каждый узел имеет свои собственные часы, и показания времени этих часов могут отличаться друг от друга из-за рассинхронизации. Поэтому в распределенной системе отсутствуют глобальные часы, которые можно было бы использовать для упорядочивания событий, происходящих на разных узлах системы.

Например, когда на некотором узле происходит событие, узел присваивает событию метку времени, используя свои собственные часы, а затем распространяет это событие на другие узлы. Узлы, получающие события от других узлов, сравнивают связанные с этими событиями временные метки для определения порядка, в котором произошли события. При наличии единого времени в сети эта схема теоретически была бы способна идентифицировать порядок. Однако если имеется расхождение между часами различных узлов, то нарушается правильность установления последовательности событий.

При построении распределенной системы необходимо учитывать эту разницу между часами, поскольку многие распределенные приложения (например, в системах реального времени, приложения для обработки транзакций) или протоколы связи требуют наличия синхронизированных часов, чтобы иметь примерно одинаковое представление о времени [32].

10 В ИТ-сфере инцидент – одно или несколько нежелательных или неожиданных событий, с которыми связана значительная вероятность компрометации бизнес-операций и создания угрозы информационной безопасности [31].

54

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

Как было сказано, в распределенных системах невозможно гарантировать одинаковое время на всех узлах в связи с рассинхронизацией часов. Если время на разных узлах разное, то возникают проблемы взаимодействия, что может привести к ошибкам и сбоям в работе системы. Для достижения адекватной степени ошибок при работе в распределенных системах используют механизмы синхронизации времени.

Существует несколько методов синхронизации времени.

Протокол NTP

NTP (Network Time Protocol) – это протокол, который используется для обеспечения точности и согласованности компьютерных часов и синхронизации времени в системах, таких как финансовые транзакции, сетевые файлы журналов и распределенные системы [33].

С помощью протокола NTP на узле, на котором запущен NTPклиент, время синхронизируется путем обмена UDP11-сообщениями с одним или несколькими NTP-серверами. Сообщения снабжены метками времени, и в процессе обмена сообщениями оценивается время, затраченное на их передачу. Это становится параметром в алгоритме, используемом NTP для определения времени, на которое должно измениться время клиента. NTP использует предложенный К. Марзулло алгоритм, описание которого можно найти в [34].

Использование NTP позволяет получать точное время через специальные серверы, корректировать свое время в соответствии с этими данными и обеспечивать высокую точность синхронизации времени.

Алгоритм Кристиана

Этот алгоритм [36] предполагает наличие сервера времени. Сервер времени поддерживает свои часы с помощью источника точного времени, а другие компьютеры в сети синхронизируются с ним.

11 UDP (User Datagram Protocol) – транспортный протокол передачи данных. Он предназначен для обмена сообщениями (датаграммами) между приложениями в сети без необходимости предварительной установки специальных каналов передачи или путей данных. UDP не обеспечивает достоверность доставки пакетов, защиты дублирования данных или надежности от сбоев в передаче. Описание UDP – см. [35].

55

Каждый из узлов, которым требуется синхронизированное время, посылает сообщение серверу времени с запросом времени. Сервер времени максимально оперативно должен послать клиенту ответное сообщение, содержащее текущее время сервера (рис. 11).

Клиент времени будет поддерживать свои часы, выполняя вызов процедуры на сервере времени. Варианты этого алгоритма позволяют более точно рассчитывать время за счет учета времени распространения сигнала в сети.

Алгоритм Кристиана – один из простейших алгоритмов распределенных систем. Каждый из узлов, которым требуется синхронизированное время, посылает сообщение серверу времени с запросом времени. Сервер времени максимально быстро отвечает клиенту сообщением, содержащим текущее время сервера (рис. 11). Поскольку между отправкой сообщения сервером времени и его получением узлом-клиентом проходит некоторое время (оно непостоянно и зависит от текущей загрузки сети передачи данных), то для оценки этого времени Кристиан предложил принимать время передачи ответа как половину времени между отправкой запроса и получением ответа. Для повышения точности следует производить серию таких замеров.

Рис. 11. Взаимодействие между сервером времени и клиентом [37]

Алгоритм Беркли

Этот алгоритм предназначен для случая, когда источник точного времени отсутствует. В отличие от алгоритма Кристиана, где сервер времени пассивен (все, что он делает, – это отвечает на запросы), в алгоритме Беркли [38] сервер времени (демон времени) активен:

56

он периодически опрашивает все узлы для выяснения их текущего времени. Значения, выходящие за пределы заданного допуска, отбрасываются, что предотвращает резкое искажение общего системного времени из-за ошибочных часов. Усреднив полученные значения, сервер рассылает команды на установку нового значения времени либо на замедление сильно ушедших вперед часов, пока не будет достигнуто необходимое уменьшение значения времени (рис. 12).

Рис. 12. Синхронизация времени по алгоритму Беркли

Выполняются следующие действия.

1.Демон времени запрашивает у всех остальных машин значения их часов.

2.Компьютеры отвечают.

3.Демон времени сообщает всем, как настроить свои часы [38].

57

6. ОТКРЫТЫЕ СИСТЕМЫ

Гетерогенный характер и территориальная распределенность современных информационных систем требуют интеграционной основы, обеспечивающей переносимость приложений, взаимодействие систем и их функциональное расширение. В качестве такой основы выступают принцип открытых систем и методы функциональной стандартизации [39].

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

Принципы открытых систем

Основной принцип открытых систем состоит в создании среды, включающей в себя программные и аппаратные средства, службы связи, интерфейсы, форматы данных и протоколы. Эта среда в своей основе имеет развивающиеся, доступные и общепризнанные стандарты и обеспечивает переносимость, взаимодействие и масштабируемость приложений и данных [40, 45].

Второй принцип состоит в использовании методов функциональной стандартизации – построении и использовании профиля, т. е. согласованного набора базовых стандартов, необходимых для решения конкретной задачи или класса задач [40, 45].

В соответствии с определением EEE POSIX 1003.0 открытая система есть «система, которая реализует открытые спецификации на интерфейсы, сервисы (услуги среды) и поддерживаемые форматы данных, достаточные для того, чтобы дать возможность должным образом разработанному прикладному программному обеспечению быть переносимым в широком диапазоне систем с минимальными изменениями, взаимодействовать с другими приложениями на локальных

58

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

Это определение позволяет сформулировать основные свойства открытых систем следующим образом [41]:

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

стандартизуемость – реализация открытости с использованием функциональных стандартов (профилей) в области информационных технологий;

расширяемость (масштабируемость) – возможность добавления новых функций или модификации имеющихся при неизменных остальных функциональных частях системы;

мобильность (переносимость) – обеспечение переноса программ

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

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

Архитектура и структура открытых систем

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

пользователя (описание пользовательских интерфейсов);

проектировщика системы (описание среды проектирования);

прикладного программиста (описание среды программирования);

системного программиста (описание архитектуры используемых ЭВМ);

разработчика аппаратуры (описание интерфейсов аппаратной части системы).

Описанию на каждом уровне иерархии подлежат выполняемые

функции и интерфейсы взаимодействия с другими компонентами и внешней средой.

59

В архитектурных представлениях собираются основные структурные решения и показывается, как архитектура подразделяется на компоненты, как компоненты взаимодействуют между собой и образуют некоторые полезные формы.

Эталонная модель среды открытых систем

Для структурирования среды открытых систем используется эталонная модель (Open System Environment Reference Model – OSE/RM), принятая в основополагающем документе ISO/IEC 14252 (рис. 13). Она может модернизироваться в зависимости от класса системы. Например, для телекоммуникационных систем хорошо известна 7-уровневая модель взаимосвязи открытых систем ISO/IEC 7498, которую можно представить как расширение модели OSE/RM с детализацией верхнего прикладного уровня.

Интерфейсы

 

 

 

 

Прикладные системы

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

прикладной

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

системы

Системный

Коммуникационный Информационный

Человеко-машинный

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Прикладная платформа

 

 

 

 

Функциональная

Пользова-

Поддержка

Обмен

Графика

Сетевые

 

область

тельский

и управление

данными

 

 

 

службы

программирования

интерфейс

данными

 

 

 

 

Интернет

 

 

 

 

Службы операционной системы

 

Интерфейсы

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

внешней

Коммуникационный

Информационный

Человеко-машинный

среды

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Внешняя среда

Распределенные

системы

Управление

системой

Безопасность

Интернационализация

Рис. 13. Эталонная модель открытых систем [42]

Представленная модель архитектуры открытой системы может быть обобщена и на системы распределенной обработки данных. Поскольку здесь явно выделены компоненты, составляющие систему, то можно рассматривать как интерфейсы взаимодействия этих компонентов на каждом из указанных уровней, так и интерфейсы взаимодействия между уровнями.

60

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]