Das Internet, so wie es die meisten von uns wahrnehmen und nutzen, besteht aus Webseiten und Webapplikationen, auf die wir täglich zugreifen und mit denen wir interagieren können. Dabei nehmen wir einen aktiven Part ein und suchen gezielt nach Informationen.
Es gibt aber auch den umgekehrten Weg, nicht wir als Nutzer rufen Webseiten auf, sondern wir bekommen die Informationen, die wir benötigen über einen Webservice.
Dienste, die ein Betreiber im Internet anbietet und die von anderen Softwaresystemen über Schnittstellen genutzt werden nennt man Web Services.
Als ein einfaches Beispiel kann die Preissuche für einen bestimmten Artikel im Internet herangezogen werden. Entweder, wir suchen solange in verschiedenen Webshops, bis wir den günstigsten Anbieter gefunden haben, oder wir nutzen die zweite Variante und lassen den Web Service die eigentliche Arbeit erledigen. Der Web Service fragt eigenständig die verschiedenen Shops an und liefert am Ende eine Liste mit Preisen von allen Anbietern zum Vergleich.
Zu den bekanntesten Web Services gehören Google und Amazon.
Wie passt dabei SOAP ins Bild?
Ein Web Service kommuniziert mit seinen Clients (Nutzern) durch die Übertragung von XML-basierten Nachrichten über Internetprotokolle (http). Dabei werden drei Standards definiert: SOAP, WSDL und UDDI.
SOAP ist ein XML-basiertes Kommunikationsprotokoll. Es enthält die Nachricht die zwischen Server und Client ausgetauscht wird. Durch die Kombination der Übertragung (XML und http) wird das Protokoll sowohl programmiersprachen- als auch plattformunabhängig.
WSDL (Web Service Description Language) ist eine XML-basierte Sprache mit der die Schnittstelle eines Web Service beschrieben wird.
Im UDDI-Verzeichnis (Universal Description Discovery and Integration) können alle Web Services registriert werden, sodass der Client den passenden Web Service auf seine Anfrage findet.
Also nochmal zusammengefasst:
Es gibt drei Akteure: Den Anbieter (Server), den Konsumenten (Client) und ein Service Verzeichnis (UDDI-Verzeichnis).
Als Anbieter gebe ich eine Beschreibung des Web Services mit Informationen über die angebotene Schnittstelle und das Kommunikationsprotokoll in WSDL Format an ein UDDI-Verzeichnis zur Registrierung.
Jeder Client kann nun eine Abfrage an das UDDI-Verzeichnis stellen und erhält anschließend die genaue Adresse, mit der der Web Service erreichbar ist. Dort kann er nun vom Anbieter eine Beschreibung anfordern, wie die Schnittstelle zu verwenden ist (WSDL). Über das Kommunikationsprotokoll (SOAP) ist der Client in der Lage seine Anfrage an die Schnittstelle des Servers zu senden und so den Dienst zu nutzen.
Welche Informationen enthält das WSDL Dokument?
Wenn wir mit dem Simplifier einen SOAP Konnektor erstellen, ist für uns vor allem der Aufbau des WSDL Dokuments interessant. In dieser Datei werden die folgenden Elemente dargestellt, um die Schnittstelle zu einem Web Service genau zu definieren:
- < type > = verwendete Datentypen
- < message > = abstrakte Beschreibung der Nachrichten die übertragen werden
- < portType > = aufrufbare Operationen und die zugehörigen Parameter
- < binding > = verwendetes Kommunikationsprotokoll
- < service > = Kommunikationsendpunkt
Wie lege ich einen SOAP-Konnektor im Simplifier an?
Die Erstellung eines SOAP Konnektors im Simplifier ist denkbar einfach. Für das Anlegen des Konnektors genügt die Angabe der WSDL URL und innerhalb der Konnektor Aufrufe werden einzig zwei Parameter zwingend benötigt.
Wie genau das Anlegen eines SOAP Konnektors im Simplifier funktioniert, sehen Sie im folgenden Video.
Als Beispiel möchten wir von einem Web Service anhand der IP Adresse das zugehörige Land erfahren. Die passende WSDL Datei gibt es im Internet unter http://www.webservicex.com/geoipservice.asmx?WSDL (Stand 27.09.2017, die Funktionalität des Links wird nicht dauerhaft geprüft).
Schritt 1: Anlegen eines SOAP Konnektors
Unter der Kachel „Konnektoren“ kann eine neue Konnektor-Hülle angelegt werden. Nachdem ein Name vergeben und der richtige Typ ausgewählt wurde (SOAP) geht es weiter mit der Möglichkeit eine Anmeldemethode hinzuzufügen. Für unser Beispiel benötigen wir jedoch keine extra Authentifizierung, deshalb springen wir gleich weiter zu den spezifischen Daten. Hier benötigt der Konnektor lediglich die WSDL URL.
Schritt 2: Anlegen eines Konnektor Aufrufs
Für den Konnektor Aufruf müssen der „bindingName“ und „operationName“ als Eingabewerte aus der WSDL Datei gelesen werden. Zusätzlich möchten wir dem Konnektor die IP Adresse als Input übergeben, um das zugehörige Land zu erfahren. Dafür nutzen wir die Schreibweise: soap/<operationName>/<parameter>. Der Parameter Name kommt dabei ebenfalls aus dem WSDL Dokument.
Als Ausgabe Parameter reicht ein /, um alle Daten zurückzubekommen.
Schritt 3: Verwendung des Konnektors
Um den Konnektor in einer Applikation zu verwenden, wird er im Process Designer mithilfe der Aktivität „Daten Objekt“ eingefügt. Wir können dem Konnektor im Eingabe Dialog alle Parameter übergeben, die er benötigt und im Ausgabe Dialog definieren, in welches Widget wir die erhaltenen Informationen speichern wollen.