Архитектурный шаблон является общим, многоразовые решением для часто встречающихся проблем в архитектуре программного обеспечения в данном контексте. [1] Архитектурные шаблоны решают различные проблемы в разработке программного обеспечения , такие как ограничения производительности компьютерного оборудования , высокая доступность и минимизация бизнес-рисков . Некоторые архитектурные шаблоны были реализованы в программных средах .
На использование слова «шаблон» в индустрии программного обеспечения повлияли аналогичные концепции, выраженные в традиционной архитектуре , такие как « Язык шаблонов» Кристофера Александра (1977), в котором обсуждалась практика с точки зрения создания словаря шаблонов , что побудило практиков. компьютерных наук, чтобы созерцать свой собственный дизайн-лексикон.
Использование этой метафоры в профессии программиста стало обычным явлением после публикации Эрихом Гаммой , Ричардом Хелмом , Ральфом Джонсоном и Джоном Влиссидесом книги « Шаблоны проектирования» (1994), которая теперь широко известна как «Банда четырех», совпавшая с ранними годами общедоступного Интернета , отмечая появление сложных программных систем, «поедающих мир» [2], и соответствующую необходимость кодифицировать быстро растущий мир разработки программного обеспечения на самом глубоком возможном уровне, оставаясь при этом гибкими и адаптивными.
Архитектурные шаблоны похожи на шаблоны проектирования программного обеспечения, но имеют более широкую область применения.
Определение [ править ]
Хотя архитектурный образец передает образ системы, это не архитектура. Архитектурный паттерн - это концепция, которая решает и очерчивает некоторые важные связующие элементы архитектуры программного обеспечения. Бесчисленные разные архитектуры могут реализовывать один и тот же шаблон и иметь общие характеристики. Шаблоны часто определяются как «строго описанные и общедоступные». [3] [4]
Архитектурный стиль [ править ]
Следуя традиционной архитектуре зданий, «программный архитектурный стиль » - это особый метод строительства, характеризующийся особенностями, которые делают его заметным.
Архитектурный стиль определяет: семейство систем с точки зрения структурной организации; словарь компонентов и соединителей с ограничениями на то, как их можно комбинировать. [5]
Архитектурный стиль - это именованная совокупность архитектурных проектных решений, которые (1) применимы в данном контексте разработки, (2) ограничивают архитектурные проектные решения, специфичные для конкретной системы в этом контексте, и (3) проявляют полезные качества в каждом из них. результирующая система. [1]
Некоторые рассматривают архитектурные паттерны и архитектурные стили как одно и то же, [6] некоторые рассматривают стили как специализации паттернов. Их объединяет то, что и шаблоны, и стили - это идиомы для использования архитекторами, они «обеспечивают общий язык» [6] или «словарь» [5], с помощью которого можно описывать классы систем.
Основное отличие состоит в том, что узор можно рассматривать как решение проблемы, тогда как стиль является более общим и не требует решения проблемы для его внешнего вида.
Примеры [ править ]
Вот список шаблонов архитектуры и соответствующих шаблонов проектирования программного обеспечения и шаблонов решений .
Поддоменная область | Образец архитектуры | Шаблоны проектирования программного обеспечения | Шаблоны решений | Связанные шаблоны |
---|---|---|---|---|
Интеграция данных / SOA |
|
|
|
|
| ||||
|
|
|
| |
Архитектура данных |
|
|
| |
Аналитика и бизнес-аналитика |
|
|
|
|
Управление основными данными |
|
|
| |
Моделирование данных |
|
| ||
Искусственный интеллект |
|
Некоторые дополнительные примеры архитектурных паттернов:
- Система классной доски
- Образец брокера
- Архитектура, управляемая событиями
- Неявный вызов
- Слои
- Шестиугольная архитектура
- Микросервисы
- Действие – домен – респондент , Модель – представление – контроллер , Презентация – абстракция – контроль , Модель – представление – презентатор и Модель – представление – модель представления.
- Система компонентов сущности
- Сущность-контроль-граница
- Многоуровневая архитектура (часто трехуровневая или многоуровневая )
- Обнаженные предметы
- Хранилище операционных данных (ODS)
- Пиринговый
- Архитектура труб и фильтров
- Сервис-Ориентированная Архитектура
- Космическая архитектура
- Распределенная хеш-таблица
См. Также [ править ]
- Список стилей и шаблонов архитектуры программного обеспечения
- Служба обмена сообщениями, управляемая процессами
- Архитектура предприятия
- Общие уровни в логической архитектуре информационной системы
Ссылки [ править ]
- ^ a b Р. Н. Тейлор, Н. Медведович и Е. М. Дашофи, Архитектура программного обеспечения: основы, теория и практика. Wiley, 2009.
- ↑ Андриссен, Марк (20 августа 2011 г.). «Почему программное обеспечение съедает мир» . The Wall Street Journal . Проверено 25 апреля 2020 года .
- ^ Чанг, Чи-Хунг; Лу, Чжи-Вэй; Линь, Чжи-Хао; Ян, Мин-Фэн; Цай, Чинг-Фу (июнь 2008 г.). «Опыт применения программной среды на основе шаблонов для повышения качества разработки программного обеспечения: 4. Дизайн и реализация OS2F» . Журнал исследований программной инженерии, Vol. 2, №6 . Третья Тайваньская конференция по разработке программного обеспечения (TCSE07). С. 185–194. Архивировано из оригинала на 2011-09-22 . Проверено 16 мая 2012 .
Более того, шаблоны часто определяются как нечто «строго описанное и общедоступное».
Например, многоуровневая архитектура - это стиль вызова и ответа, когда он определяет общий стиль взаимодействия.
- ^ «Архитектурные образцы: определение» . AAHN INFOTECH (ИНДИЯ) PVT. LTD. Архивировано из оригинала на 2012-06-23 . Проверено 16 мая 2012 .
Хотя архитектурный образец передает образ системы, это не архитектура как таковая.
Архитектурный паттерн - это скорее концепция, которая решает и очерчивает некоторые важные связующие элементы архитектуры программного обеспечения.
Бесчисленные разные архитектуры могут реализовывать один и тот же шаблон и, таким образом, иметь общие характеристики.
Более того, шаблоны часто определяются как нечто «строго описанное и общедоступное».
- ^ a b М. Шоу и Д. Гарлан, Архитектура программного обеспечения: перспективы новой дисциплины. Прентис Холл, 1996.
- ^ а б «Глава 3: Архитектурные образцы и стили» .
Библиография [ править ]
- Авгериу, Париж; Уве Здун (2005). «Повторение архитектурных образцов: язык образцов». 10-я Европейская конференция по шаблонным языкам программ (EuroPlop 2005), Ирзее, Германия, июль .
- Buschmann F .; Meunier R .; Rohnert H .; Соммерлад П .; Сталь М. (1996). Шаблонно-ориентированная архитектура программного обеспечения: система шаблонов . Джон Вили и сыновья .
- Bass L .; Clements P .; Казман Р. (2005). Архитектура программного обеспечения на практике: второе издание . Эддисон-Уэсли .