Архитектурный образец - Architectural pattern

An архитектурный образец является универсальным многоразовым решением часто встречающейся проблемы в программная архитектура в данном контексте.[1] Архитектурные шаблоны решают различные проблемы в программная инженерия, Такие как компьютерное железо ограничения производительности, высокая доступность и минимизация деловой риск. Некоторые архитектурные шаблоны были реализованы в программные фреймворки.

На использование слова «шаблон» в индустрии программного обеспечения повлияли аналогичные концепции, выраженные в традиционных архитектура, Такие как Кристофер Александр с Язык шаблонов (1977), в которых обсуждалась практика с точки зрения создания лексика шаблонов, побуждая практиков информатики задуматься о своем собственном лексиконе дизайна.

Использование этого метафора в профессии программиста стали обычным явлением после публикации Шаблоны проектирования (1994) автор: Эрих Гамма, Ричард Хелм, Ральф Джонсон, и Джон Влиссидес - теперь широко известная как "Банда четырех" - совпадает с ранними годами существования общества. Интернет, знаменуя начало появления сложных программных систем, «поедающих мир»[2] и соответствующая необходимость систематизировать быстро растущий мир разработки программного обеспечения на самом глубоком уровне, оставаясь при этом гибким и адаптивным.

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

Определение

Несмотря на то, что архитектурный образец передает образ системы, это не архитектура. Архитектурный шаблон - это концепция, которая решает и очерчивает некоторые важные связующие элементы архитектуры программного обеспечения. Бесчисленные разные архитектуры могут реализовывать один и тот же шаблон и иметь общие характеристики. Шаблоны часто определяются как «строго описанные и общедоступные».[3][4]

Архитектурный стиль

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

Архитектурный стиль определяет: семейство систем с точки зрения структурной организации; словарь компонентов и соединителей с ограничениями на то, как их можно комбинировать.[5]

Архитектурный стиль - это именованный набор архитектурных проектных решений, которые (1) применимы в данном контексте разработки, (2) ограничивают архитектурные проектные решения, которые являются специфическими для конкретной системы в этом контексте, и (3) проявляют полезные качества в каждом из них. результирующая система.[1]

Некоторые относятся к архитектурным образцам и архитектурным стилям как к одному,[6] некоторые рассматривают стили как отдельные узоры. Их объединяет то, что шаблоны и стили - это идиомы для использования архитекторами, они «обеспечивают общий язык».[6] или "словарь"[5] для описания классов систем.

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

Примеры

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

Поддоменная областьОбразец архитектурыШаблоны проектирования программного обеспеченияШаблоны решенийСвязанные шаблоны
Интеграция данных /SOA
  • В одну сторону
  • Синхронный запрос / ответ
  • Базовый обратный вызов
  • Проверка претензии
Архитектура данных
  • Базы данных пользовательских приложений
  • Базы данных пакетных приложений
  • ETL
  • EAI
  • SOA
Аналитика и бизнес-аналитика
  • Транзакционная отчетность
  • Операционная аналитика
  • Бизнес-аналитика
  • Прогнозная аналитика
  • Предписательная аналитика
  • Потоковая аналитика
  • Наука о данных и продвинутая аналитика
  • НЛП
  • Доступ к данным транзакционной отчетности
  • Доступ к данным оперативной отчетности
  • Доступ к данным аналитической отчетности
  • Доступ к данным аналитической панели управления
  • Доступ к данным оперативной панели управления
  • Сбор данных
  • ETL
  • EAI
  • TDS
  • Хранилище операционных данных
  • Витрина данных
Управление основными данными
  • Центр основных данных
  • Репликация мастер-данных
  • Услуги мастер-данных
  • Синхронизация основных данных
Моделирование данных
  • Стандарты моделирования
  • Соглашения об именах
Искусственный интеллект
  • Управление принятием решений
  • Распознавание речи
  • Текстовая аналитика и НЛП
  • Генерация естественного языка
  • Классическое машинное обучение
  • Глубокое обучение
  • Роботизированная автоматизация процессов
  • Анализ изображений и видео

Некоторые дополнительные примеры архитектурных паттернов:

Смотрите также

Рекомендации

  1. ^ а б Р. Н. Тейлор, Н. Медведович и Э. М. Дашофи, Архитектура программного обеспечения: основы, теория и практика. Wiley, 2009.
  2. ^ Андриссен, Марк (20 августа 2011 г.). «Почему программное обеспечение пожирает мир». Журнал "Уолл Стрит. Получено 25 апреля 2020.
  3. ^ Чанг, Чи-Хунг; Лу, Чжи-Вэй; Линь, Чжи-Хао; Ян, Мин-Фэн; Цай, Чинг-Фу (июнь 2008 г.). «Опыт применения программной среды на основе шаблонов для повышения качества разработки программного обеспечения: 4. Дизайн и реализация OS2F». Журнал исследований программной инженерии, Vol. 2, № 6. Третья Тайваньская конференция по разработке программного обеспечения (TCSE07). С. 185–194. Архивировано из оригинал на 2011-09-22. Получено 2012-05-16. Более того, шаблоны часто определяются как нечто «строго описанное и общедоступное». Например, многоуровневая архитектура - это стиль вызова и ответа, когда он определяет общий стиль взаимодействия.
  4. ^ «Архитектурные узоры: определение». AAHN INFOTECH (ИНДИЯ) PVT. LTD. Архивировано из оригинал на 2012-06-23. Получено 2012-05-16. Хотя архитектурный образец передает образ системы, это не архитектура как таковая. Архитектурный шаблон - это, скорее, концепция, которая решает и очерчивает некоторые важные связующие элементы архитектуры программного обеспечения. Бесчисленное количество разных архитектур могут реализовывать один и тот же шаблон и, таким образом, иметь общие характеристики. Более того, шаблоны часто определяются как нечто «строго описанное и общедоступное».
  5. ^ а б М. Шоу и Д. Гарлан, Архитектура программного обеспечения: перспективы новой дисциплины. Прентис Холл, 1996.
  6. ^ а б «Глава 3: Архитектурные узоры и стили».

Библиография

  • Авгериу, Париж; Уве Здун (2005). «Повторение архитектурных образцов: язык образцов». 10-я Европейская конференция по шаблонным языкам программ (EuroPlop 2005), Ирзее, Германия, июль.
  • Bass L .; Clements P .; Казман Р. (2005). Архитектура программного обеспечения на практике: второе издание. Эддисон-Уэсли.