 
        
        - •Лекция 23
- •Пути повышения эффективности и оперативности обслуживания большого числа клиентских запросов
- •Архитектура «один к одному»
- •Многопотоковая односерверная архитектура
- •Мультисерверная архитектура
- •Серверные архитектуры с параллельной обработкой запроса
- •Структура компонентов поддержки удаленного доступа
- •Доступ к базам данных в
- •Открытый интерфейс доступа к базам данных
- •Структурная схема доступа к данным с использованием JDBC
- •Пример взаимосвязи механизмов
- •Мониторы обработки транзакций
- •Механизмы DCОМ и CORBA
- •Обобщенная структура сервера приложений
 
Лекция 23
Схемы распределения данных и запросов. Обработка распределенных данных и запросов. Многопотоковые и многосерверные архитектуры. Типы параллелелизма при обработке запросов
 
Пути повышения эффективности и оперативности обслуживания большого числа клиентских запросов
| снижение суммарного | распараллеливание | 
| расхода памяти и | процесса обработки | 
| вычислительных | запроса – использование | 
| ресурсов за счет | разных процессоров для | 
| буферизации | параллельной обработки | 
| (кэширования) и | изолированных | 
| совместного | подзапросов и/или для | 
| использования | одновременного | 
| наиболее часто | обращения к частям базы | 
| запрашиваемых | данных, размещенным на | 
| данных и процедур | отдельных физических | 
| (разделяемые ресурсы) | носителях | 
 
Архитектура «один к одному»
Запрос 1 

 Серверный процесс 1
 Серверный процесс 1
Процессор  БД
 БД
Запрос N 

 Серверный процесс N
 Серверный процесс N
Для обслуживания каждого запроса запускается свой серверный процесс: если от клиентов поступят совершенно одинаковые запросы, для их обработки каждого из них будет запущен отдельный процесс, каждый из которых будет
выполнять одинаковые действия и использовать одни и те же ресурсы
 
Многопотоковая односерверная архитектура
| 
 | Сервер-процесс | ||
| 
 | 
 | 
 | 
 | 
| Запрос 1 | 
 | Поток 1 | 
 | 
| 
 | 
 | 
 | 
 | 
Процессор  БД
 БД
| Запрос N | Поток N | 
Обработку всех клиентских запросов выполняет один серверный процесс, взаимодействующий со всеми клиентами и монопольно управляющий ресурсами. При этом для отдельного клиентского процесса создается поток, в рамках которого локализуется обработка запроса
 
Мультисерверная архитектура
Запрос 1
Запрос 2
Запрос N
Серверный процесс Процессор
Диспетчер
Серверный Процессор процесс
БД
СУБД имеет мультисерверную многопотоковую архитектуру: серверный процесс реализуется как многопоточное приложение.
Характер распределения запросов зависит от того, поддерживает ли операционная система потоковую обработку, а также от возможностей средств управления приоритетами задач
 
Серверные архитектуры с параллельной обработкой запроса
Подзапрос1
Серверны й процесс
Подзапрос 2
Запрос
| Подзапрос N | 
 | 
 | 
 | Серверны | 
| 
 | 
 | 
 | й процесс | |
| 
 | 
 | 
 | 
 | |
| 
 | 
 | 
 | 
 | 
 | 
Процессор 
 Сегмент БД
 Сегмент БД
Процессор 
 Сегмент БД
 Сегмент БД
Сегментирование (размещение хранимых данных на нескольких физических носителях) - модель горизонтального параллелизма.
Разбиение запроса на взаимосвязанные по результатам подзапросы - модель вертикального параллелизма.
 
Структура компонентов поддержки удаленного доступа
 
| Доступ к базам данных в | ||
| двухзвенных моделях клиент- | ||
| Клиент | сервер | Сервер | 
| 
 | ||
| Прикладная | 
 | 
 | 
| программа | 
 | СУБД | 
| Библиотечные | 
 | |
| 
 | 
 | |
| функции | 
 | 
 | 
| Драйвер СУБД | 
 | 
 | 
| Драйвер сети | 
 | Драйвер сети | 
| 
 | 
 | |
| 
 | Сеть | 
 | 
 
| Открытый интерфейс доступа к базам данных | ||||
| (ODBC - Open Database Connectivity) | ||||
| 
 | Прикладная | 
 | 
 | 
 | 
| 
 | программа | 
 | 
 | 
 | 
| 
 | 
 | 
 | СУБД 1 | СУБД 2 | 
| ODBС-driver manager | 
 | 
 | 
 | |
| локальный | ODBС- | ODBС- | 
 | 
 | 
| ODBС- | драйвер | драйвер | 
 | 
 | 
| драйвер | СУБД 2 | СУБД 1 | 
 | 
 | 
| Файловая | 
 | 
 | Драйвер | Драйвер | 
| Драйвер сети | сети | сети | ||
| система | 
 | 
 | 
 | 
 | 
| Локальный | 
 | 
 | Сеть | 
 | 
| 
 | 
 | 
 | 
 | |
| диск | 
 | 
 | 
 | 
 | 
 
