- •Распределенные базы данных (рбд)
- •Рбд должна обладать (требования):
- •Распределенные архитектуры бд принято подразделять по типам на
- •Типы распределенных баз данных.
- •Стратегии хранения данных в рбд
- •Локализация данных
- •Принципы построения рбд.
- •Критерии построения рбд.
- •Одной из самых распространенных на сегодня архитектур построения корпоративных информационных систем является архитектура клиент-сервер.
- •1. Введение в технологию клиент-сервер Логическая модель рбд
- •4. Удаленное представление сервера бд ( Data Base Server- dbs) --
- •Серверы баз данных как базовая системная поддержка информационной системы в архитектуре "клиент-сервер"
- •Понятие сервера баз данных
- •Архитектура с несколькими процессами
- •Многопоточная архитектура
- •Механизмы доступа к базе данных
1. Введение в технологию клиент-сервер Логическая модель рбд
Логическая модель РБД строится на 3-х уровнях (слоях) абстракции данных: представления информации, обработки (бизнес-логики) и хранения. Слои образуют строгую иерархию: слой бизнес -- логики взаимодействует со слоями хранения и представления. Физически, слои могут входить в состав одного программного модуля, или же распределяться на нескольких параллельных процессах в одном или нескольких узлах сети. Каждый слой обрабатывается соответственно функциями стандартного интерактивного приложения. На верхнем уровне абстрагирования взаимодействия клиента и сервера достаточно четко можно выделить следующие компоненты:
слой представления информации; функции ввода и отображения данных или презентационная логика (Presentation Layer- PL); -- Обеспечивает интерфейс с пользователем. Как правило, получение информации от пользователя происходит посредством различных форм. А выдача результатов запросов - посредством отчетов.
слой бизнес-логики; прикладные функции, характерные для данной предметной области или бизнес-логика (Business Layer- BL); -- Связующий, именно он определяет функциональность и работоспособность системы в целом. Блоки программного кода распределены по сети и могут использоваться многократно (CORBA, DCOM) для создания сложных распределенных приложений.
слой хранения данных; фундаментальные функции хранения и управления информационными ресурсами (базами данных, файловыми системами и т.д.) или логика доступа к ресурсам (Accesss Layer – AL) -- Обеспечивает физическое хранение, добавление, модификацию и выборку данных. На данный слой также возлагается проверка целостности и непротиворечивости данных, а также реализацию разделенных транзакций.
служебные функции, играющие роль связок между функциями первых трех групп.
В соответствии с этим в любом приложении выделяются следующие логические компоненты:
компонент представления, реализующий функции первой группы;
прикладной компонент, поддерживающий функции второй группы;
компонент доступа к информационным ресурсам, поддерживающий функции третьей группы;
протокол взаимодействия.
Различия в реализациях технологии определяются четырьмя факторами.
в какие виды программного обеспечения интегрирован каждый из этих компонентов.
тем, какие механизмы программного обеспечения используются для реализации функций всех четырех групп.
как логические компоненты распределяются между компьютерами в сети.
какие механизмы используются для связи компонентов между собой.
Слои распределенной системы могут быть по-разному реализованы и исполняться в разных узлах сети. Обычно рассматриваются следующие архитектуры
Слой \ Тип архитектуры |
Файл-сервер |
Клиент-сервер (Бизнес-логика на клиенте) |
Клиент-сервер (бизнес-логика на сервере) |
N-уровневая архитектура |
Представления |
Клиент |
Клиент |
Клиент |
Клиент |
Бизнес- логики |
Клиент |
Клиент |
Сервер БД |
Сервер приложений (комп. кластер) |
Хранения |
Файл-сервер (или клиент) Все три слоя образуют единый программный модуль |
Сервер БД Пользоват. Интерфейс и бизнес-логика образуют единый модуль. Данные хранятся на сервере БД |
Сервер БД Вся бизнес логика реализована в виде хранимых процедур, исполняемых на сервере БД |
Сервер БД Все слои исполняются на разных машинах. |
Таким образом, можно придти к нескольким моделям клиент-серверного взаимодействия:
Классификация архитектур информационных систем не является абсолютно жесткой, наиболее типичная классификация:
1. Система совместного использования файлов – FS-модель Архитектура системы БД с сетевым доступом предполагает выделение одной из машин сети в качестве центральной (сервер файлов). На такой машине хранится совместно используемая централизованная БД. Все другие машины сети выполняют функции рабочих станций, с помощью которых поддерживается доступ пользовательской системы к централизованной базе данных. Файлы базы данных в соответствии с пользовательскими запросами передаются на рабочие станции, где в основном и производится обработка. При большой интенсивности доступа к одним и тем же данным производительность информационной системы падает. Пользователи могут также создавать на рабочих станциях локальные БД, которые используются ими монопольно.
В соответствии с этой моделью один из компьютеров в сети считается файловым сервером и предоставляет услуги по обработке файлов другим компьютерам и играет роль компонента доступа к информационным ресурсам (то есть к файлам). Файл-сервер представляет собой разделяемое всеми PC комплекса расширение дисковой памяти. На других компьютерах в сети функционирует приложение, в кодах которого совмещены компонент представления и прикладной компонент. Протокол обмена представляет собой набор низкоуровневых вызовов, обеспечивающих приложению доступ к файловой системе на файл-сервере. В системах, построенных по архитектуре файл-сервера все слои системы представляют единое и неделимое целое. БД хранится в виде файла или набора файлов на файл-сервере. Вся логика выборки, хранения и обеспечения непротиворечивости данных возлагается на клиентскую часть. Файл-серверные системы ориентированы на работу с отдельными записями в таблице.
Достоинства
Простота логики.
Низкие требования к аппаратному обеспечению и малый объем требуемой памяти.
Не требуют надежных многозадачных и многопользовательских ОС.
Невысокая цена СУБД.
Недостатки
Ограниченность языка и негибкость среды разработки приложений
Слабая масштабируемость
Не обеспечивают многопользовательский режим работы
Трудно поддерживать целостность и непротиворечивость данных
Необходимость ручной блокировки записей или таблиц целиком.
Низкий уровень защищенности как внешней (от взлома), так и внутренней (от ошибок приложений) Например индексы отдельно от таблиц.
Не имеют средств шифрации сетевого трафика
Создают высокую нагрузку на сеть
Выводы
Файл-серверная архитектура является достаточно привлекательной альтернативой для создания однопользовательских ИС со слабыми требованиями к защите данных. В целом, в файл-серверной архитектуре имеем "толстого" клиента и очень "тонкий" сервер в том смысле, что почти вся работа выполняется на стороне клиента, а от сервера требуется только достаточная емкость дисковой памяти.
Рис.1.3. Модель файлового сервера.
Клиент-сервер. В этой концепции подразумевается, что помимо хранения централизованной базы данных центральная машина (сервер базы данных) должна обеспечивать выполнение основного объема обработки данных. Запрос на данные, выдаваемый клиентом (рабочей станцией), порождает поиск и извлечение данных на сервере. Извлеченные данные (но не файлы) транспортируются по сети от сервера к клиенту. Спецификой архитектуры клиент-сервер является использование языка запросов SQL (Structured Query Language
2. Система удаленной обработки или распределенное представление – предполагает мощный компьютер-сервер, а клиентская часть практически вырождена. Функцией клиентской части является просто отображение информации на экране. Модель данного типа имели СУБД ранних поколений, которые работали на малых, средних и больших ЭВМ, использовался я один компьютер с одним процессором.
3. Удаленный доступ к данным (Remote Data Access -- RDA) отличается от FS-модели характером компонента доступа к информационным ресурсам. Это, как правило, SQL-сервер.
В RDA-модели программы реализующие функции представления информации (коды компонента представления) и логику прикладной обработки(прикладная компонента), совмещены и выполняются на компьютере-клиенте. Последний поддерживает как функции ввода и отображения данных, так и чисто прикладные функции. Обращение за сервисом управления данными происходит через среду передачи с помощью операторов языка SQL или вызовов функций специальной библиотекой API (Application Programming Interfase- интерфейса прикладного программирования). Наиболее часто встречающийся вариант реализации архитектуры клиент-сервер в уже внедренных и активно используемых системах. Такая модель обеспечивает полную децентрализацию управления бизнес-логикой. Однако в случае необходимости выполнения каких-либо изменений в клиентском приложении придется менять исходный код. Серверная часть, при описанном подходе, представляет собой сервер баз данных, реализующий AL.
В данных системах хранение, выборка и поддержание непротиворечивости данных возлагается на сервер БД, а вся бизнес-логика и логика представления исполняются на клиентских машинах. Так как все операции по манипулированию данными осуществляются только через сервер, производительность и сохранность данных зависит только от сервера БД. Серверы БД изначально рассчитаны на многопользовательский режим работы, имеют эффективные алгоритмы кеширования данных. Современные серверы имеют хорошую масштабируемость.
Клиентская часть обменивается данными с сервером посредством SQL запросов. Обработка информации в клинт-серверных системах ведется на уровне множества кортежей.
Процесс разработки разделяется на создание БД и написание клиентской части с бизнес-логикой.
Рис 1.4. Модель доступа к удаленным данным.
Достоинства:
большое обилие готовых СУБД, имеющих SQL-интерфейсы;
унификация интерфейса "клиент-сервер" в виде языка SQL
Высокая производительность, стабильность и надежность при многопользовательской работе.
Легко организуется защита данных (шифрование сетевого трафика SSH, SSL)
Универсальность языка определения и манипулирования данными
Недостатки
Более высокая цена СУБД. (сервер БД продается отдельно).
Достаточно высокие требования к квалификации разработчиков
Навыки администрирования сервера БД
Повышенные требования к пропускной способности сети
Повышенные требования к клиентским местам (на них выполняется высокая загрузка систем передачи данных;
Неудобны с точки зрения разработки, модификации и сопровождения.
Выводы
При количестве пользователей от 2 до ~50 она является хорошим вариантом. С ростом числа пользователей начинает сказываться недостаточная пропускная способность сети.