Сейчас с уверенностью можно констатировать, что ситуация, связанная с Web-службами, характеризуется крайней неопределенностью и поэтому предложить взвешенное мнение о сути этого явления еще предстоит. Необходимо какое-то время, чтобы появился сухой технологический остаток, необходимый для обсуждения в том строгом виде, который принят в нашем издании. Публикуемая подборка — первый шаг на этом пути.
Сочетание слов «Web» и «службы» не оригинально. Оказание тех или иных услуг через Сеть и было сверхзадачей неудавшейся революции «доткомов». Порталы, например, Yahoo! предоставляют возможность получать информацию о погоде, карты местности, осуществлять бронирование и платежи, но это тип службы, предоставляемый одной компанией, а в современном представлении о Web-службах мыслится интеграция, в форме слабо связанных (loosely coupled) приложений от разных производителей.
Может быть именно переосмысление ошибок, допущенных жертвами первой Web-революции, и побудило компанию Hewlett-Packard к порождению «новой парадигмы» Web-служб, когда ею менее двух лет назад был дан старт инициативе e-services. Однако наиболее громогласно в гонке стартовала Microsoft, когда в июне 2000 года объявила платформу .NET, часто рассматриваемую как заявку на монополизацию Web-служб нового поколения. Вслед за ней еще несколько фирм объявило о своих альтернативных подходах. В ноябре того же года IBM анонсировала свою программу развития Web-служб и включения SOAP, UDDI и WSDL в свои продукты. Затем в начале 2001 года с близкими по своей идеологии инициативами выступили Sun Microsystems и Hewlett-Packard. Первая назвала свою платформу/программу Sun Open Network Environment (Sun ONE), а вторая — HP Netaction Internet Operating Environment (IOE). Поспешность, с которой они это делали, явно свидетельствует, что компаниями руководствовало стремление не упустить инициативу и ощущение угрозы для себя со стороны «Windows в платье Internet».
В результате совместных маркетинговых усилий всех соучастников процесса атмосфера вокруг Web-служб оказалась чрезмерно перегрета. Статус-кво Web-служб может быть иллюстрирован графиком, который эксперты из Giga Group представили на конференции HP Software Universe, прошедшей в ноябре в Монако. Если верить их прогнозам, то соотношение шума (hype), создаваемого вокруг этой концепции, и реальному процессу распространения Web-служб в ближайшие пять лет будет выглядеть так, как показано на рис. 1. Слово «если», использовано потому, что это график носит чисто иллюстративный характер. По ординате откладывается скорее качественная оценка, чем количественная, а, кроме того, на протяжении последнего десятилетия мы были свидетелями нескольких шумных кампаний, оставшихся в памяти исключительно благодаря своей силе, а не последствиям.
Рис. 1. Giga Group: кривые «хайпа» и внедрения пересекутся в 2002 году |
Кривая hype напомнит классическую кривую динамики переходного процесса, обладающего заметной инерционностью. Показательно, что с кривой адаптации она пресечется не ранее, чем через год, а пока мы вынужденно находимся на отрезке с наибольшим разрывом между шумом и практикой, со всеми свойственными ему издержками. Благодаря этому разрыву, Web-службы попали в разряд наиболее плохо определенных (ill defined) технологий.
И все же за Web-службами будущее. Прежде всего, потому что наличие сферы услуг есть один из критериев зрелости технологии. Хотим мы признавать или нет, но современное состояние ИТ при всей высоте отдельных «высоких» технологий нельзя не рассматривать, как переходный этап от кустарного производства к этапу индустриальному, поскольку именно наличие рынка услуг, подкрепленного развитыми стандартами, и есть главное свидетельство развитости той или иной индустрии. История самых разных технологий подтверждает, что по мере развития того или иного производства возрастает роль сопровождающих его услуг. Например, сфера услуг отсутствовала в эпоху натурального хозяйства, зато она составляет львиную долю рынка в современном постиндустриальном обществе. Поэтому с методологической позиции появление сетевых услуг стоит признать вполне закономерным явлением.
Peer-to-peer и Web-службы
Одно из наиболее интересных и пока стоящих особняком решений — проект JXTA, разрабатываемый в Sun ее ведущим идеологом Биллом Джоем и Майком Клэри. JXTA был задуман как средство для адаптации технологии распределенных вычислений к одноранговой (p2p — peer-to-peer) топологии. Главная задача, которую ставили перед собой его создатели — разработка компонентов и служб, обеспечивающих распределенный доступ к приложениям. Проект привлек к себе заметное внимание.
Название проекта JXTA берет свое начала от приставки juxta-, указывающей на близость взаимного расположения, например, juxtapoze или juxtsposition, соответственно обозначают «бок о бок» и «соприкосновение», «наложение».
Средствами JXTA между собой смогут взаимодействовать любые цифровые устройства, включая серверы, персональные компьютеры, цифровые персональные органайзеры или даже сотовые телефоны. Для того чтобы устройство вошло в JXTA, т. е. стало «пэром» (в данном случае «peep» понимается как «равный среди равных»), оно должно быть подключено к любой сети, например, IP, Bluetooth, или Havi.
Идеи одноранговости присутствуют и в стратегии HailStorm, являющейся частью Microsoft .Net и совсем недавно переименованной в .NET My Services. HailStorm, в конечном счете, является набором технологий на основе XML, обеспечивающим замысел, который в Microsoft называют пользовательско-центричными вычисления (usercentric сomputing). Если JXTA — это попытка реализовать взаимодействие на равных между устройствами в сети в подлинном смысле, то в HailStorm «равные между» подключаются к серверам. Таким образом, складывается схема независимая от типа устройств схема взаимодействия, подобная p2p, но с централизованной пользовательской базой и централизованной аутентификацией.
Web-службы = SOAP + UDDI + WSDL+ WSFL
C целью выработки стандартов, которые бы позволили им придать новую жизнь своим продуктам средствами Web-служб, Microsoft и IBM создали «союз двоих». Надо отдать должное обоим участникам союза, они сумели создать базис для основополагающих стандартов, на которых основываются все современные представления о Web-службах, — SOAP, UDDI и WSDL. Протоколы, стандарты и языки, разработанные на основе XML, признаются всем участниками гонки вне зависимости от того, к какому лагерю они принадлежат. Группу интеграционных протоколов, предложенных к сегодняшнему дню, можно представить в виде стека (перечисление от верхних уровней к нижним):
- Web Services Flow Language (WSFL);
- Universal Description, Discovery & Integration (UDDI);
- Web Services Description Language (WSDL);
- Simple Object Access Protocol (SOAP), который кое-кто из авторов вполне резонно предлагают переименовать в Services Oriented Architecture Protocol;
- Extensible Markup Language (XML);
- Общие Internet-протоколы (TCP/IP, HTTP и т. д.).
Нижние три относятся к «ядерной» или базисной группе (Core), а верхние три — к группе «распространения» (Emerging). Стек открыт сверху и может пополняться новыми, еще не определенными пока протоколами, которые могут появиться в близком будущем.
Приведем предельно простой пример взаимодействия перечисленных протоколов. Жизнь той Web-службы, которая будет создана когда-нибудь, начинается с того, что поставщик службы выводит ее во внешний мир, используя ту или иную платформу, принятую им для разработки. В сопутствующем службе документе на языке WSDL автор описывает его в терминах двух сообщений — посылаемого и получаемого. Каждое из этих сообщений содержит внутри себя спецификацию набора операций, необходимых для вызова этой службы и параметров, которые следует ему передать.
Затем новая служба фиксируется в некотором регистре, построенном по протоколу UDDI, он позволяет самим авторам публиковать и редактировать службы, а пользователи с его помощью могут осуществлять поиск и выборку требуемых им служб. Обнаружив нужную ему службу по сопровождающему ее описанию на языке WSDL, пользователь может создать адресованное службе сообщение в соответствии со следующим стандартом SOAP, которое стимулирует собственно вызов. Интерфейс, созданный на основе SOAP, позволяет службе самой транслировать входное сообщение в его внутренне представление, а по выполнении функции выполнить обратное преобразование и возвратить результаты.
Оптимистический вывод
Спекулятивный подход к распространению знаний и информации на начальном этапе новой технологии сформулирован и рекомендован в одном из десяти правила Гая Кавасаки, автора катехизиса современного бизнеса. Правило звучит примерно так: «Сначала продавай, потом объясняй». Не вполне честно, но зато эффективно. Жизнь показывает, что те, кто следует правилам Кавасаки, обычно не остаются в проигрыше.