Similar presentations:
Причины создания распределенных приложений
1. Распределенные системы
Самарский государственный аэрокосмический университетимени академика С.П. Королёва
Занятие 1
Распределенные системы
© Составление, Попов С.Б., Гаврилов А.В., 2012
Самара
2013
2. План занятия
Понятие распределенной системыПричины создания
“Законы” создания
Принципы построения
Проблемы распределенности
Требования к распределенным системам
Сложности реализации
Самарский государственный аэрокосмический университет имени академика С.П. Королёва
2
3. Определения
«...система нескольких автономных вычислительныхузлов, взаимодействующих для выполнения общей цели.»
«Система, чьи компоненты размещены на различных
узлах, взаимодействующие и управляемые только
посредством передачи сообщений.»
«Система, состоящая из набора двух или более
независимых узлов, которые координируют свою работу
посредством синхронного или асинхронного обмена
сообщениями.»
Самарский государственный аэрокосмический университет имени академика С.П. Королёва
3
4. Определения
«Распределенная система – это набор независимыхузлов (компьютеров), которые представляются
пользователю как единая система.»
«Распределенная система – это собрание независимых
компьютеров, соединенных сетью и программным
обеспечением, обеспечивающим их совместное
функционирование.»
«…я не могу объяснить, что такое распределенная
система, но узнаю ее как только мне ее покажут.»
Самарский государственный аэрокосмический университет имени академика С.П. Королёва
4
5. Причины создания распределенных приложений
Необходимостьсовместного
использования общих ресурсов:
Данные
Устройства
Приложения
Самарский государственный аэрокосмический университет имени академика С.П. Королёва
5
6. Совместное использование данных
ПрограммаПрограмма
Данные
Самарский государственный аэрокосмический университет имени академика С.П. Королёва
6
7. ПЕРВЫЙ ЗАКОН СОЗДАНИЯ РАСПРЕДЕЛЕННЫХ СИСТЕМ
НЕ СОЗДАВАЙТЕРАСПРЕДЕЛЕННЫЕ
СИСТЕМЫ!
Самарский государственный аэрокосмический университет имени академика С.П. Королёва
7
8. Репликация данных
ПрограммаПрограмма
Данные
Данные
Самарский государственный аэрокосмический университет имени академика С.П. Королёва
8
9. Совместное использование данных
ПрограммаПрограмма
Данные
Самарский государственный аэрокосмический университет имени академика С.П. Королёва
9
10. ВТОРОЙ ЗАКОН СОЗДАНИЯ РАСПРЕДЕЛЕННЫХ СИСТЕМ
МИНИМИЗИРУЙТЕВЗАИМОДЕЙСТВИЕ
РАСПРЕДЕЛЕННЫХ
ЧАСТЕЙ!
Самарский государственный аэрокосмический университет имени академика С.П. Королёва
10
11. Причины создания распределенных приложений
Улучшение функциональныххарактеристик системы:
Производительность
Повышение
надежности, устойчивости к сбоям
Специализация
компонентов: упрощение и
удешевление
Отношение
цена/производительность
Самарский государственный аэрокосмический университет имени академика С.П. Королёва
11
12. Принципы построения
Функциональноеразделение
Естественное
разделение
Балансировка
нагрузки
Самарский государственный аэрокосмический университет имени академика С.П. Королёва
12
13. Функциональное разделение
Узлы выполняют различные задачиКлиент
/ Сервер
Хост / Терминал
Сбор данных / Обработка данных
Решение – создание разделяемых
сервисов
Сервисы
Управляют
набором ресурсов
Предоставляют услуги пользователям
Самарский государственный аэрокосмический университет имени академика С.П. Королёва
13
14. Естественное разделение
Разделение определяется задачейСистема
Сеть
обслуживания сети супермаркетов
для обеспечения коллективной работы
Функциональная нагрузка одинаковая у
однотипных узлов
Самарский государственный аэрокосмический университет имени академика С.П. Королёва
14
15. Балансировка нагрузки
Функциональность может повторятьсяЗадачи назначаются на процессоры таким
образом, чтобы нагрузка была равномерной
Такой подход обеспечивает наибольшую
эффективность использования
вычислительных ресурсов
Самарский государственный аэрокосмический университет имени академика С.П. Королёва
15
16. Заблуждения относительно компьютерных сетей
1.2.
3.
4.
5.
6.
7.
8.
Безотказность, надежность сетей
Нулевая латентность
Пропускная способность не ограничена
Сеть является защищенной
Топология неизменна
Есть один администратор
Транспортные затраты – нулевые
Сеть является однородной
Самарский государственный аэрокосмический университет имени академика С.П. Королёва
16
17. Последствия распределенности
ПараллельностьПараллельное
выполнение (независимые процессы)
Вопросы синхронизации
«Гонки потоков» (concurrency)
Совместное
использование ресурсов
Коллизии при доступе
Данные, сервисы, устройства
Типичные
проблемы
Взаимные блокировки (deadlocks)
Ненадежные коммуникации
Самарский государственный аэрокосмический университет имени академика С.П. Королёва
17
18. Последствия распределенности
Нет “глобального” времениАсинхронная передача сообщений
Ограниченная точность синхронизации часов
Нет состояния системы
В распределенной системе нет ни одного процесса,
который бы знал текущее глобальное состояние
системы
Следствие параллелизма и механизма передачи
данных
Самарский государственный аэрокосмический университет имени академика С.П. Королёва
18
19. Последствия распределенности
СбоиПроцессы выполняются автономно, изолированно
Неудачи отдельных процессов могут остаться
необнаруженными
Отдельные процессы могут не подозревать об
общесистемном сбое
Сбои происходят чаще, чем в централизованной
системе
Новые причины сбоев (которых не было в монолитных
системах)
Сетевые сбои изолируют процессы и фрагментируют
систему на изолированные части
Самарский государственный аэрокосмический университет имени академика С.П. Королёва
19
20. Требования
ОткрытостьБезопасность
Масштабируемость
Механизмы обработки ошибок и
восстановления после сбоев
Методы решения проблем параллелизма
Прозрачность
Управляемость
Самарский государственный аэрокосмический университет имени академика С.П. Королёва
20
21. Открытость
Гарантирует расширяемостьВозможность повторного использования
Важные факторы:
Наличие четких спецификаций
Наличие полной документации
Опубликованные интерфейсы
Тестирование и проверка на многих
платформах
Использование открытых протоколов и
стандартов
Самарский государственный аэрокосмический университет имени академика С.П. Королёва
21
22. Безопасность
Физическая распределенность означаетвозможность доступа злоумышленников к
компонентам
Три компонента:
Защищенность
Целостность
Доступность
Задача: посылка важной информации по
сети безопасно и эффективно
Самарский государственный аэрокосмический университет имени академика С.П. Королёва
22
23. Безопасность
Сценарий 1: Доступ к результатам тестированияОткуда мы знаем, что пользователь – преподаватель,
имеющий доступ к данным?
Аутентификация и авторизация
Сценарий 2: Посылка номера кредитной карты в
интернет-магазин
Никто кроме получателя не должен прочитать данные
Криптография
Самарский государственный аэрокосмический университет имени академика С.П. Королёва
23
24. Безопасность
Системы распределенного храненияШифрование
данных
Обеспечение целостности данных
Нерешенные проблемы
Атаки
типа DoS (отказы в обслуживании)
Безопасность мобильного кода
Непредсказуемые эффекты
Может вести себя подобно троянскому коню…
Самарский государственный аэрокосмический университет имени академика С.П. Королёва
24
25. Масштабируемость
Распределенная система масштабируема,если она остается эффективной при
увеличении числа обслуживаемых
пользователей или ресурсов
Проблемы:
Контроль
стоимости ресурсов
Контроль потерь производительности
Самарский государственный аэрокосмический университет имени академика С.П. Королёва
25
26. Масштабируемость
Стоимость физических ресурсовРастет при увеличении числа пользователей
Не должна расти быстрее, чем O (n), где
n – количество пользователей
Потери производительности
Увеличиваются с ростом размера данных
(и количества пользователей)
Время поиска не должно расти быстрее, чем
O (log n), где n – размер данных
Самарский государственный аэрокосмический университет имени академика С.П. Королёва
26
27. Масштабируемость
Существуют естественные ограниченияНекоторые
определяются легко
Другие труднее
Обход узких мест
Децентрализация
алгоритмов
Пример – Domain Name Service (DNS)
Тиражирование и кэширование данных
Самарский государственный аэрокосмический университет имени академика С.П. Королёва
27
28. Обработка сбоев
Сбои возникают чаще, чем вцентрализованных системах, но обычно
носят локальный характер
Обработка сбоев включает в себя:
Определение
факта сбоя
(может быть невозможно)
Маскирование
Восстановление
Самарский государственный аэрокосмический университет имени академика С.П. Королёва
28
29. Обработка сбоев
ДиагностикаВ
В
ряде случаев возможна
Ошибки передачи могут быть обнаружены с
помощью контрольных сумм
ряде случаев невозможна
Невозможно определить, удаленный сервер не
работает или просто очень загружен?
Самарский государственный аэрокосмический университет имени академика С.П. Королёва
29
30. Обработка сбоев
МаскированиеМногие
сбои могут быть скрыты
Маскирование
может быть невозможно
Использование
маскирования не всегда
приводит к правильным последствиям
Самарский государственный аэрокосмический университет имени академика С.П. Королёва
30
31. Прозрачность
Прозрачность – это сокрытиегетерогенной и распределенной структуры
системы таким образом, чтобы
пользователю система представлялась
монолитной
Степень прозрачности взаимосвязана с
производительностью
Самарский государственный аэрокосмический университет имени академика С.П. Королёва
31
32. Прозрачность
Прозрачность доступаСкрывается разница в представлении данных и доступе к
ресурсам
Прозрачность расположения
Скрывается местоположения ресурса
Прозрачность переноса
Скрывается факт перемещения ресурса в другое место
Прозрачность смены местоположения
Скрывается факт перемещения ресурса в другое
место в процессе обработки
Самарский государственный аэрокосмический университет имени академика С.П. Королёва
32
33. Прозрачность
Прозрачность репликацииСкрывается факт и особенности репликации ресурса
Прозрачность параллелизма
Возможность нескольким процессам параллельно
работать с ресурсами, не оказывая влияния друг на
друга
Прозрачность обработки ошибок
Защита программных компонентов от сбоев,
произошедших в других программных компонентах;
восстановление после сбоев
Самарский государственный аэрокосмический университет имени академика С.П. Королёва
33
34. Прозрачность
Прозрачность мобильностиВозможность переноса приложения между
платформами, без его переделки
Прозрачность производительности
Возможность конфигурации системы с целью
увеличения производительности при изменении
состава платформы выполнения
Прозрачность масштабируемости
Возможность увеличения производительности без
изменения структуры программной системы и
используемых алгоритмов
Самарский государственный аэрокосмический университет имени академика С.П. Королёва
34
35. Прозрачность
Критическиважными являются:
Прозрачность
доступа
Прозрачность
расположения
Прозрачность
паралеллизма
Самарский государственный аэрокосмический университет имени академика С.П. Королёва
35
36. Управляемость
Распределенные ресурсы не имеют центральнойточки управления
Локальная оптимизация не всегда означает
глобальную оптимизацию
Нужно учитывать гетерогенность и другие особенности
Нужен глобальный взгляд на проблему
Он не всегда возможен (есть системы, никому
конкретно не принадлежащие)
Самарский государственный аэрокосмический университет имени академика С.П. Королёва
36
37. Сложности при реализации
Выбор архитектурыГетерогенность среды
Сложность развертывания
Сложность отладки
Самарский государственный аэрокосмический университет имени академика С.П. Королёва
37
38. Архитектура
Важнейшие характеристики системы оченьсильно зависят от выбранной архитектуры
Интерфейс
модулей системы определяет
количество «нелокальных» вызовов
Практическая невозможность отказа от принятых
в начале проектирования неверных решений
Решение: использование широко известных
шаблонов (паттернов) архитектур
Самарский государственный аэрокосмический университет имени академика С.П. Королёва
38
39. Гетерогенность
Гетерогенные – разнородныеРазличаются:
Сетевые инфраструктуры
Оборудование (например, Intel и Motorolla)
Программное обеспечение (например, UNIX sockets и Winsock
calls)
Языки программирования
Представления данных
Различные компоненты системы выполняются на
различных платформах
Различия должны быть скрыты
Самарский государственный аэрокосмический университет имени академика С.П. Королёва
39
40. Гетерогенность
Интерфейсы и реализация могут бытьразными, но базовые концепции обычно
неизменны
Средства борьбы с гетерогенностью –
стандарты
Решения:
Использование
распространенных открытых
стандартов и протоколов
Использование промежуточного программного
обеспечения (middleware)
Самарский государственный аэрокосмический университет имени академика С.П. Королёва
40
41. Гетерогенность
Middleware: промежуточный программный слойПозволяет гетерогенным узлам взаимодействовать
Определяет однородную вычислительную модель
Поддерживает один или несколько языков
программирования
Обеспечивает поддержку распределенных
приложений
Вызов удаленных объектов
Удаленный вызов SQL
Распределенная обработка транзакций
Примеры: CORBA, JavaEE, .Net
Самарский государственный аэрокосмический университет имени академика С.П. Королёва
41
42. Сложность развертывания
ФрагментацияКонфигурация
Разделение приложения на модули развертывания
Связь модулей друг с другом (зависимости)
Размещение
Выгрузка модулей в целевую систему
Распределение вычислительных модулей между
узлами (статическое или динамическое)
Использование специализированных
инструментальных средств (deployment tools)
Самарский государственный аэрокосмический университет имени академика С.П. Королёва
42
43. Сложность отладки
Нет глобального состоянияПараллельность приводит к
неповторяемости (невоспоизводимости)
результатов выполнения
Компоненты распределены по разным
узлам
Самарский государственный аэрокосмический университет имени академика С.П. Королёва
43
44. Предварительные итоги
Распределенная система:Автономные (но соединенные средой передачи
данных) узлы
Взаимодействие посредством передачи сообщений
Много доводов в пользу того, что
распределенные системы нужны и их нужно
уметь строить
Распределенные системы существуют и их нужно
уметь развивать и поддерживать
При разработке распределенных систем
возникают специфические проблемы
Самарский государственный аэрокосмический университет имени академика С.П. Королёва
44
45. Спасибо за внимание!
46. Дополнительные источники
Таненбаум, Э. Распределенные системы. Принципы и парадигмы [Текст] / Э.Таненбаум, М. ван Стеем. – СПб. : Питер, 2003. – 877 с.
Эндрюс, Г.Р. Основы многопоточного, параллельного и распределенного
программирования [Текст] / Грегори Р. Эндрюс. – М. : Издательский дом «Вильямс»,
2003. – 512 с.
Фаулер, М. Архитектура корпоративных программных приложений [Текст] / Мартин
Фаулер. – М. : Издательский дом «Вильямс», 2004. – 544 с.
Обзор распределённых систем [Электронный ресурс]. – Режим доступа:
http://masters.donntu.edu.ua/2008/fvti/prihodko/library/dist2.htm , дата доступа:
21.10.2011.
Распределённые вычисления [Электронный ресурс]. – Режим доступа:
http://ru.wikipedia.org/wiki/Распределенные_вычисления, дата доступа: 21.10.2011.
Самарский государственный аэрокосмический университет имени академика С.П. Королёва