Распределение ресурсов в информационных системах. Классификация беспроводных сетей передачи информации. технологии "Клиент-сервер"

МИНОБРНАУКИ РОССИИ

Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования

«Казанский национальный исследовательский технологический университет»

(ФГБОУ ВПО КНИТУ)

Институт управления, автоматизации и информационных технологий

Факультет управления и автоматизации

Кафедра «Автоматизированных систем сбора и обработки информации»

Реферат

Тема: Общая классификация и характеристика технологий распределенных информационных систем

Казань – 2015 год

1. Введение…………………………………………………………………….…………..3

1.1 Предпосылки создания информационных систем…..………………………..…3

1.2. Понятие распределенных информационных систем……………………………4

2. Информационные технологии в распределенных системах……………………..6

2.1. Система распределенной обработки данных……………………………………7

2.2. Технологии и модели «Клиент-Сервер»…………………………………………..9

2.3. Технологии объектного связывания данных……………………………………..13

2.4. Технологии реплицирования данных………………………………………………15

3. Средства работы с распределенными данными…………………………………..16

3.1. Распределенные базы данных……………………………………………………..17

3.2. Типы распределенных баз данных………………………………………………...20

3.3. Назначение и принципы работы распределенных баз данных……………….20

4. Примеры распределенных систем…………………………………………………..22

Библиографический список…………………………………………………………..25

ВВЕДЕНИЕ

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

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

В данной работе рассмотрены основные сведения о распределенной информационной системе: описаны предпосылки ее развития, средства работы с данными, введено понятие распределенной базы данных, а также ее типов и основных принципов. В третьей главе представлены примеры распределенных информационных систем, такие как: - Informix On-Line фирмы Informix Software;- Ingres Intelligent Database фирмы Ingres Corp;- Oracle (version 7) фирмы Oracle Corp;- Sybase System 10 фирмы Sybase Inc.

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

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

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

1.1. Предпосылки создания распределенных ИС

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

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

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

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

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

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

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

1.2. Понятие распределенных информационных систем

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

средних и крупных распределенных систем.

Малые ИС имеют небольшой жизненный цикл (ЖЦ), ориентацию на массовое использование, невысокую цену, невозможность модификации без участия разработчиков, использующие в основном настольные системы управления базами данных (СУБД), однородное аппаратно-программное обеспечение, не имеющие средств обеспечения безопасности.

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

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

Данные из разнородных систем обычно объединяются в логические группы, к которой и адресуются запросы. Абстрактная система запросов предполагает, что система оперирует не конкретным синтаксисом запросов, а его логической сутью на основе абстрактных атрибутов.
При построении распределенных ИС, как правило, используются две базовые архитектуры: Клиент/сервер и Internet Intranet .
Корпоративные ИС, построенные по архитектуре Клиент/сервер , предоставляют клиентам широкий спектр приложений и инструментов разработки, которые ориентированы на максимальное использование вычислительных возможностей клиентских рабочих мест. Ресурсы сервера используются в основном для хранения и обмена документами, а также для выхода во внешнюю среду. Данная архитектура позволяет лучше защитить серверную часть приложений, при этом, предоставляя возможность приложениям либо непосредственно адресоваться к другим серверным приложениям, либо маршрутизировать запросы к ним. Однако, частые обращения клиента к серверу снижают производительность работы сети. Приходится решать вопросы безопасной работы в сети, так как приложения и данные распределены между различными клиентами. Распределенный характер построения системы обусловливает сложность ее настройки и сопровождения

В основе ИС на базе Internet Intranet лежит принцип "открытой архитектуры". ПО ИС реализуется в виде аплетов или сервлетов (программ на языке JAVA) или в виде cgi модулей (программ на Perl или С). ИС данной архитектуры включает Web-yinh\, реализованные при помощи технологий CORBA Enterprise JavaBeans, ActiveX 1X"ОМ, многоуровневые приложения на основе Java и XML, .Net-концепция с XML, в которой обмен между различными серверами (хранилищами данных, бизнес-приложениями, серверами для мобильных клиентов и другое) производится при помощи нейтрального к любой архитектуре XML.

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

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

Обмен данными осуществляется по правилам, также определенным централизованно.

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

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

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

2. ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ В РАСПРЕДЕЛЕННЫХ СИСТЕМАХ

Технологии распределенных вычислений (РВ) Современное производство требует высоких скоростей обработки информации, удобных форм ее хранения и передачи. Необходимо также иметь динамичные способы обращения к информации, способы поиска данных в заданные временные интервалы, чтобы реализовывать сложную математическую и логическую обработку данных. Управление крупными предприятиями, управление экономикой на уровне страны требуют участия в этом процессе достаточно крупных коллективов. Такие коллективы могут располагаться в различных районах города, в различных регионах страны и даже в различных странах. Для решения задач управления, обеспечивающих реализацию экономической стратегии, становятся важными и актуальными скорость и удобство обмена информацией, а также возможность тесного взаимодействия всех участвующих в процессе выработки управленческих решений. В эпоху централизованного использования ЭВМ с пакетной обработкой информации пользователи вычислительной техники предпочитали приобретать компьютеры, на которых можно было бы решать почти все классы их задач. Однако сложность решаемых задач обратно пропорциональна их количеству, и это приводило к неэффективному использованию вычислительной мощности ЭВМ при значительных материальных затратах. Нельзя не учитывать и тот факт, что доступ к ресурсам компьютеров был затруднен из-за существующей политики централизации вычислительных средств в одном месте. Принцип централизованной обработки данных (рис. 5.1) не отвечал высоким требованиям к надежности процесса обработки, затруднял развитие систем и не мог обеспечить необходимые временные параметры при диалоговой обработке данных в многопользовательском режиме. Кратковременный выход из строя центральной ЭВМ приводил к роковым последствиям для системы в целом. I Рис. 5.1 - Система централизованной обработки данных Появление персональных компьютеров потребовало нового подхода к организации систем обработки данных, к созданию новых информационных технологий.

Возникло логически обоснованное требование перехода от использования отдельных ЭВМ в системах централизованной обработки данных к распределенной обработке данных.

2.1. Система распределенной обработки данных .

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

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

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

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

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

Система управления распределенной базой данных - это программная система, которая обеспечивает управление распределенной базой данных и прозрачность ее распределенности для пользователей. Распределенная база данных может объединять базы данных, поддерживающие любые модели (иерархические, сетевые, реляционные и объектно-ориентированные базы данных) в рамках единой глобальной схемы. Подобная конфигурация должна обеспечивать для всех приложений прозрачный доступ к любым данным независимо от их местоположения и формата. Основные принципы создания и функционирования распределенных баз данных: прозрачность расположения данных для пользователя (иначе говоря, для пользователя распределенная база данных должна представляться и выглядеть точно так же, как и нераспределенная); изолированность пользователей друг от друга (пользователь должен "не чувствовать", "не видеть" работу других пользователей в тот момент, когда он изменяет, обновляет, удаляет данные); синхронизация и согласованность (непротиворечивость) состояния данных в любой момент времени. Из основных вытекает ряд дополнительных принципов: локальная автономия (ни одна вычислительная установка для своего успешного функционирования не должна зависеть от любой другой установки); отсутствие центральной установки (следствие предыдущею пункта); независимость от местоположения (пользователю все равно, где физически находятся данные, он работает так, как будто они находятся на его локальной установке); непрерывность функционирования (отсутствие плановых отключений системы в целом, например для подключения новой установки или обновления версии СУБД); независимость от фрагментации данных (как от горизонтальной фрагментации, когда различные группы записей одной таблицы размещены на различных установках или в различных локальных базах, так и от вертикальной фрагментации, когда различные поля-столбцы одной таблицы размещены на разных установках); независимость от реплицирования (дублирования) данных (когда какая-либо таблица базы данных (или ее часть) физически может быть представлена несколькими копиями, расположенными на различных установках); распределенная обработка запросов (оптимизация запросов должна носить распределенный характер - сначала глобальная оптимизация, а далее локальная оптимизация на каждой из задействованных установок); распределенное управление транзакциями (в распределенной системе отдельная транзакция может требовать выполнения действий на разных установках, транзакция считается завершенной, если она успешно завершена на всех вовлеченных установках); независимость от аппаратуры (желательно, чтобы система могла функционировать на установках, включающих компьютеры разных типов); независимость от типа операционной системы (система должна функционировать вне зависимости от возможного различия ОС на различных вычислительных установках); независимость от коммуникационной сети (возможность функционирования в разных коммуникационных средах); независимость от СУБД (на разных установках могут функционировать СУБД различного типа, на практике ограничиваемые кругом СУБД, поддерживающих SQL).

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

- технологии "Клиент-сервер",

- технологии реплицирования,

- технологии объектного связывания .

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

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

Технологии и модели "Клиент-сервер" Системы на основе технологий "Клиент-сервер" исторически выросли из первых централизованных многопользовательских автоматизированных информационных систем, интенсивно развивавшихся в 70-х годах (системы mainframe), и получили, вероятно, наиболее широкое распространение в сфере информационного обеспечения крупных предприятий и корпораций. В технологиях "Клиент-сервер" отступают от одного из главных принципов создания и функционирования распределенных систем - отсутствия центральной установки. Поэтому можно выделить две основные идеи, лежащие в основе клиент-серверных технологий: общие для всех пользователей данные на одном или нескольких серверах; много пользователей (клиентов), на различных вычислительных установках, совместно (параллельно и одновременно) обрабатывающих общие данные. Иначе говоря, системы, основанные на технологиях "Клиент-сервер", распределены только в отношении пользователей, поэтому часто их не относят к "настоящим" распределенным системам, а считают отдельным классом многопользовательских систем.

