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

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

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

Распределенная база данных – база данных, которая физически распределяется на две или более компьютерные системы [6].

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

физически распределенная по взаимосвязанным ресурсам вычислительной системы и доступная для совместного использования в различных приложениях [18].

Распределенная система баз данных – совокупность данных, распределенных между двумя или более базами данных [5, 6].

Система управления базами данных (СУБД) – совокупность программных и лингвистических средств общего или специального назначения, обеспечивающих управление созданием и использованием баз данных [5].

Распределенная система управления базой данных (РСУБД)

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

Информационная система

Всоответствии с законодательством РФ «…информационная система – это совокупность содержащейся в базах данных информации и обеспечивающих ее обработку информационных технологий

итехнических средств…» [9].

Вболее узком смысле информационная система (ИС) рассматрива-

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

Информационная система – система, организующая обработку информации о предметной области и ее хранение [7].

Распределенная информационная система – информационная система, объекты данных и (или) процессы которой физически распределяются на две или более компьютерные системы [6, 7].

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

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

11

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

Основные характеристики распределенных систем [37]

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

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

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

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

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

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

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

В качестве дополнительных характеристик можно рассматривать следующие свойства распределенных систем:

возможность совместного использования как аппаратных, так

ипрограммных ресурсов – совместное использование ресурсов;

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

12

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

возможность нескольким процессам одновременно выполняться на разных компьютерах в сети и взаимодействовать во время их вы-

полнения – параллельность;

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

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

Коммуникации в распределенных системах

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

Информационно-телекоммуникационная сеть – технологиче-

ская система, предназначенная для передачи по линиям связи информации, доступ к которой осуществляется с использованием средств вычислительной техники [59].

Компьютерная сеть – сеть, узлы которой включают в себя компьютеры и оборудование передачи данных и ветви которой являются линиями передачи данных [60]. Основной задачей компьютерной сети является передача данных без ошибок и искажений.

Распределенные системы используют для коммуникации разнообразные типы сетей.

В зависимости от территориального масштаба компьютерная сеть может характеризоваться как широкомасштабная (Wide Area Network, WAN) или локальная (Local Area Network, LAN) [4].

WAN – вычислительная сеть, охватывающая достаточно большую территорию.

13

LAN – вычислительная сеть, охватывающая небольшую территорию и использующая ориентированные на эту территорию средства и методы передачи данных.

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

Рис. 1. Варианты топологии сетей

Принципы коммутации в компьютерных сетях

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

Маршрутизация – процесс выбора маршрута в компьютерной сети. Маршрут – последовательность узлов, через которые пакеты пере-

сылаются от отправителя к получателю.

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

14

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

Широковещательные рассылки – передача данных без маршрути-

зации. Каждый пакет передается каждому доступному узлу или выделенному множеству узлов (многоадресная рассылка) до потенциального получателя.

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

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

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

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

Способы передачи при коммутации пакетов:

в виде датаграмм;

через виртуальные каналы.

4 Трафик – поток данных, передаваемых через компьютерную сеть за любой период времени.

15

Датаграммный способ передачи пакетов

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

Передача пакетов с установлением виртуального (логического) канала

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

щая единственный маршрут для соединения конечных узлов.

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

Постоянные виртуальные каналы создаются заранее администраторами сети.

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

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

Коммуникационная подсистема

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

16

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

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

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

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

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

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

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

уровнях в одном узле (рис. 2).

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

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

17

Рис. 2. Уровни, протоколы и интерфейсы

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

ционных протоколов.

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

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

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

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

Эталонные сетевые модели

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

18

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

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

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

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

В настоящее время наибольшее распространение получили и являются стандартами (эталонами) для описания межсетевого взаимодействия две сетевые модели:

модель OSI – эталонная модель взаимодействия открытых систем [44];

модель TCP/IP – практически используемая модель, принятая для работы в Интернете [66].

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

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

Модель OSI

Сетевая модель OSI – абстрактная сетевая модель для коммуникаций и разработки сетевых протоколов, базовая эталонная модель взаимодействия открытых систем [44]. Модель описывает семь уровней протоколов, каждый из которых обслуживает свою часть процесса взаимодействия. Более детально принципы открытых систем и структура модели OSI рассмотрены в разделе 6.

19

Модель TCP/IP [66]

Модель и стек протоколов TCP/IP получили свое название от двух основных протоколов семейства:

TCP (Transmission Control Protocol) – обеспечивает надежную пе-

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

TCP содержится в RFC-793 [67];

IP (Internet Protocol) – функции протокола IP определены в стандарте RFC-791 следующим образом: «Протокол IP обеспечивает передачу пакетов данных, называемых датаграммами, от отправителя к получателям, где отправители и получатели являются компьютерами, идентифицируемыми адресами фиксированной длины (IP-адресами5)» [67], т. е. он отвечает за маршрутизацию датаграмм – определение пути следования датаграммы от одного узла сети к другому на основании адреса получателя.

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

Сейчас существует две версии протокола IP – IPv6 и IPv4 [68]. Основное отличие IPv6 от IPv4 состоит в длине адреса – 128 бит вместо 32. Появление IPv6 вызвано резким повышением спроса на IP-адреса в связи с появлением приложений, которые работают с большим количеством сетевых устройств, требующих широкого адресного пространства (например, IoT [69]). Новый протокол позволяет избежать нехватки IP адресов, обеспечивает более эффективный способ распределения и конфигурации IP-адресов, а также упрощает маршрутизацию трафика и повышает безопасность при передаче данных.

Модель TCP/IP является четырехуровневой сетевой моделью

(рис. 3).

5 IP-адрес (IP, от англ. Internet Protocol) – цифровой идентификатор, присваиваемый устройству, которое работает в условиях публичной или локальной сети на основе стека протоколов TCP/IP.

20

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