Многоуровневая архитектура
Обновлено: 18 сентября 2024
В программной DDD-инженерии многоуровневая (многослойная, слоистая, N-уровневая) архитектура — это клиент-серверная архитектура, в которой разделяются функции представления, обработки и хранения данных. Такой архитектурный паттерн смягчает возрастающую сложность приложений, упрощает и делает гибче их доработку.
Такая архитектура состоит из различных уровней, каждый из которых соответствует отдельной функции. Таким образом, вносить изменения в каждый отдельный уровень проще, чем заниматься всей архитектурой. Разработчики могут создавать гибкие и повторно используемые приложения. Это значительно упрощает весь процесс управления системой.
Архитектурный шаблон «Слои» (англ. Layers) помогает структурировать приложения разложением на группы подзадач, находящихся на определённых уровнях абстракции.
Самый распространённый вариант — трёхуровневая архитектура. Трёхуровневая архитектура обычно состоит из уровня представления, уровня бизнес-логики и уровня хранения данных.
Традиционный вариант многослойной архитектуры
Три основных слоя многоуровневой архитектуры:
- Уровень представления. Это первый и самый верхний уровень, который присутствует в приложении. Этот уровень представляет собой UI, то есть представление контента конечному пользователю через графический интерфейс. К этому уровню можно получить доступ через любой тип клиентского устройства, например настольный компьютер, ноутбук, планшет, мобильный телефон, тонкий клиент и т. д. Для контента, отображаемого пользователю, соответствующие веб-страницы должны извлекаться веб-браузером или другим компонентом представления, работающим на клиентском устройстве.
- Уровень приложения. Сервисный слой или уровень управления. Также на этом уровне работает бизнес-логика приложения. Бизнес-логика — это набор правил, необходимых для запуска приложения в соответствии с руководящими принципами, установленными организацией. Компоненты этого уровня обычно работают на одном или нескольких серверах приложений. Иногда бизнес-логика выделяется в отдельный уровень.
- Уровень данных. Это ядро архитектуры. В основном этот слой связан с хранением и извлечением данных приложения. Данные приложения обычно хранятся на сервере базы данных, файловом сервере или любом другом устройстве или носителе, которые поддерживают логику доступа к данным. Это делается на уровне данных, предоставляя API для уровня приложения. Предоставление этого API обеспечивает полную прозрачность операций с данными, которые выполняются на этом уровне, не затрагивая уровень приложения. Например, обновления систем на этом уровне не влияют на уровень приложений этой архитектуры.
Эти три уровня важны. Но поверх них можно построить и другие слои в зависимости от сложности системы.
Многослойный подход особенно хорош для разработки корпоративных веб-приложений и облачных систем. Это также упрощает обновление любых устаревших систем — когда архитектура разбита на несколько уровней, изменения, которые необходимо внести, будут более простыми и менее обширными, чем они могли бы быть в противном случае.