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