- •Лекция 13. Olap и oltp технологии
- •13.1 Основы olap
- •13.2 Oltp-системы
- •13.1 Основы olap
- •Многомерные кубы
- •Некоторые термины и понятия
- •13.2 Oltp-системы
- •Практика реализации сложных oltp-систем
- •13.1 Основы olap
- •Многомерные кубы
- •Некоторые термины и понятия
- •13.2 Oltp-системы
- •Практика реализации сложных oltp-систем
- •Монитор транзакций ibm cics
- •Транзакционный сервер очередей mqSeries
- •Db2 Universal Database
- •WebSphere Application Server
- •Разработка на VisualAge Generator
- •«Обобщающее обобщение»
- •Реализация oltp-системы для Внешторгбанка
- •Распределенная oltp-система с интеграцией унаследованных программ
«Обобщающее обобщение»
|
|
|
Общая архитектура сложной OLTP-системы на базе технологий IBM |
На рис. 4 показана общая архитектура распределенной OLTP-системы, которая базируется на описанных технологиях.
Основой системы является CICS (CICS A, например, на платформе Windows NT, CICS B — на платформе S/390). Два этих транзакционных сервера могут взаимодействовать как синхронно (TR, AC, FS, DPL, DTP), так и асинхронно, через MQSeries (менеджеры MQ1 и MQ2 для соответствующих платформ). Менеджеры очередей подсоединены к соответствующим серверам CICS через интерфейс XA. Также к серверам CICS подсоединены различные источники данных (на Windows NT — DB2 и/или СУБД Oracle и Microsoft SQL Server, на S/390 — DB2 и файловые структуры VSAM, которые определены в CICS через Resource Definition Online).
WebSphere Application Server (WSAS) играет роль конвертора вызовов от Web-клиентов к системе «заднего плана» (транзакции P1, P2, P3), написанной на VisualAge Generator.
VisualAge Generator Server (VAGen Srv) — платформнозависимый продукт, необходимый для запуска программ, разработанных на VisualAge Generator.
Возможны прямые соединения с CICS для клиентов с графическим или текстовым интерфейсом пользователя. При этом программы P1, P2 в CICS A могут быть определены как удаленные, тогда их вызовы в CICS A будут автоматически перенаправлены методом TR в CICS B и там запущены. P3 — локальная транзакция в CICS A, которая может посылать сообщения в CICS B через MQSeries.
Надо сказать, что экземпляры CICS, подобные CICS A и CICS B (в CICS их обозначают термином «регион») могут находиться не только на разных машинах, но и на одном сервере или в кластере. Работа регионов изолирована и «падение» одного из них не влияет на работу других. Это так же дает преимущества в масштабируемости, позволяя разделить задачи по регионам с точки зрения специализации. Такой подход наиболее часто практикуется на системах S/390, особенно в кластерах Sysplex. Реальные системы имеют несколько сотен регионов и десятки тысяч транзакций.
Однако сама по себе технология без соответствующих инструментов не дает ожидаемого «выхлопа». Скажем, CICS очень хорош, но если вы попробуете реализовать систему на С++ или Коболе, то это потребует от разработчика бизнес-логики хорошего знания как языка программирования, так и API-интерфейсов CICS, которые сродни API-интерфейсам операционных систем. Масса времени будет потрачена на создание инфраструктурных элементов (описание функций, переменных и т.д.) и отладку такого проекта. Но если взять VisualAge Generator, это избавит разработчика бизнес-логики от необходимости знать CICS, позволив ему сосредоточиться на своих прямых задачах. Конечно, для реализации сложных проектов требуется владение CICS, но это требование уже распространяется не на всех разработчиков, а на двух-трех специалистов, отвечающих за среду выполнения приложения.
«Сплав» технологий и инструментов как раз и дает оптимальный результат; рассмотрение же отдельных продуктов вне системного прикладного контекста для разработчиков сложных не «коробочных» решений не имеет большого смысла. Точно так же мало проку судить о СУБД вне рамок прикладной задачи. Скажем, вы большой поклонник Oracle. Но что делать, если заказчик требует приложение для целевой платформы AS/400? Или у вас большая любовь к DB2, а прикладная система заказчика на S/390 использует VSAM и заказчика полностью устраивает, и речь идет лишь о замене «зеленого» экрана на Web-браузер, чтобы, к примеру, показывать не только алфавитно-цифровые данные.

