Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ИНФ БЕЗОПАСНОСТЬ новое.doc
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
1 Мб
Скачать
☆

2. Архитектура «клиент-сервер»

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

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

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

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

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

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

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

Различия в реализации технологии клиент-сервер определяются:

— видами ПО, в которые интегрирован каждый из этих компонентов;

— механизмами ПО, используемыми для реализации функций всех трех групп;

— способом распределения логических компонентов между компьютерами в сети;

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

Выделяются четыре основных подхода, реализованные в следующих моделях:

1. Модель файлового сервера. (FS)

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

Р ис. 4.3. Модель файлового сервера

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

2. Модель доступа к удаленным данным (RDA)

В RDA-модели сервер и клиент имеют структуру, аналогичную модели файлового сервера: компонент представления и прикладной компонент выполняются на клиенте, а сервер содержит компонент доступа к данным. Однако данные хранятся на сервере в базе данных (а не в виде файлов), а доступ к ним обеспечивается посредством стандартного языка запросов SQL. Т.е. клиент (прикладной компонент) отправляет серверу SQL-запросы и получает в ответ совокупность данных, представленных в виде таблицы (которые потом обрабатываются на клиенте). Часто, говоря о модели «клиент-сервер», подразумевают именно эту разновидность (рис. 4.4).

Р ис. 4.4. Модель доступа к удаленным данным

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

3. Модель сервера баз данных (DBS)

В основе модели лежит механизм хранимых процедур. Хранимая процедура оперирует данными, содержащимися в БД, и возвращает результат их обработки. В модели DBS прикладной компонент представляет собой набор хранимых процедур, которые хранятся и выполняются непосредственно на сервере, а клиентское приложение (по сути содержащее лишь компонент представления) вызывает эти процедуры, передавая по сети их идентификаторы и параметры (рис. 4.5).

Р ис. 4.5. Модель сервера баз данных

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

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

4. Модель сервера приложений (AS)

В модели сервера приложений (рис. 4.6) компоненты приложения разнесены на три части. Клиентская часть содержит компонент представления. Серверная часть выполнена аналогично модели доступа к удаленным данным RDA (выполняет SQL-запросы к БД, расположенной на сервере). Третья часть — промежуточная — выступает в роли клиента и сервера одновременно, содержит прикладной компонент и называется сервером приложений. Сервер приложений организован как группа процедур (процессов), выполняющих определенные прикладные функции. Клиент обращается к серверу приложений через API (то есть, посылает идентификатор интересующей его процедуры и набор параметров и ждет получения результата). Функционирующие на сервере приложений процедуры, в свою очередь, обращаются к серверу баз данных (причем, могут использоваться разные сервера). Трехзвенная архитектура позволяет добиться максимальной гибкости при проектировании приложений клиент-сервер.

Р ис. 4.6. Модель сервера приложений