SOA-Grundlagen

SOA richtig verstehen und verwenden

Die Bestandteile einer SOA im Überblick

Die SOA-Bausteine: Moderne Services

Moderne Services sind das zentrale Element einer serviceorientierten Architektur. Sie können zum Beispiel als SOAP- oder Rest-Web-Services mit der Unterstützung diverser Entwicklungsumgebungen und Frameworks vergleichsweise einfach implementiert werden. Einige SOA-Suiten lassen zu, Services grafisch zu implementieren (siehe etwa Screenshot "Flowservices" auf der vorherigen Seite) Dies erleichtert Entwicklern den Einstieg, die nicht über viel Erfahrung mit C# oder Java verfügen. Solche Services bieten einzelne Dienstleistungen wie die eingangs erwähnte Dokumentgenerierung an. Anwendungen, die solche Dienstleistungen offerieren, bezeichnet man als Service-Provider oder Serviceanbieter. Serviceanbieter müssen nicht ausschließlich aus dem eigenen Unternehmen kommen. Es gibt eine Vielzahl externe Webservices wie zum Beispiel Wetterservices, Landkartenservices, Services für die Währungsumrechnung und zum Anzeigen von Börsenkursen.

Die SOA-Bausteine: Client-Anwendungen

Client-Anwendungen verwenden die zuvor genannten Services und werden daher Service Consumer oder Servicekonsumenten genannt. In der Regel erhalten sie von Services Daten zu einer Anfrage, um sie zu visualisieren. Ein anderer Anwendungsfall ist, wie im Fall des eingangs genannten PDF-Services, die Daten in ein anderes Format transformieren zu lassen. Um sich mit Services zu verbinden, muss eine Client-Anwendung einen Service "entdecken". Zur Entdeckung gehört zu wissen, dass der Service existiert, wie seine Schnittstelle beschaffen ist und welche Anforderungen sie erfüllt. Dazu bietet der Serviceanbieter potentiellen Konsumenten Dienstleistungen über eine Service Registry an, in denen die Schnittstellenbeschreibungen der Services veröffentlicht sind (siehe etwa Bild unten).

Die Service Registry verändert die Kommunikation des Unternehmens erheblich, denn diese Schnittstellenbeschreibungen können direkt über die Oberfläche einer Registry erforscht werden. Noch effizienter ist es, Services und deren Beschreibungen gleich über die Entwicklungsumgebung zu finden. Der Entwickler ist mit aussagekräftigen Beschreibungen des Services sofort in der Lage, entsprechenden Quellcode für die Integration des Services mit Hilfe eines Adapters zu erzeugen. Möglich wird dieses Verfahren über einen normierten und daher sehr genau definierten Servicevertrag (Service Contract).

Die SOA-Bausteine: Serviceverträge

Der Servicevertrag besteht üblicherweise aus einem fachlichen und technischen Teil. Der fachliche Teil beschreibt den Service in natürlicher Sprache und definiert hierbei die verschiedenen Adressen, unter denen der Service erreichbar ist. Der fachliche Teil des Vertrags sollte zudem festlegen, welche nichtfunktionalen Anforderungen der Service erfüllt, zum Beispiel wie die Verfügbarkeit des Services und die Antwortzeiten ausgelegt sind.

Der technische Teil des Services ist im Fall eines SOAP-Services (Simple Object Access Protocol) eine WSDL-Datei. Die Web Service Definition Language (WSDL) ist eine speziellen Sprache zur Beschreibung der Schnittstelle eines Webservices auf Basis der XML. Eine WSDL enthält sechs XML-Hauptelemente: Datentypen, Nachrichten, Schnittstellen, Datenbindung und Services mit ihren Endpunkten. Nachrichten definieren, wie Anfragen gestellt und Antworten erhalten werden. Hierbei werden Transportobjekte ausgetauscht, deren Datentypen und Datenstrukturen in der WSDL in Form von XML exakt beschrieben werden. Um die Datenstrukturen zu definieren, verwendet man hierzu eine oder mehrere XSD-Dateien.