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

Что такое архитектурный образец?

Согласно Википедии,

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

В этой статье я кратко объясню следующие 10 распространенных архитектурных паттернов с их использованием, плюсами и минусами.

  1. Многослойный узор
  2. Шаблон клиент-сервер
  3. Шаблон "главный-подчиненный"
  4. Шаблон "труба-фильтр"
  5. Образец брокера
  6. Шаблон одноранговой сети
  7. Схема шины событий
  8. Шаблон модель-представление-контроллер
  9. Шаблон на доске
  10. Шаблон переводчика

1. Многослойный узор.

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

Чаще всего встречаются 4 уровня общей информационной системы.

  • Уровень представления (также известный как уровень пользовательского интерфейса)
  • Уровень приложения (также известный как уровень обслуживания)
  • Уровень бизнес-логики (также известный как уровень домена)
  • Уровень доступа к данным (также известный как уровень сохраняемости)

использование

  • Общие настольные приложения.
  • Веб-приложения электронной коммерции.

2. Шаблон клиент-сервер

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

использование

  • Онлайн-приложения, такие как электронная почта, обмен документами и банковское дело.

3. Схема "ведущий-ведомый"

Этот узор состоит из двух сторон; главный и подчиненный. Главный компонент распределяет работу между идентичными подчиненными компонентами и вычисляет окончательный результат на основе результатов, возвращаемых подчиненными.

использование

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

4. Схема трубы-фильтра

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

использование

  • Компиляторы. Последовательные фильтры выполняют лексический анализ, синтаксический анализ, семантический анализ и генерацию кода.
  • Рабочие процессы в биоинформатике.

5. Модель брокера

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

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

использование

6. Одноранговый шаблон

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

использование

  • Файловые сети, такие как Gnutella и G2)
  • Мультимедийные протоколы, такие как P2PTV и PDTP.
  • Продукты на основе криптовалюты, такие как Биткойн и Блокчейн.

7. Схема шины событий

Этот шаблон в основном имеет дело с событиями и состоит из 4 основных компонентов; источник событий, прослушиватель событий, канал и шина событий. Источники публикуют сообщения для определенных каналов в шине событий. Слушатели подписываются на определенные каналы. Слушатели уведомляются о сообщениях, опубликованных на канале, на который они подписались ранее.

использование

  • Разработка под Android
  • Службы уведомлений

8. Модель-представление-контроллер.

Этот шаблон, также известный как шаблон MVC, делит интерактивное приложение на 3 части:

  1. модель - содержит основные функции и данные
  2. view - отображает информацию для пользователя (может быть определено более одного представления)
  3. контроллер - обрабатывает ввод от пользователя.

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

использование

  • Архитектура приложений World Wide Web на основных языках программирования.
  • Веб-фреймворки, такие как Django и Rails.

9. Шаблон доски.

Этот шаблон полезен для задач, для которых неизвестны детерминированные стратегии решения. Шаблон классной доски состоит из 3 основных компонентов.

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

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

использование

  • Распознавание речи
  • Идентификация и отслеживание транспортных средств
  • Идентификация структуры белка
  • Интерпретация сигналов сонара.

10. Образец переводчика

Этот шаблон используется для разработки компонента, интерпретирующего программы, написанные на специальном языке. В основном он определяет, как оценивать строки программ, известные как предложения или выражения, написанные на определенном языке. Основная идея - создать класс для каждого символа языка.

использование

  • Языки запросов к базам данных, такие как SQL.
  • Языки, используемые для описания протоколов связи.

Сравнение архитектурных образцов

В таблице ниже приведены плюсы и минусы каждого архитектурного паттерна.

Надеюсь, вы нашли эту статью полезной. Я хотел бы услышать твои мысли. 😇

Спасибо за прочтение. 😊

Ваше здоровье! 😃

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

Https://www.ou.nl/documents/40554/791670/IM0203_03.pdf/30dae517-691e-b3c7-22ed-a55ad27726d6