Архитектура разделяемого сервера на примере Oracle




Лекция «Особенности систем типа «клиент-сервер»

 

 

Архитектура «клиент-сервер» – программная архитектура, в которой набор одних программных компонентов (клиентов) взаимодействует с набором других программных компонентов (серверов) с помощью сообщений.

 

Клиенты и серверы посылают свои сообщения не по адресам, а по именам. Например, клиенты посылают свои запросы именованным сервисам, а не конкретным машинам, но в результате разрешения имён (DNS – Domain Name Service) будет определён необходимый физический сервер.

 

Основные преимущества систем «клиент-сервер»:

- клиентский и серверный процессы могут находиться как на одной, так и на разных машинах;

- клиентский и серверный процессы могут работать на разных аппаратных платформах и под управлением разных операционных систем;

- можно строить вложенную архитектуру «клиент-сервер» (например, Web-браузер – приложение «клиент-сервер», применяющее протокол HTTP).

 

 

 

Основные недостатки:

- «привязка» к аппаратным и программным средам – основной источник проблем приложений «клиент-сервер» (изменения на клиенте или сервере могут сделать неработоспособной всю систему);

- классические (двухзвенные) системы «клиент-сервер» сложны в администрировании.

 

- Основные задачи при проектировании баз данных для приложений «клиент-сервер»:

- минимизировать число операций обмена между клиентом и сервером;

- тщательный выбор места обработки данных.

Т.о., все операции, в которых участвуют аппаратные устройства (диск, дисплей, клавиатура) должны обслуживать системой, к которой это устройство подключено.

 

«Клиент-серверные» архитектуры по способам взаимодействия клиентской и серверной частей можно разделить на:

- однозвенную (процессы клиента и сервера находятся на одной машине);

- двухзвенные (процессы клиента и сервера находятся на разных машинах);

- многозвенная (с использованием серверов промежуточного уровня).

 

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

 

Устранение дефицита центрального процессора изменением архитектуры системы

 

Считается, что если достигнут предел мощности центрального процессора и исчерпаны все средства его настроек, устанить дефицит центрального процессора можно изменением архитектуры системы.

а) переход от однозвенной к двухзвенной «клиент-серверной» архитектуре

 

 

б) использование большего числа небольших клиентских машин вместо нескольких клиентов на более мощных машинах

 

 

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

 

в) переход от двухзвенной к многозвенной (использование сервера приложений, монитора транзакций и т.д.)

 

 

г) использование нескольких серверов промежуточного уровня

 

д) использовать параллельную обработку (сервер разделяемый или выделенный параллельный)

 

 

Архитектура разделяемого сервера на примере Oracle

 

Работу разделяемого сервера на примере СУБД Oracle иллюстрирует следующий рисунок.

 

 

Диспетчер направляет несколько входящих запросов на сетевой сеанс пулу процессов разделяемого сервера. Бездействующий процесс разделяемого сервера из разеляемого пула серверного процесса принимает запрос из общей очереди. Небольшое количество разделяемых серверов может выполнить тот же объём работы, что и множество выделенных серверов. Т.к. объём памяти для каждого пользователя относительно мал, требуется меньше затрат на управление памятью и ресурсами, следовательно, поддерживается больше пользователей. Кроме того, увеличивается масштабируемость приложений без внесения изменений в них.

 

Работа разделяемого сервера в Oracle построена следующим образом:

 

1. Устанавливается коммуникационная магистраль.

2. Возвращается адрес наименее загруженного процесса диспетчера (диспетчерский процесс поддерживает конфигурацию разделяемого сервера так, что пользовательский процесс может совместно использовать ограниченное число серверных процессов).

3. Диспетчер помещает запрос в очередь запросов (очередь запросов располагается в SGA и является общей для всех диспетчерских процессов экземпляра).

4. Процессы разделяемого сервера проверяют наличие в очереди новых запросов, обрабатывая их по правилу FIFO («первый пришёл, первый ушёл). При этом предполагается, что процессы разделяемого сервера могут обслуживать несколько

5. По завершении запроса сервер размещает ответ в очереди ответов диспетчера (у каждого диспетчера своя очередь ответов в SGA).

6. Диспетчер возвращает завершённый запрос соответствующему пользовательскому процессу.

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-03-31 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: