WSDL расшифровывается как язык описания веб-сервисов. Это стандартный формат для описания веб-службы. WSDL был разработан совместно Microsoft и IBM. WSDL произносится как «wiz-тупой» и произносится как «WSD-L».
WSDL ─ Краткая история
WSDL 1.1 был представлен Ariba, IBM и Microsoft в виде заметки W3C для описания сервисов для W3C XML Activity по XML-протоколам в марте 2001 года.
WSDL 1.1 не был одобрен Консорциумом World Wide Web (W3C), однако он только что выпустил проект для версии 2.0, который будет рекомендацией (официальным стандартом), и, таким образом, одобрен W3C.
WSDL ─ указывает на заметку
WSDL — это основанный на XML протокол для обмена информацией в децентрализованной и распределенной среде. Некоторые из других функций WSDL следующие:
-
Определения WSDL описывают, как получить доступ к веб-службе и какие операции она будет выполнять.
-
Это язык для описания того, как взаимодействовать со службами на основе XML.
-
Он является неотъемлемой частью универсального описания, обнаружения и интеграции (UDDI), всемирного бизнес-реестра на основе XML.
-
WSDL — это язык, который использует UDDI.
Определения WSDL описывают, как получить доступ к веб-службе и какие операции она будет выполнять.
Это язык для описания того, как взаимодействовать со службами на основе XML.
Он является неотъемлемой частью универсального описания, обнаружения и интеграции (UDDI), всемирного бизнес-реестра на основе XML.
WSDL — это язык, который использует UDDI.
Использование WSDL
WSDL часто используется в сочетании с SOAP и XML-схемой для предоставления веб-сервисов через Интернет. Клиентская программа, подключающаяся к веб-службе, может прочитать WSDL, чтобы определить, какие функции доступны на сервере. Все используемые специальные типы данных встраиваются в файл WSDL в форме XML-схемы. Затем клиент может использовать SOAP для фактического вызова одной из функций, перечисленных в WSDL.
Понимание WSDL
WSDL разбивает веб-службы на три конкретных идентифицируемых элемента, которые могут быть объединены или использованы повторно после определения.
Три основных элемента WSDL, которые могут быть определены отдельно:
- Типы
- операции
- переплет
Документ WSDL имеет различные элементы, но они содержатся в этих трех основных элементах, которые можно разрабатывать как отдельные документы, а затем их можно объединять или повторно использовать для формирования полных файлов WSDL.
В этом руководстве мы будем следовать WSDL CurrencyConverter: http://www.webservicex.net/CurrencyConvertor.asmx?wsdl
Формат и элементы
CurrencyConverter WSDL будет выглядеть следующим образом —
WSDL ─ Тип порта
Элемент <portType> объединяет несколько элементов сообщения, чтобы сформировать полную одностороннюю или двустороннюю операцию. Например, <portType> может объединять один запрос и одно ответное сообщение в одну операцию запрос / ответ. Это чаще всего используется в сервисах SOAP. PortType может определять несколько операций.
пример
- Элемент portType определяет одну операцию, которая называется ConversionRate.
- Операция состоит из одного входного сообщения ConversionRateHttpPostIn.
- Операция для выходного сообщения — ConversionRateHttpPostOut.
Образцы Операции
WSDL поддерживает четыре основных шаблона работы —
Одностороннее движение
Служба получает сообщение. Следовательно, операция имеет один элемент ввода. Грамматика для односторонней операции —
<wsdl:definitions .... > <wsdl:portType .... > * <wsdl:operation name = "nmtoken"> <wsdl:input name = "nmtoken"? message = "qname"/> </wsdl:operation> </wsdl:portType > </wsdl:definitions>
Запрос ─ Ответ
Служба получает сообщение и отправляет ответ. Поэтому операция имеет один элемент ввода, за которым следует один элемент вывода. Для инкапсуляции ошибок также может быть указан необязательный элемент неисправности. Грамматика для операции запрос-ответ —
<wsdl:definitions .... > <wsdl:portType .... > * <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> </wsdl:portType > </wsdl:definitions>
Запрос ─ Ответ
Служба отправляет сообщение и получает ответ. Поэтому операция имеет один элемент вывода, за которым следует один элемент ввода. Для инкапсуляции ошибок также может быть указан необязательный элемент неисправности. Грамматика для операции запроса-ответа —
<wsdl:definitions .... > <wsdl:portType .... > * <wsdl:operation name = "nmtoken" parameterOrder = "nmtokens"> <wsdl:output name = "nmtoken"? message = "qname"/> <wsdl:input name = "nmtoken"? message = "qname"/> <wsdl:fault name = "nmtoken" message = "qname"/>* </wsdl:operation> </wsdl:portType > </wsdl:definitions>
Уведомления
Служба отправляет сообщение. Следовательно, операция имеет один выходной элемент. Ниже приведена грамматика для операции уведомления:
<wsdl:definitions .... > <wsdl:portType .... > * <wsdl:operation name = "nmtoken"> <wsdl:output name = "nmtoken"? message = "qname"/> </wsdl:operation> </wsdl:portType > </wsdl:definitions>
WSDL ─ Связывание и обслуживание
Элемент <binding> предоставляет конкретные сведения о том, как операция portType будет передаваться по проводам.
-
Привязки могут быть доступны через несколько транспортов, включая HTTP GET, HTTP POST или SOAP.
-
Привязки предоставляют конкретную информацию о том, какой протокол используется для передачи операций portType.
-
Привязки предоставляют информацию о том, где находится сервис.
-
Для протокола SOAP привязка — это <soap: binding>, а транспорт — это сообщения SOAP поверх протокола HTTP.
-
Вы можете указать несколько привязок для одного portType.
Привязки могут быть доступны через несколько транспортов, включая HTTP GET, HTTP POST или SOAP.
Привязки предоставляют конкретную информацию о том, какой протокол используется для передачи операций portType.
Привязки предоставляют информацию о том, где находится сервис.
Для протокола SOAP привязка — это <soap: binding>, а транспорт — это сообщения SOAP поверх протокола HTTP.
Вы можете указать несколько привязок для одного portType.
обслуживание
Элемент <service> определяет порты, поддерживаемые веб-службой. Для каждого из поддерживаемых протоколов существует один элемент порта. Служебный элемент представляет собой набор портов.
Клиенты веб-службы могут узнать следующее из элемента службы —
- Где получить доступ к услуге,
- Через какой порт получить доступ к веб-сервису, и
- Как определяются коммуникационные сообщения.
Элемент службы включает в себя элемент документации для обеспечения удобочитаемой документации.