Movatterモバイル変換


[0]ホーム

URL:


Zum Inhalt springen
WikipediaDie freie Enzyklopädie
Suche

Web Services Description Language

aus Wikipedia, der freien Enzyklopädie
Web Services Description Language
Screenshot
Dateiendung:.wsdl
MIME-Type:application/wsdl+xml
Entwickelt von:World Wide Web Consortium
Container für:XML
Standard(s):W3C WSDL 1.1
W3C WSDL 2.0



DieWeb Services Description Language (WSDL) ist eine plattform-,programmiersprachen- undprotokollunabhängige Beschreibungssprache für Netzwerkdienste (Webservices) zum Austausch von Nachrichten auf Basis vonXML. WSDL ist ein industrieller Standard desWorld Wide Web Consortiums (W3C).

Inhalte

[Bearbeiten |Quelltext bearbeiten]

WSDL ist eineMetasprache, mit deren Hilfe die angebotenen Funktionen, Daten, Datentypen und Austauschprotokolle einesWebservice beschrieben werden können. Es werden im Wesentlichen die Operationen definiert, die von außen zugänglich sind, sowie die Parameter und Rückgabewerte dieser Operationen. Im Einzelnen beinhaltet ein WSDL-Dokument funktionelle Angaben zu:

  • derSchnittstelle
  • Zugangsprotokoll und Details zumDeployment
  • Alle notwendigen Informationen zum Zugriff auf den Service, in maschinenlesbarem Format

Nicht enthalten sind hingegen:

Beschreibungselemente

[Bearbeiten |Quelltext bearbeiten]
Aufbau einer WSDL-Datei

Services werden durch sechs XML-Hauptelemente definiert:

types(Datentypen)
Definition der Datentypen, die zum Austausch dermessages benutzt werden.
message(Nachricht)
Abstrakte Definitionen der übertragenen Daten, bestehend aus mehreren logischen Teilen, von denen jeder mit einer Definition innerhalb eines Datentypsystems verknüpft ist.
portType(Schnittstellentypen)
Eine Menge von abstrakten Operationen (vier Typen von ausgetauschten Nachrichten):
  • One-way: Der Service bekommt eine Input-Message vom Client.
  • Request-response: Der Service bekommt einen Request (Input-Message) vom Client und sendet eine Antwort (Output-Message).
  • Solicit-response: Der Service sendet eine Message und erwartet eine Antwort vom Client.
  • Notification: Der Service sendet eine Output-Message.
In WSDL 2.0 wurde die Bezeichnung zu Interface geändert.
binding(Bindung)
Bestimmt das konkrete Protokoll und Datenformat für die Arbeitsschritte und Nachrichten, die durch einen bestimmten Port-Typ gegeben sind.
port(Port)
Spezifiziert eine Adresse für eine Bindung, also eine Kommunikationsschnittstelle, üblicherweise einURI. In WSDL 2.0 wurde die Bezeichnung zu Endpoint geändert.
service(Service)
Fasst die Menge von Ports eines Port-Typs zusammen.

Zudem werden diese sechs Hauptelemente in die Gruppe der abstrakten und konkreten Definitionen eingeteilt.

Abstrakte Definitionen:

  • Types
  • Messages
  • PortTypes (ab WSDL 2.0: Interfaces)

Konkrete Definitionen:

  • Bindings
  • Ports (ab WSDL 2.0: Endpoints)
  • Services

Die Definition von konkreten Inhalten unterscheidet WSDL von den bestehenden Schnittstellenbeschreibungssprachen wieIDL. Diese hatten die Schnittstellen bisher nur abstrakt beschrieben.

Anwendung

[Bearbeiten |Quelltext bearbeiten]

WSDL wird häufig in Kombination mitSOAP und demXML Schema verwendet, um Webservices im Internet anzubieten. Ein Client, der einen Webservice aufruft, kann WSDL lesen, um zu bestimmen, welche Funktionen auf dem Server verfügbar sind. Alle verwendeten speziellen Datentypen sind in der WSDL-Datei in XML-Form eingebunden. Der Quellcode, der zum Zusammensetzen der gesendeten Objekte auf der Client-Seite notwendig ist, kann automatisiert aus der WSDL-Datei generiert werden. Der Client kann nun SOAP verwenden, um eine in WSDL gelistete Funktion letztlich aufzurufen.

Anwendungsbeispiel

[Bearbeiten |Quelltext bearbeiten]

Anhand eines Beispiels soll verdeutlicht werden, wie die einzelnen Abschnitte eines WSDL-Dokuments miteinander verknüpft sind. In diesem Beispiel wird ein Dienst ("service") implementiert, der nach Erhalt eines Aktiennamens den aktuellen Handelswert dieser Aktie zurückgibt.

<definitionsname="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><schematargetNamespace="http://example.com/stockquote.xsd"xmlns="http://www.w3.org/2001/XMLSchema"><elementname="TradePriceRequest"><complexType><all><elementname="tickerSymbol"type="string"/></all></complexType></element><elementname="TradePrice"><complexType><all><elementname="price"type="float"/></all></complexType></element></schema></types><messagename="GetLastTradePriceInput"><partname="body"element="xsd1:TradePriceRequest"/></message><messagename="GetLastTradePriceOutput"><partname="body"element="xsd1:TradePrice"/></message><portTypename="StockQuotePortType"><operationname="GetLastTradePrice"><inputmessage="tns:GetLastTradePriceInput"/><outputmessage="tns:GetLastTradePriceOutput"/></operation></portType><bindingname="StockQuoteSoapBinding"type="tns:StockQuotePortType"><soap:bindingstyle="document"transport="http://schemas.xmlsoap.org/soap/http"/><operationname="GetLastTradePrice"><soap:operationsoapAction="http://example.com/GetLastTradePrice"/><input><soap:bodyuse="literal"/></input><output><soap:bodyuse="literal"/></output></operation></binding><servicename="StockQuoteService"><documentation>Myfirstservice</documentation><portname="StockQuotePort"binding="tns:StockQuoteSoapBinding"><soap:addresslocation="http://example.com/stockquote"/></port></service></definitions>

Erläuterung

Durch das Element<operation> innerhalb<portType> wird eine Funktion „GetLastTradePrice“ definiert, die Eingabedaten erhält ("input") und Ausgabedaten ("output") zurückgibt. Eingabedaten sind der Name der Aktie, Ausgabedaten sind der Wert der Aktie. Die Reihenfolge der <input>- und <output>-Elemente legt fest, dass diese Operation eine Anforderung-Antwort-Operation ("request response operation") werden soll. Ändert man die Reihenfolge (z. B. Zuerst <output> dann <input>) oder lässt man eines der beiden Elemente ganz weg, dann ändert sich auch das “Message Exchange Pattern (MEP)”. Dies ermöglicht z. B. auch Operationen zu definieren, die nur eine Anforderung abgeben und nicht auf eine Antwort warten.

Als Programmierer muss man noch festlegen, welche Parameter die Eingabe und die Ausgabe erwarten. Dies geschieht durch das<message>-Element. In unserem Beispiel wird bei der Operation „GetLastTradePrice“ im <input>-Tag auf die Message „GetLastTradePriceInput“ verwiesen.

Im<message>-Element werden einzelne Parameter zu einer Gruppe zusammengefasst, so dass diese für mehrere Operationen zur Verfügung stehen. In unserem Beispiel hat das Message-Element „GetLastTradePriceInput“ nur einen Parameter<part>, der vom Typ „TradePriceRequest“ ist. Die Operation „GetLastTradePrice“ braucht deshalb nur einen Parameter. Wäre innerhalb von Message „GetLastTradePriceInput“ z. B. ein weiterer Parameter für Börse definiert, würde unsere Operation dementsprechend 2 Parameter benötigen. Wie bei einer Funktion kann man auch den Eintrag dieser Parameter mituse="required" erzwingen oder mituse="optional" optional handhaben.

Nun müssen die Typen (String, Integer, eigener Typ) für die Parameter definiert werden. Die Typen werden gesondert innerhalb der<types>..</types>-Tags definiert. Dabei können gemäßXSD komplexe und einfache Datentypen definiert werden. „TradePriceRequest“ ist hier ein komplexer Datentyp, der eine Zeichenkette ("(character) string") erwartet. Vermutlich hat man hier aus Erweiterungsaspekten einen komplexen Typ definiert, obwohl auch ein einfacher DatentypZeichenkette genügt hätte.

