Подтвердить что ты не робот

Модели проектирования архитектуры программного обеспечения

Не могли бы вы рассказать мне, какие шаблоны проектирования архитектуры программного обеспечения доступны?

Чтобы уточнить мой вопрос, я хочу прочитать различные шаблоны проектирования архитектуры и решить, что соответствует моим требованиям к проекту?

Например, существуют шаблоны проектирования корпоративных приложений, шаблоны проектирования Enterprise Integration, шаблоны ESB, шаблоны SOA и т.д.

4b9b3361

Ответ 1

Шаблоны встречаются на многих уровнях. Архитектурные шаблоны (т.е. Архитектурные стили), как правило, являются крупнейшими по охвату и охватывают фундаментальную организацию системы. Шаблоны проектирования находятся на уровне нескольких взаимодействующих объектов. Предположение Бернда о Фаулере и других корпоративных моделях является хорошим. Просто признайте, что эти шаблоны имеют тенденцию быть более конкретными, чем эти архитектурные шаблоны:

  • Многоуровневый (т.е. шаблон виртуальной машины)
  • Большой шар грязи
  • Труба и фильтр
  • Batch-Sequential
  • Модель-центрированные (общие данные)
  • публикация-подписка
  • Клиент-сервер (и N-уровень)
  • Равный-равному
  • MapReduce

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

Эти шаблоны подробно обсуждаются в моей книге "Просто достаточно архитектуры программного обеспечения" , Fairbanks (2010). Большинство из них также включены в другие книги, в том числе Гарлан и Шоу (1996), Тейлор, Медвидович и Дашовый (2009) и Documenting Software Architectures (SEI, 2010).

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

Ответ 2

Прочтите эти книги:

  • Мартин Фольвер: шаблоны архитектуры корпоративных приложений
  • Грегор Хохпе, Бобби Вульф: шаблоны интеграции с корпорацией: проектирование, создание и развертывание решений для обмена сообщениями.

Ответ 3

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

АРХИТЕКТУРНЫЙ ШАБЛОН - ОБЩЕЕ, РЕЗЕРВНОЕ РЕШЕНИЕ ДЛЯ ОБЩЕГО ПРОСМОТР ПРОБЛЕМЫ В АРХИТЕКТУРЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ В ДАННОМ КОНТЕКСТЕ. АРХИТЕКТУРНЫЕ ОБРАЗЦЫ ОБРАТИТЕСЬ К ПРОГРАММНОМУ ПРОГРАММНОМУ ПРОЕКТУ, НО ИМЕЮТСЯ ШИРОКИЙ ОБЛАСТЬ.

У вас есть ответ: Будет ли Android поддерживать Java 9 после обновлений Kotlin?

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

1. Слоистый рисунок

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

введите описание изображения здесь

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

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

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

  • Общие настольные приложения.
  • Электронные коммерческие веб-приложения.

Смотрите: Android Oreo Vs iOS 11: сравнение, которое вы должны знать об этом


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

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

введите описание изображения здесь

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

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

3. Шаблон "Master-slave"

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

введите описание изображения здесь

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

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

Рекомендуемый: Сравнение: Android O Vs Android N


4. Структура фильтра труб

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

введите описание изображения здесь

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

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

5. Шаблон брокера

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

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

введите описание изображения здесь

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

  • Программное обеспечение брокера сообщений, такое как Apache ActiveMQ, Apache Kafka, RabbitMQ и JBoss Messaging.

Знаете ли вы: Проблемы с Android Oreo - 6 вещей, которые вам нужно знать


6. Одноранговая диаграмма

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

введите описание изображения здесь

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

  • Сети обмена файлами, такие как Gnutella и G2)
  • Мультимедийные протоколы, такие как P2PTV и PDTP.
  • Собственные мультимедийные приложения, такие как Spotify.

7. Шаблон событий-шины

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

введите описание изображения здесь

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

  • Разработка Android
  • Услуги уведомления

8. Модель-контроллер-образец-образец

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

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

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

введите здесь описание изображения

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

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

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

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

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

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

введите описание изображения здесь

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

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

10. Шаблон интерпретатора

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

введите описание изображения здесь

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

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

Источник: Топ-10 архитектурных шаблонов программирования

Ответ 5

Не очень уверен в вашем вопросе! Ваш тег - это шаблон дизайна, поэтому я скажу это: Если вы не читали книгу шаблонов моделей, вам сначала нужно прочитать книги с шаблонами рисунков. Главы первых шаблонов дизайна хороши. Когда вы можете понять о шаблонах проектирования, тогда можно понять шаблоны проектирования архитектуры.