Сервер транзакций Powersoft Jaguar CTS
Powersoft Jaguar CTS - новый сервер транзакций, разработанный специально для WebOLTP (см. Рисунок 6). Компания Sybase, Inc. осуществила первую поставку Jaguar CTS SDK в феврале 1997 и планировала начать распространение Web SDK начиная со второго квартала 1997. Основные возможности Jaguar CTS включают в себя:
- Масштабируемый, независимый от платформы механизм выполнения.
- Быстрая связь между всеми уровнями.
- Компонентная разработка с поддержкой всех ведущих моделей компонентов, включая: ActiveX, JavaBeans, и объекты CORBA.
- Полная поддержка защиты в Internet, включая SLL шифрование и аторизацию, а также списки управления доступом к уровню приложений.
- Гибкое управление транзакциями с поддержкой как обычной синхронной, так и асинхронной диалоговой обработки запросов.
Рисунок 6. Powersoft Jaguar CTS - новый сервер транзакций, разработанный специально для WebOLTP.
Исполняемый модуль Jaguar CTS
Исполняемый модуль Jaguar CTS разработан таким образом, чтобы обеспечить надежную, масштабируемую производительность для большого количества пользователей WebOLTP. Это означает:
- Наличие масштабируемого, многопоточного ядра, поддерживающего работу в многопроцессорной системе.
- Расширенное управление сеансами и соединениями.
- Система администрирования и текущего контроля типа броузера.
Одним из ключевых моментов в достижении Jaguar CTS высокой производительности является устойчивое, многопоточное ядро, работающее в многопроцессорной системе. При проектировании и разработке ядра Jaguar CTS компания Sybase использовала знания и технологии, накопленные за предшествующие шесть лет, полученные из опыта тысяч инсталляций предыдущих поколений серверных программ.
Это наследие позволяет ядру Jaguar CTS продемонстрировать следующие главные особенности:
- Эффективный многопоточный режим, который использует собственные потоки операционной системы там, где это возможно.
- Встроенную поддержку потоков на платформах без собственных реализаций этого механизма.
- Специфические для компонентной реализации потоковые режимы, включая одиночные, выделенные и свободные потоки.
- Превосходная многопроцессорная масштабируемость.
- Расширенные параметры настройки для оптимизации эффективности в зависимости от используемых платформ и рабочих нагрузок.
В дополнение к обеспечению эффективности ядро Jaguar CTS выполняет еще одну важную функцию: оно скрывает от разработчиков приложений сложности потоковой обработки, блокировок и управления памятью.
Почему это так важно? Представьте себе, что кто-то из крупных разработчиков, столкнувшись с задачей перехода к WebOLTP, будет учиться писать многопользовательские сервер-приложения. Сегодняшние разработчики приложений клиент/сервер, как правило, имеют опыт написания однопользовательских (для клиентской машины) приложений. Однако, находящаяся на стадии становления многоуровневая архитектура предполагает размещение большей части бизнес-логики на промежуточном уровне, где к ней обращаются и используют множество пользователей.
Многие системы, включая ORB и Web-серверы приложений, предоставляют разработчикам самим разбираться с потоками, блокировками и проблемами управления памятью. Чтобы еще хуже, эти проблемы должны решаться по-разному для каждой OS платформы.
Ядро Jaguar CTS значительно уменьшает эти проблемы, давая разработчикам доступ к легким в использовании, независимым от платформы средствам обеспечения многопоточной обработки, блокировок и управления памятью. Вместе взятые, эти средства улучшают производительность разработки, ускоряют отладку и увеличивают надежность при обеспечении общей производительности системы.
Управление сеансами и соединениями
По сравнению с традиционными системами клиент/сервер или универсальными СУБД, WebOLTP приложения - особенно Internet или extranet приложения - будут обслуживать намного большие группы пользователей. Это выдвигает перед разработчиком ряд проблем. Но при наличии эффективного управления сеансами и соединениями разработчики могут действительно управлять этими большими группами пользователей. “Управление сеансами” означает управление связями между броузером и сервером транзакций; “управление соединениями” означает управление связями между сервером транзакций и СУБД. Работая вместе, диспетчеры сеансов и соединений Jaguar CTS преобразуют большое количество сеансов броузера в намного меньшее число соединений с СУБД, улучшая таким образом общую масштабируемость системы при обеспечении более устойчивого времени отклика при переменных рабочих нагрузках. Диспетчер сеансов Jaguar CTS Session Manager, очевидно, управляет связями броузер-Jaguar CTS.
В отличие от большинства систем, сеансы Jaguar CTS не зависят от коммуникационного протокола. Это позволяет, например, начинать сеанс, используя общий протокол Сети , а затем подключать быстродействующий протокол поточной обработки данных, называемы по имени TDS (Tabular Data Stream). Управление этим взаимодействием внутри одного сеанса дает возможность серверу поддерживать информацию о “состоянии” и правах пользователя.
Диспетчер соединений Jaguar CTS Connection Manager, очевидно, управляет связями между Jaguar CTS и СУБД. Одной из главных особенностей Connection Manager является “объединение соединений” (connection pooling). Используя connection pooling, администратор Jaguar CTS может сформировать пул соединений с одной или большим количеством СУБД. Пользователи Jaguar CTS затем могут задействовать эти соединения в разделенном режиме. Connection pooling уменьшает общую нагрузку на стороне СУБД, управляя количеством одновременных соединений и уменьшая издержки соединения в расчете на одного пользователя. Эти возможности улучшают масштабируемость и уменьшают время ответа конечному пользователю. В дополнение к возможности создавать пул соединений, Connection Manager интегрируется с диспетчером транзакций Jaguar CTS Transaction Manager (см. раздел Управление транзакциями) и автоматически соотносит сеансы Jaguar CTS и транзакции системы управления базами данных.
Система администрирование и текущего контроля
Jaguar CTS поставляется с собственными простыми в использовании средствами системного администрирования и мониторинга. Написанный полностью на языке Java, Jaguar CTS Manager может быть запущен или в броузере, или как автономное Java-приложение на любой платформе, которая поддерживает Java. Jaguar CTS Manager позволяет администраторам:
- Запускать / закрывать Jaguar CTS сервер.
- Конфигурируйте основные параметры эффективности Jaguar CTS, типа памяти, количества потоков, сеансов и соединений.
- Отслеживать производительность сервера и выполнение сервлет.
Например, разработчики могут динамически развертывать новый компонент на Jaguar CTS и сразу же контролировать изменения производительности. Это позволяет администраторам использовать одно средство для управления приложениями на протяжении их полного жизненного цикла.
Соединяемость Jaguar CTS В многоуровневой среде быстродействие соединения определяется в большей степени временем ответа конечному пользователю, чем любым другим фактором. Jaguar CTS предоставляет быстродействующее соединение с броузерами и back-end хранилищами данных при обеспечении оптимизированной соединяемости. Основные возможности соединяемости включают:
- Обобщенную мультипротокольную поддержку броузеров и других клиентов Сети. Поддерживаемые протоколы включают HTTP, TDS (для быстродействующей обработки потоков данных) и протокол CORBA IIOP.
- Соединяемость со всеми основными СУБД, включая Sybase SQL Server и SQL Anywhere, Oracle7.x и MS SQL Server через стандарты ODBC, JDBC и Sybase Open Client .
- Соединяемость с mainframe и 20 другими источниками данных через семество продуктов доступа к данным EnterpriseConnect компании Sybase.
- Быстродействующая соединяемость из Java как для апплетов, так и сервлетов.
- Высокоскоростной обмен результирующими выборками между всеми уровнями.
- Эффективное HTTP-туннелирование там, где необходимо обеспечить совместимость с .
Также легко могут быть добавлены новые протоколы, чтобы удовлетворить требования пользователей или выполнять новые стандарты. Во всяком случае, Jaguar CTS делает прозрачность протоколов одной из основных парадигм для разработчиков приложений.
Соединяемость с СУБД Jaguar CTS обеспечивает соединяемость почти со всеми back-end источниками данных. Основные СУБД включают Sybase SQL Server, SQL Anywhere, Oracle7, Microsoft SQL Server и Informix Online; соединяемость с этими источниками обеспечивается за счет стандартных интерфейсов ODBC и JDBC. Соединяемость с более чем двадцатью mainframe и другими источниками данных - включая DB2 IBM, IMS и VSAM - обеспечивается через EnterpriseConnect. Соединениями и транзакциями в базах данных управляют диспетчеры транзакций и соединений Jaguar CTS. Соединяемость с Java через jConnect Благодаря важному значению Java в многих WebOLTP инсталляциях, в Jaguar CTS уделено особое внимание скорости соединения между Java апплетами, Java сервлетами и back-end СУБД. JDBC предлагает стандартный метод для Java-приложений, чтобы связываться с хранилищами данных. К сожалению, до настоящего времени большинство поставщиков не имеет своих Java-драйверов JDBC. Эти не-Java драйверы предусматривают установку и конфигурацию, сводящие на нет одно из основных преимуществ решений на основе Java. Кроме того, не-Java драйверы часто плохо работают, потому что они требуют по крайней мере одного дополнительного прохода процесса и часто дополнительные проходы сети, а также преобразования протоколов. Напротив, Jaguar CTS использует новый JDBC драйвер, известный как jConnect для JDBC. Написанный полностью на Java, jConnect быстр, имеет маленький размер (менее 200КБ кода), поддерживает связи как между апплетами и сервлетами, так и между сервлетами и СУБД.
Компонентная разработка Jaguar CTS Из-за короткого жизненного цикла большинства WebOLTP-приложений, быстрая разработка и развертывание приложений обязательны для любого сервера транзакций. С самого начала Jaguar CTS создавался с целью облегчить труд разработчиков.
В этом плане Jaguar CTS имеет такие возможности как:
- Поддержка мультикомпонентных моделей.
- Интеграция RAD инструментальных средств.
- Уникальный Package Manager для сборки связанных компонентов.
- Встроенная обработка результирующей выборки.
- Интеграция компонентов третьих фирм.
- ActiveX
- Java и JavaBeans
- / (собственные объекты)
- CORBA (IDL)
Интеграция инструментальных средств быстрой разработки приложений Разработчики могут использовать любой инструментарий для разработки апплет и сервлет Jaguar CTS, включая:
- PowerBuilder, Power++ и PowerJ от Powersoft - подразделения инструментальных средств Sybase.
- Microsoft VisualJ++, Visual Basic и VisualC++.
- Популярные инструментальные средства разработки Java, включая Cafe Symantec.
Jaguar CTS Package Manager WebOLTP приложения состоят из ряда элементов, включая страницы, апплеты и сервлеты, которые должны совместно управляться и работать. Большинство инструментальных средств, однако, реализуют только какой-либо один фрагмент общей картины, предоставляя разработчикам или администраторам самим вручную координировать работу всего комплекса. Jaguar CTS решает эту проблему, предоставляя разработчикам уникальное средство, обладающее большими возможностями, - Package Manager, который позволяет группировать все связанные элементы и компоненты вместе для простого управления и развертывания.
Package Manager обладает такими свойствами как:
- Легкий в использованиии графический интерфейс пользователя Java, который позволяет разработчикам динамически развертывать компоненты.
- Импортирует компоненты из библиотек типов (Type Libraries) ActiveX, интерфейсных файлов Java или CORBA IDL.
- Позволяет разработчикам определять транзакции и процедуры защиты для каждого компонента или пакета.
- Интегрируется с Jaguar CTS Manager для runtime мониторинга и администрирования.
Jaguar CTS действительно решает эту фундаментальную проблему. Во-первых, Jaguar CTS имеет мощный встроенный API обработки результирующих выборок, доступный всем клиентским апплетам. Во-вторых, Jaguar CTS позволяет разработчикам определять результат, который возвращается компонентом. Таким образом, существующие DataWindow и другие средства управления связанными данными могут автоматически генерировать логику представления для тонких клиентов.
Интеграция компонентов третьих фирм Так как Jaguar CTS поддерживает стандартные компонентные модели, то для работы с ним могут быть приобретены компоненты третьих фирм из широкого диапазона имеющихся в настоящее время на рынке. Это улучшает производительность разработчика и ведет к более функциональным приложениям.
Доступные компоненты включают:
- Имеющиеся ActiveX и Java компоненты типа электронных таблиц, программ проверки орфографии и инструментальных средств составления диаграмм.
- Все внешние сервисы типа электронной торговли и передачи сообщений.
- Существующие / приложения.
- Поддержки стандарта Интернет secure socket layer (SSL) для шифрования данных.
- Установление подлинности пользователя через “public keys” в SSL.
- Защита уровня приложений на основе списков управления доступом (access control list - ACL).
- Firewall программа легализации.
Рисунок 7. Управление транзакциями в Jaguar CTS.
Синхронное управление транзакциями Диспетчер транзакций Jaguar CTS Transaction Manager с помощью “неявных транзакций” скрывает почти всю сложность координации и управления транзакциями от разработчиков приложений. Управляя неявными транзакциями, разработчики при развертывании компонента определяют, является ли он “транзакционным”. Во времени работы Jaguar CTS Transaction Manager автоматически управляет границами транзакции и гарантирует непротиворечивость транзакции во всех транзакционных компонентов и основной СУБД. При двухфазном коммите (two-phase commit), когда необходимо координировать изменения на множестве СУБД, Jaguar CTS автоматически и непосредственно вызывает Microsoft DTC или XA координатор транзакций. Формирование очереди в базах данных для асинхронного управления транзакциями Хотя синхронная обработка транзакций подходит для многих приложений, увеличивающийся доля WebOLTP бизнес-транзакций порождает множество физических транзакций в ряде новых и старых систем. Например, новая WebOLTP система ввода/регистрации заказов могла бы брать заказы непосредственно от заказчиков через Интернет. Когда заказ размещен, это порождает транзакции в системе доставки и, соответственно, в системе составления счетов (см. Рисунок 7). Каждый шагобязательно выполнится, но только, если пользователь может подождать. Однако непрактично вынуждать пользователя Интернет ждать завершения всех операций во всех подсистемах, потенциально не всегда доступных. Чтобы решить эту проблему, Jaguar CTS предлагает вариант обработки типа “запустил и забыл” (“fire and forget”), с использованием нового сервиса dbQ. С помощью dbQ пользователь просто помещает заказ в систему регистрации, подтверждает его и возвращается к своей работе (или серфингу, шахматам etc.). DbQ, используя надежную передачу сообщений, гарантирует, что системы доставки и учета получат данные о новом заказе. В отличие от универсальных систем передачи сообщений, dbQ использует продвинутую технологию формирования очереди в базе данных, чтобы обеспечить выполнение изменений в системе регистрации заказов и передать сообщение в системе доставки как об успешном завершении, так и об откате транзакции.Основные возможности dbQ включают:
- Резидентные очереди в базах данных для обеспечения транзакционной целостности, улучшенной производительности и более простого администрирования.
- Поддержка ActiveX, JavaBeans и компонентов .
- Гибкая доставка сообщений, включая fan-in/fan-out, приоритеты и уведомления.
- Поддержка многих СУБД, включая Sybase SQL Server, SQL Anywhere, Microsoft SQL Server и Oracle
- Надежная доставка сообщения к другим системам передачи сообщений, включая MQSeries IBM