Posted on

Protokoll referat Muster

Das Beispiel auf der linken Seite zeigt die Struktur eines dreischichtigen Protokollstapels. Die Abfolge der Aktionen in Senderichtung ist: 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 folgenden Szenarien werden vom Datalink Layer-Beispiel des Protokoll-Layer-Entwurfsmusters unterstützt: Um ein Kommunikationsprotokoll zu standardisieren, müssen die Features 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. Bei der Wahl eines Kommunikationsrahmens müssen die Reife, die Skalierbarkeit und die Lizenzkosten berücksichtigt werden, da Gebäudedienste mit einem Protokoll, das in naher Zukunft veraltet sein wird, die Wiederverwendbarkeit solcher Dienste beeinträchtigen und erhebliche Zeit und Anstrengungen erfordern würden, um den Dienst neu zu gestalten. 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] Die Anwendung dieses Entwurfsmusters erfordert die Auswahl einer Technologiearchitektur, die ein gemeinsames Kommunikationsframework bereitstellt, sodass alle Dienste in einem Inventar über dasselbe Kommunikationsprotokoll miteinander kommunizieren können. Dies hängt davon ab, wie die Dienste innerhalb eines Serviceinventars verwendet werden. Wenn die Dienste nur Teil von Dienstzusammensetzungen sein werden, die immer ein bestimmtes Kommunikationsprotokoll verwenden (aus Effizienz- und Sicherheitsgründen), können alle Dienste innerhalb dieses Dienstinventars auf einem solchen Kommunikationsprotokoll aufbauen, auch wenn es nicht das am häufigsten verwendete Protokoll ist. 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 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: Canonical Protocol ist ein Entwurfsmuster, das innerhalb des Service-Orientierungs-Designparadigmas angewendet wird, das versucht, Dienste innerhalb eines Dienstinventars[1] miteinander interoperabel 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] 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]).