Servicevertrag Muster

Ein Dienstvertrag muss Datenschnittstellen definieren, die die Datenintegrität wahren, und Dienstschnittstellen, die Geschäftslogik vor Dienstanforderern verbergen. In Bezug auf die Idee, Schnittstellen in Client-Module zu setzen, ist dies effektiv, was wir ein SPI-Muster aufgerufen haben. Es scheint eine Frage zu sein, ob Sie mehrere Clients oder mehrere Implementierungen erwarten. Das Argument, die Gruppe der API-Schnittstellen in ein eigenes Modul zu integrieren, besteht darin, mehrere Clients (z. B. viele Module nennen das “Customer”-Modul) und (alternative) Implementierungen einfach zu unterstützen. Es in einem Kunden zu setzen fühlt sich seltsam für andere Kunden; in einem Modul fühlt sich die Implementierung für andere Modulimplementierungen seltsam an. Die Agilität, die eine serviceorientierte Architektur (SOA) verspricht, wird in der Regel an der Wiederverwendbarkeit der enthaltenen Dienste gemessen. Diese Wiederverwendbarkeit bezieht sich jedoch direkt auf die Art und Weise, wie der Servicevertrag Servicefunktionen definiert. Ein Dienst, der auf einem potenziell wiederverwendbaren Funktionskontext[6] basiert, aber mit einem Vertrag, der diese Wiederverwendbarkeit nicht korrekt vermittelt, erreicht sein Wiederverwendbarkeitspotenzial nicht. Die Vorgänge des Dienstes müssen mithilfe standardisierter Benennungskonventionen definiert werden. Dies gilt auch für die konstituierenden Eingabe- und Out-Nachrichtennamen und die entsprechenden Typnamen.

Dies trägt dazu bei, die korrekte Auslegung des Servicevertrags zu erhöhen, was wiederum die Wiederverwendung und Interoperabilität des Dienstes erhöht. Wenn Dienstleistungsverträge ihre Fähigkeiten klar zum Ausdruck bringen, verringert sich auch die Wahrscheinlichkeit von Service-Duplizierungen. Eines ihrer Ziele besteht darin, den Bedarf an Datentransformationen zu reduzieren, da zwei Dienste miteinander interagieren, was erreicht werden kann, wenn die Serviceverträge standardisierte Datenmodelle verwenden, z. B. XML-Schemas, wenn die Dienste als Webdienste implementiert wurden. Dies trägt auch dazu bei, die Interoperabilität von Diensten zu erschweren. Ein weiteres wichtiges Ziel dieses Entwurfsmusters ist die Verwendung einer standardisierten Art, Servicefunktionen auszudrücken, damit ihr Zweck und ihre Fähigkeit zur Entwurfszeit leicht verstanden werden können. [8] Datenschnittstellen definieren Funktionen, die Informationen zu Datenentitäten zurückgeben, Suchergebnisse zurückgeben und Validierungsregeln festlegen und Validierungsergebnisse zurückgeben.