«диалекте» языка XML (eXtensible Markup Language), а именно WSDL (Web Service
Description Language). Другие программные системы могут взаимодействовать с веб-
сервисами согласно этому описанию посредством сообщений, основанных на другом
«диалекте» XML - SOAP, и передаваемых с помощью интернет-протоколов (обзор
технологий веб-сервисов можно найти, например, в [5]). В интернет-магазинах, например,
веб-сервисы, которые могут быть реализованы на географически далеко удаленных друг
от друга серверах, могут обеспечивать ведение счетов, контроль наличия товаров на
складе, составление «корзины» покупателя и службу авторизации кредитной карты.
Каждая из этих функций может быть многократно вызвана в ходе одной покупки.
Веб-сервисы предоставляют детальную информацию об их функциях и о интерфейсах, но
не о деталях реализации и платформе; таким образом клиент и сервис, которые
поддерживают общие протоколы коммуникации, могут взаимодействовать независимо от
платформ, на которых они выполняются или языков программирования, на которых они
написаны. Это делает веб-сервисы особенно подходящими для распределенной
гетерогенной среды.
Ключевыми спецификациями, используемыми веб-сервисами являются:
XML - язык разметки для того, чтобы обмениваться структурированными данными;
SOAP – основанный на XML протокол для спецификации содержания сообщений,
служебной «обертывающей» информации («конверт сообщения») и информации ,
необходимой для правильной обработки сообщений;
WSDL (Web Services Description Language - язык описания веб-сервис) –
основанный на XML, используемый для описания атрибутов, интерфейсов и других
свойств веб-сервис. Документ WSDL используется потенциальным клиентом,
чтобы узнать о сервисе и способах обращения к нему.
Хотя веб-сервисы, вообще говоря, могут использовать разные транспортные протоколы, и
даже могут предлагать клиентам выбор, самым распространенным является SOAP поверх
протоколов HTTP или HTTPS. Это важно поскольку использование HTTP и HTTPS
обычно не вызывает проблем с обходом систем сетевой защиты в организациях, которые
разрешают двунаправленный трафик HTTP.
1.4.3.2.5 Веб-сервисы и SOA
SOA и веб-сервисы являются «ортогональными» понятиями: сервисная ориентация – это
архитектурный стиль, а веб-сервисы - технология выполнения. Они, конечно, могут
использоваться совместно – как это часто и случается, но они взаимно независимы.
Например, хотя принято считать , что SOA предназначена для распределенных систем,
она может использоваться и для одиночных компьютеров, когда сервис соответствует
индивидуальным процессам с четкими интерфейсами, которые взаимодействуют
используя внутренние каналы связи, или для кластера персональных компьютеров, где
они могли бы общаться посредством высокоскоростной локальной сети.
Аналогично, веб-сервисы хорошо подходят в качестве строительных блоков SOA-среды,
но в их определении нет ничего, что обязательно требует воплощение принципов SOA.
Хотя отсутствие состояний зачастую рассматривается как ключевая характеристика веб-
сервис, нет никаких технических причин, по которым они обязательно должны быть без
состояний – это определяется выбором разработчика и архитектурным стилем среды, в
которой сервис должен работать.
1.4.3.2.6 Веб-сервисы и виртуализация
Легкость, с которой веб-сервисы могут быть реализованы и возможность обращаться к
ним локально или удаленно и независимо от платформы на которой работает клиент,
привела к тому, что они были широко приняты администраторами систем как «агенты
виртуализации», которые обеспечивают общие интерфейсы управления к различным
ресурсам. Например, веб-сервиса может быть спроектирована так, чтобы "представлять"
24