Enterprise Application Server: новый подход к построению
корпоративных информационных систем
c Владислав Дмитриев
Источник Sybase CIS
Интернет и развитие глобальных гетерогенных сетей породили
принципиально новые возможности для ведения бизнеса и выживания в современной
конкурентной борьбе. Эра электронной коммерции потребовала существенных
технических изменений в моделях построения информационных систем. Переход на
трехуровневую архитектуру стал необходимым условием реализации современных
программных решений. Многолетний опыт работы корпорации Sybase в этом
направлении вылился в создание линейки продуктов, центральным среди которых
является Enterprise Application Server (EAS).
Очередной виток компьютерной революции, объединивший в единые глобальные сети
компьютеры потребителей и бизнес-партнеров, поставил руководителей предприятий
перед фактом смены роли информационных систем (ИС) в ведении бизнеса. Если
раньше информационные технологии играли хотя и существенную, но все же
второстепенную роль в бизнес-структуре предприятия, то теперь они становятся
одним из важнейших инструментов для ведения бизнеса и решающим фактором,
определяющим победу в конкурентной борьбе за рынок.
Сегодня информационная система предприятия становится неотъемлемой частью
взаимодействия с клиентом и предоставляемых ему услуг (В2С системы) или
определяет уровень кооперации с бизнес-партнерами (В2В системы). При этом
уровень развития ИС непосредственно влияет на финансовые результаты компании.
Соответствие ИС современным требованиям бизнеса во многом определяет
соответствие самого предприятия уровню развития рынка, что фактически является
вопросом экономической жизни или смерти.
До настоящего момента среди концепций построения ИС превалировала технология
клиент-сервер. Основанная на использовании языка структурированных запросов
(SQL) для связи клиентского и серверного ПО, эта технология позволяет
формализовать структуру обрабатываемых данных и отделить их от внешнего
интерфейса ИС. Использование линейки серверных продуктов от ведущих
производителей, поддерживающих несколько компьютерных платформ, позволяет при
использовании технологии клиент-сервер (двухуровневой модели ИС) достичь еще и
масштабируемости разрабатываемого ПО.
По мере роста требований к увеличению производительности выполнения
бизнес-транзакций и уменьшению затрат на сопровождение ИС (заключающихся в
первую очередь в обеспечении прозрачности реализованной в ИС бизнес-логики)
производители ПО пришли к необходимости перенести акценты в реализации
бизнес-процессов с клиентского места на сервер обработки данных. Это проявилось
в дальнейшей эволюции серверов БД и языка SQL. Структура БД была дополнена
присутствием хранимых процедур (stored procedure), способных реализовывать часть
бизнес-логики и гарантировать выполнение операции в рамках единой
бизнес-транзакции.
Рис.1 Двухуровневая модель построения
информационных систем
Пытаясь остаться в рамках старой двухуровневой модели построения ИС,
производители ПО стали наращивать возможности хранимых процедур в языке SQL, что
позволило частично разгрузить клиентский компьютер. Но при этом была утеряна
совместимость между серверами БД различных производителей, и не удовлетворялись
требования сети Интернет к "облегчению" клиентского ПО. Само появление концепции
тонкого клиента, связанной с предоставлением услуг через интернет-интранет сети,
сделало актуальным полный переход на трехуровневую модель построения ПО, в
которой уже вся бизнес-логика выполняется на отдельном выделенном сервере.
Трехуровневая модель построения ИС подразумевает наличие помимо сервера БД
также выделенного сервера приложений, инкапсулирующего в себе основную часть
бизнес-логики системы. В зависимости от предоставляемой сервером приложений
функциональности исполнение бизнес-логики может быть разделено между сервером
приложений и функционально нагруженным клиентским ПО ("толстым" клиентом), либо
полностью возложено на сервер приложений в схеме работы с "тонким" клиентом,
осуществляющим доступ к ресурсам системы (в том числе бизнес-логике) посредством
интернет- или интранет-сетей.
Сама трехуровневая модель построения ИС не ограничивает предприятие в выборе
конкретного решения для организации работы сервера приложений. Но по аналогии с
серверами БД, выступающими в двухуровневой модели и как логическая концепция, и
как отдельный программный продукт, в трехуровневой модели наряду с идеологией
сервера приложений имеются программные продукты, носящие такое же название.
Такие продукты предоставляют стандартные решения проблем, связанных с
ограничениями двухуровневой архитектуры, и позволяют при разработке
сосредоточить усилия компании исключительно на реализации бизнес-логики,
используя для решения остальных вопросов функциональность, предоставляемую самим
сервером приложений. В дальнейшем под сервером приложений мы будем подразумевать
именно программный продукт, предоставляющий среду для выполнения разработанной
на предприятии бизнес-логики.
Ниже мы постараемся перечислить основные требования к такому серверу
приложений, которые вытекают из условий ведения современного бизнеса, и без
решения которых на текущий момент невозможно создать конкурентоспособную ИС
предприятия, отвечающую требованиям рынка.
Сокращение времени разработки ИС
В современных условиях типовой коммерческий информационный проект должен
реализовываться максимум за 2-3 месяца. Отсюда следует необходимость
повторного использования имеющихся в компании наработок, а также требование
универсальности и совместимости сервера приложений с используемыми
программными модулями. Необходимы поддержка программных комплексов для быстрой
разработки систем (RAD технологии), а также комплекс мер, радикально
ускоряющих процесс запуска созданного бизнес-модуля в составе работающего
сервера приложений.
Уменьшение затрат на сопровождение системы и последовательное
наращивание ее функциональности
Зачастую стоимость сопровождения и поддержки уже созданных систем сильно
превышает первоначальную стоимость ИС. Поэтому правильная изначальная
стратегия проектирования системы должна сократить последующие расходы.
Поддержка современных корпоративных стандартов как на этапе разработки модулей
сервера приложений (например, Java технологии), так и на этапе их
функционирования в рамках работающей ИС (стандарт CORBA и другие) позволяет
использовать готовые наработки третьих фирм, а также сократить затраты на
поддержку и развитие системы в целом. Использование объектно-ориентированного
подхода уже на уровне организации бизнес-процессов облегчает документирование
системы и ее дальнейшее развитие.
Обеспечение единого транзакционного контекста при работе с
несколькими БД
Унаследованное богатство существующих программных решений внутри
предприятия и накопленных ранее данных делают весьма актуальной задачу
интеграции информационных ресурсов и, в частности, возможность работы с
несколькими серверами БД в едином транзакционном контексте. Это же требование
все чаще выдвигается из-за наложения на структуру ИС внутренней организации
компании и особенностей ведения бизнеса. Поэтому поддержка целостности данных
в рамках выполнения бизнес-транзакции одновременно на нескольких серверах БД -
одно из важнейших требований к крупной информационной системе
предприятия.
Масштабируемость ИС
Требования гибкого планирования инвестиций в развитие ИС предприятия и
планомерного наращивания производительности системы приводят к необходимости
кроссплатформенной совместимости сервера приложений. Возможность гибкого
перераспределения средств предприятия для их вложения в аппаратное обеспечение
гарантируется машинно-независимостью разработанного бизнес-ПО или его легким
переносом при переходе на другую платформу.
Построение отказоустойчивых программных комплексов
Сеть Интернет многократно увеличила негативный эффект от выхода из строя
компьютерных систем. А использование ИС в качестве инструмента ведения бизнеса
влечет за собой реальные финансовые потери в случае сбоев работы системы.
Применение механизмов дублирования или кластеризации вкупе с централизованным
управлением концепцией отказоустойчивости должны обеспечить проведение
бизнес-транзакций даже при выходе из строя части ИС.
Поддержка развитых средств защиты информации
Открытость ИС для доступа из глобальных информационных сетей увеличивает
вероятность атаки на систему в целом или на ее часть. В то же время рост роли ИС
в ведении бизнеса многократно увеличивает риски финансовых потерь от
злоумышленного вмешательства в работу ИС. Использование апробированных
криптографических методов для защиты информации должно сочетаться с развитыми
средствами аутентификации и системами защиты от модификации данных.
Enterprise Application Server (EAS)
Используя свой многолетний опыт в области построения двухуровневых и
трехуровневых систем, корпорация Sybase выпустила на рынок продукт EAS,
соответствующий всем вышеперечисленным требованиям. Он предназначен для
установки и использования в качестве сервера приложений предприятия и интеграции
в него специфичных бизнес-модулей. Ядром EAS является программный продукт,
реализующий функциональность сервера приложений - Jaguar CTS (Component
Transaction Server), который представляет собой среду запуска и выполнения
бизнес-модулей предприятия с поддержкой их отказоустойчивости и контролем за
выполнением операций с БД. Сервер приложений обеспечивает организацию сеанса
связи с клиентским ПО, во время которой клиентские запросы управляют проведением
бизнес-операций на сервере.
Рис.2 Общая схема работы сервера
приложений
В качестве единицы программного кода, предоставляемого клиенту на сервере для
выполнения бизнес-транзакций, используются компоненты. В терминологии сервера
приложений понятие компонента играет такую же роль, как и понятие класса в
объектно-ориентированных языках программирования. Каждый компонент,
установленный на Jaguar сервере, имеет набор поддерживаемых объектных
интерфейсов. При запросе от клиентского ПО сервер инициализирует в памяти своего
компьютера экземпляр компонента. В дальнейшем клиентское ПО вызывает методы
поддерживаемого интерфейса, используя протокол связи с сервером приложений.
Предоставляемые в комплекте с сервером Jaguar библиотеки обычно позволяют самому
клиентскому приложению не замечать особенностей вызова серверного компонента.
Работа ведется так, как-будто используется не удаленный компонент, а самый
обычный объект, выполняющийся на клиентской машине.
Каждый экземпляр компонента запускается в отдельной задаче и никак не может
случайно воздействовать на другие запущенные компоненты. Если две разные
клиентские программы одновременно осуществляют запрос на работу с одним и тем же
компонентом, то Jaguar сервер создаст в памяти компьютера два экземпляра
компонента, и каждое клиентское ПО будет работать только со своим экземпляром
выполняемого кода. Таким образом, гарантируется изолированность работы
бизнес-модулей, выполняющих запросы от разных клиентов. Такая идеология работы
сервера приложений подразумевает отсутствие глобального контекста при запуске
компонента. Компоненты выполняются исключительно в контексте экземпляра,
порожденного по запросу клиентского ПО.
Jaguar сервер хранит информацию об установленных на нем компонентах и
параметрах их загрузки в репозитории компонентов. В репозитории все компоненты
сгруппированы по именованным контейнерам (package), что позволяет
структурировать схему установленных компонентов и осуществлять массовую
установку или копирование компонентов, находящихся в одном контейнере. После
установки Jaguar сервера репозиторий уже содержит набор служебных контейнеров и
компонентов, необходимых для доступа и работы некоторых внутренних интерфейсов
Jaguar сервера.
Создание компонентов Jaguar сервера
Перечислим все варианты программного кода, который может быть использован в
качестве компонента сервера приложений.
Рис.3 Компоненты Jaguar сервера
Невизуальные объекты PowerBuilder
Практически любой объект, созданный в среде быстрой разработки
PowerBuilder, способен играть роль компонента Jaguar сервера, если он не
осуществляет визуального взаимодействия с пользователем и не требует
использования глобального контекста приложения. Встроенные в среду
PowerBuilder утилиты позволяют автоматически выбрать и прогрузить выбранные
объекты в качестве компонентов на сервер приложений. При этом на сервер будет
загружен не только сам объект, но и все необходимые для его работы библиотеки
приложения. При порождении нескольких компонентов из различных объектов одного
приложения будут созданы различные компоненты, независимо запускаемые в рамках
отдельных процессов. В данном пункте подразумевается использование
компилированного в среде PowerBuilder машинно-независимого Р-кода в виде PBD
модулей. Инструментальная среда поддерживает также прозрачную отладку
компонента на самом сервере приложений.
Java классы и компоненты Enterprise Java Beans
Jaguar сервер поддерживает работу в качестве компонентов с модулями,
написанными на языке Java. Это может быть обычный Java-класс, или же серверный
компонент, соответствующий стандарту Enterprise Java Beans. В обоих случаях
гарантируется полная машинно-независимость созданных компонент и максимальная
масштабируемость созданной ИС. Создание компонент на языке Java может
производиться в любой среде разработки, но использование фирменной среды
PowerJ и поставляемых с ней утилит позволяет автоматизировать процедуры
создания и загрузки на сервер разрабатываемых компонент, значительно сокращая
время разработки.
ActiveX компоненты
Версия сервера приложений Jaguar для операционной системы Windows NT
полностью поддерживает СОМ технологию компании Microsoft. Для создания
подключаемых к серверу COM-объектов можно использовать любую совместимую с
технологией Microsoft инструментальную среду.
Программный код, написанный на языках С и С++
При использовании библиотек, поставляемых с Jaguar сервером, можно
скомпилировать код на языках С и С++ в виде подключаемого к серверу
компонента. При этом можно добиться платформонезависимости на уровне исходных
текстов компонента.
Набор хранимых процедур БД, функции Cobol-систем и объекты системы
управления предприятием SAP R/3
В комплект продукта EAS входит специальная программа Application
Integrator, позволяющая использовать в виде компонентов хранимые процедуры БД
и имеющиеся наработки на языке Cobol. Существует специальная версия
Application Integrator, которая поддерживает работу с бизнес-объектами системы
управления предприятием SAP R/3.
Из этого богатого списка видно, что практически все технологии разработки
программных продуктов могут использоваться в качестве основы для создания
Jaguar-компонентов. Использование технологии ActiveX таит в себе ограничения по
масштабируемости ИС предприятия, но зато обеспечивает совместимость с
большинством инструментальных средств на платформе Intel и поддержку объектов
третьих фирм. При переходе на трехуровневую архитектуру предприятие имеет
возможность полностью использовать уже имеющиеся в его арсенале наработки,
минимальными усилиями модифицируя уже функционирующую ИС. Возможность
использования в рамках одной корпоративной системы компонентов, созданных в
различных инструментальных средах, позволяет осуществлять наращивание ИС с
применением самых эффективных для конкретной задачи средств.
Клиентские приложения
Доступ со стороны клиента к установленным на Jaguar-сервере компонентам
осуществляется с использованием CORBA-совместимого протокола IIOP. Это означает,
что если вы имеете стандартный ORB-клиент (Object Request Broker - клиентская
часть, работающая по стандарту CORBA), то ваше приложение уже готово к работе с
Jaguar-сервером. В комплекте продукта EAS поставляется набор собственных
реализаций ORB-клиентов, предназначенный для встраивания доступа к
Jaguar-серверу в создаваемые клиентские приложения. В комплект входят библиотеки
классов для языка Java, а также бинарные библиотеки для подключения на этапе
линковки со стандартными компилируемыми приложениями. Среда разработки
Java-приложений PowerJ включает набор утилит для автоматического создания кода
вызова Jaguar-сервера.
ORB-брокер встроен и в среду разработки PowerBuilder. Так же как и в среде
PowerJ, создание прототипа для доступа к серверу приложений занимает несколько
минут, позволяя сосредоточить усилия разработчика на реализации
бизнес-алгоритмов.
В поставку EAS входит также и специальная ActiveX заглушка (stub),
позволяющая реализовать присоединение к серверу приложений в виде
зарегистрированных на клиентской машине СОМ-объектов.
Помимо протокола IIOP, Jaguar сервер поддерживает для вызова компонентов
протокол TDS, использующийся в работе с корпоративными серверами БД. Это
позволяет вызывать методы компонента из любого приложения, способного обратиться
к хранимой процедуре БД. Только в этом случае в качестве такого "псевдо-сервера
БД" будет выступать Jaguar-сервер.
Протокол IIOP (базирующийся на протоколе TCP/IP) предназначен для работы в
интранет-интернет сетях. Но современная структура глобальной сети Интернет
допускает доступ клиента к серверу через набор Proxy и Firewall серверов,
которые могут запрещать работу с любым протоколом, выходящим за рамки
стандартного web-соединения. Поэтому реализация ORB-клиента в продуктах Sybase
поддерживает также тунелирование протокола IIOP через стандартный HTTP
протокол.
Рис.4 Клиенты Jaguar сервера
Концепция тонкого клиента
Самая большая задача, стоящая перед сервером приложений, - обеспечение работы
с интернет клиентами. Можно, конечно же, использовать интернет и интранет сети
только как коммуникационную инфраструктуру. Но чаще всего сюда добавляется и
идеология реализации клиентского приложения в виде HTML страницы для просмотра в
web-браузере. Такая страница может содержать код, написанный на клиентских
скриптах, или вставленный Java-апплет. При этом сам апплет (или даже ActiveX
объект) может динамически загружаться по сети при попытке пользователя
просмотреть HTML страницу. Такое клиентское приложение обычно перекладывает
выполнение всей бизнес-логики на плечи серверной части, формирующей
web-документы. Поэтому в таких системах использование сервера приложений
становится насущной необходимостью.
Рис.5 Реализация тонкого клиента на
Jaguar-сервере
Как уже упоминалось выше, в качестве клиента Jaguar-сервера могут выступать
Java приложения и, в частности, Java-апплеты. Встает вопрос, каким образом этот
апплет должен доставляться для запуска на клиентскую машину? Для этого можно
использовать любой web-сервер, но есть решение попроще. Сам Jaguar-сервер
содержит в себе полнофункциональный web-сервер, готовый к хранению и прогрузке
на сторону клиента как статических HTML страниц, так и Java апплетов. Используя
инструментальную среду PowerJ (или любое другое средство для создания
Java-апплетов), вы создаете модуль для присоединения к серверу приложений и
управлению со стороны клиента выполнением бизнес-логики.
Но поддержкой загрузки статических документов возможности Jaguar как
web-сервера не ограничиваются. Сервер приложений поддерживает и современные
средства для динамического создания HTML страниц. Для полного контроля над
созданием динамической страницы используется технология Java-сервлетов. Это
стандарт корпорации Sun для создания Java приложений, занимающихся динамическим
формированием ответа на запрос документа по HTTP протоколу. В более простом
случае, когда необходимо динамически создать HTML страницу, достаточно
воспользоваться технологией Dynamo. Технология Dynamo представляет собой
реализацию серверного языка скриптов JavaScript (стандарт ECMAScript). Начиная с
версии 3.6, сервер Jaguar полностью поддерживает Java-технологии J2EE для
построения компонент и Java Server Pages (JSP) для использования HTML шаблонов
со встроенными вставками кода на языке Java.
Все указанные подходы к созданию динамических HTML страниц позволяют легко
осуществлять вызов компонентов сервера приложений. Инкапсулировав в компоненты
всю необходимую бизнес-логику, для ее управления вы можете использовать набор
статических или динамических HTML страниц. Причем для хостинга использовать
встроенный в Jaguar web-сервер.
За долгие годы разработки и развития инструментальных средств компания Sybase
создала уникальную технологию представления и управления данными DataWindow.
Достоинства этой технологии признаны во всей индустрии. Они позволяют
унифицировать внешнее представление данных и значительно сократить время
разработки ПО. Практически вся линейка инструментальных средств компании Sybase
активно использует технологию DataWindow. Для работы же с тонкими клиентами
предлагается использовать модификацию этой технологии - HTML DataWindow. При
этом для визуализации данных используется внешнее представление объекта
DataWindow, отредактированного в одном из инструментальных средств компании
Sybase. При генерации динамической HTML страницы специальные функции генерируют
HTML код, отображающий данные точно в таком же виде, как если бы они выводились
на экран при помощи самого объекта DataWindow. При этом на клиентском месте не
требуется устанавливать какое-либо дополнительное программное обеспечение.
Описанная технология позволяет при разработке тонкого клиента использовать
большую часть наработок от уже созданных "полнофункциональных" клиентов.
Оптимизация работы сервера приложений
Помимо организации связи между клиентским приложением и компонентом,
Jaguar-сервер предоставляет возможности для уменьшения времени ответа на
клиентский запрос за счет использования пула объектов и соединений с БД.
Разберем работу пула объектов на примере цикла жизни экземпляра компонента.
После присоединения клиента к серверу по его запросу экземпляр компонента
создается в памяти серверной машины. Затем клиент выполняет необходимые действия
и дезактивирует компонент. При этом сам экземпляр компонента не уничтожается, а
помещается в памяти компьютера в пул объектов. Когда придет следующий запрос от
этого или другого клиента на использование компонента, время на создание
экземпляра уже не тратится, а экземпляр компонента будет взят из пула объектов.
Утилита администрирования Jaguar-сервера позволяет отдельно для каждого
компонента настраивать размеры пула и устанавливать таймаут для нахождения в нем
объектов.
Аналогично работает и пул соединений к БД. Администратор сервера БД
настраивает параметры присоединения к БД и размеры пула. По мере появления
необходимости доступа к данным компоненты будут пользоваться соединениями из
пула, снова экономя на времени создания.
Наличие пула объектов и соединений с БД особенно актуально для построения
серверной части для тонкого клиента. HTTP протокол не хранит информацию о
предыдущих присоединениях клиента. Поэтому последовательность HTTP запросов
выглядит для сервера приложений как поток кратковременных запросов на создание и
уничтожение объектов сервера. Технология использования пулов позволяет не только
сократить время выполнения запросов, но и управлять производительностью при
помощи администрирования Jaguar-сервера.
Транзакции и базы данных
Появление понятия транзакции и создание серверов БД, обеспечивающих
целостность информации в рамках одной транзакции, послужило в свое время важным
стимулом для использования двухуровневой архитектуры. Теперь требование наличия
единого транзакционного контекста является обязательным для любой
бизнес-операции. В то же время, насущная необходимость объединения в одной ИС
нескольких взаимодействующих серверов БД снова поднимает эту проблему. В
трехуровневой модели организации системы основные тяготы по обеспечению
целостности данных должен взять на себя сервер приложений.
Jaguar сервер поддерживает три модели работы с распределенными транзакциями.
Первая, фиктивная, практически декларирует готовность самого разработчика
обеспечить транзакционный контекст при модификации данных в БД. На практике эта
"псевдомодель" используется в тех случаях, когда бизнес-логика позволяет
обойтись без одновременной модификации информации сразу в нескольких БД. В этом
случае от сервера приложений требуется только максимальное быстродействие без
дополнительного контроля за границами действия проводимых транзакций.
Две другие модели предлагают реальное обеспечение единой транзакции при
работе с несколькими БД в рамках работы с Microsoft или UNIX совместимыми
средами. Одна модель обеспечивает работу с Microsoft DTC (distributed
transaction coordinator), другая представляет из себя Sybase реализацию
распределенных транзакций по OTS/XA протоколу. Выполнение общей транзакции может
управляться компонентами сервера как с использованием предоставляемого API, так
и с использованием стандартных средств, специфичных для конкретной среды
разработки. Так, в случае применения компонент JavaBeans, поддерживается
управление транзакциями в соответствии с моделью JavaBeans.
Средства администрирования Jaguar-сервера позволяют осуществлять тонкую
настройку роли установленного компонента в проводимой транзакции. Компонент
может поддерживать или не поддерживать работу с транзакциями. Использование
компонента может требовать наличия уже начатой транзакции, или наоборот
автоматически начинать транзакцию при первом вызове метода. В зависимости от
настроек, сервер приложений управляет не только единым транзакционным
контекстом, но и временем существования экземпляра объекта. Так, если компонент
работает в рамках единой транзакции, его экземпляр не будет уничтожен, пока вся
транзакция не будет успешно завершена или отменена из другого компонента.
Обеспечение отказоустойчивости
В серьезной ИС вопросы отказоустойчивости выходят на первый план не только
из-за требования работоспособности самой корпорации. Когда ИС становится лицом
компании, обращенным к потенциальным клиентам и бизнес-партнерам, ее
работоспособность становится залогом общего доверия к компании на рынке. Поэтому
корпорация Sybase уделила вопросам обеспечения отказоустойчивости особое
внимание.
Основополагающим для обеспечения отказоустойчивости является понятие кластера
Jaguar-серверов. При настройке сервера администратор имеет возможность
организовать несколько серверов приложений в единый кластер. Для такого кластера
доступны общая прогрузка и регистрация компонентов и обеспечение
работоспособности системы даже в условиях выхода из строя нескольких машин.
Jaguar-сервер предоставляет возможность автоматического восстановления
работоспособности в случае сбоев (automatic failover), заменяя прозрачно для
клиента отключившийся экземпляр компонента экземпляром компонента на другом
компьютере. Такая возможность не является "родной" для всех программных модулей
и требует определенной поддержки со стороны разработчика. В частности, для
реализации автоматического восстановления работоспособности могут использоваться
компоненты без сохранения состояния (stateless) или компоненты, поддерживающие
возможность внешнего сохранения состояния (serialization).
Внутри кластера осуществляется контроль за работоспособностью каждой
отдельной машины. В случае обнаружения неработоспособности компьютера он
отключается от кластера и все клиентские запросы от него перенаправляются к
работающим компьютерам. Администратор может управлять алгоритмом автоматической
балансировки распределения нагрузки по машинам в кластере. Таким образом за счет
использования кластерной архитектуры можно добиться не только построения
высоконадежных систем (high availability), но и осуществлять постепенное
наращивание компьютерных мощностей по мере увеличения числа работающих в
кластере машин.
Организация безопасности сервера
Условно структура безопасности Jaguar-сервера делится на две части:
аутентификация пользователя и обеспечение защищенного канала связи. Для этого
активно задействуются возможности аутентификации операционной системы, на
которой запущен сервер, и тунелирование коммуникационных протоколов внутри SSL
протокола.
При присоединении клиентского ПО к серверу приложений происходит
аутентификация по имени пользователя и паролю, или посредством предъявления
электронной подписи SSL сертификата. Для проверки пароля пользователя могут быть
использованы реестр пользователей самой операционной системы, внутренняя таблица
пользователей Jaguar-сервера или подключаемый пользовательский компонент,
специально предназначенный для аутентификации.
Использование SSL протокола для закрытия канала связи одновременно позволяет
управлять как уровнем криптографической защиты данных, так и гарантировать
распознавание пользователей по выданным им сертификатам с открытым ключом.
Использование апробированных криптографических алгоритмов и протоколов
гарантирует совместимость слоя безопасности с продуктами третих фирм и
обеспечивает надежную защиту информации.
Администратору сервера приложений предоставляются широкие возможности по
контролю уровня защиты, на котором осуществляется доступ к контейнеру сервера
(package), к его компоненте, или, даже, к отдельному методу компоненты.
Иерархическая структура задания атрибутов защиты позволяет разрабатывать
полнофункциональные компоненты, контролируя доступ к части функциональности уже
на этапе загрузки компонента на Jaguar-сервер средствами администрирования.
Архитектура построения серверного приложения
Как уже говорилось, сервер приложений представляет собой распределенную среду
для функционирования компонент. Но из этого совсем не следует, что установленные
на сервере компоненты не должны взаимодействовать друг с другом.
Непосредственный обмен данными между компонентами невозможен, это противоречило
бы концепции независимости и защиты экземпляров компонент на момент их
выполнения в памяти компьютера. Но каждый создаваемый экземпляр компонента может
аналогично клиентскому приложению обратиться к другому компоненту, используя его
функциональность.
Помимо обычных компонентов, экземпляры которых создаются отдельно для каждого
работающего клиента, существуют специальные разделяемые (shared) компоненты. Для
таких компонентов в рамках компьютера существует только один запущенный
экземпляр. Доступ к такому экземпляру со стороны нескольких приложений
контролируется самим сервером, что гарантирует корректность вызовов компонента в
многозадачном режиме. Такие разделяемые компоненты можно использовать для
организации глобального контекста для нескольких независимо выполняемых
компонентов.
Рис.6 Пример построения приложений на базе
компонентов
Клиентское приложение запрашивает экземпляр компонента 1 для выполнения
бизнес-транзакции. Компонент 1 при этом запрашивает для своих нужд экземпляр
компонента 2, и сервер дополнительно создает его. Одновременно компоненты 1 и 2
обращаются к разделяемому компоненту 3, осуществляя обмен информацией между
собой и с другими компонентами. Разделяемый компонент 3 осуществляет доступ к БД
не самостоятельно, а через функции разделяемого компонента 4. Компонент 1 по
мере необходимости вызывает и создает компонент 5, находящийся уже на другом
сервере приложений. На другом сервере могут вызываться как обычные компоненты,
так и разделяемые (компонент 6).
Передачу информации между независимо запущенными компонентами можно
организовать и на уровне вызовов специального API Jaguar-сервера. В целом, набор
установленных на сервере компонент образует целое приложение. Его запуск
начинается с обращения клиентского ПО к серверу, что порождает затем целую
цепочку взаимодействующих компонент. Такая структура позволяет использовать при
проектировании ПО хорошо зарекомендовавший себя объектно-ориентированный подход,
но уже без ограничений на используемые инструментальные средства и оперируя
масштабами всей корпоративной системы, а не нескольких компьютеров.
Учитывая, что большинство аспектов взаимосвязи компонентов и клиентского ПО
реализуется самим Jaguar-сервером, а не на уровне разработчика, процесс
проектирования всей системы четко отделяется от конкретного кодирования
программных модулей и ассоциируется уже не с конкретным кодом, а с
администрированием сервера приложений. Отлаженное и работающее приложение,
состоящее из нескольких компонент, можно затем устанавливать на "боевой" сервер
целым контейнером (package) вместе с административными настройками.
Заключение
Данная статья далека от претензий на исчерпывающее изложение возможностей и
внутренней архитектуры Jaguar-сервера. Автор лишь попытался кратко обрисовать
тот потенциал, который заложен в использовании сервера Jaguar для построения
трехуровневой модели ИС. Мощные возможности продукта в данном случае
одновременно сочетаются с легкостью первых шагов по переводу ИС на трехуровневую
архитектуру. Решения, базирующиеся на поддержке большинства современных
корпоративных стандартов и стандартов "де-факто", позволяют строить
гарантированно совместимые и надежные системы.
По широте спектра поддерживаемых форматов и стандартов серверу Jaguar на
рынке сейчас нет равных. Использованные решения и архитектура продукта позволяют
руководителям проектов четко контролировать процесс развития и эксплуатации ИС.
А разработчик за счет применения Jaguar-сервера получает возможность
задействовать уже имеющийся у него профессиональный опыт в разрезе новых
требований времени и рынка.
Решение назревших проблем на уже имеющейся базе, обеспечивающее экономию
ресурсов предприятия, - вот то, что дает внедрение Jaguar-сервера, одновременно
перемещая ИС предприятия в новую плоскость распределенных вычислений и
электронного бизнеса. Поставляемые в комплекте с Jaguar сервером
административные и сервисные программы, входящие в состав Enterprise Application
Server, позволяют уверенно смотреть в завтрашний день, идя в ногу с современными
требованиями рынка и индустрии.
|