Важное значение в технологиях "Клиент-сервер" имеют понятия сервера и клиента. Под сервером в широком смысле понимается любая система, процесс, компьютер, владеющие каким-либо вычислительным ресурсом (памятью, временем, производительностью процессора и т. д.). Клиентом называется также любая система, процесс, компьютер, пользователь, запрашивающие у сервера какой-либо ресурс, пользующиеся каким-либо ресурсом или обслуживаемые сервером иным способом. В своем развитии системы "Клиент-сервер" прошли несколько этапов, в ходе которых сформировались различные модели систем "Клиент-сервер". Их реализация и, следовательно, правильное понимание основаны на разделении структуры СУБД на три компонента: компонент представления, реализующий функции ввода и отображения данных, называемый иногда еще просто как интерфейс пользователя; прикладной компонент, включающий набор запросов, событий, правил, процедур и других вычислительных функций, реализующий предназначение автоматизированной информационной системы в конкретной предметной области; компонент доступа к данным, реализующий функции хранения-извлечения, физического обновления и изменения данных. Исходя из особенностей реализации и распределения в системе этих трех компонентов различают четыре модели технологий "Клиент-сервер":

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

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

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

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

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

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

Модель удаленного доступа к данным основана на учете специфики размещения и физического манипулирования данных во внешней памяти для реляционных СУБД. В RDA-модели компонент доступа к данным в СУБД полностью отделен от двух других компонентов (компонента представления и прикладного компонента) и размещается на сервере системы. Компонент доступа к данным реализуется в виде самостоятельной программной части СУБД, называемой SQL-сервером, и инсталлируется на вычислительной установке сервера системы. Функции SQL-сервера ограничиваются низкоуровневыми операциями по организации, размещению, хранению и манипулированию данными в дисковой памяти сервера. Иначе говоря, SQL-сервер играет роль машины данных. В файле (файлах) базы данных, размещаемом на сервере системы, находится также и системный каталог базы данных, в который помещаются в том числе и сведения о зарегистрированных клиентах, их полномочиях и т. п. На клиентских установках инсталлируются программные части СУБД, реализующие интерфейсные и прикладные функции. Пользователь, входя в клиентскую часть системы, регистрируется через нее на cepвере системы и начинает обработку данных. Прикладной компонент системы (библиотеки запросов, процедуры обработки данных) полностью размещается и выполняется на клиентской установке. При реализации своих функций прикладной компонент формирует необходимые SQL-инструкции, направляемые SQL-серверу. SQL-сервер, представляющий специальный программный компонент, ориентированный на интерпретацию SQL-инструкций и высокоскоростное выполнение низкоуровневых операций с данными, принимает и координирует SQL-инструкции от различных клиентов, выполняет их, проверяет и обеспечивает выполнение ограничений целостности данных и направляет клиентам результаты обработки SQL-инструкций, представляющие, как известно, наборы (таблицы) данных. Таким образом, общение клиента с сервером происходит через SQL-инструкции, а с сервера на клиентские установки передаются только результаты обработки, т. е. наборы данных, которые могут быть существенно меньше по объему всей базы данных. В результате резко уменьшается загрузка сети, а сервер приобретает активную центральную функцию. Кроме того, ядро СУБД в виде SQL-сервера обеспечивает также традиционные и важные функции по обеспечению ограничений целостности и безопасности данных при совместной работе нескольких пользователей. Другим, может быть неявным, достоинством RDA-модели является унификация интерфейса взаимодействия прикладных компонентов информационных систем с общими данными. Такое взаимодействие стандартизовано в рамках языка SQL специальным протоколом ODBC (Open Database Connectivity - открытый доступ к базам данных), играющим важную роль в обеспечении интероперабельности (многопротокольность), т.е. независимости от типа СУБД на клиентских установках в распределенных системах. Интероперабельность (многопротокольность) СУБД - способность СУБД обслуживать прикладные программы, первоначально ориентированные на разные типы СУБД. Иначе говоря, специальный компонент ядра СУБД на сервере (так называемый драйвер ODBC) способен воспринимать, обрабатывать запросы и направлять результаты их обработки на клиентские установки, функционирующие под управлением реляционных СУБД других, не "родных" типов. Такая возможность существенно повышает гибкость в создании распределенных информационных систем на базе интеграции уже существующих в какой-либо организации локальных баз данных под управлением настольных или другого типа реляционных СУБД. К недостаткам RDA-модели можно отнести высокие требования к клиентским вычислительным установкам, так как прикладные программы обработки данных, определяемые спецификой предметной области информационной системы, выполняются на них. Другим недостатком является все же существенный трафик сети, обусловленный тем, что с сервера базы данных клиентам направляются наборы (таблицы) данных, которые в определенных случаях могут занимать достаточно существенный объем.

Модель сервера базы данных (DBS-модель). Развитием PDA-модели стала модель сервера базы данных. Ее сердцевиной является механизм хранимых процедур. В отличие от RDA -модели, определенные для конкретной предметной области информационной системы события, правила и процедуры, описанные средствами языка SQL, хранятся вместе с данными на сервере системы и на нем же выполняются. Иначе говоря, прикладной компонент полностью размещается и выполняется на сервере системы. Модель сервера базы данных (DBS-модель) На клиентских установках в DBS-модели размещается только интерфейсный компонент (компонент представления), что существенно снижает требования к вычислительной установке клиента. Пользователь через интерфейс системы на клиентской установке направляет на сервер базы данных только лишь вызовы необходимых процедур, запросов и других функций по обработке данных. Все затратные операции по доступу и обработке данных выполняются на сервере и клиенту направляются лишь результаты обработки, а не наборы данных, как в RDA-модели. Этим обеспечивается существенное снижение трафика сети в DBS-модели по сравнению с RDA - моделью. Следует заметить, что на сервере системы выполняются процедуры прикладных задач одновременно всех пользователей системы. В результате резко возрастают требования к вычислительной установке сервера, причем как к объему дискового пространства и оперативной памяти, так и к быстродействию. Это основной недостаток DBS-модели. К достоинствам же DBS-модели , помимо разгрузки сети, относится и более активная роль сервера сети, размещение, хранение и выполнение на нем механизма событий, правил и процедур, возможность более адекватно и эффективно "настраивать" распределенную информационную систему на все нюансы предметной области. Также более надежно обеспечивается согласованность состояния и изменения данных и, вследствие этого, повышается надежность хранения и обработки данных, эффективно координируется коллективная работа пользователей с общими данными.

Модель сервера приложений (AS-модели). Чтобы разнести требования к вычислительным ресурсам сервера в отношении быстродействия и памяти по разным вычислительным установкам, используется модель сервера приложений. Суть AS-модели заключается в переносе прикладного компонента информационной системы на специализированный в отношении повышенных ресурсов по быстродействию дополнительный сервер системы. Как и в DBS-модели, на клиентских установках располагается только интерфейсная часть системы, т. е. компонент представления. Однако вызовы функций обработки данных направляются на сервер приложений, где эти функции совместно выполняются для всех пользователей системы. За выполнением низкоуровневых операций по доступу и изменению данных сервер приложений, как в RDA-модели, обращается к SQL-серверу, направляя ему вызовы SQL-процедур, и получая, соответственно, от него наборы данных. Как известно, последовательная совокупность операций над данными (SQL-инструкций), имеющая отдельное смысловое значение, называется транзакцией. В этом отношении сервер приложений управляет формированием транзакций, которые выполняет SQL-сервер. Поэтому программный компонент СУБД, инсталлируемый на сервере приложений, еще называют монитором обработки транзакций (Transaction Processing Monitors - TRM), или просто монитором транзакций. AS-модель, сохраняя сильные стороны DBS-модели, позволяет оптимально построить вычислительную схему информационной системы, однако, как и в случае RDA-модели, повышает трафик сети. В практических случаях используются смешанные модели, когда простейшие прикладные функции и обеспечение ограничений целостности данных поддерживаются хранимыми на сервере процедурами (DBS-модель), а более сложные функции предметной области (так называемые правила бизнеса) реализуются прикладными программами на клиентских установках (RDA-модель) или на сервере приложений (AS-модель).

2.3. Технологии объектного связывания данных .

Унификация взаимодействия прикладных компонентов с ядром информационных систем в виде SQL-серверов, наработанная для клиент-серверных систем, позволила выработать аналогичные решения и для интеграции разрозненных локальных баз данных под управлением настольных СУБД в сложные децентрализованные гетерогенные распределенные системы. Такой подход получил название объектного связывания данных. С узкой точки зрения, технология объектного связывания данных решает задачу обеспечения доступа из одной локальной базы, открытой одним пользователем, к данным в другой локальной базе (в другом файле), возможно находящейся на другой вычислительной установке, открытой и эксплуатируемой другим пользователем. Решение этой задачи основывается на поддержке современными "настольными" СУБД (MS Access, MS FoxPro, dBase и др.) технологии "объектов доступа к данным" - DАО .

