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

редактировать
Сюда перенаправляются несколько терминов. Для использования в других целях см. Трехуровневую систему (значения), Уровень 1 (значения), Уровень 2 (значения), Уровень 3 (значения) и Уровень 4 (значения).

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

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

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

СОДЕРЖАНИЕ

  • 1 слой
    • 1.1 Общие слои
  • 2 Трехуровневая архитектура
    • 2.1 Использование веб-разработки
    • 2.2 Прочие соображения
  • 3 Прослеживаемость
  • 4 См. Также
  • 5 ссылки
  • 6 Внешние ссылки

Слои

Архитектурный паттерн «Слои» описан в различных публикациях.

Общие слои

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

  • Уровень представления (он же слой пользовательского интерфейса, уровень представления, уровень представления в многоуровневой архитектуре)
  • Уровень приложения (также известный как уровень сервиса или уровень контроллера GRASP )
  • Бизнес-уровень (также известный как уровень бизнес-логики (BLL), уровень логики домена)
  • Уровень доступа к данным (также известный как уровень сохраняемости, ведение журнала, сеть и другие службы, необходимые для поддержки определенного бизнес-уровня)

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

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

Более обычным соглашением является то, что уровень приложения (или уровень сервиса) считается подуровнем бизнес-уровня, обычно инкапсулируя определение API, отображающее поддерживаемые бизнес-функции. Фактически, уровни приложения / бизнеса могут быть дополнительно разделены, чтобы выделить дополнительные подслои с отдельной ответственностью. Например, если используется шаблон модель – представление – презентатор, подуровень презентатора может использоваться как дополнительный уровень между уровнем пользовательского интерфейса и уровнем бизнеса / приложения (представленным подуровнем модели).

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

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

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

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

Обзор трехуровневого приложения.

Трехуровневая архитектура клиент-сервер шаблон архитектуры программного обеспечения, в которой пользовательский интерфейс (презентация), функциональная логика процесса ( «бизнес - правил»), для хранения компьютерных данных и доступа к данным разрабатываются и поддерживаются как независимые модули, чаще всего на отдельных платформах. Он был разработан Джоном Дж. Донованом из Open Environment Corporation (OEC), компании по производству инструментов, которую он основал в Кембридже, штат Массачусетс.

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

Обычно пользовательский интерфейс работает на настольном ПК или рабочей станции и использует стандартный графический интерфейс пользователя, функциональную логику процесса, которая может состоять из одного или нескольких отдельных модулей, работающих на рабочей станции или сервере приложений, и СУБД на сервере базы данных или мэйнфрейме, который содержит логику хранения компьютерных данных. Средний уровень может быть сам по себе многоуровневым (в этом случае общая архитектура называется « n- ступенчатой ​​архитектурой»).

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

Использование веб-разработки

В области веб-разработки трехуровневый часто используется для обозначения веб-сайтов, обычно веб-сайтов электронной коммерции, которые построены с использованием трех уровней:

  1. Интерфейсный веб-сервер, обслуживающий статический контент и, возможно, некоторый кешированный динамический контент. В веб-приложении интерфейс - это контент, отображаемый браузером. Контент может быть статическим или генерироваться динамически.
  2. Сервер приложений среднего уровня обработки и генерации динамического контента (например, Symfony, Spring, ASP.NET, Django, Rails, Node.js ).
  3. Внутренняя база данных или хранилище данных, включающее как наборы данных, так и программное обеспечение системы управления базами данных, которое управляет данными и обеспечивает доступ к ним.

Прочие соображения

Передача данных между уровнями является частью архитектуры. Используемые протоколы могут включать в себя один или несколько из SNMP, CORBA, Java RMI, .NET Remoting, Windows Communication Foundation, сокеты, UDP, веб-службы или другие стандартные или проприетарные протоколы. Часто промежуточное ПО используется для соединения отдельных уровней. Отдельные уровни часто (но не обязательно) работают на отдельных физических серверах, и каждый уровень может работать в кластере.

Прослеживаемость

Сквозная прослеживаемость потоков данных через n -уровневые системы - сложная задача, которая становится более важной, когда системы становятся более сложными. Параметр Application Response Measurement определяет концепции и API для измерения производительности и сопоставления транзакций между уровнями. Обычно термин «уровни» используется для описания физического распределения компонентов системы на отдельных серверах, компьютерах или сетях (узлах обработки). Тогда трехуровневая архитектура будет иметь три узла обработки. Термин «уровни» относится к логической группировке компонентов, которые могут или не могут быть физически расположены на одном узле обработки.

Смотрите также

Рекомендации

Внешние ссылки

Последняя правка сделана 2023-08-11 12:50:28
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте