WSDL: Web Services Description Language
Bei der Web Services Description Language handelt es sich um eine XML-basierte Beschreibungssprache, auch Metasprache genannt. XML steht dabei für Extensible Markup Language. WSDL dient als Schnittstellenbeschreibung von den im Internet angebotenen Diensten (Web Services). Web Services stellen mittels Nachrichtenaustausch und entfernter Funktionsaufrufen Funktionalitäten über das Internet bereit. Grundsätzlich handelt es sich bei WSDL-basierten Diensten um Computer-zu-Computer-Kommunikation und nicht um eine Kommunikation zwischen Mensch und Computer.
Der immense Vorteil von WSDL liegt in der Unabhängigkeit von Plattformen, Protokollen und Programmiersprachen. So kann ein reibungsloser Austausch zwischen heterogenen Systemen stattfinden (siehe WSDL in der Intralogistik).
WSDL als Teil der Basis-Infrastruktur für Web Services
WSDL bildet zusammen mit zwei weiteren Standards, SOAP (Simple Object Access Protocol) und UDDI (Universal Description, Discovery and Integration), die Basis-Infrastruktur für Web Services. Während WSDL den Dienst beschreibt, beispielsweise wo er sich befindet, welche Protokolle genutzt werden und welche Funktionalitäten und Parameter zur Verfügung stehen, legt SOAP das Format von Frage/Antwort fest. UDDI fungiert dagegen als Verzeichnis und ermöglicht es, entsprechende Web Services zu finden.
Universal Description, Discovery and Integration
Der Verzeichnisdienst Universal Description, Discovery and Integration (UDDI) wurde von mehreren Unternehmen entwickelt, darunter IBM und Microsoft. Das UDDI-Register unterstützt Unternehmen und deren Web Services dabei, sich nach Name, Produkt und Standort im Internet auflisten zu lassen. UDDI baut auf mehreren etablierten Industriestandards auf, darunter HTTP, XML, XSD, SOAP (siehe Simple Object Access Protocol) und natürlich der eigentlichen Schnittstellenbeschreibung WSDL.
Simple Object Access Protocol
Simple Object Access Protocol beschreibt ein Netzwerkprotokoll, um Daten innerhalb des Internets und zwischen unterschiedlichen Rechnersystemen auszutauschen. Es unterstützt dabei alle vorhandenen W3C-Standards wie etwa WS-Addressing, WS-Policy und WS-Security. Wichtig: Seit der Version 1.2 wird das Akronym nicht mehr offiziell genutzt. Das World Wide Web Consortium argumentiert, dass zum einen der Gebrauch von SOAP nicht simpel genug ist, zum anderen werden laut W3C mit dem Protokoll nicht nur Zugriffe auf Objekte ermöglicht.
SOAP is a lightweight protocol intended for exchanging structured information in a decentralized, distributed environment. SOAP uses XML technologies to define an extensible messaging framework, which provides a message construct that can be exchanged over a variety of underlying protocols. The framework has been designed to be independent of any particular programming model and other implementation specific semantics.
Microsoft
Hauptelemente WSDL
- Informationen über öffentlich verfügbare Funktionen
- Adress-Informationen, um den Service zu lokalisieren
- Informationen über das zu benutzende Transportprotokoll
- Datentyp-Informationen für XML-Messages
Beispiele – Web Services Description Language
- Google Maps: Der Anwender fragt via Browser beziehungsweise Smartphone-Applikation Koordinaten ab oder tippt den Namen einer Örtlichkeit (Stadt, Sehenswürdigkeit) ins Suchfeld. Der Google-Server liefert daraufhin eine Ansammlung von Informationen – Route, Kilometer, Entfernung, Informationen zur Region, Kartenausschnitt.
- Sendungsverlauf, Tracking: Kunde fragt via Browser oder Smartphone-Applikation nach dem Status seiner Paketsendung. Anbieter wie DHL oder Hermes können daraufhin den letzten erfassten Prozess (Scan) anzeigen lassen. Routing in Echtzeit ist dabei nicht vorgesehen (kein GPS, keine Umweltvermessung).
Regelwerke: Unterscheidung von abstrakt und konkret
In der WSDL werden abstrakte und konkrete Syntax (Regelwerk) unterschieden. Dabei umfasst die abstrakte Beschreibung die Funktionalität eines Dienstes, während die konkrete Beschreibung das Nachrichtenformat beziehungsweise Übertragungsprotokoll und die exakte Netzwerkadresse eines Dienstes zusammenfasst. Diese Trennung ermöglicht eine allgemein verwendbare und modulare Schnittstellenbeschreibung in mehreren WSDL-Dokumenten.
Hinweis: Die WSDL wird vom Webserviceanbieter im Internet zur Verfügung gestellt. Die Metasprache ist in der Regel frei zugänglich: Als Beispiel kann sich jeder Interessierte die WSDL-Datei von der DHL herunterladen und via Text-Editor öffnen. Wichtig dabei: WSDL ist grundsätzlich maschinell als auch ‚human readable‘. Öffnet ein Nutzer eine solche Datei, kann dieser den Code ohne Fachwissen nachvollziehen.
WSDL in der Intralogistik
In der Intralogistik kommen Web Services überall dort zum Einsatz, wo es eine Kommunikation zwischen Partnersystemen gibt. Die meisten Warehouse-Management-Systeme kommunizieren heutzutage via Web Services mit externen Fremdsystemen. Als Beispiele sind ERP-System (Host) oder ein klassisches Versandsystem genannt.
Praxisbeispiel: Web Services für die Kommunikation mit dem Host – beispielsweise AX Dynamics von Microsoft. Das Warehouse-Management-System kommuniziert mit der AX-Maschine und fungiert dabei als Client und als Web-Service-Anbieter. Dabei ist die plattformübergreifende Kommunikation zwischen AX (Windows mit C#) und dem Lagerverwaltungssystem (Linux, Java) hervorzuheben.
Vorteile und Nachteile von WSDL
Da WSDL lediglich die syntaktischen Elemente eines Web Services spezifiziert, fehlen weitere Informationen, wie zum Beispiel die Kosten eines Dienstes oder die Daten zur Antwortzeit. Ebenfalls fehlen Informationen zu den jeweiligen Sicherheitsbestimmungen. Aus diesem Grund gibt es mittlerweile auch Erweiterungen von WSDL wie WSDL-S (S steht für Semantic), WSLA (Web Services Level Agreement – zwischen Service und Kunde/Anwender) oder GWSDL (Grid Web Service Description Language).
Vorteile
- Es ist ein plattformunabhängiger XML-Standard
- Ist seit vielen Jahren etabliert
- Die Syntax der Schnittstelle kann genau definiert werden
- Unterschiedliche Realisierungen einer abstrakten Schnittstelle sind möglich, etwa SOAP über HTTP oder SMTP (Ausgangsserver E-Mail)
Nachteile
- Die verschiedenen Protokollbindungen (HTTP vs. SMTP) können über eine unterschiedliche Semantik verfügen
- Es gibt keine eindeutige Unterscheidung zwischen synchron und asynchron
- Es gibt keine komplexen Interaktionsmuster
- Es gibt keine qualitativen Aspekte
- Es gibt keine regulierten Sicherheitsaspekte. Daher ist beim Transport darauf zu achten, dass wichtige Webservices verschlüsselt werden oder eine Authentifizierung (nutzerbasiert) stattfindet
- Ein besonderes Augenmerk liegt auf der Performance. Diese wird durch XML, Parsen und Dateigröße negativ beeinflusst. Der Verwaltungsaufwand nimmt bei stark verteilten Systemen zu. Der Overhead ist daher teilweise erheblich
- Es ist wesentlich mehr Know-how erforderlich als etwa für Remote Procedure Call. Es gilt: Programmiersprachen, mit denen man Webservices einbinden will, benötigen spezifische Bibliotheken; zum Beispiel für Document Object Model
Zusammenfassung
Eine WSDL (Web Service Description Language) ist ein XML-Dokument, das die Operationen, Parameter, Anforderungen und Antworten definiert, die in Webservice-Interaktionen verwendet werden. WSDL dient dazu, die Sprache und Grammatik zu definieren, die von Webservice-Clients und -Servern verwendet werden. Es handelt sich dabei immer um automatisierte Kommunikation zwischen Applikationen und Netzwerken. Als Beispiel für einen solchen Austausch ist das Tracking von Sendungen genannt (KEP-Diensten). Die aktuelle WSDL-Version 2.0 wurde vom World Wide Web Consortium 2007 eingeführt. Heute ist WSDL als industrieller Standard des World Wide Web Consortium (W3C) anerkannt, auch wenn es formell nur eine Empfehlung bleibt. Im englischen Sprachgebrauch wird das Kürzel dieser Metasprache nicht buchstabiert, sondern ‚wiz-dull‘ ausgesprochen.
WSDL-Bild: CC BY-SA 2.5 / World Wide Web Consortium