Service Virtualisierung für SOAP und REST

Die Service Virtualisierung fügt eine Schicht der Indirektion zwischen Client und Dienst ein um an zentraler Stelle Verwaltung, Sicherheit, Monitoring sowie weitere Funktionalitäten zu bieten. Anstatt sich direkt mit einem Dienst zu verbinden, wendet sich ein Client an einen Stellvertreter des Dienstes, an einen Service Proxy. Der Service Proxy der von manchen Herstellern auch Proxyservice genannt wird unterscheidet sich für den Client in nichts vom tatsächlichen Service, der die Businesslogik zur Verfügung stellt. In der einfachsten Form des Service Virtualization Musters leitet der Service Proxy Aufrufe des Clients unverändert an einen konkreten Service weiter. Nicht direkt mit einem Service zu kommunizieren reduziert die Kopplung zwischen Client und Service. Die physikalische Adresse des Service bleibt dem Client verborgen. Er kennt nur die öffentliche Adresse des Service Proxy. So kann ein Service von einem Netz in ein anderes umziehen, ohne dass Änderungen an seinen Clients notwendig wären können. Abbildung 1 zeigt, wie der Ort und die Adressen von internen Services von Clients verborgen werden. Service Virtualisierung

Abbildung 1: Service Virtualisierung

Der Service mit dem Namen Service B ist auf dem Server mit der Adresse server1.local installiertb und über die Web Adresse server1.local/ServiceB erreichbar. Für den Service B wurde ein Proxy Service eingerichtet, so dass der Service jetzt unter der Adresse

http://services.predic8.com/ServiceC

erreichbar ist. Service Proxies können für verschiedene Protokolle eingerichtet werden. Listing X zeigt eine Konfiguration für Membrane ESB mit einem virtuellen Service für SOAP und einen für eine REST Resource.

[Listing]

			<soapProxy wsdl="http://www.thomas-bayer.com/axis2/services/BLZService?wsdl">
				<soapStackTraceFilter />
					<validator /;>
				</soapProxy;>
		
Listing 1: soapProxy

Um die Vorteile der Service Virtualisierung in vollem Umfang nutzen zu können sollten möglichst alle Aufrufe über die Service Proxies der Service Virtualisierung geleitet werden.

Die Beschreibung eines Services mit WSDL oder einer Resource mit WADL einhält auch die Adressen von Endpunkten auf denen der Service installiert wurde. Die Service Virtualisierung kann, wie in Abbildung 2 gezeigt wird, interne Adressen in externe Adressen umschreiben.

Virtualisierung WSDL

Abbildung 2: Virtualisierung WSDL

Da alle Aufrufe über die zentrale Service Virtualisierung laufen, können von dieser zentrale Dienste wie Monitoring, Logging und Security angeboten werden.

[Abbildung Dienste]

Zentrale Dienste Virtualisierung

Abbildung 3: Zentrale Dienste Virtualisierung