
- •Москва 2004
- •Раздел 1. Информация и информационные технологии
- •Тема 1. Информация и информатизация
- •Тема 2. Информационные системы и технологии
- •Тема 3. Информационные процессы
- •Тема 4. Автоматизация информационных процессов
- •Раздел 2. Техническая база информационных технологий
- •Тема 5. Носители информации
- •Флэш-носители информации
- •Тема 6. Технические средства информатизации
- •Тема 7. Технические средства мультимедиа
- •Раздел 3. Программные средства информационных технологий
- •Тема 8. Программное обеспечение информационных технологий
- •Интерфейсы информационных систем
- •Интерфейсы АИС
- •Тема 9. Текстовый редактор Word
- •Тема 10. Работа с электронными таблицами Excel
- •Тема 11. Программы подготовки презентаций (PowerPoint и др.)
- •Раздел 4. Хранение и хранилища данных
- •Тема 12. Программно-технические средства хранения данных
- •Тема 13. Информационные хранилища данных
- •Состав и структура
- •Раздел 5. Средства телекоммуникаций
- •Тема 14. Технические средства передачи информации. Связь
- •Тема 15. Сетевые информационные технологии
- •Типы и топология сетей
- •Тема 16. Сервисы, услуги и информационные ресурсы Интернета
- •Почтовая программа
- •Как идет письмо
- •Структура электронного письма
- •Тема 17. Проектирование и сопровождение сайтов в Интернете
- •Тема 18. Поиск информации в Интернете
- •Раздел 6. Интегрированные информационные технологии
- •Тема 19. Интеграция информационных ресурсов и систем
- •Архитектура распределенной обработки данных
- •Архитектура сервера баз данных
- •Архитектура «один к одному»
- •Многопотоковая односерверная архитектура
- •Серверные архитектуры с параллельной обработкой запроса
- •Использование библиотек доступа и встраиваемого SQL
- •Программный интерфейс уровня вызовов
- •Открытый интерфейс доступа к базам данных
- •Мобильный интерфейс к базам данных на платформе Java
- •Тема 20. Оргтехника и полиграфическое оборудование
- •Оргтехника
- •Типизация «вирусов»
- •Тема 22. Эргономика
- •Раздел 8. Информационные технологии в образовании
- •Размещаемые в Интернете ЭОР можно разделить на:
- •Информационные ресурсы системы высшего образования РФ
- •Электронная периодика
- •Принятые сокращения
- •Полное название
- •Литература
- •Глоссарий
- •Приложение 1
- •Обзор зарубежных поисковых систем
- •Обзор русскоязычных поисковых систем

Мультисерверная архитектура
Если для работы СУБД используются многопроцессорные платформы, обслуживание запросов может быть физически распределено для параллельной обработки между процессорами. Такое решение (Рис. 19-7) требует введения дополнительного звена, в задачи которого входит диспетчеризация запросов для обеспечения сбалансированной загрузки процессоров.
|
|
|
|
|
|
|
Серверный |
|
|
|
|
Процессор |
|
|
|
|
Запрос 1 |
|
|
Д |
|
|
|
|
|
|
|
||||||
|
|
И |
|
|
|
процесс |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
Запрос 2 |
|
|
С |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
П |
|
|
|
Серверный |
|
|
|
|
Процессор |
|
|
|
БД |
|
|
|
|
Е |
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
процесс |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
Т |
|
|
|
|
|
|
|
|
|
|
|
|
|
Запрос N |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
Ч |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
Е |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Р |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Рис. 19-7. Многопотоковая односерверная архитектура
В случае, когда серверный процесс реализуется как многопоточное приложение, говорят, что СУБД имеет мультисерверную многопотоковую архитектуру.
Следует отметить, что характер распределения запросов в значительной степени зависит от того, поддерживает ли ОС потоковую обработку, а также от возможностей средств управления приоритетами задач.
Серверные архитектуры с параллельной обработкой запроса
Для повышения оперативности за счёт распараллеливания процесса обработки отдельного клиентского запроса в мультисерверной архитектуре можно использовать следующие подходы:
1)Размещение хранимых данных БД на нескольких физических носителях (сегментирование базы). Для обработки запроса в этом случае запускаются несколько серверных процессов (использующих обычно отдельные процессоры), каждый из которых независимо от других выполняет одинаковую последовательность действий, определяемую существом запроса, но с данными, принадлежащими разным сегментам базы. Полученные таким образом результаты объединяются и передаются клиенту. Такой тип распараллеливания называют моделью горизонтального параллелизма.
2)Запрос обрабатывается по конвейерной технологии. Для этого запрос разбивается на взаимосвязанные по результатам подзапросы, каждый из которых может быть обслужен отдельным серверным процессом независимо от обработки других подзапросов. Получаемые результаты объединяются согласно схеме декомпозиции
395

запроса и передаются клиенту. Такой тип распараллеливания называют
моделью вертикального параллелизма.
Примерная схема обработки клиентского запроса, построенная с использование обеих моделей параллелизма (гибридная модель) приведена на Рис. 19-8.
|
Подзапрос 1 |
Серверный |
|
|
|
|
Процессор |
Сегмент |
|
|
|
процесс |
||
Запрос |
Подзапрос 2 |
|
|
БД |
|
|
|
||
|
|
Серверный |
Процессор |
Сегмент |
|
Подзапрос N |
процесс |
||
|
|
|
|
БД |
Рис. 19-8. Архитектура сервера обработки запроса при гибридном параллелизме
Использование моделей параллельной обработки позволяет существенно сократить общее время обслуживания запроса, что особенно важно в случае работы с большими БД и аналитической обработки (OLAP-приложений).
Программное обеспечение распределенных приложений
Распределенные корпоративные приложения всё более усложняются, интегрируя в себя унаследованные приложения, разрабатываемые и вновь приобретаемые готовые программные средства. Кроме того, разные подсистемы решают разные бизнес-задачи, однако одна из главных целей создания корпоративной системы – получить «единый образ» общего состояния системы, что обеспечит пользователям доступ к нужным операциям и ресурсам.
Основа такой инфраструктуры – так называемое промежуточное программное обеспечение, позволяющее, не вникая в тонкости сетевых реализаций, создавать и эксплуатировать взаимодействующие между собой приложения с разными требованиями к межмодульным коммуникациям.
Промежуточное ПО эволюционировало вместе с архитектурой клиент-сервер. Ранние, но достаточно эффективные как с точки зрения разработки, так и эксплуатации, частные решения предназначались для упрощения доступа к БД в двухзвенной модели, где «толстый» клиент реализует всю логику обработки информации, предоставляемой сервером БД. Такие системы вполне удовлетворяли потребностям небольших корпоративных подразделений с ограниченным числом пользователей и невысокой интенсивностью обмена.
Однако, по мере того, как клиент-серверная архитектура стала
396

проникать в сферу высококритичных корпоративных приложений, обслуживающих уже не десятки, а сотни пользователей и работающих со значительными массивами данных, стали очевидны недостатки двухзвенного подхода. Этот способ реализации клиент-серверной схемы доступа ограничивал возможности масштабирования, поскольку увеличение числа обращений к одной БД непомерно увеличивало нагрузку на сервер и делало доступ к данным «узким местом» в общей производительности системы. Кроме того, всякая модификация логики приложения требовала внесения изменений во все экземпляры клиентских приложений.
Чтобы избежать таких проблем, для разработки корпоративных приложений используют трёхзвенную модель, которая переносит логику приложения на отдельный уровень сервера приложений. В результате клиентская часть приложения становится «тоньше» и в основном отвечает за предоставление удобного пользовательского интерфейса. Как правило, сервер баз данных также освобождается от необходимости поддерживать бизнес-логику, которая в двухзвенной модели реализуется с помощью специальных расширений СУБД, например, хранимых процедур. Перенос основных операций приложения на отдельный уровень позволяет с максимальной эффективностью распределить нагрузку на аппаратные средства (трёхзвенная модель на самом деле может быть многозвенной с разделением нагрузки на несколько серверов приложений) и обеспечивает безболезненное наращивание как функциональности приложения, так и числа обслуживаемых пользователей.
Развитие этого среднего звена клиент-серверной модели идёт в сторону усложнения. Ограничиваясь вначале построением более высокого уровня абстракции для взаимодействия приложения с ресурсами данных, разработчик приложения получал возможность использовать общие API (Application Program Interface), которые скрывали различия специфических интерфейсов коммуникационных протоколов более низкого уровня, например, TCP/IP, Sockets или DECNet. Однако теперь этого явно недостаточно для построения сложных распределенных приложений. Современные решения не только обеспечивают межпрограммное взаимодействие, но и являются платформой для реализации сервера приложений, обеспечивая обширный набор необходимых служб: управления транзакциями, именования, защиты и т.д.
Вычислительная среда распределённых приложений может включать в себя различные операционные системы, аппаратные платформы, коммуникационные протоколы и разнообразные средства разработки. Соответственно, формат представления данных в различных узлах будет различаться.
Таким образом, в распределённой неоднородной среде программное обеспечение промежуточного уровня играет роль
397

«информационной шины», надстроенной над сетевым уровнем и обеспечивающей доступ приложения к разнородным ресурсам, а также независимую от платформ взаимосвязь различных прикладных компонентов, изолирующую логику приложений от уровня сетевого взаимодействия и ОС (Рис. 19-9).
|
|
Приложения |
|
|
Бизнес- |
Средства |
Сетевое |
Системн |
Готовые |
приложе |
разработки |
управле |
ое |
программные |
ния |
|
ние |
управле |
пакеты |
|
|
|
ние |
|
RPС, MOM, TPM, ORB, COM,
Доступ к базам данных
TCP/IP |
SPX/IPX |
SNA |
DECnet |
X.25 |
… |
UNI VMS N Macint |
OS/ |
WINDO |
Os/40 |
… |
|
X |
T osh |
2 |
WS |
0 |
|
Рис. 19-9. Структура компонент поддержки удаленного доступа
ПО промежуточного уровня можно разделить на две категории:
1.ПО доступа к БД (например, ODBC-интерфейсы и SQL-
шлюзы);
2.ПО межмодульного взаимодействия – системы, реализующие вызов удаленных процедур (RPC – Remote Procedure Call); мониторы обработки транзакций (TP-мониторы); средства интеграции распределенных объектов.
При этом различия прикладных задач не позволяют построить универсальное ПО, реализовав в одном продукте все необходимые возможности.
Доступ к базам данных в двухзвенных моделях клиент-сервер
В простых двухзвенных моделях клиент-сервер, где несколько БД обслуживают ограниченное число пользователей настольных ПК, в роли встроенного ПО доступа к данным могут выступать обычные ODBCдрайверы.
Необходимость в более сложных решениях возникает в больших, разнородных многозвенных системах, где множество приложений в параллельном режиме осуществляет доступ к разнообразным источникам данных, включая разнотипные СУБД и хранилища данных. В таких системах между клиентами и серверами баз данных размещается промежуточное звено – SQL-шлюз, представляющий набор
398