Статья только в электронной версии журнала

Статья только в электронной версии журнала

     BEA и Systinet поднимают уровень абстрагирования при разработке, используя максимум возможностей

Технология Web-сервисов стала универсальным клеем для соединения компонентов больших распределенных систем. На этом фронте наблюдается огромный прогресс, и два новых инструмента, выпущенных компаниями Systinet и BEA Systems, по существу реализуют максимум возможностей протокола SOAP 1.1 (Simple Object Access Protocol).

Поставляемые с марта этого года сервер WASP (Web Applications and Services Platform) Server for Java 4.5 корпорации Systinet и его дополнение WASP Developer 4.5 предоставляют наиболее исчерпывающий набор средств для разработки, обеспечения безопасности и управления Web-сервисами среди всех известных eWeek Labs продуктов. В свое время мы высоко оценили его версию 4.0, присудив ей титул "Выбор аналитика"; того же заслуживает и обновленная версия 4.5.

Продукт же WebLogic Workshop 2.0 фирмы BEA (пока существующий лишь в бета-версии, бесплатно загружаемой для пробного использования с сайта www.bea.com) ориентирует разработку Web-сервисов - а пожалуй, и всю Java-разработку Web-приложений - на совершенно новое направление.

Уникальной чертой BEA WebLogic Workshop (сверху) является самая современная среда визуального программирования. WASP Developer (ниже слева) тесно интегрируется в Sun ONE Studio, позволяя генерировать прямо из IDE Web-сервисные упаковщики классов

Его модель визуального программирования, списки параметров на базе XML и всеобъемлющая интеграция Web-сервисов чрезвычайно облегчают создание сложных приложений на основе Web-сервисов, включая организацию очередей сообщений и асинхронное взаимодействие компонентов.

Однако приложения Workshop могут работать только на сервере приложений BEA WebLogic. К тому же высокоуровневый подход продукта BEA может оказаться не по душе опытным Java-разработчикам, пишущим приложения WebLogic, хотя и понравится дизайнерам Web-страниц и создателям Web-сценариев, редко имеющим дело с программированием на базе сервера Java-приложений.

Тем, кто использует интегрированные среды Java-разработки (Java IDE), понравится Java-центрическая модель данных продукта Systinet и его рабочий цикл, включающий этапы генерации заглушек, развертывания и тестирования. Те же, кто пользуется ПО типа Studio MX фирмы

Независимые компании создают ПО, контролирующее работоспособность Web-сервисов

Поскольку Web-сервисы занимают все большее место в технологической инфраструктуре бизнеса, неизбежно встает вопрос о производительности и надежности их серверных систем. И здесь, очевидно, требуются те же подходы, благодаря которым центральные серверы баз данных и серверы каталогов работоспособны на уровне в 99,99 или 99,999%. Без надежной круглосуточной работы и достаточной быстроты отклика Web-сервисы вряд ли смогут сыграть положенную им роль.

Управление производительностью, что и говорить, давно является ахиллесовой пятой вообще всех серверов приложений. Из четырех лидирующих по доле рынка серверов приложений - BEA WebLogic Server фирмы BEA Systems, IBM WebSphere, Oracle9i Application Server корпорации Oracle и Sun ONE Application Server компании Sun Microsystems - лишь WebSphere допускает нечто большее, чем поверхностные, в основном межсерверные, замеры качества обслуживания.

Tivoli Performance Viewer, входящий в пакет WebSphere, позволяет увидеть детальную статистику использования системы и ее времен отклика - вплоть до уровня отдельного объекта - и запротоколировать эти данные в дисковом файле для исторического анализа.

Существующий пробел в области управления собираются заполнить независимые компании. В качестве примера можно привести продукт Cyanea/One корпорации Cyanea Systems - инструмент динамического управления WebSphere, а с недавних пор и BEA WebLogic.

Cyanea/One отслеживает загрузку процессоров на уровне отдельных методов, частоту вызовов объектов, общее использование динамической зоны серверной памяти, утилизацию освобождаемой памяти и доступность системы. Для исторического анализа ведется журнал статистики, причем имеется возможность межсерверного группирования данных для отображения производительности серверных ферм.

