Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Web Services Description Language ( WSDL / ш ɪ г d əl / ) является XML основанное язык описания интерфейса , который используется для описания функциональных возможностей, предлагаемых в веб - службе . Акроним также используется для любого конкретного WSDL-описания веб-службы (также называемого WSDL-файлом ), которое предоставляет машиночитаемое описание того, как может быть вызвана служба, какие параметры она ожидает и какие структуры данных возвращает. . Следовательно, его назначение примерно аналогично сигнатуре типа в языке программирования.

Текущая версия WSDL - WSDL 2.0. Значение аббревиатуры изменилось по сравнению с версией 1.1, где «D» означало «Определение».

Описание [ править ]

Представление концепций, определенных в документах WSDL 1.1 и WSDL 2.0.

WSDL описывает службы как наборы конечных точек сети или портов. Для этой цели спецификация WSDL предоставляет формат XML для документов. Абстрактные определения портов и сообщений отделены от их конкретного использования или экземпляра, что позволяет повторно использовать эти определения. Порт определяется путем привязки сетевого адресас многоразовой привязкой, а набор портов определяет службу. Сообщения - это абстрактные описания данных, которыми обмениваются, а типы портов - это абстрактные наборы поддерживаемых операций. Конкретные спецификации протокола и формата данных для определенного типа порта составляют повторно используемую привязку, в которой операции и сообщения затем привязываются к конкретному сетевому протоколу и формату сообщения. Таким образом, WSDL описывает открытый интерфейс веб-службы.

WSDL часто используется в сочетании с SOAP и XML-схемой для предоставления веб-сервисов через Интернет . Клиентская программа, подключающаяся к веб-службе, может читать файл WSDL, чтобы определить, какие операции доступны на сервере. Любые используемые специальные типы данных встраиваются в файл WSDL в форме XML-схемы. Затем клиент может использовать SOAP для фактического вызова одной из операций, перечисленных в файле WSDL, например, используя XML через HTTP.

Текущая версия спецификации - 2.0; версия 1.1 не была одобрена W3C, но версия 2.0 является рекомендацией W3C . [1] WSDL 1.2 был переименован в WSDL 2.0 из-за его существенных отличий от WSDL 1.1. Принимая привязку ко всем методам HTTP-запроса (не только GET и POST, как в версии 1.1), спецификация WSDL 2.0 предлагает лучшую поддержку для веб-служб RESTful и ее намного проще реализовать. [2] [3] Однако эта спецификация все еще плохо поддерживается в наборах средств разработки программного обеспечения для веб-служб, которые часто предлагают инструменты только для WSDL 1.1. [ требуется обновление ][ необходима цитата ] Например, версия 2.0 языка выполнения бизнес-процессов (BPEL) поддерживает только WSDL 1.1.

Подмножество WSDL [ править ]

Подмножество WSDL (SWSDL) [4] - это WSDL с операциями подмножества исходного WSDL. Разработчик может использовать SWSDL для доступа к подмножеству сервиса, таким образом обрабатывая подмножество кода веб-сервиса. Подмножество WSDL можно использовать для тестирования веб-сервисов и разработки сверху вниз. Нарезка веб-службы может быть выполнена с помощью WSDL подмножества для доступа к подмножеству службы. Служба подмножества может быть разделена на уровни с помощью SWSDL. SWSDL используются для анализа, тестирования и разработки веб-сервисов сверху вниз. AWSCM [5] - это пионерский инструмент для успешного построения SWSDL.

Пример файла WSDL [ править ]

<? xml version = "1.0" encoding = "UTF-8"?> <description  xmlns = "http://www.w3.org/ns/wsdl"  xmlns: tns = "http://www.tmsws.com / wsdl20sample "  xmlns: whttp = " http://schemas.xmlsoap.org/wsdl/http/ "  xmlns: wsoap = " http://schemas.xmlsoap.org/wsdl/soap/ "  targetNamespace = " http: // www.tmsws.com/wsdl20sample " ><документация> Это образец документа WSDL 2.0. </documentation><! - Абстрактный тип ->  <types>  <xs: schema  xmlns: xs = "http://www.w3.org/2001/XMLSchema"  xmlns = "http://www.tmsws.com/wsdl20sample"  targetNamespace = "http://www.example.com/wsdl20sample" >  <xs: element  name = "request" > ... </ xs: element>  <xs: element  name = "response" > ... </ xs: element>  </ xs: schema>  </types><! - Абстрактные интерфейсы ->  <interface  name = "Interface1" >  <fault  name = "Error1"  element = "tns: response" />  <operation  name = "Get"  pattern = "http: //www.w3 .org / ns / wsdl / in-out " >  <input  messageLabel = " In "  element = " tns: request " />  <output  messageLabel = " Out "  element = " tns: response " />  </operation>  </ интерфейс><! - Конкретная  привязка  через HTTP -> <binding name = "HttpBinding"  interface = "tns: Interface1"  type = "http://www.w3.org/ns/wsdl/http" >  <operation  ref = " tns: Get "  whttp: method = " GET " />  </binding> <! - Конкретная  привязка  с помощью SOAP -> <binding name = "SoapBinding"  interface = "tns: Interface1"  type = "http://www.w3.org/ns/wsdl/soap"  wsoap: protocol = "http : //www.w3.org/2003/05/soap/bindings/HTTP/ "  wsoap: mepDefault = " http://www.w3.org/2003/05/soap/mep/request-response " >  <операция  ref = "tns: Get"  />  </binding><! - Веб-служба предлагает конечные точки для обеих привязок ->  <service  name = "Service1"  interface = "tns: Interface1" >  <endpoint  name = "HttpEndpoint"  binding = "tns: HttpBinding"  address = "http: // www.example.com/rest/ " />  <endpoint  name = " SoapEndpoint "  binding = " tns: SoapBinding "  address = " http://www.example.com/soap/ " />  </service> </ description >