При этом следует отметить, что под объектом понимается интеграция данных и методов, их обработки в одно целое (объект), на чем основываются объектно-ориентированное программирование и современные объектно-ориентированные операционные среды. Другими словами, СУБД, поддерживающие DАО, получают возможность внедрять и оперировать в локальных базах объектами доступа к данным, физически находящимся в других файлах, возможно на других вычислительных установках и под управлением других СУБД. Технически технология DАО основана на уже упоминавшемся протоколе ODBC, который принят за стандарт доступа не только к данным на SQL-серверах клиент-серверных систем, но и в качестве стандарта доступа к любым данным под управлением реляционных СУБД. Непосредственно для доступа к данным на основе протокола ODBC используются специальные программные компоненты, называемые драйверами ODBC (инициализируемые на тех установках, где находятся данные). Прежде всего, современные настольные СУБД обеспечивают возможность прямого доступа к объектам (таблицам, запросам, формам) внешних баз данных "своих" форматов. Иначе говоря, в открытую в текущем сеансе работы базу данных пользователь имеет возможность вставить специальные ссылки-объекты и оперировать с данными из другой (внешней, т. е. не открываемой специально в данном сеансе) базы данных. Объекты из внешней базы данных, вставленные в текущую базу данных, называются связанными и, как правило, имеют специальные обозначения для отличия от внутренних объектов. При этом следует подчеркнуть, что сами данные физически в файл (файлы) текущей базы данных не помещаются, а остаются в файлах своих баз данных. В системный каталог текущей базы данных помещаются все необходимые для доступа сведения о связанных объектах - внутреннее имя и внешнее, т. е. истинное имя объекта во внешней базе данных, полный путь к файлу внешней базы и г. п. Связанные объекты для пользователя ничем не отличаются от внутренних объектов. Пользователь может также открывать связанные во внешних базах таблицы данных, осуществлять поиск, изменение, удаление и добавление данных, строить запросы по таким таблицам и т. д. Связанные объекты можно интегрировать в схему внутренней базы данных, т е. устанавливать связи между внутренними и связанными таблицами. Технически оперирование связанными объектами из внешних баз данных "своего" формата мало отличается от оперирования с данными из текущей базы данных. Ядро СУБД при обращении к данным связанного объекта по системному каталогу текущей базы данных находит сведения о месте нахождения и других параметрах соответствующего файла (файлов) внешней базы данных и прозрачно (т. е. невидимо для пользователя) открывает этот файл (файлы). Далее обычным порядком организует в оперативной памяти буферизацию страниц внешнего файла данных для непосредственно доступа и манипулирования данными. Следует также заметить, что на основе возможностей многопользовательского режима работы с файлами данных современных операционных систем, с файлом внешней базы данных, если он находится на другой вычислительной установке, может в тот же момент времени работать и другой пользователь, что и обеспечивает коллективную обработку общих распределенных данных. Подобный принцип построения распределенных систем при больших объемах данных в связанных таблицах приведет к существенному увеличению трафика сети, так как по сети постоянно передаются даже не наборы данных, а страницы файлов баз данных, что может приводить к пиковым перегрузкам сети. Поэтому представленные схемы локальных баз данных со взаимными связанными объектами нуждаются в дальнейшей тщательной проработке. Не менее существенной проблемой является отсутствие надежных механизмов безопасности данных и обеспечения ограничений целостности. Совместная работа нескольких пользователей с одними и теми же данными обеспечивается только функциями операционной системы по одновременному доступу к файлу нескольких приложений. Аналогичным образом обеспечивается доступ к данным, находящимся в базах данных наиболее распространенных форматов других СУБД, таких, например, как базы данных СУБД FoxPro, dBASE. При этом доступ может обеспечиваться как непосредственно ядром СУБД, так и специальными дополнительными драйверами ISAM (Indexed Sequential Access Method), входящими, как правило, в состав комплекта СУБД. Объектное связывание ограничивается только непосредственно таблицами данных, исключая другие объекты базы данных (запросы, формы, отчеты), реализация и поддержка которых зависят от специфики конкретной СУБД. Определенной проблемой технологий объектного связывания является появление "брешей" в системах защиты данных и разграничения доступа. Вызовы драйверов ODBC для осуществления процедур доступа к данным помимо пути, имени файлов и требуемых объектов (таблиц), если соответствующие базы защищены, содержат в открытом виде пароли доступа, в результате чего может быть проанализирована и раскрыта система разграничения доступа и защиты данных.

2.4. Технологии реплицирования данных

Во многих случаях узким местом распределенных систем, построенных на основе технологий "Клиент-сервер" или объектного связывания данных, является недостаточно высокая производительность из-за необходимости передачи по сети большого количества данных. Определенную альтернативу построения быстродействующих распределенных систем предоставляют технологии реплицирования данных . Репликой называют особую копию базы данных для размещения на другом компьютере сети с целью автономной работы пользователей с одинаковыми (согласованными) данными общего пользования. Основная идея реплицирования заключается в том, что пользователи работают автономно с одинаковыми (общими) данными, растиражированными по локальным базам данных, обеспечивая с учетом отсутствия необходимости передачи и обмена данными по сети максимальную для своих вычислительных установок производительность. Тиражирование (или репликация,) - создание дублирующих копий (репликатов) объектов данных на разных узлах с целью повышения доступности и/или сокращения времени доступа к критически важным данным. Программное обеспечение СУБД для реализации такого подхода соответственно дополняется функциями тиражирования (реплицирования) баз данных, включая тиражирование как самих данных и их структуры, так и системного каталога с информацией о размещении реплик, иначе говоря, с информацией о конфигурировании построенной таким образом распределенной системы. При этом, однако, возникают две проблемы обеспечения одного из основополагающих принципов построения и функционирования распределенных систем (а именно, - непрерывности согласованного состояния данных): обеспечение согласованного состояния во всех репликах количества и значений общих данных; обеспечение согласованного состояния во всех репликах структуры данных. Обеспечение согласованного состояния общих данных, в свою очередь, основывается на реализации одного из двух принципов: принципа непрерывного размножения обновлений (любое обновление данных в любой реплике должно быть немедленно размножено); принципа отложенных обновлений (обновления реплик могут быть отложены до специальной команды или ситуации). Принцип непрерывного размножения обновлений является основополагающим при построении так называемых систем реального времени, таких, например, как системы управления воздушным движением, системы бронирования билетов пассажирского транспорта и т.п., где требуется непрерывное и точное соответствие реплик или других растиражированных данных во всех узлах и компонентах подобных распределенных систем. Реализация принципа непрерывного размножения обновлений заключается в том, что любая транзакция считается успешно завершенной, если она успешно завершена на всех репликах системы. На практике реализация этого принципа встречает существенные затруднения. В целом ряде предметных областей распределенных информационных систем режим реального времени с точки зрения непрерывности согласования данных не требуется. Такие системы автоматизируют те организационно-технологические структуры, в которых информационные процессы не столь динамичны. В этом случае обновление реплик распределенной информационной системы, если она будет построена на технологии реплицирования, требуется, скажем, только лишь один раз за каждый рабочий час, или за каждый рабочий день. Такого рода информационные системы строятся на основе принципа отложенных обновлений. Накопленные в какой-либо реплике изменения данных специальной командой пользователя направляются для обновления всех остальных реплик систем. Такая операция называется синхронизацией реплик. Решение второй проблемы согласованности данных, а именно -согласованности структуры данных, осуществляется через частичное отступление, как и в системах "Клиент-сервер", от принципа отсутствия центральной установки и основывается на технике главной реплики, т.е одна из реплик базы данных объявляется главной. При этом изменять структуру базы данных можно только в главной реплике. Эти изменения структуры данных тиражируются на основе принципа отложенных обновлений, т.е. через специальную синхронизацию реплик. Частичность отступления от принципа отсутствия центральной установки заключается в том, что в отличие от чисто централизованных систем, выход из строя главной реплики не влечет сразу гибель всей распределенной системы, так как остальные реплики продолжают функционировать автономно. Более того, на практике СУБД, поддерживающие технологию реплицирования, позволяют пользователю с определенными полномочиями (администратору системы) преобразовать любую реплику в главную и тем самым полностью восстановить работоспособность всей системы. Технологии репликации данных в тех случаях , когда не требуется обеспечивать большие потоки и интенсивность обновляемых в информационной сети данных, являются экономичным решением проблемы создания распределенных информационных систем с элементами централизации по сравнению с использованием дорогостоящих клиент-серверных систем.

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

3. СРЕДСТВА РАБОТЫ С РАСПРЕДЕЛЕННЫМИ ДАННЫМИ

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

1) Фрагментация и дублирование

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

2) Словари данных и директории

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

3) Двухфазная фиксация изменений

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

4) Обеспечение целостности

Важной характеристикой распределенной ИС является то, как она обеспечивает поддержку ссылочной целостности между данными таблицы-мастера и данными связанных с ней таблиц. Рассмотрим пример ссылочной целостности. Предположим в распределенной БД имеются три таблицы:

Таблица, содержащая информацию о детях сотрудников;

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

Таблица, содержащая информацию о темах, выполненных сотрудником.

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

3.1. РАСПРЕДЕЛЕННЫЕ БАЗЫ ДАННЫХ

Основные принципы

Распределённые базы данных (РБД) - совокупность логически взаимосвязанных баз данных, распределённых в компьютерной сети.

РБД состоит из набора узлов, связанных коммуникационной сетью, в которой:

а)каждый узел - это полноценная СУБД сама по себе;

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

Каждый узел сам по себе является системой базы данных. Любой пользователь может выполнить операции над данными на своём локальном узле точно так же, как если бы этот узел вовсе не входил в распределённую систему. Распределённую систему баз данных можно рассматривать как партнёрство между отдельными локальными СУБД на отдельных локальных узлах.

Фундаментальный принцип создания распределённых баз данных («правило 0»): Для пользователя распределённая система должна выглядеть так же, как нераспределённая система.

