Введение в распределенные методы обработки информации
Введение
Причины :
История систем хранения данных
Проблемы памяти
Магнитные ленты
Магнитные барабаны
Решение проблем памяти
Виды дисков
Современное представление о дисках
Флэш-память
Дисковые массивы
RAID 0
RAID 1
Развитие информационных систем
Переход на цифровой способ хранения информации
Развитие принципов обработки данных
Результат развития технологий
Распределенная система
Задачи распределенных систем
Прозрачность
Формы прозрачности
Различные формы прозрачности в распределенных системах
Концепции аппаратных решений
Концепции программных решений
Мультипроцессорные операционные системы
Семафоры и мониторы
Семафор
Монитор
Мультипроцессорные операционные системы
Монитор
Семафор/монитор. Основные различия
Мультикомпьютерные операционные системы
Мультикомпьютерные операционные системы
Сетевые операционные системы
Связь посредством команд
Связь через общую файловую систему
Распределенные системы с промежуточным уровнем
Распределенные системы с промежуточным уровнем
Модели промежуточного уровня
Службы промежуточного уровня
Общая структура распределенных систем с промежуточным уровнем
Middleware
Middleware
Примеры использования middleware
Примеры использования middleware
Сравнение систем
Парадигмы построения распределенных систем (создания middleware)
Парадигмы построения распределенных систем
Парадигмы построения распределенных систем
Цели или правила распределенных систем
Цели или правила распределенных систем
1. Локальная автономия
1. Локальная автономия
1. Локальная автономия
2. Независимость от центрального узла
2. Независимость от центрального узла
3. Непрерывное функционирование
3. Непрерывное функционирование
4. Независимость от расположения (прозрачность расположения)
4. Независимость от расположения (прозрачность расположения)
5. Независимость от фрагментации
6. Независимость от репликации
7. Обработка распределенных запросов
8. Управление распределенными транзакциями
9. Независимость от аппаратного обеспечения
10. Независимость от операционной системы
11. Независимость от сети
12. Независимость от типа СУБД
Централизация и децентрализация
Централизованное управление – предполагает наличие некого центра
Централизованное управление – предполагает наличие некого центра
Децентрализованное хранение информации
Распределенное управление (децентрализованные сети)
Распределенная и параллельная обработка данных
Распределенная и параллельная обработка данных (другая трактовка)
Распределенная и параллельная обработка данных (другая трактовка)
Системы хранения данных
Пример с DAS
Пример с NAS
5.63M
Категория: ИнформатикаИнформатика

Введение в распределённые методы обработки информации

1. Введение в распределенные методы обработки информации

Лекция №1
Эволюция принципов обработки данных
Концепции аппаратных и программных
решений
Цели и правила распределенных систем
Централизация и децентрализация
Распределенная и параллельная
обработка данных
Системы хранения данных

2.

Станкова Елена Николаевна
e-mail: e.stankova@spbu.ru;
tel: 8-911-9296209

3. Введение

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

4. Причины :

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

5.

Два направления использования
вычислительной техники:
1. Выполнение
численных расчетов
2. Создание
информационных систем
Первое направление появилось раньше второго в
связи с ограничениями в части памяти

6. История систем хранения данных

7. Проблемы памяти

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

8. Магнитные ленты

9. Магнитные барабаны

10. Решение проблем памяти

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

11. Виды дисков

12. Современное представление о дисках

1. повышение скорости и емкости дисков;
2. совершенствование доступа к записанным на них
данным;
3. поиск
альтернативных
твердотельных
технологий;
4. переход от жестких дисков к SSD и флэшпамяти.

13. Флэш-память

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

14. Дисковые массивы

RAID (англ. Redundant Array of
Independent Disks — избыточный
массив независимых дисковнакопителей (Аi))
RAID— технология виртуализации
данных, которая объединяет
несколько дисков в логический
элемент для избыточности и
повышения производительности.
Когда информация поступает на
сервер, RAID-контроллер делит ее на
блоки и по определенному алгоритму
распределяет между дисками.
Получается, что данные хранятся на
одном логическом диске, но
физически находятся на разных
носителях.

15. RAID 0

