-
Technisches
Erfindungsgebiet
-
Die vorliegende Erfindung betrifft
ein Verfahren zum Aufbauen eines Teilnetzes in einem durch ein Ortsnetz
(LAN – Local
Area Network) verbundenen verteilten Sprachspeichersystem (VMS – Voice Messaging
System) und dynamisches Synchronisieren aller Knoten des VMS.
-
Stand der
Technik
-
Im Stand der Technik sind verteilte
VMS- (Voice Messaging System) Netze in Ortsnetzen (LANs – Local
Area Networks) vorgekommen. In diesen Ausführungsformen war jedoch das
gesamte LAN dem VMS-Netz gewidmet. Dies ist unrationell, da beispielsweise
eine Firma mehrere LAN erwerben und unterhalten muß, um Verknüpfbarkeit
für ein Computernetz
wie auch für
ein VMS-Netz bereitzustellen. Weiterhin wird durch diesen Ansatz
eine mögliche
Verknüpfbarkeit
zwischen den zwei oder mehr Netzarten gesperrt.
-
Angesichts dessen besteht in der
Technik ein Bedarf nach Teilnetzen von Sprachspeichersystemen, die
einen Teil eines Kommunikationsnetzes wie beispielsweise ein LAN
umfassen. Darüber
hinaus besteht in der Technik ein Bedarf daran, daß ein oder mehrere
dieser Teilnetze im selben Kommunikationsnetz koexistieren. Darüber hinaus
besteht in der Technik ein Bedarf nach einem Verfahren zum Aufbau
von solcher Teilnetze von verteilten Sprachspeichersystemen in einem
LAN.
-
Aus dem US-Patent
US 5,018,133 ist ein Verfahren zum
Aufbauen eine Teilsystems in einem Netzsystem mit einem Haupt-LAN
und einer Mehrzahl von Teil-LAN bekannt. Die Teil-LAN und das Haupt-LAN
sind jeweils durch erste Brücken
verkoppelt, während
die Teil-LAN jeweils durch zweite Brücken verkoppelt sind. Das Teilsystem
umfaßt die
ersten Brücken
und die Hauptbrücken.
-
Kurze Beschreibung
der Erfindung
-
Vorteilhafterweise wird durch Ausführungsformen
der vorliegenden Erfindung ein Verfahren zum Aufbauen von Teilnetzen
von verteilten Sprachspeichersystemen (VMS – Voice Messaging System) in
einem Kommunikationsnetz wie beispielsweise einem Ortsnetz (LAN – Local
Area Network) bereitgestellt.
-
Damit ein verteiltes Teilnetz von
VMS richtig funktioniert, müssen
alle Sprachspeicher- (VM – Voice
Messaging) Knoten im Teilnetz mit einer Abbildung des Teilnetzes
konfiguriert werden. Die Teilnetzabbildung ist eine Datenstruktur,
die Informationen bezüglich
aller zum Teilnetz gehörenden VM-Knoten
enthält.
Die Mindestinformationen, die in der Teilnetzabbildung enthalten
sein müssen
(die Teilnetzabbildung enthält
einen Eintrag für
jeden Knoten im Teilnetz) bestehen aus: (a) einer Knotennummer für jeden
Knoten im Teilnetz (eine Knotennummer ist eine eindeutige Kennzeichnung
für einen Knoten
in einem Teilnetz), (b) einem Gruppennamen (ein Gruppenname ist
eine Kennzeichnung von einem oder mehreren Knoten in einem LAN-Netz,
(c) einer Ortsnetzkennzeichnung (eine LAN-ID ist eine Kennzeichnung
eines Teilnetzes) und (d) einer physikalischen Adresse einer LAN-Adapterkarte
für jeden Knoten
(dies ist eine eindeutige Kennzeichnung jeder LAN-Adapterkarte im
VMS, die von der Adapterkarte abgelesen wird).
-
Der Aufbauvorgang eines Teilnetzes
umfaßt folgendes:
(a) Kennzeichnen aller Knoten, die zum Teilnetz gehören, (b)
Einsammeln von Konfigurationsinformationen von allen diesen Knoten,
(c) Zuweisen einer neuen Knotennummer zu den Knoten, sofern erforderlich,
und (d) Verteilen der Teilnetzabbildung an alle Knoten. Das verteilte
VMS kann nur dann richtig funktionieren, wenn die neue Teilnetzabbildung
erstellt, verteilt und durch alle Knoten im Teilnetz bestätigt worden
ist.
-
Beim Aufbauen des Teilnetzes muß Gleichzeitigkeit
und Synchronisierung anderer Anwendungen oder Hilfsprogramme berücksichtigt
werden, die in irgendeinem oder allen der VMS-Knoten in dem im Aufbau
befindlichen Teilnetz ablaufen können.
Wenn beispielsweise zwei Knoten den Aufbauvorgang zur gleichen Zeit
beginnen, können
Zusammenstöße vorkommen,
und der Vorgang könnte
mißlingen.
In dem Aufbauvorgang müssen
Sicherungen enthalten sein, um einen erfolgreichen Teilnetzaufbau
zu garantieren oder Probleme deutlich zu identifizieren.
-
Eine Ausführungsform der vorliegenden
Erfindung ist ein Verfahren zum Aufbauen eines Teilnetzes von Knoten
in einem Kommunikationsnetz mit folgenden Schritten: (a) Kennzeichnen
von in das Teilnetz aufzunehmenden Knoten, (b) Einsammeln von Knotenkonfigurationsinformationen
von den identifizierten Knoten, (c) Auflösen von Knotenkonfigurationsinformationskonflikten
zwischen den Knoten im Teilnetz, (d) Erstellen einer Teilnetzabbildung, (e)
Verteilen der Teilnetzabbildung an die Knoten im Teilnetz und (f)
Synchronisieren der Knoten im Teilnetz.
-
Kurze Beschreibung
der Zeichnung
-
1 zeigt
ein Blockschaltbild von Knoten, die in einem Ortsnetz verbunden
sind;
-
2 zeigt
ein Blockschaltbild der das erfindungsgemäße Verfahren verwirklichenden
Softwaremodule und ihre Architektur in Bezug auf Knoten im Netz;
-
3 zeigt
ein Blockschaltbild eines Kommunikationsnetzes mit zwei Teilnetzen
von Sprachspeichersystemen;
-
4 zeigt
ein Blockschaltbild eines Kommunikationsnetzes, in dem die zwei
Teilnetze der 3 in ein
einziges Teilnetz kombiniert worden sind; und
-
5 zeigt
ein Blockschaltbild eines Anfangszustandes von Kommunikationen in
einem Teilnetz, wobei ein Knoten nicht aktiv ist, und ein Blockschaltbild
eines Endzustandes von Kommunikationen im Teilnetz, sobald der Knoten
nach dem erfindungsgemäßen Verfahren
synchronisiert worden ist.
-
Ausführliche
Beschreibung
-
1 zeigt
ein Blockschaltbild von Knoten 101–112, die in einem Ortsnetz
200 (LAN 200) verbunden sind. Einige der Knoten könnten Computer und
einige der Knoten könnten
Sprachspeichersysteme sein. Wenn alle mit dem LAN 200 verbundenen Knoten
Sprachspeicher(VM – Voice
Messaging) Knoten sind, die in ein verteiltes Sprachspeichersystem- (VMS – Voice
Messaging System) Netz aufzunehmen sind, dann wird das erfindungsgemäße Verfahren
als Aufbau eines Netzes bezeichnet. Wenn jedoch nur einige der mit
dem LAN 200 verbundenen Knoten als Teil des verteilten VMS aufzunehmen sind,
dann wird das erfindungsgemäße Verfahren
als Aufbauen eines Teilnetzes bezeichnet. Wie weiterhin in der 1 dargestellt, besteht das
VMS-Teilnetz 100
aus VM 105–107
und 109, und das VMS-Teilnetz 120
besteht aus VM 111–112.
Wie vom Durchschnittsfachmann leicht erkannt werden wird, umfaßt der Fall
des Aufbauens eines Teilnetzes in einem verteilten Sprachspeichersystem
den Fall des Aufbauens eines Netzes.
-
Obwohl es verschiedene Weisen gibt,
anzugeben, welche Knoten im Teilnetz enthalten sein sollen, wird
ein Knotenauswahlverfahren unter Verwendung eines Gruppennamens
beschrieben. Nach dieser bevorzugten Ausführungsform des erfindungsgemäßen Verfahrens
werden nur mit dem LAN 200 verbundene VM-Knoten mit demselben Gruppennamen im
Teilnetz enthalten sein.
-
In einem vollständig verteilten VMS werden alle
Knoten als gleich angesehen. Nach dem erfindungsgemäßen Verfahren
wird jedoch, sobald der Aufbauvorgang beginnt, ein den Aufbauvorgang
einleitender Knoten, was den Aufbauvorgang anbetrifft als Hauptknoten
angesehen. Trotzdem kann dadurch, daß alle Knoten gleich sind,
der Aufbauvorgang von irgendeinem der Knoten im VMS eingeleitet werden,
und durch Angeben eines Hauptknotens nach Beginn des Vorgangs kann
der Hauptknoten leicht den gesamten Vorgang steuern und über zu unternehmende
Handlungen entscheiden, wenn ein Fehlerzustand auftritt.
-
Damit eine verteilte Sprachspeicheranwendung
richtig funktioniert, müssen
alle Knoten im VMS eine eindeutige Knotennummer aufweisen. Wenn
es eine oder mehrere doppelte Knotennummern gibt, müssen diese
aufgelöst
werden, um ein Teilnetz erfolgreich aufzubauen. Nach dem erfindungsgemäßen Verfahren
kann, um Knotennummerierungskonflikte aufzulösen, ein automatischer oder
manueller Aufbaumodus von einem Benutzer zu Beginn des Aufbauvorgangs
angegeben werden. Im manuellen Aufbaumodus löst der Benutzer den Konflikt
der doppelten Knotennummer durch Ändern der Knotennummer der
im Konflikt befindlichen Knoten. Im automatischen Aufbaumodus wird
der Konflikt der doppelten Knotennummer durch ein unten beschriebenes Hilfsprogramm
durch Ändern
der Knotennummer der im Konflikt befindlichen Knoten aufgelöst. Eine
Vorgangsbeschreibung des automatischen Aufbaumodus ist aus Anhang
A ersichtlich.
-
2 zeigt
ein Blockschaltbild von das erfindungsgemäße Verfahren verwirklichenden
Softwaremodulen und ihre Architektur in Bezug auf Knoten im Netz.
Nach der Darstellung in 2 sind
die den Aufbauvorgang verwirklichenden Softwaremodule in einer Schichtarchitektur
wie beispielsweise dem wohlbekannten ISO-OSI-Netzarchitekturmodell
formuliert, mit einigen Abänderungen.
Jede Schicht realisiert eine bestimmte Funktionalität, wobei
die unteren Schichten Dienste den darüberliegenden Schichten anbieten.
In der bevorzugten Ausführungsform
der vorliegenden Erfindung wird jedoch das ISO-OSI-Netzarchitekturmodell
dahingehend erweitert, daß eine
höhere
Schicht Dienste direkt von irgendeiner darunterliegenden Schicht
anfordern kann und nicht auf den Empfang von Diensten von einer
direkt darunterliegenden Schicht beschränkt ist. Nach der Darstellung
in 2 sind die drei an
der Verwirklichung des erfindungsgemäßen Verfahrens beteiligten
Schichten von oben nach unten folgende:
- (a)
Das Konfigurations-Hilfsprogramm (Configuration Utility) ist Software,
die auf einer Anwendungsschicht läuft, die mit dem Benutzer in
Wechselwirkung steht und Benutzereingabe oder -bestätigung anfordern
kann. Vom Konfigurations-Hilfsprogramm wird der Aufbauvorgang eingeleitet
und sein Ablauf gesteuert. Es stellt sicher, daß alle vom Benutzer angeforderten
VM-Knoten im Teilnetz enthalten sind, und es zeigt auf den Aufbauvorgang
bezogene Zustandsinformationen an.
- (b) Die Knotenüberwachungs-
(NS – Node
Supervisor) Schicht enthält
Software, die der Anwendungsschicht Dienste anbietet. Zu diesen
Diensten gehört:
(i) Verfolgen aller auf der Anwendungsschicht an einem VM-Knoten
ausgeführten Hilfsprogramme,
(ii) Verfolgen, welche Anwendungen auf der Anwendungsschicht am
VM-Knoten aktiv sind (als Zustand des VM-Knoten bezeichnet), und (iii) Sperren
oder Ausschließen
eines Hilfsprogrammes von der Ausführung, wenn das Hilfsprogramm
mit dem gegenwärtigen
Zustand des VM-Knotens im Konflikt steht. Jedem Hilfsprogramm ist
eine Merkmalsliste zugeordnet, die folgendes angibt: (i) den Systemzustand,
unter dem es ablaufen kann, und (ii) die Identität anderer Hilfsprogramme, mit
denen es gleichzeitig ablaufen kann. Auch weist die Software auf
der NS-Schicht die Fähigkeit
zum Abändern
der Konfigurationsparameter eines Knotens mit der Teilnetzabbildung
auf.
- (c) Die Kommunikationssteuerungs- (CH – Communication Handler) Schicht
enthält
Software, die der Software in der Anwendungsschicht und der NS-Schicht
Dienste anbietet. Die Software in der CH steuert und stellt Kommunikation
zwischen allen Knoten im Teilnetz her. Die Software besitzt die
Fähigkeit,
Nachrichten von einem beliebigen Knoten zu senden und zu empfangen
und kann auch Rundsendenachrichten an alle physikalisch an das LAN
angeschlossenen Knoten senden. Sie kennt die Konfigurationsparameterwerte
für ihren
eigenen Knoten und kann mit diesen antworten, wenn sie von einem
anderen Knoten aus abgefragt wird. Sobald ein Teilnetz konfiguriert
ist, besteht die Funktion dieses Moduls darin, Synchronisation herzustellen
und einen Kommunikationskanal mit allen anderen VM-Knoten im Teilnetz
herzustellen.
-
Die Ziele des Aufbauvorgangs bestehen
aus folgendem: (a) eine einfache Auslegung aufzuweisen, (b) Kommunikation
zwischen Knoten zu minimieren, (c) zu bewirken, daß eine Schicht
in einem VM-Knoten mit derselben Schicht in einem anderen Knoten
kommuniziert, (d) einen robusten Vorgang zu besitzen, der immer
erfolgreich ist oder, wenn irgendwelche Widersprüchlichkeit erkannt wird, mit
deutlichen und sinnvollen Nachrichten für einen Benutzer abschließt, (e)
die Einleitung des Aufbauvorgangs von einem beliebigen der Knoten
in dem aufzubauenden Teilnetz zuzulassen, (f) die Existenz von redundanten
Informationen im Aufbauvorgang zu vermeiden und (g) einen sicheren
Vorgang (wenn gewünscht)
zuzulassen.
-
Die unten beschriebenen Schritte
werden durch Software ausgeführt,
die auf den Computern in den VM-Knoten im LAN abläuft.
-
Bei Erstellung eines Sprachspeicherknotens werden
dem Gruppennamen, der Knotennummer und der LAN-ID Vorgabewerte zugewiesen.
In der bevorzugten Ausführungsform
sind diese Werte „VMS" für den Gruppennamen,
1 für die
Knotennummer und 0 für
die LAN-ID.
-
Es folgt die ausführliche Beschreibung jedes zum
Aufbauen eines Teilnetzes erforderlichen Schrittes. Die bevorzugte
Ausführungsform
des erfindungsgemäßen Verfahrens
erfordert, daß ein
Benutzer jeden VM-Knoten mindestens so konfiguriert, daß er einen
Gruppennamen aufweist (ansonsten wird der Vorgabewert benutzt).
Auch erfordert sie, daß jeder
VM-Knoten eine LAN-Adapterkarte
mit einer physikalischen Adresse aufweist, die eindeutig ist, und daß jeder
VM-Knoten seine eigene physikalische Adresse kennt. Die Schritte
des erfindungsgemäßen Verfahrens
sind folgende:
- 1. (Benutzer → Konfig.-Hilfsp.):
Ein Benutzer führt das
Konfig.-Hilfsprogramm an einem Knoten aus, um ein Teilnetz aufzubauen,
und gibt den Gruppennamen aller VM-Knoten an, die darin enthalten
sein sollen. In dieser Ausführungsform
werden daher Gruppennamen zum Kennzeichnen von in Teilnetze aufzunehmenden
Knoten benutzt. Der Benutzer wählt
entweder einen automatischen oder einen manuellen Knotennumerierungsmodus.
Eine Beschreibung des automatischen Knotennumerierungsmodus ist
aus Anhang A ersichtlich. Der Knoten, an dem das Aufbauverfahren
beginnt, wird als der Hauptknoten angesehen.
- 2. (Konfig.-Hilfsp. → CH):
Danach fordert das Konfig.-Hilfsprogramm die CH auf, Netzabbildungsinformationen
von allen Knoten im Netz, die dieselben Gruppennamen wie die vom
Benutzer angegebenen aufweisen, einzusammeln.
- 3. (CH – Hauptknoten):
Danach sendet die CH am Hauptknoten eine Rundsendenachricht über das LAN,
die alle VM-Knoten im LAN mit den vom Benutzer angegebenen Gruppennamen
auffordert, mit ihren Konfigurationsinformationen (Knotennummer,
Gruppenname, LAN-ID und physikalische Adresse der LAN-Adapterkarte)
zu antworten.
- 4. (CH – alle
Knoten): Von allen VM-Knoten im LAN (einschließlich des Hauptknotens) wird
die Rundsendenachricht empfangen und die Anforderung überprüft. Nur
dann, wenn ein VM-Knoten zu
den in der Rundsendung angegebenen Gruppennamen gehört, antwortet
er auf den Hauptknoten mit seinen Konfigurationsinformationen.
- 5. (CH – Hauptknoten):
Der Hauptknoten wartet t1 Sekunden lang, Zeit genug, um sicherzustellen, daß alle Knoten
im LAN Zeit zum Verarbeiten der Anforderung und Beantworten derselben
haben. Danach verarbeitet der Hauptknoten alle Antworten und sendet
die Netzabbildung aller antwortenden Knoten zum Konfig.-Hilfsprogramm
zurück. Der
Zeitablauf von t1 ist systemabhängig,
und bei einer bestimmten Anwendung wurde ein Wert von 10 Sekunden
benutzt.
- 6. (Konfig.-Hilfsp.): Das im Dialog mit dem Benutzer stehende
Konfig.-Hilfsprogramm ist für
die Validierung der. Netzabbildung und die Konfliktauflösung verantwortlich.
Validierung der Netzabbildung bedeutet auch Überprüfen der Höchstzahl an Knoten im Teilnetz.
Wenn der Benutzer einen automatischen Aufbaumodus ausgewählt hat, dann
wird jeglicher Knotennummernkonflikt automatisch vom Hilfsprogramm
gelöst
(die Beschreibung ist aus Anhang A ersichtlich). Wenn der manuelle
Aufbaumodus ausgewählt
wurde, zeigt das Konfig.-Hilfsprogramm alle doppelten Knotennummern
an, und der Benutzer ändert
die Konfiguration der im Konflikt stehenden Knoten und beginnt den
Aufbauvorgang von neuem. Sobald alle Konflikte aufgelöst sind,
bestätigt
der Benutzer und der Aufbauvorgang schreitet fort. Zum Identifizieren
eines neuen Teilnetzes wird vom Konfig.-Hilfsprogramm eine neue
eindeutige LAN-ID erzeugt. In der bevorzugten Ausführungsform
geschieht das durch Kombinieren der physikalischen Adresse der LAN-Adapterkarte
des Hauptknotens mit einer Zeitmarke. Es ist leicht ersichtlich,
daß die
LAN-ID zum Adressieren von Knoten im Teilnetz eingesetzt wird. Während es
so unmöglich
ist, daß ein
dem Netz später
hinzugefügter
Knoten denselben Gruppennamen wie vorhergehende Knoten aufweist,
wird er nicht ohne einen weiteren Aufbauvorgang in dasselbe Teilnetz gesetzt,
da seine LAN-ID unterschiedlich ist.
- 7. (Konfig.-Hilfsp. → NS):
Vom Konfig.-Hilfsprogramm
wird die NS aufgefordert, den Aufbauvorgang fortzuführen. Das
Konfig.-Hilfsprogramm gibt
eine neue Netzabbildung mit einer LAN-ID, physikalischen LAN-Adressen
und Knotennummern zur NS am Hauptknoten weiter.
- 8. (NS – Hauptknoten):
Die NS fährt
mit einem Zweiwege-Commit-Protokoll fort. Als erstes sendet sie
Anforderungen zur NS in allen Knoten im Teilnetz, eine Sperre auszuführen, um
einen erfolgreichen Aufbau sicherzustellen. Eine Sperre sollte garantieren,
daß kein
anderes den Aufbauvorgang beeinflussendes Hilfsprogramm ausgeführt werden
kann. Auch stellt die Sperre sicher, daß Sprachspeicheranwendungen
während
des Aufbauvorganges inaktiv bleiben.
- 9. (NS – alle
Knoten): Wenn eine NS in einem Knoten die Anforderung empfängt, versucht
sie, die Sperre auszuführen,
und antwortet der NS im Hauptknoten mit Zustands- und ggf. Fehlerinformationen.
Zustandsinformationen können
positiv sein (eine Bestätigung
einer erfolgreichen Sperre) oder negativ (Abweisung der Sperre).
- 10. (NS – Hauptknoten):
Die NS am Hauptknoten schaltet bei Überschreiten einer Wartezeit
ab, wenn nicht alle Antworten innerhalb von t2 Sekunden empfangen
werden. Keine Antwort von einem Knoten ist einer negativen Antwort
gleich. In der bevorzugten Ausführungsform
schließt
eine negative Antwort den gesamten Aufbauvorgang ab. Ein Beispiel
für einen
Fehlerzustand ist eine erfolglose Sperre aufgrund eines Konfliktes
mit einem an einem anderen Knoten durchgeführten gleichzeitigen Netzaufbauvorgang.
Fehlerinformationen werden vom Konfig.-Hilfsprogramm zur Bereitstellung
von Rückmeldung
an den Benutzer benutzt. Wenn der Aufbauvorgang abgeschlossen wird,
sendet die NS am Hauptknoten Entsperrungsanforderungen an alle Teilnetzknoten,
um die Sperre aufzuheben. Um sicherzustellen, daß ein Knoten bei Ausfällen während des
Aufbauvorgangs (die beispielsweise dadurch verursacht werden, daß der Hauptknoten
ausfällt
oder die Verbindung verlorengeht) nicht gesperrt bleibt, wird von
der NS an jedem Knoten ein Sperrzeitüberwachungsmechanismus implementiert.
Entsprechend dem Sperrzeitüberwachungsmechanismus
entsperrt sich eine NS an einem Knoten automatisch nach t3 Sekunden,
wenn keine weiteren Anforderungen von der Haupt-NS empfangen werden.
Die Zeitgeber t1 und t3 sind systemabhängig. In einer Ausführungsform
der vorliegenden Erfindung wurden beispielsweise Werte von 10 s
bzw. 30 s benutzt.
- 11. (NS – Hauptknoten):
Der Aufbauvorgang geht nur dann weiter, wenn eine positive Bestätigung von
allen Knoten in der neuen Teilnetzabbildung empfangen wird. Im nächsten Schritt
sendet die NS des Hauptknotens die neue Teilnetzabbildung zu den
NS aller VM-Knoten im Teilnetz.
- 12. (NS – alle
Knoten): Die NS an jedem Knoten empfängt die neue Netzabbildung,
aktualisiert ihre Netzkonfigurationsinformationen, führt die Entsperrung
aus und antwortet dem Hauptknoten, daß der Aufbauvorgang erfolgreich
war.
- 13. (NS – Hauptknoten):
Der Aufbauvorgang wird nur dann als erfolgreich angesehen, wenn
die NS des Hauptknotens positive Bestätigungen von allen Knoten im
neuen Teilnetz empfängt.
Wie im (Schritt 10) schaltet die NS an einem Hauptknoten ab, wenn
nicht alle Knoten innerhalb von t2 Sekunden antworten. Ein Wiederherstellungsmechanismus
für den
Fall, daß keine
positive Antwort innerhalb der angegebenen Zeitdauer empfangen wird,
ist aus Schritt 10 ersichtlich.
- 14.(NS → Konfig.
Hilfsprogramm): Die NS an einem Hauptknoten sendet eine Aufbauzustands- und
Fehlerinformation zum Konfig.-Hilfsprogramm. Das Konfig.-Hilfsprogramm
benachrichtigt dann den Benutzer über das Ergebnis des Aufbaus.
Dem Benutzer werden Aufbauzustand (erfolgreich oder nicht) und ggf.
eine Fehlernachricht gemeldet. An dieser Stelle kann der Benutzer das
(die) Problem e) berichtigen und einen neuen Aufbau versuchen.
- 15. (Konfig.-Hilfsprogramm → CH):
Das Konfig.-Hilfsprogramm
informiert die CH, die neue Netzabbildung zu lesen. Wenn sich die
von der CH gelesene Abbildung von ihrer vorherigen unterscheidet,
sendet sie sofort eine Anforderung an alle CH im Teilnetz, die neue
Netzabbildung zu lesen. Die CH beginnen dann den automatischen Synchronisierungsvorgang
mit allen anderen Knoten. Es muß keine
Bestätigung
zum Hauptknoten zurückgesendet
werden. Eine ausführliche
Beschreibung des Synchronisierungsvorgangs ist aus Anhang B ersichtlich.
Alle Knoten im Teilnetz führen
Hintergrund-Übereinstimmungskontrollen
durch, die bestätigen,
daß alle
Knoten synchronisiert sind. Sollte ein Knoten nicht synchronisiert
sein und die Synchronisierungsanforderungen von anderen Knoten nicht
annehmen, wird ein Fehler verzeichnet, und Alarme werden aktiviert.
-
Die zum Vollenden des Teilnetzaufbauvorgangs
in Anspruch genommene Zeit hängt
hauptsächlich
von den benutzten Zeitüberwachungswerten
ab. Es hat sich herausgestellt, daß Werte von 10 und 30 Sekunden
ausreichten, eine Antwort von allen Knoten in einem bestimmten VMS
zu garantieren. Der Fachmann wird jedoch leicht erkennen, daß die Zeitüberwachungswerte
von der Art von LAN und der Anzahl von angeschlossenen Knoten abhängig sind.
-
Der Durchschnittsfachmann wird leicht
erkennen, daß dadurch,
daß ein
Knoten als Hauptknoten für
den Aufbauvorgang benutzt wird, eine zentrale Fehlermeldung und
Synchronisierung der Operation in allen Knoten ermöglicht wird.
Beispielsweise erfordert die Ausführung jedes Schrittes im Aufbauvorgang,
daß alle
Erfordernisse der vorhergehenden Schritte von allen Knoten erfüllt worden
sind. Natürlich
schließt
die Verwendung eines Hauptknotens nicht aus, daß der Aufbauvorgang von einem
beliebigen Knoten im Teilnetz begonnen wird.
-
Obwohl die in das Teilnetz aufzunehmenden Sprachspeichersystemknoten
durch Verwendung des Gruppennamens angegeben wurden, erlaubt der erfindungsgemäße Aufbauvorgang
verschiedene Weisen zur Angabe der Knoten im Teilnetz . Die in einem
bestimmten Aufbauvorgang benutzte bestimmte Weise kann vom Benutzer
zur Aufbauzeit ausgewählt werden.
Entsprechend der vorliegenden Erfindung werden Knoten über die
Aufbauart mit einem in der Rundsendung gesendeten,. besonderen kodierten Wert
benachrichtigt. Andere Arten von Knotenauswahl sind:
- a) Jedem Knoten kann ein bestimmter Knotenname zugewiesen werden,
und Knoten im Teilnetz können
durch Angabe der Knotennamen ausgewählt werden.
- b) Knoten können
durch Knotennummern angegeben werden, solange es keine Konflikte
gibt.
-
Da Computer deaktiviert, aus dem
Netz genommen oder zu einer beliebigen Zeit ausfallen können, werden
von allen Knoten Zeitüberwachungswerte
benutzt, um sicherzustellen, daß,
wenn eine Bestätigung
oder der nächste
Aufbaubefehl nicht empfangen wird, der Aufbauvorgang abgebrochen und
die Zuordnung von Betriebsmitteln aufgehoben wird. Obwohl die Wiederherstellungsmechanismen so
ausgeklügelt
wie gewünscht
gemacht werden können,
kann in manchen Fällen
ein einfacherer Mechanismus zur Vereinfachung des Entwicklungsaufwands
benutzt werden.
-
Wenn Sicherheit wichtig und die Umgebung nichtkooperativ
ist, können
im Aufbauvorgang Mechanismen implementiert werden, die sicherstellen, daß nach Beginn
des Aufbaus (d. h. Auswahl eines Hauptknotens) kein anderer Knoten
die Stelle des Hauptknotens einnehmen kann und daß nach Annahme
der Netzabbildung (d. h. Auswahl der Knoten im Teilnetz) kein Knoten
substituiert werden kann:
-
Der Hauptknoten kann sich voll in
der Anfangsrundsendung identifizieren, und wenn die Knoten antworten,
können
sie Nachrichten spezifisch an den Hauptknoten adressieren. Der Hauptknoten
wird dann Nachrichten von irgendeinem Knoten, der sich nicht in
der anfänglichen
Teilnetzabbildung befindet, verwerfen.
-
Alle auf die anfängliche Hauptknotenrundsendung
antwortenden Knoten können
sich auch voll identifizieren. Ab diesem Punkt kann der Hauptknoten
Nachrichten an einzelne Knoten senden, anstatt den Rundsendemechanismus
zu benutzen. Einzelne Knoten werden Nachrichten von irgendeinem
anderen Knoten als dem Hauptknoten verwerfen.
-
Der Durchschnittsfachmann erkennt
leicht, daß der
Aufbauvorgang davon unabhängig
ist, wie eng die VM-Knoten
miteinander verkoppelt sind. Das heißt, der erfindungsgemäße Vorgang
funktioniert gut mit locker oder eng verkoppelten Knoten.
-
Als letztes ist es vorteilhafterweise
entsprechend der vorliegenden Erfindung nicht erforderlich, daß der Benutzer
vor Beginn des Aufbauvorganges Netzkonfigurationsparameter in irgendeinem
Knoten bereitstellt. Die einzigen Konfigurationsparameter, deren
Einstellung erforderlich ist, sind die knotenspezifischen, wie beispielsweise
ein Gruppenname und eine Knotennummer für einen manuellen Aufbau. Nach
erfolgreichem Aufbau eines Netzes aktualisiert es automatisch alle
Knoten im Teilnetz mit der neuen Netzabbildung.
-
Der Fachmann erkennt, daß die obige
Beschreibung nur für
Darstellungs- und Beschreibungszwecke dargeboten worden ist. Als
solche soll sie nicht erschöpfend
sein oder die Erfindung auf die genau offenbarte Form begrenzen.
Beispielsweise sind angesichts der obigen Lehre Abänderungen
und Variationen möglich,
die als im Sinne der vorliegenden Erfindung liegend angesehen werden.
So sollte man verstehen, daß die
hier angehängten
Ansprüche
alle derartigen Abänderungen
und Variationen abdecken sollten, die in den wahren Schutzumfang
und Sinn der Erfindung fallen.
-
Anhang A
-
Automatische
Knotennummernzuweisung
-
Es wird ein automatischer Knotennumerierungsvorgang
beschrieben, der jedem Knoten einer verteilten Sprachspeichersystemanwendung
in einem Netz eine eindeutige Knotennummer zuweist. Die Knotennummer
wird von den VM-Knoten zur eindeutigen Identifizierung eines Knotens
benutzt. Das für
die automatische Zuweisung benutzte Kriterium minimiert Änderungen
von Knotennummern für Sprachspeichersysteme,
denen eine Knotennummer bereits zugewiesen ist.
-
Die manuelle Knotennummerzuweisung
erfordert, daß ein
Bediener zu jedem Knoten geht und den Knotennummernkonfigurationsparameter
auf den gewünschten
abändert.
Wenn ein Benutzer fordert oder wünscht,
daß jeder
Knoten im Netz mit einer spezifischen Nummer konfiguriert wird,
dann ist der manuelle Modus die einfachste Weise, auf die dies zu
erreichen ist. Es gibt jedoch Fälle,
bei denen der Benutzer unter Umständen nicht fordert, daß jeder
VM-Knoten eine spezifische
Knotennummer aufweist. In diesen Fällen oder wenn sich die Computer nicht
am gleichen Platz befinden oder wenn die Anzahl von Computern im
Netz groß ist,
kann der Benutzer ein automatisches Verfahren zur Zuweisung von
Knotennummern wählen.
Bei diesem Verfahren werden Knotennummern ohne Eingriff vom Benutzer zugewiesen.
Dadurch kann möglicherweise
beträchtliche
Bedienerzeit gespart werden und sich ein Knotennumerierungsplan
ergeben, der mit vorherigen Knotennummernzuweisungen übereinstimmt.
-
Es folgt eine Beschreibung des Algorithmus:
- 1. Der den automatischen Knotennummernzuweisungsalgorithmus
ausführende
Knoten behält
seine Knotennummer; dies ist der Hauptknoten.
- 2. Alle bereits ggf. im selben Teilnetz wie der Hauptknoten
befindlichen Knoten behalten ihre Knotennummer. Man beachte, daß dadurch
garantiert wird, daß bis
zu diesem Punkt keine doppelten Knotennummern vorkommen. Man beachte
auch, daß der
Vorgang des Aufbaus von neuen Teilnetzen den Fall des Kombinierens
von zwei bestehenden Teilnetzen abdecken kann.
- 3. Alle Knotennummern, die keine gedoppelte Knotennummer aufweisen,
behalten ihre Knotennummern. Mit gedoppelt ist gemeint, daß kein anderer
Knoten in dem Teilnetz, das aufgebaut wird, dieselbe Knotennummer
aufweist.
- 4. Für
alle Knoten, die eine gedoppelte Knotennummer aufweisen und nicht
zugewiesen sind, wird eine Suche für eine nicht zugewiesene Knotennummer
beginnend mit 1 durchgeführt.
Sobald eine nicht zugewiesene Nummer gefunden wird, wird sie zugewiesen.
- 5. Wenn ein Knoten mit einer spezifischen Knotennummer erforderlich
ist, wird die höchste
Knotennummer, die nicht die gleiche wie die erforderliche Knotennummer
ist, erlangt und als die erforderliche Knotennummer zugewiesen.
-
Es gibt verschiedene Variationen,
die an dem oben erwähnten
Algorithmus ausgeführt
werden können,
um verschiedenen Benutzererfordernissen zu genügen. Zum Beispiel:
- 1. Wenn es erforderlich ist, daß Knotennummern aufeinanderfolgende
Ganzzahlen sind, wird, sobald alle Knotennummern zugewiesen worden sind,
damit begonnen, Lücken
unter Verwendung irgendeines vom Benutzer definierten Kriteriums aufzufüllen. In einer
Ausführungsform
kann man beispielsweise damit beginnen, alle Knotennummern nach
unten (auf Knotennummer 1 zu) unter Beibehaltung ihrer Reihenfolge
zu verschieben oder den letzten Knoten zu entnehmen und die niedrigste
Nummernlücke
anzufüllen.
- 2. Wenn Lücken
im Knotennumerierungsschema zulässig
sind, wird bei Schritt 4 oben damit begonnen, Knotennummern von
nicht bereits im Gebrauch befindlichen Nummern, beginnend bei irgendeiner
beliebigen Nummer „N", zuzuweisen.
- 3. Wenn eine spezifische Knotennummer „M" vorkommen muß (wenn beispielsweise eine
Knotennummer 1 erforderlich ist) und immer noch nicht vorkommt,
dann wird die höchste
oder niedrigste Knotennummer erlangt und als M zugewiesen.
-
3 zeigt
ein Blockschaltbild eines Netzes mit zwei Teilnetzen, Teilnetz 300 (Knoten 301–303) mit
Knotennummern 1, 2 bzw. 3 und Teilnetz 350 (Knoten 351-353) mit
Knotennummern 1, 2 bzw. 3. Es ist erwünscht, die Teilnetze 300 und 350 in
ein einziges, in 4 dargestelltes
Teilnetz 370 zu kombinieren, und der Knoten 303 ist
als Hauptknoten für diesen
Aufbauvorgang gewählt
worden. Entsprechend dem oben beschriebenen automatischen Knotennummernzuweisungsvorgang
umfaßt
das in 4 dargestellte
Teilnetz 370 die Knoten 301–303 und 351–353 und
die Knotennummern 1–6
sind, wie ebenfalls in der 4 dargestellt,
den Knoten 301-303 und 351–353 zugewiesen
worden.
-
Anhang B
-
Dynamische
Synchronisierung von Sprachspeichersystemknoten in einem Teilnetz
-
Synchronisation ist ein Mechanismus,
mit dem sich anschaltende konfigurierte Knoten im Teilnetz bereits
bestehenden Knoten über
ihre Existenz und ihre Konfiguration Bescheid geben und sie darüber informieren,
daß sie
für den
Betrieb bereit sind. Zwischen dem/den bereits angeschalteten Knoten und
dem/den sich anschaltenden Knoten werden Nachrichten ausgetauscht,
um eine Validierungs- und Sicherheitsprüfung durchzuführen. Nur
nach Validierung eines sich anschaltenden Knotens und seiner Annahme
als zum Teilnetz gehörend,
d. h. Synchronisation, wird eine Verbindungsherstellung zwischen
diesem Knoten und allen anderen versucht.
-
5 zeigt
ein Blockschaltbild eines Anfangszustandes von Kommunikationen des
aus Knoten 401–404 bestehenden
Teilnetzes 400. Im Anfangszustand ist der Knoten 404 nicht
aktiv, aber bereit, aktiviert zu werden. Weiterhin zeigt 5 ein Blockschaltbild eines
Endzustandes von Kommunikationen des Teilnetzes 400, sobald
der Knoten 404 entsprechend dem unten beschriebenen Verfahren synchronisiert
ist.
-
Knoten können zu jeder Zeit aktiv werden oder
aus dem LAN entfernt werden und müssen mit allen anderen aktiven
Knoten synchronisiert werden, ehe die verteilte Sprachspeichersystemanwendung voll
betriebsfähig
werden kann. Da jeder Sprachspeichersystemknoten ein selbständiger Computer
ist, kann er sich zu jeder Zeit auf nicht geplante Weise anschalten
(aktiv werden) oder abschalten (deaktivieren), und ein Synchronisierungsalgorithmus
sollte daher in der Lage sein, einzelne oder mehrfache Aktivierungen/Deaktivierungen
von Knoten zufallsmäßig zu bewältigen.
-
Es wird ein Vorgang zum dynamischen
Synchronisieren aller konfigurierten Knoten in einem Teilnetz eines
verteilten Sprachspeichersystems beschrieben.
-
Bei jedem Sprachspeichersystemknoten
in einem Teilnetz werden Posten, wie beispielsweise Knotennummer
und physikalische Adresse der LAN-Adapterkarte, unterschiedlich
sein, und Posten wie die eindeutige Teilnetz-Kennzeichnung (LAN-ID) werden
gleich sein. Die Synchronisierung zwischen den Sprachspeichersystemknoten
in einem Teilnetz wird unter verschiedenen Bedingungen versucht:
- 1. sofort nach Aufbau des Teilnetzes, so daß die Anwendung
sofort mit der Arbeit beginnen kann.
- 2. wenn ein Knoten nach irgendeiner Art von Ausfall (Stromausfall,
Systemabsturz, physikalisches Abtrennen eines Kabels vom LAN usw.)
aktiv wird.
-
Im Synchronisierungsalgorithmus gibt
es keinen Begriff von Hauptknoten oder Nebenknoten, und alle Knoten
werden als gleichwertig angesehen. Auf allen Knoten wird derselbe
identische Softwarealgorithmus für
den Synchronisierungsvorgang ausgeführt. Der folgende Algorithmus
bedient sich der Rundsendefähigkeit
des LAN:
- 1. Wenn ein Knoten aktiviert wird,
wird er eine Nachricht zum LAN rundsenden, in der er sich mit allen
seinen knotenspezifischen und teilnetzspezifischen Konfigurationsinformationen
identifiziert. Die Rundsendung enthält den Zweck der Nachricht
(NODE-UP), Knotennummer, LAN-ID und physikalische Adresse der LAN-Adaptersteuerungskarte.
- 2. Alle gegenwärtig
angeschlossenen Knoten am LAN empfangen und validieren die Nachricht
NODE-UP. Beispielsweise
werden Knoten, die zu anderen Teilnetzen gehören, aber physikalisch mit demselben
LAN verbunden sind, eine andere LAN-ID aufweisen und die Nachricht
als nicht für sie
bestimmt verwerfen; Knoten, die zu keinem Teilnetz gehören, werden
die Nachricht ebenfalls verwerfen. Wenn die Rundsendung von dem
Knoten empfangen wird, der sie gesendet hat, wird sie ebenfalls
verworfen.
- 3. Damit ein Knoten die Rundsendung NODE-UP als gültig annimmt,
müssen
folgende Sicherheitskontrollen bestanden werden:
- a. Die in der Rundsendenachricht empfangene LAN-ID muß mit der
eigenen LAN-ID des Knotens identisch sein.
- b. Die in der Rundsendung empfangene Knotennummer muß eine sein,
die zu der Netzabbildung des Knotens gehört, die während des Aufbaus des Teilnetzes
erstellt wurde.
- c. Es besteht Übereinstimmung
(keine Verdoppelung) zwischen den in der Rundsendung NODE-UP empfangenen
Daten (Knotennummer, physikalische Adresse der Adaptersteuerungskarte)
und den vorher von anderen sich anschaltenden Sprachspeichersysternen
empfangenen Nachrichten NODE-UP.
- 4. Knoten, die die Nachricht NODE-UP nicht annehmen, werden
auf die Rundsendung nicht antworten.
- 5. Knoten, die die Rundsendenachricht NODE-UP validieren, werden
zwei charakteristische Handlungen durchführen: (1) sie werden auf sie
antworten, und (2) sie werden ihre dynamischen Datenstrukturen aktualisieren.
Die in den dynamischen Datenstrukturen erforderlichen Informationen
sind die Knotennummer, die physikalische Adresse der LAN-Adapterkarte,
eine Markierung, die angibt, daß der
Knoten aktiv ist, und der Zustand des Synchronisierungsvorgangs.
- a. Die Antwort auf die Nachricht NODE-UP benutzt keine LAN-Rundsendung.
Die Adaptersteuerungskartenadresse des Knotens, der die Rundsendung
gesendet hat, ist Teil der Nachricht NODE-UP und wird als die Antwort-Zieladresse benutzt.
Die Art der Antwortnachricht – NODE-UP-RESPONSE – enthält dieselbe
Art von in der Nachricht NODE-UP enthaltenen Konfigurationsinformationen,
diesmal vom antwortenden Sprachspeichersystem.
- b. Der Knoten, der die Nachricht NODE-UP empfangen hat, aktualisiert
seine internen Datenstrukturen, so daß er nunmehr den entfernten
Knoten als aktiv und zum Beginnen eines Verbindungsherstellungsverfahrens
bereit ansieht.
- 6. Jedesmal wenn der Knoten, der die Rundsendung NODE-UP gesendet
hat, eine Antwort auf seine Nachricht, eine NODE-UP-RESPONSE, empfängt, führt er dieselbe
Sicherheitskontrolle wie im Schritt 2 oben beschrieben durch. Wenn die
Nachricht die Kontrollen besteht, aktualisiert der Knoten seine
internen Datenstrukturen, so daß er
den antwortenden Knoten nunmehr als aktiv und zum Beginnen des Verbindungsherstellungsverfahrens
bereit ansieht.
-
Mit dem Obigen wurde der Synchronisierungsalgorithmus
bei Aktivierung eines Knotens erleutert. Für den Fall der Deaktivierung
eines Knotens werden folgende Fälle
besprochen: Ein Knoten wird deaktiviert (1) ohne Benachrichtigung
des übrigen Teilnetzes
und (2) mit Benachrichtigung des Teilnetzes.
-
- 1. Wenn der Knoten plötzlich aus dem Netz entfernt
wird und nicht alle Knoten im Teilnetz benachrichtigen kann, können aktive
Knoten im Teilnetz eine Benachrichtigung vom LAN selbst erhalten
oder indirekt, wenn das nächste
Mal eine zum entfernten Knoten gesendete Nachricht nicht bestätigt wird.
In diesen Fällen
sollten die aktiven Knoten ihre internen Datenstrukturen aktualisieren,
um zuzeigen, daß ein
Knoten entfernt worden ist und alle Verbindungen zum entfernten
Knoten abgeschlossen werden müssen.
- 2. Wenn ein Knoten aus dem Teilnetz auf ordnungsgemäße Weise
entfernt wird, beispielsweise wenn eine neue Knotennummer oder ein
neuer Gruppenname zugewiesen wird, kann er dann alle anderen Knoten über seine
Entfernung informieren. Die übrigen
Knoten werden dann bei Validierung der Echtheit der Nachricht die
Verbindungen mit dem entfernten Knoten abschließen und ihre internen Datenstrukturen
aktualisieren, ohne die Verbindungen mit den übrigen Knoten des Teilnetzes
zu stören.
-
Der Robustheit halber und um Fälle abzudecken,
wo eine über
das LAN gesendete Rundsendenachricht nicht abgegeben oder durch
einen Knoten in dem LAN verarbeitet wird, kann entsprechend der vorliegenden
Erfindung eine Hintergrundaufgabe (oder ein periodisch ausgeführtes Hilfsprogramm) überprüfen, ob
es Knoten gibt, die zwar konfiguriert, aber gegenwärtig nicht
synchronisiert sind. Wenn es solche Knoten gibt, kann eine Rundsendung
NODE-UP gesendet werden, um eine Synchronisierung zu versuchen.
Man beachte, daß es nicht
möglich
ist, diesem spezifischen Knoten eine Nachricht anstatt einer Rundsendung
zu senden, da die Adresse der Adaptersteuerungskarte nicht bekannt
ist. Es könnte sehr
wohl sein, daß der
Knoten außer
Betrieb genommen wurde, um eine fehlerhafte LAN-Adapterkarte zu
ersetzen, in welchem Fall die neue Karte eine andere Adresse als
die ersetzte Karte aufweisen wird. Weiterhin können entsprechend der vorliegenden
Erfindung für
Sicherheitskontrollüberprüfung benutzte
Konfigurationsinformationen verschlüsselt gesendet werden.
-
Obwohl die oben gebotene Beschreibung auf
einem LAN basierte, kann der Algorithmus mit jeder beliebigen Art
von Kommunikationsnetz funktionieren. Ebenso wurde ein Rundsendeverfahren
zum Senden von Nachrichten benutzt, aber dies ist nicht zwingend
erforderlich. Das Rundsendeverfahren wurde beschrieben, da es der
wirkungsvollste Weg ist, eine Nachricht zu allen Knoten zu senden.
Es könnten
jedoch andere Verfahren zum Übertragen
einer Nachricht benutzt werden, solange alle Knoten im Teilnetz
sie empfangen.
-
Schließlich sind, um den Verkehr über die Kommunikationsstrecke
zu verringern, die einzigen Knoten, die auf eine Nachricht NODE-UP
antworten müssen,
diejenigen die eine positive Validierung der Nachricht bereitstellen.