Muster occasions kaufvertrag

Die Anwendung dieses Entwurfsmusters erfordert Designstandards[10], die die Verwendung standardisierter Datenmodelle zwingend vorschreiben, da die bloße Erstellung von Datenmodellen ihre Verwendung nicht garantiert. [11] Obwohl im Prinzip einfach, aber schwer durchsetzbar, da es des Engagements verschiedener Projektteams bedarf, die zusätzliche Anstrengungen seitens jedes Teams bei der Entwicklung von Lösungen für standardisierte Datenmodelle mit sich bringen können. In einigen Fällen muss das Entwurfsmuster canonical Schema in einem bestimmten Domäneninventar angewendet werden, das durch die Anwendung des Entwurfsmusters “Domäneninventar” erstellt wurde. [7] Die Schemas müssen separat als der Servicevertragsentwurf entworfen werden, damit keine Abhängigkeit zwischen ihnen besteht. [11] Im Software-Engineering ist Canonical Schema ein Entwurfsmuster, das im Rahmen des Entwurfsparadigmas für die Serviceausrichtung angewendet wird und darauf abzielt, die Notwendigkeit der Umwandlung von Datenmodell [1] zu reduzieren, wenn Dienste[2] Nachrichten austauschen, die auf dasselbe Datenmodell verweisen. [3] Dieses Entwurfsmuster wird durch die Anwendung des Standardized Service Contract Design Prinzips voll unterstützt. Das Designprinzip für Standardisierte Serviceverträge spricht sich dafür aus, dass die Serviceverträge auf standardisierten Datenmodellen basieren. Dies wird durch eine Analyse des Serviceinventar-Blueprints[8] erreicht, um die häufig vorkommenden Geschäftsdokumente zu ermitteln, die zwischen Diensten ausgetauscht werden. Diese Geschäftsdokumente werden dann standardisiert modelliert. Bei Webdiensten werden die Geschäftsdokumente beispielsweise als XML-Schemas modelliert. Sobald in einer Serviceinventur eine standardisierte Datendarstellungsschicht vorhanden ist, können verschiedene Serviceverträge dieselben Datenmodelle verwenden, wenn sie dieselben Geschäftsdokumente austauschen müssen.

Dadurch entfällt die Notwendigkeit einer Datenmodelltransformation und der mit der Datenmodelltransformation verbundene Verarbeitungsaufwand wird reduziert. Außerdem wird das Wiederverwendbarkeitspotenzial eines Dienstes erhöht, da der Dienst jetzt verbraucht werden kann, ohne dass eine benutzerdefinierte Datenmodelltransformationslogik erforderlich ist. In gewisser Weise reduziert die Anwendung des Canonical Schema-Musters die Notwendigkeit für die Anwendung des Entwurfsmusters Data Model Transformation[9]. Die Interaktion zwischen Diensten erfordert häufig den Austausch von Geschäftsdokumenten. Damit ein Dienstleistungsverbraucher Daten (im Zusammenhang mit einer bestimmten Geschäftseinheit, z. B. einer Bestellung) senden kann, muss er die Struktur der Daten, d.h. das Datenmodell, kennen. Dazu veröffentlicht der Dienstanbieter die Struktur der Daten, die er innerhalb der eingehenden Nachricht vom Dienstverbraucher erwartet.

Im Falle der Implementierung von Diensten als Webdienste[4] wäre dies das XML-Schemadokument. Sobald der Dienstverbraucher das erforderliche Datenmodell kennt, kann er die Daten entsprechend strukturieren. Unter bestimmten Bedingungen kann es jedoch möglich sein, dass der Dienstleistungsverbraucher bereits über die erforderlichen Daten verfügt, die sich auf ein bestimmtes Geschäftsdokument beziehen, aber die Daten entsprechen nicht dem vom Dienstanbieter angegebenen Datenmodell. Diese Diskrepanz zwischen den Datenmodellen führt zu einer Datenmodelltransformation, sodass die Nachricht in die vom Dienstanbieter vorgegebene erforderliche Struktur umgewandelt wird. Aufbauend auf dem oben genannten Beispiel ist es durchaus möglich, dass der Dienstanbieter nach der Verarbeitung des empfangenen Geschäftsdokuments das verarbeitete Dokument an den Service-Consumer zurücksendet, der erneut die Datenmodelltransformation durchführt, um das verarbeitete Geschäftsdokument wieder in das Datenmodell zu konvertieren, das er in seiner Logik zur Darstellung des Geschäftsdokuments verwendet.