Трехзвенная архитектура приложений - IT Новости из мира ПК
Remkomplekty.ru

IT Новости из мира ПК
25 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

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

Трехуровневая архитектура. Достоинства и недостатки

В компьютерных технологиях трёхуровневая архитектура, синоним трёхзвенная архитектура (англ. three-tier или Multitier architecture) предполагает наличие следующих компонентов приложения: клиентское приложение (обычно говорят «тонкий клиент» или терминал), подключенное к серверу приложений, который в свою очередь подключен к серверу базы данных.

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

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

· Сервер базы данных обеспечивает хранение данных и выносится на третий уровень. Обычно это стандартная реляционная или объектно-ориентированная СУБД. Если третий уровень представляет собой базу данных вместе с хранимыми процедурами, триггерами и схемой, описывающей приложение в терминах реляционной модели, то второй уровень строится как программный интерфейс, связывающий клиентские компоненты с прикладной логикой базы данных.

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

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

По сравнению с клиент-серверной или файл-серверной архитектурой можно выделить следующие достоинства трёхуровневой архитектуры:

· конфигурируемость — изолированность уровней друг от друга позволяет (при правильном развертывании архитектуры) быстро и простыми средствами переконфигурировать систему при возникновении сбоев или при плановом обслуживании на одном из уровней

· низкие требования к скорости канала (сети) между терминалами и сервером приложений

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

Недостатки вытекают из достоинств. По сравнению c клиент-серверной или файл-серверной архитектурой можно выделить следующие недостатки трёхуровневой архитектуры:

· более высокая сложность создания приложений;

· сложнее в разворачивании и администрировании;

· высокие требования к производительности серверов приложений и сервера базы данных, а, значит, и высокая стоимость серверного оборудования;

· высокие требования к скорости канала (сети) между сервером базы данных и серверами приложений.

Различные архитектурные решения, используемые при реализации многопользовательских СУБД. Краткий обзор СУБД

3.3. Технология «клиент – сервер»

Использование технологии » клиент – сервер » предполагает наличие некоторого количества компьютеров, объединенных в сеть , один из которых выполняет особые управляющие функции (является сервером сети).

Так, архитектура » клиент – сервер » разделяет функции приложения пользователя (называемого клиентом) и сервера. Приложение -клиент формирует запрос к серверу, на котором расположена БД , на структурном языке запросов SQL (Structured Query Language ), являющемся промышленным стандартом в мире реляционных БД . Удаленный сервер принимает запрос и переадресует его SQL -серверу БД . SQL — сервер – специальная программа , управляющая удаленной базой данных. SQL — сервер обеспечивает интерпретацию запроса, его выполнение в базе данных, формирование результата выполнения запроса и выдачу его приложению-клиенту. При этом ресурсы клиентского компьютера не участвуют в физическом выполнении запроса; клиентский компьютер лишь отсылает запрос к серверной БД и получает результат, после чего интерпретирует его необходимым образом и представляет пользователю. Так как клиентскому приложению посылается результат выполнения запроса, по сети «путешествуют» только те данные, которые необходимы клиенту. В итоге снижается нагрузка на сеть . Поскольку выполнение запроса происходит там же, где хранятся данные (на сервере), нет необходимости в пересылке больших пакетов данных. Кроме того, SQL — сервер , если это возможно, оптимизирует полученный запрос таким образом, чтобы он был выполнен в минимальное время с наименьшими накладными расходами [ [ 3.2 ] , [ 3.3 ] ]. Архитектура системы представлена на рис. 3.3.

Все это повышает быстродействие системы и снижает время ожидания результата запроса. При выполнении запросов сервером существенно повышается степень безопасности данных, поскольку правила целостности данных определяются в базе данных на сервере и являются едиными для всех приложений, использующих эту БД . Таким образом, исключается возможность определения противоречивых правил поддержания целостности. Мощный аппарат транзакций, поддерживаемый SQL -серверами, позволяет исключить одновременное изменение одних и тех же данных различными пользователями и предоставляет возможность откатов к первоначальным значениям при внесении в БД изменений, закончившихся аварийно [ [ 3.2 ] , [ 3.3 ] ].

Итак, в результате работа построена следующим образом:

  • База данных в виде набора файлов находится на жестком диске специально выделенного компьютера (сервера сети).
  • СУБД располагается также на сервере сети.
  • Существует локальная сеть, состоящая из клиентских компьютеров, на каждом из которых установлено клиентское приложение для работы с БД.
  • На каждом из клиентских компьютеров пользователи имеют возможность запустить приложение. Используя предоставляемый приложением пользовательский интерфейс, он инициирует обращение к СУБД, расположенной на сервере, на выборку/обновление информации. Для общения используется специальный язык запросов SQL , т.е. по сети от клиента к серверу передается лишь текст запроса.
  • СУБД инкапсулирует внутри себя все сведения о физической структуре БД, расположенной на сервере.
  • СУБД инициирует обращения к данным, находящимся на сервере, в результате которых на сервере осуществляется вся обработка данных и лишь результат выполнения запроса копируется на клиентский компьютер. Таким образом СУБД возвращает результат в приложение.
  • Приложение, используя пользовательский интерфейс, отображает результат выполнения запросов.
Читать еще:  Современную архитектуру эвм предложил

Рассмотрим, как выглядит разграничение функций между сервером и клиентом.

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

    В архитектуре » клиент – сервер » работают так называемые «промышленные» СУБД . Промышленными они называются из-за того, что именно СУБД этого класса могут обеспечить работу информационных систем масштаба среднего и крупного предприятия, организации, банка. К разряду промышленных СУБД принадлежат MS SQL Server , Oracle , Gupta, Informix , Sybase , DB2 , InterBase и ряд других [ [ 3.2 ] ].

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

    Рассмотрим основные достоинства данной архитектуры по сравнению с архитектурой » файл — сервер «:

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

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

    3.4. Трехзвенная (многозвенная) архитектура «клиент – сервер».

    Трехзвенная (в некоторых случаях многозвенная ) архитектура (N- tier или multi- tier ). представляет собой дальнейшее совершенствование технологии » клиент – сервер «. Рассмотрев архитектуру » клиент – сервер «, можно заключить, что она является 2-звенной: первое звено – клиентское приложение , второе звено – сервер БД + сама БД . В трехзвенной архитектуре вся бизнес-логика (деловая логика), ранее входившая в клиентские приложения, выделяется в отдельное звено, называемое сервером приложений. При этом клиентским приложениям остается лишь пользовательский интерфейс . Так, в качестве клиентского приложения в описанном выше примере выступает Web-браузер.

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

    Итак, в результате работа построена следующим образом:

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

    В компьютерных технологиях трёхуровневая архитектура, синоним трёхзвенная архитектура (англ. three-tier или Multitier architecture) предполагает наличие следующих компонентов приложения: клиентское приложение (обычно говорят «тонкий клиент» или терминал), подключенное к серверу приложений, который в свою очередь подключен к серверу базы данных.

    Содержание

    Обзор архитектуры

    • Клиент — это интерфейсный (обычно графический) компонент, который представляет первый уровень, собственно приложение для конечного пользователя. Первый уровень не должен иметь прямых связей с базой данных (по требованиям безопасности), быть нагруженным основной бизнес-логикой (по требованиям масштабируемости) и хранить состояние приложения (по требованиям надежности). На первый уровень может быть вынесена и обычно выносится простейшая бизнес-логика: интерфейс авторизации, алгоритмы шифрования, проверка вводимых значений на допустимость и соответствие формату, несложные операции (сортировка, группировка, подсчет значений) с данными, уже загруженными на терминал.
    • Сервер приложений располагается на втором уровне. На втором уровне сосредоточена бо́льшая часть бизнес-логики. Вне его остаются фрагменты, экспортируемые на терминалы (см.выше), а также погруженные в третий уровень хранимые процедуры и триггеры.
    • Сервер базы данных обеспечивает хранение данных и выносится на третий уровень. Обычно это стандартная реляционная или объектно-ориентированнаяСУБД. Если третий уровень представляет собой базу данных вместе с хранимыми процедурами, триггерами и схемой, описывающей приложение в терминах реляционной модели, то второй уровень строится как программный интерфейс, связывающий клиентские компоненты с прикладной логикой базы данных.

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

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

    Достоинства

    По сравнению с клиент-серверной или файл-серверной архитектурой можно выделить следующие достоинства трёхуровневой архитектуры:

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

    Недостатки

    Недостатки вытекают из достоинств. По сравнению c клиент-серверной или файл-серверной архитектурой можно выделить следующие недостатки трёхуровневой архитектуры:

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

    СУБД в архитектуре клиент-сервер. Двухзвенная и трехзвенная архитектура.

    Технология «клиент – сервер»

    Использование технологии » клиент – сервер » предполагает наличие некоторого количества компьютеров, объединенных в сеть, один из которых выполняет особые управляющие функции (является сервером сети).

    Так, архитектура » клиент – сервер » разделяет функции приложения пользователя (называемого клиентом) и сервера. Приложение-клиент формирует запрос к серверу, на котором расположена БД, на структурном языке запросов SQL (Structured Query Language), являющемся промышленным стандартом в мире реляционных БД. Удаленный сервер принимает запрос и переадресует его SQL-серверу БД. SQL-сервер – специальная программа, управляющая удаленной базой данных. SQL-сервер обеспечивает интерпретацию запроса, его выполнение в базе данных, формирование результата выполнения запроса и выдачу его приложению-клиенту. При этом ресурсы клиентского компьютера не участвуют в физическом выполнении запроса; клиентский компьютер лишь отсылает запрос к серверной БД и получает результат, после чего интерпретирует его необходимым образом и представляет пользователю. Так как клиентскому приложению посылается результат выполнения запроса, по сети «путешествуют» только те данные, которые необходимы клиенту. В итоге снижается нагрузка на сеть. Поскольку выполнение запроса происходит там же, где хранятся данные (на сервере), нет необходимости в пересылке больших пакетов данных. Кроме того, SQL-сервер, если это возможно, оптимизирует полученный запрос таким образом, чтобы он был выполнен в минимальное время с наименьшими накладными расходами [[6], [7]]. Архитектура системы представлена на рис. 3.3.

    Все это повышает быстродействие системы и снижает время ожидания результата запроса. При выполнении запросов сервером существенно повышается степень безопасности данных, поскольку правила целостности данных определяются в базе данных на сервере и являются едиными для всех приложений, использующих эту БД. Таким образом, исключается возможность определения противоречивых правил поддержания целостности. Мощный аппарат транзакций, поддерживаемый SQL-серверами, позволяет исключить одновременное изменение одних и тех же данных различными пользователями и предоставляет возможность откатов к первоначальным значениям при внесении в БД изменений, закончившихся аварийно [[6], [7]].

    Рис. 3.3. Архитектура «клиент – сервер»

    Итак, в результате работа построена следующим образом:

    · База данных в виде набора файлов находится на жестком диске специально выделенного компьютера (сервера сети).

    · СУБД располагается также на сервере сети.

    · Существует локальная сеть, состоящая из клиентских компьютеров, на каждом из которых установлено клиентское приложение для работы с БД.

    · На каждом из клиентских компьютеров пользователи имеют возможность запустить приложение. Используя предоставляемый приложением пользовательский интерфейс, он инициирует обращение к СУБД, расположенной на сервере, на выборку/обновление информации. Для общения используется специальный язык запросов SQL, т.е. по сети от клиента к серверу передается лишь текст запроса.

    · СУБД инкапсулирует внутри себя все сведения о физической структуре БД, расположенной на сервере.

    · СУБД инициирует обращения к данным, находящимся на сервере, в результате которых на сервере осуществляется вся обработка данных и лишь результат выполнения запроса копируется на клиентский компьютер. Таким образом СУБД возвращает результат в приложение.

    · Приложение, используя пользовательский интерфейс, отображает результат выполнения запросов.

    Рассмотрим, как выглядит разграничение функций между сервером и клиентом.

    o Посылка запросов серверу.

    o Интерпретация результатов запросов, полученных от сервера.

    o Представление результатов пользователю в некоторой форме (интерфейс пользователя).

    · Функции серверной части:

    o Прием запросов от приложений-клиентов.

    o Интерпретация запросов.

    o Оптимизация и выполнение запросов к БД.

    o Отправка результатов приложению-клиенту.

    o Обеспечение системы безопасности и разграничение доступа.

    o Управление целостностью БД.

    o Реализация стабильности многопользовательского режима работы.

    В архитектуре » клиент – сервер » работают так называемые «промышленные» СУБД. Промышленными они называются из-за того, что именно СУБД этого класса могут обеспечить работу информационных систем масштаба среднего и крупного предприятия, организации, банка. К разряду промышленных СУБД принадлежат MS SQL Server, Oracle, Gupta, Informix, Sybase, DB2, InterBase и ряд других [[6]].

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

    Рассмотрим основные достоинства данной архитектуры по сравнению с архитектурой «файл-сервер»:

    · Существенно уменьшается сетевой трафик.

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

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

    · Существенно повышается целостность и безопасность БД.

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

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

    Для решения этих проблем и была предложена так называемая 3-х уровневая архитектура клиент-сервер (рис.1.9). Основным ее отличием от архитектуры 2.5 является физическоеразделение программ, отвечающих за хранение данных (СУБД) от обрабатывающих эти данные программ (сервер приложения (СП). Такое разделение программных компонент позволяет оптимизировать нагрузки как на сетевое, так и на вычислительное оборудование комплекса.

    Компоненты трехуровневой архитектуры, с точки зрения программного обеспечения реализуют определенные серверы БД, web-серверы и браузеры. Место любого из этих компонентов может занять программное обеспечение любого производителя. Модель сервера приложений показана на рис.1.10.

    Ниже представлено описание взаимодействия компонентов трехуровневой архитектуры клиент-серверного приложения. Сервер БД представлен MySQL-сервером; сервер приложений технологиями: ADO.NET, ASP.NET и web-сервером IIS; роль клиента выполняет любой web-браузер.

    Схематично работу системы можно представить в виде последовательности: Браузер клиента1-> Сервер IIS2-> Исполняющая среда ASP.NET 2.03-> Провайдер данных ADO.NET 2.04-> Сервер MySQL5-> Провайдер данных ADO.NET 2.06-> Исполняющая среда ASP.NET 2.07-> Сервер IIS8-> Браузер клиента.

    Более детально функционирование системы происходит следующим образом.

    1 — браузер клиента отправляет HTTP-запрос;

    2 — на стороне сервера служба Web Internet Information Server (web-сервер IIS) определяет тип запрашиваемого ресурса, и для случая запроса *.aspx (расширение файлов страниц ASP.NET) загружает соответствующее ему (запросу) расширение Internet Server Aplication Programming Interface (ISAPI). Для страниц aspx это расширение isapi_aspnet.dll. IIS также осуществляет идентификацию и авторизацию пользователя от которого поступил запрос. В свою очередь расширение isapi_aspnet.dll загружает фабрику обработчиков ASP.NET. Далее, фабрика обработчиков создает объектную модель запрашиваемой страницы и обрабатывает действия пользователя.

    3 — в ходе генерации ответа приложению ASP.NET может потребоваться обращение к БД, в этом случае используя библиотеки классов провайдера данных ADO.NET 2.0, выполняющая среда обращается к серверу БД;

    4 — провайдер данных ADO.NET 2.0 передает запрос на операцию с БД серверу MySQL;

    5 — сервер MySQL осуществляет обработку запроса, выполняя соответствующие операции с БД;

    6 — провайдер данных ADO.NET 2.0 передает результаты запроса объекту страницы;

    7 — объект страницы с учетом полученных данных осуществляет визуализацию (рендеринг) графического интерфейса страницы и направляет результаты в выходной поток;

    8 — сервер IIS отправляет содержимое сгенерированной страницы клиентскому браузеру.

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

    1. Меньшая нагрузка на клиентское приложение («Тонкий клиент»).

    2. Между клиентской программой и сервером приложения передается лишь минимально необходимый поток данных — аргументы вызываемых функций и возвращаемые от них значения. Это теоретический предел эффективности использования линий связи, даже работа с ANSI-терминалами (не говоря уже об использование протокола http) требует большей нагрузки на сеть.

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

    4. Дешевый трафик между сервером приложений и СУБД. Трафик между сервером приложений и СУБД может быть большим, однако это всегда трафик локальной сети, а их пропускная способность достаточно велика и дешева. В крайнем случае, всегда можно запустить сервер приложений и СУБД на одной машине, что автоматически сведет сетевой трафик к нулю.

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

    6. Дешевле наращивать функциональность и обновлять ПО.

    К недостаткам архитектуры можно отнести более высокие расходы на администрирование и обслуживание серверной части.

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

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

    0 0 голоса
    Рейтинг статьи
Ссылка на основную публикацию
ВсеИнструменты
×
×