Технология Web-сервисов обеспечивает взаимодействие между приложениями, работающими на различных платформах, с помощью программных компонентов — Web-сервисов.
Web-сервисы — это программные компоненты, которые имеют интерфейс, описанный в формате, пригодном для компьютерной обработки, как правило — это WSDL-формат, и взаимодействие с которыми осуществляется согласно их WSDL- описанию с помощью сообщений, передаваемых обычно по HTTP-протоколу.
Web-сервис является ресурсом, который характеризуется URI-адресом. При этом интерфейс Web-сервиса представляет его абстрактную функциональность, а конкретная реализация интерфейса Web-сервиса обеспечивает отправку и получение сообщений при взаимодействии клиента с Web-сервисом.
Различные реализации интерфейса Web-сервиса по-разному реализуют его общую функциональность, предоставляя многообразие услуг в рамках одного сервисного набора.
Конкретную реализацию интерфейса Web-сервиса обеспечивает агент — программный компонент, осуществляющий отправку и получение сообщений и принадлежащий поставщику сервиса. Клиент, осуществляющий запрос к Web-сервису с помощью клиентского приложения, также именуемого агентом, называется потребителем сервиса.
Как было сказано, взаимодействие с Web-сервисом осуществляется с помощью обмена сообщениями. Для того чтобы такой обмен был успешным, его механизм должен быть определен для потребителя сервиса его поставщиком. Такое определение механизма обмена сообщениями обеспечивается WSDL-описанием Web- сервиса.
WSDL-описание Web-сервиса определяет формат сообщений, участвующих в обмене, тип передаваемых данных, протокол передачи сообщений и адреса доставки сообщений Web-сервису.
Архитектура XML Web-сервисов описывается набором моделей:
- Message Oriented Model — модель описывает сообщения Web-сервиса, включая структуру сообщений и механизм их доставки;
- Service Oriented Model — модель характеризует сервис, выполняемые действия при взаимодействии с сервисом, агентов поставщиков и потребителей сервиса, а также определяет метаданные, используемые для описания сервиса;
- Resource Oriented Model — модель описывает Web-сервисы как ресурсы, идентифицируемые URI-адресом, принадлежащие поставщикам сервиса и предоставляемые потребителям сервиса;
- Policy Model — модель описывает условия доступа к ресурсам.
Модель Message Oriented
Модель Message Oriented Model (MOM) описывает сообщения и их обработку, включая структуру сообщений, отношения между отправителем и получателем сообщений, а также механизм их передачи.
MOM определяет понятия адреса, политики доставки, сообщения, тела сообщения, корреляции сообщения, оболочки сообщения, модели обмена сообщениями Message Exchanage Pattern (MEP), заголовка сообщения, получателя сообщения, надежности сообщения, отправителя сообщения, последовательности сообщений, транспортировки сообщений.
Для того чтобы сообщение было доставлено получателю, необходим адрес доставки сообщения.
Формат адреса доставки сообщения зависит от механизма транспортировки сообщения. В случае HTTP-протокола передачи сообщений — это URL-адрес получателя.
Адрес доставки сообщения может содержаться в самом сообщении, как правило, в его оболочке.
Политика доставки — это условия доставки сообщения, которые могут заключаться в гарантиях доставки сообщения, его кодировке при передаче, формировании отчета о доставке и т. д.
Модель MOM определяет сообщение как единицу данных, передаваемую от одного агента другому. Структура сообщений определяется в WSDL-описании Web- сервиса.
Сообщение состоит из конверта (оболочки), одного или нескольких заголовков и тела сообщения. Конверт сообщения служит контейнером для его компонентов и может содержать информацию об адресе доставки сообщения. Заголовок сообщения содержит информацию о сообщении, относящуюся к системе безопасности, механизму транзакций, маршрутизации сообщения и т. д. Заголовок сообщения может обрабатываться независимо от самого сообщения, поэтому каждое сообщение может иметь различные заголовки, определяющие способы обработки тела сообщения. Тело сообщения содержит его контент или адрес соответствующего ресурса данных.
Клиент может вызывать Web-сервис с помощью простых HTTP-запросов GET и POST. В случае GET-запроса заголовок сообщения — это HTTP-заголовок, а параметры URL — это тело сообщения. В случае POST-запроса заголовок сообщения — это HTTP-заголовок, а тело сообщения — это передаваемые данные.
В ответ на HTTP GET- и POST-запросы XML Web-сервис передает клиенту сообщения в XML-формате.
Если клиент взаимодействует с Web-сервисом по SOAP-протоколу, тогда сообщения, участвующие в обмене, имеют SOAP-структуру, состоящую из конверта, заголовков и тела.
При обмене сообщениями с Web-сервисом устанавливается соответствующий контекст, в котором сообщение запроса ассоциируется с сообщением ответа, что важно в случае асинхронного обмена.
Обмен сообщениями с Web-сервисом регламентируется шаблоном Message Exchange Pattern (MEP), который определяет поток сообщений (последовательность) между агентами, включая обработку ошибок и связи между входящими и выходящими сообщениями.
Шаблоны MEP могут описывать обмен сообщениями не только с одним Web- сервисом, но и последовательности, в которых Web-сервисы взаимодействуют друг с другом.
Модель MOM определяет надежность и гарантированность сообщения как степень уверенности, что сообщение будет доставлено в необходимом порядке. Механизм надежности и гарантированности уменьшает ошибки и обеспечивает информацию о статусе доставки, делая возможным, в случае возникновения ошибки доставки, повторную отправку сообщения и восстановления его порядка доставки.
Модель Service Oriented
Модель Service Oriented Model (SOM) описывает сервис и действия.
Модель SOM определяет сервис как ресурс, представляющий возможность выполнения задач, реализующих функциональность, которая определена поставщиком сервиса. Чтобы сервис мог использоваться, он должен быть реализован хотя бы одним агентом.
Web-сервис, так же как и Web-ресурс, идентифицируется URI-адресом, однако главное отличие Web-сервиса от Web-ресурса в том, что Web-сервис необязательно должен иметь представление — данные состояния ресурса в общедоступных форматах XML, HTML, CSS, JPEG, PNG, получаемые с помощью метода HTTP GET.
Web-сервис имеет свое описание, которое представляет собой набор документов, подлежащий компьютерной обработке и содержащий описание интерфейса Web- сервиса и его поведения. Описание Web-сервиса может быть реализовано с помощью языка Service Description Language (SDL) в виде набора XML-документов.
Описание Web-сервиса может использоваться для его конструирования, развертывания, определения местонахождения, установления связи между агентами потребителя и поставщика сервиса.
Web-сервис ассоциируется с действиями, решающими определенные задачи, которые представляют функциональность сервиса. Модель SOM определяет действие как операцию, которая может быть выполнена агентом в результате получения или отправки сообщения или другого изменения состояния. Обычно действия реализуются путем выполнения фрагмента программы, представляющей агента получателя или отправителя сообщения.
Агент — это программа, исполняющая действия и реализующая потребителя или поставщика Web-сервиса.
Последовательность и условия, при которых сложная система взаимодействующих между собой агентов обменивается сообщениями, описываются хореографией Web-сервисов. Хореография Web-сервисов — это модель, описывающая последовательность операций, состояний и условий, контролирующих взаимодействие сервисов. Результатом такого взаимодействия является выполнение определенной задачи, которую решает поставщик сервиса перед его потребителем.
Хореография Web-сервисов может описываться языком Choreography Description Language (CDL), который определяет композицию сервисов, их роли и связи, а также управление состоянием системы связанных сервисов.
Последовательность и условия, при которых один Web-сервис вызывает другие Web-сервисы для решения конкретной задачи, определяются оркестровкой Web- сервисов.
Модель Resource Oriented
Модель Resource Oriented Model (ROM) описывает ресурсы.
Модель ROM определяет ресурс как объект, имеющий имя-идентификатор, свое представление и собственника, обладающего правом назначать политику ресурса, которая определяет правила взаимодействия с ресурсом.
Web-сервисы являются разновидностью ресурсов, которые имеют описание, пригодное для компьютерной обработки и содержащее идентификатор ресурса в виде URI-адреса. С помощью описания потребитель узнает о полезности ресурса и устанавливает связь с ним. Описание облегчает поиск и доступ к ресурсу, включая в себя информацию о местонахождении ресурса, способах доступа к ресурсу и политиках ресурса.
Как было сказано ранее, Web-сервисы — это разновидность ресурсов, отличающаяся от обычных Web-ресурсов тем, что Web-сервисы необязательно должны иметь свое представление — данные состояния ресурса, получаемые с помощью запроса HTTP GET.
Поиск описаний Web-сервисов может осуществляться с использованием специальных сервисов, отвечающих за публикацию и поиск описаний согласно определенным критериям. При статическом поиске описания Web-сервиса его потенциальный потребитель связывается с таким сервисом с помощью соответствующего программного обеспечения, например Web-браузера, и получает необходимое описание Web-сервиса. При динамическом поиске описания Web-сервиса агент потребителя сервиса напрямую обращается к специальному сервису для установки связи с агентом поставщика сервиса.
Передача описания Web-сервиса между поставщиком и потребителем сервиса может осуществляться и без специального сервиса — напрямую или с помощью других источников, таких как файловые системы, Web-сайты и др.
Модель Policy
Модель Policy Model описывает политики сервиса, представляющие собой ограничения на допустимые действия или состояния агентов или их собственников.
Политики могут определять ограничения относительно доступа к ресурсам/состояний ресурсов или возможных действий/состояний агентов поставщиков или потребителей сервисов.
Политики могут быть двух типов:
- политики разрешений;
- политики обязательств.
Политика разрешений позволяет агентам выполнять определенные действия, иметь доступ к определенным ресурсам, достигать определенного состояния.
За выполнением политики разрешений следит механизм защиты разрешений, гарантирующий соответствие использования сервиса — политики, установленной поставщиком сервиса.
Политика обязательств выдвигает требования для агентов исполнять определенные действия или достигать определенных состояний.
За выполнением политики обязательств следит механизм аудита, проверяющий выполнение обязательств, установленных поставщиком сервиса.
Политики могут иметь описание в формате, пригодном для компьютерной обработки. Описание политики определяет ее и используется для решения применения политики к конкретной ситуации.