Распределительные информационные системы

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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