Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
бд 18-21 (или 17-20).doc
Скачиваний:
6
Добавлен:
26.04.2019
Размер:
233.47 Кб
Скачать

Вопрос 18

Обработка данных в модели "клиент-сервер". Уровни функций (презентационная логика, бизнес-правила, обработка данных, вспомогательные функции). Модели с "толстым", "тонким" клиентом, модель сервера приложений.

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

клиентом и сервером являются два процесса UNIX, связанные между собой через механизм IPC (Interprocess Communication), локальный или сетевой (рис.1.4.).

Рис 1.4. Модель клиент-сервер

Клиент и сервер не играют в данном случае симметричную роль.

Процесс-сервер инициализируется и, затем, переходит в состояние ожидания

запросов от возможных клиентов. Как правило, процесс-клиент запускается в

интерактивном режиме и посылает запросы серверу. Сервер исполняет

полученный запрос, причем это может подразумевать диалог с клиентом, а

может, и нет. Затем сервер вновь переходит в состояние ожидания других

клиентов.

Различают два типа процессов-серверов:

- итеративные серверы: процесс-сервер сам обрабатывает ответ. Этот тип

сервера используется в случае, если время обработки весьма

непродолжительно или если сервер используется единственным клиентом;

- параллельные серверы: процесс-сервер вызывает для обработки вызова

клиента другой процесс. Этот процесс создается системным вызовом fork ().

Порождающий процесс не блокируется по окончании выполнения

порожденного процесса и может, таким образом, ждать другие запросы.

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

посылает запросы по этому адресу. В зависимости от вида осуществляемой

обработки данных, различают серверы без состояния (stateless) и серверы с

состоянием (statefull). Сервер без состояния не сохраняет о своих клиентах

никакой информации. Сервер с состоянием сохраняет информацию о

состоянии своих клиентов после каждого запроса. В случае разрыва связи,

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

привести к случайным срабатываниям.

Основной принцип технологии «клиент-сервер» применительно к технологии баз данных заключается в разделении функций стандартного интерактивного приложения на 5 групп:

1. Функции ввода и отображения данных (Presentation Logic);

2. Функции решения задач приложения (Business Logic);

3. Функции обработки данных внутри приложения (Database Logic);

4. Функции управления информационными ресурсами (Database Manager System); (СУБД) (DBMS)

5. Служебные функции (для связывания первых 4-х групп).

Структура типового приложения, работающего с БД представлена на Рис

Существуют 2 способа:

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

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

Модель «клиент-сервер» с бизнес-логикой на клиенте (толстый клиент)

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

Преимущества:

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

Недостатки:

• SQL – запросы при интенсивной работе клиентских приложений могут существенно загрузить сеть;

* Дублирование кода приложения при одинаковых запросах для каждого клиентского приложения;

• Сервер в этой модели играет пассивную роль.

Данная модель и предыдущие модели называются моделями с

«толстым клиентом».

модель «клиент-сервера» с бизнес-логикой на сервере

Данную модель поддерживает большинство современных СУБД: Informix, Ingres, SyBase, Oracle, MS SQL Server. Основу данной модели составляет механизм хранимых процедур (ХП) как средство программирования SQL-сервера, механизм триггеров как механизм отслеживания текущего состояния информационного хранилища и механизм ограничений на пользовательские типы данных (рис.5).

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

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

Эта модель является расширением двухуровневой модели и в ней вводится дополнительный промежуточный уровень между клиентом и сервером. Этот промежуточный уровень содержит один или несколько серверов приложений

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

Достоинства

•Высокая производительность.

•Возможность создания системы с массовым параллелизмом.

•Повышенная защищенность.

•Легкость развития и модификации.

•Легкость администрирования.