Similar presentations:
Модели и архитектура
1. Модели и архитектура
Самарский государственный аэрокосмический университетимени академика С.П. Королёва
Занятие 2
Модели и архитектура
© Составление, Попов С.Б., Гаврилов А.В., 2012
Самара
2013
2. План занятия
Модели распределенных системАрхитектура распределенных систем
Слои и уровни
Возможные архитектурные решения
Самарский государственный аэрокосмический университет имени академика С.П. Королёва
2
3. Модели распределенных систем
Модели архитектурыФизическое
размещение компонентов между узлами
Взаимодействие между компонентами
Другие модели
Формальное
описание различных параметров и
свойств системы
Модели взаимодействия, обработки ошибок,
безопасности, …
Самарский государственный аэрокосмический университет имени академика С.П. Королёва
3
4. Модели архитектуры
Модельархитектуры распределенной
системы должна содержать решение
двух проблем:
физическое
размещение компонентов
между узлами
взаимодействие
между компонентами
Самарский государственный аэрокосмический университет имени академика С.П. Королёва
4
5. Модели архитектуры
Реальные функции отдельныхкомпонентов не указываются
Указываются:
Расположение
(размещение по узлам)
Шаблоны распределения данных и задач по их
обработке
Взаимодействие компонентов
Роли компонентов
Шаблоны взаимодействия
Самарский государственный аэрокосмический университет имени академика С.П. Королёва
5
6. Архитектура
Определяет разделение системы на наиболеекрупные составные части
Определяет конструктивные решения, которые
после их принятия с трудом поддаются
изменению
Отображает общий взгляд разработчиков на
результаты проектирования системы:
идентификация главных компонентов системы,
способов их взаимодействия, выбор
основополагающих решений, не подлежащих
изменению в будущем
Самарский государственный аэрокосмический университет имени академика С.П. Королёва
6
7. Основные принципы архитектуры
СогласованностьЧастичное знание системы позволяет предсказать остальное
Ортогональность
Функции независимы и специфицированы по отдельности
Соответствие
Включаются только функции, соответствующие существенным
требованиям к системе, нет ненужных функций
Экономичность
Отсутствие дублирования
Самарский государственный аэрокосмический университет имени академика С.П. Королёва
7
8. Основные принципы архитектуры
ПрозрачностьФункции должны быть известны пользователю
Общность
Если функция должна быть введена, ее следует вводить в таком
виде, чтобы она отвечала как можно большему числу назначений
Открытость
Можно использовать функцию иначе, чем это предполагалось при
проектировании
Полнота
Введенные функции должны с учетом экономических и
технологических ограничений как можно полнее соответствовать
требованиям и пожеланиям пользователя
Самарский государственный аэрокосмический университет имени академика С.П. Королёва
8
9. Преодоление сложности
Использованиепаттернов
проектирования
Разделение
системы на слои
(расслоение)
Самарский государственный аэрокосмический университет имени академика С.П. Королёва
9
10. Типовые решения – паттерны проектирования
Кристофер Александер(Christopher Alexander):
Каждое типовое решение описывает некую
повторяющуюся проблему и ключ к ее
разгадке, причем таким образом, что вы
можете пользоваться этим ключом
многократно, ни разу не придя к одному и
тому же результату
Самарский государственный аэрокосмический университет имени академика С.П. Королёва
10
11. Структура типовых решений
Название решенияНазначение (аннотация)
Мотивация, применимость
Принцип действия (структура, участники,
отношения)
Результаты
Реализация
Самарский государственный аэрокосмический университет имени академика С.П. Королёва
11
12. ПРАВИЛО ДОБАВЛЕНИЯ КОСВЕННОСТИ
Если есть проблема –введите посредника,
т.е. вместо прямого
взаимодействия
используйте косвенное
Самарский государственный аэрокосмический университет имени академика С.П. Королёва
12
13. Слои
Основная идея: независимостьнижележащих уровней от вышележащих
Основная задача: уменьшать сложность
систем, разделяя их на слои и сервисы
Слой
(уровень): группа сильно связанных и
закрытых элементов, реализующих одну
функциональность
Сервис: функциональность, обеспечиваемая
для вышестоящего слоя
Самарский государственный аэрокосмический университет имени академика С.П. Королёва
13
14. Примеры подхода
Архитектура сетевых протоколовФизический
уровень
Уровень соединения
Сетевой уровень
Транспортный уровень
Сеансовый уровень
Уровень представления
Прикладной уровень
Распределенные приложения
Аппаратура
Платформа
система
Промежуточное программное обеспечение
Приложения, сервисы
Операционная
Самарский государственный аэрокосмический университет имени академика С.П. Королёва
14
15. Монолитная система
Логикапредставления
Бизнес-логика
Логика
доступа к данным
База данных
Самарский государственный аэрокосмический университет имени академика С.П. Королёва
15
16. Двухслойная система
Логикапредставления
Бизнес-логика
Логика
доступа к данным
База данных
Самарский государственный аэрокосмический университет имени академика С.П. Королёва
16
17. Трехслойная система
Логикапредставления
Бизнес-логика
Логика
доступа к данным
База данных
Самарский государственный аэрокосмический университет имени академика С.П. Королёва
17
18. Три основных слоя
Слои:представление
(presentation)
домен (domen) – предметная область,
бизнес-логика
работа с данными (data source)
Рекомендуется различать:
Слой
(layer) – логическое разделение
Уровень или Ярус (tier) – физическое разделение
Самарский государственный аэрокосмический университет имени академика С.П. Королёва
18
19. Одноуровневая система
ПредставлениеДомен
Источник данных
Самарский государственный аэрокосмический университет имени академика С.П. Королёва
19
20. Система клиент/сервер (двухуровневая)
Самарский государственный аэрокосмический университет имени академика С.П. Королёва20
21.
Самарский государственный аэрокосмический университет имени академика С.П. Королёва21
22. Трехуровневая система
MiddlewareСамарский государственный аэрокосмический университет имени академика С.П. Королёва
22
23. Middleware
“Слой программного обеспечения, чья цель состоит втом, чтобы скрывать неоднородность и обеспечивать
удобную модель программирования для разработчиков”
Примеры
Предоставляет прикладной интерфейс программирования
CORBA (OMG)
.Net (Microsoft)
Remote Procedure Call (Sun)
Java Remote Method Invocation (Sun)
Технология EJB (Enterprise JavaBeans, Sun)
Может также предоставлять услуги (сервисы)
Самарский государственный аэрокосмический университет имени академика С.П. Королёва
23
24. Сервисы Middleware
СервисыИменования
Безопасности
Транзакций
Долговременного
хранения
Уведомления о событиях
…
Самарский государственный аэрокосмический университет имени академика С.П. Королёва
24
25. Основные парадигмы программирования
Message PassingVirtual Shared Memory
send()
Client
Server
Client
write()
receive()
Remote Procedure Call
read()
Distributed Object System
proc()
Client
Server
o.operat()
Server
Client
Самарский государственный аэрокосмический университет имени академика С.П. Королёва
Server
25
26. Требования к дизайну
Требования, накладываемые обеспечениемтребуемой производительности
Использование кэширования и репликации
Время отклика
Производительность
Балансировка нагрузки
Очень многие проблемы производительности системы
могут быть решены путем кэширования данных
Требование надежности
Самарский государственный аэрокосмический университет имени академика С.П. Королёва
26
27. Возможные архитектуры
Клиент-серверМодель
предоставления услуг пулом
серверов
Модель
прокси- и кэш- серверов
Модель
равных процессов
Самарский государственный аэрокосмический университет имени академика С.П. Королёва
27
28. Модель клиент-сервер
Наиболее распространенная и частоиспользуемая модель архитектуры
Самарский государственный аэрокосмический университет имени академика С.П. Королёва
28
29. Модель клиент-сервер
КлиентПроцесс, желающий получить доступ к данным, использует
ресурсы и/или выполняет действия на удаленном узле
Сервер
Процесс, управляющий данными и всеми другими
разделяемыми ресурсами, обеспечивающий клиентам
доступ к ресурсам и производящий вычисления
Взаимодействие
Пары запрос / результат
Пример
http-сервер: клиент (браузер) запрашивает страницу,
сервер поставляет страницу
Самарский государственный аэрокосмический университет имени академика С.П. Королёва
29
30. Модель «пул серверов»
Самарский государственный аэрокосмический университет имени академика С.П. Королёва30
31. Модель «пул серверов»
Услуги могут обеспечиваться многими серверамиРаспределенные между серверами объекты
Реплицированные объекты
Увеличение производительности, доступности и
отказоустойчивости
Но требуют координации копий / консистентности
представления
Например, высокодоступные серверы (порталы,
диллинговые центры), информационные службы
Серверы, обслуживающие распределенную БД
Самарский государственный аэрокосмический университет имени академика С.П. Королёва
31
32. Модель с прокси-сервером
Самарский государственный аэрокосмический университет имени академика С.П. Королёва32
33. Модель с прокси-сервером
Кэш: «близкая» копия наиболее частоиспользуемых данных
значительно повышает производительность
большинства приложений
Но требует усилий по поддержанию когерентности
Прокси-сервер: разделяемый кэш ресурсов
Еще сложнее, чем простой кэш…
Обычно используется (и хорошо подходит) для
доступа к веб-ресурсам
Самарский государственный аэрокосмический университет имени академика С.П. Королёва
33
34. Равноправные процессы (P2P)
Самарский государственный аэрокосмический университет имени академика С.П. Королёва34
35. Равноправные процессы (P2P)
Равные процессы: процессы, которые играютравные роли
Никакого абсолютного различия между клиентом /
сервером
Роли клиента и сервера различаются от вызова к
вызову (или со временем)
Увеличивает устойчивость к сбоям и
масштабируемость
Трудности с координацией
Примеры: BitTorrent, распределенное
вычисление
Самарский государственный аэрокосмический университет имени академика С.П. Королёва
35
36. Вариации модели клиент-сервер
Вариации возможны по следующимпараметрам:
Связь
инициируется сервером
Использование
мобильного кода или
мобильных агентов
Легкие
клиенты базирующиеся на потребности
пользователей в дешевых компьютерах и
простом управлении (тонкий клиент)
Самарский государственный аэрокосмический университет имени академика С.П. Королёва
36
37. Мобильный код
Мобильный код: код, посланный процессуклиента, чтобы выполнить его же задачу
Самарский государственный аэрокосмический университет имени академика С.П. Королёва
37
38. Мобильные агенты
Выполнение программы (код + данные), котораяперемещается между узлами в сети
Преимущество: всюду локальный доступ
Снижает затраты на коммуникации
Потенциальная угроза безопасности
Выполняет автономную задачу обычно под управлением
некоторого другого процесса
Имеет внутреннее знание и цели
Ограниченная применимость
Примеры: сбор данных из многих источников,
установка программ, программы типа червей
Самарский государственный аэрокосмический университет имени академика С.П. Королёва
38
39. Тонкие клиенты
Самарский государственный аэрокосмический университет имени академика С.П. Королёва39
40. Тонкие клиенты
Аппаратные(сетевые компьютеры, network computers)
Все файлы сохраняются на удаленном носителе
Минимум локального программного обеспечения
Любой локальный диск используется только под кэш
Программные
Реализуют только интерфейс пользователя на
локальном компьютере
Непосредственно программы работают на
вычислительном сервере
Самарский государственный аэрокосмический университет имени академика С.П. Королёва
40
41. Итоги
Использование модели слоев для снижениясложности системы
Middleware обеспечивает дополнительное удобство и
дополнительные сервисы
Выбор модели архитектуры в зависимости от
особенностей задачи
Клиент – сервер
Модель предоставления услуг пулом серверов
Модель прокси- и кэш-серверов
Модель равных процессов
Самарский государственный аэрокосмический университет имени академика С.П. Королёва
41
42. Спасибо за внимание!
43. Дополнительные источники
Таненбаум, Э. Распределенные системы. Принципы и парадигмы [Текст] / Э.Таненбаум, М. ван Стеем. – СПб. : Питер, 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.
Самарский государственный аэрокосмический университет имени академика С.П. Королёва