Команда > Авторские публикации > 2013 год > Трехуровневая архитектура

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

Понятие «трехуровневая архитектура» хорошо известно разработчикам, которые создают автоматизируемую систему, состоящую из трех взаимосвязанных уровней. Пользователям, далеким от процессов создания систем, понятие «трехуровневая архитектура» или, как ее часто называют, «трехзвенная архитектура» не совсем понятно или совсем не понятно. Попробуем разобраться в этом вопросе и понять назначение уровней реализации системы с позиции рассмотрения архитектуры в целом.

Трехуровневая архитектура представляет собой три взаимосвязанных уровня реализации системы:

  • Первый уровень — уровень представления данных.
  • Второй уровень — уровень бизнес-логики.
  • Третий уровень — уровень хранения данных.

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

 

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

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

Уровень представления данных системы может быть реализован следующими типами:

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

Пользовательский интерфейс может обеспечивать выполнение следующего набора возможностей:

  • получение и редактирование данных;
  • представление данных для просмотра пользователем;
  • проверка корректности введенных данных;
  • сохранение внесенных изменений;
  • обработка исключительных ситуаций и отображение информации об ошибках для пользователя.

Уровень бизнес-логики

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

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

  • обработка потоков данных в соответствии с заданными бизнес-правилами;
  • взаимодействие с уровнем представления данных для получения запросов и возвращения ответов;
  • взаимодействие с уровнем хранения данных для передачи запросов и получения ответов.

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

Уровень хранения данных состоит в управлении структурой данных системы и поддержании целостности данных.

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

  • хранение данных в базе данных;
  • обработка запросов уровня бизнес-логики и возврат результатов;
  • управление базами данных.

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

Для «наглядности» представления уровней реализации рассмотрим механизмы трехуровневой архитектуры на примере системы, реализующей поиск данных согласно заданным пользовательским критериям:

1) Уровень представления данных реализован пользовательским интерфейсом в виде поисковой формы, критериев фильтрации, сортировки и группировки, а также отображения поисковых результатов. Доступ к пользовательскому интерфейсу осуществляется через веб-браузер. Веб-браузер является «тонким» клиентом, поскольку взаимодействие с уровнем бизнес-логики выполняется через веб-сервер. Пользователь заполняет поисковую форму, например, вводит следующий пользовательский запрос:

  • поисковый запрос: тонкий клиент;
  • бизнес-правила: фильтрация по дате (за апрель 2013 г.), сортировка по убыванию (от наиболее релевантного запроса к наименее релевантному), группировка по источнику (по наименованию интернет-ресурса).

Пользователь нажимает на поисковую кнопку. В результате система направляет пользовательский запрос на уровень бизнес-логики.

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

3) Уровень бизнес-логики в свою очередь, направляет эти запросы уровню хранения данных.

4) Уровень хранения данных выполняет запрос, получает результат и преобразует его в формат уровня бизнес-логики и возвращает полученный результат уровню бизнес-логики, который преобразует отвечающие поисковому запросу данные в перечень материалов, каждый из которых содержит одну или более фраз «тонкий клиент». Найденные материалы отфильтрованы за апрель 2013 г., отсортированы по убыванию количества употребления поискового запроса и сгруппированы по интернет-ресурсам, на которых они опубликованы.

Достоинства трехуровневой архитектуры

Распределенность уровней реализации системы друг от друга позволяет обеспечить системе:

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

С уважением,

Екатерина Зорина