Фундаментальный принцип имеет следствием определённые дополнительные правила или цели. Таких целей всего двенадцать:

1.Локальная независимость. Узлы в распределённой системе должны быть независимы, или автономны. Локальная независимость означает, что все операции на узле контролируются этим узлом.

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

3. Непрерывное функционирование. Распределённые системы должны предоставлять более высокую степень надёжности и доступности.

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

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

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

7.Обработка распределённых запросов.

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

8.Управление распределёнными транзакциями.

Существует 2 главных аспекта управления транзакциями: управление восстановлением и управление параллельностью обработки. Что касается управления восстановлением, то чтобы обеспечить атомарность транзакции в распределённой среде, система должна гарантировать, что все множество относящихся к данной транзакции агентов (агент - процесс, который выполняется для данной транзакции на отдельном узле) или зафиксировало свои результаты, или выполнило откат. Что касается управления параллельностью, то оно в большинстве распределённых систем базируется на механизме блокирования, точно так, как и в нераспределённых системах.

9.Аппаратная независимость .

Желательно иметь возможность запускать одну и ту же СУБД на различных аппаратных платформах и, более того, добиться, чтобы различные машины участвовали в работе распределённой системы как равноправные партнёры.

10.Независимость от операционной системы.

Возможность функционирования СУБД под различными операционными системами.

11.Независимость от сети.

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

12.Независимость от типа СУБД.

Необходимо, чтобы экземпляры СУБД на различных узлах все вместе поддерживали один и тот же интерфейс, и совсем необязательно, чтобы это были копии одной и той же версии СУБД .

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

3.2. Типы распределенных БД

Возможны однородные и неоднородные распределенные базы данных. В однородном случае каждая локальная база данных управляется одной и той же СУБД. В неоднородной системе локальные базы данных могут относиться даже к разным моделям данных.

Помимо вышеназванных типов распределенных баз данных можно выделить следующие:

1) Распределённые Базы Данных

2) Мультибазы данных с глобальной схемой. Система Мультибаз данных - это распределённая система, которая служит внешним интерфейсом для доступа ко множеству локальных СУБД или структурируется, как глобальный уровень над локальными СУБД.

3) Федеративные базы данных. В отличие от мультибаз не располагают глобальной схемой, к которой обращаются все приложения. Вместо этого поддерживается локальная схема импорта-экспорта данных. На каждом узле поддерживается частичная глобальная схема, описывающая информацию тех удалённых источников, данные с которых необходимы для функционирования.

4) Мультибазы с общим языком доступа - распределённые среды управления с технологией "клиент-сервер"

5) Интероперабельные системы - это системы, в которых сами приложения, выполняемые в среде той или иной СУБД, ответственны за интерфейсы между различными средами приложения, независимо от того, являются они однородными или неоднородными. Системы ориентированы главным образом на обмен данными. Дальнейшее развитие этих систем является объектно-ориентированные БД .

3.3. Назначение и принцип работы распределенной БД

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

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

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

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

Рис.1.

Принцип работы БД

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

Любой узел распределенной базы данных (УРБД) "видит" только узлы, напрямую связанные с ним. С такими узлами он и осуществляет обмен данными.

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

Внесение изменений в конфигурацию информационной базы возможно только в одном (корневом) узле УРБД, причем изменения конфигурации передаются от главного узла к подчиненным. На схеме направления, по которым передаются изменения конфигурации, обозначены красными стрелочками .

Теперь рассмотрим, каким образом осуществляется обмен данными между узлами УРБД. При внесении изменений в данные информационной базы программа запоминает, что было изменено и каким образом. Для любого узла раз в определенный промежуток времени запускается обработка (вручную либо автоматически), которая формирует специальные сообщения, в каких в формате XML отображена информация о том, были ли изменения (если были, то какие), и отправляет их в определенные каталоги по локальной сети либо по FTP, или же на определенные адреса электронной почты. Также обработка проверяет, появились ли в этом каталоге либо электронном ящике аналогичные сообщения от других узлов, связанных напрямую с этим узлом, адресованные ему. Если появились, то загрузит сообщения, а следовательно и изменения в данных. Инфраструктура сообщений поддерживает нумерацию сообщений, и позволяет получать подтверждения от узла-получателя о приеме сообщений. Такое подтверждение содержится в каждом сообщении, приходящем от узла-получателя в виде номера последнего принятого сообщения.

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

При изменении конфигурации базы информация об изменениях распространяется в сообщениях обмена вместе с изменениями данных.

Обмен данными между базами производится следующим образом:

1) В базе-источнике система определяет список изменённых объектов за время, прошедшее с предыдущего сеанса выгрузки данных.

2) По данному списку система формирует XML-пакет, который передается в базу-приемник.

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

3) XML-пакет передается в базу-приемник.

В базе-приемнике XML-пакет разворачивается и изменения, содержащиеся в нем, вносятся в базу.

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

4. ПРИМЕРЫ РАСПРЕДЕЛЕННЫХ СИСТЕМ

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

Среди многочисленных прототипов и научно-исследовательских систем следует упомянуть систему SDD-1 , созданную в конце 70-х -- начале 80-х годов в научно-исследовательском отделении фирмы Computer Corporation of America; систему R* , которая является распределенной версией системы System R и создана в начале 80-х годов фирмой IBM; а также систему Distributed INGRES , которая является распределенной версией системы INGRES и создана также в начале 80-х годов в Калифорнийском университете в Беркли.

Что касается коммерческих продуктов, то в настоящее время в большинстве реляционных систем предусмотрены разные виды поддержки использования распределенных баз данных с разной степенью функциональности. Среди таких систем наиболее известны система INGRES/STAR отделения Ingres Division фирмы The ASK Group Inc., система ORACLE фирмы Oracle Corporation, а также модуль распределенной работы системы DB2 фирмы IBM.

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

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

- Informix On-Line фирмы Informix Software;

- Ingres Intelligent Database фирмы Ingres Corp;

- Oracle (version 7) фирмы Oracle Corp;

- Sybase System 10 фирмы Sybase Inc.

Хотя ни одна из этих 4 СУБД полностью не реализует все функции распределенной СУБД, однако каждая из них реализует или в скором времени будет реализовывать поддержку работы с распределенной БД.

Наиболее полно функции распределенной СУБД реализованы в СУБД Ingres и Oracle . Коротко рассмотрим возможности этих пакетов.

СУБД Ingres работает на множестве UNIX-платформ, на платформах DEC VMS, Hewlett-Packard MPE, DOS, Microsoft Windows 3.1, OS/2, Macintosh. Она также работает со многими сетевыми протоколами, включая Open System Interconnection Transport Class 4. Ingres имеет средства для доступа к данным СУБД DB2, Rdb, Allbase. Основные функции распределенной СУБД обеспечиваются дополнительной компонентой Ingres/Star. Она поддерживает оптимизацию распределенных запросов, позволяет читать и обновлять в рамках одной транзакции данные разных узлов, обеспечивает возможность удалять записи одновременно в нескольких узлах.

СУБД Informix-Online разработана для среды UNIX, но может также работать под Novell. Informix-Online имеет оптимизатор запросов и реализует те же функции работы с распределенной БД, что и Ingres, однако у Informix более жесткие требования к ресурсам компьютера, в частности ему требуется больше оперативной памяти.

СУБД System 10 фирмы Sybase в настоящее время находится в состоянии разработки. Она должна работать на UNIX-платформах, на платформах OS/2, Window NT, NetWare. System 10 будет работать с несколькими сетевыми протоколами и поддерживать связь с СУБД DB2, Oracle 7, Informix-Online, Rdb. System 10 будет иметь оптимизатор распределенных запросов, она позволит читать и обновлять данные нескольких узлов. Функции работы с распределенной БД будут реализованы с помощью дополнительной компоненты Replication Server.

В 7 версии СУБД Oracle реализовано множество функций для работы с распределенной БД. Среди них следует выделить оптимизатор распределенных запросов и средство чтения и обновления данных нескольких узлов в рамках одной транзакции. Oracle v 7 работает на более чем 80 вычислительных платформах, поддерживает большинство существующих коммерческих сетевых протоколов и может обмениваться данными с СУБД DB2, SQL/DS, Tandem Computers, NonStop SQL, Rdb, HP TurboImage. Разрабатываются шлюзы еще к 18 СУБД.

В СУБД Oracle словарь данных хранится также, как остальные данные, поэтому его таблицы могут быть распределены по узлам сети. Все операции с распределенной БД "прозрачны" для пользователей и разработчиков. В области обновления распределенной БД Oracle обогнал всех своих конкурентов. Пользователи Oracle могут с помощью компоненты SQL*Net "прозрачно" работать с данными (не обязательно данными Oracle), размещающимися на различных типах компьютеров и в различных узлах сети. Высокопроизводительное средство "прозрачного" обновления распределенной БД реализовано на основе оригинально выполненного двухфазного протокола фиксации изменений.

Все 4 рассмотренные СУБД поддерживают локальную автономию узлов . Это означает, что администратор БД может рассматривать локальную БД конкретного узла как самостоятельную БД. Все СУБД поддерживают ANSI стандарт языка SQL - ANSI SQL-89 и расширение этого стандарта. Запросы к БД формулируются на языке SQL. Дополнительно к непроцедурному языку SQL Oracle поддерживает свой собственный процедурный язык PL/SQL, а Sybase поддерживает свой язык Transact-SQL.

Все 4 СУБД обеспечивают "прозрачный" механизм запроса, обновления и просмотра данных, размещенных в нескольких узлах. Уже отмечалось, что все 4 СУБД могут обмениваться данными с другими СУБД. Однако только двухфазный протокол фиксации Oracle 7 позволяет выполнять распределенные обновления данных в разных СУБД. Проблема заключается в том, что двухфазные протоколы фиксации изменений разных СУБД плохо совместимы между собой .

Все 4 пакета обеспечивают выполнение локальной и глобальной блокировки данных. Однако они реализуют эту блокировку на различных уровнях. Так Oracle по умолчанию реализует блокировку на уровне записи, а остальные СУБД - на уровне страницы или таблицы. Механизм блокировок позволяет предотвратить изменение данных, которые в это время контролируются другими пользователями. Тем самым обеспечивается целостность и непротиворечивость данных. Блокировка на уровне записи позволяет одновременно обновлять соседние записи одной и той же таблицы. Это резко снижает время ожидания, ускоряет обработку данных и уменьшает вероятность возникновения взаимоблокировок.

Все фирмы-разработчики распределенных СУБД намерены в будущем поддерживать архитектуру распределенной базы данных фирмы IBM (Distributed Relational Database Architecture). Правда хотя IBM уже давно объявила о начале работ по реализации этой архитектуры, она до сих пор не закончена. Это очевидно связано с очень высокой сложностью реализации объявленной архитектуры.

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

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

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

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

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

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

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

Библиографический список

1. Распределенные базы данных. Википедия.

8. Коннолли, Т., Бегг, К. Базы данных. Проектирование, реализация и сопровождение. Теория и практика. 3-е издание.: Пер. с англ. - М.: Издательский дом «Вильяме», 2003. – 433 с.

ВВЕДЕНИЕ 4

1.ПОНЯТИЕ РАСПРЕДЕЛЕННЫХ ИС 6

1.1. Предпосылки создания распределенных ИС 6

1.2. Понятие распределенных информационных систем 8

1.3. Средства работы с распределенными данными 11

2. РАСПРЕДЕЛЕННЫЕ БАЗЫ ДАННЫХ 13

2.1. Основные принципы 13

2.2 Типы распределенных БД 15

2.3. Назначение и принцип работы распределенной БД 16

3. ПРИМЕРЫ РАСПРЕДЕЛЕННЫХ СИСТЕМ 21

ЗАКЛЮЧЕНИЕ 25

ЛИТЕРАТУРА 26


ВВЕДЕНИЕ

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

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

В данной работе рассмотрены основные сведения о распределенной информационной системе: описаны предпосылки ее развития, средства работы с данными, введено понятие распределенной базы данных, а также ее типов и основных принципов. В третьей главе представлены примеры распределенных информационных систем, такие как: - Informix On-Line фирмы Informix Software;- Ingres Intelligent Database фирмы Ingres Corp;- Oracle (version 7) фирмы Oracle Corp;- Sybase System 10 фирмы Sybase Inc.

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

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


1.ПОНЯТИЕ РАСПРЕДЕЛЕННЫХ ИС

1.1. Предпосылки создания распределенных ИС

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

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

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

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

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

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


1.2. Понятие распределенных информационных систем

Обычно, распределенной считают такую систему, в которой функционирует более одного сервера БД. Это применяется для уменьшения нагрузки на сервер и обеспечения работы территориально удаленных подразделений. Различная сложность создания, модификации, сопровождения, интеграции с другими системами позволяют разделить ИС на классы малых, средних и крупных распределенных систем. Малые ИС имеют небольшой жизненный цикл (ЖЦ), ориентацию на массовое использование, невысокую цену, невозможность модификации без участия разработчиков, использующие в основном настольные системы управления базами данных (СУБД) , однородное аппаратно-программное обеспечение, не имеющие средств обеспечения безопасности. Крупные корпоративные ИС, системы федерального уровня и другие имеют длительный жизненный цикл, миграцию унаследованных систем, разнообразие аппаратно-программного обеспечения, масштабность и сложность решаемых задач, пересечение множества предметных областей, аналитическую обработку данных, территориальную распределенность компонент .

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

Данные из разнородных систем обычно объединяются в логические группы, к которой и адресуются запросы. Абстрактная система запросов предполагает, что система оперирует не конкретным синтаксисом запросов, а его логической сутью на основе абстрактных атрибутов.
При построении распределенных ИС, как правило, используются две базовые архитектуры: Клиент/сервер и Internet Intranet.
Корпоративные ИС, построенные по архитектуре Клиент/сервер, предоставляют клиентам широкий спектр приложений и инструментов разработки, которые ориентированы на максимальное использование вычислительных возможностей клиентских рабочих мест. Ресурсы сервера используются в основном для хранения и обмена документами, а также для выхода во внешнюю среду. Данная архитектура позволяет лучше защитить серверную часть приложений, при этом, предоставляя возможность приложениям либо непосредственно адресоваться к другим серверным приложениям, либо маршрутизировать запросы к ним. Однако, частые обращения клиента к серверу снижают производительность работы сети. Приходится решать вопросы безопасной работы в сети, так как приложения и данные распределены между различными клиентами. Распределенный характер построения системы обусловливает сложность ее настройки и сопровождения

В основе ИС на базе Internet Intranet лежит принцип "открытой архитектуры". ПО ИС реализуется в виде аплетов или сервлетов (программ на языке JAVA) или в виде cgi модулей (программ на Perl или С). ИС данной архитектуры включает Web-yinh\, реализованные при помощи технологий CORBA Enterprise JavaBeans, ActiveX 1X"ОМ, многоуровневые приложения на основе Java и XML, .Net-концепция с XML, в которой обмен между различными серверами (хранилищами данных, бизнес-приложениями, серверами для мобильных клиентов и другое) производится при помощи нейтрального к любой архитектуре XML.

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

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

Обмен данными осуществляется по правилам, также определенным централизованно.

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

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


1.3. Средства работы с распределенными данными

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

1) Фрагментация и дублирование

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

2) Словари данных и директории

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

3) Двухфазная фиксация изменений

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

4) Обеспечение целостности

Важной характеристикой распределенной ИС является то, как она обеспечивает поддержку ссылочной целостности между данными таблицы-мастера и данными связанных с ней таблиц. Рассмотрим пример ссылочной целостности. Предположим в распределенной БД имеются три таблицы:

Таблица, содержащая информацию о детях сотрудников;

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

Таблица, содержащая информацию о темах, выполненных сотрудником.

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


2. РАСПРЕДЕЛЕННЫЕ БАЗЫ ДАННЫХ

2.1. Основные принципы

Распределённые базы данных (РБД) - совокупность логически взаимосвязанных баз данных, распределённых в компьютерной сети.

РБД состоит из набора узлов, связанных коммуникационной сетью, в которой:

а)каждый узел - это полноценная СУБД сама по себе;

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

Каждый узел сам по себе является системой базы данных. Любой пользователь может выполнить операции над данными на своём локальном узле точно так же, как если бы этот узел вовсе не входил в распределённую систему. Распределённую систему баз данных можно рассматривать как партнёрство между отдельными локальными СУБД на отдельных локальных узлах.

Фундаментальный принцип создания распределённых баз данных («правило 0»): Для пользователя распределённая система должна выглядеть так же, как нераспределённая система.

Фундаментальный принцип имеет следствием определённые дополнительные правила или цели. Таких целей всего двенадцать:

1.Локальная независимость. Узлы в распределённой системе должны быть независимы, или автономны. Локальная независимость означает, что все операции на узле контролируются этим узлом.

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

3.Непрерывное функционирование. Распределённые системы должны предоставлять более высокую степень надёжности и доступности.

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

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

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

7.Обработка распределённых запросов. Суть в том, что для запроса может потребоваться обращение к нескольким узлам. В такой системе может быть много возможных способов пересылки данных, позволяющих выполнить рассматриваемый запрос.

8.Управление распределёнными транзакциями. Существует 2 главных аспекта управления транзакциями: управление восстановлением и управление параллельностью обработки. Что касается управления восстановлением, то чтобы обеспечить атомарность транзакции в распределённой среде, система должна гарантировать, что все множество относящихся к данной транзакции агентов (агент - процесс, который выполняется для данной транзакции на отдельном узле) или зафиксировало свои результаты, или выполнило откат. Что касается управления параллельностью, то оно в большинстве распределённых систем базируется на механизме блокирования, точно так, как и в нераспределённых системах.

9.Аппаратная независимость. Желательно иметь возможность запускать одну и ту же СУБД на различных аппаратных платформах и, более того, добиться, чтобы различные машины участвовали в работе распределённой системы как равноправные партнёры.

10.Независимость от операционной системы. Возможность функционирования СУБД под различными операционными системами.

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

12.Независимость от типа СУБД. Необходимо, чтобы экземпляры СУБД на различных узлах все вместе поддерживали один и тот же интерфейс, и совсем необязательно, чтобы это были копии одной и той же версии СУБД .


2.2. Типы распределенных БД

Возможны однородные и неоднородные распределенные базы данных. В однородном случае каждая локальная база данных управляется одной и той же СУБД. В неоднородной системе локальные базы данных могут относиться даже к разным моделям данных.

Помимо вышеназванных типов распределенных баз данных можно выделить следующие:

1) Распределённые Базы Данных

2) Мультибазы данных с глобальной схемой. Система Мультибаз данных - это распределённая система, которая служит внешним интерфейсом для доступа ко множеству локальных СУБД или структурируется, как глобальный уровень над локальными СУБД.

