Вы находитесь на странице: 1из 12

1

Література
1. . Таненбаум Э, М. ван Стеен. Распределенные системы. Принципы и парадигмы. Питер, 2003.
880 стр.
2. Радченко Г.И. Распределенные вычислительные системы. ЮУрГУ, 2012 г. 182 с.:
3. Гергель В.П., Фурсов В.А. Лекции по параллельным вычислениям: учеб.– Самара: Изд-во
Самар. гос. аэрокосм. ун-та, 2009. – 164 с.
4. Основы параллельного программирования с использованием технологий MPI и OpenMP:
учебное пособие / Р.В. Жалнин, Е.Н. Панюшкина, Е. Е. Пескова, П.А. Шаманаев. – Саранск: Изд-во
СВМО, 2013. – 78 с.
5. Кузьменко Б.В., Чайковська О.А. Технологія розподілених систем та паралельних обчислень.
(конспект лекцій, частина 1. Розподілені об’єктні системи, паралельні обчислювальні системи та
паралельні обчислення, паралельне програмування на основі МРІ) Навчальний посібник. – К.:
Видавничий центр КНУКІМ, 2011 – 126 с

Тема 1. Введение в распределенные вычислительные системы


1.1. Общие сведения: определение распределенной вычислительной системы, ее преимущества и
признаки
1.2. Концепции аппаратных решений организации РС
1.3. Концепции программных решений организации РС. Модели ПО промежуточного уровня
1.4.. Службы (сервисы) промежуточного уровня
1.5. Технологии обработки информации в распределенных с истемах
1.6.  Модели Клиент-сервер

1.1. Общие сведения: определение распределенной вычислительной


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

Определение распределенной вычислительной системы


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

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


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

1.2. Основные задачи распределенной обработки и ключевые


характеристики РС
Основная задача – облегчение доступа к удаленным ресурсам и контроль
совместного использования этих ресурсов (компьютеров, файлов, данных в БД).
Web-страницы и сети также входят в этот список.
Для решения этой основной задачи, РС должна иметь следующие ключевые
характеристики :
Х-ка Назначение Детали
Прозрачность Утаивание Тип Объяснение
(Transparency) деталей Скрывает многообразие в
Доступа
реализации, представлении данных и в
(Access)
структуры и вопросах доступа к ресурсам
функционирован Разрешает обеспечить доступ к
ие системы локальной и отдаленной
Размещен
информации в
ия
унифицированном виде
(Location)
независимо от места и времени
взаимодействия
Разрешает автоматически
проявить и исправить ошибки,
Ошибок
создавая при этом у
(Failure)
пользователя впечатления
безошибочной работы системы
Разрешает невидимо
Репликац дублировать программное
ии обеспечение и данные на ряде
(Replication
)
машин с целью повышения
производительности
Миграции Скрывает перемещение ресурса
3

