Musterverfahren register

Es wird hauptsächlich zur Implementierung verteilter Ereignisbehandlungssysteme in “ereignisgesteuerter” Software verwendet. In diesen Systemen wird das Subjekt in der Regel als “Strom der Ereignisse” oder “Streamquelle von Ereignissen” bezeichnet, während die Beobachter als “Senke der Ereignisse” bezeichnet werden. Die Stream-Nomenklatur simuliert oder passt sich einem physikalischen Setup an, bei dem die Beobachter physisch getrennt sind und keine Kontrolle über die emittierten Ereignisse des Subjekts/Stream-Source haben. Dieses Muster passt dann perfekt zu jedem Prozess, bei dem Daten über E/A ankommen, d. h., wo Daten der CPU beim Start nicht zur Verfügung stehen, sondern “zufällig” ankommen können (HTTP-Anfragen, GPIO-Daten, Benutzereingaben von Tastatur/Maus/…, verteilte Datenbanken und Blockchains, …). Die meisten modernen Sprachen verfügen über integrierte “Ereignis”-Konstrukte, die die Beobachtermusterkomponenten implementieren. Obwohl die meisten “Beobachter”-Implementierungen nicht obligatorisch sind, werden Hintergrundthreads verwendet, die auf Themenereignisse und andere Unterstützungsmechanismen aus dem Kernel lauschen (Linux epoll, …) Sie haben entweder das clientseitige Dienstermittlungsmuster oder das serverseitige Dienstermittlungsmuster angewendet. Dienstinstanzen müssen beim Start bei der Dienstregistrierung registriert sein, damit sie beim Herunterfahren erkannt und abgemeldet werden können. Eine Dienstinstanz ist für die Registrierung bei der Dienstregistrierung verantwortlich.

Beim Start registriert sich die Dienstinstanz selbst (Host- und IP-Adresse) bei der Dienstregistrierung und stellt sich selbst für die Ermittlung zur Verfügung. Der Client muss seine Registrierung in der Regel regelmäßig erneuern, damit die Registrierung weiß, dass sie noch am Leben ist. Beim Herunterfahren wird die Registrierung der Dienstinstanz von der Dienstregistrierung abgemeldet. Das Beobachtermuster ist ein Softwareentwurfsmuster, bei dem ein Objekt, das als Subjekt bezeichnet wird, eine Liste seiner abhängigen Elemente, die so genannten Beobachter, verwaltet und sie automatisch über Statusänderungen benachrichtigt, in der Regel durch Aufrufen einer ihrer Methoden. Ein Registrar eines Drittanbieters ist für die Registrierung und Aufhebender Registrierung einer Dienstinstanz bei der Dienstregistrierung verantwortlich. Wenn die Dienstinstanz gestartet wird, registriert der Registrar die Dienstinstanz bei der Dienstregistrierung.