Топ питань
Часова шкала
Чат
Перспективи
WSDL
З Вікіпедії, вільної енциклопедії
Remove ads
Мова опису вебсервісів (англ. Web Services Description Language, WSDL) — мова опису інтерфейсів вебсервісу заснована на XML, що описує функціональність вебсервісу і спосіб доступу до нього. Акронім WSDL також використовують для будь-якого конкретного WSDL опису вебсервісу (також званого як WSDL-файл), який забезпечує для комп'ютера опис того, як сервіс можна викликати, які параметри він очікує, і які структури даних він повертає. Таким чином, мета WSDL-файлу приблизно аналогічна визначенню методу в мові програмування.
Поточна версія WSDL — WSDL 2.0. Значення акроніма змінилося з версії 1.1, де літера «D» означала «визначення» (англ. «Definition»).
Remove ads
Опис
Узагальнити
Перспектива

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.
Remove ads
Підгрупа WSDL
Підгрупа WSDL (SWSDL[3]) - це WSDL з підмножиною операцій оригінального WSDL. Розробник може використовувати підгрупу WSDL (SWSDL) для доступу до так званого підмножинного сервісу - Subset сервісу - таким чином обробляти підмножину коду вебслужби. Можна розділити вебсервіс на частини на основі підмножини WSDL (SWSDL) для доступу до Subset сервісу. Subset сервіс підгрупи можна розділити на рівні. SWSDL використовуються для аналізу, тестування вебслужби і розробки зверху вниз. AWSCM[3] достатньо новий інструмент для успішної побудови SWSDL
Remove ads
Структура
Кожний документ WSDL 1.1 можна розбити на наступні логічні частини:
- визначення типів даних (типи) - визначення виду відправлених і отриманих сервісом XML-повідомлень
- елементи даних (повідомлення) - повідомлення, що використовуються з вебсервісом
- абстрактні операції (PortType) - список операцій, які можуть бути виконані з повідомленнями
- зв'язування сервісів (зв'язування (англ. 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>
Remove ads
Історія
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 перейменовано в інтерфейс
- Порти перейменований в кінцеві точки
Remove ads
Дивитися також
Посилання
Зовнішні посилання
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads