Enterprise Application Server: новый подход к построению корпоративных информационных системИсточник: Sybase CIS Владислав Дмитриев
Интернет и развитие глобальных гетерогенных сетей породили принципиально новые возможности для ведения бизнеса и выживания в современной конкурентной борьбе. Эра электронной коммерции потребовала существенных технических изменений в моделях построения информационных систем. Переход на трехуровневую архитектуру стал необходимым условием реализации современных программных решений. Многолетний опыт работы корпорации Sybase в этом направлении вылился в создание линейки продуктов, центральным среди которых является Enterprise Application Server (EAS). Очередной виток компьютерной революции, объединивший в единые глобальные сети компьютеры потребителей и бизнес-партнеров, поставил руководителей предприятий перед фактом смены роли информационных систем (ИС) в ведении бизнеса. Если раньше информационные технологии играли хотя и существенную, но все же второстепенную роль в бизнес-структуре предприятия, то теперь они становятся одним из важнейших инструментов для ведения бизнеса и решающим фактором, определяющим победу в конкурентной борьбе за рынок. Сегодня информационная система предприятия становится неотъемлемой частью взаимодействия с клиентом и предоставляемых ему услуг (В2С системы) или определяет уровень кооперации с бизнес-партнерами (В2В системы). При этом уровень развития ИС непосредственно влияет на финансовые результаты компании. Соответствие ИС современным требованиям бизнеса во многом определяет соответствие самого предприятия уровню развития рынка, что фактически является вопросом экономической жизни или смерти. До настоящего момента среди концепций построения ИС превалировала технология клиент-сервер. Основанная на использовании языка структурированных запросов (SQL) для связи клиентского и серверного ПО, эта технология позволяет формализовать структуру обрабатываемых данных и отделить их от внешнего интерфейса ИС. Использование линейки серверных продуктов от ведущих производителей, поддерживающих несколько компьютерных платформ, позволяет при использовании технологии клиент-сервер (двухуровневой модели ИС) достичь еще и масштабируемости разрабатываемого ПО. По мере роста требований к увеличению производительности выполнения бизнес-транзакций и уменьшению затрат на сопровождение ИС (заключающихся в первую очередь в обеспечении прозрачности реализованной в ИС бизнес-логики) производители ПО пришли к необходимости перенести акценты в реализации бизнес-процессов с клиентского места на сервер обработки данных. Это проявилось в дальнейшей эволюции серверов БД и языка SQL. Структура БД была дополнена присутствием хранимых процедур (stored procedure), способных реализовывать часть бизнес-логики и гарантировать выполнение операции в рамках единой бизнес-транзакции. Рис.1 Двухуровневая модель построения информационных систем Пытаясь остаться в рамках старой двухуровневой модели построения ИС, производители ПО стали наращивать возможности хранимых процедур в языке SQL, что позволило частично разгрузить клиентский компьютер. Но при этом была утеряна совместимость между серверами БД различных производителей, и не удовлетворялись требования сети Интернет к "облегчению" клиентского ПО. Само появление концепции тонкого клиента, связанной с предоставлением услуг через интернет-интранет сети, сделало актуальным полный переход на трехуровневую модель построения ПО, в которой уже вся бизнес-логика выполняется на отдельном выделенном сервере. Трехуровневая модель построения ИС подразумевает наличие помимо сервера БД также выделенного сервера приложений, инкапсулирующего в себе основную часть бизнес-логики системы. В зависимости от предоставляемой сервером приложений функциональности исполнение бизнес-логики может быть разделено между сервером приложений и функционально нагруженным клиентским ПО ("толстым" клиентом), либо полностью возложено на сервер приложений в схеме работы с "тонким" клиентом, осуществляющим доступ к ресурсам системы (в том числе бизнес-логике) посредством интернет- или интранет-сетей. Сама трехуровневая модель построения ИС не ограничивает предприятие в выборе конкретного решения для организации работы сервера приложений. Но по аналогии с серверами БД, выступающими в двухуровневой модели и как логическая концепция, и как отдельный программный продукт, в трехуровневой модели наряду с идеологией сервера приложений имеются программные продукты, носящие такое же название. Такие продукты предоставляют стандартные решения проблем, связанных с ограничениями двухуровневой архитектуры, и позволяют при разработке сосредоточить усилия компании исключительно на реализации бизнес-логики, используя для решения остальных вопросов функциональность, предоставляемую самим сервером приложений. В дальнейшем под сервером приложений мы будем подразумевать именно программный продукт, предоставляющий среду для выполнения разработанной на предприятии бизнес-логики. Ниже мы постараемся перечислить основные требования к такому серверу приложений, которые вытекают из условий ведения современного бизнеса, и без решения которых на текущий момент невозможно создать конкурентоспособную ИС предприятия, отвечающую требованиям рынка. Сокращение времени разработки ИС
Уменьшение затрат на сопровождение системы и последовательное наращивание ее функциональности
Обеспечение единого транзакционного контекста при работе с несколькими БД
Масштабируемость ИС
Построение отказоустойчивых программных комплексов
Поддержка развитых средств защиты информации Открытость ИС для доступа из глобальных информационных сетей увеличивает вероятность атаки на систему в целом или на ее часть. В то же время рост роли ИС в ведении бизнеса многократно увеличивает риски финансовых потерь от злоумышленного вмешательства в работу ИС. Использование апробированных криптографических методов для защиты информации должно сочетаться с развитыми средствами аутентификации и системами защиты от модификации данных. Enterprise Application Server (EAS)Используя свой многолетний опыт в области построения двухуровневых и трехуровневых систем, корпорация Sybase выпустила на рынок продукт EAS, соответствующий всем вышеперечисленным требованиям. Он предназначен для установки и использования в качестве сервера приложений предприятия и интеграции в него специфичных бизнес-модулей. Ядром EAS является программный продукт, реализующий функциональность сервера приложений - Jaguar CTS (Component Transaction Server), который представляет собой среду запуска и выполнения бизнес-модулей предприятия с поддержкой их отказоустойчивости и контролем за выполнением операций с БД. Сервер приложений обеспечивает организацию сеанса связи с клиентским ПО, во время которой клиентские запросы управляют проведением бизнес-операций на сервере. Рис.2 Общая схема работы сервера приложений В качестве единицы программного кода, предоставляемого клиенту на сервере для выполнения бизнес-транзакций, используются компоненты. В терминологии сервера приложений понятие компонента играет такую же роль, как и понятие класса в объектно-ориентированных языках программирования. Каждый компонент, установленный на Jaguar сервере, имеет набор поддерживаемых объектных интерфейсов. При запросе от клиентского ПО сервер инициализирует в памяти своего компьютера экземпляр компонента. В дальнейшем клиентское ПО вызывает методы поддерживаемого интерфейса, используя протокол связи с сервером приложений. Предоставляемые в комплекте с сервером Jaguar библиотеки обычно позволяют самому клиентскому приложению не замечать особенностей вызова серверного компонента. Работа ведется так, как-будто используется не удаленный компонент, а самый обычный объект, выполняющийся на клиентской машине. Каждый экземпляр компонента запускается в отдельной задаче и никак не может случайно воздействовать на другие запущенные компоненты. Если две разные клиентские программы одновременно осуществляют запрос на работу с одним и тем же компонентом, то Jaguar сервер создаст в памяти компьютера два экземпляра компонента, и каждое клиентское ПО будет работать только со своим экземпляром выполняемого кода. Таким образом, гарантируется изолированность работы бизнес-модулей, выполняющих запросы от разных клиентов. Такая идеология работы сервера приложений подразумевает отсутствие глобального контекста при запуске компонента. Компоненты выполняются исключительно в контексте экземпляра, порожденного по запросу клиентского ПО. Jaguar сервер хранит информацию об установленных на нем компонентах и параметрах их загрузки в репозитории компонентов. В репозитории все компоненты сгруппированы по именованным контейнерам (package), что позволяет структурировать схему установленных компонентов и осуществлять массовую установку или копирование компонентов, находящихся в одном контейнере. После установки Jaguar сервера репозиторий уже содержит набор служебных контейнеров и компонентов, необходимых для доступа и работы некоторых внутренних интерфейсов Jaguar сервера. Создание компонентов Jaguar сервераПеречислим все варианты программного кода, который может быть использован в качестве компонента сервера приложений. Рис.3 Компоненты Jaguar сервера Невизуальные объекты PowerBuilder
Java классы и компоненты Enterprise Java Beans
ActiveX компоненты
Программный код, написанный на языках С и С++
Набор хранимых процедур БД, функции Cobol-систем и объекты системы управления предприятием 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, позволяют уверенно смотреть в завтрашний день, идя в ногу с современными требованиями рынка и индустрии. |