From Wikipedia, the free encyclopedia
Web Services Description Language (WSDL) je na XML temelječ vmesnik za definicijo spletnih storitev, ki ga je razvil mednarodni inštitut World Wide Web Consortium (W3C), z namenom poenotenja načina opisa spletnih storitev. Trenutna verzija je WSDL 2.0, v prejšnji verziji (1.1) je bil pomen akronima Web Services Definition Language, nato pa se je v verziji 2.0 spremenil v Web Service Description Language.
WSDL opiše javni vmesnik do spletne storitve. Uporablja XML Scheme pri definiciji spletne storitve in specifičnih podatkovnih tipov. Omogoča standardiziran zapis tehničnega vmesnika (oz. tehnično pogodbo), ki temelji na sporočilih na osnovi jezika XML. Predstavlja informacije, ki določajo identiteto storitve in omogoči proženje storitve. WSDL je en izmed osnovnih gradnikov primitivnega SOA modela. Poleg WSDL je še SOAP, ki opiše format sporočil, ki se pošiljajo med storitvijo in odjemalcem ter standardiziran format za register storitev UDDI. Če želi kdo uporabiti spletno storitev, najprej pridobi WSDL dokument, da ugotovi lokacijo storitve, seznam operacij, ki jih nudi ter obliko sporočil, ki jih storitev prejema oz. pošilja. WSDL torej pove odjemalcu, kako lahko kliče oz. uporabi spletno storitev, uporabi pa se za izgradnjo namestnikov za odjemalce, ki implementirajo proženje operacij spletne storitve.
Osnovni deli WSDL dokumenta (WSDL 1.1):
WSDL konstrukt | Opis |
---|---|
<types> | določa podatkovne tipe, ki se uporabljajo pri prenosu sporočil med komunikacijo s spletno storitvijo. |
<message> | definira podatkovne elemente operacije, sestavljen je lahko iz več delov (<part>), konstrukt <message> je bil v verziji 2.0 odstranjen. |
<portType> | v 2.0 preimenovan v Interface. Definira spletno storitev, nabor izvedljivih abstraktnih operacij, in abstraktna sporočila, ki se izmenjujejo pri izvajanju operacij. |
<operation> | definira SOAP akcije, način kodiranja sporočila. |
<binding> | specificira vmesnik in definira povezavo s SOAP sporočili. Abstraktnim sporočilom, operacijam in končnim točkam določi specifičen protokol in format sporočil. |
<service> | vsebuje set sistemskih funkcij, izpostavljenih na spletu. Definira fizično lokacijo spletne storitve. |
<port> | v 2.0 preimenovan v Endpoint. Definira naslov oz. končno točko spletne storitve. Po navadi izražen s preprostim HTTP URLjem. |
WSDL je bila ena izmed prvih iniciativ v podpori tehnologijam spletnih storitev. Potem, ko se je WSDL izpopolnil, se je začelo iskanje po standardnem formatu sporočil, ki bi se uporabil skupaj z definicijo WSDL. Čeprav so bile v začetku v igri tudi obstoječe alternative (kot je XML-RPC), je bila izbrana tehnologija SOAP. Kombinacija WSDL in SOAP je predstavljala jedro industrijskega standarda za komunikacijsko ogrodje.
Zadnja različica Business Process Execution Language (BPEL) podpira le WSDL 1.1.
Primer WSDL 2.0 dokumenta: Glej primer
<?xml version="1.0" encoding="utf-8" ?>
<description
xmlns="http://www.w3.org/ns/wsdl"
targetNamespace="http://greath.example.com/2004/wsdl/resSvc"
xmlns:tns="http://greath.example.com/2004/wsdl/resSvc"
xmlns:ghns="http://greath.example.com/2004/schemas/resSvc"
xmlns:wsoap="http://www.w3.org/ns/wsdl/soap"
xmlns:soap="http://www.w3.org/2003/05/soap-envelope"
xmlns:wsdlx="http://www.w3.org/ns/wsdl-extensions">
<documentation>
This document describes the GreatH Web service. Additional
application-level requirements for use of this service --
beyond what WSDL 2.0 is able to describe -- are available
at http://greath.example.com/2004/reservation-documentation.html
</documentation>
<types>
<xs:schema
xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://greath.example.com/2004/schemas/resSvc"
xmlns="http://greath.example.com/2004/schemas/resSvc">
<xs:element name="checkAvailability" type="tCheckAvailability"/>
<xs:complexType name="tCheckAvailability">
<xs:sequence>
<xs:element name="checkInDate" type="xs:date"/>
<xs:element name="checkOutDate" type="xs:date"/>
<xs:element name="roomType" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:element name="checkAvailabilityResponse" type="xs:double"/>
<xs:element name="invalidDataError" type="xs:string"/>
</xs:schema>
</types>
<interface name="reservationInterface" >
<fault name="invalidDataFault"
element="ghns:invalidDataError"/>
<operation name="opCheckAvailability"
pattern="http://www.w3.org/ns/wsdl/in-out"
style="http://www.w3.org/ns/wsdl/style/iri"
wsdlx:safe="true">
<input messageLabel="In"
element="ghns:checkAvailability" />
<output messageLabel="Out"
element="ghns:checkAvailabilityResponse" />
<outfault ref="tns:invalidDataFault" messageLabel="Out"/>
</operation>
</interface>
<binding name="reservationSOAPBinding"
interface="tns:reservationInterface"
type="http://www.w3.org/ns/wsdl/soap"
wsoap:protocol="http://www.w3.org/2003/05/soap/bindings/HTTP/">
<fault ref="tns:invalidDataFault"
wsoap:code="soap:Sender"/>
<operation ref="tns:opCheckAvailability"
wsoap:mep="http://www.w3.org/2003/05/soap/mep/soap-response"/>
</binding>
<service name="reservationService"
interface="tns:reservationInterface">
<endpoint name="reservationEndpoint"
binding="tns:reservationSOAPBinding"
address="http://greath.example.com/2004/reservation"/>
</service>
</description>
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.