WSDL: відмінності між версіями

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
[неперевірена версія][перевірена версія]
Вилучено вміст Додано вміст
M.maryniak (обговорення | внесок)
мНемає опису редагування
Виправлено джерел: 16; позначено як недійсні: 0.) #IABot (v2.0.8.7
 
(Не показано 24 проміжні версії 20 користувачів)
Рядок 1: Рядок 1:
{{Infobox file format
{{Infobox file format
| name = {{lang-en|Web Services Description Language}} / WSDL
| name = Мова опису зовнішніх інтерфейсів веб-служби
| icon =
| icon =
| logo =
| logo =
| screenshot = [[Image:WSDL.svg]]
| screenshot = [[Файл:WSDL.svg|313x313пкс]]
| caption =
| extension = .wsdl
| extension = .wsdl
| mime = application/wsdl+xml
| mime = application/wsdl+xml
| type code =
| type code =
| uniform type =
| uniform type =
| magic =
| magic =
| owner = [http://www.w3.org/ World Wide Web Consortium]
| owner = [[World Wide Web Consortium]]
| genre =
| licence =
| released =
| latest release version =
| latest release date =
| genre =
| container for =
| contained by = [[XML]]
| contained by = [[XML]]
| container for =
| extended from =
| extended from =
| extended to =
| standard = [https://www.w3.org/TR/wsdl20/ 2.0 Recommendation]
| extended to =
| url =
| standard = [http://www.w3.org/TR/wsdl20/ 2.0 Recommendation]
| width =
}}
}}


'''Мова опису вебсервісів''' ({{lang-en|Web Services Description Language}}, WSDL) — [[мова опису інтерфейсів]] [[Вебслужба|вебсервісу]] заснована на [[XML]], що описує функціональність вебсервісу і спосіб доступу до нього. [[Акронім]] WSDL також використовують для будь-якого конкретного WSDL опису вебсервісу (також званого як WSDL-файл), який забезпечує для комп'ютера опис того, як сервіс можна викликати, які параметри він очікує, і які структури даних він повертає. Таким чином, мета WSDL-файлу приблизно аналогічна визначенню методу в мові програмування.
Мова опису зовнішніх інтерфейсів [[Веб-служба|веб-служби]] на базі [[XML]].


Поточна версія WSDL — WSDL 2.0. Значення акроніма змінилося з версії 1.1, де літера «D» означала «визначення» (англ. «Definition»).
{{Доробити}}

== Опис ==
[[Файл:WSDL 11vs20.png|ліворуч|міні|332x332пкс|Версії 1.1 и 2.0]]
WSDL описує сервіси як колекції кінцевих точок мережі чи портів. Специфікація WSDL надає формат [[XML]] для документів для цієї мети. Абстрактне визначення портів і повідомлень відокремлене від їх конкретного використання та їх сутностей, що дозволяє повторне використання цих визначень. Порт визначається пов'язуючи мережеву адресу з багаторазовим зв'язуванням, а набір портів визначає сервіс. Повідомлення - це абстрактні описи даних, якими обмінюються, і типи портів - це абстрактні колекції підтримуваних операцій. Конкретні протоколи і специфікації формату даних для конкретного типу порту є багаторазовим зв'язування, де операції і повідомлення потім прив'язуються до конкретного формату мережевих протоколів і повідомлень. Таким чином, WSDL описує публічний інтерфейс для вебслужби.

WSDL часто використовується в комбінації з [[SOAP]] і [[XML Schema (W3C)|XML-схеми]] для надання вебсервісів через [[Інтернет]]. Клієнтська програма підключена до вебслужби може прочитати файл WSDL, щоб визначити, які операції доступні на сервері. Будь-які спеціальні [[Тип даних|типи даних]], що використовуються, вбудовані в файл WSDL у вигляді XML-схеми. Потім клієнт може використовувати SOAP, щоб викликати одну з операцій, перерахованих у файлі WSDL, використовуючи, наприклад, XML через [[HTTP]].

Поточна версія специфікації WSDL 2.0; версія 1.1 була схвалена [[W3C]], але версія 2.0 рекомендована W3C<ref>{{Cite web|url=https://www.w3.org/TR/wsdl20/|title=Web Services Description Language (WSDL) Version 2.0 Part 1: Core Language|website=www.w3.org|accessdate=2016-12-25|archive-date=4 січня 2017|archive-url=https://web.archive.org/web/20170104075105/http://www.w3.org/TR/wsdl20/}}</ref>. WSDL 1.2 було перейменовано у WSDL 2.0 через його істотні відмінності від WSDL 1.1. Приймаючи зв'язування з усіма методами [[HTTP]] запиту (не тільки GET і POST, як у версії 1.1), специфікація WSDL 2.0 пропонує поліпшену підтримку вебсервісів [[REST]], і її набагато простіше реалізувати<ref>{{Cite web|url=https://www.w3.org/TR/2007/REC-wsdl20-adjuncts-20070626/#_http_binding_default_rule_method|title=Web Services Description Language (WSDL) Version 2.0 Part 2: Adjuncts|website=www.w3.org|accessdate=2016-12-25|archive-date=25 січня 2017|archive-url=https://web.archive.org/web/20170125123128/http://www.w3.org/TR/2007/REC-wsdl20-adjuncts-20070626/#_http_binding_default_rule_method}}</ref>. Однак для підтримка цієї специфікації бракує [[SDK]] для веб сервісів, які все ще пропонують інструменти тільки для WSDL 1.1. Наприклад, у версії 2.0 Business Process Execution Language (BPEL) підтримує тільки WSDL 1.1.
{| class="wikitable"
!WSDL 1.1 термін
!WSDL 2.0 термін
!Опис
|-
|Сервіс
|Сервіс
|Містить набір системних функцій, які були виставлені на вебпротоколах.
|-
|Порт
|Кінцева точка
|Визначає адресу або точку підключення до вебслужби. Це, як правило, представлено простим рядком [[HTTP]] [[Уніфікований локатор ресурсів|URL]].
|-
|Binding
|Binding
|Визначає інтерфейс і стиль зв'язування SOAP ([[Виклик віддалених процедур|RPC]] / Документ) і транспорт (протокол [[SOAP]]). Секція зв'язування також визначає операції.
|-
|PortType
|Інтерфейс
|Визначає вебслужби, операції, які можуть бути виконані, а також повідомлення, які використовуються для виконання операції.
|-
|Операція
|Операція
|Визначає дії SOAP і спосіб кодування повідомлення, наприклад, "буквальні". Операція як метод або виклик функції в традиційній мові програмування.
|-
|Повідомлення
|Немає
|Як правило, повідомлення відповідає операції. Повідомлення містить інформацію, необхідну для виконання операції. Кожне повідомлення складається з одного або декількох логічних частин. Кожна частина пов'язана з атрибутом message-typing. Атрибут імені повідомлення містить унікальне ім'я серед усіх повідомлень. Атрибут part name забезпечує унікальне ім'я серед всіх частин, що обмежено повідомленням. Частини - це опис логічного змісту повідомлення. У [[Виклик віддалених процедур|RPC]] зв'язуванні, зв'язування може посилатися на ім'я частини для того, щоб вказати специфічну інформацію для зв'язування про частини. Частина може являти собою параметр в повідомленні; зв'язування визначає фактичне значення частини.
Повідомлення були видалені в WSDL 2.0, в якому типи [[XML Schema (W3C)|XML]]-схеми для визначення тіла входів, виходів і несправностей, викликаються просто і прямо.
|-
|Тип
|Тип
|Описує дані. Мова [[XML Schema (W3C)|XML схеми]] (також відома як [[XSD]]) використовується (вбудовано або через посилання) для цієї мети.
|}

== Підгрупа WSDL ==
Підгрупа WSDL (SWSDL<ref name=":0">{{Cite news|url=http://ieeexplore.ieee.org/document/7037746/|title=Automated Web Service Change Management AWSCM - A Tool|last=Chaturvedi|first=A.|date=2014-12-01|pages=715–718|work=2014 IEEE 6th International Conference on Cloud Computing Technology and Science|doi=10.1109/CloudCom.2014.144|accessdate=2016-12-25|archive-date=12 липня 2017|archive-url=https://web.archive.org/web/20170712031518/http://ieeexplore.ieee.org/document/7037746/}}</ref>) - це WSDL з підмножиною операцій оригінального WSDL. Розробник може використовувати підгрупу WSDL (SWSDL) для доступу до так званого підмножинного сервісу - Subset сервісу - таким чином обробляти підмножину коду вебслужби. Можна розділити вебсервіс на частини на основі підмножини WSDL (SWSDL) для доступу до Subset сервісу. Subset сервіс підгрупи можна розділити на рівні. SWSDL використовуються для аналізу, тестування вебслужби і розробки зверху вниз. AWSCM<ref name=":0"/> достатньо новий інструмент для успішної побудови SWSDL

== Структура ==
Кожний документ WSDL 1.1 можна розбити на наступні логічні частини:
# визначення типів даних (типи) - визначення виду відправлених і отриманих сервісом XML-повідомлень
# елементи даних (повідомлення) - повідомлення, що використовуються з вебсервісом
# абстрактні операції (PortType) - список операцій, які можуть бути виконані з повідомленнями
# зв'язування сервісів (зв'язування ({{lang-en|binding}})) - спосіб, яким повідомлення буде доставлено

== Приклади WSDL ==

=== Приклад 1 - WSDL 1.1 ===
<syntaxhighlight lang="xml">

<message name="getTermRequest">
<part name="term" type="xs:string"/>
</message>

<message name="getTermResponse">
<part name="value" type="xs:string"/>
</message>

<portType name="glossaryTerms">
<operation name="getTerm">
<input message="getTermRequest"/>
<output message="getTermResponse"/>
</operation>
</portType>
</syntaxhighlight>

=== Приклад 2 - WSDL 2.0 ===
<syntaxhighlight lang="xml">
<?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">

<documentation>
This is a sample WSDL 2.0 document.
</documentation>

<!-- Abstract type -->
<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>

<!-- Abstract interfaces -->
<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>
</interface>

<!-- Concrete Binding Over HTTP -->
<binding name="HttpBinding" interface="tns:Interface1"
type="http://www.w3.org/ns/wsdl/http">
<operation ref="tns:Get" whttp:method="GET"/>
</binding>
<!-- Concrete Binding with 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">
<operation ref="tns:Get" />
</binding>

<!-- Web Service offering endpoints for both bindings-->
<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>
</syntaxhighlight>

== Історія ==
WSDL 1.0 (у вересні 2000) був розроблений [[IBM]], [[Microsoft]] і Ariba для опису вебслужб для їх [[SOAP]] інструментарію. Він був побудований за рахунок поєднання двох мов опису сервісів: NASSL (Network Application Service Specification Language) від IBM і SDL (Service Description Language) від 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 намагається видалити несумісні функції, а також визначає binding HTTP 1.1 binding краще. WSDL 1.2 не підтримувався більшістю SOAP серверів та постачальників.

WSDL 2.0 став рекомендацією W3C в червні 2007 року. WSDL 1.2 був перейменований в WSDL 2.0, оскільки він мав істотні відмінності від WSDL 1.1. Зміни полягають у наступному:
* Додана додаткова семантика до мови опису
* Вилучені конструкції повідомлень
* Перевантаження операторів не підтримується
* PortType перейменовано в інтерфейс
* Порти перейменований в кінцеві точки

== Дивитися також ==
* {{нп|WADL}}
* [[SOAP|Simple Object Access Protocol(SOAP)]]
* {{нп|WDDX}}
* [[Windows Communication Foundation|WCF]]

== Посилання ==
<references />__ОБОВ_ЗМІСТ__
__ПОСИЛАННЯ_НА_НОВИЙ_РОЗДІЛ__


== Зовнішні посилання ==
* [http://xml.coverpages.org/wsdl20000929.html WSDL 1.0 специфікація] {{Webarchive|url=https://web.archive.org/web/20170727021035/http://xml.coverpages.org/wsdl20000929.html |date=27 липня 2017 }}
* [http://www.w3.org/TR/wsdl WSDL 1.1 специфікація] {{Webarchive|url=https://web.archive.org/web/20090115204144/http://www.w3.org/TR/wsdl |date=15 січня 2009 }}
* [http://www.w3.org/TR/wsdl20-primer/ WSDL 2.0 специфікація, частина 0: Primer (остання версія)] {{Webarchive|url=https://web.archive.org/web/20170104074038/http://www.w3.org/TR/wsdl20-primer/ |date=4 січня 2017 }}
* [http://www.w3.org/TR/wsdl20/ WSDL 2.0 специфікація, частина 1: Core (остання версія)] {{Webarchive|url=https://web.archive.org/web/20090121023631/http://www.w3.org/TR/wsdl20/ |date=21 січня 2009 }}
* [http://www.w3.org/TR/wsdl20-adjuncts/ WSDL 2.0 специфікація, 2: Adjuncts (остання версія)] {{Webarchive|url=https://web.archive.org/web/20170111080038/http://www.w3.org/TR/wsdl20-adjuncts/ |date=11 січня 2017 }}
* [http://www.w3.org/2002/ws/desc/ Web Services Description Working Group] {{Webarchive|url=https://web.archive.org/web/20170120102423/http://www.w3.org/2002/ws/desc/ |date=20 січня 2017 }}
* [http://www.w3.org/2000/xp/ XML протокол] {{Webarchive|url=https://web.archive.org/web/20170107110746/http://www.w3.org/2000/xp/ |date=7 січня 2017 }}
* [http://www.jcp.org/en/jsr/detail?id=110 JSR-110: Java APIs для WSDL] {{Webarchive|url=https://web.archive.org/web/20201031224522/http://www.jcp.org/en/jsr/detail?id=110 |date=31 жовтня 2020 }}
* [http://jcp.org/en/jsr/detail?id=172 JSR 172: Java ME Web специфікація сервісу] {{Webarchive|url=https://web.archive.org/web/20120502071516/http://jcp.org/en/jsr/detail?id=172 |date=2 травня 2012 }}
* [http://xmlbeans.googlepages.com/ WSDL Java Bindings] {{Webarchive|url=https://web.archive.org/web/20090411144624/http://xmlbeans.googlepages.com/ |date=11 квітня 2009 }} для XMLBeans and JAXB.
* [http://www.w3.org/TR/2002/WD-wsdl12-20020709/ W3C Working Draft] {{Webarchive|url=https://web.archive.org/web/20160826085237/http://www.w3.org/TR/2002/WD-wsdl12-20020709/ |date=26 серпня 2016 }}
* [https://github.com/dlukyanov/relax-ws/wiki RELAX-WS: проста мова для визначення веб сервісу заснована на RELAX NG Compact Syntax]
* WSDL: погляд зсередини: [http://xmlhack.ru/texts/03/wsdl.tales/wsdlintralook1.html частина I] {{Webarchive|url=https://web.archive.org/web/20170130151845/http://xmlhack.ru/texts/03/wsdl.tales/wsdlintralook1.html |date=30 січня 2017 }}, [http://xmlhack.ru/texts/03/wsdl.tales/wsdlintralook2.html частина II] {{Webarchive|url=https://web.archive.org/web/20170211062917/http://xmlhack.ru/texts/03/wsdl.tales/wsdlintralook2.html |date=11 лютого 2017 }}
[[Категорія:XML]]
[[Категорія:Стандарти на основі XML]]
[[Категорія:Специфікації вебсервісів]]
[[Категорія:Вебсервіси]]
[[Категорія:Стандарти W3C]]
[[Категорія:Формати файлів]]
[[Категорія:.NET]]
[[Категорія:Статті з прикладами коду мовою XML]]

Поточна версія на 22:53, 15 травня 2022

англ. Web Services Description Language / WSDL
Розширення файлу:.wsdl
MIME-тип:application/wsdl+xml
Розробник:World Wide Web Consortium
Міститься у:XML
Стандарт(и):2.0 Recommendation

Мова опису вебсервісів (англ. Web Services Description Language, WSDL) — мова опису інтерфейсів вебсервісу заснована на XML, що описує функціональність вебсервісу і спосіб доступу до нього. Акронім WSDL також використовують для будь-якого конкретного WSDL опису вебсервісу (також званого як WSDL-файл), який забезпечує для комп'ютера опис того, як сервіс можна викликати, які параметри він очікує, і які структури даних він повертає. Таким чином, мета WSDL-файлу приблизно аналогічна визначенню методу в мові програмування.

Поточна версія WSDL — WSDL 2.0. Значення акроніма змінилося з версії 1.1, де літера «D» означала «визначення» (англ. «Definition»).

Версії 1.1 и 2.0

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

WSDL часто використовується в комбінації з SOAP і XML-схеми для надання вебсервісів через Інтернет. Клієнтська програма підключена до вебслужби може прочитати файл WSDL, щоб визначити, які операції доступні на сервері. Будь-які спеціальні типи даних, що використовуються, вбудовані в файл WSDL у вигляді XML-схеми. Потім клієнт може використовувати SOAP, щоб викликати одну з операцій, перерахованих у файлі WSDL, використовуючи, наприклад, XML через HTTP.

Поточна версія специфікації WSDL 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 пропонує поліпшену підтримку вебсервісів REST, і її набагато простіше реалізувати[2]. Однак для підтримка цієї специфікації бракує SDK для веб сервісів, які все ще пропонують інструменти тільки для WSDL 1.1. Наприклад, у версії 2.0 Business Process Execution Language (BPEL) підтримує тільки WSDL 1.1.

WSDL 1.1 термін WSDL 2.0 термін Опис
Сервіс Сервіс Містить набір системних функцій, які були виставлені на вебпротоколах.
Порт Кінцева точка Визначає адресу або точку підключення до вебслужби. Це, як правило, представлено простим рядком HTTP URL.
Binding Binding Визначає інтерфейс і стиль зв'язування SOAP (RPC / Документ) і транспорт (протокол SOAP). Секція зв'язування також визначає операції.
PortType Інтерфейс Визначає вебслужби, операції, які можуть бути виконані, а також повідомлення, які використовуються для виконання операції.
Операція Операція Визначає дії SOAP і спосіб кодування повідомлення, наприклад, "буквальні". Операція як метод або виклик функції в традиційній мові програмування.
Повідомлення Немає Як правило, повідомлення відповідає операції. Повідомлення містить інформацію, необхідну для виконання операції. Кожне повідомлення складається з одного або декількох логічних частин. Кожна частина пов'язана з атрибутом message-typing. Атрибут імені повідомлення містить унікальне ім'я серед усіх повідомлень. Атрибут part name забезпечує унікальне ім'я серед всіх частин, що обмежено повідомленням. Частини - це опис логічного змісту повідомлення. У RPC зв'язуванні, зв'язування може посилатися на ім'я частини для того, щоб вказати специфічну інформацію для зв'язування про частини. Частина може являти собою параметр в повідомленні; зв'язування визначає фактичне значення частини.

Повідомлення були видалені в WSDL 2.0, в якому типи XML-схеми для визначення тіла входів, виходів і несправностей, викликаються просто і прямо.

Тип Тип Описує дані. Мова XML схеми (також відома як XSD) використовується (вбудовано або через посилання) для цієї мети.

Підгрупа WSDL

[ред. | ред. код]

Підгрупа WSDL (SWSDL[3]) - це WSDL з підмножиною операцій оригінального WSDL. Розробник може використовувати підгрупу WSDL (SWSDL) для доступу до так званого підмножинного сервісу - Subset сервісу - таким чином обробляти підмножину коду вебслужби. Можна розділити вебсервіс на частини на основі підмножини WSDL (SWSDL) для доступу до Subset сервісу. Subset сервіс підгрупи можна розділити на рівні. SWSDL використовуються для аналізу, тестування вебслужби і розробки зверху вниз. AWSCM[3] достатньо новий інструмент для успішної побудови SWSDL

Структура

[ред. | ред. код]

Кожний документ WSDL 1.1 можна розбити на наступні логічні частини:

  1. визначення типів даних (типи) - визначення виду відправлених і отриманих сервісом XML-повідомлень
  2. елементи даних (повідомлення) - повідомлення, що використовуються з вебсервісом
  3. абстрактні операції (PortType) - список операцій, які можуть бути виконані з повідомленнями
  4. зв'язування сервісів (зв'язування (англ. binding)) - спосіб, яким повідомлення буде доставлено

Приклади WSDL

[ред. | ред. код]

Приклад 1 - WSDL 1.1

[ред. | ред. код]
<message name="getTermRequest">
   <part name="term" type="xs:string"/>
</message>

<message name="getTermResponse">
   <part name="value" type="xs:string"/>
</message>

<portType name="glossaryTerms">
  <operation name="getTerm">
      <input message="getTermRequest"/>
      <output message="getTermResponse"/>
  </operation>
</portType>

Приклад 2 - WSDL 2.0

[ред. | ред. код]
<?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">

<documentation>
    This is a sample WSDL 2.0 document. 
</documentation>

<!-- Abstract type -->
   <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>

<!-- Abstract interfaces -->
   <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>
   </interface>

<!-- Concrete Binding Over HTTP -->
   <binding name="HttpBinding" interface="tns:Interface1" 
            type="http://www.w3.org/ns/wsdl/http">
      <operation ref="tns:Get" whttp:method="GET"/>
   </binding>
   
<!-- Concrete Binding with 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">
      <operation ref="tns:Get" />
   </binding>

<!-- Web Service offering endpoints for both bindings-->
   <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 (Network Application Service Specification Language) від IBM і SDL (Service Description Language) від 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 намагається видалити несумісні функції, а також визначає binding HTTP 1.1 binding краще. WSDL 1.2 не підтримувався більшістю SOAP серверів та постачальників.

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

  • Додана додаткова семантика до мови опису
  • Вилучені конструкції повідомлень
  • Перевантаження операторів не підтримується
  • PortType перейменовано в інтерфейс
  • Порти перейменований в кінцеві точки

Дивитися також

[ред. | ред. код]

Посилання

[ред. | ред. код]
  1. Web Services Description Language (WSDL) Version 2.0 Part 1: Core Language. www.w3.org. Архів оригіналу за 4 січня 2017. Процитовано 25 грудня 2016.
  2. Web Services Description Language (WSDL) Version 2.0 Part 2: Adjuncts. www.w3.org. Архів оригіналу за 25 січня 2017. Процитовано 25 грудня 2016.
  3. а б Chaturvedi, A. (1 грудня 2014). Automated Web Service Change Management AWSCM - A Tool. 2014 IEEE 6th International Conference on Cloud Computing Technology and Science. с. 715—718. doi:10.1109/CloudCom.2014.144. Архів оригіналу за 12 липня 2017. Процитовано 25 грудня 2016.


Зовнішні посилання

[ред. | ред. код]