Трёхуровневая архитектура: различия между версиями
[отпатрулированная версия] | [непроверенная версия] |
→Преамбула: Уточнение |
Нет описания правки Метки: с мобильного устройства из мобильной версии |
||
(не показано 12 промежуточных версий 8 участников) | |||
Строка 1: | Строка 1: | ||
{{нет источников|дата=2015-01-17}} |
{{нет источников|дата=2015-01-17}} |
||
⚫ | |||
'''Трёху́ровневая архитекту́ра''' (''трёхзве́нная архитекту́ра'', {{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>. |
||
⚫ | |||
== Компоненты == |
== Компоненты == |
||
[[Клиент (информатика)|Клиент]] (''слой клиента'') — это |
[[Клиент (информатика)|Клиент]] (''слой клиента'') — это компонент комплекса(обычно [[Графический интерфейс пользователя|графический]]), предоставляемый конечному пользователю. Этот уровень не должен иметь прямых связей с базой данных (по требованиям безопасности и масштабируемости), быть нагруженным основной [[Бизнес-логика|бизнес-логикой]] (по требованиям [[Масштабируемость|масштабируемости]]) и хранить состояние приложения (по требованиям [[Надёжность (компьютерные науки)|надёжности]]). На этот уровень обычно выносится только простейшая бизнес-логика: интерфейс [[Авторизация|авторизации]], алгоритмы [[Шифрование|шифрования]], проверка вводимых значений на допустимость и соответствие формату, несложные операции с данными (сортировка, группировка, подсчёт значений), уже загруженными на терминал. |
||
[[Сервер приложений]] (''средний слой'', ''связующий слой'') располагается на втором уровне, на нём сосредоточена бо́льшая часть бизнес-логики. Вне его остаются только фрагменты, экспортируемые |
[[Сервер приложений]] (''средний слой'', ''связующий слой'') располагается на втором уровне, на нём сосредоточена бо́льшая часть бизнес-логики. Вне его остаются только фрагменты, экспортируемые клиенту (терминалу), а также элементы логики, погруженные в базу данных (хранимые процедуры и триггеры). Реализация данного компонента обеспечивается [[Связующее программное обеспечение|связующим программным обеспечением]]. Серверы приложений проектируются таким образом, чтобы добавление к ним дополнительных экземпляров обеспечивало [[горизонтальное масштабирование]] производительности программного комплекса и не требовало внесения изменений в программный код приложения. |
||
Сервер баз данных (''слой данных'') обеспечивает хранение данных и выносится на отдельный уровень, реализуется, как правило, средствами [[Система управления базами данных|систем управления базами данных]], подключение к этому компоненту обеспечивается только с уровня сервера приложений. |
Сервер баз данных (''слой данных'') обеспечивает хранение данных и выносится на отдельный уровень, реализуется, как правило, средствами [[Система управления базами данных|систем управления базами данных]], подключение к этому компоненту обеспечивается только с уровня сервера приложений. |
||
В простейших конфигурациях все компоненты или часть из них могут быть совмещены на одном вычислительном узле. В продуктивных конфигурациях как правило используется выделенный вычислительный узел для сервера баз данных или [[Кластер (группа компьютеров)|кластер]] серверов баз данных, для серверов приложений — выделенная группа вычислительных узлов, к которым непосредственно подключаются клиенты (терминалы). |
В простейших конфигурациях все компоненты или часть из них могут быть совмещены на одном вычислительном узле. В продуктивных конфигурациях, как правило, используется выделенный вычислительный узел для сервера баз данных или [[Кластер (группа компьютеров)|кластер]] серверов баз данных, для серверов приложений — выделенная группа вычислительных узлов, к которым непосредственно подключаются клиенты (терминалы). |
||
== Сравнение == |
== Сравнение == |
||
По сравнению с двухзвенной [[клиент-сервер]]ной архитектурой или [[файл-сервер]]ной архитектурой трёхуровневая архитектура обеспечивает, как правило, бо́льшую [[масштабируемость]] (за счёт горизонтальной масштабируемости сервера приложений и мультиплексирования соединений), бо́льшую конфигурируемость (за счёт изолированности уровней друг от друга). Реализация приложений, доступных из [[веб-браузер]]а или из [[Тонкий клиент|тонкого клиента]], как правило, подразумевает развёртывание программного комплекса в трёхуровневой архитектуре. При этом обычно разработка трёхзвенных программных комплексов сложнее, чем для двухзвенных, также наличие дополнительного связующего программного обеспечения может налагать дополнительные издержки в администрировании таких комплексов. |
По сравнению с двухзвенной [[клиент-сервер]]ной архитектурой или [[файл-сервер]]ной архитектурой трёхуровневая архитектура обеспечивает, как правило, бо́льшую [[масштабируемость]] (за счёт горизонтальной масштабируемости сервера приложений и мультиплексирования соединений), бо́льшую конфигурируемость (за счёт изолированности уровней друг от друга). Реализация приложений, доступных из [[веб-браузер]]а или из [[Тонкий клиент|тонкого клиента]], как правило, подразумевает развёртывание программного комплекса в трёхуровневой архитектуре. При этом обычно разработка трёхзвенных программных комплексов сложнее, чем для двухзвенных, также наличие дополнительного связующего программного обеспечения может налагать дополнительные издержки в [[Системное администрирование|администрировании]] таких комплексов. |
||
== Примечания == |
== Примечания == |
Текущая версия от 01:50, 19 сентября 2024
В статье не хватает ссылок на источники (см. рекомендации по поиску). |
Трёху́ровневая архитекту́ра (трёхзве́нная архитекту́ра, англ. three-tier) — архитектурная модель программного комплекса, предполагающая наличие в нём трёх типов компонентов (уровней, звеньев): клиентских приложений (с которыми работают пользователи), серверов приложений (с которыми работают клиентские приложения) и серверов баз данных (с которыми работают серверы приложений)[1].
Компоненты
[править | править код]Клиент (слой клиента) — это компонент комплекса(обычно графический), предоставляемый конечному пользователю. Этот уровень не должен иметь прямых связей с базой данных (по требованиям безопасности и масштабируемости), быть нагруженным основной бизнес-логикой (по требованиям масштабируемости) и хранить состояние приложения (по требованиям надёжности). На этот уровень обычно выносится только простейшая бизнес-логика: интерфейс авторизации, алгоритмы шифрования, проверка вводимых значений на допустимость и соответствие формату, несложные операции с данными (сортировка, группировка, подсчёт значений), уже загруженными на терминал.
Сервер приложений (средний слой, связующий слой) располагается на втором уровне, на нём сосредоточена бо́льшая часть бизнес-логики. Вне его остаются только фрагменты, экспортируемые клиенту (терминалу), а также элементы логики, погруженные в базу данных (хранимые процедуры и триггеры). Реализация данного компонента обеспечивается связующим программным обеспечением. Серверы приложений проектируются таким образом, чтобы добавление к ним дополнительных экземпляров обеспечивало горизонтальное масштабирование производительности программного комплекса и не требовало внесения изменений в программный код приложения.
Сервер баз данных (слой данных) обеспечивает хранение данных и выносится на отдельный уровень, реализуется, как правило, средствами систем управления базами данных, подключение к этому компоненту обеспечивается только с уровня сервера приложений.
В простейших конфигурациях все компоненты или часть из них могут быть совмещены на одном вычислительном узле. В продуктивных конфигурациях, как правило, используется выделенный вычислительный узел для сервера баз данных или кластер серверов баз данных, для серверов приложений — выделенная группа вычислительных узлов, к которым непосредственно подключаются клиенты (терминалы).
Сравнение
[править | править код]По сравнению с двухзвенной клиент-серверной архитектурой или файл-серверной архитектурой трёхуровневая архитектура обеспечивает, как правило, бо́льшую масштабируемость (за счёт горизонтальной масштабируемости сервера приложений и мультиплексирования соединений), бо́льшую конфигурируемость (за счёт изолированности уровней друг от друга). Реализация приложений, доступных из веб-браузера или из тонкого клиента, как правило, подразумевает развёртывание программного комплекса в трёхуровневой архитектуре. При этом обычно разработка трёхзвенных программных комплексов сложнее, чем для двухзвенных, также наличие дополнительного связующего программного обеспечения может налагать дополнительные издержки в администрировании таких комплексов.
Примечания
[править | править код]- ↑ Мартин Фаулер. Архитектура корпоративных программных приложений. — М.: Вильямс, 2006. — С. 46. — 544 с. — ISBN 5-8459-0579-6. Архивировано 10 февраля 2022 года.
Для улучшения этой статьи желательно:
|