An архитектурный шаблон - это общее многократно используемое решение часто встречающейся проблемы в архитектуре программного обеспечения в заданном контексте. Архитектурные шаблоны решают различные проблемы в разработке программного обеспечения, такие как компьютерное оборудование ограничения производительности, высокая доступность и минимизация бизнес-рисков. Некоторые архитектурные шаблоны были реализованы в программных средах.
На использование слова «шаблон» в индустрии программного обеспечения повлияли аналогичные концепции, выраженные в традиционной архитектуре, например Christopher Александра Язык шаблонов (1977), в котором обсуждалась практика с точки зрения создания лексики шаблонов, что побудило практиков информатики задуматься о своем собственном лексиконе дизайна.
Использование этой метафоры в профессии разработчика программного обеспечения стало обычным явлением после публикации Design Patterns (1994) Erich Gamma, Ричард Хелм, Ральф Джонсон и Джон Влиссидес - теперь широко известный как «Банда четырех» - совпадают с ранними годами появления общественности Интернета, отмечая появление сложных программных систем, «поедающих мир», и соответствующую необходимость систематизировать быстро растущий мир разработки программного обеспечения на самом глубоком уровне, оставаясь при этом гибкими и адаптивными.
Архитектурные шаблоны похожи на шаблоны проектирования программного обеспечения, но имеют более широкую область применения.
Даже если архитектурный паттерн передает образ системы, это не архитектура. Архитектурный шаблон - это концепция, которая решает и очерчивает некоторые важные связующие элементы архитектуры программного обеспечения. Бесчисленное количество различных архитектур могут реализовывать один и тот же шаблон и иметь общие характеристики. Шаблоны часто определяются как «строго описанные и общедоступные».
Следуя традиционной архитектуре здания, «программный архитектурный стиль » является особым методом строительства., характеризующийся особенностями, которые делают его заметным.
Архитектурный стиль определяет: семейство систем с точки зрения модели структурной организации; словарь компонентов и соединителей, с ограничениями на то, как они могут быть объединены.
Архитектурный стиль - это именованный набор архитектурных проектных решений, которые (1) применимы в данном контексте разработки, (2) ограничивают архитектурные проектные решения, которые специфичны для конкретной системы в этом контексте и (3) проявляют полезные качества в каждой результирующей системе.
Некоторые рассматривают архитектурные шаблоны и архитектурные стили как одно и то же, некоторые рассматривают стили как специализацию шаблонов. Их объединяет то, что и шаблоны, и стили - это идиомы для использования архитекторами, они «обеспечивают общий язык» или «словарь» для описания классов систем.
Основное отличие состоит в том, что узор можно рассматривать как решение проблемы, тогда как стиль является более общим и не требует решения проблемы для его внешнего вида.
Вот список шаблонов архитектуры и соответствующих шаблонов проектирования программного обеспечения и.
Область поддомена | Шаблон архитектуры | Шаблоны проектирования программного обеспечения | Шаблоны решений | Связанные шаблоны |
---|---|---|---|---|
Интеграция данных / SOA |
|
| ||
| ||||
Архитектура данных |
|
| ||
Аналитика и бизнес-аналитика |
|
|
|
|
Управление основными данными |
|
|
| |
Моделирование данных |
| |||
Искусственный интеллект |
|
Некоторые дополнительные примеры архитектурных шаблонов: