Web Services Description Language

Aus Mikiwiki
Zur Navigation springen Zur Suche springen

Die Web Services Description Language / WSDL definiert eine plattform-, programmiersprachen- und protokollunabhängige XML-Spezifikation zur Beschreibung von Webservices zum Austausch von Nachrichten.

Die WSDL wird benutzt, um die Struktur eines Webservice zu beschreiben, also die verfügbaren Funktionen, deren Parameter und die Art und Weise der Anforderungsgestaltung. Damit ist auch der Dienst selber automatisierbar, denn der anfragende Server kann seine Anfrage entsprechend dem aktuellen Entwicklungsstand des Dienstes verändern. Insofern sind die Kommunikationswege über eine gewisse zeit hinweg änderungsresistent oder wenigstens wartungsfreundlich.

Die folgende Auflistung zeigt in vereinfachter die grundsätzliche Struktur und die Abhängigkeiten der Elemente in einem WSDL-Dokument.

<definition>
  <service>
    <port name="Name" binding="Binding">
  </service>
  <binding>
    <input />
    <output />
  </binding>
  <portType>
    <operation>
      <input  message="Message" />
      <output message="Message" />
    </operation>
  </portType>
  <message>
    <part name="Key" type="xsd:">
    <part name="Key" type="xsd:">
  </message>
  <types>
    <xsd:complexType>
      <xsd:element name="" type="" />
    </xsd:complexType>
  </types>
</definitions>

Der Anbieter eines Dienstes definiert also zuerst ein Element "<service>", das die Grunddienste deklariert. Erreichbar sind diese jeweils über Ports, die Bindungen beschreiben die geforderte Kodierung des Datenstromes. Auf die Portdefinition folgt die Beschreibung einer oder mehrerer Operationen, die jeweils eine Ein- und Ausgabenachricht ("<Message>") definieren. Die Nachrichten können mehrere Paarameter aifnehmen, die auf nativen XSD-Datentypen basieren oder denen komplexe Definitionen zugrundeliegen. Ist das der Fall, so kommt noch der Abschnitt "<types>" zur Anwendung, wo XML Schema-Typdefinitionen untergebracht sind.

Diese Struktur lässt sich gut in einer Klasse abbilden, die dann im Programm verwendet wird. Eine solche Klasse wird als Proxy-Klasse bezeichnet. Die SOAP-Erweiterungen in PHP5 erledigen das zumindest teilweise automatisch.

Weblinks

Herausgeber Sprache Webseitentitel Anmerkungen
Wordl Wide Web Consortium eng Web Services Description Language (WSDL) 1.1wbm
Wikipedia ger Web Services Description Languagewbm Enzyklopädischer Artikel