Cyanea/One обладает интересной возможностью генерировать исключительные события во время работы любого приложения. Это позволяет разблокировать ресурсную "пробку", не останавливая другие приложения или весь сервер приложений. ПО может делегировать административные задачи на основе задаваемых административных ролей с различным уровнем доступа. Агент программного пакета работает под несколькими вариантами Unix, Windows и OS/390.

В этой новой области уже появился целый ряд конкурирующих продуктов, например PerformaSure фирмы Quest Software, Introscope фирмы Wily Technology, Core Manager компании Confluent Software и Blue Titan Network Director производства Blue Titan Software.

Тимоти Дик

Macromedia или пишет на языках более высокого уровня, скажем Visual Basic, оценят ориентацию Workshop на высокую скорость разработки, а также почти полное отсутствие повторов модельного кода.

Первопроходцами в использовании технологии Web-сервисов были создатели инструментальных средств и языков разработки, теперь к ним присоединяются провайдеры данных.

Все крупные СУБД уже включают модули расширения, обеспечивающие поддержку SOAP-запросов, а к следующему году в этих продуктах появится и интегрированная поддержка языка запросов на базе XML - естественного дополнения SOAP, который сам основан на XML.

То же самое происходит с пакетными приложениями, демонстрирующими отрадную тенденцию отхода от фирменных, языково-ориентированных API в сторону Web-сервисов.

Хотя впереди еще видится немало трудностей, SOAP и XML уже являются ведущими технологиями для интеграционных проектов обмена данными по типу "один ко многим", особенно в относительно небольших или молодых компаниях, не инвестировавших в EDI (унаследованные формы электронного обмена данными), или в тех фирмах, где масштаб интеграционного проекта оказывается столь велик, что плохо вяжется с громоздкостью EDI.

Скажем, телекоммуникационная компания T-Mobile International применяет Web-сервисы для объединения служб доставки контента своим пользователям мобильных телефонов, для интеграции сопутствующей информации по биллингу и связи абонентов с провайдерами контента. Другим примером (по масштабу его почти что можно отнести к проектам взаимодействия "бизнес - покупатели") является фирма Amazon.com, использующая C++-ориентированный сервер Systinet для предоставления доступа к своему каталогу и к API обработки заказов многочисленным компаньонам сайта Amazon.com, торгующим товарами Amazon через собственные Web-сайты.

Облегченный, простой, вездесущий, дружественный к Web и тщательно проверенный протокол SOAP хотя и не достиг полной "взрослости", но достаточно созрел для того, чтобы на него можно было положиться в практике бизнеса. И такие продукты, как WASP и WebLogic Workshop, - еще одно доказательство огромного потенциала нынешней версии SOAP.

WASP Server и Developer

Первое, на что мы обратили внимание в eWeek Labs при проверке WASP Server for Java и WASP Developer, были их возможности взаимодействия с другими продуктами - как в смысле средств и серверов, с которыми они совместимы, так и в смысле их способности обмениваться информацией Web-сервисов с другими серверами.

Пакет может найти применение в смешанной среде Microsoft .Net и Java или служить встроенным компонентом кросс-платформного приложения. Systinet WASP прекрасно совместима с .Net, благодаря чему мы могли задействовать в нем сложные типы объектов, например коллекции HashSet и ArrayList.

РЕЗЮМЕ ДЛЯ РУКОВОДИТЕЛЕЙ

Systinet WASP Server for Java 4.5

BEA WebLogic Workshop 2.0 beta

Поддерживает все популярные серверы Java-приложений и средства Java-разработки; поддерживает транспорт посредством HTTP, электронной почты, файлов и очередей сообщений; сильные функции безопасности; аутентификация через Active Directory и передача сложных объектов для Web-сервисов .Net; удаленное соединение объектов с помощью SOAP.

Высокий уровень интеграции среды разработки Web-сервисов, включающей (новинка последней версии) конструирование Web-форм; поддержка синхронных и асинхронных Web-сервисов.

Работает только с Java и требует прочных навыков использования Java (версия для C++ продается отдельно).

