-
Gebiet der
Erfindung
-
Die
vorliegende Erfindung betrifft ein Verfahren zur Bestimmung einer
aktiven oder einer passiven Rollenzuteilung für ein erstes und für mindestens ein
zweites Netzelementsteuerungsmittel, wobei das erste und das mindestens
eine zweite Steuerungsmittel redundant sind und abhängig von
ihrer entsprechenden aktiven oder passiven Rolle betrieben werden.
Die Erfindung betrifft außerdem
ein Steuerungsmittel dafür,
ein Programmodul für
ein Steuerungsmittel dafür
und ein Netzelement, das ein erstes Steuerungsmittel und mindestens
ein zweites Steuerungsmittel dafür
umfaßt.
-
Allgemeiner
Stand der Technik
-
Ein
Netzelement in einem Kommunikationsnetz, z.B. eine Cross-Connect-Einrichtung
in einem Synchrondigitalhierarchienetz (Synchronous Digital Hierarchie/SDH)
oder eine Vermittlungsstelle in einem Wähltelekommunikationsnetz, muß sehr zuverlässig sein.
Demzufolge sind einige Komponenten, Hardware- und/oder Softwarekomponenten,
solcher Netzelemente redundant. Zum Beispiel sind die Zentralverarbeitungseinheiten
(CPU), Hardwarecontroller oder andere Steuerungsmittel einer Cross-Connect-Einrichtung
in der Regel redundant. Wenn zum Beispiel ein erster und ein zweiter
Controller alternativ eine vorgegebene Hardwareausrüstung steuern können, kann
der erste Controller eine aktive Rolle spielen, wohingegen der zweite
Controller eine passive Rolle spielen kann oder umgekehrt. Nur der
aktive Controller steuert aktiv die Hardwareausrüstung, der passive Controller
ist, die zu steuernde Hardware betreffend, in einem Bereitschaftsmodus.
Der passive Controller kann jedoch andere Funktionalitäten in dem
passiven Modus/Bereitschaftsmodus durchführen. Die entsprechende aktive
Rolle oder passive Rolle muß dem
ersten und dem zweiten Controller zugewiesen werden, um Aktiv-Aktiv-
oder Passiv-Passiv-Konflikte
zwischen dem ersten und dem zweiten Controller zu vermeiden. In
einem Aktiv-Aktiv-Konflikt wollen beide Controller die Hardware steuern,
in einem Passiv-Passiv-Konflikt
ist keiner von beiden für
die Hardware verantwortlich.
-
Es
ist bekannt, daß ein übergeordneter
dritter Controller die entsprechende aktive Rolle und die passive
Rolle des ersten und des zweiten Controllers koordiniert. Der dritte
Controller weist die aktive Rolle dem ersten und die passive Rolle
dem zweiten Controller zu oder umgekehrt. Es ist jedoch aufwendig, einen übergeordneten
Controller bereitzustellen. Außerdem
ist der übergeordnete
Controller eine zusätzliche
Fehlerquelle. In dem Fall von z.B. einer Fehlfunktion des übergeordneten
Controllers oder von einer gestörten
Kommunikation zwischen dem übergeordneten
und dem untergeordneten Controller können die aktiven und die passiven
Rollen nicht ordnungsgemäß den untergeordneten
redundanten Controllern zugewiesen werden.
-
Die
Deutsche Patentanmeldung
DE
40 05 321 A1 offenbart ein fehlertolerantes Computersystem,
das zwei Computereinheiten mit Prozessen aufweist, die in einem
aktiven Modus und Bereitschaftsmodus betrieben werden können. Wenn
einer der Prozessoren einen Fehler ermittelt, der zum Beispiel durch
eine Überwachungseinheit
angezeigt wird, signalisiert er diesen Fehler durch einen Verbindungskanal
an den anderen Prozessor, der in einem Bereitschaftsmodus ist.
-
Kurzdarstellung der Erfindung:
-
Entsprechend
ist eine Aufgabe der Erfindung, ein zuverlässiges Verfahren des Zuteilens
einer aktiven oder einer passiven Rolle für ein erstes und mindestens
ein zweites Netzelementsteuerungsmittel bereitzustellen. Weitere
Aufgaben der Erfindung sind, ein entsprechendes Steuerungsmittel,
ein entsprechendes Programmodul für ein Steuerungsmittel und
ein entsprechendes Netzelement bereitzustellen.
-
Diese
Aufgaben werden durch ein Verfahren gemäß dem technischen Prinzip von
Anspruch 1, ein Steuerungsmittel, ein Programmodul für ein Steuerungsmittel
dafür und
ein Netzelement dafür
erreicht, wobei das Steuerungsmittel, das Programmodul und das Netzelement
gemäß den technischen
Prinzipien der weiteren unabhängigen
Patentansprüche
sind.
-
In
dieser Hinsicht ist ein Prinzip der Erfindung, daß zwei oder
mehr redundante Steuerungsmittel interaktiv ihre entsprechende aktive
oder passive Rolle verhandeln. Das Steuerungsmittel, zum Beispiel
die Zentralverarbeitungseinheiten (CPU) oder vorzugsweise die Hardwarecontroller,
ermitteln ihren entsprechenden Zustandsparameter der Funktionsfähigkeit.
Die Zustandsparameter der Funktionsfähigkeit für ein Steuerungsmittel sind
von seiner entsprechenden Fähigkeit
abhängig,
seine Funktionalität
durchzuführen.
Die Steuerungsmittel übermitteln gegenseitig
ihre Zustandsparameter der Funktionsfähigkeit.
-
In
der Regel – ausgenommen
z.B. Übertragungsprobleme
und/oder eine Fehlfunktion eines Steuerungsmitteln – wird jedes
der Steuerungsmittel über
die Funktionsfähigkeitszustände der
anderen redundanten Steuerungsmittel informiert. Auf der Basis dieser
Informationen ermittelt das Steuerungsmittel seine entsprechende
aktive oder passive Rolle in Abhängigkeit
von den Zustandsparametern der Funktionsfähigkeit. Ein typisches Ergebnis
der obenerwähnten
Verhandlung ist, daß ein
Steuerungsmittel die aktive Rolle spielt, wohingegen ein oder mehr weitere
Steuerungsmittel eine passive Rolle spielen. Jedoch sind andere
Szenarien möglich,
in welchen zum Beispiel zwei Steuerungsmittel eine aktive Rolle spielen,
wohingegen ein oder mehr Steuerungsmittel in einer passiven Rolle
sind, z.B. in einem Bereitschaftsmodus oder Hot-Standby-Modus sind.
-
Ein
eindeutiger Identifizierer, zum Beispiel ein sogenanntes Tag, wird
jedem der Steuerungsmittel zugewiesen. Die eindeutigen Identifizierer
werden gegenseitig zwischen den Steuerungsmitteln übermittelt.
Die Identifizierer können
zum Beispiel verwendet werden, um die gegenseitig übermittelten
Zustandsparameter der Funktionsfähigkeit
zu identifizieren.
-
Die
Identifizierer, besonders ihre entsprechenden Werte, können ebenfalls
verwendet werden, um die aktive und die passive Rolle für die redundanten
Steuerungsmittel zu bestimmen: zwei oder mehr Steuerungsmittel können den
gleichen Funktionsfähigkeitszustand
aufweisen. In solch einem Szenario, wenn sich eine sogenannte Aktiv-Aktiv-Rolle widerspricht
oder ein sogenannter Passiv-Passiv-Rollenkonflikt auftritt, können die
Steuerungsmittel, die einen Identifizierer mit z.B. dem höchsten oder
dem niedrigsten Wert aufweisen, die aktive Rolle spielen, wobei
die anderen Steuerungsmittel eine passive Rolle spielen.
-
Ein
Steuerungsmittel gemäß der Erfindung kann
das Verfahren gemäß der Erfindung
durchführen.
Das Steuerungsmittel könnte
Hardware- und/oder Softwaremittel umfassen, um die Schritte des
Verfahrens durchzuführen.
Das Steuerungsmittel könnte
zum Beispiel ein Programmodul gemäß der Erfindung ausführen. Ein
Netzelement gemäß der Erfindung,
z.B. ein Cross-Connect-System oder irgendeine andere Telekommunikationsausrüstung einer
Synchrondigitalhierarchie (SDH), eines Synchronous Optical Network
(SONET), einer optischen Transporthierarchie (optical transport
hierarchy/OTH) oder dergleichen, ein (Call-Level) Circuit Switch
eines Wählnetzes,
ein Router eines Leitwegnetzes oder dergleichen, kann zwei oder
mehr obenerwähnte
Steuerungsmittel umfassen. Ein Netzelement gemäß der Erfindung kann ebenfalls
zwei oder mehr getrennte Gruppen von Steuerungsmitteln umfassen.
Die entsprechenden Steuerungsmittel von einer der Gruppen können ihre
entsprechende aktive oder passive Rollenzuteilung unabhängig von
den Steuerungsmitteln der anderen Gruppen verhandeln.
-
Vorteilhaft
werden weitere Effekte der Erfindung aus den abhängigen Ansprüchen und
der Patentbeschreibung ersichtlich.
-
Ein
Steuerungsmittel weist sich vorzugsweise selbst eine aktive Rolle
zu, wenn sein Funktionsfähigkeitszustand
besser als der Funktionsfähigkeitszustand
eines weiteren, redundanten Steuerungsmittels ist. Anderseits legt
ein Steuerungsmittel eine passive Rolle für sich selbst fest, wenn sein
Funktionsfähigkeitszustand
schlechter als die Funktionsfähigkeit
eines weiteren, redundanten Steuerungsmittels ist.
-
Um
seinen Funktionsfähigkeitszustand
zu ermitteln, kann ein Steuerungsmittel seinen eigenen Zustandsparameter
der Funktionsfähigkeit
mit einem oder mehr Zustandsparametern der Funktionsfähigkeit
von einem oder mehr redundanten Steuerungsmitteln vergleichen. Der
Zustandsparameter der Funktionsfähigkeit
kann vorzugsweise Werte von einer vorgegebenen Reihenfolge aufweisen,
wodurch z.B. ein höherer
Wert eine bessere Fähigkeit
darstellt, um eine entsprechende Funktionalität durchzuführen, als ein niedrigerer Wert.
Das Steuerungsmittel kann die Werte vergleichen, um zu ermitteln,
ob eine aktive Rolle oder eine passive Rolle zu spielen ist.
-
Im
Grunde sind zwei Funktionsfähigkeitszustände ausreichend:
voll funktionsfähig
und nicht betriebsfähig.
Es ist jedoch bevorzugt, mehr als zwei Funktionsfähigkeitszustände bereitzustellen:
je mehr verschiedene Werte ein Zustandsparameter der Funktionsfähigkeit
aufweisen kann, um so feiner ist die Granularität des Zugreifens auf den Funktionsfähigkeitszustand
eines Steuerungsmittels.
-
Die
Kommunikation zwischen den redundanten Steuerungsmitteln kann gestört sein,
zum Beispiel infolge einer unterbrochenen Kommunikationsleitung
und/oder infolge eines nicht arbeitenden Steuerungsmittels. Das
Steuerungsmittel könnte zum
Beispiel teilweise oder insgesamt nicht betriebsfähig oder
gegenwärtig
in dem Netzelement nicht vorhanden sein, z.B. herausgezogen sein.
Wenn ein Steuerungsmittel den Zustandsparameter der Funktionsfähigkeit
eines redundanten "Partner"-Steuerungsmittel nicht empfängt, nimmt
es an, daß das
redundante Partner-Steuerungsmittel eine passive Rolle spielt und
weist sich selbst folglich eine aktive Rolle zu.
-
Es
ist bevorzugt, daß die
redundanten Steuerungsmittel gegenseitig Informationen über ihre
entsprechenden Rollen übermitteln.
Es ist jedoch zu beachten, daß es
ebenfalls möglich
ist, daß die
Steuerungsmittel nur gegenseitig ihre Zustandsparameter der Funktionsfähigkeit übermitteln.
-
Die
Anfangsrolle des redundanten Steuerungsmittels bei seinem entsprechenden
Systemstart ist vorzugsweise eine Rolle "unbestimmt". Es ist jedoch möglich, daß ein Steuerungsmittel zum
Beispiel mit einer der Rollen passiv oder aktiv startet.
-
Eine
geeignete Ausführungsform
der Erfindung stellt sicher, daß die
Steuerungsmittel ihren entsprechenden Zustandsparameter der Funktionsfähigkeit
und/oder ihren entsprechenden eindeutigen Identifizierer und/oder
ihre entsprechenden Informationen über ihre Rolle über eine
gemeinsame Nachricht entsprechend übermitteln. Eine einzelne Nachricht
kann jedoch nur ein oder zwei Elemente der obenerwähnten Daten übertragen,
z.B. nur einen Zustandsparameter und einen eindeutigen Identifizierer oder
in einem anderen Szenario, einen Zustandsparameter der Funktionsfähigkeit
und Informationen über
die Rolle eines sendenden Steuerungsmittels.
-
Die
obenerwähnten
Daten, der Zustandsparameter der Funktionsfähigkeit und/oder der eindeutige
Identifizierer und/oder die Informationen über die Rolle eines Steuerungsmittels
werden vorzugsweise bei dem Systemstart eines Steuerungsmittels übermittelt.
Vorzugsweise ebenfalls in dem anschließenden "normalen" Betrieb werden die Daten periodisch übermittelt.
Ein gegenwärtig
passives Steuerungsmittel kann z.B. infolge einer periodischen Übertragung
eine Fehlfunktion/Nichtfunktion eines redundanten, gegenwärtig aktiven
Steuerungsmittels erkennen. Eine andere Ausführungsform der Erfindung stellt
sicher, daß ein
Steuerungsmittel die Daten weiterleitet, wenn sich ein relevanter
Zustand ändert, zum
Beispiel wenn sich sein Funktionsfähigkeitszustand und/oder seine
(aktive-passiveunbestimmte) Rolle ändert. Kombinationen der obenerwähnten Übertragungsbedingungen
sind möglich.
-
Eine
geeignete Ausführungsform
der Erfindung sieht vor, Maschinen endlicher Zustände (finite state
machines/FSM) zu verwenden: in Verbindung mit den Funktionsfähigkeitszuständen und/oder
in Verbindung mit den Rollen (aktiv – passiv – unbestimmt). Die Zustände der
Maschinen endlicher Zustände
können
die Funktionsfähigkeitszustände oder die
Rollen der entsprechenden Steuerungsmittel entsprechend darstellen.
-
Die
Maschine(n) endlicher Zustände
besteht (bestehen) aus einem Satz von Zuständen (vorzugsweise einen Anfangszustand
einschließend),
einem Satz von Eingabeereignissen, einem Satz von Ausgabeereignissen
und einer Zustandsübergangsfunktion.
Die Funktion nimmt den aktuellen Zustand und ein Eingabeereignis
und gibt den neuen Satz der Ausgabeereignisse und den nächsten Zustand
zurück.
Eine FSM gemäß der Erfindung
kann eine deterministische FSM sein, wo der nächste Zustand eindeutig durch
ein einzelnes Eingabeereignis festgelegt wird. Ebenfalls eine nicht
deterministische FSM ist möglich,
die mehrere nächste
Zustände
für ein
gegebenes Eingabeereignis aufweist. Es ist jedoch zu beachten, daß eine nicht
deterministische FSM z.B. automatisch mittels eines Computerprogramms
in eine deterministische FSM, die die gleiche Ausgabe erzeugt, übersetzt
werden kann, die gleiche Eingabe vorausgesetzt.
-
Ein
Steuerungsmittel gemäß der Erfindung ist
vorzugsweise geeignet, um eine Hardwareeinrichtung zu steuern, ist
ein sogenannter Controller. Bevorzugter sind zwei oder mehr Controller
zusammen für
mindestens eine gemeinsame Hardwareeinrichtung verantwortlich. Zum
Beispiel steuern zwei Controller im allgemeinen eine oder mehr Module
eines Racks. Nur einer der Controller steuert aktiv die Funktionen
des Rackmoduls bzw. der Rackmodule; der (die) andere(n) Controller
ist oder sind passiv. Der (die) passive(n) Controller kann (können) jedoch andere
Funktionalitäten
in dem passiven Modus/Bereitschaftsmodus durchführen.
-
Die
folgende Beschreibung dient dazu, die Vorteile der Erfindung auf
der Basis von Arbeitsbeispielen zu erklären, wie in den beigefügten Zeichnungen
dargestellt ist.
-
Kurzbeschreibung der Zeichnungen:
-
1 zeigt
ein Netzelement NE gemäß der Erfindung,
das die Controller CC1, CC2, LC1 bis LC5 für die Durchführung des
Verfahrens gemäß der Erfindung
umfaßt.
-
2 zeigt
eine Maschine endlicher Zustände
FSMS, die durch die Controller CC1, CC2, LC1 bis LC5 betrieben wird
und Zustände
umfaßt,
die die Funktionsfähigkeitszustände der
obenerwähnten Controller
darstellen.
-
3 zeigt eine Maschine endlicher Zustände FSMR,
die ebenfalls durch die Controller CC1, CC2, LC1 bis LC5 betrieben
wird. Die Zustände
der Maschine endlicher Zustände
FSMR stellen im Gegensatz zu der Maschine endlicher Zustände FSMS die
entsprechenden Rollen der obenerwähnten Controller dar.
-
4 zeigt
einen Programmablaufplan eines Programmoduls PM, das durch die Controller CC1,
CC2, LC1 bis LC5 betrieben wird.
-
5 zeigt
im Detail, jedoch sehr schematisch, den Controller LC1 und das Programmodul
PM gemäß entsprechend 1 und 4.
-
6 zeigt
durch den Controller LC1 gemäß 1 und 5 gesendete
und empfangene Nachrichten M1, M2.
-
Detaillierte Beschreibung
der bevorzugten Ausführungsformen:
-
Bezug
wird nun im Detail auf die vorliegenden bevorzugten Ausführungsformen
der Erfindung genommen, wie in den beigefügten Zeichnungen dargestellt
ist. Beim Beschreiben der bevorzugten Ausführungsformen und Anwendungen
der vorliegenden Erfindung wird der Klarheit halber eine spezielle
Terminologie verwendet. Jedoch soll die Erfindung nicht auf die
spezielle so ausgewählte
Terminologie beschränkt
sein und man versteht, daß jedes spezielle
Element alle technischen Äquivalente
einschließt,
die auf eine ähnliche
Weise arbeiten, um einen gleichen Zweck zu erfüllen.
-
1 zeigt
beispielhaft eine sehr schematisch dargestellte Anordnung, mit welcher
die Erfindung in die Praxis umgesetzt werden kann. Ein Netzelement
NE umfaßt
die Controller CC1, CC2, LC1 bis LC5. Das Netzelement NE ist zum
Beispiel eine Cross-Connect-Einrichtung in einem Netz für Synchrondigitalhierarchie
(SDH) oder irgendeinem anderen Übertragungsnetz.
Das Netzelement NE könnte jedoch
eine Vermittlungsstelle eines Wählnetzes,
ein Router eines Leitwegnetzes, z.B. ein IP-Router (IP = Internet
Protocol), oder irgendeine andere Einrichtung sein, die sehr zuverlässig sein
muß. Das
Netzelement NE könnte
ebenfalls ein Element eines Fernsteuerungssystems sein.
-
Die
Controller CC1, CC2, LC1 bis LC5 sind Steuerungsmittel gemäß der Erfindung.
Die Controller CC1, CC2 sind übergeordnete
Controller oder zentrale Controller, die die untergeordneten Controller
LC1, LC2 und LC3 bis LC5 über
die Verbindungen A1 bis A5 und B1 bis B5 entsprechend steuern und überwachen.
Die zentralen Controller CC1, CC2 können außerdem untergeordnete Controller
(nicht gezeigt) steuern. Die zentralen Controller CC1, CC2 sind
redundant, wodurch ein Controller CC1 oder CC2 aktiv die untergeordneten
Controller LC1 bis LC5 steuert, folglich eine aktive Rolle spielt,
wohingegen der entsprechende andere Controller CC1, CC2 in einem
Bereitschaftsbetrieb ist, eine passive Rolle spielt. Die zentralen
Controller CC1, CC2 verhandeln ihre entsprechende aktive und passive
Rolle über eine
Verbindung VC. Die Verbindung VC und die Verbindungen A1 bis A5
und B1 bis B5 sind zum Beispiel LAN-Verbindungen (Local Area Network).
Die Kommunikation auf den obenerwähnten Verbindungen kann auf TCP/IP
(Transmission Control Protocol/Internet Protocol) basiert sein.
-
Die
untergeordneten Controller LC1, LC2 sind redundant. Sie sind zum
Beispiel sogenannte Shelf-Controller, die die Hardwareausrüstung H1
eines Shelfs SS1 steuern. Das Shelf SS1 kann zum Beispiel eine Koppelmatrix,
eine sogenannte Mittelstufe oder eine sogenannte Eingangs-/Ausgangsstufe
des Netzelementes NE darstellen oder umfassen. Die Controller LC1,
LC2 verhandeln ihre aktive oder passive Rolle über eine Verbindung CL1. Die
Verbindung CL1 ist zum Beispiel eine PCI-artige Busverbindung (PCI = Peripheral
Component Interconnect).
-
In
einer Ausführungsform
der Erfindung steuert der Controller LC1 über die Verbindungen C11, C12
die Hardwarekomponenten H11, H12, z.B. Koppelelemente, Schnittstellenkarten
oder dergleichen der Hardwareausrüstung H1 und der Controller LC2
steuert über
die Verbindungen C21, C22 die Hardwarekomponenten H21, H22 der Hardwareausrüstung H1.
Die Komponenten H11, H12 sind zum Beispiel paarweise redundant zu
den Komponenten H21, H22. Wenn der Controller LC1 aktiv ist, steuert er
aktiv die Komponenten H11, H12. Wenn der Controller LC2 aktiv ist,
steuert er die Komponenten H21, H22, die in diesem Fall ebenfalls
aktiv sind.
-
In
einer bevorzugten Ausführungsform
der Erfindung steuert jedoch einer der Controller LC1, LC2 aktiv
die Hardwareausrüstung
H1 als ein Ganzes. Der entsprechende andere Controller LC1, LC2 ist
passiv und beeinflußt
die Komponenten H11, H12, H21, H22 nicht. Auch der passive Controller
LC1 oder LC2 kann jedoch Daten empfangen, die auf die entsprechende
Funktion von den Komponenten H11, H12, H21, H22 hinweisen, um schnell
in die aktive Rolle zu wechseln.
-
Das
Shelf SS1 kann mehr oder weniger Komponenten als die Komponenten
H11, H12, H21, H22 und mehr als zwei Controller LC1, LC2 umfassen.
-
Die
Controller LC1, LC2 und die Hardwarekomponenten H11, H12, H21, H22
sind vorzugsweise durch einen gemeinsamen Bus miteinander verbunden,
zum Beispiel auf einer Rückwand
des Shelfs SS1. Die Verbindungen CL1, C11, C12, C21, C22 werden
vorzugsweise auf dem Bus aufgebaut, der zum Beispiel ein PCI-artiger Bus ist.
-
Die
untergeordneten Controller LC3 bis LC5 steuern die Hardwareausrüstung H2
eines Shelfs SS2 über
die Verbindungen C3 bis C5. Die Hardwareausrüstung H2 umfaßt eine
oder mehr Hardwarekomponenten, z.B. Schnittstellenkarten, Speicherfelder
oder dergleichen. Die Controller LC3 bis LC5 sind gegenseitig redundant
und verhandeln ihre entsprechende aktive oder passive Rolle, um
die Hardwareausrüstung
H2 über
eine Verbindung CL2 zu steuern, die zum Beispiel eine Busverbindung
ist. Infolge dieser Verhandlung steuert der Controller LC3, LC4 oder
LC5 aktiv die Hardwareausrüstung
H2, wohingegen die entsprechenden anderen Controller LC3, LC4 oder
LC5 eine passive Rolle spielen.
-
Andere
Konfigurationen aktiv, aktiv standby, passiv standby sind möglich: zum
Beispiel können zwei
aktive Controller LC3, LC4 gemeinsam die Hardwareausrüstung H2
steuern, wohingegen der entsprechende dritte Controller LC5 passiv
ist.
-
Die
Controller LC1 und LC2 und/oder LC3, LC4 oder LC5 können ebenfalls
geeignet sein, um die untergeordnete Software zu steuern, zum Beispiel
die Programmodule, die durch die Hardwareausrüstungen H1 und H2 betrieben
werden.
-
Zur
Vereinfachung sind die Controller CC1, CC2, LC1 bis LC5 von ähnlicher
Konstruktion und nur schematisch als Blockdiagramme der Funktionen dargestellt.
Jeder Controller CC1, CC2, LC1 bis LC5 kann ein integrierter Schaltkreis
sein und/oder eine Leiterplatte umfassen. 5 zeigt
z.B. ein Blockdiagramm für
den Controller LC1, der ebenfalls die Controller CC1, CC2, LC2 bis
LC5 darstellen kann. Der Controller LC1 hat Anschlußmittel
TR für
die Übertragung
und den Empfang von Daten, z.B. über
die Verbindungen A1, B1, C11, C12 und CL1. Die Anschlußmittel
TR zum Beispiel können
eine Busschnittstelle, eine Ethernet-Karte, ein Modem oder dergleichen umfassen.
Außerdem
hat der Controller LC1 die Steuerungsmittel PU ("Verarbeitungseinheit") und Speichereinrichtungen MEM, die
miteinander und mit den Anschlußmitteln
TR durch Verbindungen verbunden sind, die nicht dargestellt sind.
Die Steuerungsmittel PU sind zum Beispiel Prozessoren oder Prozessorfelder,
mit denen ein Programmcode von Programmodulen ausgeführt werden
kann, der in den Speichereinrichtungen MEM gespeichert ist, zum Beispiel
der Programmcode eines Programmoduls PM gemäß der Erfindung. Um ausgeführt zu werden, wird
das Programmodul PM aus den Speichereinrichtungen MEM in das Steuerungsmittel
PU geladen. Die Speichereinrichtungen MEM sind zum Beispiel in der
Form von Flash-Speichermodulen und/oder RAM-Modulen. Außerdem kann
der Controller LC1 Anzeigevorrichtungen wie zum Beispiel Leuchtdioden
(LED), eine Flüssigkristallanzeige (LCD)
oder dergleichen aufweisen. Die Eingabeeinrichtungen, zum Beispiel
eine Tastatur und/oder eine Computermaus, können mit dem Controller LC1
verbunden werden. Der Controller LC1 wird durch ein Betriebssystem
wie zum Beispiel ein Echtzeit-Betriebssystem
(RTOS) oder Unix betrieben.
-
Das
Programmodul PM umfaßt
in der vorliegenden Ausführungsform
Sendemittel TX und Empfangsmittel RX zum Senden der Daten an den
redundanten Controller LC2 und Empfangen der Daten von ihm. Die Übertragungsmittel
RX, TX können
ebenfalls geeignet sein, um mit dem übergeordneten Controller CC1,
CC2 zu kommunizieren. Das Programmodul PM umfaßt ebenfalls ein Bestimmungsmittel DET.
Die Funktion des Mittels DET wird im Detail beschrieben. Außerdem umfaßt das Programmodul
PM und/oder stellt dar und/oder betreibt die Maschinen endlicher
Zustände
FSMS und FSMR. Die Zustände der
Maschine FSMS stellen die Funktionsfähigkeitszustände und
die Zustände
der Maschine FSMR stellen die Rolle des Controllers LC1 dar (siehe 2 und 3). Das Programmodul PM kann in verschiedenen
Programmiersprachen codiert sein. Durch Ausführen des Programmcodes des
Programmoduls PM führt
der Controller LC1 die Schritte eines Verfahrens gemäß der Erfindung
durch.
-
Im
Grunde können
die Controller CC1, CC2, LC2 bis LC5 mit dem Programmodul PM ausgerüstet sein
und folglich die gleichen oder ähnliche
Schritte durchführen,
wie unten beschrieben.
-
Die
Maschine FSMS weist in der vorliegenden Ausführungsform zum Beispiel vier
verschiedene Zustände
NHW, NCF, NCA und FF auf, die die entsprechenden Funktionsfähigkeitszustände des Controllers
LC1 darstellen. Das Programmodul PM erkennt den entsprechenden Funktionsfähigkeitszustand
vorzugsweise in Zusammenwirkung mit dem Betriebssystem und/oder
anderen (nicht gezeigten) Programmodulen und/oder Einrichtungen
des Controllers LC1, zum Beispiel in Zusammenwirkung mit den Anschlußmitteln
TR.
-
Die
Zustände
NHW, NCF, NCA, FF können interpretiert
werden mit.
- – FF = "voll funktionsfähig". Das ist der beste Zustand, in dem
die Funktionalität
des Controllers nicht eingeschränkt
ist. In diesem Zustand hat der Controller LC1 die Konfigurationsdaten
CD von dem aktiven einen der Controller CC1, CC2 empfangen. Folglich
ist die Kommunikation mit dem aktiven Controller CC1, CC2 nicht
gestört.
Außerdem
kann der Controller LC1 zugreifen und ist fähig, die Hardwareausrüstung H1
zu steuern.
- – NCA
= "kein zentraler
Controllerzugriff".
In diesem Zustand ist der Controller LC1 für den selbständigen Betrieb
funktionsfähig,
d.h. im Grunde fähig,
die Hardwareausrüstung
H1 zu steuern. Der Controller LC1 hat bereits die Konfigurationsdaten
CD empfangen. Die Verbindungen A1 und/oder B1 mit den untergeordneten
Controllern CC1, CC2, mindestens der Anschluß A1 oder B1 mit dem entsprechenden
aktiven Controller CC1, CC2, sind/ist jedoch gestört, z.B.
infolge eines unterbrochenen LAN-Kabels.
- – NCF
= "nicht konfiguriert". Der Controller
LC1 ist in diesem Zustand gleich nach seinem Systemstart, wenn er
die Konfigurationsdaten CD noch nicht von dem aktiven einen der
Controller CC1, CC2 empfangen hat. In dem Zustand NCF ist der Controller
LC1 im Grunde fähig,
die Hardwareausrüstung
H1 zuzugreifen und/oder zu steuern. Es könnte der Fall sein, daß, selbst
wenn der Controller LC1 die Konfigurationsdaten CD nicht empfangen
hat, er fähig
ist, die Hardwareausrüstung
H1 gemäß den Basiskonfigurationsdaten (nicht
gezeigt) zu betreiben, die in den Speichereinrichtungen MEM ständig gespeichert
sind.
- – NHW
= "kein Hardwarezugriff". Das ist der schlechteste
Zustand, in dem der Controller LC1 keinen Zugriff auf die Hardwareausrüstung H1 hat.
-
Mehr
oder weniger Zustände
als die Zustände
NHW, NCF, NCA und FF sind möglich.
Zum Beispiel könnten
zusätzlich
zu dem Zustand NCA weitere Zustände "kein Zugriff auf
Controller CC1" und "kein Zugriff auf
Controller CC2" definiert
sein.
-
Die
Zustände
NHW, NCF, NCA, FF stellen die Funktionsfähigkeitszustände des
Controllers LC1 in einer aufsteigenden Reihenfolge dar. In der vorliegenden
Ausführungsform
sind die Werte 1 bis 4 den Zuständen
NHW, NCF, NCA, FF zugewiesen. Folglich stellt ein höherer Wert
der Zustandsparameter der Funktionsfähigkeit eine bessere Fähigkeit
des Controllers LC1 dar, um seine Funktionalität durchzuführen.
-
Die
Maschine endlicher Zustände
FSMS (2) arbeitet wie folgt. Der Anfangszustand des Controllers
LC1 ist der Zustand NCF. Da die Verbindungen zu sowohl der Hardwareausrüstung H1
als auch mindestens dem aktiven einen der Controller CC1, CC2 in
der Regel voll betriebsbereit sind, empfängt der Controller LC1 die
Konfigurationsdaten CD, beendet er seine Systemstartroutinen und
schaltet in einen Übergang
T1 zu dem Zustand FF.
-
Wenn
die Verbindungen A1 und/oder B1 zu den übergeordneten Controllern CC1,
CC2 verloren sind, wechselt der Controller LC1 in einen Übergang T2
zu dem Zustand NCA. Nach dem Wiederaufbauen der Verbindungen A1
und/oder B1 wechselt der Controller LC1 in einen Übergang
T3 zu dem Zustand FF.
-
Wenn
der Controller LC1 mindestens teilweise den Zugriff auf die Hardwareausrüstung H1
verliert, wechselt er von jedem der Zustände FF, NCA, NCF zu dem Zustand
NHW (Übergänge T4,
T5, T6). In der entgegengesetzten Richtung wechselt der Controller
LC1 von dem Zustand NHW in den bestmöglichen Zustand NCF, NCA, FF über die Übergänge T7,
T8, T9, wenn der Zugriff auf die Hardwareausrüstung H1 wiederhergestellt
ist.
-
Die
Maschine endlicher Zustände
FSMR (3) arbeitet wie folgt. Die Anfangsrolle
der Maschine FSMR ist die Rolle UN, die zum Beispiel "unbestimmt" ist. In Abhängigkeit
von der Fähigkeit
des Controllers LC1, seine Funktionalität im Vergleich mit der entsprechenden
Funktionsfähigkeit
des Controllers LC2 durchzuführen,
schaltet die Maschine FSMR auf eine der Rollen AC (= aktiv) oder
PA (= passiv) um. Wenn sich der Zusammenhang der Funktionsfähigkeitszustände der
Controller LC1, LC2 ändert, ändern die
Controller LC1, LC2 ebenfalls ihre entsprechenden Rollen AC oder
PA.
-
In
der vorliegenden Ausführungsform übermitteln
die Controller LC1, LC2 gegenseitig die Nachrichten M1, M2. Der
Controller LC1 sendet zum Beispiel die Nachricht M1 an den Controller
LC2 und empfängt
die Nachricht M2 von dem Controller LC2. Die Nachricht M1 umfaßt zum Beispiel
einen Zustandsparameter der Funktionsfähigkeit ST1, der den entsprechenden
Funktionsfähigkeitszustand
des Controllers LC1 darstellt, z.B. NHW, NCF, NCA oder FF, eine
Information RO1 über
die Rolle des Controllers LC1, z.B. UN, AC oder PA, und einen Identifizierer
ID1, der den Controller LC1 eindeutig identifiziert. Der Identifizierer
ID1 könnte
ebenfalls als ein Tag bezeichnet sein. Der Identifizierer ID1 kann
z.B. von einem Hardware-Leistungsmerkmal
des Controllers LC1 abgeleitet sein, wie zum Beispiel seine Hardwareadresse,
eine eindeutige Seriennummer oder dergleichen.
-
Der
Identifizierer ID1 wird in der vorliegenden Ausführungsform der Erfindung verwendet,
um sowohl den Controller LC1 zu identifizieren als auch Aktiv-Aktiv-
und Passiv-Passiv-Rollenkonflikte zwischen den Controllern LC1,
LC2 zu lösen,
die später erklärt werden.
-
Die
Nachricht M2 umfaßt
ein Tripel ST2, RO2, ID2, das den Funktionsfähigkeitszustand, die Rolle
und die Identifizierung des Controllers LC2 entsprechend darstellt.
-
Die
Zustandsparameter der Funktionsfähigkeit
ST1, ST2 können
die Werte 1 bis 4 erreichen, die den Zuständen NHW, NCF, NCA und FF zugewiesen sind.
Die Rolleninformationen RO1, RO2 können die Werte 1 bis 3 aufweisen,
die den Rollen UN, PA, AC zugewiesen sind. Die Werte des Identifizierers
ID1, ID2 sind zum Beispiel 1 und 2.
-
Die
Nachrichten M1 und M2 werden zum Beispiel bei dem Systemstart der
Controller LC1, LC2 gesendet und/oder wenn eine Hardwarekomponente der
Hardwareausrüstung
H1 entfernt oder eingefügt wird
und/oder wenn sich der Zustand der Verbindungen A1, A2, B1, B2 zwischen
den Controllern LC1, LC2 und den übergeordneten Controllern CC1 und/oder
CC2 ändert
(z.B. infolge von Kommunikationsproblemen oder dergleichen) und/oder
wenn sich der Zustand der Verbindungen C11, C12, C21, C22 zwischen
den Controllern LC1, LC2 und der Hardwareausrüstung H1 ändert. Die Controller LC1,
LC2 können
ebenfalls periodisch und/oder zu zufälligen Zeitpunkten oder zu
irgendeiner anderen Zeitbedingung die Nachrichten M1 und M2 senden.
-
Der
Programmablaufplan von 4 zeigt einen möglichen
Ablauf, gemäß dem das
Programmodul PM, d.h. das Bestimmungsmittel oder die Funktion DET,
zwischen den Rollen UN, PA, AC in Abhängigkeit von unter anderem
den Funktionsfähigkeitszuständen NHW,
NCF, NCA, FF wechselt.
-
Der
Plan von 4 stellt eine mögliche Ausführungsform
der folgenden Regeln dar:
- – Wenn ein Controller in der
Rolle unbestimmt (UN) ist, wechselt er zu der Rolle aktiv (AC) oder passiv
(PA), nachdem er mindestens den Zustandsparameter der Funktionsfähigkeit
empfangen hat, wobei vorzugsweise das komplette Tripel den Zustandsparameter
der Funktionsfähigkeit, die
Rolle und den Identifizierer von jedem anderen Controller umfaßt. Das
erfolgt gemäß den folgenden
weiteren Regeln.
- – Ein
Controller spielt eine aktive Rolle (AC), wenn alle Controller einen
Funktionsfähigkeitszustand aufweisen,
der eine geringere Fähigkeit
angibt, um ihre entsprechende Funktionalität durchzuführen.
- – Ein
Controller wechselt zu der passiven Rolle (PA), wenn ein anderer
Controller einen Funktionsfähigkeitszustand
aufweist, der eine höhere Fähigkeit
angibt, um seine Funktionalität
durchzuführen.
- – Wenn
zwei oder mehr Controller gleichermaßen fähig sind, die aktive Rolle
(AC) zu spielen, bleibt nur der eine mit dem höchsten Wert des Identifizierers
(Tag) aktiv (AC), alle anderen Controller wechseln zu der passiven
Rolle (PA). Durch diese Regel werden Aktiv-Aktiv-Rollenkonflikte
gelöst.
- – Wenn
kein Controller in der aktiven Rolle ist, wird der Controller mit
dem höchsten
Wert des Identifizierers (Tag) aktiv; alle anderen Controller wechseln
zu der passiven Rolle oder bleiben in ihr. Das löst alle Passiv-Passiv-Rollenkonflikte und
erleichtert den Anfangsübergang
von der Rolle unbestimmt.
- – Ein
Controller ändert
seine Rolle nicht, wenn andere Controller mit dem gleichen Niveau
des Funktionsfähigkeitszustandes
vorhanden sind und kein Aktiv-Aktiv-
oder Passiv-Passiv-Konflikt vorhanden ist.
-
Erläuterung des Plans von 4:
-
In
einem Startschritt S1 nimmt das Programmodul PM die Rolle UN an.
Dann geht es (siehe Pfeil T41) zu einem Schritt S2, in welchem es
auf eine Nachricht von einem redundanten Controller wartet. Die
Programmodule PM des Controllers LC1, LC2 warten entsprechend auf
die Nachrichten M2, M1.
-
Wenn
das Programmodul PM die entsprechende Nachricht M1, M2 nicht empfängt, nimmt
es nach einer Zeitüberschreitung
TO die Rolle AC (= Schritt S3) an und geht anschließend zurück (siehe Pfeil
T42) zu dem Schritt S2, indem es auf eine mögliche Nachricht M1, M2 wartet,
die ein Tripel ST1, RO1, ID1 oder ST2, RO2, ID2 von dem entsprechenden
redundanten Controller LC1, LC2 beinhaltet. Die Zeit der Zeitüberschreitung
TO ist vorzugsweise länger
als die Perioden zwischen der üblichen Übertragung
der Nachrichten M1, M2.
-
Die
folgende Beschreibung bezieht sich nur auf das Programmodul PM des
Controllers LC1.
-
Wenn
die vorzugsweise sichere und zuverlässige Kommunikation zwischen
den Controllern LC1 und LC2 nicht gestört ist und der Controller LC2 ordnungsgemäß arbeitet,
empfängt
das Programmodul PM die Nachricht M2 und geht, dargestellt durch einen
Pfeil T43, zu einem Schritt S4.
-
In
dem Schritt S4 vergleicht das Programmodul PM den Funktionsfähigkeitszustand
des Controllers LC1 mit dem aktuellen Funktionsfähigkeitszustand des Controllers
LC2. Zu diesem Zweck vergleicht das Programmodul PM die Werte der
entsprechenden Zustandsparameter der Funktionsfähigkeit ST1 und ST2. In dem
Schritt S4 stellt das Programmodul PM die Frage "Ist der lokale Funktionsfähigkeitszustand
besser als der Funktionsfähigkeitszustand
des (der) entfernten (redundanten) Controller(s)?" oder in der vorliegenden
Ausführungsform "Ist der lokale Funktionsfähigkeitszustand,
der Funktionsfähigkeitszustand
des Controllers LC1 besser als der Funktionsfähigkeitszustand des (der) entfernten
(redundanten) Controller(s), der Funktionsfähigkeitszustand von Controller
LC2?". Wenn die
Antwort "Ja" ist, geht das Programmodul
PM (dargestellt durch einen Pfeil T44) zu einem Schritt S5, in welchem
es die aktive Rolle AC annimmt. Das Programmodul PM kann in Schritt
S4 die Werte der Zustandsparameter der Funktionsfähigkeit
ST1, ST2 vergleichen. Ein höherer
Wert stellt zum Beispiel einen besseren Funktionsfähigkeitszustand
des entsprechenden Controllers LC1, LC2 dar. Nach dem Durchführen von
Schritt S5 geht das Programmodul PM zurück über den Pfeil T46 zu Schritt
S2 und wartet wieder auf eine Funktionsfähigkeitszustandsinformation
von dem Controller LC2.
-
Wenn
jedoch die Antwort auf die Frage von Schritt S4 "Nein" ist,
mit anderen Worten, wenn der Funktionsfähigkeitszustand des Controllers
LC1 gleich oder schlechter als der Funktionsfähigkeitszustand des Controllers
LC2 ist, geht das Programmodul PM (dargestellt durch einen Pfeil
T47) zu einem Schritt S6. In dem Schritt S6 stellt das Programmodul PM
die Frage "Ist der
lokale Funktionsfähigkeitszustand
schlechter als der Funktionsfähigkeitszustand des
(der) entfernten (redundanten) Controller(s)?", mit anderen Worten, "Ist der Funktionsfähigkeitszustand
des Controllers LC1 schlechter als der Funktionsfähigkeitszustand
des Controllers LC2?".
Wenn die Antwort "Ja" ist, geht das Programmodul
PM (dargestellt durch einen Pfeil T48) zu einem Schritt S7, in welchem
es die passive Rolle PA annimmt. Vom Schritt S7 geht das Programmodul PM,
dargestellt durch einen Pfeil T49, zurück zu Schritt S2 und wartet auf
eine Nachricht von dem Controller LC2.
-
Wenn
jedoch die Antwort auf die Frage von Schritt S6 "Nein" ist,
sind die Funktionsfähigkeitszustände der
Controller LC1, LC2 gleich. Dann geht das Programmodul PM (dargestellt
durch einen Pfeil T50) zu einem Schritt S8, in welchem es entweder
die aktive Rolle AC oder die passive Rolle PA annimmt, wenn die
aktuelle Rolle des Controllers LC1 bis jetzt die unbestimmte Rolle
UN ist. Folglich wird ein Anfangsrollenübergang von unbestimmt zu entweder aktiv
oder passiv durchgeführt.
Wenn die aktuelle Rolle vor dem Schritt S8 bereits AC oder PA ist, ändert das
Programmodul PM die entsprechende Rolle in Schritt S8 nicht.
-
Von
Schritt S8 geht das Programmodul PM (über den Pfeil T51) zu einem
Schritt S9, in welchem es die entsprechenden Rollen der Controller
LC1, LC2 überprüft. Zu diesem
Zweck kann das Programmodul PM die Werte der Informationen RO1 und
RO2 vergleichen. Wenn die lokale Rolle des Controllers LC1 nicht
gleich der entfernten Rolle des Controllers LC2 ist, sozusagen "die lokale Rolle
nicht gleich der entfernten Rolle" ist, bleiben die entsprechenden Rollen
unverändert.
Folglich wird das Programmodul PM über den Pfeil T52 zu Schritt
S2 rückgeschleift.
-
Wenn
jedoch die Rollen der redundanten Controller LC1, LC2 gleich sind
(Aktiv-Aktiv- oder Passiv-Passiv-Konflikt), geht das Programmodul
PM (dargestellt durch einen Pfeil T53) zu einem Schritt S10, in
welchem es die Identifizierer oder Tags ID1, ID2 bewertet. Wenn
z.B. der Wert des (lokalen) Identifizierers ID1 höher als
der Wert des (entfernten) Identifizierers ID2 ist, geht das Programmodul
PM (siehe Pfeil T54) zu einem Schritt S11, in welchem es die aktive
Rolle AC annimmt. Andernfalls geht das Programmodul PM (siehe Pfeil T55)
zu einem Schritt S12, in welchem es die passive Rolle PA annimmt. Von
den Schritten S11 und S12 geht das Programmodul PM zurück zu dem
Schritt S2 (siehe entsprechend Pfeil T56 und T57).
-
Nach
dem Bestimmen der entsprechenden Rolle AC oder PA weist das Programmodul
PM den Controller LC1 an, die entsprechende Rolle zu spielen. Das
Programmodul PM weist z.B. das Anschlußmittel TR an, keine Kommandos
an die Hardwareausrüstung
H1 zu senden, wenn der Controller LC1 in der passiven Rolle ist.
-
Die
Controller CC1 und CC2 sowie die Controller LC3 bis LC4 können ihre
entsprechende aktive oder passive Rolle dementsprechend verhandeln. Folglich
wird die Zuteilung der Aktiv-Passiv-Rolle auf dem gleichen hierarchischen
Niveau entsprechend verhandelt. Eine Koordinierungshilfe eines übergeordneten
Steuerungsmittel wird nicht benötigt.
Mit anderen Worten, die Controller LC1, LC2 wären fähig, ihre entsprechende aktive
oder passive Rolle gemäß der Erfindung
zu verhandeln, auch wenn keine übergeordneten
Controller CC1, CC2 vorhanden wären.
-
Auch
wenn die oben erläuterte "Software"-Lösung eine
bevorzugte Ausführungsform
der Erfindung ist, ist eine mehr oder weniger "hardware"-orientierte Ausführungsform der Erfindung ebenfalls
möglich.
Zusätzlich
zu dem Programmodul PM oder anstelle von ihm kann der Controller
LC1 zum Beispiel ein Hardwaremodul HM gemäß der Erfindung umfassen. Das
Modul HM stellt im Grunde die gleiche Funktionalität wie das
Programmodul PM bereit, d.h. führt
die Schritte eines Verfahrens gemäß der Erfindung durch. Das
Modul HM umfaßt
zum Beispiel Mittel RXH, TXH, DETH, FSMSH und FSMRH, die – zumindest
im Hinblick auf die entsprechenden Funktionen – den Mitteln RX, TX, DET,
FSMS und FSMR des Programmoduls PM ähnlich sind. Das Modul HM kann
zum Beispiel ein integrierter Schaltkreis oder "Chip" separat
von dem Controller LC1 sein. Eine integrierte Lösung, z.B. eine Ein-Chip-Lösung oder
eine Ein-Leiterplatten-Lösung,
ist jedoch bevorzugt, in welcher das Modul HM einen Bestandteil
des Controllers LC1 bildet. Das Modul HM könnte zum Beispiel ein anwendungsspezifischer
Schaltkreis (ASIC/Application Specific Integrated Circuit) sein.
-
Es
ist jedoch möglich,
eine kombinierte Hardware-Software-Lösung
bereitzustellen. Ein modifiziertes Hardwaremodul HM könnte zum
Beispiel (Hardware) nur die Mittel RXH, TXH, DETH umfassen, die
mit den Mitteln FSMS und FSMR eines modifizierten Programmoduls
PM (ohne die Mittel RX, TX, DET) zusammenarbeiten.