Продолжается подписка на наши издания! Вы не забыли подписаться?

Web-сервисы и Java

Александр Цимбал

По ряду причин, среди которых чисто технические аспекты находятся отнюдь не на первом месте, термин «Web-сервисы» знаком решительно всем, кто следит за новостями компьютерной индустрии. Ведущие производители программного обеспечения, опережая друг друга, говорят о поддержке Web-сервисов. Это одна из самых модных тем при разговоре о современных технологиях создания программ. Вследствие этого, можно отказаться от традиционного «представления» объекта обсуждения. В качестве вступления нужно сказать несколько слов о взаимодействии Web-сервисов и Java.

Сначала нужно рассмотреть вопрос, почему в Java-технологиях уделяется большое внимание поддержке Web-сервисов – вплоть до включения технологий их использования в состав JDK? В конце концов, наибольшую активность при продвижении Web-сервисов проявляет Microsoft в рамках архитектуры .NET, и Microsoft же предлагает (на уровне готовых продуктов) большое количество расширений стандартов Web-сервисов, будущих стандартов Web-сервисов и совсем нестандартных возможностей Web-сервисов.

Поддержка Web-сервисов в Java построена совсем по иному принципу. Консорциум JCP (Java Community Process) в этой области занимается тем, что и всегда – а именно, созданием спецификаций универсального API, задачей которого является предоставления программисту возможностей по созданию переносимых (на уровне исходного и байт-кода) приложений, которые способны работать на разных платформах. Такой подход является оправданным потому, что со стандартизацией в Web-сервисах дело обстоит чрезвычайно интересным образом. Строго говоря, никаких стандартов применительно к технологиям, которые считаются «сердцем» Web-сервисов – SOAP, WSDL, UDDI – до недавнего времени (лето нынешнего года) не было вообще, и реализации создавались (и продолжают создаваться) на базе предварительных версий спецификаций. Поэтому наличие универсального API позволяет решать большое количество проблем при создании реальных приложений.

Еще одним важным обстоятельством является следующее: web-сервисы – не совсем обычная middleware-технология (web-сервисы позиционируются именно как middleware-технология, иначе не было бы огромного количества статей, показывающих преимущества web-сервисов над CORBA, COM+ и пр.). «Обычная» middleware-технология большую часть своего внимания уделяет созданию серверных приложений – именно там возникают самые серьезные и важные проблемы. Web-сервисы сами по себе этим вопросом не занимаются вообще. Их задача – обеспечить универсальный интерфейс к уже каким-то образом созданным серверным приложениям. Следовательно, разработчики создают эти серверные приложения, имея в виду в будущем позиционировать их как web-сервисы, но сами серверные приложения создаются с помощью CORBA, J2EE или .NET.

В настоящий момент Java (J2EE) предлагает, пожалуй, самые широкие возможности создания серверных приложений в распределенных системах и, вне всякого сомнения, является единственной универсальной платформой создания сложных и мощных серверных приложений в рамках гетерогенных систем.

Впрочем, Microsoft есть Microsoft (особенно вместе с Intel), поэтому большое число распределенных систем создается на «платформе Wintel» с использованием архитектуры NET. Такое положение вещей, по сути, определяет место Web-сервисов как комплекса технологий: их главное назначение – обеспечение интеграции информационных систем, созданных с использованием J2EE, NET, CORBA, RMI или чего-то еще. Поддержка Web-сервисов в Java позволяет писать переносимый код, который способен взаимодействовать с реализациями Web-сервисов от разных производителей и на различных платформах. Данная статья не адресована читателям, не представляющим себе жизни без использования абсолютно нестандартных и ни с чем не совместимых (вне платформы .NET) решений, представляемых Microsoft.

Реализации Web-сервисов

В настоящий момент существует большое количество программных инструментов, позволяющих создавать Web-сервисы и управлять ими:

В той или иной степени Web-сервисы поддерживаются уже сейчас в ряде продуктов фирм BEA, Borland, Iona, ORACLE и др.

Поддержка Web-сервисов является также составной частью стандартов J2EE 1.4 и EJB 2.1.

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

Условно можно выделить два конкурирующих технологических направления в поддержке web-сервисов: комплекс технологий .NET от Microsoft и Java-подход, адептами которого являются Sun, IBM, ORACLE, BEA и некоторые другие компании. Немного особняком стоит Borland – эта фирма создает средства разработки и для .NET, и для Java.

Простейшие серверное и клиентское приложения

Как уже говорилось, Web-сервисы как технология не оговаривают структуру или какие-либо особенности серверных приложений – за исключением того, что их функциональность должна быть доступна через Internet. Наряду с широким использованием протокола HTTP для передачи SOAP-сообщений это автоматически подразумевает использование 80-го порта TCP, Web-серверов и тех или иных технологических подходов, обеспечивающих расширение функциональности стандартных Web-серверов.

Если говорить о J2EE, то стандартом в нем стало создание серверных приложений с использованием EJB-компонентов и Web-компонентов, причем EJB-компоненты применяются, главным образом, для реализации бизнес-логики, а Web-компоненты – для создания презентационного слоя, т.е. создания представлений данных. Именно на уровне EJB- и Web-компонентов реализуются такие возможности, как поддержка объектных транзакций, обеспечение безопасности, формализация бизнес-процессов в системе и многое другое. Задача Web-сервисов – предоставить клиентам еще один канал доступа к информационной системе с использованием Internet. Очевидно, что наиболее естественным образом это можно сделать, используя Web-компоненты, т.е. сервлеты и документы JSP...

**Полный текст статьи можно найти в печатном варианте журнала

Copyright © 1994-2016 ООО "К-Пресс"