Zwischen<binding>..</binding> wird das Nachrichtenformat und das Protokoll definiert. Das Protokoll wird im Attribut "transport" festgelegt, was in unserem BeispielSOAP ist. Außerdem kann noch festgelegt werden, ob die Nachricht im "rpc style" oder "document style" verschickt werden soll und wie die Eingabe und Ausgabe zu kodieren ist. Beim "document style" werden nur Daten an den zuständigen Dienst ("service") gesendet, während beim "rpc style" eine bestimmte Methode samt ihren Parametern gesendet wird, die am Endpunkt aufgerufen werden soll.

Im Element<service> wird ein Endpunkt "(Port)" mittels einesbindings an unsere Operationen gebunden und die Adresse festgelegt, mit der man diesenport erreichen kann.

Entwicklungsstand

[Bearbeiten |Quelltext bearbeiten]

Am 15. März 2001 veröffentlichte dasWorld Wide Web Consortium die Web Service Description Language (WSDL) Note Version 1.1. Am 26. Juni 2007 wurde die Version 2.0 veröffentlicht, die sich in zwei Teile zur Sprachdefinition („Core Language“) und Zusätze („Adjuncts“) gliedert.

Erweiterungen und Abgrenzung zu anderen Entwicklungen

[Bearbeiten |Quelltext bearbeiten]

WSDL spezifiziert lediglich die syntaktischen Elemente eines Webservices, d. h. die Art und Weise, wie ein Client auf den entsprechenden Webservice zugreifen kann.Darüber hinausgehende semantische Spezifikationen eines Webservices sind allerdings oft wünschenswert; Informationen über die Antwortzeit, Kosten eines Services, Sicherheitsbestimmungen sowie genauere Spezifikationen der Effekte einer Operation werden insbesondere zur automatischen Auffindung (Discovery) und Orchestrierung von Diensten benötigt.Zur Beschreibung dieser Parameter gibt es zum einen Erweiterungen von WSDL wieWSDL-S oderWSLA, zum anderen Entwicklungen wieOWL-S oderWSMO, dieOntologien zur semantischen Beschreibung von Webservices definieren. Diese Ontologien sind wesentlich mächtiger bei der Beschreibung von Webservices, bringen aber eine dementsprechende Komplexität mit sich.In derOGSA (Open Grid Services Architecture), einer Standardbeschreibung fürGrid-Services, ist mit GWSDL (Grid-extended WSDL) eine Erweiterung definiert, die es gestattet, formalisierte Service-Status (also Status von Service-Instanzen) zu der Interfacedefinition hinzuzufügen.

Siehe auch

[Bearbeiten |Quelltext bearbeiten]

Weblinks

[Bearbeiten |Quelltext bearbeiten]
Standards desWorld Wide Web Consortiums (W3C)
VD
Empfehlungen

ActivityPub |ARIA |Canonical XML |CDF |CSS |DOM |Geolocation API |HTML |HTML5 |InkML |ITS |JSON-LD |MathML |OWL |P3P |PLS |PNG |RDF |RDF-Schema |RIF |SCXML |SISR |SKOS |SMIL |SOAP |SRGS |SSML |SVG |SPARQL |Timed Text |Turtle |VoiceXML |WSDL |XForms |XHTML |XHTML+RDFa |XInclude |XLink |XML |XML Base |XML-Encryption |XML Events |XML Information Set |XML Namespace |XML Schema |XML Signature |XPath |XPointer |XProc |XQuery |XSL |XSL-FO |XSLT(Elemente)

Arbeitsentwürfe
und Kandidaten

CCXML |CURIE |SMIL Timesheets |sXBL |WICD |XFrames |XBL | XHTML+MathML+SVG |XMLHttpRequest

Anmerkungen

XAdES |XFDL |XHTML+SMIL |XUP

Richtlinien

Web Content Accessibility Guidelines |Multimodal Interaction Activity |Markup Validation Service

Initiativen

Web Accessibility Initiative

Webserver-Schnittstellen
Normdaten (Sachbegriff):GND:4681739-6 (GND Explorer,lobid,OGND,AKS)
Abgerufen von „https://de.wikipedia.org/w/index.php?title=Web_Services_Description_Language&oldid=257429843
Kategorien:

[8]ページ先頭

©2009-2026 Movatter.jp