close

WSDL

Gå til navigasjon Gå til søk

WSDL , forkortelse for Web Services Description Language , er et XML -format ( Extensible Markup Language ) som brukes til å beskrive webtjenester (WS). Versjon 1.0 var den første anbefalingen fra W3C , og versjon 1.1 oppnådde aldri den statusen. Versjon 2.0 ble gjeldende anbefaling fra den enheten.

WSDL beskriver det offentlige grensesnittet til webtjenester. Den er basert på XML og beskriver kommunikasjonsformen, det vil si protokollkravene og meldingsformatene som er nødvendige for å samhandle med tjenestene som er oppført i katalogen. Operasjonene og meldingene den støtter er beskrevet i sammendraget og deretter knyttet til den spesifikke nettverksprotokollen og meldingsformatet.

Derfor brukes WSDL ofte i kombinasjon med SOAP og XML Schema . Et klientprogram som kobler til en webtjeneste kan lese WSDL for å finne ut hvilke funksjoner som er tilgjengelige på serveren. Spesielle datatyper er inkludert i WSDL-filen i form av XML Schema. Klienten kan bruke SOAP til å ringe en av funksjonene som er oppført i WSDL.

WSDL lar oss ha en beskrivelse av en webtjeneste. Spesifiserer det abstrakte grensesnittet som en klient kan få tilgang til tjenesten gjennom og detaljene for hvordan den skal brukes.

WSDL-struktur

WSDL-strukturen har følgende elementer:

Datatyper

<typer>: Denne delen definerer datatypene som brukes i meldingene. Typene definert i XML Schema-spesifikasjonen brukes.

Meldinger

<melding>: Her definerer vi meldingselementene. Hver melding kan bestå av en rekke logiske deler. Delene kan være av hvilken som helst av typene som er definert i forrige avsnitt.

Porttyper

<portType>: Med denne delen definerer vi operasjonene som er tillatt og meldingene som utveksles i tjenesten.

Bindinger

<binding>: Vi spesifiserer kommunikasjonsprotokollene som brukes.

Tjenester

<tjeneste>: Sett med porter og deres adresse. Denne siste delen viser til det som ble gitt av de forrige avsnittene.

Med disse elementene vet vi ikke hva en tjeneste gjør, men vi har den nødvendige informasjonen for å samhandle med den (funksjoner, input/output-meldinger, protokoller...)

Eksempler

Nedenfor er et eksempel på et WSDL-dokument og dets forskjellige seksjoner. I dette spesifikke eksemplet implementeres en tjeneste som viser gjeldende markedsverdi basert på navnet på en børsverdi.

 <definitions  name= "StockQuote"  
          targetNamespace= "http://example.com/stockquote.wsdl" 
          xmlns:tns= "http://example.com/stockquote.wsdl" 
          xmlns:xsd1= "http://example. com/stockquote.xsd" 
          xmlns:soap= "http://schemas.xmlsoap.org/wsdl/soap/" 
          xmlns= "http://schemas.xmlsoap.org/wsdl/" >
 
    <types> 
       <schema  targetNamespace= "http://example.com/stockquote.xsd" 
              xmlns= "http://www.w3.org/2000/10/XMLSchema" > 
           <element  name= "TradePriceRequest" > 
              <complexType > 
                  <all> 
                      <element  name= "tickerSymbol"  type= "string" /> 
                  </all> 
              </complexType> 
           </element> 
           <element  name= "TradePrice" > 
              <complexType> 
                  <all> 
                      <element  name= "price" "  type= "float" /> 
                  </all> 
              </complexType> 
           </element> 
       </schema> 
    </types>
 
    <message  name= "GetLastTradePriceInput" > 
        <part  name= "body"  element= "xsd1:TradePriceRequest" /> 
    </message>
 
    <message  name= "GetLastTradePriceOutput" > 
        <part  name= "body"  element= "xsd1:TradePrice" /> 
    </message>
 
    <portType  name= "StockQuotePortType" > 
        <operation  name= "GetLastTradePrice" > 
           <input  message= "tns:GetLastTradePriceInput" /> 
           <output  message= "tns:GetLastTradePriceOutput" /> 
        </operation> 
    </portType>
 
    <binding  name= "StockQuoteSoapBinding"  type= "tns:StockQuotePortType" > 
        <soap:binding  style= "document"  transport= "http://schemas.xmlsoap.org/soap/http" /> 
        <operation  name= "GetLastTradePrice" > 
           <soap:operation  soapAction= "http://example.com/GetLastTradePrice" /> 
           <input> 
               <soap:body  use= "literal" /> 
           </input> 
           <output> 
               <soap:body  use= "literal" /> 
           </output> 
        </operation> 
    </binding>
 
    <service  name= "StockQuoteService" > 
        <documentation> Min første tjeneste </documentation> 
        <port  name= "StockQuotePort"  binding= "tns:StockQuoteSoapBinding" > 
           <soap:address  location= "http://example.com/stockquote" /> 
        </port> 
    </service>
 
 </definitions>

Se også

Eksterne lenker