Для работы сгенерированных приложений необходим BEA WebLogic Server; не поддерживается непосредственное создание сеансовых или объектных EJB.

РЕЗЮМЕ

Systinet WASP Server for Java 4.5 WASP Server и дополняющие его средства разработки являются первоклассным пакетом для управления Web-сервисами на базе Java, совместимым со всеми главными серверами Java-приложений. Система обеспечивает высший уровень поддержки Web-сервисов и легко интегрируется в существующие Java-проекты. Новая версия дополнена многочисленными возможностями взаимодействия и заслуживает пристального внимания организаций, использующих .Net и Java.

ЦЕНОВОЙ АНАЛИЗ Systinet WASP Server очень недорог - для однопроцессорных систем продукт бесплатен, а за каждый лишний процессор обойдется в $2000. Инструменты разработки тоже бесплатны.

КРАТКИЙ СПИСОК ПРОВЕРЯВШИХСЯ АНАЛОГОВ

- Встроенные средства поддержки Web-сервисов, которыми оснащены Java IDE ведущих производителей - Borland, IBM и Sun 

www.systinet.com/products/wasp_jserver/overview

 

 

BEAWebLogicWorkshop предоставляет Java-разработчикам простую в использовании и хорошо интегрированную среду разработки Web-сервисов. Новая версия значительно расширяет сферу применения продукта, включая конструирование Web-форм и бизнес-логики, однако не рассчитана на запросы разработчиков EJB. Пользователи BEA WebLogic Server получат огромный выигрыш в продуктивности своих разработок.

ЦЕНОВОЙ АНАЛИЗ Сам инструмент WebLogic Workshop (лицензируемый по системе подписки) очень недорог. Но необходимость в одновременном развертывании WebLogic Server потребует затрат в десятки тысяч долларов. Если компания не имеет или не планирует приобрести WebLogic Server, ей вряд ли нужен Workshop.

КРАТКИЙ СПИСОК ПРОВЕРЯВШИХСЯ АНАЛОГОВ

- Общеизвестные средства Java-разработок

- Microsoft Visual Studio .Net

     - Studio MX фирмы Macromedia 

www.bea.com/framework.jsp?CNT=index.htm&FP=/content/products/work

Еще два нововведения в WASP - интеграция с Active Directory (и, значит, интеграция списков контроля доступа) и поддержка протокола Direct Internet Message Encapsulation, служащего приложениям .Net для присоединения к сообщениям SOAP двоичных объектов.

WASP также способна обеспечивать аутентификацию, используя собственный внутренний справочник или справочник LDAP. Пользователи могут аутентифицироваться по паролю, по сертификату X.509, через Simple Public Key Mechanism, а также по таким схемам аутентификации, как HTTP Basic, HTTP Digest, Secure Sockets Layer, Kerberos и цифровые подписи SOAP (применяются в Web Services-Security).

Платформа WASP поддерживает транспортные протоколы HTTP и HTTP Secure, но одновременно может применять для отправки и приема SOAP-сообщений электронную почту, файлы и очереди сообщений. Обеспечивает она и поддержку продвинутых Java-возможностей, в том числе опции для создания удаленного объекта с конкретными параметрами (instantiation) и прозрачного доступа к нему с помощью SOAP (вместо явных удаленных вызовов процедур к Web-сервису). Функция Remoting автоматически добавляет к SOAP-сессиям заголовки сеансов, что гарантирует прозрачное поддержание соединения между клиентским и серверным объектами с синхронизацией их состояний. Такую автоматическую обработку состояния eWeek Labs до сих пор встречала только в BEA WebLogic Workshop.

Кроме того, эта платформа существенно дороже WASP, хотя это так и должно быть, поскольку большинство серверов приложений сегодня снабжены встроенными Web-сервисными функциями. Для однопроцессорных систем WASP Server for Java предлагается бесплатно, а за каждый лишний рабочий процессор надо заплатить $2000. WASP Developer первое время будет бесплатным. Учитывая наличие функций мониторинга, замеров производительности и, согласно спецификации продукта, тонко детализированных функций безопасности (существенно лучших, чем предлагают производители Java-серверов или Microsoft), мы думаем, что WASP полностью оправдает все затраты.

