Der Serviceumsetzer ist ein Serviceimplementierungsmuster, mit dem eine bestimmte Serviceimplementierung mit einer anderen Schnittstelle verfügbar gemacht wird.
Einige Operationen in der Schnittstelle können für bestimmte Benutzer dieser Schnittstelle umstrukturiert oder ausgeblendet werden.
Sie können dieses Muster für Folgendes verwenden:
- Bestimmte Schnittstelle für interne Clients unterstützen, aber externen Clients eine andere Schnittstelle zur Verfügung stellen (die möglicherweise einige Einschränkungen aufweist).
- Gruppe von Services basierend auf einer Standardschnittstelle/einem Standarddatenmodell der Branche für externe Servicekunden zugänglich machen.
- Verschiedene Servicequalitäten anbieten, die jeweils für einen Client ausgewählt werden.
- Verschiedene Versionen desselben Service anbieten, wenn durch neue Versionen Schnittstellenänderungen eingeführt wurden.
- Unterstützung in den Fällen bieten, in denen Clients aus verschiedenen geographischen Bereichen mithilfe von lokalen Messeinheiten Daten senden bzw. empfangen müssen.
- Unterstützung in den Fällen bieten, in denen Clients aus unterschiedlichen geographischen Bereichen eine Sprachkonvertierung übergebener bzw. zurückgegebener Daten benötigen.
Der Service-Provider wird durch die Implementierung einer Enterprise Service Bus-Mediation (ESB) virtualisiert, die die vom Serviceanforderer benötigte Proxy-Schnittstelle implementiert.
Die Mediation setzt die Anforderung entsprechend um und leitet die Anforderung anschließend an den tatsächlichen Service-Provider weiter.
Die Mediation muss auch die Antworten des Zielservice verarbeiten und sie zurück in das Format umsetzen, das der Client erwartet.
Für Clients wird nur der virtuelle, von der Mediation bereitgestellte Service angezeigt, der für die Clients wie der tatsächliche Provider des Service wirkt.
Die Servicemediation kann eine Anzahl zusätzlicher Funktionen implementieren, zu denen die folgenden gehören:
- Authentifizierung
- Berechtigung
- Prüfung und Protokollierung
- Protokollkonvertierung
- Antwortkorrelation
Das nachfolgende Diagramm veranschaulicht ein Beispielszenario für eine Serviceumsetzung:
Lösung
Die Lösung besteht darin, einen Mediationsablauf mit folgendem Inhalt zu implementieren:
- Ein Anforderungsablauf für jede unidirektionale Operation in der Proxy-Service-Schnittstelle, die einer unidirektionalen Operation im Service-Provider zugeordnet ist.
- Ein Anforderungsablauf für jede Anfrage/Antwort-Operation in der Proxy-Service-Schnittstelle, die einer unidirektionalen Operation im Service-Provider zugeordnet ist.
- Ein Anforderungsablauf und ein Antwortablauf für jede Anfrage-/Antwort-Operation in der Proxy-Service-Schnittstelle, die einer Anfrage-/Antwort-Operation in der Service-Provider-Schnittstelle zugeordnet ist.
Die Anforderungsabläufe ordnen jede eingehende Anforderung einem vorkonfigurierten Service-Provider-Endpunkt zu.
Zusätzlich haben Sie die Möglichkeit, die Anforderungs- und Antwortnachrichten zu protokollieren und Traces zu erstellen.