Lecture_3.pptx
- Количество слайдов: 17
Архитектурные паттерны
Определение набор принципов, высокоуровневая схема, обеспечивающая абстрактную инфраструктуру для семейства систем
Клиент/сервер Система разделяется на два приложения, где клиент выполняет запросы к серверу. • Web, приложения Windows или др OS • Client-Queue-Client • Peer-To-Peer (P 2 P) • Thin client – App Server
Клиент/сервер Большая безопасность Централизованный доступ Простота обслуживания Связывание данных и логики Зависимость от центрального сервера
Компонентная архитектура Дизайн приложения разлагается на функциональные или логические компоненты с возможностью повторного использования, предоставляющие строгие интерфейсы связи. • • • Пригодность для повторного использования Замещаемость Независимость от контекста (Stateless) Расширяемость Инкапсуляция Независимость
Компонентная архитектура Простота развертывания Меньшая стоимость Простота разработки Возможность повторного использования Техническое упрощение Сложность интерфейсов Сложный маршалинг
Дизайн на основе предметной области Domain Driven Design (DDD) Объектно-ориентированный архитектурный стиль, ориентированный на моделирование сферы деловой активности и определяющий бизнес-объекты на основании сущностей этой сферы. Модель предметной области может рассматриваться как каркас, на основании которого будут реализовываться решения.
Дизайн на основе предметной области Обмен информацией без техн. жаргона Расширяемость Удобство тестирования Семантическая сложность языка описания
Многослойная архитектура Функциональные области приложения разделяются на многослойные группы (уровни). Слой (layer) - логическое разделение функциональности Уровень (tier) - физическое разворачивание на разных системах
Многослойная архитектура Абстракция Инкапсуляция Четкие интерфейсы Высокая связность внутри слоя Повторное использование Слабое связывание Неочевидность разделения на слои Неочевидность разделения на уровни
Шина сообщений Использование фреймворка, который может принимать и отправлять сообщения по одному или более каналам связи, так что приложения получают возможность взаимодействовать, не располагая конкретными сведениями друг о друге (Publish/Subscribe) • • Основанное на сообщениях взаимодействие Сложная логика обработки Изменение логики обработки Интеграция с разными инфраструктурами (стандарты)
Шина сообщений Расширяемость Невысокая сложность Гибкость Слабое связывание Масштабируемость Простота приложения Непредсказуемость Сложность отладки
Объектно-ориентированная архитектура Парадигма проектирования, основанная на распределении ответственности приложения или системы между отдельными многократно используемыми и самостоятельными объектами. Система рассматривается не как набор подпрограмм и команд, а как наборы взаимодействующих объектов. Объекты обособлены, независимы и слабо связаны; обмен данными между ними происходит через интерфейсы путем вызова методов и свойств других объектов и отправки/приема сообщений.
Объектно-ориентированная архитектура Понятность Возможность повторного использования Тестируемость Расширяемость Высокая связность внутри объекта Потенциально высокая связность между объектами в позних версиях
Сервисно-ориентрированная архитектура (SOA) Описывает приложения, предоставляющие и потребляющие функциональность в виде сервисов с помощью контрактов и сообщений. • Сервисы автономны • Сервисы могут быть распределены • Сервисы слабо связаны • Совместное использование схемы и контракта, а не класса
Сервисно-ориентрированная архитектура (SOA) Повторное использование Абстракция Возможность обнаружение Межплатформенность Рационализация (не-дублирование) Потенциальная нестабильность
Сочетание архитектурных паттернов
Lecture_3.pptx