Język opisu usług sieci Web — Web Services Description Language

Język opisu usług internetowych
WSDL.svg
Rozszerzenie nazwy pliku
.wsdl
Rodzaj mediów internetowych
aplikacja/wsdl+xml
Opracowany przez Konsorcjum World Wide Web
Zawarte przez XML
Standard 2.0 Zalecenie

Web Services Description Language ( WSDL / szer ɪ Z d əl / ) jest XML -na Interface Description Language , który jest używany do opisywania funkcjonalności oferowanych przez usługę internetową . Akronim jest również używany do dowolnego opisu WSDL usługi sieciowej (nazywanego również plikiem WSDL ), który zapewnia czytelny dla komputera opis sposobu wywołania usługi, oczekiwanych parametrów i zwracanych struktur danych . Dlatego jego cel jest z grubsza podobny do sygnatury typu w języku programowania.

Obecna wersja WSDL to WSDL 2.0. Znaczenie akronimu zmieniło się od wersji 1.1, gdzie „D” oznaczało „definicję”.

Opis

Reprezentacja pojęć zdefiniowanych w dokumentach WSDL 1.1 i WSDL 2.0.

WSDL opisuje usługi jako kolekcje punktów końcowych sieci lub portów . Specyfikacja WSDL udostępnia do tego celu format XML dla dokumentów. Abstrakcyjne definicje portów i komunikatów są oddzielone od ich konkretnego użycia lub instancji, co pozwala na ponowne wykorzystanie tych definicji. Port jest definiowany przez powiązanie adresu sieciowego z wiązaniem wielokrotnego użytku, a zbiór portów definiuje usługę. Komunikaty to abstrakcyjne opisy wymienianych danych, a typy portów to abstrakcyjne kolekcje obsługiwanych operacji. Konkretne specyfikacje protokołu i formatu danych dla określonego typu portu stanowią powiązanie wielokrotnego użytku, w którym operacje i komunikaty są następnie wiązane z konkretnym protokołem sieciowym i formatem komunikatu. W ten sposób WSDL opisuje publiczny interfejs do usługi sieci Web.

WSDL jest często używany w połączeniu z SOAP i schematem XML do świadczenia usług sieci Web przez Internet . Program klienta łączący się z usługą WWW może odczytać plik WSDL, aby określić, jakie operacje są dostępne na serwerze. Wszelkie użyte specjalne typy danych są osadzane w pliku WSDL w postaci schematu XML. Klient może następnie użyć protokołu SOAP do wywołania jednej z operacji wymienionych w pliku WSDL, używając na przykład XML przez HTTP .

Aktualna wersja specyfikacji to 2.0; wersja 1.1 nie została zatwierdzona przez W3C, ale wersja 2.0 jest rekomendacją W3C . Nazwa WSDL 1.2 została zmieniona na WSDL 2.0 ze względu na znaczne różnice w stosunku do WSDL 1.1. Akceptując powiązanie ze wszystkimi metodami żądań HTTP (nie tylko GET i POST, jak w wersji 1.1), specyfikacja WSDL 2.0 oferuje lepszą obsługę usług internetowych RESTful i jest znacznie prostsza w implementacji. Jednak obsługa tej specyfikacji jest nadal słaba w zestawach programistycznych dla usług sieci Web, które często oferują narzędzia tylko dla WSDL 1.1. Na przykład wersja 2.0 języka Business Process Execution Language (BPEL) obsługuje tylko WSDL 1.1.