3) Федеративные базы данных. В отличие от мультибаз не располагают глобальной схемой, к которой обращаются все приложения. Вместо этого поддерживается локальная схема импорта-экспорта данных. На каждом узле поддерживается частичная глобальная схема, описывающая информацию тех удалённых источников, данные с которых необходимы для функционирования.

4) Мультибазы с общим языком доступа - распределённые среды управления с технологией "клиент-сервер"

5) Интероперабельные системы - это системы, в которых сами приложения, выполняемые в среде той или иной СУБД, ответственны за интерфейсы между различными средами приложения, независимо от того, являются они однородными или неоднородными. Системы ориентированы главным образом на обмен данными. Дальнейшее развитие этих систем является объектно-ориентированные БД .


2.3. Назначение и принцип работы распределенной БД

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

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

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

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

Рис.2.1. Принцип работы БД

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

Любой узел распределенной базы данных (УРБД) "видит" только узлы, напрямую связанные с ним. С такими узлами он и осуществляет обмен данными.

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

Внесение изменений в конфигурацию информационной базы возможно только в одном (корневом) узле УРБД, причем изменения конфигурации передаются от главного узла к подчиненным. На схеме направления, по которым передаются изменения конфигурации, обозначены красными стрелочками .

Теперь рассмотрим, каким образом осуществляется обмен данными между узлами УРБД. При внесении изменений в данные информационной базы программа запоминает, что было изменено и каким образом. Для любого узла раз в определенный промежуток времени запускается обработка (вручную либо автоматически), которая формирует специальные сообщения, в каких в формате XML отображена информация о том, были ли изменения (если были, то какие), и отправляет их в определенные каталоги по локальной сети либо по FTP, или же на определенные адреса электронной почты. Также обработка проверяет, появились ли в этом каталоге либо электронном ящике аналогичные сообщения от других узлов, связанных напрямую с этим узлом, адресованные ему. Если появились, то загрузит сообщения, а следовательно и изменения в данных. Инфраструктура сообщений поддерживает нумерацию сообщений, и позволяет получать подтверждения от узла-получателя о приеме сообщений. Такое подтверждение содержится в каждом сообщении, приходящем от узла-получателя в виде номера последнего принятого сообщения.

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

При изменении конфигурации базы информация об изменениях распространяется в сообщениях обмена вместе с изменениями данных.

Обмен данными между базами производится следующим образом:

1)В базе-источнике система определяет список изменённых объектов за время, прошедшее с предыдущего сеанса выгрузки данных.

2)По данному списку система формирует XML-пакет, который передается в базу-приемник.

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

3) XML-пакет передается в базу-приемник.

В базе-приемнике XML-пакет разворачивается и изменения, содержащиеся в нем, вносятся в базу.

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


3. ПРИМЕРЫ РАСПРЕДЕЛЕННЫХ СИСТЕМ

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

Среди многочисленных прототипов и научно-исследовательских систем следует упомянуть систему SDD-1 , созданную в конце 70-х -- начале 80-х годов в научно-исследовательском отделении фирмы Computer Corporation of America; систему R* , которая является распределенной версией системы System R и создана в начале 80-х годов фирмой IBM; а также систему Distributed INGRES , которая является распределенной версией системы INGRES и создана также в начале 80-х годов в Калифорнийском университете в Беркли.

Что касается коммерческих продуктов, то в настоящее время в большинстве реляционных систем предусмотрены разные виды поддержки использования распределенных баз данных с разной степенью функциональности. Среди таких систем наиболее известны система INGRES/STAR отделения Ingres Division фирмы The ASK Group Inc., система ORACLE фирмы Oracle Corporation, а также модуль распределенной работы системы DB2 фирмы IBM.

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

В работе дано следующее определение распределенной БД: "Распределенная БД - это множество физических баз данных, которые выглядят для пользователя как одна логическая БД". К сожалению, на сегодняшний день ни одна СУБД полностью не реализует это определение. Наиболее близко к его реализации подошли следующие СУБД:

Informix On-Line фирмы Informix Software;

Ingres Intelligent Database фирмы Ingres Corp;

Oracle (version 7) фирмы Oracle Corp;

Sybase System 10 фирмы Sybase Inc.

Хотя ни одна из этих 4 СУБД полностью не реализует все функции распределенной СУБД, однако каждая из них реализует или в скором времени будет реализовывать поддержку работы с распределенной БД.

Наиболее полно функции распределенной СУБД реализованы в СУБД Ingres и Oracle. Коротко рассмотрим возможности этих пакетов.

СУБД Ingres работает на множестве UNIX-платформ, на платформах DEC VMS, Hewlett-Packard MPE, DOS, Microsoft Windows 3.1, OS/2, Macintosh. Она также работает со многими сетевыми протоколами, включая Open System Interconnection Transport Class 4. Ingres имеет средства для доступа к данным СУБД DB2, Rdb, Allbase. Основные функции распределенной СУБД обеспечиваются дополнительной компонентой Ingres/Star. Она поддерживает оптимизацию распределенных запросов, позволяет читать и обновлять в рамках одной транзакции данные разных узлов, обеспечивает возможность удалять записи одновременно в нескольких узлах.

СУБД Informix-Online разработана для среды UNIX, но может также работать под Novell. Informix-Online имеет оптимизатор запросов и реализует те же функции работы с распределенной БД, что и Ingres, однако у Informix более жесткие требования к ресурсам компьютера, в частности ему требуется больше оперативной памяти.

СУБД System 10 фирмы Sybase в настоящее время находится в состоянии разработки. Она должна работать на UNIX-платформах, на платформах OS/2, Window NT, NetWare. System 10 будет работать с несколькими сетевыми протоколами и поддерживать связь с СУБД DB2, Oracle 7, Informix-Online, Rdb. System 10 будет иметь оптимизатор распределенных запросов, она позволит читать и обновлять данные нескольких узлов. Функции работы с распределенной БД будут реализованы с помощью дополнительной компоненты Replication Server.

В 7 версии СУБД Oracle реализовано множество функций для работы с распределенной БД. Среди них следует выделить оптимизатор распределенных запросов и средство чтения и обновления данных нескольких узлов в рамках одной транзакции. Oracle v 7 работает на более чем 80 вычислительных платформах, поддерживает большинство существующих коммерческих сетевых протоколов и может обмениваться данными с СУБД DB2, SQL/DS, Tandem Computers, NonStop SQL, Rdb, HP TurboImage. Разрабатываются шлюзы еще к 18 СУБД.

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

Все 4 рассмотренные СУБД поддерживают локальную автономию узлов. Это означает, что администратор БД может рассматривать локальную БД конкретного узла как самостоятельную БД. Все СУБД поддерживают ANSI стандарт языка SQL - ANSI SQL-89 и расширение этого стандарта. Запросы к БД формулируются на языке SQL. Дополнительно к непроцедурному языку SQL Oracle поддерживает свой собственный процедурный язык PL/SQL, а Sybase поддерживает свой язык Transact-SQL.

Все 4 СУБД обеспечивают "прозрачный" механизм запроса, обновления и просмотра данных, размещенных в нескольких узлах. Уже отмечалось, что все 4 СУБД могут обмениваться данными с другими СУБД. Однако только двухфазный протокол фиксации Oracle 7 позволяет выполнять распределенные обновления данных в разных СУБД. Проблема заключается в том, что двухфазные протоколы фиксации изменений разных СУБД плохо совместимы между собой .

Все 4 пакета обеспечивают выполнение локальной и глобальной блокировки данных. Однако они реализуют эту блокировку на различных уровнях. Так Oracle по умолчанию реализует блокировку на уровне записи, а остальные СУБД - на уровне страницы или таблицы. Механизм блокировок позволяет предотвратить изменение данных, которые в это время контролируются другими пользователями. Тем самым обеспечивается целостность и непротиворечивость данных. Блокировка на уровне записи позволяет одновременно обновлять соседние записи одной и той же таблицы. Это резко снижает время ожидания, ускоряет обработку данных и уменьшает вероятность возникновения взаимоблокировок.

Все фирмы-разработчики распределенных СУБД намерены в будущем поддерживать архитектуру распределенной базы данных фирмы IBM (Distributed Relational Database Architecture). Правда хотя IBM уже давно объявила о начале работ по реализации этой архитектуры, она до сих пор не закончена. Это очевидно связано с очень высокой сложностью реализации объявленной архитектуры.


ЗАКЛЮЧЕНИЕ

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

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

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

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

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

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

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


ЛИТЕРАТУРА

1. Как организовать распределенную информационную базу?

http://www.intelis-it.ru/services/automation_act/information-systems.html

2. Распределенные базы данных. Википедия.

http://ru.wikipedia.org/wiki/распереленные_бд

3. Бойко В.В., Савинков В.М. Проектирование баз данных информационных систем. – 2-е изд. – М.: Финансы и статистика, 1989. – 350 с.

4. Дейт К. Дж. Введение в системы баз данных.: Пер. с англ. – 6-е изд. – Киев: Диалектика, 1998. – 784 с.

5. Распределенные информационные системы и базы данных. Глеб Ладыженский

http://articles.org.ru/cfaq/index.php?qid=1306&catid=54

6. . Глобально распределенные информационные системы

http://www.ci.ru/inform4_97/astr1.htm

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

http://www.integro.ru/projects/gis/quest_1.htm

8. Коннолли, Т., Бегг, К. Базы данных. Проектирование, реализация и сопровождение. Теория и практика. 3-е издание.: Пер. с англ. - М.: Издательский дом «Вильяме», 2003. – 433 с.

http://www.lcard.ru/~nail/database/osbd/glava_~3.htm

