Определение типов портов в WSDL

После определения сообщений веб-сервиса, необходимо задать операции, их обрабатывающие. Для приведенных выше сообщений можно задать следующую операцию:

<wsdl:operation name="GetCatalogs">

<wsdl:documentation>

Получить список каталогов

</wsdl:documentation>

<wsdl:input message="tns:GetCatalogsSoapIn" />

<wsdl:output message="tns:GetCatalogsSoapOut" />

</wsdl:operation>

 

Таким образом, была задана операция типа «запрос/ответ» принимающая сообщения одного типа и отправляющая в ответ сообщения другого типа. Всего WSDL поддерживает четыре типа операций:

· Однонаправленные (One-way)– веб-сервис принимает сообщение, но не отправляет ничего в ответ.

· Запрос/ответ (Request-response)– аналог вызова удаленной процедуры.

· Запрос отклика (Solicit-response)– запрос ответа без входных данных.

· Уведомление (Notification) – рассылка сообщений определенному кругу получателей, который обычно определяется через механизм подписки.

Все эти операции определяются с помощью стандартного набора элементов, и в общем случае операция может быть представлена таким образом:

<wsdl:operation name="nmtoken" parameterOrder="nmtokens">

<wsdl:input name="nmtoken" message="qname"/>

<wsdl:output name="nmtoken" message="qname"/>

<wsdl:fault name="nmtoken" message="qname"/>*

</wsdl:operation>

 

Элементы <input> и <output> отвечают за входные и выходные сообщения операции, а элемент <fault>, который является опциональным, за сообщение об ошибке, которая может возникнуть при обработке запроса.

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

Таким образом, в рассматриваемом примере веб-сервиса интернет-магазина определение типа порта будет следующим:

<wsdl:portType name="WebShopSoap">

<wsdl:operation name="GetCatalogs">

<wsdl:documentation>

Получить список каталогов

</wsdl:documentation>

<wsdl:input message="tns:GetCatalogsSoapIn" />

<wsdl:output message="tns:GetCatalogsSoapOut" />

</wsdl:operation>

<wsdl:operation name="GetGoods">

<wsdl:documentation>

Получить список товаров в каталоге

</wsdl:documentation>

<wsdl:input message="tns:GetGoodsSoapIn" />

<wsdl:output message="tns:GetGoodsSoapOut" />

</wsdl:operation>

 

...

 

</wsdl:portType>








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


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

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

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

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