Модели «клиент—сервер» в технологии баз данных
Вычислительная модель «клиент—сервер» исходно связана с парадигмой открытых систем, которая появилась в 90-х годах и быстро эволюционировала. Сам термин «клиент-сервер» исходно применялся к архитектуре программного обеспечения, которое описывало распределение процесса выполнения по принципу взаимодействия двух программных процессов, один из которых в этой модели назывался «клиентом», а другой — «сервером». Клиентский процесс запрашивал некоторые услуги, а серверный процесс обеспечивал их выполнение. При этом предполагалось, что один серверный процесс может обслужить множество клиентских процессов.
Ранее приложение (пользовательская программа) не разделялось на части, оно выполнялось некоторым монолитным блоком. Но возникла идея более рационального использования ресурсов сети. Действительно, при монолитном исполнении используются ресурсы только одного компьютера, а остальные компьютеры в сети рассматриваются как терминалы. Но теперь, в отличие от эпохи main-фреймов, все компьютеры в сети обладают собственными ресурсами, и разумно так распределить нагрузку на них, чтобы максимальным образом использовать их ресурсы.
Основной принцип технологии «клиент—сервер» применительно к технологии баз данных заключается в разделении функций стандартного интерактивного приложения на 5 групп, имеющих различную природу: функции ввода и отображения данных (Presentation Logic); прикладные функции, определяющие основные алгоритмы решения задач приложения (Business Logic); функции обработки данных внутри приложения (Database Logic); функции управления информационными ресурсами (Database Manager System); служебные функции, играющие роль связок между функциями первых четырех групп.
Структура типового приложения, работающего с базой данных приведена на рисунке 15.1.
Рисунок 15.1 - Структура типового интерактивного приложения, работающего с базой данных
Презентационная логика (Presentation Logic) как часть приложения определяется тем, что пользователь видит на своем экране, когда работает приложение. Сюда относятся все интерфейсные экранные формы, которые пользователь видит или заполняет в ходе работы приложения, к этой же части относится все то, что выводится пользователю на экран как результаты решения некоторых промежуточных задач либо как справочная информация. Поэтому основными задачами презентационной логики являются: формирование экранных изображений; чтение и запись в экранные формы информации; управление экраном; обработка движений мыши и нажатие клавиш клавиатуры.
Бизнес-логика, или логика собственно приложений (Business processing Logic), — это часть кода приложения, которая определяет собственно алгоритмы решения конкретных задач приложения. Обычно этот код пишется с использованием различных языков программирования, таких как С, C++, Cobol, SmallTalk, Visual-Basic.
Логика обработки данных (Data manipulation Logic) — это часть кода приложения, которая связана с обработкой данных внутри приложения. Данными управляет собственно СУБД (DBMS). Для обеспечения доступа к данным используются язык запросов и средства манипулирования данными стандартного языка SQL
Обычно операторы языка SQL встраиваются в языки 3-го или 4-го поколения (3GL, 4GL), которые используются для написания кода приложения.
Процессор управления данными (Database Manager System Processing) — это собственно СУБД, которая обеспечивает хранение и управление базами данных. В идеале функции СУБД должны быть скрыты от бизнес-логики приложения, однако для рассмотрения архитектуры приложения нам надо их выделить в отдельную часть приложения.
Двухуровневые модели
Двухуровневая модель фактически является результатом распределения пяти указанных функций между двумя процессами, которые выполняются на двух платформах: на клиенте и на сервере. В чистом виде почти никакая модель не существует, приведем наиболее характерные особенности каждой двухуровневой модели:
1) Модель удаленного управления данными или модель файлового сервера (File Server, FS). В этой модели СУБД, а также функции управления всеми информационными ресурсами находится на клиенте. На сервере располагаются файлы с данными, и поддерживается доступ к файлам. Запрос клиента формулируется в командах DML. СУБД переводит этот запрос в последовательность файловых команд. Каждая файловая команда вызывает перекачку блока информации на клиента.
2) В модели удаленного доступа к данным (Remote Data Access, RDA) база данных хранится на сервере. На сервере же находится ядро СУБД. На клиенте располагается презентационная логика и бизнес-логика приложения. Клиент обращается к серверу с запросами на языке SQL.
3) Модель сервера баз данных. Данную модель поддерживают большинство современных СУБД.. Основу данной модели составляет механизм хранимых процедур как средство программирования SQL-сервера, механизм триггеров как механизм отслеживания текущего состояния информационного хранилища и механизм ограничений на пользовательские типы данных, который иногда называется механизмом поддержки доменной структуры.
В этой модели бизнес-логика разделена между клиентом и сервером. На сервере бизнес-логика реализована в виде хранимых процедур — специальных программных модулей, которые хранятся в БД и управляются непосредственно СУБД. Клиентское приложение обращается к серверу с командой запуска хранимой процедуры, а сервер выполняет эту процедуру и регистрирует все изменения в БД, которые в ней предусмотрены. Сервер возвращает клиенту данные, релевантные его запросу, которые требуются клиенту либо для вывода на экран, либо для выполнения части бизнес-логики, которая расположена на клиенте. Трафик обмена информацией между клиентом и сервером резко уменьшается.
Централизованный контроль в модели сервера баз данных выполняется с использованием механизма триггеров. Механизм использования триггеров предполагает, что при срабатывании одного триггера могут возникнуть события, которые вызовут срабатывание других триггеров. Этот мощный инструмент требует тонкого и согласованного применения, чтобы не получился бесконечный цикл срабатывания триггеров.
В данной модели сервер является активным, потому что не только клиент, но и сам сервер, используя механизм триггеров, может быть инициатором обработки данных в БД. И хранимые процедуры, и триггеры хранятся в словаре БД, они могут быть использованы несколькими клиентами, что. существенно уменьшает дублирование алгоритмов обработки данных в разных клиентских приложениях. Для написания хранимых процедур и триггеров используется расширение стандартного языка SQL, так называемый встроенный SQL.
Недостатком данной модели является очень большая загрузка сервера. Действительно, сервер обслуживает множество клиентов и выполняет следующие функции: осуществляет мониторинг событий, связанных с описанными триггерами; обеспечивает автоматическое срабатывание триггеров при возникновении связанных с ними событий; обеспечивает исполнение внутренней программы каждого триггера; запускает хранимые процедуры по запросам пользователей; запускает хранимые процедуры из триггеров; возвращает требуемые данные клиенту; обеспечивает все функции СУБД: доступ к данным, контроль и поддержку целостности данных в БД, контроль доступа, обеспечение корректной параллельной работы всех пользователей с единой БД.
Если мы переложили на сервер большую часть бизнес-логики приложений, то требования к клиентам в этой модели резко уменьшаются. Иногда такую модель называют моделью с «тонким клиентом», в отличие от предыдущих моделей, где на клиента возлагались гораздо более серьезные задачи. Эти модели называются моделями с «толстым клиентом».
Для разгрузки сервера используется трехуровневая модель.
Список литературы
1. Хансен Г., Хансен Д. Базы данных: разработка и управление. – М.: ЗАО «Издательство БИНОМ», 1999 г.
2. Тихомиров Ю. Microsoft SQL Server 7.0 – СПб. Издательство «Питер», 1999 г.
3. Плю Р., Стефенс Р., Райан К. Освой самостоятельно SQL за 24 часа. – М.: Издательский дом «Вильямс», 2000 г.
4. Кандзюба С.П., Громов В.Н. Delphi 6/7. Базы данных и приложения. – СПб: ООО «ДиаСофтЮП», 2002 г.
5. Бобровский С. Delphi 5: учебный курс. – СПб: Издательство «Питер», 2000 г.
6 Базы данных, учебник для высших учебных заведений под редакцией Хомоненко А. СПб.: Издательство «Корона», 2000 г.
7 Карнова Т.Базы данных. - СПб.: Издательство «Питер», 2000 г.
8 Ю. А. Григорьев, Г. И. Ревунrов. Банки данных. - Изд. МГТУ им. Н. Э. Баумана, 2002 г.
9 С.В. Глушаков, Д. В. Ломотько. Базы данных. Учебный курс. М.: Издательский дом «Вильямс», 2000 г.
10 Джек Л. Харрингтон Проектирование реляционных баз данных просто и доступно. – М.:Издательство «Лори», 2000 г.
11 Т.А. Гаврилова, В. Ф. Хорошевский Базы знаний интеллектуальных систем - СПб,: Излательство «Питер», 2000 г.
12 В. В. Корнеев, А. Ф. Гареев и др. Базы данных интеллектуальная обработка информации - М: «Нолидж», 2000 г.
Содержание | с |
1 Лекция. Развитие технологии баз данных 1.1 Информационные системы 1.2 Файлы и файловые системы | |
2 Лекция. Информационные системы, использующие базы данных 2 .1 Недостатки файловых систем 2.2 Информационные системы, использующие базы данных | |
3 Лекция. История развития систем управления базами данных 3.1 Базы данных на больших ЭВМ 3.2 Эпоха персональных компьютеров 3.3 Распределенные базы данных 3.4 Перспективы развития систем управления базами данных | |
4 Лекция. Системный анализ предметной области 4.1 Предметная область информационной системы 4.2 Примеры описания предметной области | |
5 Лекция. Принципы проектирования баз данных 5.1 Архитектура базы данных 5.2 Концептуальные модели данных | |
6 Лекция. Концептуальное моделирование данных 6.1 Основные определения концептуальных моделей данных 6.2 Графическое представление концептуальной модели | |
7 Лекция. Разработка ER-диаграммы для предметной области | |
8 Лекция. Примеры концептуального моделирования | |
9 Лекция. Методы моделирования данных | |
10 Лекция. Реляционная модель данных 10.1 Реляционные таблицы и ключи 10.2 Ограничительные условия, поддерживающие целостность данных | |
11 Лекция. Преобразование концептуальной модели в реляционную 11.1 Преобразование объектных множеств и атрибутов 11.2 Преобразование отношений | |
12 Лекция. Нормализация базы данных | |
13 Лекция. Функциональные зависимости и связанные с ними нормальные формы 13.1 Функциональные зависимости и нормальные формы 13.2 Сравнение концептуального и реляционного моделирования | |
14 Лекция. Реализация разработанной реляционной схемы 14.1 Структурированный язык запросов SQL 14.2 Объекты базы данных | |
15 Лекция. Распределенная обработка данных 15.1 Общие сведения 15.2 Модели «клиент—сервер» в технологии баз данных 15.3 Двухуровневые модели Список литературы |