Где выполняются программы пользователя в трехзвенной архитектуре

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

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

SQL — сервер обеспечивает интерпретацию запроса, его выполнение в базе данных, формирование результата выполнения запроса и выдачу его приложению-клиенту. При этом ресурсы клиентского компьютера не участвуют в физическом выполнении запроса; клиентский компьютер лишь отсылает запрос к серверной БД и получает результат, после чего интерпретирует его необходимым образом и представляет пользователю.

Архитектура Web Приложений / от простых до высоконагруженных

Так как клиентскому приложению посылается результат выполнения запроса, по сети «путешествуют» только те данные, которые необходимы клиенту. В итоге снижается нагрузка на сеть . Поскольку выполнение запроса происходит там же, где хранятся данные (на сервере), нет необходимости в пересылке больших пакетов данных. Кроме того, SQL — сервер , если это возможно, оптимизирует полученный запрос таким образом, чтобы он был выполнен в минимальное время с наименьшими накладными расходами [ [ 3.2 ] , [ 3.3 ] ]. Архитектура системы представлена на рис. 3.3.

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


Рис. 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-браузер.

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

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

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

Источник: intuit.ru

Введение в архитектуру клиент-серверных хранилищ

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

Читайте также:
Дента программа для стоматологии отзывы

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

Компоненты информационной системы по выполняемым функциям можно разделить на три слоя: слой представления, слой бизнес-логики и слой доступа к данным.

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

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

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

С точки зрения программно-аппаратной реализации можно выделить ряд типовых архитектур ИС.

Архитектуры приложений для работы с базами данных

Двухзвенная архитектура

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

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

Клиентская программа работает с данными через запросы к серверному ПО. Базовые функции приложения разделены между клиентом и сервером.

  • Полная поддержка многопользовательской работы
  • Гарантия целостности данных
  • Бизнес логика приложений осталась в клиентском ПО. При любом изменении алгоритмов, надо обновлять пользовательское ПО на каждом клиенте.
  • Высокие требования к пропускной способности коммуникационных каналов с сервером, что препятствует использование клиентских станций иначе как в локальной сети.
  • Слабая защита данных от взлома, в особенности от недобросовестных пользователей системы.
  • Высокая сложность администрирования и настройки рабочих мест пользователей системы.
  • Необходимость использовать мощные ПК на клиентских местах.
  • Высокая сложность разработки системы из-за необходимости выполнять бизнеслогику и обеспечивать пользовательский интерфейс в одной программе.

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

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

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

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

Сервер приложений располагается на выделенном сервере приложений, выполняющем функции промежуточного ПО.

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

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

Процедура «запрос — ответ»

В наиболее общем виде процесс «запрос — ответ» состоит из просьбы браузера к веб-серверу отправить ему веб-страницу и выполнения браузером данной просьбы. После этого браузер занимается отображением страницы.

При этом соблюдается такая последовательность действий.

  1. Вы вводите в адресную строку браузера http://server.com.
  2. Ваш браузер ищет IP-адрес, соответствующий доменному имени server.com.
  3. Браузер посылает запрос на главную страницу server.com.
  4. Запрос проходит по Интернету и поступает на веб-сервер server.com.
  5. Веб-сервер, получивший запрос, ищет веб-страницу на своем жестком диске.
  6. Сервер извлекает веб-страницу и отправляет ее по обратному маршруту в адрес браузера.
  7. Браузер отображает веб-страницу.

При передаче типовой веб-страницы этот процесс осуществляется для каждого имеющегося на ней объекта: элемента графики, встроенного видео- или Flash-ролика и даже шаблона CSS.

Обратите внимание на то, что на шаге 2 браузер ищет IP-адрес, принадлежащий доменному имени server.com. У каждой машины, подключенной к Интернету, включая и ваш компьютер, есть свой IP-адрес. Но, как правило, доступ к веб-серверам осуществляется по именам, таким как google.com. Вам, должно быть, известно, что браузер обращается к вспомогательной интернет-службе, так называемой службе доменных имен (Domain Name Service (DNS)), для того чтобы найти связанный с сервером IP-адрес, а затем воспользоваться им для связи с компьютером.

При передаче динамических веб-страниц процедура состоит из большего количества действий, поскольку к ней могут привлекаться как PHP, так и MySQL.

  1. Вы вводите в адресную строку браузера http://server.com.
  2. Ваш браузер ищет IP-адрес, соответствующий доменному имени server.com.
  3. Браузер посылает запрос на главную страницу server.com.
  4. Запрос проходит по Сети и поступает на веб-сервер server.com.
  5. Веб-сервер, получивший запрос, ищет веб-страницу на своем жестком диске.
  6. Теперь, когда главная страница размещена в его памяти, веб-сервер замечает, что она представлена файлом, включающим в себя PHP-сценарии, и передает страницу интерпретатору PHP.
  7. Интерпретатор PHP выполняет PHP-код.
  8. Кое-какие фрагменты кода PHP содержат MySQL-инструкции, которые интерпретатор PHP, в свою очередь, передает процессору базы данных MySQL.
  9. База данных MySQL возвращает результаты выполнения инструкции интерпретатору PHP.
  10. Интерпретатор PHP возвращает веб-серверу результаты выполнения кода PHP, а также результаты, полученные от базы данных MySQL.
  11. Веб-сервер возвращает страницу выдавшему запрос клиенту, который отображает эту страницу на экране.

В каждом из примеров возвращенные браузеру HTML-страницы могут содержать также код JavaScript, интерпретируемый локально на машине клиента. Этот код может инициировать еще один запрос, точно так же запрос может быть инициирован встроенными объектами, например изображениями.

Источник: xn--80aaghdqfmgbznzk1h1c8b.xn--p1ai

Где выполняются программы пользователя в трехзвенной архитектуре?

Где расположены программы пользователя и программы СУБД в архитектуре клиент-сервер?

Где расположены программы пользователя и программы СУБД в архитектуре файл-сервер?

Что делает сервер приложений в трехзвенной (многозвенной) архитектуре?

Где расположена база данных в архитектуре клиент-сервер?

Архитектура файл-сервер. Где расположена база данных в такой архитектуре?

На каком компьютере происходит работа с базой данных в архитектуре клиент-сервер?

Какие черты характерны для компьютеров-клиентов в архитектуре клиент-сервер по сравнению с файл-серверной архитектурой?

Как меняется объем данных, передаваемых по локальной сети в архитектуре клиент-сервер по сравнению с файл-серверной архитектурой?

Какие действия выполняются на этапе проектирования структур хранения?

Источник: bazaintuit.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru