Что такое findslide.org?

FindSlide.org - это сайт презентаций, докладов, шаблонов в формате PowerPoint.


Для правообладателей

Обратная связь

Email: Нажмите что бы посмотреть 

Яндекс.Метрика

Презентация на тему Модели и архитектура

Содержание

План занятияМодели распределенных системАрхитектура распределенных системСлои и уровниВозможные архитектурные решения
Модели и архитектура© Составление, Попов С.Б., Гаврилов А.В., 2012Занятие 2 План занятияМодели распределенных системАрхитектура распределенных системСлои и уровниВозможные архитектурные решения Модели распределенных системМодели архитектуры Физическое размещение компонентов между узламиВзаимодействие между компонентамиДругие моделиФормальное Модели архитектурыМодель архитектуры распределенной системы должна содержать решение двух проблем:физическое размещение компонентов между узламивзаимодействие между компонентами Модели архитектурыРеальные функции отдельных компонентов не указываютсяУказываются:Расположение (размещение по узлам)Шаблоны распределения данных АрхитектураОпределяет разделение системы на наиболее крупные составные частиОпределяет конструктивные решения, которые после Основные принципы архитектурыСогласованность Частичное знание системы позволяет предсказать остальноеОртогональность Функции независимы и Основные принципы архитектурыПрозрачность Функции должны быть известны пользователюОбщность Если функция должна быть Преодоление сложностиИспользование паттернов проектирования Разделение системы на слои (расслоение) Типовые решения –  паттерны проектирования	Кристофер Александер  (Christopher Alexander):	Каждое типовое решение Структура типовых решенийНазвание решенияНазначение (аннотация)Мотивация, применимостьПринцип действия (структура, участники, отношения)РезультатыРеализация ПРАВИЛО ДОБАВЛЕНИЯ КОСВЕННОСТИ	Если есть проблема – введите посредника,  т.е. вместо прямого взаимодействия используйте косвенное СлоиОсновная идея: независимость нижележащих уровней от вышележащихОсновная задача: уменьшать сложность систем, разделяя Примеры подходаАрхитектура сетевых протоколовФизический уровеньУровень соединенияСетевой уровеньТранспортный уровеньСеансовый уровеньУровень представленияПрикладной уровеньРаспределенные приложенияАппаратураОперационная системаПромежуточное программное обеспечениеПриложения, сервисы Монолитная системаЛогикапредставленияБизнес-логикаЛогикадоступа к данным Двухслойная системаЛогикапредставленияБизнес-логикаЛогикадоступа к данным Трехслойная системаЛогикапредставленияБизнес-логикаЛогикадоступа к данным Три основных слояСлои:представление (presentation)домен (domen) – предметная область,  бизнес-логикаработа с данными Одноуровневая системаПредставлениеДоменИсточник данных Система клиент/сервер (двухуровневая) Трехуровневая системаMiddleware Middleware“Слой программного обеспечения, чья цель состоит в том, чтобы скрывать неоднородность и Сервисы MiddlewareСервисыИменованияБезопасностиТранзакцийДолговременного храненияУведомления о событиях … Основные парадигмы программированияMessage PassingClientServersend()receive()Remote Procedure CallClientServerproc()Virtual Shared MemoryClientServerwrite()read()Distributed Object SystemClientServero.operat() Требования к дизайнуТребования, накладываемые обеспечением требуемой производительностиВремя откликаПроизводительностьБалансировка нагрузкиИспользование кэширования и репликацииОчень Возможные архитектурыКлиент-серверМодель предоставления услуг пулом серверов Модель прокси- и кэш- серверовМодель равных процессов Модель клиент-серверНаиболее распространенная и часто используемая модель архитектуры Модель клиент-серверКлиент Процесс, желающий получить доступ к данным, использует ресурсы и/или выполняет Модель «пул серверов» Модель «пул серверов»Услуги могут обеспечиваться многими серверами Распределенные между серверами объектыРеплицированные объектыУвеличение Модель с прокси-сервером Модель с прокси-серверомКэш: «близкая» копия наиболее часто используемых данныхзначительно повышает производительность большинства Равноправные процессы (P2P) Равноправные процессы (P2P)Равные процессы: процессы, которые играют равные ролиНикакого абсолютного различия между Вариации модели клиент-серверВариации возможны по следующим параметрам:Связь инициируется серверомИспользование мобильного кода или Мобильный кодМобильный код: код, посланный процессу клиента, чтобы выполнить его же задачу Мобильные агентыВыполнение программы (код + данные), которая перемещается между узлами в сетиВыполняет Тонкие клиенты Тонкие клиентыАппаратные (сетевые компьютеры, network computers)Все файлы сохраняются на удаленном носителеМинимум локального ИтогиИспользование модели слоев для снижения сложности системыMiddleware обеспечивает дополнительное удобство и дополнительные Спасибо за внимание! Дополнительные источникиТаненбаум, Э. Распределенные системы. Принципы и парадигмы [Текст] / Э. Таненбаум,
Слайды презентации

Слайд 2 План занятия
Модели распределенных систем

Архитектура распределенных систем

Слои и уровни

Возможные

План занятияМодели распределенных системАрхитектура распределенных системСлои и уровниВозможные архитектурные решения

архитектурные решения


Слайд 3 Модели распределенных систем
Модели архитектуры
Физическое размещение компонентов между

Модели распределенных системМодели архитектуры Физическое размещение компонентов между узламиВзаимодействие между компонентамиДругие

узлами
Взаимодействие между компонентами

Другие модели
Формальное описание различных параметров и свойств

системы
Модели взаимодействия, обработки ошибок, безопасности, …

Слайд 4 Модели архитектуры
Модель архитектуры распределенной системы должна содержать решение

Модели архитектурыМодель архитектуры распределенной системы должна содержать решение двух проблем:физическое размещение компонентов между узламивзаимодействие между компонентами

двух проблем:

физическое размещение компонентов между узлами

взаимодействие между компонентами


Слайд 5 Модели архитектуры
Реальные функции отдельных компонентов не указываются
Указываются:
Расположение (размещение

Модели архитектурыРеальные функции отдельных компонентов не указываютсяУказываются:Расположение (размещение по узлам)Шаблоны распределения

по узлам)
Шаблоны распределения данных и задач по их обработке
Взаимодействие

компонентов
Роли компонентов
Шаблоны взаимодействия

Слайд 6 Архитектура
Определяет разделение системы на наиболее крупные составные части
Определяет

АрхитектураОпределяет разделение системы на наиболее крупные составные частиОпределяет конструктивные решения, которые

конструктивные решения, которые после их принятия с трудом поддаются

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

Слайд 7 Основные принципы архитектуры
Согласованность Частичное знание системы позволяет предсказать остальное

Ортогональность Функции

Основные принципы архитектурыСогласованность Частичное знание системы позволяет предсказать остальноеОртогональность Функции независимы

независимы и специфицированы по отдельности

Соответствие Включаются только функции, соответствующие существенным

требованиям к системе, нет ненужных функций

Экономичность Отсутствие дублирования

Слайд 8 Основные принципы архитектуры
Прозрачность Функции должны быть известны пользователю
Общность Если функция

Основные принципы архитектурыПрозрачность Функции должны быть известны пользователюОбщность Если функция должна

должна быть введена, ее следует вводить в таком виде,

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

Слайд 9 Преодоление сложности

Использование паттернов проектирования

Разделение системы на слои

Преодоление сложностиИспользование паттернов проектирования Разделение системы на слои (расслоение)

(расслоение)


Слайд 10 Типовые решения – паттерны проектирования
Кристофер Александер (Christopher Alexander):

Каждое

Типовые решения – паттерны проектирования	Кристофер Александер (Christopher Alexander):	Каждое типовое решение описывает

типовое решение описывает некую повторяющуюся проблему и ключ к

ее разгадке, причем таким образом, что вы можете пользоваться этим ключом многократно, ни разу не придя к одному и тому же результату

Слайд 11 Структура типовых решений
Название решения
Назначение (аннотация)
Мотивация, применимость
Принцип действия (структура,

Структура типовых решенийНазвание решенияНазначение (аннотация)Мотивация, применимостьПринцип действия (структура, участники, отношения)РезультатыРеализация

участники, отношения)
Результаты
Реализация


Слайд 12 ПРАВИЛО ДОБАВЛЕНИЯ КОСВЕННОСТИ
Если есть проблема – введите посредника,

ПРАВИЛО ДОБАВЛЕНИЯ КОСВЕННОСТИ	Если есть проблема – введите посредника, т.е. вместо прямого взаимодействия используйте косвенное

т.е. вместо прямого взаимодействия используйте косвенное