10. Технологии распределенных баз данных

http://rema.44.ru//resurs/study/dblab/dblab.html.

СПбГУТ им. проф. -Бруевича

РАСПРЕДЕЛЕННЫЕ ИНФОРМАЦИОННЫЕ

СИСТЕМЫ

(ЭЛЕКТРОННЫЙ УЧЕБНИК)

Санкт-Петербург, 2008

Предисловие

Раздел 1. Информационные сети и системы

1.1. Основные понятия теории информационных систем и сетей

1.2. Концептуальная модель информационной сети

1.3. Организация процессов взаимосвязи в информационных сетях

1.4. Принципы и функции организации взаимосвязи открытых систем

1.5. Локальные информационно-вычислительные сети (ЛИВС)

1.5.1. Общие сведения

1.5.2. Стандарты локальных сетей

1.5.3. Архитектура локальных сетей типа Ethernet

1.5.4. Пример формата кадра Ethernet

1.6. Технологии и архитектура современных беспроводных сетей

1.6.1. Классификация беспроводных сетей передачи информации

1.6.2. Персональные беспроводные сети (технологии Home RF, Bluetooth, ZigBee)

1.6.3. Беспроводные локальные сети (стандарты IEEE 802.11 и DECT)

1.6.4. Беспроводные городские сети (технология WiMAX)

1.6.5. Беспроводные глобальные сети WWAN (технологии IEEE 802.20, GSM, CDMA, 3G)

1.7. Магистральные сети передачи данных

1.7.1. Сети с коммутацией пакетов Х.25

1.7.2. Сети Frame Relay (Сети с ретрансляцией кадров)

1.7.3. Сети АТМ

1.7.4. Технология TCP/IP

1.7.5. Технология Ethernet в магистральных сетях передачи данных

Раздел 2. Протоколы физического и канального уровней в распределенных информационных системах

2.1. Физический уровень

2.1.1. Стандарты протоколов физического уровня между ООД и АКД

2.1.2. Сопряжение АКД с каналом связи

2.2. Протоколы канального уровня

2.2.1. Байт-ориентированные протоколы

2.2.2. Бит-ориентированные протоколы

2.2.3. Передача с установлением соединения и без установления соединения

2.2.4. Методы повышения достоверности на канальном уровне

2.2.5. Компрессия данных

Раздел 3. Модемы для распределенных информационных систем

3.1. Модемы для ТФОП

3.1.1. Общие сведения

3.1.2. Элементы модема для ТФОП

3.1.3. Методы скремблирования

3.1.4. Способы модуляции

3.1.5. Протоколы модуляции серии V

3.2. Цифровые модемы

3.2.1. Устройство цифрового модема

3.2.2. Проблемы передачи по физическим линиям

3.2.3. Модемы для физических линий

3.3. xDSL-модемы

3.4. Радиомодемы

3.4.1. Общие сведения

3.4.2. Радиомодемы ISM-диапазонов

3.4.3. Пакетные радиомодемы

3.4.4. Формат кадров АХ.25

3.4.5. Физическая реализация радиомодемов

3.5. Модемы для волоконно-оптических сетей (ВОЛС)

3.6. Принципы построения свёрточных кодов

3.6.1. Методы представления сверточных кодов

3.6.2. Алгоритм декодирования Витерби

Раздел 4. Документальная электросвязь

4.1. Общие положения по сетям и службам передачи данных

4.2. Услуги служб передачи данных. Качество предоставляемых услуг ПД

4.2.1. Передача данных по сети ТФОП

4.2.2. Передача данных по некоммутируемым каналам ТЧ

4.2.3. Передача данных по цифровым каналам цифровых сетей с интеграцией служб (N-ISDN, B-ISDN)

4.2.4. Показатели качества обслуживания в службах ПД с коммутацией пакетов по протоколу Х.25

4.2.5. Показатели качества обслуживания в службах ПД с ретрансляцией кадров по протоколу Х.36

4.2.6. Показатели качества обслуживания в службах ПД с коммутацией пакетов по протоколам, относящимся к семейству IP

4.2.7. Показатели качества обслуживания в службах ПД с некоммутируемыми цифровыми каналами

4.2.8. Некоторые показатели качества ПД по неспециализированным сетям данных

4.3. Телематические службы и услуги. Качество предоставляемых телематических услуг и требования к ним

4.3.1. Факсимильные службы

4.3.2. Служба обмена электронными сообщениями

4.3.3. Службы телеконференций

4.3.4. Информационные службы

Раздел 5. Интернет технологии

5.1. Общие сведения об Интернет

5.1.1. Обобщённая структура сети Интернет

5.1.2. Стек протоколов TCP/IP

5.1.3. Организации, отвечающие за развитие Интернет и стандартизацию средств Интернет

5.1.4. Сравнительная оценка и сфера применения сетевых архитектур ISO и TCP/IP

5.2. Прикладной уровень. Примеры служб и протоколов

5.2.1. Служба FTP. Протокол FTP

5.2.2. Служба WWW. Протокол HTTP

5.2.3. Структура и протоколы электронной почты в Интернет

5. 3. Транспортный уровень. Протоколы TCP и UDP

5.4. Адресация в IP-сетях

5.4.1. Типы адресов стека TCP/IP

5.4.2. Классы IP-адресов

5.5. Межсетевой уровень и протокол IP (Internet Protocol)

5.6. Принципы и алгоритмы маршрутизации в Интернет

5.6.1. Проблема маршрутизации в сети Интенет

5.6.2. Внутренние протоколы маршрутизации

5.6.3. Внешние протоколы маршрутизации

Раздел 6. Информационные ресурсы распределенных

информационных систем

6.1. Базы данных

6.1.1. Общие понятия

6.1.3. Уровни представления данных

6.1.4. Модели данных

6.3. Системы распределенных вычислений

6.4. Архитектура центра обработки данных

7.1. Базовая модель и метод «клиент-сервер»

7.2. Модификации модели и метода «клиент-сервер»

7.2.1. Модель и метод доступа к удаленным данным

7.2.2. Модель и метод сервера базы данных

7.2.3. Модель и метод сервера приложений

7.3. Программы-агенты и модель «клиент-агент-сервер»

7.4. Особенности управления в распределенных информационных

системах

Предисловие

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

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

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

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

В четвертом разделе раскрыты требования руководящих документов «Сети и службы передачи данных» и «Телематические службы». Рассмотрены услуги служб передачи данных и телематических служб, а также качество предоставляемых ими услуг.

В пятом разделе рассмотрены принципы построения глобальной распределенной инфокоммуникационной системы, которая реализована на базе сети Интернет. Описаны некоторые службы и протоколы прикладного уровня. Раскрыта организация функционирования протоколов транспортного и сетьвого уровней. Нашли отражение вопросы маршрутизации в сети Интернет.

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

Седьмой раздел посвящена моделям и методам управления в информационных системах.

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

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


Структура курса. Лекции Распределенные системы: задачи, терминология принципы функционирования. Архитектура клиент-сервер. Типовые задачи. Области применения. Пример информационной системы (типичное приложение в архитектуре клиент- сервер). Многозвенная архитектура. Области применения. Краткий обзор современных технологий. XML, CGI/JSP, Servlets, DCOM, CORBA, RMI (.NET). Выделение слоев в многозвенной архитектуре (типичная архитектура). «Тонкие» и «Толстые» клиенты. Сервер приложения (Application server). Сервер базы данных (Database Server). Миграция объектов (вопросы распределения вычислительной нагрузки). Развертывание системы. Основы CORBA. CORBA и ООП. Язык определения интерфейсов IDL. Отображение IDL на C++. Отображение IDL на Java. ОRB. Динамическое взаимодействие клиентов и серверов. Сервисы именования CORBA. Пример информационной системы, выполненной в многозвенной архитектуре.


Структура курса. Практика Лабораторная работа 1 Система обслуживания дисконтных карт Необходимый инструментарий: сервер - Oracle (MSSQL Server 2000 sp3), клиент – Java (jdk, VisualCafe, MS J++,...) Лабораторная работа 2 WMS (Warehouse Management System) Тонкий клиент (Web, HandHeld, сотовый телефон, …). Сервер приложения. Взаимодействие клиент – сервер приложений. Сервер бизнес- логики. Вопросы распределения вычислительной нагрузки. Обеспечение отказоустойчивости. Необходимый инструментарий: сервер - Oracle (MSSQL Server 2000 sp3), Приложение/бизнес-логика – Java (jdk, VisualCafe, MS J++,...)










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


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


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


Принципы разделения Функциональное разделение: узлы выполняют различные задачи –Клиент / сервер –Хост / Терминал –Сборка данных/ обработка данных Решение - создание разделяемых сервисов Естественное разделение (определяемое задачей) –Система обслуживания сети супермаркетов –Сеть для поддержки коллективной работы


Принципы разделения Распределение нагрузки/балансировка: назначение задачи на процессора так, чтобы оптимизировать общую загрузку системы. Усиление мощности: различные узлы работают над одной задачей –Распределенные системы содержащие набор микропроцессоров, по мощности могут приближаться к суперкомпьютеру –10000 CPU, каждый 50 MIPS, вместе MIPS - > команда выполняется за nsec -> свет проходит 0.6 mm -> любой существующий чип - больше! команда выполняется за 0.002 nsec -> свет проходит 0.6 mm -> любой существующий чип - больше!">


