'Service Facade' (Servicefassade)

Muster des Typs 'Service Facade' (Servicefassade) dienen der losen Kopplung eines Servicerequesters mit der von einer Anwendung bereitgestellten Funktionalität bzw. mit nicht servicefähigen Funktionen. Durch die lose Kopplung wird die Komplexität des Providers verborgen und eine Web-Service-Standardschnittstelle bereitgestellt.

Eine Servicefassade bietet zudem einen Mediationspunkt für die Anwendung von Standardfunktionen wie der Protokollierung.
Diagramm zur Veranschaulichung des Verhaltens des Musters. Anwendungen senden Serviceanforderungen an den Broker, der diese Anforderungen mittels Funktionen erfüllt, die keine Serviceschnittstelle bereitstellen.

Kontext

Wenn sich eine Unternehmensarchitektur in Richtung serviceorientierter Architektur entwickelt, müssen meist vorhandene Systeme integriert werden, mit denen ein großer Teil der Geschäftsabläufe erledigt wird, die aber über keine Servicefähigkeiten verfügen. Diese Anwendungen enthalten häufig Funktionen, die auch den neueren servicefähigen Softwarepaketen zur Verfügung stehen sollten, der Zugriff kann aber nur über Adapter, Messaging oder andere nicht-serviceorientierte Integrationstechniken bereitgestellt werden.

Problem

Bereits vorhandene Unternehmensanwendungen lassen sich nur mit großem Aufwand in eine Umgebung mit serviceorientierter Architektur (SOA) integrieren und Änderungen an diesen Systemen sind kostenintensiv und erfordern spezielle Kenntnisse. Es muss eine Möglichkeit gefunden werden, diese Systeme mit neueren serviceorientierten Paketen und Anwendungen zu verbinden. Insbesondere muss eine Überbrückung zwischen dem synchronen HTTP-Protokoll, das in der Regel von Web-Services verwendet wird, und den Messaging-Protokollen der älteren Anwendungen gefunden werden.

Auswahlanleitung

Dieses Muster eignet sich für Unternehmen, die den anfordernden Clients als Teil einer SOA-Umgebung eine Serviceschnittstelle bereitstellen wollen, sich die Provideranwendungen aber nicht problemlos für die Bereitstellung einer Serviceschnittstelle aufrüsten lassen.

Dieses Muster findet Verwendung, wenn die Provideranwendungen eine XML-Schnittstelle bereitstellen, die Clientanwendungen aber Web-Service-Aufrufe unterstützen. Das Muster lässt sich durch Umsetzungen erweitern, durch die Servicefassaden für Anwendungen mit Nicht-XML-Schnittstellen über WebSphere MQ unterstützt werden.