Архитектурный образец
— Архитектурный шаблон это общее, многократно используемое решение часто встречающейся проблемы в архитектуре программного обеспечения в заданном контексте. [1] Архитектурные шаблоны решают различные проблемы разработки программного обеспечения , такие как ограничения производительности компьютерного оборудования , высокая доступность и минимизация бизнес-рисков . Некоторые архитектурные шаблоны реализованы в программных средах . Существует две основные категории архитектурных шаблонов: монолитные и распределенные . [2]
На использование слова «шаблон» в индустрии программного обеспечения повлияли аналогичные концепции, выраженные в традиционной архитектуре , такие как » Кристофера Александера ( «Язык шаблонов 1977), в котором обсуждалась практика с точки зрения создания лексикона шаблонов , побуждая практиков информатики, чтобы обдумать свой собственный лексикон дизайна.
Использование этой метафоры в профессии программиста стало обычным явлением после публикации книги « Шаблоны проектирования » (1994) Эриха Гаммы , Ричарда Хелма , Ральфа Джонсона и Джона Влиссайдса , ныне широко известной как «Банда четырех», что совпало с ранними годами. общедоступного Интернета , ознаменовав появление сложных программных систем, «пожирающих мир». [3] и соответствующая необходимость кодифицировать быстро разрастающийся мир разработки программного обеспечения на самом глубоком уровне, оставаясь при этом гибким и адаптивным.
Архитектурные шаблоны аналогичны шаблонам проектирования программного обеспечения , но имеют более широкую область применения.
Определение
[ редактировать ]Хотя архитектурный образец передает образ системы, он не является архитектурой. Архитектурный шаблон — это концепция, которая решает и очерчивает некоторые важные связующие элементы архитектуры программного обеспечения. Бесчисленное множество различных архитектур могут реализовывать один и тот же шаблон и иметь общие характеристики. Шаблоны часто определяют как «строго описанные и общедоступные». [4] [5]
Архитектурный стиль
[ редактировать ]Следуя традиционной строительной архитектуре, программный архитектурный стиль представляет собой особый метод строительства, характеризующийся особенностями, которые делают его заметным.
Архитектурный стиль определяет: семейство систем с точки зрения модели структурной организации; словарь компонентов и соединителей с ограничениями на то, как их можно комбинировать. [6]
Архитектурный стиль — это именованная совокупность решений архитектурного проектирования, которые (1) применимы в данном контексте развития, (2) ограничивают решения архитектурного проектирования, специфичные для конкретной системы в этом контексте, и (3) выявляют полезные качества в каждом конкретном контексте. результирующая система. [1]
Некоторые считают архитектурные модели и архитектурные стили одним и тем же. [7] некоторые рассматривают стили как специализацию шаблонов. Их объединяет то, что и шаблоны, и стили являются идиомами, которые могут использовать архитекторы, они «обеспечивают общий язык». [7] или «словарный запас» [6] с помощью которого можно описывать классы систем.
Основное отличие состоит в том, что паттерн можно рассматривать как решение проблемы, тогда как стиль является более общим и не требует решения проблемы для своего появления.
Анализ
[ редактировать ]Программное обеспечение управляется своим проблемным пространством, в котором могут быть применены решения. В таблице ниже показано, как программное обеспечение рассматривается в различных проблемных областях, определенных поддоменами и решаемых с помощью соответствующих шаблонов проектирования программного обеспечения и шаблонов решений . Поддомены могут быть включены в анализ других поддоменов, например, решение проблемы искусственного интеллекта сначала рассматривается как проблема архитектуры данных.
Поддоменная область | Архитектурный образец | Шаблоны проектирования программного обеспечения | Шаблоны решений | Связанные шаблоны |
---|---|---|---|---|
Интеграция данных / SOA |
|
| ||
| ||||
Архитектура данных |
|
| ||
Аналитика и бизнес-аналитика |
|
|
|
|
Управление основными данными |
|
|
| |
Моделирование данных |
| |||
Искусственный интеллект |
|
Примеры
[ редактировать ]Некоторые примеры архитектурных шаблонов:
- Ячеистая архитектура
- Система доски
- Модель брокера
- Событийная архитектура
- Сага шаблон [2]
- Монолитный узор [2]
- Распределенный шаблон [2]
- Модульный монолит [2]
- Неявный вызов
- Слои
- Шестиугольная архитектура
- Микросервисы
- Действие-домен-ответчик ,
- Система компонентов сущности
- Граница управления объектом
- Многоуровневая архитектура (часто трехуровневая или n -уровневая)
- Объектно-ориентированное программирование
- Голые объекты
- Хранилище оперативных данных (ОДС)
- Пиринговый
- Архитектура труб и фильтров
- Сервис-ориентированная архитектура
- Космическая архитектура
- Распределенная хеш-таблица
- Шаблон публикации-подписки
- Брокер сообщений
- Иерархическая модель-представление-контроллер
См. также
[ редактировать ]- Список стилей и шаблонов архитектуры программного обеспечения
- Служба обмена сообщениями, управляемая процессами
- Архитектура предприятия
- Общие уровни в логической архитектуре информационной системы
Ссылки
[ редактировать ]- ^ Перейти обратно: а б Тейлор, Р.Н.; Медвидович, Н.; Дашофий, Э.М. (2009). Архитектура программного обеспечения: основы, теория и практика . Уайли. ISBN 9780470167748 .
- ^ Перейти обратно: а б с д и Основы архитектуры программного обеспечения: инженерный подход . О'Рейли Медиа. 2020. ISBN 978-1492043454 .
- ^ Андреессен, Марк (20 августа 2011 г.). «Почему программное обеспечение пожирает мир» . Уолл Стрит Джорнал . Проверено 25 апреля 2020 г.
- ^ Чанг, Чи-Хунг; Лу, Чи-Вэй; Линь, Чи-Хао; Ян, Мин-Фэн; Цай, Чинг-Фу (июнь 2008 г.). «Опыт применения программной среды на основе шаблонов для повышения качества разработки программного обеспечения: 4. Проектирование и реализация OS2F» . Журнал исследований в области программной инженерии, Vol. 2, № 6 . Третья Тайваньская конференция по разработке программного обеспечения (TCSE07). стр. 185–194. Архивировано из оригинала 22 сентября 2011 г. Проверено 16 мая 2012 г.
Более того, шаблоны часто определяются как нечто «строго описанное и общедоступное». Например, многоуровневая архитектура — это стиль вызова и возврата, когда она определяет общий стиль взаимодействия.
- ^ «Архитектурные узоры: определение» . ААН ИНФОТЕК (ИНДИЯ) PVT. ООО. Архивировано из оригинала 23 июня 2012 г. Проверено 16 мая 2012 г.
Хотя архитектурный образец и передает образ системы, он не является архитектурой как таковой. Архитектурный шаблон — это скорее концепция, которая решает и очерчивает некоторые важные связующие элементы архитектуры программного обеспечения. Бесчисленное множество различных архитектур могут реализовывать один и тот же шаблон и, таким образом, иметь общие характеристики. Более того, шаблоны часто определяются как нечто «строго описанное и общедоступное».
- ^ Перейти обратно: а б Шоу, М.; Гарлан, Д. (1996). Архитектура программного обеспечения: перспективы новой дисциплины . Прентис Холл. ISBN 9780131829572 .
- ^ Перейти обратно: а б «Глава 3: Архитектурные узоры и стили» . Руководство по архитектуре приложений Microsoft (2-е изд.). Майкрософт Пресс. Октябрь 2009 г. ISBN. 9780735627109 .
Библиография
[ редактировать ]- Авжериу, Париж; Здун, Уве (2005). «Возвращение к архитектурным шаблонам: язык шаблонов» (PDF) . 10-я Европейская конференция по шаблонным языкам программ (EuroPlop 2005), Ирзее, Германия, июль . УВК Верлагсгезельшафт. стр. 1–39. CiteSeerX 10.1.1.141.7444 . ISBN 9783879408054 .
- Бушманн Ф.; Менье Р.; Ронерт Х.; Соммерлад П.; Сталь М. (1996). Шаблонно-ориентированная архитектура программного обеспечения: система шаблонов . Уайли. ISBN 9781118725269 .
- Басс Л.; Клементс П.; Казман Р. (2003). Архитектура программного обеспечения на практике . Аддисон-Уэсли. ISBN 9780321154958 .