Лекция: Обобщенная модель взаимодействия клиент-сервер

В настоящее время существуют двух- и трёхзвенные модели взаимодействия (иногда термин «звено» заменяют на «слой»). Компанией Gartner Group[10], специализирующейся в области исследования информационных технологий, предложена следующая классификация двухзвенных моделей взаимодействия клиент-сервер (двухзвенными эти модели называются потому, что три компонента приложения различным образом распределяются между двумя компьютерными узлами) – Рис. 1‑1:

 

Рис. 1‑1. Схематическое представление возможного распределения разных элементов обработки данных на компьютере пользователя (над диагональю) и компьютере-сервере (под диагональю)

 

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

Исторически первой появилась модель распределенного представления данных, которая реализовывалась на универсальной ЭВМ с подключенными к ней неинтеллектуальными терминалами. Управление данными и взаимодействие с пользователем при этом объединялись в одной программе, на терминал передавалась только «картинка», сформированная на центральном компьютере.

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

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

Позже была разработана концепция активного сервера, который использовал механизм хранимых процедур. Это позволило часть прикладного компонента перенести на сервер (модель распределенного приложения). Процедуры хранятся в словаре базы данных, разделяются между несколькими клиентами и выполняются на том же компьютере, что и SQL-сервер. Преимущества такого подхода: возможно централизованное администрирование прикладных функций, значительно снижается сетевой трафик (т.к. передаются не SQL-запросы, а вызовы хранимых процедур). Недостаток — ограниченность средств разработки хранимых процедур по сравнению с языками общего назначения(С, С++, С#, PHP и т.д.).

На практике сейчас обычно используются смешанный подход:

· простейшие прикладные функции выполняются хранимыми процедурами на сервере,

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

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

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

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

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

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

 

Рис. 1‑2. Схематическое изображение трёхзвенной архитектуры

 

 

1.2.5. Трехслойная модель клиент/серверная архитектура для Web приложений и задачи его разработки

Термин «клиент/сервер» относится к применению сетей на основе серверов (то есть программ)для управления общим доступом к ресурсам и для распределения задач между аппаратными и программными компонентами. В клиент-серверных сетях на основе Web распределение задач обработки происходит в трех слоях, которые соответствуют трем основным компонентам оборудования и программного обеспечения системы (Рис. 1‑3).

Рис. 1‑3. Аппаратные и программные слои трехслойной системы обработки информации

 

 

В первом слое клиентский настольный ПК выполняет работу интерфейса пользователя системы; во втором слое сервер Web выполняет основные функции системы по обработке; и в третьем слое сервер базы данных, и в некоторых случаях медиа-сервер, осуществляет требуемые системе функции хранение и извлечения информации.

В свою очередь, каждый из трех аппаратных компонентов содержит соответствующее программное обеспечение. Клиентским программным обеспечением является браузер Web. Сервер Web выполняет сетевую операционную систему (NOS), такую, как Windows Server, Unix Server или Linux Server, и с помощью дополнительного программного обеспечения, например, Internet Information Server или Apache Web Server, реализует службы Интернет, — WWW, FTP, SMTP (Simple Mail Transfer Protocol) и другие. Сервер базы данных выполняет команды размещённой на нём системы управления базой данных, таких, как MySQL, Oracle, Microsoft SQL Server, Access и других популярных пакетов.

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

Рассмотрим, например, посещение Web-сайта электронной коммерции (е-коммерции). Браузер Web является интерфейсом работы с сайтом. В ответ на различные «входящие» запросы, которые вы отправляете при просмотре продаваемых товаров, создаются различные страницы «вывода». Запросы вводятся в систему через ссылки Web и посылаемые формы, ответы системы создают страницы HTML, передаваемые назад браузеру для вывода на экране. Браузер выполняет действия по вводу и выводу, необходимые для взаимодействия с сайтом.

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

Множество задач обработки, связанных с перемещением в сети и покупкой, происходят на серверах Web скрыто от пользователя, но они критически важны для осуществления покупки и для осуществления бизнес-транзакций, которые с этим связаны.

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

Даже в самых маленьких коммерческих системах на основе Web присутствуют такие же функции. Главное состоит в том, что в системах на основе Web любого размера существуют три основных слоя функциональности. Поэтому, с точки зрения разработчика Web, задача разработки полноценного приложения состоит в создании:

· интерфейса пользователя,

· процедур обработки бизнес-операций,

· компонентов поддержки базы данных и, наконец,

· последующей интеграции в полностью функциональную систему обработки информации.

еще рефераты
Еще работы по информатике