Определение сервиса и его привязка к протоколам в WSDL

После задания наборов операций, поддерживаемых веб-сервисом необходимо определить способы его взаимодействия с клиентами. Таким образом, необходимо задать привязку на протоколы общения. Привязки задаются для типов портов с помощью элемента <binding>. Сама привязка задается с помощью элементов расширения для различных протоколов:

<wsdl:binding name="nmtoken" type="qname">

<!-- Элемент расширения (1) -->

<wsdl:operation name="nmtoken">

<!-- Элемент расширения (2) -->

<wsdl:input name="nmtoken">

<!-- Элемент расширения (3) -->

</wsdl:input>

<wsdl:output name="nmtoken">

<!-- Элемент расширения (4) -->

</wsdl:output>

<wsdl:fault name="nmtoken">

<!-- Элемент расширения (5) -->

</wsdl:fault>

</wsdl:operation>

</wsdl:binding>

 

Элементы расширения задаются для каждого протокола и содержат необходимую для него информацию. Например, привязка типа порта, описанного выше, на протокол SOAP версии 1.2 будет выглядеть следующим образом:

<wsdl:binding name="WebShopSoap12" type="tns:WebShopSoap">

 

<soap12:binding transport="http://schemas.xmlsoap.org/soap/http"/>

 

<wsdl:operation name="GetCatalogs">

 

<soap12:operation

soapAction="http://www.mephi.ru/order/GetCatalogs"

style="document" />

 

<wsdl:input>

<soap12:body use="literal" />

</wsdl:input>

<wsdl:output>

<soap12:body use="literal" />

</wsdl:output>

</wsdl:operation>

 

<wsdl:operation name="GetGoods">

 

<soap12:operation

soapAction=”http://www.mephi.ru/order/GetGoods”

style="document" />

 

<wsdl:input>

<soap12:body use="literal" />

</wsdl:input>

<wsdl:output>

<soap12:body use="literal" />

</wsdl:output>

</wsdl:operation>

 

</wsdl:binding>

 

В элементе <binding> указывается имя привязки и затем используемый в этой привязке тип порта. Таким образом, для любого типа порта можно задать множество привязок на различные протоколы.

Как уже говорилось выше, в рассматриваемом примере осуществляется привязка на протокол SOAP, поэтому все рассматриваемые элементы расширения являются специфическими именно для этого типа привязки. В первом элементе расширения <soap12:binding> указывается тип транспорта для выбранного протокола, который определяется самими элементами расширения посредством пространства имен (soap12). Для каждой операции из привязываемого типа порта указывается адрес, по которому она может быть вызвана и способ организации взаимодействия (document или RPC). Для сообщений операции задается кодировка, в которой это сообщение будет передаваться по транспортному протоколу. В данном случае это буквенная кодировка.

После того, как определены привяки веб-сервиса можно приступить к финальной части его описания – определению портов и объединению их в сервис. Определение порта, использующего созданную ранее привязку, выглядит следующим образом:

<wsdl:port name="WebShopSoap12" binding="tns:WebShopSoap12">

<soap12:address

location="http://www.mephi.ru/order/WebShop.asmx"/>

</wsdl:port>

 

Для порта определяется имя привязки, на которую он ссылается, и имя порта, которое является уникальным в рамках всего документа. В качестве дочернего элемента порта определен один элемент расширения, который содержит адресную информацию о точке доступа к порту.

Порты объединяются в сервисы с помощью элемента <service>, который является для них родительским элементом. В WSDL документе могут быть определены несколько сервисов, которые в свою очередь группируют порты. Таким образом, элементы <service> позволяют клиентскому приложению, использующему веб-сервис, выбирать нужную категорию операций для различных видов взаимодействия. Группировка может осуществляться, например, по используемым протоколам или по стилю взаимодействия.








Дата добавления: 2015-02-28; просмотров: 842;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.007 сек.