ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 11.01.2024
Просмотров: 812
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Владимирский государственный университет
Д. А. ГРАДУСОВ А. В. ШУТОВ
РАСПРЕДЕЛЕННЫЕ
ИНФОРМАЦИОННЫЕ
СИСТЕМЫ
Учебно-практическое пособие
Владимир 2021
Министерство науки и высшего образования Российской Федерации
Федеральное государственное бюджетное образовательное учреждение высшего образования
«Владимирский государственный университет имени Александра Григорьевича и Николая Григорьевича Столетовых»
Д. А. ГРАДУСОВ А. В. ШУТОВ
РАСПРЕДЕЛЕННЫЕ
ИНФОРМАЦИОНЫЕ
СИСТЕМЫ
Учебно-практическое пособие
Электронное издание
Владимир 2021
ISBN 978-5-9984-1303-2
© Градусов Д. А., Шутов А. В., 2021
УДК 004.41
ББК 65с51
Рецензенты:
Доктор технических наук, профессор зав. кафедрой информационных систем и программной инженерии
Владимирского государственного университета имени Александра Григорьевича и Николая Григорьевича Столетовых
И. Е. Жигалов
Кандидат экономических наук кредитный инспектор управления кредитования
Владимирского отделения № 8611 Публичного акционерного общества
Сбербанк России
М. В. Ворыханов
Градусов, Д. А. Распределенные информационные системы : учеб.- практ. пособие / Д. А. Градусов, А. В. Шутов ; Владим. гос. ун-т им. А. Г. и
Н. Г. Столетовых. – Владимир : Изд-во ВлГУ, 2021. 386 с. – ISBN 978-5-
9984-1303-2. – Электрон. дан. (7,53
Мб). – 1 электрон. опт. диск (DVD-
ROM). – Систем. требования: Intel от 1,3 ГГц ; Windows XP/7/8/10 ; Adobe
Reader ; дисковод DVD-ROM. – Загл. с титул. экрана.
Рассмотрены общие принципы проектирования распределенных информацион- ных систем, технические средства построения распределенных систем (в первую оче- редь технологии компьютерных сетей), программное обеспечение для построения рас- пределенных систем, включая распределенные системы управления базами данных, а также дан обзор современных технологий распределенного программирования. Приве- дены лабораторные работы по построению распределенных баз данных в СУБД MS
SQL Server и MongoDB.
Предназначено для студентов вузов направления подготовки 09.04.03 «При- кладная информатика» и может использоваться при проведении занятий по дисциплине
«Корпоративные распределенные информационные системы.
Рекомендовано для формирования профессиональных компетенций в соответ- ствии с ФГОС ВО.
Ил. 89. Табл. 14. Библиогр.: 17 назв.
ISBN ISBN 978-5-9984-1303-2
© Градусов Д. А.,
Шутов А. В., 2021
3
ОГЛАВЛЕНИЕ
ВВЕДЕНИЕ ................................................................................................. 5
Глава 1. ПРИНЦИПЫ ПОСТРОЕНИЯ РАСПРЕДЕЛЕННЫХ
СИСТЕМ ОБРАБОТКИ ИНФОРМАЦИИ ............................................... 6 1.1. Понятие распределенной информационной системы ................... 6 1.2. Базовая модель и метод «клиент-сервер» .................................... 24 1.3. Модификации модели и метода «клиент-сервер»....................... 27 1.4. Программы-агенты и модель «клиент-агент-сервер» ................. 31 1.5. Технологии одноранговых сетей .................................................. 36 1.6. Архитектура грид............................................................................ 41 1.7. Облачные вычисления .................................................................... 46 1.8. Особенности управления в распределенных информационных системах .................................................................................................. 58
Глава 2. ОРГАНИЗАЦИЯ ПРОЦЕССОВ ПЕРЕДАЧИ ДАННЫХ В
РАСПРЕДЕЛЕННЫХ ИНФОРМАЦИОННЫХ СЕТЯХ ..................... 73 2.1. Информационные сети и системы ................................................ 73 2.2. Архитектура локальных сетей типа Ethernet ............................... 78 2.3. Технологии и архитектура современных беспроводных сетей . 83 2.4. Магистральные сети передачи данных ...................................... 138
Глава 3. ИНФОРМАЦИОННЫЕ РЕСУРСЫ РАСПРЕДЕЛЕННЫХ
ИНФОРМАЦИОННЫХ СИСТЕМ ....................................................... 165 3.1. Системы управления базами данных ......................................... 165 3.2. Системы распределенных вычислений ...................................... 180 3.3. Особенности распределенных баз данных и СУБД .................. 184 3.4. Архитектура центра обработки данных ..................................... 208 3.5. Репликация баз данных ................................................................ 211
Глава 4. СЕРВЕРНОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ .............. 218 4.1. Общие понятия и принципы построения серверного ............... 218
4 программного обеспечения ................................................................ 218 4.2. Средства для проектирования и разработки серверного программного обеспечения ................................................................ 234 4.3. Принцип построения и работы распределенного приложения 240
Глава 5. ТЕХНОЛОГИЯ ПОСТРОЕНИЯ РАСПРЕДЕЛЕННЫХ
ИНФОРМАЦИОННЫХ СИСТЕМ ....................................................... 244 5.1. Технология COM/DCOM ............................................................. 244 5.2. Технология CORBA ...................................................................... 251 5.3.Технология inetd ............................................................................ 272 5.4. Технология RPC ............................................................................ 278 5.5.
Сервис-ориентированная архитектура ..................................... 288
Глава 6. ПРАКТИЧЕСКАЯ РЕАЛИЗАЦИЯ РЕПЛИКАЦИИ В
СОВРЕМЕННЫХ СУБД........................................................................ 299 6.1. Репликация в MS SQL Server ...................................................... 299 6.2. Репликация в СУБД MongoDB.................................................... 321
ТЕСТЫ ..................................................................................................... 347
Глава 1 ................................................................................................... 347
Глава 2 ................................................................................................... 354
Глава 3 ................................................................................................... 361
Глава 4 ................................................................................................... 369
Глава 5 ................................................................................................... 374
ЗАКЛЮЧЕНИЕ ....................................................................................... 382
БИБЛИОГРАФИЧЕСКИЙ СПИСОК ................................................... 383
5
ВВЕДЕНИЕ
Наличие информационной системы является непременным тре- бованием к любой современной организации. При этом следует учи- тывать, что трансформация бизнеса приводит к изменениям в исполь- зуемых информационных технологиях. В частности, одной из глав- ных тенденций становится резкое увеличение объема используемых данных совместно с увеличением требований к оперативности их об- работки и надежности хранения. Одним из ключевых путей решения возникающих проблем становится использование сетевых информа- ционных технологий, в первую очередь клиент-серверных и распре- деленных информационных систем. Данным технологиям и посвяще- но учебное пособие.
В пособии рассмотрены общие принципы проектирования рас- пределенных информационных систем, технические средства постро- ения распределенных систем (в первую очередь технологии компью- терных сетей), программное обеспечение для построения распреде- ленных систем, включая распределенные системы управления базами данных, а также дан обзор современных технологий распределенного программирования.
Приведены лабораторные работы по построению распределен- ных баз данных в СУБД MS SQL Server и MongoDB.
6
Глава 1. ПРИНЦИПЫ ПОСТРОЕНИЯ РАСПРЕДЕЛЕННЫХ
СИСТЕМ ОБРАБОТКИ ИНФОРМАЦИИ
1.1. Понятие распределенной информационной системы
Информационные технологии – это процессы, использующие совокупность средств и методов сбора, обработки и передачи данных для получения информации нового качества о состоянии объекта, процесса или явления (нового информационного продукта).
Информационная система (база) – это организационно- упорядоченная взаимосвязанная совокупность средств и методов ин- формационных технологий, используемых для хранения, обработки и выдачи информации в интересах достижения поставленной цели.
Информационные системы создаются для обеспечения взаимодей- ствия информационных процессов в природе и обществе, и связанно- го с этим взаимодействием обмена какими-либо сигналами или све- дениями в рамках организационно-технической системы.
Сами же информационные процессы (ИП) представляют собой совокупность взаимосвязанных и взаимообусловленных процессов выявления, отбора, формирования из совокупности сведений инфор- мации, ее ввода в техническую систему, анализа, обработки, хранения и передачи.
В качестве основных технических средств обработки и передачи информации в информационных системах выступают компьютеры и средства связи.
Под распределенной информационной системой (базой) пони- мается неограниченное количество баз данных, дистанционно отда- ленных друг от друга, функционирующих и осуществляющих обмен данными по единым правилам, определенным централизованно для всех баз данных, входящих в распределенную информационную базу.
Приведем также несколько альтернативных определений рас- пределенных информационных систем.
7
Распределенная информационная система – информацион- ная система, объекты данных и/или процессы которой физически распределяются на две или более компьютерные системы.
Распределенная система – это набор независимых компью- теров, представляющийся их пользователям единой объединенной системой.
Распределенная система – это такая система, в которой взаимодействие и синхронизация программных компонентов, выпол- няемых на независимых сетевых компьютерах, осуществляется по- средством передачи сообщений.
Распределенная система – набор независимых компью- теров, не имеющих общей совместно используемой памяти и общего единого времени (таймера) и взаимодействующих через коммуника- ционную сеть посредством передачи сообщений, где каждый ком- пьютер использует свою собственную оперативную память и на котором выполняется отдельный экземпляр своей операционной системы. однако эти операционные системы функционируют сов- местно, предоставляя свои службы друг другу для решения общей за- дачи.
Термин "распределенная система" описывает широкий спектр систем от слабо связанных многомашинных комплексов, представляемых, например, набором персональных компьютеров, объединенных в сеть, до сильно связанных многопроцессорных си- стем.
Отметим также шуточное определение распределенной инфор- мационной системы, принадлежащее американскому ученому в обла- сти теории вычислительных систем Лесли Лэмпорту. Согласно его утверждению, вы понимаете, что пользуетесь распределенной систе- мой, когда поломка компьютера, о существовании которого вы даже не подозревали, приводит к останову всей системы, а для вас – к не- возможности выполнить свою работу.
Большинство современных распределенных информационных систем обладают следующими общими признаками.
8
Отсутствие единого времени для компонентов распреде- ленной системы. Это важное предположение для решения задач про- ектирования и построения распределенных систем. Оно характеризу- ет территориальное распределение компонентов системы, а именно процессоров, входящих в ее состав, но что более важно, из него сле- дует отсутствие синхронности в их работе.
Отсутствие общей памяти. Это ключевая характеристика, из которой следует необходимость обмена сообщениями между про- граммными компонентами распределенной системы для их взаимо- действия и синхронизации. Кроме того, эта характеристика подразу- мевает отсутствие единого для всех процессоров физического време- ни
Географическое распределение. Вполне естественно, что чем сильнее удалены процессоры друг от друга территориально, тем понятнее, что система будет рассматриваться как распределенная.
Однако совсем не обязательно, чтобы компьютеры были объединены в глобальную вычислительную сеть (ГВС). В последнее время кла- стер из обыкновенных рабочих станций, соединенных с помощью ло- кальной вычислительной сети (ЛВС), также все чаще рассматривается как небольшая распределенная система. При этом все оборудование такой распределенной системы может находиться в одном или не- скольких соседних зданиях. Подобные кластеры становятся все по- пулярнее из-за относительно низкой стоимости входящих в нее ком- понентов с одной стороны и неплохой производительности – с дру- гой.
Независимость и гетерогенность. Компьютеры, входящие в состав распределенной системы слабо связаны в том смысле, что они могут иметь различный состав и различную производительность и, следовательно, обеспечивать различное время выполнения иден- тичных задач. Обычно они не являются частями одной специализиро- ванной системы, но функционируют совместно, предоставляя свои службы друг другу для выполнения общей задачи. Более того, в об- щем случае на компьютерах, составляющих распределенную систему, могут выполняться различные операционные системы.
9
За последние несколько лет распределенные системы станови- лись все более популярными и их роль только возрастала. Среди ос- новных причин роста их значимости можно выделить следующие:
Географически распределенная вычислительная среда. Се- годня в большинстве случаев сама вычислительная среда по своей природе представляет собой территориально распределенную систе- му. В качестве примера можно привести банковскую сеть. Каждый банк обслуживает счета своих клиентов и обрабатывает операции с ними. В случае же перевода денег из одного банка в другой требует- ся осуществление межбанковской транзакции и взаимодействие си- стем банков друг с другом. Другим примером географически распре- деленной вычислительной среды является всем хорошо знакомая сеть
Интернет.
Требование увеличения производительности вычислений.
Быстродействие традиционных однопроцессорных систем стреми- тельно приближается к своему пределу. Различные архитектуры (та- кие как суперскалярная архитектура, матричные и векторные процес- соры, однокристальные многопроцессорные системы) призваны уве- личивать производительность вычислительных систем за счет раз- личных механизмов параллельного исполнения команд. Однако все эти приемы способны повысить производительность максимум в де- сятки раз по сравнения с классическими последовательными решени- ями. Кроме того, масштабируемость подобных подходов оставляет желать лучшего. Чтобы повысить производительность в сотни или тысячи раз и при этом обеспечивать хорошую масштабируемость ре- шения необходимо свести воедино многочисленные процессоры и обеспечить их эффективное взаимодействие. Этот принцип реализу- ется в виде больших многопроцессорных систем и многомашинных комплексов.
Совместное использование ресурсов. Важной целью со- здания и использования распределенных систем является предостав- ление пользователям (и приложениям) доступа к удаленным ресурсам и обеспечение их совместного использования. В данной формули- ровке термин ресурс относится как к компонентам аппаратного обес-
10 печения вычислительной системы, так и к программным абстракци- ям, с которыми работает распределенная система. Например, пользо- ватель компьютера 1 может использовать дисковое пространство компьютера 2 для хранения своих файлов. Или приложение А может использовать свободную вычислительную мощность нескольких компьютеров для ускорения собственных расчетов. Распределенные базы данных и распределенные системы объектов могут быть отлич- ным примером совместного использования программных компонен- тов, когда соответствующие программные абстракции распределены по нескольким компьютерам и согласованно обслуживаются несколь- кими процессами, образующими распределенную систему.
Отказоустойчивость. В традиционных «нераспределен- ных" вычислительных системах, построенных на базе единичного компьютера (возможно высокопроизводительного), выход из строя одного из его компонентов обычно приводит к неработоспособности всей системы. Такой сбой в одном или нескольких компонентах си- стемы называют частичным отказом, если он не затрагивает другие компоненты. Характерной чертой распределенных систем, которая отличает их от единичных компьютеров, является устойчивость к ча- стичным отказам, т.е. система продолжает функционировать после частичных отказов, правда, незначительно снижая при этом общую производительность. Подобная возможность достигается за счет из- быточности, когда в систему добавляется дополнительное оборудова- ние (аппаратная избыточность) или процессы (программная избыточ- ность), которые делают возможной правильное функционирование системы при неработоспособности или некорректной работе некото- рых из ее компонентов. В этом случае распределенная система пыта- ется скрывать факты отказов или ошибок в одних процессах от дру- гих процессов.
Эффективная распределенная система должна обладать следу- ющими свойствами: прозрачность, открытость, безопасность, мас- штабирование. Однако стоит отметить, что, несмотря на кажущуюся простоту и очевидность перечисленных свойств, их реализация на практике часто представляет собой непростую задачу.
11
Прозрачность
Под прозрачностью распределенной системы понимают ее спо- собность скрывать свою распределенную природу, а именно, распре- деление процессов и ресурсов по множеству компьютеров, и пред- ставляться для пользователей и разработчиков приложений в виде единой централизованной компьютерной системы. Стандарты эта- лонной модели для распределенной обработки в открытых системах
Reference Model for Open Distributed Processing
(RM-ODP) определяют несколько типов прозрачности. Наибо- лее важные из них перечислены ниже.
Прозрачность доступа. Вне зависимости от способов до- ступа к ресурсам и их внутреннего представления, обращения к ло- кальным и удаленным ресурсам осуществляется одинаковым обра- зом. На базовом уровне скрывается разница архитектур вычисли- тельных платформ, но, что более важно, достигается соглашение о том, как ресурсы разнородных машин, будут представляться пользо- вателям распределенной системы единым образом. В качестве приме- ра можно привести прикладной программный интерфейс (англ.
application programming interface, API) для работы с файлами, храня- щимися на множестве компьютеров различных архитектур, который предоставляет одинаковые вызовы операций как с локальными, так и с удаленными файлами.
Прозрачность местоположения. Позволяет обращаться к ресурсам без знания их физического местоположения. В этом случае имя запрашиваемого ресурса не должно давать никакого представле- ния о том, где ресурс расположен. Поэтому важную роль для обеспе- чения прозрачности местоположения играет именование ресурсов.
Например, чтобы отправить электронное сообщение на адрес user@company.com не требуется знать физического местоположения получателя, его почтового ящика или почтового сервера. В свою оче- редь обращение к файлу \\server\foo подразумевает знание имени сер-