(Migration на другое место

Х-ка Назначение Детали


Открытость Независимость Состав Объяснение
(Opennes) от специфики Портируе Способность переноса системы
ресурсов, мость(port с одной платформы
доступность для ability (программной или аппаратной)
использования на другие.
программными
приложениями Возможность взаимодействия
пользователя, Інтеропер системы с другими системами,
который абельност несмотря на возможные
достигается ь расхождения, связанные с их
путем введения (interopera реализацией (язык
спецификации bility) программирования, среда
программного выполнения).
взаимодействия
Параллельность Параллельность выполнения достигается путем параллельной
вычислений рассылки запросов на выполнение задач на ряд связанных
(Concurrency) вычислителей.
Обработка Резервирование вычислителей (ЭВМ) в случае выхода из
ошибок порядка других машин (через сбой аппаратного или
(Fault-tolerance) программного обеспечения). Сбои и ошибки могут быть
выявлены и обработанные другими машинами. Главной идеей
является утаивание от пользователя и обработка
исключительных ситуаций: прогнозирование исключительных
ситуаций, восстановление работы процессов и их состояний,
распределение нагрузки на другие узлы
Масштабируемос Возможность расширения путем добавления новых
ть (Scalability. аппаратных и программных ресурсов*)
4

1.3. Концепции аппаратных решений организации РС


Существуют разные способы организации процессоров в единую РС
(вариантов соединения и организации взаимного обмена).
Все компьютеры в РС мы можем разделить на две группы.
 системы, в которых компьютеры используют совместно память
(мультипроцессоры)
 системы, в которых компьютеры работают каждый со своей памятью
(мультикомпьютерами).
Каждую из этих категорий можно подразделить на дополнительные
категории на основе их физической топологии, например, шинная и
коммутируемая (например, звезда и др.).
Мультикомпьютерные системы разделяют также на
 гомогенные (homogeneous)
 гетерогенные (heterogeneous).
В первых используется одна компьютерная сеть, использующая единую
технологию, однотипные процессоры. Такие системы часто используются в
качестве параллельных (как и мультипроцессорные). Пример – кластеры рабочих
станций.
Гетерогенные системы содержат независимые компьютеры, соединенные
разными сетями. Например, они могут состоять из нескольких локальных сетей,
соединенных коммутируемой магистралью FDDI (Fiber Distributed Data Interface -
распределенный волоконный интерфейс данных) или ATM (asynchronous transfer
mode — асинхронный способ передачи данных)

1.4. Концепции программных решений организации РС


Программные решения влияют, в первую очередь, на удобство работы
пользователя в РС.
РС обеспечивают функции, присущие операционным системам (ОС), в
частности:
- функции менеджеров ресурсов, помогая пользователям совместно
использовать такие ресурсы как память, процессоры, периферийное
оборудование,
- скрывают сложность и гетерогенность аппаратуры, предоставляя
виртуальную машину для выполнения приложений.
Для распределенных компьютеров ОС подразделяют на две категории:
Сильно связанные ОС, которые называются распределенными ОС
(Distributed Operation System, DOS) и используются для управления
мультипроцессорными и гомогенными мультикомпьютерными системами.
Основная их цель – скрыть тонкости управления аппаратным обеспечением.
5

Слабо связанные ОС, которые называются сетевыми ОС (Network Operation


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

Рис.1.1. Общая структура РС с промежуточным уровнем

Модели ПО промежуточного уровня.


Для упрощения разработки и интеграции РС, основная часть
промежуточного ПО должна базироваться на некоторой модели, определяющей
распределение и связь.
Ранние модели:
 распределенная файловая система - представление всех объектов в
виде файлов . Пример – файловая система Unix.
 модель на основе удаленных вызовов процедур (Remote Procedure
Calls, RPC). В этой модели акцент делается на сокрытии сетевого обмена за счет
того, что процессу разрешается вызывать процедуры, реализация которых
6

находится на удаленной машине. При вызове процедуры параметры передаются


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

Модели середины 1990-х базировались на двух основных подходах к


разработке распределенных вычислительных систем
 модели, основанные на взаимодействии распределенных объектов..
Например – технологии распределенных объектов DCOM (Distributed
Component Object Model), CORBA (Common Object Request Broker
Architecture). Идея распределенных объектов состоит в том, что каждый объект
реализует интерфейс, скрывающий все внутренние детали реализации объекта от
пользователя. Интерфейс содержит методы, реализуемые объектом, и все, что
видит процесс – это интерфейсы.
 модель распределенных документов в Web. В этой модели
информация организована в виде документов, каждый из которых размещен в
каком-то месте, причем физическое размещение документа скрыто от
пользователя (прозрачно). Документы могут содержать ссылки на другие
документы, которые могут быть извлечены и отображены на экран.
Новые модели. С начала нового тысячелетия произошел были развиты
новые методы и промежуточное программное обеспечение для распределенных
вычислительных систем, в частности
 технологии одноранговых сетей (peer-to-peer или P2P);
 грид-технологии.
Применение P2P позволило множеству пользователей, которые раньше
были простыми потребителями информации, участвовать в предоставлении
контента.
Применение технологии грид позволило интегрировать крупные комплексы
обработки и хранения данных, обеспечивая их доступность для различных
правительственных и научных пользователей. Концепция грид-вычислений была
ориентирована на построение инфраструктуры, обеспечивающей «вычисления по
требованию», аналогично тому, как мы сейчас получаем доступ к коммунальным
услугам, например, к электричеству.
 технологии Веб-сервисов и сервис ориентированной архитектуры -
дальнейшее развитие распределенных объектных технологий. Слияние бизнес
подхода к предоставлению вычислительных ресурсов в виде сервисов и
концепции грид-вычислений привело к появлению в конце 2010-х новой
концепции получившей название «Облачных вычислений».
7

1.5. Службы (сервисы) промежуточного уровня


Эти службы предназначены для обеспечения основных характеристик РС,
прежде всего прозрачности, открытости и масштабируемости.
Все ПО промежуточного уровня должно поддерживать прозрачность
доступа путем предоставления высокоуровневых средств связи,
скрывающих низкоуровневую пересылку сообщений по сети. Интерфейс
транспортного уровня (IP), который предоставляется сетевой ОС,
полностью заменяется другими средствами. Способ, которым
поддерживается связь, зависит от модели распределения, предлагаемой ПО
промежуточного уровня. Это упоминавшийся нами RPC и системы
распределенных объектов. Кроме того, системы промежуточного уровня
предоставляют средства для прозрачного доступа к распределенным БД,
файловым системам, документам Web.
Наиболее важные службы общие для всех систем промежуточного
уровня:
– именование (naming). В Web любой документ поименован посредством
URL, содержащим имя сервера, на котором находится документ с данным URL.
– обеспечение сохранности данных. Пример – механизм распределенных
транзакций.
– обеспечение защиты программ и данных. Основная проблема защиты в
системах промежуточного уровня – в распределенности. В сочетании с
требованием расширяемости защита превращается в одну из наиболее трудно
реализуемых в РС служб.

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


При обработке информации в распределенных системах используются три
основные технологии:
технология «хозяин-слуга» (master-slave);
технология «клиент/сервер» (client/server);
равноранговая (peer-to-peer) технология;

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

При отказе центрального компьютера (если не принять мер по


резервированию) прекращается функционирование всей системы.

Технология «клиент-сервер» (в настоящее время наиболее широко


используется в распределенных информационных системах) ^
- процесс-клиент запрашивает определенное обслуживание.
- обслуживание обеспечивают один или более процессов, называемых
серверами.
- после окончания обслуживания они посылают ответ клиенту.
Такой режим работы называют режимом «запрос/ответ» или опросом.
Процесс сервера обычно загружен постоянно и обеспечивает обслуживание
нескольких процессов клиентов.
Главное отличие между технологиями «хозяин-слуга» и «клиент-сервер» в
том, что процессы клиента и сервера равноправны, но выполняют разные
функции.
Равноранговая технология
Каждый компьютер сконфигурирован и как клиент и как сервер.
Использование небольшого количества серверов, т.е. относительная
централизация ресурсов, улучшает управляемость системы по сравнению со
случаем, когда каждый компьютер сконфигурирован и как клиент и как сервер.
Часто равноранговая технология применяется для совместного
использования ресурсов (жестких дисков, CD-ROM и принтеров) в
распределенных информационных системах.

1.7.  Модель Клиент-сервер


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

Рис. 1.2 Модель взаимодействия клиент-сервер

Обычно нет четкого различия разделения функций системы между клиентом


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

Типичное приложение в соответствие с современными представлениями


может быть разделено на следующие логические уровни (рис.1.3).

Уровень интерфейса обычно


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

Рис. 1.3 Логические уровни приложения


10

Для БД поддержание целостности означает, что схемы БД, специфические


условия приложений (триггеры БД), хранимые процедуры и прочее также
хранятся на этом уровне.
Обычно уровень данных реализуется в форме реляционной БД. Это
обеспечивает независимость данных от приложений. Применение реляционных
баз данных в модели клиент-сервер помогает отделить уровень обработки от
уровня данных, рассматривая данные и их обработку независимо друг от друга.
Варианты архитектуры клиент-сервер
Разделение системы на три логических уровня приводит к проблеме
физического распределения приложений по отдельным компьютерам в модели
клиент-сервер.
Двухзвенная (самая простая) организация предполагает использование
двух типов машин:
1. Клиентские машины (рабочие станции), на которых устанавливаются
программы-клиенты, реализующие интерфейс.
2. Серверы, реализующие все остальное, то есть уровни обработки и данных.
.
Логика приложения может
быть отнесена к серверу,
клиентам или разделена
между ними. Программные
решения варьируются от
минимизации функций
интерфейса пользователя на
клиенте (тонкий клиент) до
передачи клиенту всей
работы с пользовательским
интерфейсом (толстый
клиент).
Графический внешний
интерфейс, связанный с
остальной частью
приложения (находящейся на
сервере) отделяется от
приложения
В этом подходе
внешний интерфейс делает
только то, что нужно для
предоставления интерфейса
приложения.
Рис. 1.4 Двухзвенная (клиент-серверная) архитектура [two-tiered architecture]

Следует отметить, что подобные системы часто не относят к классу


распределенных, но формально они могут считаться простейшими
представителями распределенных систем
11

Трехзвенная архитектура (three-tiered architecture) , в которой


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

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

Рис. 1.5. Трехзвенная архитектура [three-tiered architecture]

Типичный пример трехзвенной архитектуры – обработка транзакций. В этом


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

При таком типе распределения клиент или сервер может содержать


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

Рис. 1.6. Компоненты распределенной системы


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

Вам также может понравиться