Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Раздел-2(СУБД).doc
Скачиваний:
18
Добавлен:
01.09.2019
Размер:
981.5 Кб
Скачать

2.5.2. Разделение клиента и сервера

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

Выполнение основной работы на сервере

Один из простых способов разделения функций клиента и сервера – поручить клиенту только интерфейс пользователя, а остальное предоставить серверу (рис. 2.8).

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

Иногда компьютер клиента представляет собой не более чем "интеллектуальный" терминал данных. В клиентской части приложения выполняется, как максимум, проверка правильности ввода простых данных.

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

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

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

Выполнение основного объема работы у клиента

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

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

Достижение баланса

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

Сервер базы данных может также централизованно реализовывать все правила целостности и защиты данных. При этом целостность данных обеспечивается независимо от целостности данных клиентов.

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