Слайд 13 Слои
Основная идея: независимость нижележащих уровней от вышележащих
Основная задача:

СлоиОсновная идея: независимость нижележащих уровней от вышележащихОсновная задача: уменьшать сложность систем,

уменьшать сложность систем, разделяя их на слои и сервисы
Слой

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

Слайд 14 Примеры подхода
Архитектура сетевых протоколов
Физический уровень
Уровень соединения
Сетевой уровень
Транспортный уровень
Сеансовый

Примеры подходаАрхитектура сетевых протоколовФизический уровеньУровень соединенияСетевой уровеньТранспортный уровеньСеансовый уровеньУровень представленияПрикладной уровеньРаспределенные приложенияАппаратураОперационная системаПромежуточное программное обеспечениеПриложения, сервисы

уровень
Уровень представления
Прикладной уровень
Распределенные приложения
Аппаратура
Операционная система
Промежуточное программное обеспечение
Приложения, сервисы


Слайд 15

Монолитная система
Логика
представления
Бизнес-логика
Логика
доступа к данным

Монолитная системаЛогикапредставленияБизнес-логикаЛогикадоступа к данным

Слайд 16 Двухслойная система


Логика
представления
Бизнес-логика

Логика
доступа к данным

Двухслойная системаЛогикапредставленияБизнес-логикаЛогикадоступа к данным

Слайд 17 Трехслойная система




Логика
представления

Бизнес-логика

Логика
доступа к данным

Трехслойная системаЛогикапредставленияБизнес-логикаЛогикадоступа к данным

Слайд 18 Три основных слоя
Слои:
представление (presentation)
домен (domen) – предметная область,

Три основных слояСлои:представление (presentation)домен (domen) – предметная область, бизнес-логикаработа с данными

бизнес-логика
работа с данными (data source)

Рекомендуется различать:
Слой (layer) – логическое

разделение
Уровень или Ярус (tier) – физическое разделение

Слайд 19 Одноуровневая система



Представление
Домен
Источник данных



Одноуровневая системаПредставлениеДоменИсточник данных

Слайд 20 Система клиент/сервер (двухуровневая)













Система клиент/сервер (двухуровневая)

Слайд 22 Трехуровневая система














Middleware

Трехуровневая системаMiddleware

Слайд 23 Middleware
“Слой программного обеспечения, чья цель состоит в том,

Middleware“Слой программного обеспечения, чья цель состоит в том, чтобы скрывать неоднородность

чтобы скрывать неоднородность и обеспечивать удобную модель программирования для

разработчиков”
Предоставляет прикладной интерфейс программирования

Примеры
CORBA (OMG)
.Net (Microsoft)
Remote Procedure Call (Sun)
Java Remote Method Invocation (Sun)
Технология EJB (Enterprise JavaBeans, Sun)
Может также предоставлять услуги (сервисы)

Слайд 24 Сервисы Middleware
Сервисы
Именования
Безопасности
Транзакций
Долговременного хранения
Уведомления о событиях

Сервисы MiddlewareСервисыИменованияБезопасностиТранзакцийДолговременного храненияУведомления о событиях …

Слайд 25 Основные парадигмы программирования
Message Passing
Client
Server
send()
receive()
Remote Procedure Call
Client
Server
proc()
Virtual Shared Memory
Client
Server
write()
read()

Distributed

Основные парадигмы программированияMessage PassingClientServersend()receive()Remote Procedure CallClientServerproc()Virtual Shared MemoryClientServerwrite()read()Distributed Object SystemClientServero.operat()

Object System
Client
Server
o.operat()



Слайд 26 Требования к дизайну
Требования, накладываемые обеспечением требуемой производительности
Время отклика
Производительность
Балансировка

Требования к дизайнуТребования, накладываемые обеспечением требуемой производительностиВремя откликаПроизводительностьБалансировка нагрузкиИспользование кэширования и

нагрузки

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

быть решены путем кэширования данных

Требование надежности

Слайд 27 Возможные архитектуры
Клиент-сервер

Модель предоставления услуг пулом серверов

Модель прокси-

Возможные архитектурыКлиент-серверМодель предоставления услуг пулом серверов Модель прокси- и кэш- серверовМодель равных процессов

и кэш- серверов

Модель равных процессов


Слайд 28 Модель клиент-сервер
Наиболее распространенная и часто используемая модель архитектуры

