Опубликован: 12.10.2017 | Доступ: свободный | Студентов: 654 / 50 | Длительность: 07:43:00
Лекция 3:

Архитектурные шаблоны проектирования

< Лекция 2 || Лекция 3: 123456 || Лекция 4 >
Аннотация: В этой главе мы приступим к структурированному и последовательному изучению шаблонов проектирования. Начнем с наиболее полных, комплексных, а потому абстрактных паттернов – архитектурных шаблонов проектирования. Не вызывает сомнения, что именно архитектурные шаблоны лежат в основе большинства современных качественных информационных систем. Этот факт должен являться своеобразным катализатором изучения шаблонов проектирования специалистами в области разработки программного обеспечения, так как может с определенной долей вероятности гарантировать успешное ориентирование в потоке и многообразии современного информационного мира.

Введение

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

Архитектурные шаблоны позволяют сформировать "скелет" информационной системы, на который в дальнейшем будет наращиваться актуальный и востребованный функционал. Шаблоны этой категории определяют ключевой фактор каждой информационной системы – структуру, коренное изменение которой может стать достаточно ресурсоемкой процедурой для компании и пользователей программного продукта.

Виды архитектурных шаблонов проектирования

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

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

  • В шаблонах централизованного управления одна из подсистем полностью отвечает за управление, запускает и завершает работу остальных подсистем.
  • В шаблонах децентрализованного управления реагирование основано на основе событий, а вернее, на основе статусной модели событий. Согласно паттернам этого рода,за реагирование и управление отвечает соответствующая подсистема.

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

Именно поэтому среди паттернов управления выделена большая группа шаблонов, описывающих организацию связи с базой данных.

Архитектурные структурные шаблоны

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

Репозиторий

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

"Репозиторий" – пассивный модуль, управление которым возложено на использующие его компоненты или подсистемы.

Централизованное расположение данных позволяет отказаться от их "пересылки" и уменьшает степень связности между разнородными компонентами. Подсистеме не нужно понимать, как используются данные в других подсистемах.

С другой стороны, все компоненты должны иметь унифицированный интерфейс для взаимодействия с моделью данных "Репозитория". Также за счет единой структуры данных все подсистемы должны поддерживать схожую политику безопасности (восстановление, резервирование и пр.).

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

Клиент-сервер

Этот архитектурный шаблон предполагает распределение функционирования программы между тремя основными компонентами:

  • Набор серверов, которые предоставляют сервисы подсистемам.
  • Набор подсистем (клиентов), обращающихся к серверам по средствам специализированных сервисов.
  • Сеть, которая служит для доступа клиентов к сервисам.

Клиенты должны знать имена серверов и сервисов.Серверам не надо знать имена клиентов и их количество. Клиенты получают доступ к сервисам, предоставляемым серверами с помощью удаленного вызова процедур.

Этот подход используется при реализации систем, основанных на шаблоне "Репозиторий", который поддерживается как сервер. Подсистемы, имеющие доступ к "Репозиторию", являются "клиентами".

Шаблон "Клиент-сервер" лежит в основе распределенных архитектур большинства современных информационных систем, использующих сетевые системы с множеством распределенных процессоров.

Неоспоримым преимуществом администрирования и сопровождения архитектуры, построенной на шаблоне "Клиент-сервер", является простота расширения (добавление, изменение серверов, выполняющих обработку информации и их интеграцию с остальной частью системы).

В процессе функционирования "сервер" и "клиент" обмениваются данными, но при большом объеме передаваемых данных могут возникнуть проблемы с пропускной способностью сети, что является неоспоримым недостатком данного шаблона.

< Лекция 2 || Лекция 3: 123456 || Лекция 4 >
Андрей Скурихин
Андрей Скурихин
Россия, Санкт-Петербург, Санкт-Петербургский государственный электротехнический университет (ЛЭТИ), 1997