Okres WSDL 1.1 Okres WSDL 2.0 Opis
Praca Praca Zawiera zestaw funkcji systemowych, które zostały udostępnione protokołom internetowym.
Port Punkt końcowy Definiuje adres lub punkt połączenia z usługą sieci Web. Zazwyczaj jest reprezentowany przez prosty ciąg adresu URL HTTP .
Wiążący Wiążący Określa interfejs i definiuje styl powiązania SOAP ( RPC /Dokument) i transport ( protokół SOAP ). Sekcja powiązania definiuje również operacje.
Typ portu Berło Definiuje usługę sieci Web, operacje, które można wykonać, oraz komunikaty używane do wykonania operacji.
Operacja Operacja Definiuje akcje SOAP i sposób kodowania wiadomości, na przykład „dosłowny”. Operacja jest jak wywołanie metody lub funkcji w tradycyjnym języku programowania.
Wiadomość Nie dotyczy Zazwyczaj komunikat odpowiada operacji. Wiadomość zawiera informacje potrzebne do wykonania operacji. Każda wiadomość składa się z co najmniej jednej części logicznej. Każda część jest powiązana z atrybutem wpisywania wiadomości. Atrybut nazwy wiadomości zapewnia unikatową nazwę wśród wszystkich wiadomości. Atrybut nazwy części zapewnia unikatową nazwę wśród wszystkich części załączonego komunikatu. Części to opis logicznej treści wiadomości. W powiązaniu RPC powiązanie może odwoływać się do nazwy części w celu określenia informacji specyficznych dla powiązania o części. Część może reprezentować parametr w komunikacie; wiązania definiują rzeczywiste znaczenie części. Komunikaty zostały usunięte w WSDL 2.0, w którym typy schematów XML do definiowania treści danych wejściowych, wyjściowych i błędów są przywoływane w prosty i bezpośredni sposób.
Rodzaje Rodzaje Opisuje dane. Do tego celu używany jest język XML Schema (znany również jako XSD ) (wbudowany lub przywoływany).

Podzbiór WSDL

Subset WSDL (SWSDL) to plik WSDL z operacjami podzbioru oryginalnego WSDL. Deweloper może użyć SWSDL, aby uzyskać dostęp do usługi podzbioru, a tym samym obsłużyć podzbiór kodu usługi sieciowej. Subset WSDL może być używany do testowania usług internetowych i programowania odgórnego. Podział usługi sieciowej na plasterki można wykonać za pomocą podzbioru WSDL w celu uzyskania dostępu do usługi podzbioru. Usługę podzbioru można podzielić na warstwy za pomocą SWSDL. SWSDL są używane do analizy, testowania i odgórnego rozwoju usług internetowych. AWSCM jest pionierskim narzędziem do pomyślnego konstruowania SWSDL.

Przykładowy plik 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">

<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>

Historia

WSDL 1.0 (wrzesień 2000) został opracowany przez IBM , Microsoft i Ariba w celu opisania usług WWW dla ich zestawu narzędzi SOAP. Został zbudowany przez połączenie dwóch języków opisu usług: NASSL (Network Application Service Specification Language) firmy IBM i SDL (Service Description Language) firmy Microsoft.

WSDL 1.1, opublikowany w marcu 2001, jest formalizacją WSDL 1.0. Pomiędzy 1.0 a 1.1 nie wprowadzono większych zmian.

WSDL 1.2 (czerwiec 2003) był roboczym projektem w W3C, ale stał się WSDL 2.0. Według W3C: WSDL 1.2 jest łatwiejszy i bardziej elastyczny dla programistów niż poprzednia wersja. WSDL 1.2 próbuje usunąć niewspółpracujące funkcje, a także lepiej definiuje powiązanie HTTP 1.1. WSDL 1.2 nie był obsługiwany przez większość serwerów/dostawców SOAP.

WSDL 2.0 stał się rekomendacją W3C w czerwcu 2007. Nazwa WSDL 1.2 została zmieniona na WSDL 2.0, ponieważ różni się znacznie od WSDL 1.1. Zmiany są następujące:

  • Dodano dalszą semantykę do języka opisu
  • Usunięto konstrukcje wiadomości
  • Przeciążanie operatora nie jest obsługiwane
  • Nazwa PortTypes zmieniona na interfejsy
  • Porty przemianowane na punkty końcowe

Względy bezpieczeństwa

Ponieważ pliki WSDL są specyfikacją opartą na języku XML opisującą usługę sieciową, pliki WSDL są podatne na atak. Aby złagodzić podatność tych plików, zaleca się ograniczanie dostępu do wygenerowanych plików WSDL, ustawianie odpowiednich ograniczeń dostępu do definicji WSDL i unikanie niepotrzebnych definicji w usługach sieci Web.

Zobacz też

Bibliografia

Zewnętrzne linki