Next: Database
Up: Struktur Gateway und Gatekeeper
Previous: Struktur Gateway und Gatekeeper
Der Dispatcher ist verantwortlich für die Zustellung von Nachrichten innerhalb des TIS.
Diese Nachrichten stellen MsgBase-Objekte dar und werden als
``IPC-Messages'' bezeichnet.
Der Dispatcher hat folgende Aufgaben:
- Senden und Empfangen von Nachrichten zwischen sogenannten ``MessageReceiver''-Objekten,
welche sich in verschiedenen Prozessen, aber auch auf verschiedenen Rechnern befinden.
- Management von einer Reihe von Tasks, welche den Durchsatz von Nachrichten regeln.
- Bereitstellung einer API zur Registrierung und Deregistrierung von ``MessageReceiver''-Objekten.
- Nachrichten können nach Priorität synchron aber auch asynchron versandt werden.
Dem Konzept des Dispatchers liegen mehrere Schlüsselkonzepte zugrunde:
- Die gesamte Information, wohin bestimmte IPC-Messages gesendet werden, ist im
Dispatcher integriert. Ein Subsystem, also Gateways, Gatekeeper und die restlichen möglichen
Komponenten geben nur bekannt, welche Nachrichten sie empfangen wollen und welche
Art von Nachrichten sie aussenden. Der Dispatcher verwaltet eine Liste mit Message-Arten.
Für jede Message-Art ist eine Liste von Empfängern vorhanden, welche die Nachrichten empfangen
kann. Die Liste der Empfänger ist nach Prioritäten geordnet. Falls zwei Empfänger dieselbe Priorität
besitzen, dann wird derjenige zuerst benachrichtigt, welcher sich zuerst eingetragen hat. Wenn nun
der Dispatcher eine solche Nachricht erhält, wird er für jeden Empfänger eine Methode für die
Weiterleitung dieser Nachricht ausführen. Die Empfänger werden prüfen, ob die
Nachricht für sie bestimmt ist und entsprechende Aktionen ausführen, falls dies der Fall sein sollte.
Falls während der Sendung der Nachrichten ein Fehler auftritt ist das Logging und die Benachrichtigung
des Fault Managers Aufgabe des Empfängers. Eine Liste mit verschiedenen Message-Arten und
ihren Empfängern ist in Abbildung 4.2 dargestellt.
Abbildung: IPC-Message-Typen und Empfänger
- Es soll ermöglicht werden, synchrone (sendMessage-Aktion) und asynchrone (postMessage-Aktion)
Nachrichten senden zu können. Eine synchrone Nachricht wird direkt an die Empfänger weitergeleitet
und der Sender fährt nicht eher fort, ehe alle Empfänger die Nachricht verarbeitet haben.
Wenn der Sender keine Veranlassung besitzt, auf die Empfänger zu warten, kann eine asynchrone
Nachricht geschickt werden. Aus diesem Grund werden Threads zur Verfügung gestellt, welche
das Abwarten der Empfänger übernehmen.
- Da sich die Kommunikationsumgebung, welche durch den Dispatcher verwaltet wird, laufend
ändern kann (unterschiedliche Komponenten werden hinzugefügt und entfernt), ist eine dynamische
Messagestruktur erforderlich. Dies wird durch die MsgBase-Struktur realisiert.
Ein MsgBase-Objekt besteht aus einer Liste von Tripeln, bestehend aus:
- Name (ASCII-Feld)
- Typ (Enumeration)
- Wert
des Parameters, der in der Liste eingefügt ist. Eine MsgBase-Struktur ist in Abbildung
4.3 exemplarisch dargestellt.
Abbildung 4.3: MsgBase - Struktur
Da der Dispatcher über alle Datentypen informiert ist, können diese IPC-Messages
über das Netz ohne Rücksicht auf deren Struktur gesendet werden.
- Die Vielzahl der von dem Dispatcher verwalteten Objekte werden in einer
Baumstruktur verwaltet. Es werden zwei Arten von Objekten in diesen Baum eingefügt.
Dies sind Containerobjekte und Basisobjekte. Der Unterschied zwischen diesen beiden
Objekten ist, daß Basisobjekte nicht weiter aufgeteilt werden können, Containerobjekte
jedoch weitere Containerobjekte aber auch Basisobjekte unter sich verwalten können.
Es werden folgende Container-Objekte unterstützt:
- Hash-Tabelle
Objekte werden mit String-Kennzeichner gespeichert. Die Speicherung ähnelt
einem Verzeichnisbaum, wobei die Objekte den Dateien entsprechen.
- Array
Die Objekte der Baumstruktur können selbst Funktionen ausführen, um Informationen
über andere Objekte zu erlangen. Dies bildet mit dem Dispatcher das Rückgrad für
eine Managementumgebung. Zudem wird diese Baumstruktur auch benutzt, um bei
Bedarf die Objekte mit deren derzeitigen Status in einer Datenbank abzulegen.
Next: Database
Up: Struktur Gateway und Gatekeeper
Previous: Struktur Gateway und Gatekeeper
Beispielbenutzer SuSE Linux 6.0
Sun May 9 21:16:36 MEST 1999