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

Впервые задача об исследовании основ и принципов со­здания и функционирования распределенных информационных систем была поставлена известным специалистом в области баз данных К. Дейтом в рамках проек­та System R, что в конце 70-х — начале 80-х годов вылилось в отдельный проект создания первой распределенной системы (проект System R). Большую роль в исследовании принципов создания и функционирования распределенных баз данных вне­сли также и разработчики системы Ingres.

Собственно в основе распределенных АИС лежат две ос­новные идеи:

• много организационно и физически распределенных пользователей, одновременно работающих с общими данны­ми — общей базой данных (пользователи с разными именами, в том числе располагающимися на различных вычислительных установках, с различными полномочиями и задачами);

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

Крис Дейт сформулировал также основные принципы со­здания и функционирования распределенных баз данных. К их числу относятся:

прозрачность расположения данных для пользователя (иначе говоря, для пользователя распределенная база данных должна представляться и выглядеть точно так же, как и нераспределенная);

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

синхронизация и согласованность (непротиворечи­вость) состояния данных в любой момент времени.

Из основных вытекает ряд дополнительных принципов:

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

отсутствие центральной установки (следствие преды­дущего пункта);

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

непрерывность функционирования (отсутствие плано­вых отключений системы в целом, например для подключения новой установки или обновления версии СУБД);

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

независимость от реплицирования (дублирования) дан­ных (когда какая-либо таблица базы данных, или ее часть физически может быть представлена несколькими копиями, рас­положенными на различных установках, причем «прозрачно» для пользователя);

распределенная обработка запросов (оптимизация зап­росов должна носить распределенный характер—сначала гло­бальная оптимизация, а далее локальная оптимизация на каж­дой из задействованных установок);

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

независимость от аппаратуры (желательно, чтобы сис­тема могла функционировать на установках, включающих ком­пьютеры разных типов);

независимость от типа операционной системы (систе­ма должна функционировать вне зависимости от возможного различия ОС на различных вычислительных установках);

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

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

В обиходе СУБД, на основе которых создаются распреде­ленные информационные системы, также характеризуют тер­мином «Распределенные СУБД», и, соответственно, использу­ют термин «Распределенные базы данных».

Важнейшую роль в технологии создания и функциониро­вания распределенных баз данных играет техника «представлений» (Views).

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

Авторизованность означает возможность запуска такого запроса только конкретно поименованным в системе пользователем. Глобальность заключается в том, что выборка данных может осуществляться со всей базы данных, в том числе из данных, расположенных на других вычислительных установках. (Напом­ним, что результатом запроса на выборку является набор дан­ных, представляющий временную на сеанс открытого запроса таблицу, с которой (которыми) в дальнейшем можно работать, как с обычными реляционными таблицами данных. В резуль­тате таких глобальных авторизованных запросов для конкрет­ного пользователя создается некая виртуальная база данных со своим перечнем таблиц, связей, т. е. со «своей» схемой и со «своими» данными. В принципе, сточки зрения информационных задач, в большинстве случаев пользователю безразлично, где и в каком виде находятся собственно сами данные. Данные должны быть такими и логически организованы таким обра­зом, чтобы можно было решать требуемые информационные задачи и выполнять установленные функции).

Схематично идея техники представлений проиллюстрирована на рис. 24.

 

Начало сеанса
Глобальный запрос на выборку
Пользо-ватель
Истинная структура базы данных и истинные данные
Новая структура
Работа со «своим» представле-нием БД

Рис. 24 Основная идея техники представлений

 

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

Технологически в реляционных СУБД техника представ­лений реализуется через введение в язык SQL-конструкций, позволяющих аналогично технике «событий-правил-процедур» создавать именованные запросы-представления:

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

Первая из них связана с раз­мещением системного каталога базы данных, ибо при фор­мировании для пользователя «представления» распределенной базы данных ядро СУБД в первую очередь должно «узнать», где и в каком виде в действительности находятся данные. Тре­бование отсутствия центральной установки приводит к выводу о том, что системный каталог должен быть на любой локаль­ной установке. Но тогда возникает проблема обновлений. Если какой-либо пользователь изменил данные или их структуру в системе, то эти изменения должны отразиться во всех копиях системного каталога. Однако размножение обновлений систем­ного каталога может встретить трудности в виде недоступнос­ти (занятости) системных каталогов на других установках в момент распространения обновлений. В результате может быть не обеспечена непрерывность согласованного состояния дан­ных, а также возникнуть ряд других проблем.

Решение подобных проблем и практическая реализация распределенных информационных систем осуществляется че­рез отступление от некоторых рассмотренных выше принци­пов создания и функционирования распределенных систем. В зависимости оттого, какой принцип приносится в «жертву» (отсутствие центральной установки, непрерывность функцио­нирования, согласованного состояния данных и др.) выдели­лись несколько самостоятельных направлений в технологиях распределенных систем технологии «Клиент-сервер», технологии реплицирования, технологии объектного связывания.

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

2. Технологии и модели «Клиент-сервер»

Системы на основе технологий «Клиент-сервер» истори­чески выросли из первых централизованных многопользова­тельских автоматизированных информационных систем, ин­тенсивно развивавшихся в 70-х годах (системы main frame), и получили, вероятно, наиболее широкое распространение в сфе­ре информационного обеспечения крупных предприятий и кор­пораций.

В технологиях «Клиент-сервер» отступают от одного из главных принципов создания и функционирования распределен­ных систем — отсутствия центральной установки. Поэто­му можно выделить две основные идеи, лежащие в основе кли­ент-серверных технологий:

• общие для всех пользователей данные на одном или не­скольких серверах;

• много пользователей (клиентов) на различных вычисли­тельных установках, совместно (параллельно и одновременно) обрабатывающих общие данные.

Иначе говоря, системы, основанные на технологиях «Кли­ент-сервер», распределены только в отношении пользователей, поэтому часто их не относят к «настоящим» распределенным системам, а считают отдельным, уже упоминавшимся классом многопользовательских систем.

Важное значение в технологиях «Клиент-сервер» имеют понятия сервера и клиента.

Под сервером в широком смысле понимается любая сис­тема, процесс, компьютер, владеющие каким-либо вычисли­тельным ресурсом (памятью, временем, производительностью процессора и т. д.).

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

В своем развитии системы «Клиент-сервер» прошли не­сколько этапов, в ходе которых сформировались различные модели систем «Клиент-сервер». Их реализация и, следователь­но, правильное понимание основаны на разделении структу­ры СУБД па три компонента:

· компонент представления, реализующий функции вво­да и отображения данных, называемый иногда еще просто как интерфейс пользователя (см. рис. 2.1);

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

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

Исходя из особенностей реализации и распределения (рас­положения) в системе этих трех компонентов различают четы­ре модели технологий «Клиент-сервер»:

· модель файлового сервера (File Server — FS);

· модель удаленного доступа к данным (Remote Data Access — RDA);

· модель сервера базы данных (DataBase Server — DBS);

· модель сервера приложений (Application Server — AS).