Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Разработка и стандартизация ПС и ИТ.doc
Скачиваний:
329
Добавлен:
10.05.2014
Размер:
3.62 Mб
Скачать

Архитектура сервера баз данных

Повышение эффективности и оперативности обслуживания большого числа клиентских запросов, помимо простого увеличения ресурсов и вычислительной мощности серверной машины, может быть достигнуто двумя путями:

  • снижением суммарного расхода памяти и вычислительных ресурсов за счет буферизации (кэширования) и совместного использования (разделяемые ресурсы) наиболее часто запрашиваемых данных и процедур;

  • распараллеливанием процесса обработки запроса – использованием разных процессоров для параллельной обработки изолированных подзапросов и/или для одновременного обращения к частям базы данных, размещенным на отдельных физических носителях.

Рассмотрим архитектуры, реализующие следующие модели совместной обработки клиентских запросов.

Архитектура «один к одному»

В этом случае (рис. 7.4) для обслуживания каждого запроса запускается отдельный серверный процесс.

Рис. 7.5. Архитектура сервера «один к одному»

Таким образом, даже если от клиентов поступят совершенно одинаковые запросы, для обработки каждого из них будет запущен отдельный процесс, каждый из которых будет выполнять одинаковые действия и использовать одни и те же ресурсы.

Многопотоковая односерверная архитектура

Обработку всех клиентских запросов выполняет один серверный процесс (использующий один процессор), взаимодействующий со всеми клиентами и монопольно управляющий ресурсами (рис. 7.6). При этом для отдельного клиентского процесса создается поток, (thread) в рамках которого локализуется обработка запроса.

Процессор

Поток 1

Поток N

Рис. 7.6. Многопотоковая односерверная архитектура

Мультисерверная архитектура

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

Д

И

С

П

Е

Т

Ч

Е

Р

Процессор

Рис. 7.7. Многопотоковая односерверная архитектура

В том случае, когда серверный процесс реализуется как многопоточное приложение, говорят, что СУБД имеет мультисерверную многопотоковую архитектуру.

38. Источник данных. Архитектура приложения, работающего с внешними источниками данных.

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

Несмотря на разнообразие программного обеспечения ведения источников данных, общая архитектура приложения, работающего с источниками данных, остается неизменной и включает следующие механизмы (рис. 10.1):

• механизм соединения с источником данных, обеспечивающий двунаправленный поток данных от программных средств ведения источника данных до приложения и обратно;

• механизм внутреннего представления данных, обеспечивающий хранение данных и реализацию запросов на их предоставление разным частям приложения;

• механизм связи внутреннего представления с элементами пользовательского интерфейса;

• пользовательский интерфейс, реализующий предоставление данных пользователю на обработку;

• алгоритмы обработки данных (бизнес-логику).

Между приложением и собственно источником данных работает специальное программное обеспечение (так называемое промежуточное ПО), управляющее процессом обмена данными. Промежуточное ПО может быть реализовано разными способами, например:

• как программное окружение приложения, без которого приложение не сможет работать;

• как набор драйверов и динамических библиотек;

• как подпрограммы, интегрированные в само приложение;

• как отдельный сервер, обслуживающий множество приложений.