Распределенная обработка информации и проблемы взаимодействия параллельно выполняемых процессов обработки.
Первоначальные ИС, основанные на базах данных, имели строго централизованную архитектуру. Данные были сосредоточены физически и логически на одном компьютере. Централизованная организация базы данных позволяет облегчить обеспечение ее безопасности, целостности и непротиворечивости данных.
Вместе с тем рост объема базы данных и числа пользователей, получающих к ней доступ, территориальное развитие организации (и связанная с ней необходимость распределенной обработки данных) приводят к возникновению ряда проблем, свойственных централизованной архитектуре:
- большой объем обмена данными (высокий трафик);
- снижение надежности обмена данными;
- снижение общей производительности;
- рост затрат на разработку БД.
Возможным решением перечисленных проблем является организация децентрализованного хранения данных. При децентрализации достигается:
- параллельная обработка данных и распределение нагрузки;
- повышение эффективности обработки данных при выполнении удаленных запросов;
- уменьшение затрат на обработку данных;
- упрощение процедуры управления ИС.
Распределенная база данных — это набор отношений, хранящихся в разных узлах компьютерной сети и логически связанных таким образом, чтобы составлять единую совокупность данных.
Распределенная база данных предполагает хранение данных на нескольких узлах сети, обработку данных и их передачу между этими узлами в процессе выполнения запросов. Разбиение данных в распределенной базе данных может достигаться путем хранения различных таблиц на разных компьютерах или хранения разных фрагментов одной таблицы на разных компьютерах. Для пользователя (или прикладной программы) не должно иметь значения, каким образом распределены данные между компьютерами. Работа с распределенной базой данных должна осуществляться так же, как и с централизованной.
Впервые задача об исследовании основ и принципов создания и функционирования распределенных информационных систем была поставлена известным специалистом в области баз данных К. Дейтом.
В основе распределенных ИС лежат две основные идеи:
- работа множества пользователей с общей БД;
- объединение распределенных данных на логическом и физическом уровнях в общей БД.
Основные принципы создания и функционирования распределенных БД:
- прозрачность размещения данных для пользователя (пользователю распределенная БД должна представляться точно так же, как и нераспределенная);
- изолированность пользователей друг от друга (на работу одного пользователя с БД не должна влиять работа других пользователей с ней);
- синхронизация БД и непротиворечивость состояния данных в любой момент времени.
Важнейшую роль в технологии создания и функционирования распределенных баз данных играет технология представлений.
Представлением называется сохраняемый в базе данных авторизованный глобальный запрос на выборку данных. Авторизованность означает возможность запуска такого запроса только конкретно поименованным в системе пользователем. Глобальность заключается в том, что выборка данных может осуществляться из всей базы данных, в том числе из данных, расположенных на других узлах сети. Результатом глобальных авторизованных запросов является создание для конкретного пользователя виртуальной БД со своим перечнем таблиц, связей.
Выделились несколько самостоятельных технологий распределенной обработки данных:
- клиент-сервер;
- реплицирования;
- объектного связывания.
Реальные распределенные информационные системы, как правило, построены на основе сочетания этих технологий.
Системы на основе технологии клиент-сервер развились из первых централизованных многопользовательских информационных систем и получили наиболее широкое распространение в корпоративных информационных системах.
При реализации данной технологии отступают от одного из основных принципов создания распределенных систем — отсутствия центрального узла.
Принцип централизации хранения и обработки данных является базовым принципом технологии клиент-сервер.
Можно выделить следующие идеи, лежащие в основе технологии клиент-сервер:
- общие для всех пользователей данные, расположенные на одном или нескольких серверах;
- множество пользователей, осуществляющих доступ к общим данным.
Под сервером в широком смысле понимается любая система, процесс, компьютер, владеющие каким-либо вычислительным ресурсом (памятью, временем процессора, файлами и т. д.).
Клиентом называется любая система, процесс, компьютер, пользователь, делающие запрос к серверу на использование ресурса.
Одним из важнейших преимуществ архитектуры клиент-сервер является снижение сетевого трафика при выполнении запросов. Клиент посылает запрос серверу на выборку данных, запрос обрабатывается сервером, и клиенту передается не вся таблица (как было бы в технологии файл-сервер), а только результат обработки запроса.
Вторым преимуществом архитектуры клиент-сервер является возможность хранения так называемой бизнес-логики (например, ограничений на значения данных) на сервере, что позволяет избежать дублирования кода в различных клиентских приложениях, использующих общую базу данных.
Во многих случаях узким местом клиент-серверных ИС является недостаточно высокая производительность из-за необходимости передачи по сети все-таки большого количества данных.
Построение быстродействующих информационных систем обеспечивают технологии репликации данных.
Репликой называют копию БД, размещенную на другом компьютере сети для автономной работы пользователей. Основная идея репликации заключается в том, что пользователи работают автономно с общими данными, растиражированными по локальным базам данных.
Производительность работы системы повышается из-за отсутствия необходимости обмена данными по сети. Для реализации технологии репликации программное обеспечение СУБД дополняется функциями тиражирования данных, их структуры, системной информации, информации о конфигурировании распределенной системы.
При этом, однако, возникают две проблемы реализации одного из принципов функционирования распределенных систем — принципа непрерывности согласованного состояния данных:
- обеспечение согласованного состояния данных во всех репликах БД;
- обеспечение согласованного состояния структуры данных во всех репликах БД.
Обеспечение согласованного состояния данных, в свою очередь, ос-
новывается на реализации одного из двух принципов:
- принципа непрерывного размножения обновлений;
- принципа отложенных обновлений (обновления реплик могут быть отложены до специальной команды или ситуации).
Принцип непрерывного размножения обновлений является основополагающим при построении так называемых систем реального времени (например, систем управления воздушным движением, систем бронирования билетов пассажирского транспорта и др.), где требуется непрерывное и точное соответствие реплик во всех узлах и компонентах распределенных систем в любой момент времени. Реализация
этого принципа заключается в том, что любая транзакция считается успешно завершенной, если она успешно завершена на всех репликах системы.
В ряде предметных областей режим реального времени с точки зрения непрерывности согласования данных не требуется. Такого рода информационные системы можно строить на основе принципа отложенных обновлений. Накопленные в какой-либо реплике изменения данных передаются командой пользователя для обновления всех остальных реплик системы. Такая операция называется синхронизацией реплик.
Унификация взаимодействия прикладных компонентов с ядром информационных систем в виде SQL-серверов, наработанная для клиент-серверных систем, позволила выработать аналогичные решения и по интегрированию разрозненных локальных баз данных под управлением локальных СУБД. Такая технология получила название объектного связывания данных.
Технология объектного связывания данных решает задачу обеспечения доступа из одной локальной БД, открытой одним пользователем, к данным другой локальной БД, возможно, находящейся на другом компьютере, открытой другим пользователем. Решение этой задачи основывается на поддержке современными СУБД технологии объектов доступа к данным — DAO (Data Access Objects).
Подобный принцип построения распределенных систем при больших объемах данных в связанных таблицах приводит к существенному увеличению сетевого трафика, так как по сети постоянно передаются страницы файлов баз данных. Другой проблемой является отсутствие надежных механизмов безопасности данных и обеспечение ограничений целостности. Так же как и в технологии файл-сервер, совместная работа нескольких пользователей с одними и теми же данными обеспечивается только функциями операционной системы по одновременному доступу к файлу нескольких приложений.