Модель клиент-серверНаиболее распространенная и часто используемая модель архитектуры

Слайд 29 Модель клиент-сервер
Клиент Процесс, желающий получить доступ к данным, использует

Модель клиент-серверКлиент Процесс, желающий получить доступ к данным, использует ресурсы и/или

ресурсы и/или выполняет действия на удаленном узле
Сервер Процесс, управляющий данными

и всеми другими разделяемыми ресурсами, обеспечивающий клиентам доступ к ресурсам и производящий вычисления
Взаимодействие Пары запрос / результат
Пример http-сервер: клиент (браузер) запрашивает страницу, сервер поставляет страницу

Слайд 30 Модель «пул серверов»

Модель «пул серверов»

Слайд 31 Модель «пул серверов»
Услуги могут обеспечиваться многими серверами
Распределенные

Модель «пул серверов»Услуги могут обеспечиваться многими серверами Распределенные между серверами объектыРеплицированные

между серверами объекты
Реплицированные объекты
Увеличение производительности, доступности и отказоустойчивости
Но требуют

координации копий / консистентности представления
Например, высокодоступные серверы (порталы, диллинговые центры), информационные службы
Серверы, обслуживающие распределенную БД

Слайд 32 Модель с прокси-сервером

Модель с прокси-сервером

Слайд 33 Модель с прокси-сервером
Кэш: «близкая» копия наиболее часто используемых

Модель с прокси-серверомКэш: «близкая» копия наиболее часто используемых данныхзначительно повышает производительность

данных
значительно повышает производительность большинства приложений
Но требует усилий по поддержанию

когерентности

Прокси-сервер: разделяемый кэш ресурсов
Еще сложнее, чем простой кэш…
Обычно используется (и хорошо подходит) для доступа к веб-ресурсам

Слайд 34 Равноправные процессы (P2P)

Равноправные процессы (P2P)

Слайд 35 Равноправные процессы (P2P)
Равные процессы: процессы, которые играют равные

Равноправные процессы (P2P)Равные процессы: процессы, которые играют равные ролиНикакого абсолютного различия

роли
Никакого абсолютного различия между клиентом / сервером
Роли клиента и

сервера различаются от вызова к вызову (или со временем)
Увеличивает устойчивость к сбоям и масштабируемость
Трудности с координацией
Примеры: BitTorrent, распределенное вычисление

Слайд 36 Вариации модели клиент-сервер
Вариации возможны по следующим параметрам:
Связь инициируется сервером
Использование

Вариации модели клиент-серверВариации возможны по следующим параметрам:Связь инициируется серверомИспользование мобильного кода

мобильного кода или мобильных агентов
Легкие клиенты базирующиеся на потребности

пользователей в дешевых компьютерах и простом управлении (тонкий клиент)

Слайд 37 Мобильный код
Мобильный код: код, посланный процессу клиента, чтобы

Мобильный кодМобильный код: код, посланный процессу клиента, чтобы выполнить его же задачу

выполнить его же задачу


Слайд 38 Мобильные агенты
Выполнение программы (код + данные), которая перемещается

Мобильные агентыВыполнение программы (код + данные), которая перемещается между узлами в

между узлами в сети
Выполняет автономную задачу обычно под управлением

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

Слайд 39 Тонкие клиенты

Тонкие клиенты

Слайд 40 Тонкие клиенты
Аппаратные (сетевые компьютеры, network computers)
Все файлы сохраняются на

Тонкие клиентыАппаратные (сетевые компьютеры, network computers)Все файлы сохраняются на удаленном носителеМинимум

удаленном носителе
Минимум локального программного обеспечения
Любой локальный диск используется только

под кэш

Программные
Реализуют только интерфейс пользователя на локальном компьютере
Непосредственно программы работают на вычислительном сервере

Слайд 41 Итоги
Использование модели слоев для снижения сложности системы
Middleware обеспечивает

ИтогиИспользование модели слоев для снижения сложности системыMiddleware обеспечивает дополнительное удобство и

дополнительное удобство и дополнительные сервисы

Выбор модели архитектуры в зависимости

от особенностей задачи
Клиент – сервер
Модель предоставления услуг пулом серверов
Модель прокси- и кэш-серверов
Модель равных процессов

Слайд 42 Спасибо за внимание!

Спасибо за внимание!

  • Имя файла: modeli-i-arhitektura.pptx
  • Количество просмотров: 131
  • Количество скачиваний: 0