Трехуровневая архитектура

menu icon

Трехуровневая архитектура

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

Что такое трехуровневая архитектура?

Трехуровневая архитектура — это широко применяемая архитектура программного обеспечения в которой приложения разделены на три логических и физических уровня: уровень представления (пользовательский интерфейс), уровень приложения, на котором осуществляется обработка данных, и уровень данных, предназначенный для хранения и управления данными, относящимися к приложению.

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

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

Подробное описание трех уровней

Уровень представления

На уровне представления обеспечивается взаимодействие с пользователем приложения — это пользовательский интерфейс и уровень обмена данными. Его основное предназначение состоит в отображении информации и получении информации от пользователя. Этот уровень может работать в веб-браузере или как графический пользовательский интерфейс компьютерного или мобильного приложения. Уровни представления веб-приложений обычно разрабатываются с помощью HTML, CSS и JavaScript. Компьютерные и мобильные приложения могут быть написаны на любом языке в зависимости от платформы.

Уровень приложений

Уровень приложения, также известный как логический или промежуточный уровень, является центральным звеном приложения. На этом уровне обрабатывается информация, собранная на уровне представления — иногда с учетом другой информации из уровня данных — с помощью бизнес-логики, которая представляет собой набор бизнес-правил. Кроме того, уровень приложения может добавлять, изменять и удалять данные, расположенные на уровне данных.

Как правило, уровень приложения разрабатывается с помощью Python, Java, Perl, PHP или Ruby и взаимодействует с уровнем данных посредством вызовов API

Уровень данных

Уровень данных, который также называется уровнем базы данных, уровнем доступа к данным или базовым уровнем, предназначен для хранения и управления информацией, обработанной приложением. Его роль может выполнять реляционная система управления базами данных, такая как PostgreSQL, MySQL, MariaDB, Oracle, DB2, Informix или Microsoft SQL Server, либо сервер базы данных NoSQL, такой как Cassandra, CouchDB или MongoDB

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

Слои и уровни

В контексте трехуровневой архитектуры термины уровень (tier) и слой (layer) часто используются как взаимозаменяемые, однако это не совсем справедливо. 

Между ними следует делать различие. «Слой» разделяет части программы по функциональному признаку, а «уровни» не только имеют разный функционал, но и работают в независимой от других уровней инфраструктуре. Например, приложение Контакты на вашем телефоне представляет собой трехслойное приложение, но вместе с тем оно является одноуровневым, поскольку все три слоя работают на телефоне. 

Эта разница имеет важное значение, поскольку слои не позволяют получить те преимущества, которые дает разделение по уровням.

Преимущества трехуровневой архитектуры

Итак, главным преимуществом трехуровневой архитектуры является логическое и физическое разделение функциональных возможностей. Каждый уровень можно запустить в отдельной операционной системе и серверной платформе (веб-сервер, сервер приложений, сервер базы данных), наилучшим образом соответствующей его функциональным требованиям. Поскольку каждый уровень выполняется по крайней мере на одном выделенном аппаратном или виртуальном сервере, уровни можно настраивать и оптимизировать независимо друг от друга. 

Другие преимущества (по сравнению с одноуровневой и двухуровневой архитектурой): 

  • Более быстрая разработка: поскольку разработкой уровней одновременно занимаются разные команды, организация может быстрее вывести приложение на рынок, а программисты могут использовать наилучшим образом подходящие языки и инструменты для каждого уровня.
  • Улучшенная масштабируемость: каждый уровень можно масштабировать независимо от других в соответствии с потребностями.
  • Повышенная надежность: сбой одного из уровней не повлияет на доступность и производительность других уровней.
  • Высокий уровень безопасности: поскольку уровень представления и уровень данных не могут напрямую взаимодействовать друг с другом, хорошо спроектированный уровень приложения может выполнять роль своего рода внутреннего брандмауэра, предотвращая внедрение кода SQL и другие вредоносные действия.

Трехуровневое приложение в веб-разработке

В случае веб-разработки уровни называются по-другому, но выполняют аналогичные функции:

  • Веб-сервер  соответствует уровню представления и обеспечивает пользовательский интерфейс. Как правило, это веб-страница или веб-сайт, такой как сайт интернет-магазина, на котором пользователь добавляет товары в корзину, указывает платежные реквизиты или создает учетную запись. Содержимое веб-страниц может быть статическим или динамическим и обычно разрабатывается с помощью HTML, CSS и Javascript.
  • Сервер приложений соответствует промежуточному уровню, на котором размещается бизнес-логика, применяемая для обработки указанной пользователей информации. Если продолжить пример с интернет-магазином, то этот уровень запрашивает наличие товаров в базе данных запасов или добавляет сведения в профайл клиента. Обычно этот уровень разрабатывается с помощью Python, Ruby или PHP и выполняется в такой среде, как Django, Rails, Symphony или ASP.NET.
  • Сервер базы данных — это уровень данных или уровень «бэкенда» веб-приложения. Он использует программное обеспечение управления базой данных, такое как MySQL, Oracle, DB2 или PostgreSQL.

Другие многоуровневые архитектуры

Несмотря на доминирующее положение трехуровневой архитектуры, в своей работе вы можете встретиться с другими вариантами многоуровневых архитектур приложений.

Двухуровневая архитектура 

Двухуровневая архитектура — это изначальный вариант клиент-серверной архитектуры, состоящей из слоя представления и слоя данных; бизнес-логика может находиться в слое представления и/или в слое данных. В случае двухуровневой архитектуры слой представления, а следовательно и конечный пользователь, обладают прямым доступом к слою данных и возможности бизнес-логики часто ограничивается. В качестве примера двухуровневого приложения можно привести простое приложение для управления контактами, в котором пользователи вводят и извлекают контактную информацию. 

N-уровневая архитектура

В общем случае N-уровневая архитектура, также называемая многоуровневой архитектурой, представляет собой любую архитектуру приложений, имеющую больше одного уровня. Однако приложения более чем с тремя уровнями встречаются крайне редко, поскольку дополнительные уровни не дают существенных преимуществ и могут сделать приложение более медленным, сложным в управлении и дорогим в обслуживании. Таким образом, n-уровневая архитектура и многоуровневая архитектура обычно являются синонимами трехуровневой архитектуры.

Трехуровневая архитектура и IBM Cloud

IBM Cloud предлагает продукты и услуги, помогающие модернизировать устаревшие трехуровневые приложения в процессе перехода в облако.

Сделайте первый шаг:

  • Независимо от того, требуется ли вам помощь со стратегией, процессами или функциями либо полный спектр услуг, узнайте, как IBM может помочь вам с успехом провести модернизацию приложений.
  • Начните с контейнеризованного промежуточного программного обеспечения, которое можно развернуть в любом облаке — воспользуйтесь предложениями IBM Cloud Pak.
  • С легкостью перенесите существующие приложения VMWare в общедоступное облако с помощью IBM Cloud for VMware Solutions.
  • Разработайте и выполните стратегии модернизации приложений в рамках текущей программы цифровой трансформации с помощью услуг IBM по модернизации приложений.

Начните работу с учетной записью IBM Cloud прямо сегодня.