Ubergabe protokoll Muster

Eine typische Protokollschicht-Schnittstellen mit einer oberen und einer unteren Ebene des Protokolls. In den meisten Designs besteht eine große Abhängigkeit zwischen verschiedenen Ebenen des Protokolls. Dadurch wird die Protokollstapelimplementierung starr und unflexibel. Änderungen in einer Schicht perkolaten häufig zu anderen Layern. Das Protokollschicht-Entwurfsmuster behebt diese Einschränkungen, indem die einzelnen Protokollebenen entkoppelt werden. Die Protokoll-Layer-Klasse dient als Grundlage für das Protokoll-Layer-Entwurfsmuster. Diese Klasse definiert die gemeinsame Schnittstelle für Interaktionen zwischen verschiedenen Ebenen eines Protokolls. Dies hat mehrere Vorteile: Das Beispiel auf der linken Seite zeigt die Struktur eines dreischichtigen Protokollstapels. Die Reihenfolge der Aktionen in Dersenderichtung ist: In einigen Fällen kann es je nach der zum Erstellen des Dienstes verwendeten Technologie möglich sein, zwei verschiedene Protokolle zu unterstützen, um den Dienst für verschiedene Arten von Dienstverbrauchern zugänglich zu machen (Dual Protocols Design Muster[6]). Mit WCF kann beispielsweise derselbe Dienst für die gleichzeitige Verwendung von HTTP- und TCP/IP-Protokollen konfiguriert werden. Canonical Protocol ist ein Entwurfsmuster, das innerhalb des Entwurfsparadigmas für die Serviceausrichtung angewendet wird, das versucht, Dienste innerhalb eines Dienstinventars[1] interoperabel miteinander zu machen, indem die von den Diensten verwendeten Kommunikationsprotokolle standardisiert werden. Dadurch entfällt die Notwendigkeit, Kommunikationsprotokolle zu überbrücken, wenn Dienste unterschiedliche Kommunikationsprotokolle verwenden. [2] Die folgenden Szenarien werden vom Datalink-Layer-Beispiel des Protokoll-Layer-Entwurfsmusters unterstützt: Einer der ausgereiftesten und am weitesten verbreiteten Kommunikationsmechanismen wird vom Webdienst-Framework bereitgestellt.

Neben der Wahl eines Kommunikationsframeworks müssen auch die eigentlichen Nachrichtenprotokolle standardisiert werden. Zum Beispiel, ob Webdienste mithilfe von SOAP über HTTP oder einfach mithilfe von RESTful-Diensten erstellt werden. Bei der Standardisierung auf SOAP-basierten Webdiensten muss auch die spezifische Version des SOAP-Protokolls vereinbart werden, d. h. SOAP v 1.1 oder SOAP v 1.2. Die von verschiedenen Projektteams entwickelten Dienste könnten auf unterschiedlichen Kommunikationsmechanismen basieren. Daher kann ein Dienstinventar mit unterschiedlichen Dienstsätzen führen, die jeweils einem anderen Satz von Protokollen entsprechen. Wenn es um die Wiederverwendung von Diensten mit unterschiedlichen Kommunikationsprotokollen geht, ist eine Art Kommunikationsüberbrückungsmechanismus erforderlich. Beispielsweise sind Dienste, die mit dem JMS-Messagingprotokoll entwickelt wurden, nicht mit Diensten kompatibel, die .NET Remoting verwenden. Abgesehen von zusätzlichen Kosten erhöht der Einsatz einer solchen Überbrückungstechnologie den Latenz- und Kommunikationsaufwand. Dies macht den Dienst weniger zu einer wiederverwendbaren und wiederverwendbaren Ressource[3] und widerspricht den Richtlinien des Service Composability Design Prinzips. Um ein Dienstinventar zu entwerfen, in dem alle Dienste miteinander interoperabel sind, sodass sie in verschiedene Lösungen umgewandelt werden können, schreibt die Anwendung des Canonical Protocol-Musters die Standardisierung der von den Diensten verwendeten Kommunikationsprotokolle vor.

Wenn alle Dienste dasselbe Kommunikationsprotokoll verwenden, entfällt die Anforderung an eine Überbrückungstechnologie, und die Kommunikation zwischen Diensten wird optimiert. [4] Bei einem Protokollstapel fließen Daten (Paket) von oben nach unten in Senderseite und gegenüber in der Empfängerseite, wie unten gezeigt. Um ein Kommunikationsprotokoll zu standardisieren, müssen die Funktionen des Protokolls mit den Anforderungen an die Dienstinteraktion verglichen werden, einschließlich Sicherheit, Effizienz und Transaktionsunterstützung. Im Falle von Webdiensten, z. B. wenn eine Dienstzusammensetzung explizite Transaktionsunterstützung erfordert, wäre SOAP über HTTP eine bessere Wahl als die Verwendung von RESTful-Diensten.

0 Shares:
You May Also Like