Serviceorientierte Architekturen – Grundlegende Konzepte

SOA-Dienste

Wie kann man sich einen SOA-Dienst konkret vorstellen? Im einfachsten Fall lässt sich ein Dienst als Weiterentwicklung von PlugIns auffassen. PlugIns haben ebenfalls eine eindeutige Schnittstelle und eine für den Anwender unsichtbare Implementierung. Sie erweitern die Anwendung um bestimmte Funktionen, die bei der Programmerstellung noch nicht geplant waren.

Anders als bei SOA-Diensten liegen bei PlugIns die Schnittstellen aber meist nicht in maschinenlesbarer Form vor und sie nutzen meist nur eine einzige, sehr starre Schnittstelle. Bei SOA ist das anders. Im Zusammenhang mit Web Services hat sich bei SOA die Web Service Description Language (WSDL) als Beschreibungssprache für solche Schnittstellen durchgesetzt und SOAP als Standard für Nachrichten.

Obgleich WSDL und SOAP an unterschiedliche Transportmechanismen gebunden werden können, werden sie häufig mit synchroner Kommunikation über HTTP assoziiert: ein Client schickt einen Request an einen Server und erhält ein Reply zurück. In vielen Kontexten ist aber eine asynchrone Kommunikation über Messages und Queues vorteilhafter – aus diesem Grund hat sich auch MOM (Message Oriented Middleware) als ein Integrationsparadigma etabliert. Bei asynchroner Kommunikation dominiert inzwischen JMS (Java Message Service).

Viele SOA-Plattformen unterstützen ein breites Spektrum an Austauschformaten, so dass Anwender im Einzelfall entscheiden können, welches Format für den jeweiligen Anwendungsfall am geeignetsten ist. Der Enterprise Service Bus fungiert dann als Bindeglied und Kommunikationsinfrastruktur.

Wird eine SOA-Plattform zur Verfügung gestellt, muss diese konkret betrieben und gewartet werden. Der Diensteanbieter muss die Verfügbarkeit garantieren. Dazu gehören oft Aufgaben, die in der Regel in Rechenzentren geleistet werden wie Datensicherung oder Wartung.

Sicherheit ist ebenfalls ein Punkt, den der Servicebetreiber abdecken muss. Dazu gehören Aufgaben wie Authentifizierung und Authentisierung. Bei der Authentifizierung prüft der Diensteanbieter, ob der Aufrufer auch derjenige ist, der er zu sein behauptet. Die Authentisierung stellt sicher, dass der Aufrufer auch berechtigt ist, die Funktionalität zu nutzen, die er gerade aufruft.

Die beschriebenen Aufgaben gelten für alle Dienste – auch für diejenigen, die der Diensteanbieter gar nicht selbst anbietet, sondern etwa über das Netz nutzt.