Принципы разделения Физическое разделение: система строится в предположении, что узлы физически разделены (требования к надежности, устойчивости к сбоям). Экономические: набор дешевых чипов может обеспечить лучшие показатели отношения цена/производительность, чем мэйнфрэйм –Мэйнфрэйм: 10 раз быстрее, 1000 раз дороже














Разделение ресурсов Разделение ресурсов часто является одной из причин разработки распределенной системы –Уменьшается стоимость, (file и print сервера) –Разделение данных между пользователями (совместная работа над проектом) Сервисы –Управляют набором ресурсов –Представляют услуги пользователям


Разделение ресурсов Сервер используется для предоставления сервисов –Принимает запросы на обслуживание от клиентов вызов операции –Прием сообщения/ответ на сообщение полная реализация - удаленный вызов –Роли клиента и сервера меняются от вызова к вызову один и тот же процесс может быть как клиентом, так и сервером –Терминология Клиент/Сервер применяется к процессам, а не к узлам!!!




Распространение приложения Фрагментация –разделение приложения на модули для распространения Конфигурация –Связь модулей друг с другом (зависимости) Размещение –выгрузка модулей на целевую систему –Распределение вычислительных модулей между узлами (статическое или динамическое)






Гетерогенность Middleware: промежуточный программный слой –позволяет гетерогенным узлам взаимодействовать –Определяет однородную вычислительную модель –Поддерживает один или несколько языков программирования –Обеспечивает поддержку распределенных приложений Вызов удаленных объектов Удаленный вызов SQL Распределенная обработка транзакций Примеры: CORBA, Java RMI, Microsoft DCOM


Гетерогенность Мобильный код: код разработан для миграции между узлами –Необходимо преодолевать аппаратные различия (разные наборы инструкций) Виртуальные машины –Компилятор «изготавливает» байт-код для VM –VM реализована для всех аппаратных платформ (Java) Методы грубой силы –Портируем код под каждую платформу...






Безопасность Сценарий 1: Доступ к результатам тестирования по NFS –Откуда мы знаем, что пользователь - преподаватель, имеющий доступ к данным? –Авторизация Сценарий 2: Посылка номера кредитной карты в интернет-магазин –Никто кроме получателя не должен прочитать данные –Криптография






Масштабируемость Стоимость физических ресурсов –Растет,при увеличении числа пользователей –Не должна расти быстрее, чем O (n), где n = количеству пользователей Потери производительности –Увеличиваются с ростом размера данных (и количества пользователей) –Время поиска не должно расти быстрее, чем O (log n), где n = размер данных










Параллелизм Контроль параллелизма –Обращение нескольких потоков к ресурсу Правильное планирование доступа в параллельных потоках (устранение взаимоисключений, транзакции) –Синхронизация (семафоры) Безопасно, но уменьшают производительность –Разделяемые объекты(ресурсы) должны работать корректно в многопоточной среде




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






Итоги Распределенная система: –Автономные (но соединенные средой передачи данных) узлы –Взаимодействие посредством передачи сообщений Много примеров того, что распределенные системы нужны и их нужно уметь строить Распределенные системы существуют и их нужно уметь развивать и поддерживать













Источник: Журнал «Перспективы науки и образования» Выпуск №6(12)/2014 http://cyberleninka.ru/article/n/problemy-raspredelennyh-sistem

Аннотация

Статья описывает особенности распределенных систем. Раскрывается понятие распределенной системы и распределенной информационной системы.

Дается классификация распределенных систем. В частности, по типу предоставляемых ресурсов: распределенные вычислительные системы, распределенные информационные системы, семантический Трид. По количеству элементов в системе: кластер, распределенная система корпоративного уровня, глобальная система.

Описаны требования, предъявляемые к распределенным системам: прозрачность распределенной системы, прозрачность местоположения, прозрачность доступа, прозрачность параллелизма доступа, прозрачность масштабируемости распределенной системы, прозрачность репликации, открытость системы, безопасность, надежность РС.

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

Ключевые слова: вычисления,распределенные системы,распределенные вычислительные системы,распределенные информационные системы

Введение

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

Понятие распределенной системы

На сегодняшний момент в литературе существует большое количество определений понятия «распределенная система». Наиболее полное определение предложил AS Tanenbaum : «Распределенная система (РС) – это набор независимых компьютеров, который воспринимается его пользователям как единственная последовательная система.» Другое определение предложено в работе : Распределенными системами называются программно-аппаратные системы, в которых исполнение операций (действий, вычислений), необходимых для обеспечения целевой функциональности системы, распределено(физически или логически) между разными исполнителями. В вычислительной сфере под РС в нашем исследовании будем понимать программно–аппаратную систему, созданную для конкретного практического применения, функционал которой распределен на различных узлах.

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

  • распределенные вычислительные системы (Computational Grid)
  • распределенные информационные системы (Data Grid)
  • семантический Грид (Semantic Grid)

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

Распределенные информационные системы (Data Grid) предоставляют вычислительные ресурсы для обработки больших объемов данных, для задач не требующих больших вычислительных ресурсов. Семантический Грид предоставляет не только отдельные вычислительные мощности (базы данных, сервисы), но и совокупность вычислительных систем и информационных систем, для каждой конкретной предметной области .

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

Основные требования, предъявляемые к распределенным системам

Основными требованиями, предъявляемыми к распределенным системам, являются: прозрачность, открытость системы, безопасность, масштабируемость РС, надежность. Рассмотрим каждую характеристику подробнее.

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

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

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

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

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

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

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

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

Безопасность. Особое место в современных распределенных системах занимает их безопасность. Безопасность РС является, в общем случае, совокупностью 3 факторов :

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

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

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

Проблемы эксплуатации распределенных систем

Несмотря на все достоинства распределенных систем по сравнению с традиционными централизованными системами (РС обеспечивают значительно меньшую стоимость развертывания и простоту реализации), РС имеют и ряд существенных недостатков. Основными проблемами распределенных систем по сравнению с традиционными системами являются:

  • проблемы администрирования системы;
  • проблемы ограниченности масштабируемости РС;
  • проблемы переносимости программного обеспечения.

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

  • балансировка нагрузки на узлы системы;
  • восстановление данных в случае возникновения ошибки;
  • сбор статистики с узлов системы;
  • обновление программного обеспечения на узлах системы в автоматическом режиме.

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

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

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

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

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

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

Проблемы ограниченности масштабируемости. Масштабируемость распределенных систем одна из первоочередных задач при проектировании РС. Распределенные системы позволили избежать главного недостатка централизированных систем – ограниченности наращивания вычислительных мощностей системы. Существуют три основных показателя масштабируемости системы:

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

При решении задачи масштабируемости системы необходимо решить множество проблем. Выделим основные проблемы масштабируемости распределенных систем.

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

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

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

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

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

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

Заключение

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

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

ЛИТЕРАТУРА

  1. Tsvetkov V. Yа., Lobanov A. A. Big Data as Information Barrier // European Researcher. 2014. Vol.(78). № 7-1. p. 1237-1242.
  2. Мартин Д. Вычислительные сети и распределенная обработка данных: Программное обеспечение, методы и архитектура: [В 2-х вып.]: Пер. с англ. Вып. 1. Финансы и статистика, 1985.
  3. Цветков В.Я. Базы данных. Эксплуатация информационных систем с распределенными базами данных. М.: МИИГАиК, 2009. 88 с.
  4. Шокин Ю.И. и др. Распределенная информационно-аналитическая система для поиска, обработки и анализа пространственных данных // Вычислительные технологии. 2007. Т. 12. №. 3. С. 108-115.
  5. Tanenbaum A., Van Steen M. Distributed systems. Pearson Prentice Hall, 2007.
  6. И.Б. Бурдонов, А.С. Косачев, В.Н. Пономаренко, В.З. Шнитман. Обзор подходов к верификации распределенных систем. М.: Российская Академия Наук. Институт системного программирования (ИСП РАН) 2003. 51 с.
  7. Вовченко А.Е., Калиниченко Л.А., Ступников С.А. Семантический грид, основанный на концепции предметных посредников. Институт проблем информатики РАН. URL: http://83.149.245.107/synthesis/publications/10semgrid/10semgr id.pdf (дата обращения 20.09.2014).
  8. Родин А.В., Бурцев В.Л. Параллельные или распределенные вычислительные системы? // Труды Научной сессии МИФИ- 2006. Т. 12 Информатика и процессы управления. Компьютерные системы и технологии. с. 149-151.
  9. George Coulouris, Jean Dollimore, Tim Kindberg, “Distributed Systems Concepts and Design” 3 rd edition, Addison-Wesley.
  10. Blaze M. et al. The role of trust management in distributed systems security // Secure Internet Programming. Springer Berlin Heidelberg, 1999. С. 185-210.
  11. Бабич А.В., Берсенев Г.Б. Алгоритмы динамической балансировки нагрузки в распределенной системе активного мониторинга // Известия ТулГУ. Технические науки. 2011. №. 3. С. 251-261.
  12. Daryapurkar A., Deshmukh M. V. M. Efficient Load Balancing Algorithm in Cloud Environment // International Journal Of Computer Science And Applications. 2013. Т. 6. №. 2. p. 308-312.
  13. Распределенные системы. Принципы и парадигмы Э. Таненбаум, М. Bан Стеен. СПб.: Питер, 2003.
  14. Tanenbaum A. S., Klint P., Bohm W. Guidelines for software portability // Software: Practice and Experience. 1978. Т. 8. №. 6. С. 681-698.
  15. James D. Mooney. "Bringing Portability to the Software Process". Technical Report TR 97-1, Dept. of Statistics and Computer Science, West Virginia University, Morgantown WV, 1997.