-
GEBIET DER
ERFINDUNG
-
Die
vorliegende Erfindung bezieht sich auf Verfahren für die Datenübertragung
zwischen zwei oder mehr „gleichberechtigten" Zieleinheiten in
einer Netzwerkumgebung. Genauer gesagt bezieht sich die vorliegende
Erfindung auf ein Verfahren für
die Datenübertragung
und die Verteilung von Daten wie beispielsweise Dateien oder Suchbefehle
in einer Netzwerkumgebung.
-
HINTERGRUND
DER ERFINDUNG
-
Bei
derzeitigen Ansätzen
für die
Verteilung von Daten wie beispielsweise Dateien oder Suchbefehle
an eine oder mehrere Zieleinheiten in einer Netzwerkumgebung können ein
oder mehrere zentrale Server verwendet werden, um die Daten an eine Vielzahl
von Zieleinheiten zu übertragen.
-
Ein
derartiges zentral aufgebautes System bringt einige Schwierigkeiten
mit sich. So schlägt
ein nachteiliger Effekt auf den zentralen Server auch auf alle Zieleinheiten
durch, die mit dem Server kommunizieren.
-
Andere
Ansätze
für die
Verteilung von Daten verwenden ein Mittel für die Verteilung zwischen gleichberechtigten
Einheiten (Peer-to-Peer), d.h. ein System, bei dem zwei oder mehr
Zieleinheiten in der Lage sind, direkt miteinander zu kommunizieren. Derzeitige
Protokolle für
die verteilte Suche und die gemeinsame Dateinutzung auf Peer-to-Peer-Grundlage
bringen jedoch gewisse Schwierigkeiten mit sich.
-
So
bleiben beim Peer-to-Peer-Protokoll Napster z.B. die gemeinsam zu
nutzenden Dateien bei der jeweiligen Zieleinheit, ohne einen Server
zu durchlaufen. Napster verwendet allerdings dennoch einen Server,
um nach bestimmten Dateien suchen und eine direkte Übertragung
zwischen den Clients veranlassen zu können. Somit können beim
Napster-Protokoll einige der oben beschriebenen Server-bezogenen
Schwierigkeiten auftreten. Darüber hinaus
können
beim Napster-Protokoll Probleme auftreten, wie sie sich aus dem
Peer-to-Peer-Protokoll ergeben, wie beispielsweise Netzwerküberlastung sowie
sich ständig ändernde
Suchergebnisse durch Zieleinheiten, die in das Netzwerk eintreten
und dieses wieder verlassen. Das Napster-Protokoll kann große Bandbreiten
benötigen,
die Datenübertragung verlangsamen
und nachteilige Auswirkungen auf die Ergebnisse haben.
-
Beim
Gnutella-Protokoll verbleiben die gemeinsam zu nutzenden Dateien
ebenfalls bei der jeweiligen Zieleinheit. Außerdem ist jede Zieleinheit
in der Lage, nach bestimmten Dateien zu suchen. Somit kann jede
Zieleinheit sowohl als Client als auch als Server dienen. Wenn jedoch
unter Verwendung des Gnutella-Protokolls
eine Suche durch eine Ausgangszieleinheit erfolgt, können sich
die an der Ausgangszieleinheit empfangenen Suchergebnisse von Sekunde
zu Sekunde ändern,
wenn Zieleinheiten, die der Ausgangszieleinheit antworten, in das
Netzwerk eintreten und dieses wieder verlassen. Wenn eine Zieleinheit
eine Antwort für
die Ausgangszieleinheit hat, werden die Ergebnisse außerdem über die dazwischen
liegenden Zieleinheiten, welche die Ausgangsabfrage weitergeleitet
haben, an die Ausgangszieleinheit weitergegeben. Während sich
eine Suche im Gnutella-Netzwerk verbreitet, kann der Pfad von der
Ausgangszieleinheit zu einer anderen Zieleinheit mit der gewünschten
Datei daher immer länger
und verschlungener werden. Als Folge hiervon können die Suchergebnisse verzögert werden und
unter Umständen
sogar veraltet sein, bevor sie an der Ausgangszieleinheit ankommen.
Die Übertragung
von Suchergebnissen von Zieleinheiten, die weit von der Ausgangseinheit
entfernt sind, kann große
Bandbreiten erfordern, die Datenübertragung
verlangsamen und nachteilige Auswirkungen auf die Ergebnisse haben.
-
XP008000376 „Make the
P2P leap with toadnode",
Web Techniques, Miller Freeman, US (12–2000), 5(12), S. 44 bis 49,
beschreibt ein Verfahren, mit dem ein Computer andere Computer in
einem Netzwerk ermitteln kann. Bei diesem Verfahren sendet ein Computer
eine Ping-Nachricht an alle Computer, mit denen er verbunden ist,
und diese Computer leiten die Nachricht dann an die Computer weiter,
mit denen sie verbunden sind, usw. Jeder Computer, der eine Ping-Nachricht
empfängt,
antwortet mit einer Pong-Nachricht, die an den Ausgangscomputer
weitergeleitet wird. Das Problem bei dieser Technik besteht darin,
dass der Ausgangscomputer von jedem Computer des Netzwerks eine Pong-Nachricht
empfängt,
wodurch das Netzwerk in erheblichem Maße belastet wird.
-
Aus
diesem Grund wäre
es wünschenswert, ein
Verfahren für
die Datenübertragung
zwischen einer Vielzahl von Zieleinheiten bereitzustellen, das wirtschaftlicher
ist, die Netzwerk- und Prozessorlast verringert und die Leistung
verbessert.
-
ZUSAMMENFASSUNG DER ERFINDUNG
-
Ein
Aspekt der vorliegenden Erfindung stellt ein Verfahren für die Datenübertragung
zwischen einer Vielzahl von gleichberechtigten Knoten in einer Netzwerkumgebung
bereit. Ein Suchbefehl wird von einem momentanen gleichberechtigten
Knoten an mindestens einen gleichberechtigten Nachbarknoten übertragen,
wobei der gleichberechtigte Nachbarknoten in Kommunikation mit dem
momentanen gleichberechtigten Knoten steht. Eine zusammengesetzte
Liste der gleichberechtigten Knoten wird an dem momentanen gleichberechtigten
Knoten empfangen, wobei die zusammengesetzte Liste der gleichberechtigten
Knoten Informationen über
mindestens einen gleichberechtigten Knoten umfasst, der in Kommunikation
mit dem mindestens einen Nachbarknoten steht.
-
Der
Suchbefehl kann nach Ablauf einer vorgegebenen Verzögerung von
dem momentanen gleichberechtigten Knoten übertragen werden. Der Suchbefehl
kann an eine vorgegebene Anzahl von gleichberechtigten Nachbarknoten übertragen
werden. Eine Tabelle der gleichberechtigten Knoten kann an dem momentanen
gleichberechtigten Knoten erzeugt und mit der zusammengesetzten
Liste der gleichberechtigten Knoten aktualisiert werden. Ein zweiter
Suchbefehl von einem gleichberechtigten Ausgangsknoten kann an dem
momentanen gleichberechtigten Knoten empfangen werden, und die Tabelle
der gleichberechtigten Knoten kann als Reaktion auf den zweiten
Suchbefehl an den gleichberechtigten Ausgangsknoten übertragen
werden. Eine Datennachricht mit einem eindeutigen Beschreiber kann an
dem momentanen gleichberechtigten Knoten empfangen werden, wobei
die Datennachricht über einen eindeutigen
Beschreiber verfügt.
Der Beschreiber kann mit einer Beschreibertabelle verglichen werden,
wobei die Beschreibertabelle eine Vielzahl von Datennachrichten
und zugehörigen
Beschreibern umfasst. Die Beschreibertabelle kann mit der empfangenen
Datennachricht und dem Beschreiber der empfangenen Datennachricht
aktualisiert werden. Ein Abfragebefehl kann von dem momentanen gleichberechtigten
Knoten an eine vorgegebene Anzahl von gleichberechtigten Nachbarknoten
weitergeleitet werden. Die Antwortdaten können an dem momentanen gleichberechtigten
von mindestens einem anderen gleichberechtigten Knoten direkt empfangen
werden, wobei der mindestens eine andere gleichberechtigte Knoten
in Kommunikation mit dem mindestens einen Nachbarknoten steht. Ein
Abfragebefehl von einem gleichberechtigten Ausgangsknoten kann an
dem momentanen gleichberechtigten Knoten empfangen werden, und Antwortdaten
können
als Reaktion auf den Abfragebefehl von dem momentanen gleichberechtigten
Knoten direkt an den gleichberechtigten Ausgangsknoten übertragen
werden. Der Abfragebefehl kann von dem momentanen gleichberechtigten
Knoten an eine vorgegebene Anzahl von gleichberechtigten Nachbarknoten
weitergeleitet werden.
-
Ein
weiterer Aspekt der vorliegenden Erfindung stellt ein Computerprogrammprodukt
auf einem computernutzbaren Medium bereit, das eine Datenübertragung
zwischen einer Vielzahl von gleichberechtigten Knoten in einer Netzwerkumgebung
ermöglicht.
Das Programm kann ein Mittel für
die Übertragung
eines Suchbefehls von einem momentanen gleichberechtigten Knoten
zu mindestens einem gleichberechtigten Nachbarknoten beinhalten,
wobei der gleichberechtigte Nachbarknoten in Kommunikation mit dem
momentanen gleichberechtigten Knoten steht, sowie ein Mittel für den Empfang
einer zusammengesetzten Liste der gleichberechtigten Knoten an dem
momentanen gleichberechtigten Knoten, wobei die zusammengesetzte
Liste der gleichberechtigten Knoten Informationen zu mindestens
einem gleichberechtigten Knoten umfasst, der in Kommunikation mit
dem mindestens einen Nachbarknoten steht.
-
Ein
weiterer Aspekt der vorliegenden Erfindung stellt ein System für die Datenübertragung
zwischen einer Vielzahl von gleichberechtigten Knoten in einer Netzwerkumgebung
bereit. Das System kann ein Mittel für die Übertragung eines Suchbefehls
von einem momentanen gleichberechtigten Knoten an mindestens einen
gleichberechtigten Nachbarknoten beinhalten, wobei der Nachbarknoten
in Kommunikation mit dem momentanen gleichberechtigten Knoten steht,
sowie ein Mittel für
den Empfang einer zusammengesetzten Liste der gleichberechtigten
Knoten an dem momentanen gleichberechtigten Knoten, wobei die zusammengesetzte
Liste der gleichberechtigten Knoten Informationen zu mindestens
einem gleichberechtigten Knoten umfasst, der in Kommunikation mit
dem mindestens einen Nachbarknoten steht.
-
Bei
einer Ausführungsform
der Erfindung können
das Programm und System der vorliegenden Erfindung weiterhin ein
Mittel beinhalten, mit dem der Suchbefehl nach Ablauf einer vorgegebenen
Verzögerung
von dem momentanen gleichberechtigten Knoten übertragen wird. Gemäß der vorliegenden
Erfindung können
ein Mittel für
die Übertragung
des Suchbefehls an eine vorgegebene Anzahl von gleichberechtigten
Nachbarknoten sowie ein Mittel für
die Erzeugung einer Tabelle der gleichberechtigten Knoten an dem
momentanen gleichberechtigten Knoten und ein Mittel für die Aktualisierung
der Tabelle der gleichberechtigten Knoten mit der zusammengesetzten
Liste der gleichberechtigten Knoten bereitgestellt werden. Zusätzlich können das
Programm und System der vorliegenden Erfindung auch ein Mittel für den Empfang
eines zweiten Suchbefehls von einem gleichberechtigten Ausgangsknoten
an dem momentanen gleichberechtigten Knoten sowie ein Mittel für die direkte Übertragung
der Liste der gleichberechtigten Knoten von dem momentanen gleichberechtigten Knoten
an den gleichberechtigten Ausgangsknoten als Reaktion auf den zweiten
Suchbefehl und für
den Empfang einer Datennachricht an dem momentanen gleichberechtigten
Knoten, wobei die Datennachricht über einen eindeutigen Beschreiber
verfügt,
und ein Mittel für
den Vergleich des Beschreibers der empfangenen Datennachricht mit
einer Beschreibertabelle umfassen, wobei die Beschreibertabelle
eine Vielzahl von Datennachrichten und zugehörigen Beschreibern umfasst.
Gemäß der vorliegenden
Erfindung kann ein Mittel für
die Aktualisierung der Beschreibertabelle mit der empfangenen Datennachricht
und dem Beschreiber der empfangenen Datennachricht bereitgestellt
werden. Das Programm und System der vorliegenden Erfindung können ein
Mittel für
die Übertragung
eines Abfragebefehls von dem momentanen gleichberechtigten Knoten
an eine vorgegebene Anzahl von gleichberechtigten Nachbarknoten
beinhalten. Zusätzlich
können
das Programm und System ein Mittel für den direkten Empfang von Antwortdaten
von mindestens einem anderen gleichberechtigten Knoten an dem momentanen
gleichberechtigten Knoten, wobei der mindestens eine andere gleichberechtigte
Knoten in Kommunikation mit dem mindestens einen Nachbarknoten steht,
sowie ein Mittel für
den Empfang eines Abfragebefehls von einem gleichberechtigten Ausgangsknoten
an dem momentanen gleichberechtigten Knoten und ein Mittel für die direkte Übertragung
von Antwortdaten von dem momentanen gleichberechtigten Knoten an
den gleichberechtigten Ausgangsknoten als Reaktion auf den Abfragebefehl
umfassen. Gemäß dem Programm
und System der vorliegenden Erfindung kann außerdem ein Mittel für die Weiterleitung
des Abfragebefehls von dem momentanen gleichberechtigten Knoten
an eine vorgegebene Anzahl von gleichberechtigten Nachbarknoten
bereitgestellt werden.
-
KURZE BESCHREIBUNG
DER ZEICHNUNGEN
-
Im
Folgenden wird die Erfindung beispielhaft mit Blick auf eine bevorzugte
Ausführungsform
beschrieben, wie dies in den beigefügten Zeichnungen veranschaulicht
ist, wobei:
-
1 eine
schematische Darstellung einer Ausführungsform eines Netzwerks
von Datenverarbeitungssystemen gemäß der vorliegenden Erfindung
ist;
-
2 ein
Blockschaltbild einer Ausführungsform
eines Datenverarbeitungssystems gemäß der vorliegenden Erfindung
ist;
-
3 ein
Blockschaltbild einer anderen Ausführungsform eines Datenverarbeitungssystems
gemäß der vorliegenden
Erfindung ist;
-
4 ein
Ablaufdiagramm einer Ausführungsform
eines Verfahrens für
die Datenübertragung
zwischen einer Vielzahl von Zieleinheiten in einer Netzwerkumgebung
gemäß der vorliegenden
Erfindung ist;
-
5 ein
Ablaufdiagramm einer Ausführungsform
einer Teilroutine des in 4 gezeigten Verfahrens für die Datenübertragung
zwischen einer Vielzahl von Zieleinheiten in einer Netzwerkumgebung
ist;
-
6 ein
Ablaufdiagramm einer Ausführungsform
einer anderen Teilroutine des in 4 gezeigten
Verfahrens für
die Datenübertragung
zwischen einer Vielzahl von Zieleinheiten in einer Netzwerkumgebung
ist;
-
7 ein
Ablaufdiagramm einer Ausführungsform
einer anderen Teilroutine des in 4 gezeigten
Verfahrens für
die Datenübertragung
zwischen einer Vielzahl von Zieleinheiten in einer Netzwerkumgebung
ist; und
-
8 ein
Ablaufdiagramm einer Ausführungsform
einer anderen Teilroutine des in 4 gezeigten
Verfahrens für
die Datenübertragung
zwischen einer Vielzahl von Zieleinheiten in einer Netzwerkumgebung
ist.
-
AUSFÜHRLICHE BESCHREIBUNG DER BEVORZUGTEN
AUSFÜHRUNGSFORMEN
-
1 ist
eine schematische Darstellung eines Netzwerks 100 von Datenverarbeitungssystemen
gemäß einer
Ausführungsform
der vorliegenden Erfindung. Das Datenverarbeitungssystemnetzwerk 100 kann
ein Netzwerk von Computern sein, auf denen eine Ausführungsform
der vorliegenden Erfindung realisiert sein kann. Das Datenverarbeitungssystemnetzwerk 100 kann
ein Netzwerk beinhalten. Das Netzwerk 102 kann ein beliebiges
geeignetes Medium sein, das zur Bereitstellung von Datenübertragungsverbindungen
zwischen verschiedenen Einheiten, z.B. Computern, verwendet wird,
die innerhalb des Datenverarbeitungssystemnetzwerks 100 miteinander
verbunden sind oder in Kommunikation miteinander stehen. So kann
das Netzwerk 102 z.B. Verbindungen wie drahtgebundene Verbindungen, drahtlose
Verbindungen oder auch Lichtwellenleiterkabel beinhalten.
-
Bei
der in 1 gezeigten Ausführungsform können die
Zieleinheiten 112, 114, 116, 118, 122, 124, 126, 128, 136, 138 in
Kommunikation mit dem Netzwerk 102 stehen. Bei diesen Zieleinheiten
kann es sich z.B. um Personalcomputer oder Netzwerkcomputer handeln.
Eine oder mehrere der Zieleinheiten 112, 114, 116, 118, 122, 124, 126, 128, 136, 138 können als
gleichberechtigte Zieleinheiten dienen, wie weiter unten beschrieben
wird. Die Zieleinheiten 112, 114, 116, 118, 122, 124, 126, 128, 136, 138 können auch
als gleichberechtigte Knoten für
eine oder mehrere gleichberechtigte zieleinheiten dienen, wie weiter
unten beschrieben wird. Das Datenverarbeitungssystemnetzwerk 100 kann
zusätzliche
Server, Clients, Zieleinheiten und andere Einheiten beinhalten,
die nicht abgebildet sind.
-
Eine
oder mehrere Speichereinheiten wie z.B. die Speichereinheiten 103, 105 können ebenfalls mit
dem Netzwerk 102 in Kommunikation stehen. Die Speichereinheiten 103, 105 können Daten
wie beispielsweise Bootdateien, Betriebssystemabbilder, Anwendungsdateien
und Anwendungen speichern, die von einer oder mehreren Zieleinheiten 112, 114, 116, 118, 122, 124, 126, 128, 136, 138 verarbeitet oder übertragen
werden können.
Die Speichereinheiten 103, 105 können außerdem Daten
speichern, die dem Netzwerk 102 und/oder anderen Komponenten, die – wie unten
beschrieben – in
Kommunikation mit dem Netzwerk 102 stehen, verfügbar gemacht oder von
diesem verarbeitet werden sollen. Bei manchen Ausführungsformen
der Erfindung können
die Speichereinheiten 103, 105 auch als gleichberechtigte Einheiten
für die
Zieleinheiten 112, 114, 116, 118, 122, 124, 126, 128, 136, 138 dienen
und Beschreiber, Nachrichten und/oder Antwortdaten bereitstellen,
wie weiter unten ausführlich
erläutert
wird.
-
Wie
aus 1 hervorgeht, kann es sich bei dem Datenverarbeitungssystemnetzwerk 100 um
ein beliebiges geeignetes System für die Datenverarbeitung handeln.
So kann das System 100 z.B. das Internet sein. Alternativ
kann das Datenverarbeitungssystemnetzwerk auch ein beliebiger geeigneter
Netzwerktyp wie beispielsweise ein Intranet, ein lokales Netz (LAN)
oder ein Fernnetz (WAN) sein. Bei einer Ausführungsform der Erfindung stellt
das Netzwerk 102 eine weltweite Sammlung von Netzwerken
und Gateways dar, die den TCP/IP-Protokollsatz verwenden, um miteinander
zu kommunizieren. Eine Haupttrasse von Hochgeschwindigkeitsleitungen
für die Datenübertragung
zwischen wichtigen Knoten oder Hostcomputern ermöglicht die Datenübertragung zwischen
Tausenden von gewerblichen, behördlichen,
zu Bildungsinstitutionen gehörenden
und anderweitigen Computersystemen, die Daten und Nachrichten weiterleiten.
-
Bei
einer Ausführungsform
der Erfindung ist das Datenverarbeitungssystemnetzwerk ein dezentrales
Peer-to-Peer-System.
Bei einem derartigen System 100 kann jede der Zieleinheiten 112, 114, 116, 118, 122, 124, 126, 128, 136, 138 sowohl
als Server als auch als Client dienen. Auf diese Weise können die
Zieleinheiten 112, 114, 116, 118, 122, 124, 126, 128, 136, 138 Aufgaben
durchführen,
die üblicherweise
mit Clients in Zusammenhang gebracht werden, und daneben auch Aufgaben,
die üblicherweise
Servern zugeordnet werden. Bei manchen Ausführungsformen der Erfindung
können
die Zieleinheiten 112, 114, 116, 118, 122, 124, 126, 128, 136, 138 Client-seitige
Schnittstellen bereitstellen, über
welche die Benutzer Client-bezogene Aufgaben wie beispielsweise
die Ausgabe von Abfragen und die Anzeige von Suchergebnissen durchführen können. Gleichzeitig
kann jede der Zieleinheiten 112, 114, 116, 118, 122, 124, 126, 128, 136, 138 auch
Serverbezogene Aufgaben bereitstellen, z.B. die Entgegennahme von
Abfragen von anderen Zieleinheiten, die Überprüfung des eigenen Datensatzes
auf übereinstimmende
Daten und die Antwort an andere Zieleinheiten mit Abfrageergebnissen.
Das verteilte System 100 ist in hohem Maße fehlertolerant,
da sein Betrieb nicht unterbrochen wird, wenn eine Teilgruppe oder
ein Knoten von Zieleinheiten offline geht. So hebt der Bereich 117 z.B.
eine Teilgruppe von Zieleinheiten (bestehend aus den Zieleinheiten 112, 114, 116, 118, 128, 136, 138)
des Systems 100 hervor. Gleichzeitig gibt der Bereich 127 eine
zweite Teilgruppe von Zieleinheiten (bestehend aus den Zieleinheiten 122, 124, 126)
des Systems 100 an. Wenn bei einem verteilten System 100 die
Teilgruppe aus Bereich 117 offline geht, bedeutet dies
nicht notwendigerweise eine Unterbrechung des Betriebs des Systems 100,
des Netzwerks 102 oder des Bereichs 127 bzw. der
Zieleinheiten 122, 124, 126. Wenn die Teilgruppe
aus Bereich 127 offline geht, bedeutet das entsprechend
nicht notwendigerweise eine Unterbrechung des Betriebs des Systems 100,
des Netzwerks 102 oder des Bereichs 117 bzw. der
Zieleinheiten 112, 114, 116, 118, 128, 136, 138.
-
Die 2 und 3 sind
Blockschaltbilder von Datenverarbeitungssystemen, die gemäß einer Ausführungsform der
vorliegenden Erfindung verwendet werden können. Bei einer Ausführungsform der
Erfindung kann eine gegebene Zieleinheit 112, 114, 116, 118, 122, 124, 126, 128, 136, 138 ein
Datenverarbeitungssystem sein, das eine beliebige Kombination aus
einer oder mehreren der in 2 und 3 beschriebenen
Komponenten beinhaltet.
-
2 ist
ein Blockschaltbild eines Datenverarbeitungssystems 200 gemäß einer
Ausführungsform
der vorliegenden Erfindung. Bei einer Ausführungsform der Erfindung kann
das Datenverarbeitungssystem 200 als eine oder mehrere
der Zieleinheiten 112, 114, 116, 118, 122, 124, 126, 128, 136, 138 aus 1 realisiert
sein. Alternativ kann eine gegebene Zieleinheit 112, 114, 116, 118, 122, 124, 126, 128, 136, 138 eine
oder mehrere der in 2 beschriebenen Komponenten
beinhalten.
-
Das
Datenverarbeitungssystem 200 kann ein symmetrisches Multiprozessorsystem
(SMP) sein, das eine Vielzahl von Prozessoren 202 und 204 beinhaltet,
die mit dem Systembus 206 verbunden sind. Alternativ kann
ein Einprozessorsystem verwendet werden. Die Speichersteuereinheit/der
Cachespeicher 208 kann ebenfalls mit dem Systembus 206 verbunden
sein. Die Speichersteuereinheit/der Cachespeicher 208 kann
eine Schnittstelle zum lokalen Speicher 209 bereitstellen.
Die E/A-Busbrücke 210 kann
ebenfalls mit dem Systembus 206 verbunden sein und eine
Schnittstelle zum E/A-Bus 212 bereitstellen. Die Speichersteuereinheit/der
Cachespeicher 208 und die E/A-Busbrücke 210 können wie
abgebildet integriert sein, oder es kann sich um separate Komponenten
handeln.
-
Die
mit dem E/A-Bus 212 verbundene PCI-Busbrücke 214 (Peripheral
Component Interconnect) kann eine Schnittstelle zum lokalen PCI-Bus 216 bereitstellen.
Ein oder mehrere Modems können mit
dem PCI-Bus 216 verbunden sein. Typische PCI-Bus-Realisierungen unterstützen vier
PCI-Erweiterungssteckplätze
oder -Erweiterungsanschlüsse.
Der Modem 218 und das Netzwerk 220 können mit
dem lokalen PCI-Bus 216 verbunden sein. Diese Verbindung
kann über
Erweiterungskarten erfolgen. Bei einer Ausführungsform der Erfindung stellen
der Modem 218 und zugehörige
Anschlüsse
Datenübertragungsverbindungen
zu Zieleinheiten wie z.B. Netzwerkcomputern bereit. Bei derartigen
Zieleinheiten kann es sich beispielsweise um die für 1 beschriebenen
Einheiten handeln.
-
Die
zusätzlichen
PCI-Busbrücken 222 und 224 können Schnittstellen
für zusätzliche
PCI-Busse 226 und 228 bereitstellen. Von den PCI-Bussen 226 und 228 können zusätzliche
Modems oder Netzwerkadapter unterstützt werden. So können bei
einer Ausführungsform
der Erfindung die PCI-Busse 226, 228 z.B. einen
Netzwerkadapter unterstützen,
auf dem eine Fernladefunktion wie beispielsweise die RPL-Funktion
(Reverse Polish LISP) installiert ist. Auf diese Weise kann das
Datenverarbeitungssystem 200 Verbindungen zu mehreren Netzwerkcomputern
ermöglichen.
Ein speicherkonformer Grafikadapter 230 und eine Festplatte 232 können ebenfalls wie
abgebildet entweder direkt oder indirekt mit dem E/A-Bus 212 verbunden
sein.
-
Die
in 2 abgebildeten Komponenten können wie gezeigt oder in einer
beliebigen anderen geeigneten Art und Weise angeordnet sein, welche die
gewünschte
Funktion des Datenverarbeitungssystems 200 ermöglicht.
Ergänzend
zu den oder anstelle der abgebildeten Komponenten können zusätzlich auch
andere Peripherieeinheiten wie Optoplattenlaufwerke und Ähnliches
verwendet werden.
-
Bei
einer Ausführungsform
der Erfindung kann das Datenverarbeitungssystem 200 Software- und
Hardwarekomponenten beinhalten, die eine Funktion des Systems 200 gemäß einem
verteilten Peer-to-Peer-Protokoll ermöglichen. Dazu können z.B.
eine Gruppe von Datennachrichten für die Übertragung von Daten zwischen
einer oder mehreren Zieleinheiten und ein Regelsatz gehören, der
den Austausch von Nachrichten zwischen einer oder mehreren Zieleinheiten
steuert. Diese Nachrichten und Regeln sowie Verfahren für die Verwendung
dieser Nachrichten und Regeln gemäß einer Ausführungsform
der vorliegenden Erfindung werden weiter unten ausführlicher
erläutert.
-
3 ist
ein Blockschaltbild eines Datenverarbeitungssystems 300 gemäß einer
Ausführungsform
der vorliegenden Erfindung. Bei einer Ausführungsform der Erfindung kann
das Datenverarbeitungssystem 300 als eine oder mehrere
der in 1 gezeigten Zieleinheiten 112, 114, 116, 118, 122, 124, 126, 128, 136, 138 realisiert
sein. Alternativ kann eine gegebene Zieleinheit 112, 114, 116, 118, 122, 124, 126, 128, 136, 138 eine
oder mehrere der für 3 beschriebenen
Komponenten beinhalten.
-
Bei
einer Ausführungsform
der Erfindung ist das Datenverarbeitungssystem 300 eine
Zieleinheit mit optionalen Plattenlaufwerken. Alternativ kann das Datenverarbeitungssystem 300 ein
eigenständiges System
sein, das so konfiguriert ist, dass es zum Hochfahren keine Netzwerkschnittstelle
benötigt.
Alternativ kann das Datenverarbeitungssystem 300 auch eine
oder mehrere Netzwerkschnittstellen umfassen. Das Datenverarbeitungssystem 300 kann auch
eine PDA-Einheit (Personal Digital Assistant, Minicomputer) sein.
Das Datenverarbeitungssystem kann außerdem die Form eines Notebook-
oder Taschencomputers (handheld Computer) annehmen. Alternativ kann
das Datenverarbeitungssystem 300 ein Internetkiosk oder
eine Webeinrichtung (web appliance) sein. Die Prozesse einer Ausführungsform der
vorliegenden Erfindung können
außerdem
auch mit einem Mehrprozessor-Datenverarbeitungssystem Anwendung
finden.
-
Das
Datenverarbeitungssystem 300 kann eine PCI-Local-Bus-Architektur verwenden.
Obwohl das abgebildete Beispiel einen PCI-Bus verwendet, können auch
andere Busarchitekturen wie AGP (Accelerated Graphics Port) und
ISA (Industry Standard Architecture) verwendet werden. Der Prozessor 302 und
der Hauptspeicher 304 können über die
PCI-Brücke 308 mit
dem lokalen PCI-Bus 306 verbunden sein. Die PCI-Brücke 308 kann
auch eine integrierte Speichersteuereinheit und einen Cachespeicher
für den
Prozessor 302 beinhalten. Zusätzliche Verbindungen zum lokalen
PCI-Bus 306 können über den Direktanschluss
von Komponenten oder über
Erweiterungskarten hergestellt werden. Bei einer Ausführungsform
der Erfindung sind der LAN-Adapter 310, der SCSI-Hostbusadapter 312 (Small
Computer System Interface) und die Erweiterungsbusschnittstelle 314 mittels
Direktanschluss der Komponenten mit dem lokalen PCI-Bus 306 verbunden.
Im Gegensatz hierzu sind der Audioadapter 316, der Grafikadapter 318 und
der Audio-/Videoadapter 319 über Erweiterungskarten, die
in Erweiterungssteckplätze
eingesteckt werden, mit dem lokalen PCI-Bus 306 verbunden.
Die Erweiterungsbusschnittstelle 314 kann eine Anschlussmöglichkeit
für zusätzliche
Komponenten wie z.B. einen Tastatur- und Mausadapter 320,
einen Modem 322 und einen zusätzlichen Speicher 324 bereitstellen.
Ein SCSI-Hostbusadapter 312 kann
eine Anschlussmöglichkeit
für zusätzliche
Komponenten wie beispielsweise ein Festplattenlaufwerk 326,
ein Bandlaufwerk 328, ein CD-ROM-Laufwerk 330 oder ein DVD-ROM-Laufwerk 332 bereitstellen.
Bei dem lokalen PCI-Bus 306 kann es sich um eine beliebige geeignete
Local-Bus-Realisierung handeln. Typische PCI-Local-Bus-Realisierungen
unterstützen
drei oder vier PCI-Erweiterungssteckplätze oder
-Erweiterungsanschlüsse.
-
Dateien
und Befehle für
Datei wie z.B. Betriebsdateien für
ein Betriebssystem, das objektorientierte Betriebssystem sowie Anwendungen
oder Programme können
sich auf Speichereinheiten wie z.B. dem Festplattenlaufwerk 326 befinden.
Diese Betriebssysteme, Anwendungen und/oder Programme können zur
Ausführung
durch den Prozessor 302 in den Hauptspeicher 304 geladen
werden.
-
Die
in 3 abgebildeten Komponenten des Systems 300 können wie
gezeigt oder in einer beliebigen anderen geeigneten Art und Weise
angeordnet sein, welche die gewünschte
Funktion des Datenverarbeitungssystems 300 ermöglicht.
Ergänzend
zu den oder anstelle der abgebildeten Komponenten können auch
andere interne Hardware- oder Peripherieeinheiten wie ein Flash-ROM
(oder ein gleichwertiger nichtflüchtiger
Speicher) oder auch Optoplattenlaufwerke und Ähnliches verwendet werden. So
kann eine Ausführungsform
des Datenverarbeitungssystems 300 z.B. mit einem ROM und/oder Flash-ROM
konfiguriert sein, um so einen nichtflüchtigen Speicher für die Speicherung
von Betriebssystemdateien und/oder vom Benutzer erzeugten Dateien
bereitzustellen. Eine andere Ausführungsform des Datenverarbeitungssystems 300 kann
Netzwerkadapter beinhalten, mit denen Funktionen eines Fernladeprogramms
und/oder Funktionen wie beispielsweise die RPL-Funktion übertragen
oder empfangen werden können.
-
Bei
einer Ausführungsform
der Erfindung kann das Datenverarbeitungssystem 300 Software- und
Hardwarekomponenten beinhalten, die eine Funktion des Systems 300 gemäß einem
verteilten Peer-to-Peer-Protokoll ermöglichen. Dazu können z.B.
eine Gruppe von Datennachrichten für die Übertragung von Daten zwischen
einer oder mehreren Zieleinheiten und ein Regelsatz gehören, der
den Austausch von Nachrichten zwischen einer oder mehreren Zieleinheiten
steuert. Diese Nachrichten und Regeln sowie Verfahren für die Verwendung
dieser Nachrichten und Regeln gemäß einer Ausführungsform
der vorliegenden Erfindung werden weiter unten ausführlicher
erläutert.
-
4 zeigt
eine Ausführungsform
eines Verfahrens 400 für
die Datenübertragung
zwischen einer Vielzahl von Zieleinheiten gemäß der vorliegenden Erfindung.
Das in 4 gezeigte Verfahren kann unter Verwendung eines
beliebigen geeigneten Peer-to-Peer-Protokolls realisiert werden,
das die netzwerkübergreifende
verteilte Suche und die gemeinsame Dateinutzung ermöglicht.
-
Um
die Datenübertragung
zwischen den Zieleinheiten oder Knoten zu ermöglichen, kann ein beliebiger
geeigneter Transportmechanismus verwendet werden, z.B. HTTP über TCP.
-
Alternativ
kann ein Byte-orientierter Transport verwendet werden. Alternativ
kann das Netzwerkprotokoll UDP (User Datagram Protocol) verwendet
werden. Alternativ kann HTTP/SOAD (Simple Object Access Protocol,
Einfaches Objekt-Zugriffs-Protokoll)
verwendet werden. SOAP ist ein einfaches XML-über-HTTP-Wrapper-Programm für gängige Verbindungstechnologien
wie beispielsweise COM, Apple Events und CORBA. Als Transportmechanismus
verwendet SOAP HTTP, während
die Aufrufspezifikation mittels XML erfolgt.
-
Bei
einer Ausführungsform
der Erfindung ermöglicht
der Transportmechanismus die Datenübertragung zwischen Zieleinheiten
gemäß einem
geeigneten Peer-to-Peer-Protokoll. Dieses Peer-to-Peer-Protokoll
kann z.B. eine Gruppe von Datennachrichten für die Übertragung von Daten zwischen
einer oder mehreren Zieleinheiten und einen Regelsatz beinhalten,
der den Austausch von Nachrichten zwischen einer oder mehreren Zieleinheiten steuert.
Diese Nachrichten und Regeln sowie Verfahren für die Verwendung dieser Nachrichten
und Regeln gemäß einer
Ausführungsform
der vorliegenden Erfindung werden weiter unten ausführlicher
erläutert.
-
So
können
bei einer Ausführungsform
der Erfindung z.B. eine oder mehrere Datennachrichten zwischen einer
oder mehreren Zieleinheiten übertragen
werden. Diese Datennachrichten können
beliebige geeignete Daten wie beispielsweise Antworten auf Abfragen
oder Befehle, sein, die von einer Zieleinheit zur anderen übertragen
werden sollen. Diese Datennachrichten können z.B. Daten in Form von 8-Byte-Zeichenketten,
16-Byte-Zeichenketten, 32-Byte-Zeichenketten
oder Zeichenketten mit einer beliebigen geeigneten Länge sein.
Die Datennachrichten können
z.B. in Form von Suchdatennachrichten (im Folgenden als Ping-Nachrichten
bezeichnet), Kennzeichnungsdatennachrichten (im Folgenden als Pong-Nachrichten
bezeichnet), Abfragedatennachrichten und Abfrageantwort-Datennachrichten
vorliegen. Die Datennachrichten können z.B. durch Regeln wie
Zeitüberschreitungswerte
und TTL-Zähler
(Time to Live, Verweildauer) gesteuert werden, die auf dem Fachgebiet
gut bekannt sind.
-
Gemäß einer
Ausführungsform
der vorliegenden Erfindung kann die Datennachricht eine Beschreiberkennung
beinhalten. Bei einer Ausführungsform
der Erfindung kann die Beschreiberkennung eine 16-Byte-Zeichenkette
sein, mit der eine bestimmte Datennachricht, die über das
Netzwerk 102 und/oder System 100 übertragen
wird, eindeutig bezeichnet wird. So kann eine Datennachricht mit
einer 32-Byte-Zeichenkette
z.B. eine Beschreiberkennung mit einer 16 Byte umfassenden Zeichenkette beinhalten,
die sie eindeutig von jeder anderen über das Netzwerk übertragenen
Datennachricht unterscheidet. Wenn eine Nachricht eine bestimmte
Zieleinheit mehrmals passiert, kann die Zieleinheit die Nachricht
somit anhand ihrer Beschreiberkennung erkennen.
-
Wie
oben erwähnt,
kann die Datennachricht eine Suchnachricht (im Folgenden als Ping-Nachricht bezeichnet)
sein. Mit dieser Ping-Nachricht können eine oder mehrere Zieleinheiten 112, 114, 116, 118, 122, 124, 126, 128, 136, 138 angeben,
dass die Ping-Nachricht das Netzwerk 102 und/oder System 100 aktiv
abfragt. Eine derartige Ping-Nachricht kann die Identifizierung
einer oder mehrerer Zieleinheiten anfordern. So kann die Zieleinheit 114 z.B.
eine Ping-Nachricht an die Zieleinheiten 112, 116 und 118 senden,
mit der sie die Zieleinheiten 112, 116, 118 auffordert,
sich auszuweisen. Bei einer Ausführungsform
der Erfindung kann eine Ping-Datennachricht anfordern,
dass die Identifikation eine zusammengesetzte Liste (Tabelle der
gleichberechtigten Knoten) der gleichberechtigten Zieleinheiten
einer gegebenen Zieleinheit beinhaltet. So kann die Zieleinheit 114 z.B.
eine Ping-Nachricht an die Zieleinheiten 112, 116, 118 senden,
mit der sie die Zieleinheit 112 aufordert, die gleichberechtigten
Einheiten der Zieleinheit 112 anzugeben, mit der sie die
Zieleinheit 116 auffordert, die gleichberechtigten Einheiten
der Zieleinheit 116 anzugeben, und mit der sie die Zieleinheit 118 auffordert,
die gleichberechtigten Zieleinheiten der Zieleinheit 118 anzugeben.
-
Bei
einer Ausführungsform
der Erfindung kann das Peer-to-Peer-Protokoll auch einen Ping-Zeitüberschreitungswert
beinhalten, bei der es sich um eine Regel handeln kann, die zur
Steuerung von Ping-Datennachrichten verwendet wird. Dieser Ping-Zeitüberschreitungswert
kann eine vorgegebene Zeitspanne sein, nach deren Ablauf ein bestimmtes
Ping-Signal gesendet wird. So kann ein Ping-Signal z.B. alle p Sekunden
von einer bestimmten Zieleinheit gesendet werden. Der Wert der Ping-Zeitüberschreitung
kann unter Verwendung eines beliebigen geeigneten Mittels, das auf
dem Fachgebiet bekannt ist, ermittelt werden. So kann der Wert der Ping-Zeitüberschreitung
z.B. ausgehend von den Spezifikationen der Zieleinheit, welche den
Ping-Zeitüberschreitungswert
steuert, voreingestellt sein. Alternativ kann der Benutzer einer
bestimmten Zieleinheit den Wert der Ping-Zeitüberschreitung festlegen. Alternativ
kann der Wert der Ping-Zeitüberschreitung auf
Faktoren wie der Netzwerküberlastung
und der Verarbeitungsgeschwindigkeit der Zieleinheit beruhen. Alternativ
kann der von einer gegebenen Zieleinheit verwendete Transportmechanismus
den Wert der Ping- Zeitüberschreitung
bestimmen. Alternativ kann ein geeigneter Algorithmus den Wert der Ping-Zeitüberschreitung
bestimmen. Dieser Algorithmus kann z.B. auf den Systembeschränkungen
einer bestimmten Zieleinheit (gleichberechtigter Knoten) oder auf
Eingabewerten des Benutzers beruhen.
-
Wie
oben beschrieben, kann die Datennachricht auch eine Kennzeichnungsnachricht
(im Folgenden als Pong-Datennachricht bezeichnet) sein. Diese Pong-Nachricht
kann von einer oder mehreren Zieleinheiten 112, 114, 116, 118, 122, 124, 126, 128, 136, 138 verwendet
werden, um einer Zieleinheit zu antworten, die eine Ping-Nachricht übertragen
hat. So kann die Zieleinheit 112 z.B. eine Pong-Nachricht
an die Zieleinheit 114 senden, welche die Zieleinheit 112 gegenüber der
Zieleinheit 114 beschreibt. Bei einer Ausführungsform
der Erfindung kann die Pong-Nachricht die Adresse einer aktiven
Zieleinheit enthalten. Somit kann die Zieleinheit 112 eine
Pong-Nachricht an die Zieleinheit 114 senden, welche die
Adresse der Zieleinheit 112 angibt. Wenn die Zieleinheit 114 auch
eine Ping-Nachricht an die Zieleinheit 118 gesendet hat,
kann die Zieleinheit 114 auch eine Pong-Nachricht von der
Zieleinheit 118 empfangen, welche die IP-Adresse der Zieleinheit 118 angibt.
Alternativ kann eine Pong-Datennachricht
eines oder mehrere der folgenden Elemente beinhalten: eine Anschlussnummer
(port number), unter der die antwortende Zieleinheit eingehende
Verbindungen entgegennehmen kann, die IP-Adresse der antwortenden
Zieleinheit, die Anzahl der Dateien, welche die antwortende Zieleinheit
zur gemeinsamen Nutzung über
das Netzwerk bereitstellt, die Anzahl der Kilobytes an Daten, welche
die antwortende Zieleinheit zur gemeinsamen Nutzung über das
Netzwerk bereitstellt. Bei einer Ausführungsform der Erfindung kann
die Pong-Datennachricht eine zusammengesetzte Liste (oder Tabelle
der gleichberechtigten Knoten) der gleichberechtigten Nachbareinheiten
einer gegebenen Zieleinheit bereitstellen. So kann die Zieleinheit 112 z.B.
eine Pong-Nachricht an die Zieleinheit 114 senden, die
gegenüber
der Zieleinheit 114 angibt, dass die Zieleinheit 112 lediglich über eine einzige
gleichberechtigte Zieleinheit 114 verfügt. Gleichzeitig kann die Zieleinheit 118 ebenfalls
eine Pong-Nachricht an die Zieleinheit 114 senden, die gegenüber der
Zieleinheit 114 angibt, dass die Zieleinheit 118 über drei
gleichberechtigte Zieleinheiten 114, 128, 138 verfügt. Die
Pong-Nachricht von der Zieleinheit 118 kann außerdem Informationen
zu den drei gleichberechtigten Einheiten 114, 128, 138 der Zieleinheit 118 beinhalten,
unter anderem die Anschlussnummer, unter der die gleichberechtigte
Zieleinheit 114 eingehende Verbindungen entgegennehmen
kann, die Anschlussnummer, unter der die zweite gleichberechtigte
Zieleinheit 128 eingehende Verbindungen entgegennehmen
kann, die Anschlussnummer, unter der die dritte gleichberechtigte
Zieleinheit 138 eingehende Verbindungen entgegennehmen
kann, die IP-Adresse der gleichberechtigten Zieleinheit 114,
die IP-Adresse der zweiten gleichberechtigten Zieleinheit 128,
die IP-Adresse der dritten gleichberechtigten Zieleinheit 138 sowie
beliebige andere geeignete Informationen.
-
Wie
oben beschrieben, kann die Datennachricht auch eine Abfragenachricht
sein. Diese Abfragenachricht kann von einer oder mehreren der Zieleinheiten 112, 114, 116, 118, 122, 124, 126, 128, 136, 138 verwendet
werden, um Informationen von anderen Zieleinheiten und beliebigen
anderen Komponenten des Netzwerks 102 oder Systems 100 anzufordern.
So kann die Abfragenachricht z.B. Informationen zu Software- oder Hardwarekomponenten
einer gegebenen Zieleinheit, zu Software- oder Hardwarekonfigurationen einer
gegebenen Zieleinheit, zur Software- oder Hardwarekompatibilität einer
gegebenen Zieleinheit oder zu Dateien im Speicher einer gegebenen
Zieleinheit anfordern. So kann die Zieleinheit 114 z.B.
eine Abfragedatennachricht an die Zieleinheiten 112, 114, 118 senden,
mit der sie die Zieleinheiten 112, 114, 118 fragt,
ob sie über
eine bestimmte Datei verfügen.
Bei einer Ausführungsform der
Erfindung kann die Abfragenachricht außerdem eine Anforderung einer
zusammengesetzten Liste (oder Tabelle der gleichberechtigten Knoten)
ihrer gleichberechtigten Zieleinheiten beinhalten. Gemäß einer
Ausführungsform
der vorliegenden Erfindung können
auch andere Arten von Abfragen übertragen werden,
wie sie auf dem Fachgebiet bekannt sind.
-
Wie
oben beschrieben, kann es sich bei der Datennachricht auch um eine
Antwortdatennachricht handeln. Diese Pong-Nachricht kann von einer
oder mehreren Zieleinheiten 112, 114, 116, 118, 122, 124, 126, 128, 136, 138 verwendet
werden, um einer Zieleinheit zu antworten, die eine Abfragenachricht übertragen
hat. So kann die Zieleinheit 112 z.B. eine Antwortnachricht
an die Zieleinheit 114 senden, die angibt, ob die Zieleinheit 112 über die
Datei verfügt, welche
die Zieleinheit 114 sucht. Wenn die Zieleinheit 114 auch
eine Ping-Nachricht an die Zieleinheit 118 gesendet hat,
kann die Zieleinheit 114 auch eine Antwortdatennachricht
von der Zieleinheit 118 empfangen, die angibt, ob die Zieleinheit 118 über die
von der Zieleinheit 114 gesuchte Datei verfügt.
-
Mit
dem Peer-to-Peer-Protokoll kann eine beliebige der Zieleinheiten 112, 114, 116, 118, 122, 124, 126, 128, 136, 138 Datennachrichten
senden oder empfangen. Somit kann also auch die Zieleinheit 128 eine
Ping-Nachricht an die Zieleinheit 118 senden, mit der sie
eine zusammengesetzte Liste der gleichberechtigten Zieleinheiten
der Zieleinheit 118 anfordert. In der Folge kann die Zieleinheit 128 eine Pong-Nachricht von der
Zieleinheit 118 empfangen, die Informationen zu den drei
gleichberechtigten Einheiten 114, 128, 138 der
Zieleinheit 118 bereitstellt, unter anderem die Anschlussnummer,
unter der die gleichberechtigte Zieleinheit 114 eingehende
Verbindungen entgegennehmen kann, die Anschlussnummer, unter der
die zweite gleichberechtigte Zieleinheit 128 eingehende
Verbindungen entgegennehmen kann, die Anschlussnummer, unter der
die dritte gleichberechtigte Zieleinheit 138 eingehende
Verbindungen entgegennehmen kann, die IP-Adresse der gleichberechtigten
Zieleinheit 114, die IP-Adresse der
zweiten gleichberechtigten Zieleinheit 128, die IP-Adresse
der dritten gleichberechtigten Zieleinheit 128 sowie beliebige
andere geeignete Informationen. In der Zwischenzeit kann die Zieleinheit 116 eine
Abfragenachricht senden und Antwortdatennachrichten von anderen
Zieleinheiten 112, 114, 116, 118, 122, 124, 126, 128, 136, 138 empfangen.
-
Somit
kann die Routine aus 4 für jede beliebige der Zieleinheiten 112, 114, 116, 118, 122, 124, 126, 128, 136, 138 und,
bei einer Ausführungsform
der Erfindung, gleichzeitig für
mehrere gegebene Zieleinheit durchgeführt werden. Zusätzlich kann als
Ergebnis der Routine aus 4 jede beliebige der Zieleinheiten
Datennachrichten empfangen, bei denen es sich z.B. um Tabellen der
gleichberechtigten Knoten handeln kann. Obwohl die folgenden Abschnitte
die Zieleinheit 114 als gleichberechtigten Zielknoten mit
Bezug auf das Netzwerk 102 und die Zieleinheiten 112, 114, 116, 118, 122, 124, 126, 128, 136, 138 benennen,
können
eine oder mehrere beliebige Zieleinheiten 112, 114, 116, 118, 122, 124, 126, 128, 136, 138 mit
Bezug auf beliebige andere Zieleinheiten des Netzwerks 102 und/oder
Systems 100 ebenfalls als gleichberechtigte Ausgangsknoten
dienen.
-
Wie
aus Block 402 hervorgeht, kann die Zieleinheit 114 eine
Tabelle der gleichberechtigten Knoten initialisieren. Bei einer
Ausführungsform
der Erfindung kann diese Tabelle der gleichberechtigten Knoten eine
Liste der gleichberechtigten Zieleinheiten sowie zu jeder gleichberechtigten
Zieleinheit gehörige
Informationen enthalten, beispielsweise die IP-Adressen jeder einzelnen gleichberechtigten
Zieleinheit und den Anschluss, an dem jede einzelne gleichberechtigte
Zieleinheit eingehende Verbindungen entgegennimmt. Dies kann auf
eine beliebige geeignete Art und Weise erfolgen, indem z.B. eine
Datenbank erzeugt wird, die sich in der Zieleinheit 114 befindet
oder mit dieser in Kommunikation steht und die Kennungen von gleichberechtigten
Zieleinheiten und zugehörige
Informationen speichert. Alternativ können diese Informationen auch
in einem geeigneten Speicher gesammelt werden, der sich in der Zieleinheit 114 befindet
oder mit dieser in Kommunikation steht. Alternativ können diese
Informationen in einer Hash-Tabelle und/oder unter Verwendung einer Hash-Funktion gespeichert
werden, wie auf dem Fachgebiet gut bekannt ist.
-
Wie
aus Block 404 deutlich wird, kann die Zieleinheit 114 auch
eine Tabelle der Beschreiberkennungen initialisieren. Bei einer
Ausführungsform der
Erfindung kann diese Tabelle der Beschreiberkennungen eine Liste
einer jeden eindeutigen Beschreiberkennung und ihrer entsprechenden
Datennachricht umfassen, die von der Zieleinheit 114 empfangen
und/oder gesendet wurde. Dies kann auf eine beliebige geeignete
Art und Weise erfolgen, indem z.B. eine Datenbank erzeugt wird,
die sich in der Zieleinheit 114 befindet oder mit dieser
in Kommunikation steht und die Listen der Beschreiberkennungen und
zugehörige
Informationen speichert. Alternativ können diese Informationen auch
in einem geeigneten Speicher gesammelt werden, der sich in der Zieleinheit 114 befindet
oder mit dieser in Kommunikation steht. Alternativ können diese
Informationen in einer Hash-Tabelle und/oder unter Verwendung einer Hash-Funktion
gespeichert werden, wie auf dem Fachgebiet gut bekannt ist.
-
Wie
aus Block 406 deutlich wird, kann die Zieleinheit 114 auch
wie oben beschrieben einen Wert für eine Ping-Zeitüberschreitung
setzen. Dieser Ping-Zeitüberschreitungswert
kann eine vorgegebene Zeitspanne sein, nach deren Ablauf ein bestimmtes
Ping-Signal gesendet wird. So kann ein Ping-Signal z.B. alle p Sekunden
von einer bestimmten Zieleinheit gesendet werden. Der Wert der Ping-Zeitüberschreitung
kann unter Verwendung eines beliebigen geeigneten Mittels, das auf
dem Fachgebiet bekannt ist, festgelegt werden. So kann der Wert
der Ping-Zeitüberschreitung
z.B. ausgehend von den Spezifikationen der Zieleinheit, welche den
Ping-Zeitüberschreitungswert
steuert, voreingestellt sein. Alternativ kann der Benutzer einer
bestimmten Zieleinheit den Wert der Ping-Zeitüberschreitung festlegen. Der
Wert der Ping-Zeitüberschreitung
kann auf Faktoren wie der Netzwerküberlastung und der Verarbeitungsgeschwindigkeit
der Zieleinheit beruhen. Der von einer gegebenen Zieleinheit verwendete
Transportmechanismus kann den Wert der Ping-Zeitüberschreitung
bestimmen. Ein geeigneter Algorithmus kann den Wert der Ping-Zeitüberschreitung
festlegen. Dieser Algorithmus kann z.B. auf Systembeschränkungen
einer bestimmten Zieleinheit (gleichberechtigter Knoten) oder auf
Eingabewerten des Benutzers beruhen.
-
Wie
aus Block 408 hervorgeht, kann die Zieleinheit 114 danach
einen Wert n für
die Anzahl der Nachbarknoten (gleichberechtigte Zieleinheiten) setzen,
mit denen sie einen Kontakt, d.h. eine Verbindung, herstellt. Die
Anzahl der Nachbarknoten, mit denen eine gegebene Zieleinheit einen
Kontakt herstellt, kann unter Verwendung einer oder mehrerer geeigneter
Verfahren, die auf dem Fachgebiet bekannt sind, ermittelt werden.
So kann die Anzahl der gleichberechtigten Knoten, mit denen eine
gegebene Zieleinheit in Kontakt steht, auf geeigneten Parametern
für die
Zieleinheit beruhen, wie beispielsweise auf vom Benutzer bestimmten
Parametern, auf Hardwareparametern der Zieleinheit, auf Softwareparametern
der Zieleinheit usw. Der Benutzer einer gegebenen Zieleinheit 114 kann
z.B. festlegen, dass die Zieleinheit 114 zu mindestens
drei anderen Nachbarknoten Kontakt aufnehmen soll. Alternativ können die Verarbeitungsbeschränkungen
der Zieleinheit 114 vorgeben, dass sie zu nicht mehr als
vier Zieleinheiten Kontakt aufnehmen darf. Alternativ kann die Zieleinheit 114 so
voreingestellt sein, dass sie mit einer gegebenen Anzahl von Nachbarknoten
Daten austauscht. Alternativ kann der von einer gegebenen Zieleinheit
verwendete Transportmechanismus die Anzahl der Nachbarknoten bestimmen,
mit denen Kontakt aufgenommen werden soll. Alternativ kann ein geeigneter
Algorithmus wie beispielsweise ein Algorithmus, der auf der Anzahl
der Nachbarknoten innerhalb des Netzwerks 102 oder Systems 100 oder auf
vom Benutzer eingegebenen Werten beruht, die Anzahl der Nachbarknoten
bestimmen, mit denen Kontakt aufgenommen werden soll.
-
Wie
aus Block 410 hervorgeht, kann die Zieleinheit 114 dann
einen Wert t für
die Verweildauer im Netz setzen, der angibt, wie oft eine Datennachricht von
einer Zieleinheit an eine andere weitergeleitet werden kann, bevor
die Nachricht abläuft.
So kann die Zieleinheit 114 beispielsweise festlegen, dass eine
Datennachricht abläuft,
nachdem sie von einer Anzahl t von Zieleinheiten empfangen worden
ist. Der Verweildauerwert kann mit einem beliebigen geeigneten Mittel
festgelegt werden. Der Wert kann z.B. ausgehend von den Spezifikationen
der Zieleinheit, die den Verweildauerwert steuert, voreingestellt
sein. Alternativ kann der Benutzer einer bestimmten Zieleinheit
den Wert für
die Verweildauer festlegen. Der Verweildauerwert kann auf Faktoren
wie der Netzwerküberlastung
und der Verarbeitungsgeschwindigkeit der Zieleinheit beruhen. Der
von einer gegebenen Zieleinheit verwendete Transportmechanismus kann
den Verweildauerwert bestimmen. Ein geeigneter Algorithmus kann
den Verweildauerwert bestimmen, wobei Faktoren wie Netzwerküberlastung
und Verarbeitungsbeschränkungen
eines gegebenen gleichberechtigten Knotens zugrunde gelegt werden.
-
Jede
Zieleinheit, die eine Datennachricht mit einem Wert für die Verweildauer
empfängt,
kann einen der Datennachricht zugehörigen Sprungzähler erhöhen. Dieser
Sprungzähler
kann von der Zieleinheit erhöht
werden, wenn die Nachricht unter Verwendung eines beliebigen auf
dem Fachgebiet bekannten geeigneten Mittels empfangen wird. So kann z.B.
ein geeigneter Algorithmus verwendet werden, um den Sprungzähler zu
erhöhen.
Wie der Wert für die
Verweildauer kann auch der Algorithmus für die Bestimmung des Sprungzählers auf
Faktoren wie der Netzwerküberlastung
und der Verarbeitungsbeschränkung
eines gegebenen gleichberechtigten Knotens beruhen. Dieser Sprungzähler kann
angeben, wie oft die Datennachricht empfangen wurde, und kann mit
dem Verweildauerwert t verglichen werden, um zu ermitteln, ob die
Gültigkeitsdauer
der Nachricht ablaufen sollte (d.h., überschreiten die Häufigkeit,
mit der die Nachricht empfangen wurde, bzw. der Sprungzähler den
Wert für
die Verweildauer?).
-
Wie
aus den Blöcken 420, 430 und 440 hervorgeht,
kann der gleichberechtigte Ausgangsknoten 114 auch einen
oder mehrere der folgenden Teilprozesse ausführen: einen Ping-Teilprozess,
einen Serverteilprozess und einen Abfrageteilprozess. Diese Teilprozesse
können
von der Zieleinheit 114 gleichzeitig oder in einer beliebigen
geeigneten Reihenfolge ausgeführt
werden. Diese Teilprozesse können fortlaufend
stattfinden, während
die Zieleinheit 114 online ist oder in Kommunikation mit
dem Netzwerk 102 und/oder System 100 steht. Alternativ
kann die Zieleinheit 114 einen oder mehrere Teilprozesse
beginnen, wenn sie eine oder mehrere Datennachrichten von einer
anderen Zieleinheit 112, 114, 116, 118, 122, 124, 126, 128, 136, 138 oder
von einer beliebigen anderen Komponente des Netzwerks 102 und/oder
Systems 100 empfängt.
-
Wie
aus Block 420 hervorgeht, kann die Zieleinheit 114 somit
einen Ping-Teilprozess beginnen, wie weiter unten beschrieben wird.
Alternativ oder gleichzeitig mit Block 420 kann die Zieleinheit 114 außerdem einen
Serverteilprozess beginnen, wie weiter unten beschrieben wird und
aus Block 430 ersichtlich ist. Alternativ oder gleichzeitig
mit den Blöcken 420, 430 kann
die Zieleinheit 114 auch einen Abfrageteilprozess beginnen,
wie weiter unten beschrieben wird und aus Block 450 ersichtlich
ist. Die Zieleinheit 114 kann den Abfrageteilprozess beginnen,
wenn in Block 440 ermittelt wird, dass eine oder mehrere
Abfragen von der Zieleinheit 114 gesendet werden sollen.
Somit kann die Zieleinheit 114 gemäß der vorliegenden Erfindung
Clientfunktionen wie das Senden von Abfragen, einschließlich Ping-Abfragen,
und das Empfangen von Antworten, einschließlich Pong-Antworten, ausführen. Die
Zieleinheit 114 kann außerdem Serverfunktionen wie
das Verarbeiten von Abfragen und Antworten ausführen, zum Beispiel das Zusammensetzen
von Antworten, die gleichberechtigte Knoten beschreiben, zu einer
Tabelle der gleichberechtigten Knoten oder das Erfassen der Häufigkeit,
mit der eine bestimmte Abfragenachricht empfangen wurde.
-
5 zeigt
unter der Bezugsziffer 500 eine Ausführungsform einer Teilroutine
des Verfahrens für die
Datenübertragung
zwischen einer Vielzahl von Zieleinheiten in einer Netzwerkumgebung
aus 4.
-
Wie
aus Block 502 ersichtlich wird, kann die Zieleinheit 114 für die Dauer
des in Block 406 ermittelten vorgegebenen Werts (p) der
Ping-Zeitüberschreitung
warten. Dieser Ping-Zeitüberschreitungswert
kann eine vorgegebene Zeitspanne sein, nach deren Ablauf ein bestimmtes
Ping-Signal gesendet wird. So kann ein Ping-Signal z.B. alle p Sekunden von
einer bestimmten Zieleinheit gesendet werden.
-
Wie
aus Block 504 deutlich wird, kann die Zieleinheit 114 nach
Ablauf des Werts der Ping-Zeitüberschreitung
eine Ping-Nachricht
an die in Block 408 festgelegte vorgegebene Anzahl (n)von
(gleichberechtigten) Nachbarknoten senden. Somit wird die Ping-Nachricht
in der Ausführungsform
aus 1 von der Zieleinheit 114 an drei vorgegebene
Nachbarknoten 112, 116, 118 gesendet
(d.h. n = 3).
-
Mit
dieser Ping-Nachricht können
eine oder mehrere Zieleinheiten 112, 114, 116, 118, 122, 124, 126, 128, 136, 138 angeben,
dass die Ping-Nachricht das Netzwerk 102 und/oder System 100 aktiv
abfragt. Eine derartige Ping-Nachricht kann die Identifizierung
einer oder mehrerer Zieleinheiten anfordern. So kann die Zieleinheit 114 z.B.
eine Ping-Nachricht an
die Zieleinheiten 112, 116 und 118 senden,
mit der sie die Zieleinheiten 112, 116, 118 auffordert,
sich auszuweisen. Bei einer Ausführungsform
der Erfindung kann eine Ping-Datennachricht anfordern, dass die
Identifikation eine zusammengesetzte Liste (Tabelle der gleichberechtigten
Knoten) der gleichberechtigten Zieleinheiten einer gegebenen Zieleinheit beinhaltet.
So kann die Zieleinheit 114 z.B. eine Ping-Nachricht an
die Zieleinheiten 112, 116, 118 senden,
mit der sie die Zieleinheit 112 aufordert, die gleichberechtigten
Einheiten der Zieleinheit 112 anzugeben, mit der sie die
Zieleinheit 116 auffordert, die gleichberechtigten Einheiten
der Zieleinheit 116 anzugeben, und mit der sie die Zieleinheit 118 auffordert,
die gleichberechtigten Zieleinheiten der Zieleinheit 118 anzugeben.
-
Wie
aus Block 506 ersichtlich ist, kann die Zieleinheit 114 danach
Pong-Nachrichten von einem oder mehreren der vorgegebenen Anzahl
von gleichberechtigten Knoten empfangen, mit denen in Block 504 Kontakt
aufgenommen wurde.
-
Mit
dieser Pong-Nachricht können
die kontaktierten gleichberechtigten Einheiten 112, 116, 118 auf
die von der Zieleinheit 114 gesendete Ping-Nachricht antworten.
So kann die Zieleinheit 112 z.B. eine Pong-Nachricht an
die Zieleinheit 114 senden, welche der Zieleinheit 114 die
Zieleinheit 112 beschreibt. Bei einer Ausführungsform
der Erfindung kann die Pong-Nachricht die Adresse einer aktiven
Zieleinheit beinhalten. Somit kann die Zieleinheit 112 eine Pong-Nachricht
an die Zieleinheit 114 senden, welche die Adresse der Zieleinheit 112 angibt.
Die Zieleinheit 114 kann auch eine Pong-Nachricht von der Zieleinheit 116 empfangen,
welche die IP-Adresse der Zieleinheit 116 angibt, sowie
eine Pong-Nachricht von der Zieleinheit 118, welche die
IP-Adresse der Zieleinheit 118 angibt. Bei einer Ausführungsform
der Erfindung kann die Pong-Datennachricht eine zusammengesetzte
Liste (oder Tabelle der gleichberechtigten Knoten) der gleichberechtigten
Nachbareinheiten einer gegebenen Zieleinheit bereitstellen. So kann
die Zieleinheit 112 beispielsweise eine Pong-Nachricht
an die Zieleinheit 114 senden, die gegenüber der
Zieleinheit 114 angibt, dass die Zieleinheit 112 lediglich über eine
einzige gleichberechtigte Zieleinheit 114 verfügt. Zwischenzeitlich
kann die Zieleinheit 116 ebenfalls eine Pong-Nachricht senden,
die angibt, dass die Zieleinheit 116 über zwei gleichberechtigte
Zieleinheiten 114, 136 verfügt. Die Pong-Nachricht von
der Zieleinheit 116 kann außerdem Informationen zu den
beiden gleichberechtigten Einheiten 114, 136 der
Zieleinheit 116 bereitstellen, unter anderem die Anschlussnummer,
unter der die gleichberechtigte Zieleinheit 114 eingehende
Verbindungen entgegennehmen kann, die Anschlussnummer, unter der
die zweite gleichberechtigte Zieleinheit 136 eingehende
Verbindungen entgegennehmen kann, die IP-Adresse der gleichberechtigten
Zieleinheit 114, die IP-Adresse
der zweiten gleichberechtigten Zieleinheit 136 und beliebige
andere geeignete Informationen. Darüber hinaus kann die Zieleinheit 118 auch
eine Pong-Nachricht an die Zieleinheit 114 senden, die
gegenüber
der Zieleinheit 114 angibt, dass die Zieleinheit 118 über drei
gleichberechtigte Zieleinheiten 114, 128, 138 verfügt. Die
Pong-Nachricht von der Zieleinheit 118 kann außerdem Informationen
zu den drei gleichberechtigten Einheiten 114, 128, 138 der
Zieleinheit 118 bereitstellen, unter anderem die Anschlussnummer,
unter der die gleichberechtigte Zieleinheit 114 eingehende
Verbindungen entgegennehmen kann, die Anschlussnummer, unter der
die zweite gleichberechtigte Zieleinheit 128 eingehende
Verbindungen entgegennehmen kann, die Anschlussnummer, unter der
die dritte gleichberechtigte Zieleinheit 138 eingehende
Verbindungen entgegennehmen kann, die IP-Adresse der gleichberechtigten
Zieleinheit 114, die IP-Adresse der zweiten gleichberechtigten
Zieleinheit 128, die IP-Adresse der dritten gleichberechtigten
Zieleinheit 138 sowie beliebige andere geeignete Informationen.
-
Wie
aus Block 508 ersichtlich ist, kann die Zieleinheit 114 dann
die in Block 402 initialisierte Tabelle der gleichberechtigten
Knoten mit Informationen aktualisieren, die aus den Pong-Nachrichten
erhalten wurden. Dies kann unter Verwendung eines beliebigen geeigneten,
auf dem Fachgebiet bekannten Mittels erfolgen, z.B. durch Eingabe
der von den gleichberechtigten Nachbarknoten 112, 116, 118 stammenden
Informationen aus der Tabelle der gleichberechtigten Knoten in eine
Datenbank oder einen Speicher, die/der sich in der Zieleinheit 114 befindet
oder mit dieser in Kommunikation steht. Auf diese Weise kann die
Zieleinheit 114 durch die Abfrage der gleichberechtigten
Zieleinheiten 112, 116, 136, 118 Informationen
zu anderen Einheiten 128, 138, 136 in
dem Netzwerk ermitteln. Da die Zieleinheit 114 ihre Tabelle
der gleichberechtigten Knoten mit Informationen zu den Zieleinheiten 112, 116, 118, 128, 138 aktualisieren
kann, würde
eine die Zieleinheit 114 abfragende Nachbareinheit 122 daraufhin von
der Zieleinheit 114 Informationen zu sieben Zieleinheiten
empfangen, d.h. Informationen zu den Zieleinheiten 112, 116, 136, 118, 128, 138 und 122.
-
6 zeigt
unter der Bezugsziffer 600 eine Ausführungsform einer anderen Teilroutine
des Verfahrens für
die Datenübertragung
zwischen einer Vielzahl von Zieleinheiten in einer Netzwerkumgebung
aus 4.
-
Wie
aus Block 602 hervorgeht, kann die Zieleinheit 114 auf
eine eingehende Datennachricht warten. Bei dieser Datennachricht
kann es sich um eine beliebige geeignete Datennachricht handeln,
wie sie oben beschrieben ist.
-
So
kann die Datennachricht z.B. eine Ping-Datennachricht sein, die
Informationen von der Zieleinheit 114 anfordert, wie beispielsweise
eine Datennachricht, welche die Identifizierung der Zieleinheit 114 anfordert.
Alternativ kann die Datennachricht eine Abfragedatennachricht sein,
welche die Zieleinheit 114 fragt, ob diese über eine
bestimmte Datei verfügt.
Bei einer Ausführungsform
der Erfindung kann es sich bei der Datennachricht um eine Anforderung
handeln, dass die Zieleinheit 114 eine zusammengesetzte
Liste (oder Tabelle der gleichberechtigten Knoten) ihrer gleichberechtigten
Zieleinheiten bereitstellen soll.
-
Alternativ
kann die Datennachricht eine Pong-Datennachricht sein, welche der
Zieleinheit 114 eine andere Zieleinheit beschreibt. Bei
einer Ausführungsform
der Erfindung kann die Pong-Datennachricht auch eine zusammengesetzte
Liste (oder Tabelle der gleichberechtigten Knoten) ihrer gleichberechtigten
Nachbareinheiten bereitstellen. So kann die Zieleinheit 114 z.B.
eine Datennachricht von der Zieleinheit 112 empfangen,
die gegenüber
der Zieleinheit 114 angibt, dass die Zieleinheit 112 lediglich über eine
einzige gleichberechtigte Zieleinheit 114 verfügt. Alternativ
kann die Datennachricht eine Antwortdatennachricht sein, die auf
eine Abfrage von der Zieleinheit 114 antwortet.
-
In
Block 604 ermittelt die Zieleinheit 114, ob sie
eine Datennachricht empfangen hat. Unabhängig von ihrem Typ (d.h. Ping-Datennachricht,
Pong-Datennachricht, Suchabfragenachricht usw.) kann jede Datennachricht
wie oben beschrieben über
eine eindeutige Beschreiberkennung verfügen.
-
Wenn
eine Datennachricht empfangen wurde, fährt das Verfahren mit Block 606 fort,
wo die Beschreiberkennung der Datennachricht mit den bereits in
der Tabelle der Beschreiberkennungen gespeicherten Beschreiberkennungen
verglichen wird, die in Block 404 erzeugt wurde.
-
In
Block 608 ermittelt die Zieleinheit 114, ob die
empfangene Datennachricht bereits bekannt ist (d.h., ob die Beschreiberkennung
der empfangenen Datennachricht mit einer der bereits in der Tabelle
der Beschreiberkennungen gespeicherten Beschreiberkennung übereinstimmt).
-
Wenn
die empfangene Nachricht noch nicht bekannt ist, kann die Zieleinheit 114,
wie aus Block 610 deutlich wird, die empfangene Datennachricht und
ihre entsprechende Beschreiberkennung in die Tabelle der Beschreiberkennungen
aufnehmen.
-
Wie
aus Block 612 ersichtlich ist, kann die Zieleinheit 114 wie
oben beschrieben danach ermitteln, ob es sich bei der empfangenen
Nachricht um eine Ping-Nachricht handelt. Wenn die empfangene Nachricht
eine Ping-Nachricht ist, kann die Zieleinheit 114, wie
aus Block 624 hervorgeht, daraufhin eine Pong-Nachricht
an den gleichberechtigten Knoten zurückgeben, von dem die empfangene
Nachricht ausging. Bei einer Ausführungsform der Erfindung kann
die Pong-Antwort der Zieleinheit 114 eines oder mehrere
der folgenden Elemente beinhalten: eine Anschlussnummer, unter der
die Zieleinheit 114 eingehende Verbindungen entgegennehmen
kann, die IP-Adresse
der Zieleinheit 114, die Anzahl der Dateien, welche die
Zieleinheit 114 zur gemeinsamen Nutzung über das
Netzwerk bereitstellt, die Anzahl der Kilobytes an Daten, welche
die Zieleinheit 114 zur gemeinsamen Nutzung über das
Netzwerk bereitstellt. Alternativ kann die Pong-Antwort der Zieleinheit 114 bei
einer Ausführungsform
der Erfindung die gesamte oder einen Teil einer zusammengesetzten
Liste (oder Tabelle der gleichberechtigten Knoten) ihrer gleichberechtigten
Nachbarknoten beinhalten. So kann die Pong-Antwort der Zieleinheit 114 bei der
Ausführungsform
aus 1 z.B. Informationen zu den Zieleinheiten 112, 116, 136, 118, 128, 138 beinhalten,
unter anderem die Anschlussnummern, unter denen die Zieleinheiten 112, 116, 136, 118, 128, 138 eingehende
Verbindungen entgegennehmen können,
die IP-Adressen der Zieleinheiten 112, 116, 136, 118, 128, 138 und
beliebige andere geeignete Informationen.
-
Gemäß einer
Ausführungsform
der vorliegenden Erfindung wird die Pong-Antwort direkt von der
empfangenden Zieleinheit 114 an die gleichberechtigte Ausgangszieleinheit übertragen,
anstelle von der empfangenden Zieleinheit über dazwischenliegende Zieleinheiten
weitergeleitet zu werden. Wenn z.B. bei der Ausführungsform aus 1 die Zieleinheit 114 über die
dazwischenliegende Zieleinheit 118 eine Ping-Nachricht von der
gleichberechtigten Zieleinheit 128 empfängt, kann die Zieleinheit 114 der
Zieleinheit 128 direkt mit einer Pong-Nachricht antworten.
Die Zieleinheit 114 kann der Zieleinheit 128 direkt
antworten, da der Zieleinheit 114 gemäß der vorliegenden Erfindung
Informationen zur Zieleinheit 128 zugänglich gemacht wurden. So kann
die Zieleinheit 114 beispielsweise über Informationen zur Zieleinheit 128 verfügen, da
die Zieleinheit 114 zuvor ihre Tabelle der gleichberechtigten
Knoten mit Informationen zur Zieleinheit 128 wie z.B. der
IP-Adresse der Zieleinheit 128 aktualisiert hat (siehe
Block 508).
-
Weiterhin
kann die Zieleinheit 114, wie aus Block 626 hervorgeht,
ihre Tabelle der gleichberechtigten Knoten aktualisieren, indem
sie Informationen über
den gleichberechtigten Ausgangsknoten in diese aufnimmt. Unter Fortführung des
obigen Beispiels kann bei der Ausführungsform aus 1 die
Zieleinheit 114 somit Informationen zur Zieleinheit 128 in ihre
Tabelle der gleichberechtigten Knoten aufnehmen. Diese Informationen
können
Informationen zur Zieleinheit 128 beinhalten, unter anderem
die Anschlussnummer, unter der die Zieleinheit 128 eingehende
Verbindungen entgegennehmen kann, die IP-Adresse der Zieleinheit 128,
die Anzahl der Dateien, welche die Zieleinheit 128 zur
gemeinsamen Nutzung über
das Netzwerk bereitstellt, die Anzahl der Kilobytes an Daten, welche
die Zieleinheit 128 zur gemeinsamen Nutzung über das
Netzwerk bereitstellt. Alternativ können die Informationen von
der Zieleinheit 128 bei einer Ausführungsform der Erfindung die
gesamte oder einen Teil einer zusammengesetzten Liste (oder Tabelle
der gleichberechtigten Knoten) ihrer gleichberechtigten Nachbarknoten
beinhalten. So können
bei der Ausführungsform
aus 1 die Informationen zur Zieleinheit 128 z.B.
Informationen zu anderen Zieleinheiten beinhalten, die mit der Zieleinheit 128 verbunden
sind oder mit dieser in Kommunikation stehen (nicht abgebildet).
-
Wenn
die empfangene Nachricht keine Ping-Datennachricht ist, kann die
Zieleinheit 114, wie aus Block 614 ersichtlich
ist, ermitteln, ob es sich bei der empfangenen Nachricht um eine
andere Art von Abfrage handelt. Die Abfragenachricht kann z.B. Informationen
zu Software- oder Hardwarekomponenten einer gegebenen Zieleinheit,
zu Software- oder Hardwarekonfigurationen einer gegebenen Zieleinheit,
zur Software- oder Hardwarekompatibilität einer gegebenen Zieleinheit
oder zu Dateien im Speicher einer gegebenen Zieleinheit anfordern.
Bei einer Ausführungsform
der Erfindung kann die Abfragenachricht einen vorgegebenen Satz
von Kriterien beschreiben, die eine gegebene Zieleinheit erfüllen muss
(z.B. „Verfügt die diese
Nachricht empfangende Zieleinheit über eine Datei PATENT.APP.DOC?" oder „Kann die
diese Nachricht empfangende Zieleinheit DOS ausführen?"). Wenn es sich bei der empfangenen
Nachricht um eine andere Abfrageart handelt, kann das Verfahren
der vorliegenden Erfindung mit dem Unterprogramm aus 8 fortfahren,
wie durch das Bezugszeichen D aus 6 kenntlich
gemacht ist.
-
8 zeigt
unter der Bezugsziffer 800 eine Ausführungsform einer anderen Teilroutine
des Verfahrens für
die Datenübertragung
zwischen einer Vielzahl von Zieleinheiten in einer Netzwerkumgebung
aus 4.
-
Wie
aus Block 802 hervorgeht, kann die Zieleinheit 114 ermitteln,
ob sie die in der Abfrage der in Block 604 empfangenen
Nachricht enthaltenen vorgegebenen Kriterien erfüllt. Dies kann z.B. erfolgen, indem
die in der Abfragenachricht enthaltenen Kriterien mit einer beliebigen
geeigneten Komponente der Zieleinheit 114 verglichen werden.
Wenn die empfangene Abfragenachricht z.B. die Frage enthält „Verfügt die diese
Nachricht empfangende Zieleinheit über eine Datei PATENT.APP.DOC?", kann die Zieleinheit 114 ihre
Dateien daraufhin überprüfen, ob
etwaige Dateien mit der Datei übereinstimmen,
die in der empfangenen Abfragenachricht genannt wird. Wenn die empfangene
Abfragenachricht die Frage enthält „Kann die
diese Nachricht empfangende Zieleinheit DOS ausführen?", kann die Zieleinheit 114 ihre
Systemkonfiguration daraufhin überprüfen, ob
sie mit der in der empfangenen Abfragenachricht beschriebenen Konfiguration übereinstimmt.
-
Wenn
die Zieleinheit 114 die vorgegebenen Kriterien erfüllt, kann
sie, wie aus Block 804 hervorgeht, Antwortdaten an die
Zieleinheit zurückgeben, von
der die Abfrage ausging. So kann die Zieleinheit 112 z.B.
eine Abfragenachricht senden, die fragt „Verfügt die diese Nachricht empfangende
Zieleinheit über
eine Datei PATENT.APP.DOC?".
Wenn die Zieleinheit 114 über die Datei PATENT.APP.DOC
verfügt (d.h.
das vorgegebene Kriterium erfüllt),
kann sie eine Antwort an die Zieleinheit 112 senden, die
angibt, dass sie über
die Datei verfügt.
Wenn die Zieleinheit 114 nicht über die Datei verfügt, kann
sie bei einer Ausführungsform
der Erfindung auch eine Antwort senden, aus der hervorgeht, dass
sie die Datei nicht hat.
-
Wenn
die momentane Zieleinheit 114 die vorgegebenen Kriterien
erfüllt,
gibt sie gemäß einer Ausführungsform
der vorliegenden Erfindung ihre Antwortdaten direkt an die gleichberechtigte
Ausgangszieleinheit zurück,
anstelle sie von der momentanen Zieleinheit 114 über dazwischenliegende
Zieleinheiten weiterzuleiten. Wenn daher z.B. in der Ausführungsform
aus 1 die Zieleinheit 114 über die dazwischen
liegende Zieleinheit 118 eine Suchabfrage von der gleichberechtigten
Zieleinheit 128 empfängt,
sendet die Zieleinheit 114 ihre Antwortdaten direkt an
die Zieleinheit 128. Die Zieleinheit 114 kann der
Zieleinheit 128 direkt antworten, da die Informationen
zur Zieleinheit 128 der Zieleinheit 114 gemäß der vorliegenden
Erfindung zugänglich
gemacht wurden. So kann die Zieleinheit 114 beispielsweise über Informationen
zur Zieleinheit 128 verfügen, da die Zieleinheit 114 zuvor
ihre Tabelle der gleichberechtigten Knoten mit Informationen zur
Zieleinheit 128 wie z.B. der IP-Adresse der Zieleinheit 128 aktualisiert hat
(siehe Block 508).
-
Wie
aus den Blöcken 814, 816, 818, 828 hervorgeht,
kann die Zieleinheit 114 dann, unabhängig davon, ob sie die vorgegebenen
Kriterien der Abfragenachricht erfüllt, ermitteln, ob die Datennachricht weitergeleitet
werden oder ob ihre Gültigkeitsdauer ablaufen
soll.
-
Wie
aus Block 814 hervorgeht, kann die Abfragenachricht einen
Sprungzähler
beinhalten oder zu diesem zugehörig
sein, der bei Empfang der Datennachricht erhöht werden kann. Dieser Sprungzähler kann
von der empfangenden Zieleinheit 114 unter Verwendung eines
beliebigen auf dem Fachgebiet bekannten geeigneten Mittels erhöht werden.
So kann z.B. ein geeigneter Algorithmus verwendet werden, um den
Sprungzähler
zu erhöhen.
Der Algorithmus für
die Bestimmung des Sprungzählers
kann auf Faktoren wie der Netzwerküberlastung und den Verarbeitungsbeschränkungen
eines gegebenen gleichberechtigten Knotens beruhen. Der Sprungzähler kann
angeben, wie oft die Datennachricht empfangen wurde. Bei einer Ausführungsform
der Erfindung erhöht
jede Zieleinheit, welche die Datennachricht empfängt, bei jedem Empfang der
Datennachricht den Sprungzähler.
-
Wie
aus Block 816 ersichtlich ist, kann der Sprungzähler mit
dem Verweildauerwert t für
die bestimmte Datennachricht verglichen werden, um zu ermitteln,
ob die Gültigkeitsdauer
der Nachricht ablaufen sollte (d.h., überschreitet die Häufigkeit,
mit der die Nachricht empfangen wurde, bzw. der Sprungzähler den
Wert für
die Verweildauer?). Bei der Ausführungsform
aus 8 wird der Sprungzähler mit dem Verweildauerwert
t verglichen, um zu ermitteln, ob er Sprungzähler gleich dem Wert für die Verweildauer
ist, und wenn der Sprungzähler
nicht gleich diesem Wert ist, ist die Gültigkeitsdauer der Nachricht
nicht abgelaufen. Bei einer anderen Ausführungsform der Erfindung wird
der Sprungzähler mit
dem Verweildauerwert t verglichen, um zu ermitteln, ob er Sprungzähler größer als
der Wert für
die Verweildauer ist, und wenn der Sprungzähler größer als der Verweildauerwert
ist, ist die Gültigkeitsdauer der
Nachricht nicht abgelaufen. Bei einer weiteren Ausführungsform
der Erfindung wird der Sprungzähler
mit dem Verweildauerwert t verglichen, um zu ermitteln, ob er Sprungzähler kleiner
als der Wert für die
Verweildauer ist, und wenn der Sprungzähler kleiner als der Verweildauerwert
ist, ist die Gültigkeitsdauer
der Nachricht nicht abgelaufen.
-
Der
Verweildauerwert kann mit einem beliebigen geeigneten Mittel ermittelt
werden. So kann der Wert z.B. ausgehend von den Spezifikationen
der Zieleinheit, welche den Verweildauerwert steuert, voreingestellt
sein. Bei einer Ausführungsform
der Erfindung ist die Zieleinheit, die den Verweildauerwert steuert,
die Zieleinheit, von der die Datennachricht ausging. Alternativ
kann der Benutzer einer bestimmten Zieleinheit den Wert für die Verweildauer festlegen.
Der Wert für
die Verweildauer kann auf Faktoren wie der Netzwerküberlastung
und der Verarbeitungsgeschwindigkeit der Zieleinheit beruhen. Der
von einer bestimmten Zieleinheit verwendete Transportmechanismus
kann den Verweildauerwert bestimmen. Alternativ kann ein geeigneter
Algorithmus den Verweildauerwert steuern, wobei Faktoren wie die
Netzwerküberlastung
und Verarbeitungsbeschränkungen
eines gegebenen gleichberechtigten Knotens zugrunde gelegt werden.
-
Wie
aus Block 818 deutlich wird, ist die Gültigkeitsdauer der Nachricht
abgelaufen, wenn der Sprungzähler
gleich dem Verweildauerwert ist. Bei einer Ausführungsform der Erfindung leitet
die empfangende Zieleinheit 114 die Nachricht nicht mehr
an eine andere Zieleinheit weiter, nachdem die Gültigkeitsdauer der Nachricht
abgelaufen ist.
-
Wenn
der Sprungzähler
nicht gleich dem Verweildauerwert ist, kann die Zieleinheit 114,
wie aus Block 828 ersichtlich ist, die Datennachricht anschließend an
eine oder mehrere andere Zieleinheiten weiterleiten. Bei der Ausführungsform
aus 8 kann die empfangende Zieleinheit die Nachricht
z.B. an eine vorgegebene Anzahl (n) von Nachbarknoten/gleichberechtigten
Zieleinheiten weiterleiten. Diese vorgegebene Anzahl von Nachbarknoten
kann mit einem beliebigen geeigneten Mittel, unter anderem den unter
Block 408 weiter oben beschriebenen Mitteln, ermittelt
werden.
-
Danach
kann die empfangende Zieleinheit 114 zu Block 602 zurückkehren,
wie durch das Bezugszeichen B in den 6 und 8 kenntlich
gemacht.
-
Wenn – mit erneutem
Blick auf 6 – die empfangene Nachricht
keine Ping- oder Abfragenachricht ist, kann die Zieleinheit 114,
wie aus Block 616 deutlich wird, ermitteln, ob die empfangene Nachricht
eine Datennachricht ist, die Antwortdaten auf eine von der Zieleinheit 114 gesendete
Abfrage bereitstellt.
-
Derartige
Antwortdaten können
beispielsweise eines oder mehrere der folgenden Elemente sein: Anschlussnummern,
unter denen eine oder mehrere Nachbarzieleinheiten eingehende Verbindungen
entgegennehmen können,
IP-Adressen von einer oder mehreren Nachbarzieleinheiten, die Anzahl
der Dateien, die eine oder mehrere Nachbarzieleinheiten zur gemeinsamen
Nutzung über
das Netzwerk bereitstellen, die Anzahl der Kilobytes an Daten, die eine
oder mehrere der Nachbarzieleinheiten zur gemeinsamen Nutzung über das
Netzwerk bereitstellen, Informationen zu Software- oder Hardwarekomponenten
einer gegebenen Zieleinheit oder einer oder mehrerer Nachbarzieleinheiten,
Informationen zu Software- oder Hardwarekonfigurationen einer gegebenen
Zieleinheit oder einer oder mehrerer Nachbarzieleinheiten, Informationen
zur Software- oder Hardwarekompatibilität einer gegebenen Zieleinheit oder
einer oder mehrerer Nachbarzieleinheiten oder Informationen zu Dateien,
die einer gegebenen Zieleinheit oder einer oder mehreren Nachbarzieleinheiten
zugänglich
gemacht werden.
-
Die
Antwortdaten können
außerdem
die gesamte oder einen Teil einer zusammengesetzten Liste (oder
Tabelle der gleichberechtigten Knoten) einer oder mehrerer Nachbarzieleinheiten
beinhalten. Alternativ können
die Antwortdaten eine Antwort auf eine von der Zieleinheit 114 gesendete
Abfrage beinhalten. Wenn beispielsweise die Zieleinheit 114 eine Abfrage
mit der Frage „Verfügst du über eine
Datei namens TRADEMARK.APP.EXE?" sendet,
kann die empfangene Nachricht eine Antwort sein, die angibt, dass
eine oder mehrere Nachbarzieleinheiten über die Datei verfügen. Bei
einer Ausführungsform
der Erfindung können
die Antwortdaten direkt von einer antwortenden Zieleinheit an die
Zieleinheit gesendet werden, welche die Abfrage ursprünglich gesendet hat.
-
Wenn
bei der Ausführungsform
aus 1 die Zieleinheit 114 z.B. eine Abfrage
an die Nachbareinheiten 112, 116, 118 sendet,
kann die Zieleinheit 114 eine Antwortdatennachricht von
der Zieleinheit 112 empfangen, die gegenüber der
Zieleinheit 114 angibt, dass die Zieleinheit 112 über die
Datei verfügt.
Die Zieleinheit 114 kann außerdem eine Datennachricht
von der Zieleinheit 116 empfangen, die der Zieleinheit 114 angibt,
ob die Zieleinheit 116 über
die Datei verfügt.
Die Zieleinheit 114 kann eine Datennachricht von der Zieleinheit 118 empfangen,
die gegenüber
der Zieleinheit 114 angibt, ob die Zieleinheit 118 über die
Datei verfügt.
-
Zusätzlich hierzu
kann die Zieleinheit 114 eine Datennachricht direkt von
der Zieleinheit 136 empfangen, die gegenüber der
Zieleinheit 114 angibt, ob die Zieleinheit 136 über die
Datei verfügt,
obwohl die Zieleinheit 114 die Zieleinheit 136 nicht
direkt abgefragt hat. Die Zieleinheit 136 kann der Zieleinheit 114 direkt
antworten, da der Zieleinheit 136 gemäß der vorliegenden Erfindung
Informationen zur Zieleinheit 114 zugänglich gemacht wurden. So kann die
Zieleinheit 136 beispielsweise über Informationen zur Zieleinheit 114 verfügen, da
die Zieleinheit 136 zuvor ihre Tabelle der gleichberechtigten
Knoten mit Informationen zur Zieleinheit 114, wie z.B.
der IP-Adresse der Zieleinheit 114, aktualisiert hat (siehe Block 508).
-
Die
Zieleinheit 114 kann außerdem direkt von den Zieleinheiten 128, 138 Datennachrichten empfangen,
die angeben, ob jede dieser Zieleinheiten 128, 138 über die
Datei verfügt,
obwohl die Zieleinheit 114 die Zieleinheiten 128, 138 nicht
direkt abgefragt hat. Somit kann die Zieleinheit 114 durch
eine Abfrage der Zieleinheiten 112, 116, 118 direkte
Antworten von den Zieleinheiten 112, 116, 136, 118, 128, 136 empfangen.
-
Wie
aus Block 618 hervorgeht, kann die Zieleinheit 114 danach
die Antwortdaten verarbeiten. So kann die Zieleinheit 114 die
Antwortdaten z.B. in einem Speicher speichern, der sich in der Zieleinheit 114 befindet
oder mit dieser in Kommunikation steht. Alternativ kann die Zieleinheit 114 die
Antwortdaten über
die Benutzeroberfläche,
die sich in der Zieleinheit befindet oder mit dieser in Kommunikation
steht, einem Benutzer vorlegen. So kann die Zieleinheit 114 die
Antwortdaten dem Benutzer z.B. als Suchergebnisse anzeigen.
-
Wie
durch die Schleife 630 in 6 ersichtlich
ist, kann die Routine aus 6 für sämtliche
eingehenden Nachrichten wiederholt werden.
-
7 zeigt
unter der Bezugsziffer 700 eine Ausführungsform einer anderen Teilroutine
des Verfahrens für
die Datenübertragung
zwischen einer Vielzahl von Zieleinheiten in einer Netzwerkumgebung
aus 4.
-
Wie
aus Block 702 hervorgeht, kann die Zieleinheit 114 warten,
bis eine Abfrage eingegeben wird. Diese Abfrage kann eine beliebige
geeignete Abfrage sein, wie oben beschrieben wurde. Die Abfrage
kann z.B. Informationen zu einem oder mehreren der folgenden Elemente
anfordern: Anschlussnummern, unter denen eine oder mehrere Nachbarzieleinheiten
eingehende Verbindungen entgegennehmen können, IP-Adressen von einer
oder mehreren Nachbarzieleinheiten, die Anzahl der Dateien, die eine
oder mehrere Nachbarzieleinheiten zur gemeinsamen Nutzung über das
Netzwerk bereitstellen, die Anzahl der Kilobytes an Daten, die eine
oder mehrere der Nachbarzieleinheiten zur gemeinsamen Nutzung über das
Netzwerk bereitstellen, Informationen zu Software- oder Hardwarekomponenten
einer gegebenen Zieleinheit oder einer oder mehrerer Nachbarzieleinheiten,
Informationen zu Software- oder Hardwarekonfigurationen einer gegebenen
Zieleinheit oder einer oder mehrerer Nachbarzieleinheiten, Informationen
zur Software- oder Hardwarekompatibilität einer gegebenen Zieleinheit
oder einer oder mehrerer Nachbarzieleinheiten oder Informationen
zu Dateien, die einer gegebenen Zieleinheit oder einer oder mehreren
Nachbarzieleinheiten zugänglich
gemacht werden.
-
Bei
einer Ausführungsform
kann ein Benutzer eine Abfrage eingeben. Alternativ kann die Abfrage
von einer anderen Zieleinheit oder einer anderen Komponente des
Netzwerks 102 und/oder Systems 100 eingegeben
werden. So kann ein Benutzer an der Zieleinheit 114 z.B.
eine Abfrage eingeben, die nach der Datei PATENT.APP.DOC fragt.
-
Wie
aus Block 704 hervorgeht, kann die Zieleinheit 114 danach
die Abfrage an eine vorgegebene Anzahl n von Nachbarknoten weiterleiten.
Diese vorgegebene Anzahl von Nachbarknoten kann durch ein beliebiges
geeignetes Mittel bestimmt werden, einschließlich der in Block 408 weiter
oben beschriebenen Mittel. Die Zieleinheit 114 kann danach
zu Block 702 zurückkehren,
wie durch das Bezugszeichen C in den 4 und 7 kenntlich
gemacht.
-
Obwohl
die vorliegende Erfindung in Zusammenhang mit einem voll funktionsfähigen Datenverarbeitungssystem
beschrieben wurde, dürfte
klar sein, dass die beschriebenen Prozesse auch in einem beliebigen
anderen geeigneten Zusammenhang verteilt werden können. So
können
die beschriebenen Prozesse z.B. die Form eines computerlesbaren Mediums
mit Befehlen annehmen. Die vorliegende Erfindung ist gleichermaßen anwendbar,
unabhängig von
der Art des signaltragenden Mediums, das zur Ausführung der
Verteilung tatsächlich
verwendet wird. Zu Beispielen für
computerlesbare Medien gehören
Aufzeichnungsmedien wie eine Diskette, ein Festplattenlaufwerk,
ein RAM, CD-ROMs, DVD-ROMs sowie Übertragungsmedien wie digitale und
analoge Datenübertragungsverbindungen, drahtgebundene
oder drahtlose Datenübertragungsverbindungen
unter Verwendung von Übertragungsarten
wie beispielsweise Funk- oder Lichtwellenübertragungen. Das computerlesbare
Medium kann die Form von codierten Formaten annehmen, die für die eigentliche
Verwendung in einem bestimmten Datenverarbeitungssystem decodiert
werden.