Muster nießbrauchsvorbehalt

Abbildung 6.2 Das Reservierungsmuster. Ein Dienst, der die Reservierung implementiert, betrachtet einige Nachrichten als “Reservierung”, in der er versucht, eine interne Ressource zu sichern, und eine Bestätigung sendet, wenn er erfolgreich ist. Wenn eine Nachricht als “Bestätigung” betrachtet wird, überprüft der Dienst, ob die Reservierung weiterhin gilt. Zwischendurch kann der Dienst die Reservierung auf der Grundlage interner Kriterien ablaufen lassen Ein weiteres Risiko, auf das bei der Implementierung von Reservierungen zu achten ist Denial of Service (ob böswillig oder als Nebenprodukt des Missbrauchs). DoS kann aus ähnlichen Gründen auftreten, die im Deadlock diskutiert werden (d. h. wenn Sie einen Deadlock haben, haben Sie auch ein DoS). Ein anderer Weg ist die Ausnutzung der Vorbehalte durch ständige Reservierung. Je nach Reservierungstimeout können reguläre Firewalls die Erkennung des DoS möglicherweise nicht erkennen, sodass Sie möglicherweise eine Service Firewall (Kapitel 4) verwenden möchten, um diesen Thread zu entschärfen. Das Factory-Entwurfsmuster definiert eine Schnittstelle zum Erstellen eines Objekts zur Laufzeit, lässt jedoch die Entscheidung, welche Klasse instanziiert werden soll, ihren Unterklassen überlassen.

Mit anderen Worten, es verschiebt die Instanziierung auf Unterklassen. Abbildung 4 zeigt, wie Sie dieses Entwurfsmuster optimal nutzen können. Liste 3 zeigt die Verwendung des Factory-Designmusters. In jedem Abschnitt werden Entwurfslösungen für das Problem beschrieben, zunächst ohne Entwurfsmuster und dann mit Entwurfsmustern, einschließlich der Vorteile und Nachteile jedes Ansatzes. Das Reservierungsmuster ermöglichte es uns, diesen Ressourcenzuweisungsprozess in geordneter Weise zu verwalten, indem ein Zwei-Pass-Protokoll implementiert wurde (ähnlich wie ein zweiphasiges Commit). Der Initiator bittet jeden potenziellen Teilnehmer, sich für die Saga zu reservieren. Jeder Teilnehmer versucht, sich zu reservieren und zu benachrichtigen, wenn es erfolgreich ist – also würde A im obigen Szenario Ja zu beiden sagen und B würde Ja zu einem von ihnen sagen. Wenn der Initiator ein OK von allen beteiligten Diensten erhält (innerhalb eines Timeouts), wird er allen Teilnehmern die spezifischen Instanzen innerhalb der Saga mitteilen (d. h. es initiieren).

Tabelle 6.2 Qualitätsattribute für Reservierungsmuster. Dies sind die architektonischen Szenarien, die uns dazu veranlassen können, über die Verwendung des Entkoppelten Aufrufmusters nachzudenken. Fast jedes Land hat Fernzüge, um von Ort zu Ort zu pendeln. Die Eisenbahnabteilungen verfügen über ein elektronisches Reservierungssystem, um Fragen zu Fahrplänen und Preisen zu stellen und Buchungen vorzunehmen. Das bestehende Frontend zu diesem Reservierungssystem sind ihre proprietären Terminals, auch Greenscreens genannt, die hauptsächlich von Reisebüros genutzt werden. Eine Sache, die Sie tun müssen, ist, einen Live-Thread im Service zu halten, um sicherzustellen, dass, wenn die Lease oder Reservierung abläuft, jemand da ist, um zu bereinigen. Eine Option ist das oben erwähnte Active Service-Muster. Sie können Technologien verwenden, die zeitgezeitende Ereignisse unterstützen und Ihnen den “Weckdienst” bereitstellen.

Wenn Sie beispielsweise auf einem EJB 3.0-Server ausgeführt werden, können Sie Einzelne Aktionstimer verwenden, d. h.

Comments are closed.