Логическая модель РБД. Бизнес-логика файл-серверной, клиент-серверной и N-уровневой архитектуры.
Логическая модель РБД
Логическая модель РБД строится на 3-х уровнях (слоях) абстракции данных: представления информации, обработки(бизнес- логики) и хранения. Слои образуют строгую иерархию: слой бизнес -логики взаимодействует со слоями хранения и представления. Физически, слои могут входить в состав одного программного модуля, или же распределяться на нескольких параллельных процессах в одном или нескольких узлах сети.
- Слой представления информации
Обеспечивает интерфейс с пользователем. Как правило, получение информации от пользователя происходит посредством различных форм. А выдача результатов запросов - посредством отчетов. - Слой бизнес-логики
Связующий, именно он определяет функциональность и работоспособность системы в целом. Блоки программного кода распределены по сети и могут использоваться многократно (CORBA, DCOM) для создания сложных распределенных приложений. - Слой хранения данных
Обеспечивает физическое хранение, добавление, модификацию и выборку данных. На данный слой также возлагается проверка целостности и непротиворечивости данных, а также реализацию разделенных транзакций.
Слои распределенной системы могут быть по разному реализованы и исполняться в разных узлах сети. Обычно рассматриваются следующие архитектуры
Слой \ Тип архитектуры | Файл-сервер | Клиент-сервер | Клиент-сервер | N-уровневая архитектура | |
---|---|---|---|---|---|
Представления | Клиент | Клиент | Клиент | Клиент | |
Бизнес- логики | Клиент | Клиент | Сервер БД | Сервер приложений | |
Хранения | Файл- сервер (или клиент) | Сервер БД | Сервер БД | Сервер БД | |
Все три слоя образуют единый программный модуль | Пользоват. Интерфейс и бизнес-логика образуют единый модуль. Данные хранятся на сервере БД | Вся бизнес логика реализована в виде хранимых процедур, исполняемых на сервере БД | Все слои исполняются на разных машинах. |
Файл-сервер
В системах, построенных по архитектуре файл-сервера все слои системы представляют единое и неделимое целое. БД хранится в виде файла или набора файлов на файл-сервере. Вся логика выборки, хранения и обеспечения непротиворечивости данных возлагается на клиентскую часть. Файл- серверные системы ориентированы на работу с отдельными записями в таблице.
Достоинства
- Простота логики.
- Низкие требования к аппаратному обеспечению и малый объем требуемой памяти.
- Не требуют надежных многозадачных и многопользовательских ОС.
- Невысокая цена СУБД.
Недостатки
- Ограниченность языка и негибкость среды разработки приложений
- Слабая масштабируемость
- Не обеспечивают многопользовательский режим работы
- Трудно поддерживать целостность и непротиворечивость данных
- Необходимость ручной блокировки записей или таблиц целиком.
- Низкий уровень защищенности как внешней (от взлома), так и внутренней (от ошибок приложений) Например индексы отдельно от таблиц.
- Не имеют средств шифрации сетевого трафика
- Создают высокую нагрузку на сеть
Выводы
Файл-серверная архитектура является достаточно привлекательной альтернативой для создания однопользовательских ИС со слабыми требованиями к защите данных.
Клиент-сервер с бизнес-логикой на клиенте
В данных системах хранение, выборка и поддержание непротиворечивости данных возлагается на сервер БД, а вся бизнес-логика и логика представления исполняются на клиентских машинах. Так как все операции по манипулированию данными осуществляются только через сервер, производительность и сохранность данных зависит только от сервера БД. Серверы БД изначально рассчитаны на многопользовательский режим работы, имеют эффективные алгоритмы кеширования данных. Современные серверы имеют хорошую масштабируемость.
Клиентская часть обменивается данными с сервером посредством SQL запросов. Обработка информации в клинт-серверных системах ведется на уровне множества кортежей.
Процесс разработки разделяется на создание БД и написание клиентской части с бизнес-логикой.
Достоинства
- Высокая производительность, стабильность и надежность при многопользовательской работе.
- Легко организуется защита данных (шифрование сетевого трафика SSH, SSL )
- Универсальность языка определения и манипулирования данными
Недостатки
- Более высокая цена СУБД. (сервер БД продается отдельно).
- Достаточно высокие требования к квалификации разработчиков
- Навыки администрирования сервера БД
- Повышенные требования к пропускной способности сети
- Повышенные требования к клиентским местам (на них выполняется слой бизнес- логики)
Выводы
При количестве пользователей от 2 до ~50 она является хорошим вариантом. С ростом числа пользователей начинает сказываться недостаточная пропускная способность сети.
Клиент-сервер с бизнес-логикой на сервере.
Используется возможность современных серверов БД исполнять хранимые SQL процедуры на сервере, куда и переносится максимально возможная часть бизнес-логики. Требования к серверу БД возрастают, однако резко понижаются требования к клиентским машинам (за счет выноса с них бизнес-логики) и к пропускной способности сети (клиенту передаются только данные, необходимые пользователю).
Достоинства
- Пониженные, по сравнению с предыдущим классом систем, требования к пропускной способности сети и клиентским местам.
- Более простой процесс создания бизнес-логики.
Недостатки
- Повышенные требования к серверу БД.(каждый сеанс «съедает» память из расчета предельной загрузки)
- Невысокая переносимость ( мобильность) системы на другие серверы БД.
Выводы
По сравнению с предыдущими классами, позволяет держать большую нагрузку.
N-уровневая архитектура
Основными элементами являются сервера БД, сервер(кластер) приложений и клиентская часть. Главная идея n-уровневой архитектуры заключается в максимальном упрощении клиента (тонкий клиент) , выносе всей бизнес-логики с клиента и сервера БД.
Тонкий клиент представляет собой некоторый терминал типа HTML-browser или эмуляторы X-терминала
Вся бизнес- логика оформляется в виде набора приложений, запускаемых на сервере приложений под управлением ОС типа UNIX.
Сервера БД занимаются только проблемами хранения, добавления, модификации и поддержания непротиворечивости данных.
Сервер приложений соединен с сервером БД при помощи отдельного высокоскоростного сегмента сети.
Достоинства
- Повышенная защищенность.
- Высокая производительность.
- Легкость развития и модификации.
- Легкость администрирования.
- Возможность создания системы с массовым параллелизмом (серверов БД может быть несколько, а сервером приложений могут служить несколько соединенных в кластер компьютеров).
Недостатки
- Высокая сложность.
- Высокая цена решения.
- В некоторых случаях уступает по производительности клиент-серверным системам с бизнес-логикой на сервере.
Выводы
Единственная альтернатива для создания ИС для очень большого количества пользователей.