Первые серверы приложений использовались в качестве промежуточного слоя в клиент-серверных приложениях. Эта модель не получила широкого распространения, так как усложняла приложение, добавляя к нему еще один уровень. Однако с появлением Интернета сервер приложений моментально стал востребованным. Многоуровневая модель естественным образом подходит для разработки Web-приложений. В настоящее время серверы приложений играют роль промежуточного слоя между пользовательским интерфейсом (Web-браузером) и уровнем хранения данных (базой данных). Сервер приложений включает бизнес-логику, которая видоизменяет клиентские запросы, обрабатывает данные и реагирует на запросы. Компания Sybase, один из ведущих производителей СУБД, вышла на рынок ПО для Интернета, разработав сервер приложений EAServer, новая версия которого, EAServer 4.0, не уступает лучшим системам этого класса.
Сведения о программном продукте |
EAServer 4.0Производитель: Sybase, http://www.sybase.com Требования к оборудованию:
Цена: версия Enterprise Edition при покупке по схеме, учитывающей число пользователей, — 28 тыс. долл. и 10 тыс. долл. за каждые 25 дополнительных пользователей; при покупке по схеме, учитывающей число процессоров, — 28 тыс. долл. за каждый процессор. |
Полный набор средств
Как и многие другие серверы приложений, EAServer поставляется с собственным комплектом инструментальных средств разработки. Комплект включает PowerDynamo (средство создания Web-cайтов), Adaptive Server Anywhere (реляционную базу данных), а также "интеграторы" Application Integrator for CICS (средство интеграции унаследованных CICS-приложений с EAServer) и Application Integrator for Stored Procedures (средство доступа к хранимым процедурам БД из EAServer).
EAServer поставляется в четырех вариантах. Пакет Enterprise Edition идеально подходит для крупномасштабных приложений обработки транзакций. Редакция Advanced Edition похожа на предыдущую, но она не поддерживает доступ к CICS-приложениям, двухэтапную фиксацию транзакций и отказоустойчивость. Версия Small Business Edition ориентирована на приложения для публикации информации. Она поддерживает не более 10 активных подключений к серверу транзакций. Для создания и тестирования приложений разработчикам предлагается вариант Developer Edition. Число подключений по протоколу IIOP (Internet Inter-ORB Protocol) в этой редакции ограничено пятью.
EAServer оснащен масштабируемым, многопоточным, независимым от платформы ядром. Среда исполнения сервера EAServer одинакова на всех платформах (конечно, если не считать ActiveX-компонента — он работает лишь с Windows NT). Автор тестировал EAServer на компьютере под управлением Windows 2000, и процедуры установки и конфигурирования показались довольно простыми.
Всеобъемлющая поддержка
Поскольку сервер функционирует как ПО промежуточного слоя, его ценность определяется тем, насколько хорошо он взаимодействует с остальными частями приложения. В частности, важна поддержка различных компонентных моделей. Компоненты — это повторно используемые модули, которые обеспечивают доступ к взаимосвязанным задачам в виде четко определенного интерфейса. Большинство серверов приложений ориентируются на одну из двух моделей компонентов — Enterprise Java Bean (EJB) или Microsoft COM/ActiveX.
Начиная с самых ранних версий сервер EAServer основывался на перспективной открытой модели компонентов. Он поддерживает все основные модели компонентов, в том числе Java Beans, PowerBuilder, Java, ActiveX и C/C++. На всех клиентах EAServer можно применять любые типы компонентов. Компоненты самых различных моделей могут взаимодействовать, используя межкомпонентные вызовы и не прибегая к дополнительным программным шлюзам. Кроме того, поскольку на EAServer в качестве базового сетевого протокола используется CORBA IIOP, для вызова компонентов, установленных на сервере EAServer, можно задействовать отчуждаемые клиентские библиотеки CORBA, созданные другими разработчиками. Все клиенты и компоненты используют общий репозиторий интерфейсов. Интерфейсы компонентов хранятся в стандартном для CORBA формате IDL ( Interface Definition Language, язык описания интерфейсов).
Диспетчер Jaguar Manager, включаемый во все редакции сервера, позволяет разработчикам просматривать, определять и редактировать интерфейсы как графическими средствами, так и в «сыром» формате IDL. Пользовательский интерфейс Jaguar Manager показался автору очень логичным и понятным. Интерфейсы можно также определять, импортируя откомпилированные Java-классы, файлы стандартного формата EJB-JAR или библиотеки типов ActiveX. Кроме того, Jaguar Manager генерирует классы-заглушки для использования в клиентских приложениях на Java и C++ и библиотеки типов ActiveX для использования в клиентах на базе ActiveX. Этот диспетчер также применяется для конфигурирования сервера EAServer и для определения и развертывания программных компонентов и пакетов. Jaguar Manager поддерживает удаленный просмотр файлов журналов сервера и мониторинг статистики работы компонентов и сети.
Компоненты EAServer могут подключаться к любым базам данных, снабженным драйвером ODBC или JDBC. Возможно также подключение к базе данных Sybase с помощью клиентской библиотеки Sybase Open Client. Более того, в составе EAServer даже поставляется «родное» подключение к СУБД конкурирующей фирмы (Oracle) через интерфейс Oracle Call Interface (OCI).
Имеющиеся в сервере EAServer средства для работы с Java 2 Enterprise Edition (J2EE) поддерживают компоненты EJB 2.0, приложения J2EE, приложения J2EE Web, кэширование объектов, почтовый API-интерфейс JavaMail, архитектуру подключаемых модулей, Java API для разбора XML и Java-службы аутентификации и авторизации.
EAServer поддерживает многие сетевые протоколы, в том числе упомянутый IIOP — стандартный протокол связи между CORBA-брокерами поверх TCP/IP. IIOP-подключения можно также туннелировать в рамках HTTP для подключения через межсетевые экраны, запрещающие IIOP-трафик. Tabular Data Stream — это частный протокол, используемый в двухуровневых приложениях баз данных для подключения к серверам баз данных или шлюзам Sybase. EAServer поддерживает HTTP, поэтому HTML-страницы и Java-апплеты можно размещать на самом сервере EAServer. Кроме того, сервер поддерживает протокол SSL (Secure Sockets Layer), реализующий безопасные подключения с помощью шифрования и алгоритмов аутентификации на базе технологий открытого ключа. Для управления SSL-сертификатами EAServer предоставляет графическое средство Security Manager.
Разработчикам предлагается создавать компоненты сервера EAServer с помощью инструментов Sybase PowerBuilder и PowerJ. Для динамического создания HTML-страниц и интерактивных форм в HTML-формате на сервере EAServer используются Java-сервлеты, Web-узлы PowerDynamo или страницы Java Server Pages. Поставляемый в составе EAServer инструмент PowerDynamo предназначен для разработки «тонких» клиентских Web-приложений. Для размещения на сервере EAServer сайтов на базе PowerDynamo не требуются никакие дополнительные средства.
Дополнительные функции
Управление сервером EAServer существенно упростилось благодаря усовершенствованным процедурам настройки и администрирования. В числе таких процедур можно назвать создание пулов экземпляров компонентов, управление транзакциями, создание пулов потоков и страниц свойств. Пулы экземпляров позволяют поддерживать кэш для созданных компонентов и при необходимости связывать их с клиентскими сеансами. Средство управления транзакциями позволяет назначать координатора транзакций (Shared Connection, Microsoft DTC или OTS/XA Transactions) и определять семантику транзакций в самом интерфейсе компонентов. Благодаря таким функциям, как кэширование страниц и объектов, упрощается настройка производительности приложений. Кэширование подключений позволяет компонентам на сервере EAServer совместно использовать пулы заранее определенных подключений к удаленному серверу базы данных. Это дает возможность избежать перегрузки, которая возникает, если каждый экземпляр компонента создает отдельное подключение.
В приложениях с тысячами клиентов предусмотрена возможность выполнять компоненты приложения на кластере серверов EAServer с несколькими избыточными серверами. EAServer поддерживает механизмы балансировки нагрузки, повышающие производительность кластера за счет перераспределения нагрузки между серверами на основании метрик загрузки, правил распределения или по случайному алгоритму. Можно также сконфигурировать компоненты, предусмотрев автоматический переход при сбое (failover), выполняемый незаметно для клиентских приложений. Механизм автоматического перехода при сбое, обеспечивающий для пары серверов локальное сохранение состояния компонентов «в памяти», позволяет избавиться от издержек, связанных с хранением этих данных в удаленной БД. Перечисленные особенности чрезвычайно важны для сервера приложений масштаба предприятия.
Имеющиеся в EAServer средства работы с сообщениями поддерживают спецификацию Java Message Service 1.0.2 для асинхронного обмена сообщениями. EAServer также поддерживает асинхронную обработку. Эта функция оказывается полезной, когда требуется выполнить операцию (например, сложное вычисление) в фоновом режиме, без взаимодействия с клиентом.
Web-приложения и функции можно размещать на EAServer, как на обычном Web-сервере. Можно установить на хосте подключаемый модуль (plug-in) "редиректора", который будет пересылать клиентские запросы непосредственно на Web-сервер. EAServer поддерживает декларативную систему безопасности, основанную на ролях. С ее помощью можно ограничить клиентские подключения и компоненты, доступные лишь для определенных клиентских сеансов. Кроме того, для ограничения межкомпонентных вызовов используется защита с применением идентификационных данных.
Направления развития
Когда писалась эта статья, разработчики готовили к выходу новую версию 4.1 сервера EAServer. Она должна оснащаться средством интеграции XML и Java, а также адаптерами для ПО Siebel, PeopleSoft и SAP R/3. В целом, по мнению автора, сервер EAServer — это надежный, гибкий и простой в освоении программный продукт, который может существенно укрепить позиции Sybase в борьбе за новый для компании рынок ПО для Интернета. Если в вашей организации применяются технологии Sybase, сервер EAServer определенно следует рассматривать в качестве предпочтительного варианта. Но даже тем, кто не входит в число приверженцев продукции Sybase, следует обратить внимание на широкий спектр возможностей EAServer.
Ганеш Вариар (Ganesh Variar) — ведущий аналитик в отделении Regence BlueCross/BlueShield в штате Орегон. С ним можно связаться по e-mail: ganesh_variar@yahoo.com |
Комментарий Sybase CISВ целом в настоящей статье доходчиво и с нашей точки зрения корректно освещены в первом приближении основные аспекты функциональности Sybase Enterprise Application Server. Естественно, в одной статье невозможно в полной мере представить все сферы применения и тонкости использования достаточно сложной технологии, поддерживающей множество разнообразных стандартов, какой является Sybase EAServer. Для того, чтобы в полной мере оценить отдачу от применения EAServer в конкретных системах, требуется хорошее знание возможностей трехуровневых архитектур. Поэтому хотелось бы сделать несколько добавлений и комментариев. Как совершенно справедливо отмечает автор статьи, EAServer используется при создании Интернет-приложений. Но этим сфера применения этого продукта отнюдь не ограничивается. EAServer — надежная платформа для любых крупномасштабных многоуровневых корпоративных систем. Из основных областей применения этого продукта необходимо отметить следующие:
На сегодня последняя версия продукта — Sybase EAServer 4.1.1, которая отличается в первую очередь встроенной поддержкой работы с Web-службами. Модуль Web Services Toolkit позволяет максимально автоматизировать построение и регистрацию интерфейса компонента в виде доступного для доступа по SOAP-протоколу Web-службы. Таким образом, разработчик получает возможность без дополнительного программирования, используя удобные графические утилиты, превратить имеющиеся компоненты в Web-службы для построения В2В-систем. Отмеченная в статье встроенная JMS-совместимая система корпоративных сообщений позволяет разработчику не только самостоятельно строить надежные асинхронные системы, но и использовать этот механизм в качестве транспортного уровня интеграционных серверов линейки Sybase New Era of Network, поддерживающих эту технологию наравне с IBM MQSeries, Microsoft Message Query Server и т. д. В заключение отметим, что отделение Sybase CIS позиционирует Enterprise Application Server как один из основных со стратегической точки зрения продуктов компании. По нашему мнению, продукт представляет интерес для компаний, разрабатывающих на заказ крупномасштабные многоуровневые корпоративные приложения, а также для компаний, самостоятельно разрабатывающих системы для собственных нужд. Владислав Дмитриев, заместитель технического директора Sybase CIS |