WASP Server совместим со всеми крупными (и некоторыми средними) Java-серверами приложений, к тому же может работать в автономном режиме.

Нам бы только очень хотелось, чтобы сервер не был ориентирован исключительно на Java, а позволял бы также разворачивать Web-сервисы на базе .Net. (Заметим, что Systinet параллельно продает WASP Server for C++.) WASP Developer подключается к пяти главным средам Java-разработки: JBuilder корпорации Borland Software, WebSphere Studio Application Builder и Eclipse производства IBM, а также Sun ONE Studio и NetBeans фирмы Sun Microsystems.

В наших тестах использовалась среда Sun ONE Studio 4 Enterprise Edition. WASP Developer добавляет контекстные меню и собственные объекты непосредственно в дерево объектов Sun ONE Studio (см. рисунок). Чтобы сгенерировать упаковщик Web-сервисов для наших собственных классов, нам лишь понадобилось несколько раз щелкнуть мышью и выбрать методы, которые требовалось опубликовать.

Помимо этого разработчики могут генерировать из WSDL-файла (Web Services Description Language) заглушки для приложений на стороне клиента, выбирая способ доступа к возвращаемым данным - с получателями (getters) и установщиками (setters) или через Java-структуры. WASP Developer полностью поддерживает стандарт UDDI (Universal Description, Discovery and Integration).

WebLogic Workshop

Разработка бета-версии WebLogic Workshop 2.0 свидетельствует о том, что фирма BEA намерена серьезно состязаться с IBM, Sun и Microsoft, которые предлагают полные комплекты средств разработки под стать функциям своих серверов приложений. Эта версия продукта BEA появилась в начале марта, а выпуск его окончательного кода намечен на II квартал.

Единственный способ заполучить Workshop - стать подписчиком по программе распространения средств разработки BEA. Компания рассылает разработчикам копии всех своих инструментов или серверов за ежегодную плату соответственно в $599 или $4659. В программу старшего уровня дополнительно входит JBuilder WebLogic Edition производства Borland - неявный намек на то, что Workshop не обеспечивает всю функциональность, которая может понадобиться разработчикам WebLogic.

Хотя Workshop автоматически формирует многочисленные модули EJB (Enterprise JavaBeans), продукт не позволяет программисту непосредственно создавать сеансовые или сущностные EJB. Дело в том, что Workshop действует на более высоком уровне абстракции и не раскрывает внутренний механизм работы платформы Java 2 Enterprise Edition.

Workshop, как и WASP Developer, может взаимодействовать с .Net и передавать сложные типы данных (например, коллекции). К тому же он представляет собой идеальное средство для быстрой разработки Web-сервисов. Его визуальная среда позволяет четко видеть, какие параметры передаются в и из Web-сервиса и какие переменные объявляются локально (см. рисунок). Система широко использует комментарии Javadoc в качестве метаданных для своего прекомпилятора, и это экономит колоссальное количество строк шаблонного кода.

Код наших методов практически содержал только чистую бизнес-логику (если не считать необходимости объявлять переменные). Очереди или асинхронное взаимодействие поддерживаются заданием атрибутов методов; параметрическое присвоение XML-имен и упорядоченность контролируются через XML-шаблон, создаваемый для каждого метода на основе его Java-параметров.

В числе приятных мелочей отметим, что редактор кода с фоновой Java-компиляцией автоматически подчеркивает красной волнистой линией синтаксические ошибки.

В новой версии Workshop теперь можно создавать внешний Web-интерфейс к внутренним данным при помощи JSP (Java Server Pages). Продукт широко использует возможности библиотек JSP-тегов для создания управляющих элементов, связанных с данными, которые во время выполнения программ динамически генерируют соответствующий HTML-код. Генерируемые приложения базируются на архитектуре MVC (Model-View-Controller), которая на глубинных уровнях использует прикладную инфраструктуру Struts разработки The Apache Software Foundation.

Workshop уделяет особое внимание поддержке портального сервера и сервера интеграции данных BEA, играющих соответственно роль целевого типа приложений и целевого источника внутренних данных.