История [ править ]

WSDL 1.0 (сентябрь 2000 г.) был разработан IBM , Microsoft и Ariba для описания веб-служб для их набора инструментов SOAP. Он был построен путем объединения двух языков описания служб: NASSL ( язык спецификации служб сетевых приложений) от IBM и SDL (язык описания служб) от Microsoft.

WSDL 1.1, опубликованный в марте 2001 года, является формализацией WSDL 1.0. Между 1.0 и 1.1 не было внесено никаких серьезных изменений.

WSDL 1.2 (июнь 2003 г.) был рабочим проектом на W3C, но стал WSDL 2.0. Согласно W3C: WSDL 1.2 проще и гибче для разработчиков, чем предыдущая версия. WSDL 1.2 пытается удалить несовместимые функции, а также лучше определяет привязку HTTP 1.1. WSDL 1.2 не поддерживался большинством серверов / поставщиков SOAP.

WSDL 2.0 стал рекомендацией W3C в июне 2007 года. WSDL 1.2 был переименован в WSDL 2.0, поскольку он существенно отличается от WSDL 1.1. Изменения следующие:

  • Добавлена ​​дополнительная семантика в язык описания
  • Удалены конструкции сообщений
  • Перегрузка оператора не поддерживается
  • PortTypes переименован в интерфейсы
  • Порты переименованы в конечные точки

Соображения безопасности [ править ]

Поскольку файлы WSDL представляют собой спецификацию на основе XML для описания веб-службы, файлы WSDL уязвимы для атак. [6] Чтобы уменьшить уязвимость этих файлов, рекомендуется ограничивать доступ к сгенерированным файлам WSDL, устанавливать надлежащие ограничения доступа для определений WSDL и избегать ненужных определений в веб-сервисах.

См. Также [ править ]

  • SDEP
  • МЫЛО
  • Язык описания веб-приложений

Ссылки [ править ]

  1. ^ "Язык определения веб-служб (WSDL), версия 2.0, часть 1: Основной язык" . Проверено 27 июня 2007 .
  2. ^ «Язык определения веб-служб (WSDL), версия 2.0, часть 2: Дополнения» .
  3. ^ «WITW WSDL 2.0 HTTP Binding» .
  4. ^ Chaturvedi, Animesh (2014). Подмножество WSDL для доступа к подмножеству службы для анализа . 2014 IEEE 6-я Международная конференция по технологиям и науке облачных вычислений. п. 688. DOI : 10,1109 / CloudCom.2014.149 . ISBN 978-1-4799-4093-6.
  5. ^ Chaturvedi, Animesh (2014). Автоматизированное управление изменениями веб-сервисов AWSCM - инструмент . 2014 IEEE 6-я Международная конференция по технологиям и науке облачных вычислений. п. 715. DOI : 10,1109 / CloudCom.2014.144 . ISBN 978-1-4799-4093-6.
  6. ^ «Раскрытие WSDL» . Проверено 31 мая 2017 .

Внешние ссылки [ править ]

  • Спецификация WSDL 1.0
  • Спецификация WSDL 1.1
  • Спецификация WSDL 2.0
    • Часть 0: Primer (последняя версия)
    • Часть 1: Ядро (последняя версия)
    • Часть 2: Дополнения (последняя версия)
  • Рабочая группа описания веб-сервисов
  • Активность протокола XML
  • JSR-110: API Java для WSDL
  • JSR 172: Спецификация веб-служб Java ME
  • Онлайн-валидатор WSDL
  • Веб-браузер WSDL и тестовый клиент
  • Программная визуализация WSDL с помощью Linguine Maps
  • SSDL - язык описания службы SOAP
  • Привязки WSDL Java для XMLBeans и JAXB.
  • RELAX-WS: простой язык определения веб-сервисов на основе компактного синтаксиса RELAX NG