Web-службы вчера, сегодня, завтра
Алексей Федоров сотрудник отдела стратегических технологий российского представительства компании Microsoft (alexeif@microsoft.com).
За сравнительно недолгую историю своего существования Web-службы прошли путь от относительно простого механизма межплатформенного удаленного вызова процедур по протоколу HTTP до ядра новой архитектуры создания приложений архитектуры, ориентированной на службы (Services Oriented Architecture, SOA).
ачав со стандартов, которые теперь принято относить к стандартам Web-служб первого поколения SOAP (Simple Object Access Protocol), WSDL (Web Service Description Language), UDDI (Universal Description, Discovery and Integration Protocol), Web-службы пополнились и собственной архитектурой (Web Services Architecture, WSA) и обширным набором дополнительных стандартов и протоколов для решения таких задач, как гарантированная передача сообщений, обеспечение адресации, безопасность, передача вложенных данных и т.п. (краткое описание существующих сегодня стандартов см. в разделе «Основные стандарты Web-служб»).
Примитивные средства создания Web-служб превратились в мощные программные продукты, позволяющие визуально создавать и потреблять Web-службы, локально или удаленно управлять ими, выполнять мониторинг их активности и производительности.
Вопросы, связанные с обеспечением полной совместимости Web-служб, реализованных на различных платформах, выделились в особую категорию. Появилась даже специальная организация Web Services-Interoperability Organization (WS-I), отвечающая за создание профилей, описывающих принципы совместимых Web-служб. В настоящее время уже разработан базовый профиль (WS-I Basic Profile) для SOAP 1.1 и WSDL 1.0.
В данной публикации мы кратко рассмотрим базовые стандарты и технологии, используемые для создания Web-служб, и ознакомимся с основными стандартами Web-служб, разработанными в настоящее время.
Основы Web-служб
основе Web-служб лежат несколько простых принципов. Возможные для вызова команды описываются на языке WSDL; непосредственная активизация команд происходит в виде посылки SOAP-сообщений по адресу, где располагается Web-служба (используется стандартный протокол HTTP); для поиска Web-служб существуют глобальные или локальные (внутренние) каталоги, поддерживающие стандартные службы обнаружения UDDI. Не вдаваясь в технические подробности, можно отметить, что все современные средства разработки ведущих производителей поддерживают создание Web-служб, а программные платформы (будь то серверные операционные системы или серверы приложений) обеспечивают выполнение Web-служб.
В Web-службах везде используется язык XML. Он служит, в частности, для описания сообщений, которыми могут обмениваться Web-службы и их потребители. SOAP-сообщение это XML-документ, состоящий из трех базовых элементов: <Envelope>, <Header> и <Body>. Язык WSDL базируется на языке XML и позволяет создавать XML-документы, описывающие методы Web-служб, параметры методов, способы их вызова и т.п. Для того чтобы воспользоваться специализированными Web-службами в рамках механизмов обнаружения UDDI, следует составить SOAP-сообщения и интерпретировать возвращаемые XML-документы.
Жизненный цикл Web-службы можно условно разделить на три фазы: первая программирование и публикация, вторая поиск в каталоге, третья потребление из клиентского приложения (рис. 1).
Рис. 1. Жизненный цикл Web-службы
Поддержка на уровне средств разработки и программных платформ, относительная простота создания и использования Web-служб и практически повсеместная доступность Интернета привели к тому, что за короткий срок появилось множество Web-служб, позволяющих получать различные данные от прогнозов погоды и транспортных расписаний рейсов до курсов валют, котировок акций и даже гороскопов.
Некоторые примеры Web-служб представлены в табл. 1.
Таблица 1. Примеры Web-служб
Следует отметить, что, возможно, самой важной особенностью Web-служб является их независимость от платформы. Это означает, что Web-служба и ее потребитель могут быть реализованы практически на любой программной платформе, причем как сама служба, так и ее потребители могут быть реализованы на разных платформах минимальным требованием к потребителям является поддержка протокола HTTP и возможность программной обработки XML-документов.
По мере возрастания интереса к Web-службам появлялось все больше реализаций Web-служб для решения корпоративных задач; прежде всего Web-службы применялись для интеграции приложений, для обеспечения создания функциональных модулей в гетерогенных средах, для реализации уровней абстракции бизнес-логики от клиентских приложений и т.п.
Применение Web-служб в качестве основной технологии для создания корпоративных приложений привело к тому, что базовые протоколы и стандарты, удовлетворявшие требованиям разработчиков публичных Web-служб, оказались не слишком пригодными для решения задач, стоящих перед корпоративными программистами. В результате появилась масса дополнений и расширений базовых протоколов, ориентированных на растущие потребности к повсеместному использованию Web-служб.
Основные стандарты Web-служб
табл. 2 собрана информация об основных стандартах, связанных с Web-службами. Стандарты и протоколы сгруппированы по базовым функциональным группам передача сообщений, безопасность, надежность, транзакции, метаданные и бизнес-процессы. Получить полное описание вышеприведенных спецификаций можно на сайте Microsoft по адресу http://msdn.microsoft.com/webservices/understanding/specs/default.aspx.
Рис. 2. Распределение стандартов Web-служб по уровням
Таблица 2. Распределение стандартов Web-служб по уровням
Отметим, что различные компании по-разному обеспечивают поддержку стандартов в своих продуктах, средствах разработки и программных платформах. Например, компания Microsoft выпускает бесплатные программные компоненты под названием Web Services Enhancements, которые доступны для загрузки с Web-сайта компании, расположенного по адресу http://msdn.microsoft.com/webservices/downloads/default.aspx.
Вместо заключения
eb-службы все активнее проникают в область, уже занятую объектно-ориентированными и компонентными технологиями, представляя собой альтернативу традиционным подходам к созданию корпоративных приложений. В ближайшие годы можно ожидать серьезных инвестиций в технологии, связанные с Web-службами, развертываемыми и потребляемыми внутри компаний (согласно исследованиям IDC, к 2008 году объем рынка Web-служб превысит 11 млрд. долл.).
К тому же следует ожидать дальнейшего развития отечественных Web-служб (как бесплатных, так и коммерческих) и появления комплекса других служб, связанных с данной технологией. Возможно, это произойдет в рамках проекта «Электронная Россия», а возможно по инициативе некоторых крупных поставщиков услуг. Впрочем, каким образом это будет происходить, не так уж и важно важно то, что Web-службы уже пришли в Россию, и технологии их создания и потребления готовы к использованию.