⚫
⚫
⚫
⚫
RAID 0 работает по принципу поблочного
чередования (striping). Все диски объединяются в массив,
а данные разбиваются на одинаковые блоки, которые по
очереди равномерно записываются на все накопители.
Благодаря этому производительность возрастает
пропорционально количеству дисков.
Итоговая производительность массива определяется по
самому медленному из дисков, поэтому лучше
использовать устройства с одинаковой скоростью
Высокая скорость и объем, однако, достигаются ценой
отказоустойчивости. На этом уровне не используется
резервирование, поэтому при отказе одного из дисков, все
данные массива теряются, а восстановить их крайне
трудно. Поэтому RAID 0 не рекомендуется использовать на
серверах с критически важными данными.
RAID 0 проявляет себя лучше всего при работе в
приложениях для быстрого обмена данными или в
хранилищах временных файлов, например, кэша.

16. RAID 1

RAID 1 работает по
принципу зеркалирования (mirroring). Массив
собирается из двух и более дисков, которые дублируют
друг друга. Таким образом создаются пары накопителей
с идентичными данными, что помогает решить
проблему с отказоустойчивостью — если один из
дисков выйдет из строя, данные останутся на его
точной копии.
⚫ При высокой отказоустойчивости RAID 1 уступает в
емкости и производительности. Данные необходимо
записывать одновременно на каждую пару дисков, а
часть общего объема памяти уходит на
резервирование.
⚫ RAID 1 подойдет, если нужно сделать хранение данных
на сервере более надежным.
⚫

17.

⚫
⚫
RAID 5 использует принцип чередования с распределенной
контрольной суммой. Для создания массива нужно как минимум три
диска. Данные разбиваются на блоки и равномерно распределяются
между дисками, как и в RAID 0. Однако в этом случае в каждом блоке
выделяется диск четности (parity disk). Благодаря распределению
четности между блоками, высокая отказоустойчивость достигается без
больших потерь в скорости чтения и записи. Важно отметить, что
скорость записи в этой конфигурации сильно зависит от используемого
RAID-контроллера.
Если потребуется заменить диск при конфигурации RAID 5,
восстановление информации займет много времени

18.

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

19.

⚫
⚫
RAID 10 сочетает в себе принципы RAID 1 (зеркалирование) и RAID
0 (чередование). Для его создания нужно как минимум четыре
диска, причем их количество всегда должно быть четным. Из них
собирается несколько массивов RAID 1, которые впоследствии
объединяются в массив RAID 0. При такой конфигурации даже если
один или несколько дисков выйдут из строя, все данные
сохранятся. При этом, как и в случае с RAID 1, часть общего
объема памяти уходит на резервирование.
RAID 10 — гибкое решение, которое сочетает отказоустойчивость с
высокой скоростью чтения и записи.

20. Развитие информационных систем

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

21. Переход на цифровой способ хранения информации

22. Развитие принципов обработки данных

код программы
программа
программа
сегмент данных
описание данных
данные
а)
б)
данные
БД
в)
а) обрабатываемые данные – часть программы
б) хранение данных в отдельных файлах (структура доступа – в
коде программы)
в) перенос описания данных в массив данных (независимость
от программы)

23.

1. Удешевление стоимости хранения: от 14 000 000 $ в 1980 году до 70 $ в
2010 году
2. Увеличение количества узлов в сети от 1 до миллиарда
3. Удешевление вычислительной мощности центрального процессора
4. Удешевление пропускной способности сети (Mbps - Мегабит в секунду.)

24. Результат развития технологий

одно процессорные {single-processor systems), систем,
состоявших из одного компьютера, его периферии и,
возможно, нескольких удаленных терминалов
компьютерные сети, или распределенные системы
{distiibuted systems) - компьютерные системы,
состоящие из множества компьютеров, соединенных
высокоскоростной сетью.

25. Распределенная система

Распределенная система — это набор
независимых компьютеров,
представляющийся их пользователям
единой объединенной системой.
⚫ с точки зрения аппаратного обеспечения:
все машины автономны.
⚫ с точки зрения ПО: пользователи думают,
что имеют дело с единой системой

26. Задачи распределенных систем

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

27. Прозрачность

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

28. Формы прозрачности

Различные формы прозрачности в
распределенных системах

29. Различные формы прозрачности в распределенных системах

Концепции аппаратных
решений
⚫ Мультипроцессорные системы
⚫ Гомогенные мультикомпьютерные системы
⚫ Гетерогенных мультикомпьютерные
системы
⚫ Грид системы

