Beschreibung
Verfahren zum Betrieb eines dezentralen Kommunikationsnetzes
Die Erfindung betrifft ein Verfahren zum Betrieb eines dezentralen Kommunikationsnetzes mit einer Vielzahl von Netzknoten sowie ein entsprechendes Kommunikationsnetz.
Dezentrale Kommunikationsnetze werden z.B. als Peer-to-Peer- Netze zum Austausch von Daten eingesetzt, wobei eine Vielzahl von Netzknoten sich dezentral ohne Zwischenschaltung eines Servers selbst verwalten. Zum Betrieb von solchen dezentralen Netzen werden entsprechende Protokolle verwendet, mit denen eine logische Struktur von Netzknoten geschaffen wird. Be- kannte Peer-to-Peer-Protokolle, wie z.B. Gnutella, dienen zur Kommunikation von Benutzerendgeräten, insbesondere von PCs oder Mobilfunkgeräten, über das Internet, um Daten zu publizieren und zu suchen.
Es ist wünschenswert, dezentrale Datennetze auch im Bereich von industriellen technischen Systemen zu verwenden. Heutzutage werden technische Systeme häufig als sog. „Embedded Systems" realisiert, bei denen die einzelnen Komponenten des Systems Intelligenz in der Form eines Rechners sowie eines Kommunikationsmoduls zum Kommunizieren mit anderen Komponenten des technischen Systems aufweisen. Für diese Systeme eignet sich der Einsatz von entsprechenden dezentralen Datennetzen, da jede Komponente des Systems selbständig mit anderen Komponenten kommunizieren kann. Die Verwendung von herkömmli- chen Peer-to-Peer-Protokollen im industriellen Anwendungsbereich weist jedoch den Nachteil auf, dass die bei herkömmlichen Protokollen verwendeten Mechanismen zur Veröffentlichung und Suche nach Ressourcen oftmals nicht industrielle Anforderungen in Bezug auf die Kommunikationsgeschwindigkeit zwi- sehen den Geräten erfüllen.
Aufgabe der Erfindung ist es deshalb, ein Verfahren zum Betrieb eines dezentralen Kommunikationsnetzes zu schaffen, mit
dem eine schnelle und verlässliche Kommunikation der einzelnen Netzknoten untereinander gewährleistet ist.
Diese Aufgabe wird durch die unabhängigen Patentansprüche ge- löst. Weiterbildungen der Erfindung sind in den abhängigen Ansprüchen definiert.
Mit dem erfindungsgemäßen Verfahren wird ein Kommunikationsnetz mit einer Vielzahl von Netzknoten betrieben, wobei jedem Netzknoten ein Identitätswert aus einem Wertebereich von
Identitätswerten sowie eine Adresse zur Kommunikation des jeweiligen Netzknotens mit anderen Netzknoten zugewiesen ist und wobei jeder Netzknoten für ein Intervall von Identitätswerten aus dem Wertebereich zuständig ist.
In dem erfindungsgemäßen Verfahren verwaltet jeder betriebsbereite Netzknoten eine Tabelle, welche für zumindest die betriebsbereiten Netzknoten im Kommunikationsnetz jeweils einen Eintrag enthält, der zumindest den Identitätswert und die Ad- resse des jeweiligen Netzknotens umfasst. Die Tabelle stellt in einer bevorzugten Variante eine Hash-Tabelle mit entsprechenden Hash-Werten aus einem Hash-Wertebereich dar. Die Adresse der einzelnen Netzknoten in der Tabelle ist vorzugsweise eine Netzwerkadresse, wie z.B. eine IP-Adresse oder eine MAC-Adresse.
In dem erfindungsgemäßen Verfahren sendet jeder betriebsbereite Netzknoten regelmäßig Aktivitäts-Nachrichten an die anderen Netzknoten des Kommunikationsnetzes, wobei die Aktivi- täts-Nachrichten jeweils zumindest den Identitätswert und die Adresse des jeweiligen Netzknotens beinhalten und jeder betriebsbereite Netzknoten bei Empfang einer Aktivitäts- Nachricht seine Tabelle mit dem Inhalt der Aktivitäts- Nachricht synchronisiert. Unter Synchronisation ist insbeson- dere zu verstehen, dass der entsprechende Eintrag in der Tabelle zumindest dann aktualisiert wird, wenn der Inhalt der Aktivitäts-Nachricht von dem aktuellen Inhalt in dem Eintrag abweicht. Ebenso ist unter Synchronisation die Erzeugung ei-
nes neuen Eintrags bzw. die Erstbelegung eines Eintrags gemäß dem Inhalt der entsprechenden Aktivitäts-Nachricht zu verstehen .
Das erfindungsgemäße Verfahren zeichnet sich dadurch aus, dass durch das Aussenden von Aktivitäts-Nachrichten jede Tabelle der einzelnen Netzknoten Informationen zu allen anderen Netzknoten enthält, so dass jeder Netzknoten mit Hilfe des Identitätswerts und der entsprechenden Adresse in der Tabelle andere Netzknoten unmittelbar ansprechen kann. Somit sind in dem dezentralen Kommunikationsnetz jedem Netzknoten alle anderen Netzknoten bekannt, was bei herkömmlichen dezentralen Datennetzen nicht der Fall ist. Auf diese Weise wird die Suche nach Ressourcen vereinfacht, da ein entsprechender Netz- knoten direkt angesprochen werden kann und nicht durch aufwändige Lookup-Verfahren nach Netzknoten gesucht werden muss. Das Verfahren eignet sich insbesondere zur Verwendung in industriellen Anwendungen, bei denen die Anzahl an Netzknoten im Vergleich zu Anwendungen im Internet überschaubar ist, so dass die Verwaltung von Tabellen mit Informationen zu allen Netzknoten des dezentralen Datennetzes problemlos möglich ist. Ebenso werden industrielle Anforderungen an die Kommunikationsgeschwindigkeit erfüllt, da jeder Netzknoten Informationen über alle anderen Netzknoten enthält und somit wesent- lieh schneller nach Ressourcen und entsprechenden Netzknoten gesucht werden kann.
Wie bereits oben dargelegt, eignet sich das erfindungsgemäße Verfahren insbesondere zur Verwendung in einem Kommunikati- onsnetz eines technischen Systems, welches eine Mehrzahl von technischen Komponenten aufweist. In einem solchen technischen System sind zumindest einem Teil der technischen Komponenten jeweils eine Geräteidentität zum Zugriff auf die technische Komponente zugewiesen und einer Geräteidentität ist zumindest ein Netzknoten des Kommunikationsnetzes zugeordnet. Mit Hilfe der Geräteidentität kann ein Gerät in dem Kommunikationsnetz direkt ohne die Adressierung über die Adressen der Netzknoten angesprochen werden. Eine direkte Kommunikati-
on über die Geräteidentitäten ist oftmals ein Erfordernis in industriellen Anwendungen, um schnell, beispielsweise in Notfallsituationen, Befehle an die entsprechenden Geräte übertragen zu können. Um erfindungsgemäß auch die Kommunikation mittels der Geräteidentitäten zu gewährleisten, umfasst ein Eintrag der Tabelle der jeweiligen Netzknoten vorzugsweise ferner jeweils die Geräteidentität, welcher der dem Eintrag entsprechende Netzknoten zugeordnet ist. Dabei wird mit einer jeweiligen Aktivitäts-Nachricht ferner die Geräteidentität übermittelt, welche dem Netzknoten zugeordnet ist, der die jeweilige Aktivitäts-Nachricht aussendet. Auf diese Weise wird in dem erfindungsgemäßen Verfahren auch die Kommunikation über die Geräteidentitäten ermöglicht, wobei mit Hilfe der Aktivitäts-Nachrichten die Geräteidentitäten in den Tabellen auf dem aktuellen Stand gehalten werden. Es wird somit eine Tabelle mit zwei Arten von Schlüsseln geschaffen, mit denen in dem Datennetz nach Ressourcen gesucht werden kann bzw. Geräte angesprochen werden können.
Das erfindungsgemäße Verfahren kann in beliebigen industriellen Anwendungsbereichen eingesetzt werden. Beispielsweise kann das Verfahren in Spannungsverteilsystemen, insbesondere in einem Umspannwerk, verwendet werden, wobei die technischen Komponenten insbesondere Schalteinheiten in dem Spannungsver- eilsystem umfassen. Ein anderer Anwendungsbereich ist ein Energieerzeugungssystem, insbesondere eine Turbine. Ebenso kann das Verfahren in Automatisierungsanlagen, insbesondere in einer Fertigungsstraße, verwendet werden.
Um auf einfache Weise zu gewährleisten, dass die Aktivitäts- Nachrichten alle Netzknoten im Kommunikationsnetz erreichen, werden diese Nachrichten vorzugsweise als Broadcast- Nachrichten von dem jeweiligen Netzknoten in das Kommunikationsnetz ausgesendet.
In dem Kommunikationsnetz ist ferner vorzugsweise ein Mechanismus vorgesehen, durch den festgestellt wird, wenn ein betriebsbereiter Netzknoten inaktiv wird, wobei ein inaktiver
Netzknoten sich dadurch auszeichnet, dass er keine Aktivitäts-Nachricht mehr aussendet. Ein inaktiver Netzknoten kann somit ein ausgefallener Netzknoten sein oder ein Netzknoten, der sich abgeschaltet hat bzw. heruntergefahren wurde. Der Mechanismus zur Feststellung, dass ein jeweiliger Netzknoten inaktiv wird, läuft insbesondere derart ab, dass über zumindest einen, dem jeweiligen Netzknoten zugeordneten Überwachungsknoten überwacht wird, ob der jeweilige Netzknoten Aktivitäts-Nachrichten aussendet, wobei der zumindest eine Überwachungsknoten auch einer der Netzknoten des Kommunikationsnetzes ist. Im Falle, dass der überwachte Netzknoten keine Aktivitäts-Nachricht mehr aussendet, sendet der zumindest eine Überwachungsknoten eine Deaktivierungs-Nachricht an alle anderen Netzknoten, wobei die Deaktivierungs-Nachrichtn zu- mindest den Identitätswert des jeweiligen (überwachten) Netzknotens enthält. Analog zu den Aktivitäts-Nachrichten wird die Deaktivierungs-Nachricht vorzugsweise auch als Broadcast- Nachricht von dem zumindest einen Überwachungsknoten in das Kommunikationsnetz ausgesendet. Der zumindest eine Überwa- chungsknoten ist vorzugsweise ein Netzknoten, der in der Reihenfolge der Identitätswerte zum überwachten Netzknoten benachbart ist, wobei vorzugsweise die beiden unmittelbaren Nachbarn mit kleinerem bzw. größerem Identitätswert als der überwachte Netzknoten als Überwachungsknoten fungieren.
In einer weiteren Ausgestaltung des erfindungsgemäßen Verfahrens ermittelt der zumindest einen Überwachungsknoten ferner, ob neue Netzknoten in dem Kommunikationsnetz aktiv werden. Dabei überprüft der Überwachungsknoten im Falle, dass er eine Aktivitäts-Nachricht von einem neu in das Kommunikationsnetz hinzukommenden oder aktivierten Netzknoten empfängt, ob der neue Netzknoten ein neuer benachbarter Netzknoten ist, wobei der Überwachungsknoten im Falle, dass der neue Netzknoten ein neuer Nachbar ist, die Überwachung dieses Netzknotens be- ginnt. Die Überwachung des alten benachbarten Knotens wird in diesem Falle vorzugsweise eingestellt. Auf diese Weise wird sichergestellt, dass die Überwachung immer derart ausgestaltet ist, dass die Überwachungsknoten zumindest die direkten
Nachbarn des überwachten Knotens umfassen. Anstatt bzw. neben der Verwendung von Überwachungsknoten kann sich ein Netzknoten auch selbst überwachen. Insbesondere sendet ein solcher, sich selbst überwachender Netzknoten eine seinen Identitäts- wert enthaltende Deaktivierungs-Nachricht an alle anderen betriebsbereiten Netzknoten, wenn er sich abschaltet.
In einer weiteren, bevorzugten Ausführungsform der Erfindung enthält die Tabelle eines jeweiligen Netzknotens Einträge für alle Identitätswerte des Wertebereichs, wobei für jeden Eintrag über ein Statusfeld angezeigt wird, ob der Netzknoten des Eintrags im Kommunikationsnetz vorhanden ist oder betriebsbereit ist oder inaktiv ist. Im Falle, dass in einem jeweiligen Netzknoten Aktivitäts-Nachrichten von einem Netz- knoten empfangen werden, der in dem Kommunikationsnetz zuvor noch nicht vorhanden oder zuvor inaktiv war, wird der entsprechende Eintrag des zuvor noch nicht vorhandenen oder zuvor inaktiven Netzknotens der Tabelle mit dem Inhalt der Aktivitäts-Nachricht synchronisiert, und das Statusfeld des entsprechenden Eintrags wird auf aktiv gesetzt.
In einer weiteren Ausgestaltung des erfindungsgemäßen Verfahrens setzt ein jeweiliger Netzknoten, der eine Deaktivierungs-Nachricht empfängt, das Statusfeld des Eintrags des Netzknotens gemäß dem Identitätswert in der Deaktivierungs- Nachricht auf inaktiv.
In einer weiteren Ausgestaltung des erfindungsgemäßen Verfahrens ist jeder betriebsbereite Netzknoten für das Intervall von Identitätswerten zwischen seinem Identitätswert und dem nächst größeren bzw. nächst kleinerem Identitätswert seines betriebsbereiten Nachbarknotens zuständig. Bei einer Veränderung des Statusfeldes eines Eintrags der Tabelle der betriebsbereiten Netzknoten werden dabei die Intervalle der Identitätswerte, für welche die betriebsbereiten Netzknoten zuständig sind, basierend auf den sich verändernden Identitätswerten angepasst. Auf diese Weise übernimmt ein Netzknoten beim Wegfall eines anderen Netzknotens ein größeres In-
tervall bzw. ein neu hinzukommender Netzknoten übernimmt zum Teil das Intervall eines bereits vorhandenen Netzknotens.
In einer besonders bevorzugten Ausführungsform des erfin- dungsgemäßen Verfahrens werden in dem Kommunikationsnetz durch zumindest einen Teil der Netzknoten Ressourcen publiziert, indem ein oder mehrere, einer Ressource zugeordnete Schlüsselwörter auf einen Identitätswert abgebildet werden, wobei die Ressource oder ein Verweis auf die Ressource auf einem Publikationsknoten gespeichert wird, wobei der Publikationsknoten derjenige Netzknoten ist, der für das Intervall zuständig ist, welches den Identitätswert enthält, auf dem das oder die Schlüsselwörter abgebildet sind. Unter Ressource sind hierbei beliebige Daten zu verstehen, die in dem Netz gespeichert und bekannt gemacht werden sollen. Vorzugsweise sind hierbei die Identitätswerte Hash-Werte, wobei die Abbildung des oder der Schlüsselwörter auf den Identitätswert mit einer Hash-Funktion erfolgt. Es kann hierbei eine beliebige Hash-Funktion verwendet werden, vorzugsweise wird die Hash- Funktion derart gewählt, dass eine gleichmäßige Verteilung der Ressourcen auf den Netzknoten erreicht wird. Eine derartige Hash-Funktion ist z.B. die hinlänglich aus dem Stand der Technik bekannte Fowler/Noll/Vo (FNV) Hash-Funktion.
Vorzugsweise werden bei der Publikation einer Ressource
Replikationen durchgeführt, so dass die Ressource oder ein Verweis auf die Ressource außer auf dem Publikationsknoten auf weiteren Knoten gespeichert wird. Auf diese Weise wird Redundanz in dem Kommunikationsnetz erzeugt, so dass bei Aus- fall eines Netzknotens die dort gespeicherten Ressourcen nicht verloren gehen. In einer besonders bevorzugten Ausführungsform werden die weiteren, zur Replikation verwendeten Netzknoten durch Addition von Primzahlen zu dem Identitätswert des Publikationsknotens bestimmt. Vorzugsweise wird im Falle, dass sich die Zuständigkeit eines Netzknotens für eine Ressource in dem Kommunikationsnetz verändert (beispielsweise beim Hinzukommen oder Wegfallen von Netzknoten) , die Ressource in dem Kommunikationsnetz nochmals publiziert.
In dem Kommunikationsnetz kann besonders einfach nach Ressourcen derart gesucht werden, dass ein suchender Netzknoten das oder die Schlüsselwörter der Ressource auf den Identi- tätswert abbildet und mit Hilfe seiner Tabelle den Netzknoten ermittelt, der für die Ressource zuständig ist. Über die Adresse des ermittelten Netzknotens der Tabelle kann dieser Netzknoten dann durch den suchenden Netzknoten angesprochen werden .
Das erfindungsgemäße Verfahren kann in beliebigen dezentralen Netzen eingesetzt werden, bevorzugter Anwendungsbereich sind hinlänglich bekannte Peer-to-Peer-Netze, insbesondere solche Netze mit einer logischen Ringstruktur, wie z.B. Chord. Das erfindungsgemäße Verfahren stellt vorzugsweise eine Erweiterung des Kommunikationsprotokolls für solche Peer-to-Peer- Netze dar.
Neben dem oben beschriebenen Verfahren umfasst die Erfindung ferner ein dezentrales Kommunikationsnetz, welches derart ausgestaltet ist, dass jede der oben beschriebenen Varianten des erfindungsgemäßen Verfahrens in diesem Netz durchführbar ist .
Ausführungsbeispiele der Erfindung werden nachfolgend anhand der beigefügten Figuren detailliert beschrieben.
Es zeigen:
Fig. 1 eine Ausführungsform einer in der Erfindung verwendeten Hash-Tabelle zu zwei unterschiedlichen Zeitpunkten in einem Peer-to-Peer-Netz,•
Fig. 2 und Fig. 3 Darstellungen einer Ausführungsform des erfindungsgemäßen Peer-to-Peer-Netzes, anhand derer der Ablauf des erfindungsgemäßen Verfahrens erläutert wird;
Fig. 4 ein Diagramm, welches den Ablauf der
Überwachung eines Peers durch seine Nachbarn gemäß einer Ausführungsform der Er- findung wiedergibt;
Fig. 5 eine Darstellung einer Ausführungsform des erfindungsgemäßen Peer-to-Peer- Netzes, anhand welcher die Detektion des Ausfalls eines Peers erläutert wird;
Fig. 6 eine Darstellung einer Ausführungsform des erfindungsgemäßen Peer-to-Peer- Netzes, anhand welcher das Publizieren und die Suche nach Ressourcen verdeutlicht wird;
Fig. 7 ein Ablaufdiagramm, welches das Republizieren von Ressourcen beim Ausfall eines Peers in einer Ausführungsform des erfindungsgemäßen Verfahrens wiedergibt; und
Fig. 8 ein Ablaufdiagramm, welches das Publizieren von Ressourcen auf mehreren Peers ei- ner Replikationsgruppe gemäß einer Ausführungsform des erfindungsgemäßen Verfahrens wiedergibt.
Das nachfolgend beschriebene erfindungsgemäße Verfahren wird in einem Peer-to-Peer-Netz eines technischen Systems eingesetzt, welches ein sog. „Embedded System" darstellt, bei dem die einzelnen Komponenten des Systems neben ihrer eigentlichen technischen Funktion ferner Kommunikationsmittel in der Form eines Kommunikationsmoduls und einer entsprechenden CPU umfassen. Es wird somit Rechenleistung in die Geräte eingebettet, und die einzelnen Geräte können über die Kommunikationsmodule miteinander kommunizieren. In diesem Embedded System wird eine Peer-to-Peer-Struktur der einzelnen Komponenten
untereinander geschaffen, so dass eine dezentrale Verwaltung bzw. Steuerung des technischen Systems ermöglicht wird. Ein Anwendungsbereich eines technischen Systems ist hierbei ein Spannungsverteilsystem, bei dem die einzelnen Komponenten un- ter anderem Hochspannungsschalter umfassen. Auf diesem technischen System wird nunmehr eine Peer-to-Peer-Struktur abgebildet, wobei zu berücksichtigen ist, dass das Protokoll zur Kommunikation der einzelnen Peers untereinander gegenüber herkömmlichen Peer-to-Peer-Protokollen verbessert sein muss, da die Anforderungen hinsichtlich Ausfällen bzw. schneller
Kommunikation in industriellen Anwendungsbereichen wesentlich höher sind als bei herkömmlichen Anwendungen von Peer-to- Peer-Netzen im Internet. Um diesem Erfordernis Rechnung zu tragen, wird in der Erfindung ein sog. Double-Key-Hash-Table als Hash-Tabelle verwendet. Diese Hash-Tabelle unterscheidet sich gegenüber herkömmlichen Hash-Tabellen darin, dass die Hash-Tabelle Informationen zu allen Peers im Netz enthält und für jeden Peer zwei Identitäten hinterlegt sind, welche zur Kommunikation zwischen den technischen Komponenten des Sys- tems verwendet werden können.
Fig. 1 zeigt einen Ausschnitt aus den gemäß der Erfindung verwendeten Double-Key-Hash-Tabellen in einem Peer-to-Peer- Netz, wobei jeder Peer in dem Netz eine solche Tabelle ver- waltet. Die Tabelle Tl zeigt hierbei eine Belegung zum Zeitpunkt, wenn der entsprechende Peer 1, der die Tabelle Tl verwaltet, sich mit dem Netz verbindet. Die Tabelle Tl' zeigt den Zustand der Tabelle, wenn der entsprechende Peer 1 Informationen zu allen Peers in dem Netz erhalten hat. In der hier beschriebenen Ausführungsform wird ein Peer-to-Peer-Netz betrachtet, das eine logische Ringstruktur aufweist, wobei insgesamt 128 binäre Hash-Werte als Wertebereich verwendet werden. In Fig. 1 sind die ersten acht Einträge der Hash-Tabelle Tl bzw. Tl' wiedergegeben. Die in der hier beschriebenen Aus- führungsform verwendeten Hash-Tabellen weisen hierbei Einträge für jeden möglichen Hash-Wert auf, da gegebenenfalls jeder Peer als Identität einen dieser Hash-Werte übernehmen kann. Die Tabelle gemäß Fig. 1 weist somit insgesamt 128 Zeilen
auf, wobei jede Zeile für einen Hash-Wert steht und mit möglichen Peer-Identitäten P ID (zweite Spalte von links in den Tabellen) von 1 bis 128 durchnummeriert ist.
Die einzelnen Peers in dem Peer-to-Peer-Netz werden neben ihrer Peer-Identität P ID, die einem Hash-Wert entspricht, auch durch eine entsprechende IP- oder MAC-Adresse IP_ADDR (dritte Spalte von links in den Tabellen) charakterisiert, welche die Adressierung der Peers zur Kommunikation untereinander ermög- licht. Darüber hinaus entspricht jeder Peer einer technischen Komponente bzw. einem Teil einer technischen Komponente eines technischen Systems, wobei die technischen Komponenten jeweils durch entsprechende Identitäten in der Form von IED Names (erste Spalte von links in den Tabellen) charakte- risiert werden (IED = Intelligent Electronic Device). Die Tabellen in Fig. 1 enthalten ferner eine Spalte mit Statusfeldern SB (vierte Spalte von links) , in denen der Status des entsprechenden Peers der jeweiligen Zeile angezeigt wird. SB = 0 bedeutet dabei, dass der Peer aktiv bzw. online ist, SB = 1 bedeutet, dass der Peer inaktiv bzw. ausgefallen ist und SB = 255 bedeutet, dass es in dem Peer-to-Peer-Netz noch keinen Peer mit der entsprechenden Peer-Identität gibt.
Zum Zeitpunkt, wenn der Peer 1 Teil des Datennetzes wird, hat er noch keine Informationen von anderen Peers erhalten, so dass das Statusfeld SB für alle Einträge gemäß der Tabelle Tl auf 255 gesetzt ist und ferner in den Spalten IED_Name und IP ADDR keine Informationen enthalten sind.
Gemäß der hier beschriebenen Ausführungsform des erfindungsgemäßen Verfahrens erhält ein Peer Informationen von anderen Peers über von den anderen Peers ausgesendeten Broadcast- Nachrichten, wie noch näher anhand von Fig. 2 erläutert wird. Diese Broadcast-Nachrichten werden in regelmäßigen Zeitab- ständen von den Peers ausgesendet und auch von Peer 1 empfangen. Nachdem der Peer 1 Broadcast-Nachrichten von allen aktiven Peers im Netz empfangen hat, ist die Tabelle gemäß Fig. 1 in dem Zustand Tl' und weist Belegungen für alle aktiven
Peers auf. In der Tabelle Tl' ist ein Szenario gezeigt, bei dem die Peers mit den Peer-Identitäten 1, 4 und 7 aktiv sind, was durch SB = 0 angezeigt wird. Für diese Peers sind auch in den entsprechenden Spalten Einträge für IED Name (beispiels- weise ElQlSBl für den Peer 4) sowie Einträge für IP_ADDR
(z.B. 192.168.1.12 für den Peer 4) enthalten. Darüber hinaus existiert in dem Peer-to-Peer-Netz ein Peer, der zwar Teil des Netzes ist, jedoch ausgefallen bzw. inaktiv ist. Dies ist der Peer 8, dessen Statusfeld SB entsprechend auf 1 gesetzt ist. Ferner gibt es in dem Peer-to-Peer-Netz keine Peers mit den Identitäten 2, 3, 5 und 6, was dadurch angezeigt wird, dass das Statusfeld SB auf 255 gesetzt ist. Für diese Peers existieren auch keine Einträge für IED_Name und IP_ADDR.
Der Vorteil der Verwendung der Hash-Tabelle gemäß Fig. 1 besteht darin, dass - im Gegensatz zu herkömmlichen Peer-to- Peer-Netzen - jeder Peer gemäß seiner Tabelle Informationen über alle anderen Peers hat, so dass sehr schnell nach Ressourcen in dem Datennetz dadurch gesucht werden kann, dass über die Tabelle die IP- oder MAC-Adresse des Peers ermittelt werden kann, der die gesuchte Ressource enthält und dieser Peer sofort direkt angesprochen werden kann. Im Unterschied hierzu sind in herkömmlichen Peer-to-Peer-Netzen einzelnen Peers nur bestimmte andere Peers im Netz bekannt, so dass aufwändige Lookups zum Auffinden von Ressourcen verwendet werden müssen. Ein weiterer Vorteil der Hash-Tabelle gemäß Fig. 1 besteht darin, dass es auch möglich ist, in bestimmten Fällen eine technische Komponente des technischen Systems nicht über eine IP- oder MAC-Adresse, sondern direkt über den entsprechenden Gerätenamen der technischen Komponente anzusprechen. Auf diese Weise kann direkt auf die technischen Komponenten ohne einen Suchprozess zugegriffen werden, was beispielsweise in Notfällen, bei denen eine technische Komponente sehr schnell eine Aktion ausführen soll bzw. abgeschal- tet werden soll, erforderlich sein kann. Auf diese Weise eignet sich ein Netz, das die Tabelle gemäß Fig. 1 verwendet, besonders gut für industrielle Anwendungen.
Fig. 2 zeigt eine Ausführungsform eines erfindungsgemäßen Peer-to-Peer-Netzes in der Form einer logischen Ringstruktur nach Art eines Chord-Rings, wobei in Fig. 2 insgesamt neun Peers Teil des Netzes sind, nämlich die Peers mit den Nummern 1, 4, 25, 32, 56, 74, 96, 112 und 118. Wie bereits zuvor erwähnt, senden die Peers in regelmäßigen Abständen Broadcast- Nachrichten aus, welche den Aktivitäts-Nachrichten im Sinne der Ansprüche entsprechen. Fig. 2 zeigt hierbei ein Szenario, bei dem gerade der Peer 32 eine entsprechende Broadcast- Nachricht aussendet, wobei der Peer 96 diese Broadcast-
Nachricht zuvor noch nicht erhalten hat, da er beispielsweise erst seit kurzer Zeit Mitglied des Netzes ist. Die ursprünglich abgesendete Broadcast-Nachricht ist in Fig. 2 als Al bezeichnet, wobei durch Rechtecke zwischen den Peers die Wei- terleitung der Broadcast-Nachricht in der Ringstruktur angedeutet ist. Wie sich aus Fig. 2 ergibt, enthält die Broadcast-Nachricht Al die Geräteidentität IED32, die Nummer des Peers 32 und eine entsprechende IP-Adresse 1.2.3.4. Wenn der Peer 96 nunmehr die Broadcast-Nachricht Al empfängt, aktuali- siert er seinen entsprechenden Eintrag für den Peer 32, d.h. die Zeile 32 in Tabelle T96 wird nunmehr mit der Geräteidentität IED32 und der IP-Adresse 1.2.3.4 belegt und das Statusfeld wird auf den Status SB = 0 gesetzt. Auch die anderen Peers in dem Datennetz überprüfen bei Empfang der Broadcast- Nachricht ihre entsprechende Tabelle und aktualisieren die
Einträge mit dem empfangenen Inhalt der Broadcast-Nachricht. Gemäß Fig. 2 wird somit ein einfacher Mechanismus geschaffen, wie alle Peers immer aktuelle Informationen über alle anderen Peers in dem Netz in ihrer Tabelle speichern können.
Fig. 3 zeigt das gleiche Peer-to-Peer-Netz wie Fig. 2, wobei sich nunmehr ein neuer Peer 82 dem Peer-to-Peer-Netz anschließt. Der neue Peer, der zunächst nicht die Nummer 82 hat, empfängt zunächst über eine vorbestimmte Zeitperiode die Aktivitäts-Nachrichten von allen anderen Peers und erzeugt somit die entsprechende Belegung seiner Hash-Tabelle (nicht aus Fig. 2 ersichtlich) . Schließlich sucht sich der Peer einen entsprechenden Identitätswert P ID, der noch nicht durch
einen Peer des Netzes belegt ist. In Fig. 2 wählt der Peer die Peer-Identität 82 und sendet anschließend seine eigene Aktivitäts-Nachricht mit der Peer-Identität 82, dem ihm zugeordneten Gerätenamen IED82 sowie seine Netzwerkadresse 1.0.3.1 als Broadcast in das Peer-to-Peer-Netz aus. Die entsprechende Broadcast-Nachricht ist in Fig. 2 mit A2 bezeichnet, wobei wiederum durch Rechtecke das Weiterleiten der Nachricht an andere Peers in dem Netz angedeutet ist.
Fig. 3 zeigt, wie der Peer 96 seinen entsprechenden Eintrag in seiner Tabelle T96 mit den Informationen der Broadcast- Nachricht A2 aktualisiert. Die gleiche Adressierung ist analog für die Hash-Tabelle T112 des Peers 112 wiedergegeben. Durch die Übertragung der Broadcast-Nachricht A2 an alle Peers in dem Netz wird somit in kurzer Zeit der Peer 82 bekannt gemacht und kann nunmehr direkt über seinen Eintrag in den einzelnen Hash-Tabellen angesprochen werden.
Anhand von Fig. 4 und Fig. 5 wird nachfolgend erläutert, wie der Ausfall bzw. das Verlassen eines Peers in dem Peer-to- Peer-Netz der Fig. 1 bzw. 2 detektiert werden kann. In der hier beschriebenen Ausführungsform der Erfindung erfolgt die Detektion eines Ausfalls dadurch, dass jeder Peer den Empfang von Aktivitäts-Nachrichten des benachbarten vorhergehenden und nachfolgenden Peers gemäß der Nummerierung der Peer- Identitäten überwacht. Fig. 4 zeigt den Ablauf einer solchen Überwachung. Im Schritt Sl der Fig. 4 empfängt ein Überwachungs-Peer eine Aktivitäts-Nachricht von einem anderen Peer. Der Peer schlägt dann die Peer-Identität gemäß der empfange- nen Aktivitäts-Nachricht in seiner Hash-Tabelle nach. Dies erfolgt in Schritt S2. In Schritt S3 überprüft der Überwachungs-Peer, ob der Peer, von dem die Aktivitäts-Nachricht stammt, ein zu dem Überwachungs-Peer benachbarter Netzknoten aufgrund seines Identitätswerts ist. Ist dies nicht der Fall (Zweig Nl), wird der Inhalt der Aktivitäts-Nachricht in dem entsprechenden Eintrag der Hash-Tabelle des Überwachungs- Peers hinterlegt und das Statusfeld dieses Eintrags aktualisiert (Schritt S4) . Ist der Peer, von dem die Aktivitäts-
Nachricht stammt, jedoch ein Nachbar (Zweig Yl), wird im Schritt S5 überprüft, ob es sich um einen neuen Nachbarn handelt, dessen Identitätswert zwischen dem Identitätswert des Überwachungs-Peers und des alten Nachbarn liegt. Ist dies nicht der Fall (Zweig N2), handelt es sich um den bereits überwachten alten Nachbarn, und die Überwachung wird in Schritt S6 neu gestartet. Anschließend wird in Schritt S4 wiederum eine Aktualisierung des entsprechenden Eintrags in der Hash-Tabelle vorgenommen wird, wobei in diesem Fall keine Veränderung in den Werten des Eintrags auftritt.
Sollte in Schritt S5 jedoch festgestellt werden, dass der Peer, von dem die Aktivitäts-Nachricht stammt, ein neuer Nachbar ist (Zweig Y2), wird eine neue Überwachung für diesen neuen Nachbarn in Schritt S7 gestartet und die alte Überwachung wird ungültig. Anschließend wird wiederum in Schritt S4 der entsprechende Eintrag in der Hash-Tabelle des Überwachungs-Peers aktualisiert. Nachdem das Verfahren im Schritt S4 angelangt ist, setzt sich die Überwachung fort, indem durch den Überwachungs-Peer auf den Empfang entsprechender Aktivitäts-Nachrichten gewartet wird (Schritt S8).
Fig. 5 zeigt ein Szenario, in dem der Ausfall des Peers 82 durch die benachbarten Überwachungs-Peer 74 und 96 in dem Peer-to-Peer-Netz detektiert wird. Die Detektion des Ausfalls erfolgt hierbei dadurch, dass die Überwachungs-Peers feststellen, dass über eine vorbestimmte Zeitspanne hinweg keine Aktivitäts-Nachricht mehr von dem überwachten Knoten empfangen wird. Nachdem dies von den Knoten 74 und 96 festgestellt wurde, erzeugen diese Knoten eine entsprechende Ausfall- Nachricht, welche in Fig. 5 als F bezeichnet ist und die Identität 82 des ausgefallenen Netzknotens enthält. Diese Nachricht wird sowohl von Peer 74 als auch von Peer 96 als Broadcast-Nachricht an alle anderen Peers übertragen, wie wiederum durch Rechtecke angedeutet ist. In Fig. 5 ist dabei beispielhaft die Folgeaktion der Peers 56 und 112 bei Empfang der Nachricht F angedeutet. Jeder dieser Peers setzt in seiner Hash-Tabelle T56 bzw. T112 den Status des Eintrags der
Peer-Identität 82 auf inaktiv, d.h. auf SB = 1. Optional ist es auch möglich, dass ein Peer, der in einen Ruhezustand geht bzw. sich ordnungsgemäß abschaltet, selbst eine entsprechende Ausfall-Nachricht F mit seiner eigenen Identität aussendet.
Fig. 6 verdeutlicht, wie erfindungsgemäß Ressourcen in dem Peer-to-Peer-Netz publiziert und gesucht werden können. Unter Ressource sind hierbei beliebige Daten zu verstehen, auf welche die Peers zugreifen können. Publizieren einer Ressource bedeutet, dass die Ressource selbst bzw. ein Verweis auf die Ressource in einem Peer gespeichert wird, der dann für die Ressource zuständig ist. Zum Publizieren einer Ressource wird ein entsprechendes Schlüsselwort verwendet, welches der Ressource zugeordnet ist. Im Beispiel der Fig. 6 beabsichtigt der Peer 1 die Ressource mit dem Schlüsselwort K =
IEDl . SVC9.LD3.LN4 zu veröffentlichen. Hierzu wird das Schlüsselwort mit einer entsprechenden Hash-Funktion auf einen Hash-Wert aus dem Wertebereich von 1 bis 128 umgewandelt. Es kann hierbei eine beliebige Hash-Funktion verwendet werden. In einer bevorzugten Ausführungsform wird eine Funktion eingesetzt, welche die Ressourcen gleichmäßig auf alle Peers verteilt. Eine solche Hash-Funktion ist beispielsweise die Fowler/Noll/Vo (FNV) Hash-Funktion, die dem Fachmann hinlänglich bekannt ist. Mit dem Schlüsselwort K ermittelt der Peer 1 einen Hash-Wert, der zwischen den Peers 25 und 32 liegt. Da in der Ausführungsform der Fig. 6 jeder Peer für alle nachfolgenden Identitätswerte bis zum nächsten Peer zuständig ist, folgt hieraus, dass die Ressource auf dem Peer 25 publiziert wird.
In der Ausführungsform der Fig. 6 ist ein Replikationsmecha- nismus integriert, wonach die Ressource auch noch auf einem weiteren Peer repliziert wird, wodurch eine Replikationsgrup- pe von zwei Peers für jede Ressource gebildet wird, d.h. jede Ressource wird auf zwei Peers veröffentlicht. Gemäß einem Algorithmus, der noch näher in Bezug auf Fig. 8 erläutert wird, wird als weiterer Peer zur Veröffentlichung der Ressource der Peer 74 ermittelt. Mit den Pfeilen Pl und P2 ist in Fig. 6
die Publikation der Ressource auf den entsprechenden Peers 25 und 74 angedeutet.
Fig. 6 zeigt ferner die Suche nach der Ressource mit dem Schlüsselwort K durch den Peer 112. Zur Suche wird analog das Schlüsselwort K in einen entsprechenden Hash-Wert gemäß der Hash-Funktion umgewandelt und anschließend der für den Hash- Wert zuständige Peer bestimmt. Analog wie bei der Publikation findet der Peer 112 nunmehr den Peer 25 als zuständigen Peer für die Ressource. Da die Hash-Tabelle des Peers 112 bereits die IP- bzw. MAC-Adresse des Peers 25 enthält, kann dieser Peer direkt angesprochen werden. Der Peer 112 kann mit einem entsprechenden Algorithmus auch den weiteren Peer 74 ermitteln, auf dem die Ressource ebenfalls publiziert ist. Da in der Hash-Tabelle des Peers 112 auch die IP- bzw. MAC-Adresse von diesem Peer hinterlegt ist, kann er unmittelbar auch auf die Ressource im Peer 74 zugreifen. Die Suche nach den Ressourcen durch den Peer 112 ist hierbei mit den Pfeilen P3 und P4 angedeutet. Wie sich aus Fig. 6 ergibt, gestaltet sich die Suche nach Ressourcen in dem erfindungsgemäßen Peer-to-Peer- Netz sehr einfach, da jeder Peer alle Informationen zu den anderen Peers enthält und somit ein Peer, der eine Ressource sucht, denjenigen Peer direkt ansprechen kann, der für die entsprechende Ressource zuständig ist.
Fig. 7 zeigt ein Ablaufdiagramm, welches die Aktionen eines Peers verdeutlicht, der Ressourcen in dem Peer-to-Peer-Netz publiziert hat und eine entsprechende Deaktivierungs- Nachricht F gemäß Fig. 5 empfangen hat. Hierbei wird im Schritt SlOl die Nachricht F empfangen. Der Peer schlägt dann die entsprechende Peer-Identität in seiner Tabelle nach (Schritt S102) und markiert dann den entsprechenden Eintrag in der Tabelle als inaktiv, d.h. SB = 1 (Schritt S103) . Anschließend überprüft der Peer, ob er Ressourcen von sich auf dem Peer in der Deaktivierungs-Nachricht F veröffentlicht hat (Schritt S104) . Ist dies der Fall (Zweig Y), initialisiert der Peer einen neuen Publikationsprozess und veröffentlicht die Ressourcen nochmals in dem Netz, wie durch Schritt S105
wiedergegeben ist. Die Republikation der Daten ist hierbei identisch mit der anhand von Fig. 6 beschriebenen Publikation, jedoch ist der Auslöser ein anderer. Anschließend wartet der Peer wie gewohnt auf den Empfang von Aktivitäts- Nachrichten in Schritt S106. Sollte im Schritt S104 festgestellt werden, dass der Peer, der inaktiv geworden ist, keine Ressourcen enthält, die von dem die Nachricht F empfangenden Peer veröffentlicht wurden (Zweig N), wird ohne eine nochmalige Veröffentlichung zu Schritt S106 übergegangen.
Fig. 8 zeigt ein Ablaufdiagramm, welches die bereits bei der Beschreibung von Fig. 6 erwähnte Replikation von veröffentlichten Ressourcen auf mehreren Peers wiedergibt. Fig. 8 zeigt ein iteratives Verfahren, welches in Schritt S201 mit dem Iterationswert Iteration = 0 und einer festen Primzahl magic prime = const gestartet wird. Zunächst wird mit Hilfe der Hash-Funktion das Schlüsselwort der entsprechend zu publizierenden Ressource auf den Hash-Wert abgebildet, was im Schritt S202 erfolgt. Der Hash-Wert wird hierbei als hash value und das Schlüsselwort als keyword bezeichnet.
Durch eine entsprechende Funktion add_circular (hash_value, Iteration • magic prime) wird in Schritt S203 die Peer- Identität ermittelt, auf der die Ressource zu publizieren ist. Bei der ersten Iteration ist dies die Peer-Identität des Peers mit dem nächst kleinerem Identitätswert in Bezug auf den hash_value.
In Schritt S204 wird dann die Peer-Identität in der Hash- Tabelle des publizierenden Peers nachgeschlagen. Anschließend wird in Schritt S205 überprüft, ob der Peer gemäß dem Eintrag in der Hash-Tabelle des publizierenden Peers aktiv ist. Ist dies der Fall (Zweig Y201) wird die Peer-Identität einer entsprechenden Liste hinzugefügt, wobei beim ersten Iterationsschritt die Peer-Identität der erste Eintrag in dieser Liste ist (Schritt S207). Das Hinzufügen zu dieser Liste erfolgt mit einer entsprechenden Funktion add (peer_id, peer_ids [ ] ) . Ergibt sich in Schritt S205 jedoch, dass der nachgeschlagene Peer nicht aktiv ist (Zweig N201), wird der davor in der
Hash-Tabelle stehende Eintrag als Peer-Identität verwendet und zu Schritt S204 zurückgegangen.
Nach der Hinzufügung des entsprechenden Peers zur Liste im Schritt S207, wird überprüft, ob die Variable Iteration bereits einen vorgegebenen Replikationsfaktor erreicht hat (Schritt S208) . Ist dies nicht der Fall (Zweig N202), wird im Schritt S209 die Variable Iteration um einen Wert hoch gesetzt. Hat die Variable Iteration den Replikationsfaktor er- reicht (Zweig Y202), werden alle Peers in der Liste ausgegeben (Schritt S210), und auf diesen Peers werden die Ressourcen dann publiziert.
Nach dem Hochsetzen der Variablen Iteration in Schritt S209 wird zu Schritt S203 zurückgegangen, wobei nunmehr zu dem ermittelten hash value die Primzahl magic prime multipliziert mit dem neuen Wert der Variablen Iteration hinzuaddiert wird. Die dabei verwendete Funktion add ciruclar berücksichtigt hierbei, dass eine logische Ringstruktur des Peer-to-Peer- Netzes vorliegt, so dass bei Überschreiten des Wertebereichs der Hash-Werte die Addition bei Beginn des Wertebereichs fortgesetzt wird. Mit Hilfe der Primzahl magic prime wird in dem Verfahren gemäß Fig. 8 eine sehr gleichmäßige Replikation von Ressourcen innerhalb einer Replikationsgruppe von Peers erreicht, wobei die Anzahl der Peers, auf denen die Ressourcen repliziert werden, durch einen entsprechenden Replikati- onsfaktor festgelegt wird. Durch die Replikation wird insbesondere sichergestellt, dass die Ressourcen redundant in dem Peer-to-Peer-Netz hinterlegt sind und es bei Ausfall eines Peers nicht zum Verlust der Ressource kommt.