Web Services Description Language (WSDL)

WSDL hat ähliche Rolle wie IDL in konventinalen Middelware Platformen.
WSDL spezifikatione sind XML Dokumente welche Web Services beschreiben. Im Unterschiend zu IDL ist WSDL zu keiner Platfom gebunden.
Im Web Service Kontext kann jeder Service duchr verschieden Protokolle zugägngliche gemacht werden, deswegenist es wichtig das diese Information als der Servicebeschreibung bereitgestellt ist.1)

Struktur

Im einzelnen beinhaltet ein WSDL-Dokument funktionelle Angaben zu:

  • dem Interface
  • Zugangsprotokoll (Details zum Deployment)
  • Alle notwendigen Informationen zum Zugriff auf den Service, in maschinenlesbarem Format

Nicht enthalten sind hingegen:


  • types - Definition der Datentypen, die zum Austausch der messages benutzt werden
  • message - Abstrakte Definitionen der übertragenen Daten, bestehen aus mehreren logischen Teilen, von denen jedes mit einer Definition innerhalb eines Datentypsystems verknüpft ist.
  • operations - an abstract description of an action supported by the service
  • portTypes - Eine Menge von abstrakten Arbeitsschritten
  • binding - Bestimmt das konkrete Protokoll und Datenformat für die Arbeitsschritte und Mitteilungen, die durch einen bestimmten portType gegeben sind.
  • port - Spezifiziert eine Adresse für eine Bindung, also eine Kommunikationsschnittstelle, üblicherweise eine URI
  • services - Fassen eine Menge von verwandten Ports zusammen

Beispiel

Ein W3C Beispiel:

<?xml version="1.0"?>
<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>My first service</documentation>
        <port name="StockQuotePort" binding="tns:StockQuoteBinding">
           <soap:address location="http://example.com/stockquote"/>
        </port>
    </service>
 
</definitions>

Relevanten Themen

Links

1) Dieses korreliert auch mit dem Faktor das SOAP zu verschiedene Transportprotokollen gebunden werden kann
de/ws/wsdl.txt · Last modified: %2008/%04/%26 %12:%Apr by aho
Translations of this page:
chimeric.de = chi`s home Creative Commons License Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0