Трёхуровневая архитектура: различия между версиями

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
[отпатрулированная версия][непроверенная версия]
Содержимое удалено Содержимое добавлено
Преамбула: Уточнение
Нет описания правки
Метки: с мобильного устройства из мобильной версии
 
(не показано 12 промежуточных версий 8 участников)
Строка 1: Строка 1:
{{нет источников|дата=2015-01-17}}
{{нет источников|дата=2015-01-17}}
[[Файл:CSD SCHEME.png|thumb|Трехуровневая схема]]
'''Трёху́ровневая архитекту́ра''' (''трёхзве́нная архитекту́ра'', {{lang-en|three-tier}}) — [[Архитектура системы|архитектурная модель]] программного комплекса, предполагающая наличие в нём трёх типов компонентов (уровней, звеньев): [[Прикладное программное обеспечение|клиентских приложений]] (с которыми работают пользователи), [[сервер приложений|серверов приложений]] (с которыми работают клиентские приложения) и [[сервер базы данных|серверов баз данных]] (с которыми работают серверы приложений).
'''Трёху́ровневая архитекту́ра''' (''трёхзве́нная архитекту́ра'', {{lang-en|three-tier}}) — [[Архитектура системы|архитектурная модель]] [[Программная система|программного комплекса]], предполагающая наличие в нём трёх типов компонентов (уровней, звеньев): [[Прикладное программное обеспечение|клиентских приложений]] (с которыми работают пользователи), [[сервер приложений|серверов приложений]] (с которыми работают клиентские приложения) и [[сервер базы данных|серверов баз данных]] (с которыми работают серверы приложений)<ref>{{Книга|ссылка=http://www.ooart.ru/uploads/book/arhitektura_korporativnyh_programmnyh_prilozhenij_fauler_m.pdf|автор=Мартин Фаулер|заглавие=Архитектура корпоративных программных приложений|год=2006|место=М.|издательство=Вильямс|страницы=46|страниц=544|isbn=5-8459-0579-6|archive-date=2022-02-10|archive-url=https://web.archive.org/web/20220210025926/http://www.ooart.ru/uploads/book/arhitektura_korporativnyh_programmnyh_prilozhenij_fauler_m.pdf}}</ref>.
[[Файл:CSD SCHEME.png|thumb|350px|Трехуровневая схема]]


== Компоненты ==
== Компоненты ==
[[Клиент (информатика)|Клиент]] (''слой клиента'') — это интерфейсный (обычно [[Графический интерфейс пользователя|графический]]) компонент комплекса, предоставляемый конечному пользователю. Этот уровень не должен иметь прямых связей с базой данных (по требованиям безопасности и масштабируемости), быть нагруженным основной [[Бизнес-логика|бизнес-логикой]] (по требованиям [[Масштабируемость|масштабируемости]]) и хранить состояние приложения (по требованиям надёжности). На этот уровень обычно выносится только простейшая бизнес-логика: интерфейс [[Авторизация|авторизации]], алгоритмы шифрования, проверка вводимых значений на допустимость и соответствие формату, несложные операции с данными (сортировка, группировка, подсчёт значений), уже загруженными на терминал.
[[Клиент (информатика)|Клиент]] (''слой клиента'') — это компонент комплекса(обычно [[Графический интерфейс пользователя|графический]]), предоставляемый конечному пользователю. Этот уровень не должен иметь прямых связей с базой данных (по требованиям безопасности и масштабируемости), быть нагруженным основной [[Бизнес-логика|бизнес-логикой]] (по требованиям [[Масштабируемость|масштабируемости]]) и хранить состояние приложения (по требованиям [[Надёжность (компьютерные науки)|надёжности]]). На этот уровень обычно выносится только простейшая бизнес-логика: интерфейс [[Авторизация|авторизации]], алгоритмы [[Шифрование|шифрования]], проверка вводимых значений на допустимость и соответствие формату, несложные операции с данными (сортировка, группировка, подсчёт значений), уже загруженными на терминал.


[[Сервер приложений]] (''средний слой'', ''связующий слой'') располагается на втором уровне, на нём сосредоточена бо́льшая часть бизнес-логики. Вне его остаются только фрагменты, экспортируемые на клиента (терминалы), а также элементы логики, погруженные в базу данных (хранимые процедуры и триггеры). Реализация данного компонента обеспечивается [[Связующее программное обеспечение|связующим программным обеспечением]]. Серверы приложений проектируются таким образом, чтобы добавление к ним дополнительных экземпляров обеспечивало [[горизонтальное масштабирование]] производительности программного комплекса и не требовало внесения изменений в программный код приложения.
[[Сервер приложений]] (''средний слой'', ''связующий слой'') располагается на втором уровне, на нём сосредоточена бо́льшая часть бизнес-логики. Вне его остаются только фрагменты, экспортируемые клиенту (терминалу), а также элементы логики, погруженные в базу данных (хранимые процедуры и триггеры). Реализация данного компонента обеспечивается [[Связующее программное обеспечение|связующим программным обеспечением]]. Серверы приложений проектируются таким образом, чтобы добавление к ним дополнительных экземпляров обеспечивало [[горизонтальное масштабирование]] производительности программного комплекса и не требовало внесения изменений в программный код приложения.


Сервер баз данных (''слой данных'') обеспечивает хранение данных и выносится на отдельный уровень, реализуется, как правило, средствами [[Система управления базами данных|систем управления базами данных]], подключение к этому компоненту обеспечивается только с уровня сервера приложений.
Сервер баз данных (''слой данных'') обеспечивает хранение данных и выносится на отдельный уровень, реализуется, как правило, средствами [[Система управления базами данных|систем управления базами данных]], подключение к этому компоненту обеспечивается только с уровня сервера приложений.


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


== Сравнение ==
== Сравнение ==
По сравнению с двухзвенной [[клиент-сервер]]ной архитектурой или [[файл-сервер]]ной архитектурой трёхуровневая архитектура обеспечивает, как правило, бо́льшую [[масштабируемость]] (за счёт горизонтальной масштабируемости сервера приложений и мультиплексирования соединений), бо́льшую конфигурируемость (за счёт изолированности уровней друг от друга). Реализация приложений, доступных из [[веб-браузер]]а или из [[Тонкий клиент|тонкого клиента]], как правило, подразумевает развёртывание программного комплекса в трёхуровневой архитектуре. При этом обычно разработка трёхзвенных программных комплексов сложнее, чем для двухзвенных, также наличие дополнительного связующего программного обеспечения может налагать дополнительные издержки в администрировании таких комплексов.
По сравнению с двухзвенной [[клиент-сервер]]ной архитектурой или [[файл-сервер]]ной архитектурой трёхуровневая архитектура обеспечивает, как правило, бо́льшую [[масштабируемость]] (за счёт горизонтальной масштабируемости сервера приложений и мультиплексирования соединений), бо́льшую конфигурируемость (за счёт изолированности уровней друг от друга). Реализация приложений, доступных из [[веб-браузер]]а или из [[Тонкий клиент|тонкого клиента]], как правило, подразумевает развёртывание программного комплекса в трёхуровневой архитектуре. При этом обычно разработка трёхзвенных программных комплексов сложнее, чем для двухзвенных, также наличие дополнительного связующего программного обеспечения может налагать дополнительные издержки в [[Системное администрирование|администрировании]] таких комплексов.


== Примечания ==
== Примечания ==

Текущая версия от 01:50, 19 сентября 2024

Трехуровневая схема

Трёху́ровневая архитекту́ра (трёхзве́нная архитекту́ра, англ. three-tier) — архитектурная модель программного комплекса, предполагающая наличие в нём трёх типов компонентов (уровней, звеньев): клиентских приложений (с которыми работают пользователи), серверов приложений (с которыми работают клиентские приложения) и серверов баз данных (с которыми работают серверы приложений)[1].

Компоненты

[править | править код]

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

Сервер приложений (средний слой, связующий слой) располагается на втором уровне, на нём сосредоточена бо́льшая часть бизнес-логики. Вне его остаются только фрагменты, экспортируемые клиенту (терминалу), а также элементы логики, погруженные в базу данных (хранимые процедуры и триггеры). Реализация данного компонента обеспечивается связующим программным обеспечением. Серверы приложений проектируются таким образом, чтобы добавление к ним дополнительных экземпляров обеспечивало горизонтальное масштабирование производительности программного комплекса и не требовало внесения изменений в программный код приложения.

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

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

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

Примечания

[править | править код]
  1. Мартин Фаулер. Архитектура корпоративных программных приложений. — М.: Вильямс, 2006. — С. 46. — 544 с. — ISBN 5-8459-0579-6. Архивировано 10 февраля 2022 года.