30. Концепции аппаратных решений

Концепции программных
решений

31. Концепции программных решений

Мультипроцессорные
операционные системы
⚫ Нацелены на поддержание высокой производительности
конфигураций с несколькими процессорами.
⚫ Основная задача — обеспечить прозрачность числа процессоров для
приложения.
⚫ Идея: сообщение происходит путем работы с данными в специальной
совместно используемой области данных. Защита от одновременного
доступа к данным осуществляется посредством примитивов
синхронизации — семафоров и мониторов.

32. Мультипроцессорные операционные системы

Семафоры и мониторы
Семафоры и мониторы — это механизмы
синхронизации процессов и потоков
⚫ отличаются по своей природе: семафор — это
целочисленная переменная, управляющая доступом
к ресурсу через атомарные операции (wait) (signal)
⚫ монитор — управляющая программа, объединяющий
данные и процедуры для управления доступом,
включая условные переменные для более сложной
синхронизации.
⚫

33. Семафоры и мониторы

Семафор
Швейцар – семафор,
регулирующий процесс запуска
потоков
Клиенты – потоки, ждущие своей
очереди
Что это:
Целочисленная переменная, представляющая количество доступных
единиц ресурса.
3
4

34. Семафор

ждите
сигнал
пропустите
следующего
проходите
сигнал
ждите
Семафор похож на швейцара в гардеробе или автомат, выдающий жетоны. У
него есть счетчик (например, число 3). Это значит, что одновременно зайти
могут только 3 потока.
* Как работает: Поток берет «жетон» (счетчик уменьшается). Когда жетоны
кончаются, новые потоки ждут. Когда поток уходит, он возвращает «жетон»
(счетчик увеличивается).
* Управление: Программист должен вручную вызывать функции «взять» и
«отдать».
* Опасность: Легко ошибиться. Если забыть вернуть жетон, программа
зависнет. Если вернуть лишний раз — логика сломается.
* Особенность: Семафор ничего не знает о данных, которые он защищает. Он
просто считает разрешения.

35.

Семафор
Принцип работы:
•Семафор имеет счетчик (например, количество разрешенных
потоков).
•При запросе ресурса поток выполняет
операцию wait() (или acquire()), уменьшая счетчик.
•Если счетчик становится отрицательным, поток блокируется до
тех пор, пока ресурс не освободится.
•При освобождении ресурса выполняется
операция signal() (или release()), увеличивающая счетчик.
Применение:
Используется для управления доступом к ограниченному набору
ресурсов, например, для ограничения количества одновременно
работающих потоков.

36.

Монитор
⚫
⚫
⚫
⚫
⚫
Монитор — это комната с кодовым замком, внутри которой
находятся и данные, и функции для работы с ними. В эту
комнату может войти только один поток одновременно.
Как работает: Поток заходит внутрь и автоматически запирает
за собой дверь. Другие потоки ждут снаружи. Когда первый
поток заканчивает работу и выходит, дверь автоматически
отпирается для следующего.
Управление: Всё происходит автоматически на уровне языка
программирования (например, ключевое слово synchronized в
Java).
Забыть «отпереть» дверь невозможно — язык сделает это сам
при выходе из функции.
Особенность: Монитор жестко объединяет код, данные и
механизм защиты в один объект.

37. Монитор

Мультипроцессорные
операционные системы

38. Мультипроцессорные операционные системы

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

39. Монитор

Семафор/монитор.
Основные различия
Абстракция:
⚫ Семафор — это низкоуровневая примитивная синхронизация, а
монитор — более высокоуровневая абстракция, использующая
примитивы, такие как семафоры и мьютексы ( примитив
синхронизации, который предоставляет монопольный доступ к общему ресурсу
только одному потоку в данный момент времени), для реализации.
Условные переменные:
⚫ Мониторы явно включают концепцию условных переменных,
которых нет в семафорах.
Структура:
⚫ Семафор — это просто счетчик, а монитор — это более
сложная структура, объединяющая данные, процедуры и
механизмы условного ожидания.

40. Семафор/монитор. Основные различия

Мультикомпьютерные
операционные системы
⚫ Обладают гораздо более
разнообразной структурой и
значительно сложнее
(распределенная память), чем
мультипроцессорные.
⚫ Единственный возможный вид
связи — передача сообщений.
41

41. Мультикомпьютерные операционные системы

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

42. Мультикомпьютерные операционные системы

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

43. Сетевые операционные системы

Связь посредством команд
⚫ rlogin machine — удаленное соединение пользователя с другой
машиной
⚫ rcp machine1:file1 machine2:file2 — команда удаленного
копирования (для копирования файлов с одной машины на
другую)
44

44. Связь посредством команд

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

45. Связь через общую файловую систему

Распределенные системы с
промежуточным уровнем
⚫ Ни распределенные, ни сетевые операционные
системы не соответствуют определению
распределенных систем: распределенные ОС не
предназначены для управления набором независимых
компьютеров, а сетевые ОС не дают представления
одной согласованной системы.
⚫ Можно ли разработать распределенную систему,
которая объединяла бы в себе преимущества обеих
ОС — масштабируемость и открытость сетевых ОС и
прозрачность и относительную простоту в
использовании распределенных ОС?
46

46. Распределенные системы с промежуточным уровнем

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

47. Распределенные системы с промежуточным уровнем

Модели промежуточного
уровня
⚫ Ранняя модель — представление всех объектов в виде файлов
(распределенная файловая система). Пример – файловая система
Unix.
⚫ Вторая ранняя модель основана на удаленных вызовах процедур
(Remote Procedure Calls, RPC).
⚫ Более современные модели основаны на взаимодействии
распределенных объектов. Пример – DCOM, COM+
48

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

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

49. Службы промежуточного уровня

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

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

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

51. Middleware

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

52. Middleware

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

53. Примеры использования middleware

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

54. Примеры использования middleware

Сравнение систем
55

55. Сравнение систем

Парадигмы построения
распределенных систем (создания
middleware)
1.
Распределенные объекты (клиенты
получают службы и ресурсы в форме
объектов, к которым они могут
обращаться). Примеры CORBA, DCOM и
Globe
Преимущества:
⚫ Вся распределенность может быть
относительно просто скрыта за интерфейсом
объектов
⚫ Считать объектами можно все, объекты могут
присутствовать фактически повсюду

56. Парадигмы построения распределенных систем (создания middleware)

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

57. Парадигмы построения распределенных систем

2.
Распределенные системы документов
(представление всех наблюдаемых объектов в
виде документов)
Преимущества:
Системы документов предлагают пользователям
представление о документах как простом и мощном
средстве обмена информацией.
Модель проста для понимания и часто близка тому, с чем
пользователи уже сталкивались в своей повседневной
деятельности (World Wide Web).

58. Парадигмы построения распределенных систем

Цели или правила
распределенных систем
Впервые предложены К. Дж. Дейтом
⚫
⚫
⚫
⚫
⚫
⚫
⚫
⚫
⚫
⚫
⚫
⚫
1. Локальная автономия.
2. Независимость от центрального узла.
3. Непрерывное функционирование.
4. Независимость от расположения.
5. Независимость от фрагментации.
6. Независимость от репликации.
7. Обработка распределенных запросов.
8. Управление распределенными транзакциями.
9. Независимость от аппаратного обеспечения.
10. Независимость от операционной системы.
11. Независимость от сети.
12. Независимость от СУБД.

59. Цели или правила распределенных систем

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

60. Цели или правила распределенных систем

1. Локальная автономия
⚫ Локальные данные принадлежат
локальным узлам и управляется
администраторами локальных БД.
⚫ Локальные процессы в РБД остаются
локальными.
⚫ Все процессы на локальном узле
контролируются только этим узлом.

61. 1. Локальная автономия

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

62. 1. Локальная автономия

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

63. 1. Локальная автономия

2. Независимость от
центрального узла
В системе не должно быть узла, без
которого система не может
функционировать, т.е. не должно
быть центральных служб.
⚫ причины:
центральный узел может быть "узким" местом
всей системы
2. система в таком случае становится уязвимой,
т.е. при повреждении центрального узла
может выйти из строя вся система
1.

64. 2. Независимость от центрального узла

II-ой критерий является следствием I-го – локальной
автономии
⚫
⚫
Локальная автономия предполагает, что все узлы должны
рассматриваться как равные.
Следовательно, не должно существовать никакой зависимости и
от центрального "основного" узла с некоторым централизованным
обслуживанием:
⚫ централизованной обработкой запросов,
⚫ централизованным управлением транзакциями
⚫ централизованным присвоением имен
Таким образом, вторая цель является логическим следствием
первой (если достигнута первая цель, то вторая – тем
более)
Однако, если локальная автономия не достигается в полной
мере, то даже достижение независимости от центрального
узла само по себе очень важно и может рассматриваться
как отдельная цель.

65. 2. Независимость от центрального узла

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

66. 3. Непрерывное функционирование

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

67. 3. Непрерывное функционирование

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

68. 4. Независимость от расположения (прозрачность расположения)

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

69. 4. Независимость от расположения (прозрачность расположения)

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

70. 5. Независимость от фрагментации

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

71. 6. Независимость от репликации

7. Обработка распределенных
запросов
Система должна автоматически
определять методы выполнения
соединения (объединения) данных
⚫ система должна обработать
распределенный запрос наиболее
оптимальным образом как с точки зрения
количества передаваемых данных, так и с
точки зрения времени их передачи (за
минимальное время передать
максимальное количество данных)

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

8. Управление распределенными
транзакциями
Протокол обработки распределённой
транзакции должен обеспечивать
выполнение четырёх основных свойств
транзакции:
⚫
⚫
⚫
⚫
атомарность,
согласованность,
изолированность и
продолжительность.
Существует два основных аспекта управления
обработкой транзакций, а именно:
⚫
⚫
управление восстановлением и
управление параллелизмом
Каждому из этих аспектов в распределенных
системах должно уделяться повышенное
внимание.

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

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

74. 9. Независимость от аппаратного обеспечения

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

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

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

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

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

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

Централизация и
децентрализация
Централизованное
управление
Децентрализованное
управление
Распределенное
управление

78. Централизация и децентрализация

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

79. Централизованное управление – предполагает наличие некого центра

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

80. Централизованное управление – предполагает наличие некого центра

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

81. Децентрализованное хранение информации

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

82. Распределенное управление (децентрализованные сети)

Распределенная и параллельная
обработка данных
Термин “распределенная обработка” означает
следующее: разные машины можно соединить в
коммуникационную сеть так, что одна задача
обработки данных распределяется между
несколькими машинами в сети, которые могут
быть удалены географически.
⚫ Термин "параллельная обработка" используется
практически с тем же значением, но в
"параллельных" системах разные машины с
физической точки зрения расположены близко
друг к другу
⚫ Распределенная обработка данных реализуется
на основе архитектуры «клиент-сервер»
⚫

83. Распределенная и параллельная обработка данных

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

84. Распределенная и параллельная обработка данных (другая трактовка)

85. Распределенная и параллельная обработка данных (другая трактовка)

Системы хранения данных
⚫
DAS (Direct-Attached Storage) — устройство внешней памяти, напрямую
подсоединенное к основному компьютеру и используемое только им. Простейший
пример DAS — встроенный жесткий диск.
⚫
NAS (network attached storage) — не сеть, а сетевое устройство хранения,
точнее, выделенный файловый сервер с подсоединенной к нему дисковой
подсистемой.
⚫
SAN (storage area network) — выделенная сеть устройств хранения, которая
позволяет множеству серверов использовать совокупный ресурс внешней памяти
без нагрузки на локальную сеть.

86. Системы хранения данных

Пример с DAS
• Компания занимается продакшеном видео и
использует DAS-устройство (со своим блоком
питания и охлаждением) для хранения больших
файлов и работы с ними без копирования.
• Этот DAS подключен напрямую к рабочей
станции — без промежуточного коммутатора.
• Монтажёр получает быстрый доступ к данным и
высокую производительность хранилища в
режиме реального времени при редактировании
видео.
• Но для доступа к видео с других устройств
компания использует NAS и облачные
хранилища.

87. Пример с DAS

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

88. Пример с NAS

Прим ер с SAN
• Финансовая компания использует SAN для
централизованного хранения и обработки критически
важных финансовых данных (транзакционные
записи, клиентские счета и история операций).
• SAN предоставляет быстрое, масштабируемое и
отказоустойчивое хранилище, которое расшаривается
между несколькими серверами для совместного
доступа и обработки данных.
• Отказоустойчивость достигается репликацией
данных между различными дата-центрами и
использованием RAID-массивов для защиты от сбоев
дисков.
• Масштабируемость — за счёт лёгкой интеграции
новых хранилищ и возможности расширения старых.
English     Русский Правила