Архитектурные шаблоны проектирования
Введение
Согласно предложенному принципу классификации,архитектурные паттерны проектирования объединены в группы в соответствии со специализированными задачами, решение которых они позволяют реализовать.
Архитектурные шаблоны позволяют сформировать "скелет" информационной системы, на который в дальнейшем будет наращиваться актуальный и востребованный функционал. Шаблоны этой категории определяют ключевой фактор каждой информационной системы – структуру, коренное изменение которой может стать достаточно ресурсоемкой процедурой для компании и пользователей программного продукта.
Виды архитектурных шаблонов проектирования
Для построения востребованной архитектуры программного обеспечения, отвечающей принципам программной инженерии, системную структуру организуют на основе классов или объектов, использующих структурные архитектурные шаблоны проектирования.
С другой стороны, для обеспечения требуемой гибкости функционала основное значение имеет адекватная организация взаимодействия отдельных системных элементов.Для этой цели служит другой вид архитектурных паттернов –шаблоны управления. Они же, в свою очередь, разделены на шаблоны централизованного и децентрализованного управления:
- В шаблонах централизованного управления одна из подсистем полностью отвечает за управление, запускает и завершает работу остальных подсистем.
- В шаблонах децентрализованного управления реагирование основано на основе событий, а вернее, на основе статусной модели событий. Согласно паттернам этого рода,за реагирование и управление отвечает соответствующая подсистема.
Следует упомянуть, что проектирование информационных систем затрагивает не только описание логики взаимодействие компонентов, но и описание логики взаимодействия с базой данных, которое может являться значимым аспектом в обеспечении нефункциональных характеристик.
Именно поэтому среди паттернов управления выделена большая группа шаблонов, описывающих организацию связи с базой данных.
Архитектурные структурные шаблоны
Архитектурные структурные шаблоны представляют класс паттернов, описывающих подходы к организации структуры создаваемого приложения, вариативность которой может диктоваться условиями эксплуатации конкретного программного продукта.
Репозиторий
Данный способ организации информационных систем целесообразно использовать в ситуациях, когда системе необходимо обработать большой массив сторонних данных. Оптимальная организация способов обработки включает в себя хранение обрабатываемых данных в центральной базе данных, которая доступна всем использующим ее подсистемам.
"Репозиторий" – пассивный модуль, управление которым возложено на использующие его компоненты или подсистемы.
Централизованное расположение данных позволяет отказаться от их "пересылки" и уменьшает степень связности между разнородными компонентами. Подсистеме не нужно понимать, как используются данные в других подсистемах.
С другой стороны, все компоненты должны иметь унифицированный интерфейс для взаимодействия с моделью данных "Репозитория". Также за счет единой структуры данных все подсистемы должны поддерживать схожую политику безопасности (восстановление, резервирование и пр.).
В качестве практических примеров использования данного шаблона могут служить системы классовBI иBW, основной обязанностью которых является оперативная обработка информации и формирование на ее основе оперативной отчетности.
Клиент-сервер
Этот архитектурный шаблон предполагает распределение функционирования программы между тремя основными компонентами:
- Набор серверов, которые предоставляют сервисы подсистемам.
- Набор подсистем (клиентов), обращающихся к серверам по средствам специализированных сервисов.
- Сеть, которая служит для доступа клиентов к сервисам.
Клиенты должны знать имена серверов и сервисов.Серверам не надо знать имена клиентов и их количество. Клиенты получают доступ к сервисам, предоставляемым серверами с помощью удаленного вызова процедур.
Этот подход используется при реализации систем, основанных на шаблоне "Репозиторий", который поддерживается как сервер. Подсистемы, имеющие доступ к "Репозиторию", являются "клиентами".
Шаблон "Клиент-сервер" лежит в основе распределенных архитектур большинства современных информационных систем, использующих сетевые системы с множеством распределенных процессоров.
Неоспоримым преимуществом администрирования и сопровождения архитектуры, построенной на шаблоне "Клиент-сервер", является простота расширения (добавление, изменение серверов, выполняющих обработку информации и их интеграцию с остальной частью системы).
В процессе функционирования "сервер" и "клиент" обмениваются данными, но при большом объеме передаваемых данных могут возникнуть проблемы с пропускной способностью сети, что является неоспоримым недостатком данного шаблона.