-
GEBIET DER
ERFINDUNG
-
Die
vorliegende Erfindung betrifft Computernetze und insbesondere ein
System zur skalierbaren Ressourcenermittlung und dynamischen Neukonfigurierung
in verteilten Computernetzen.
-
HINTERGRUND
DER ERFINDUNG
-
Computernetze
wie das Internet ermöglichen den
Benutzern, gemeinsam Ressourcen wie z.B. Dateien und Hardware zu
nutzen. Durch die Ausweitung des Internets und die Einführung von
Standards für das
World Wide Web kann ein Benutzer Dateien praktisch mühelos ansehen
und herunterladen. Der Benutzer muss keinerlei Programmiersprachen
kennen. Der Benutzer braucht nur einfach einen Internetbrowser zu
starten, auf die gewünschten
Dateien zu zeigen und sie anzuklicken, um sie herrunterzuladen. Mit
Hilfe solcher Programme können
Teilnehmer mit gleichen Interessen, die weit voneinander entfernt sind, über ein
verteiltes Computernetz, das praktisch die gesamte Erde umspannen
kann, einfach zusammenarbeiten und Dateien gemeinsam nutzen.
-
Üblicherweise
ist ein verteiltes Computernetz als Client-/Server-System konfiguriert. Insbesondere
ist jeder Benutzer ein Client, der über das Netzwerk auf einen
Serverknoten zugreifen und, wenn er dazu berechtigt ist, Dateien
zum Serverknoten senden kann. Wenn eine Datei beim Serverknoten
angekommen ist, können
andere Clients im Netzwerk auf den Serverknoten zugreifen und die
Datei betrachten oder herunterladen. Außerdem kann der Serverknoten
einem Client erlauben, automatisch eine Datei an einen anderen Client
zu senden, der über
das Netzwerk erreicht werden kann. Der Client sendet die Datei zusammen
mit Informationen zur Kennzeichnung des gewünschten Empfängers einfach
an den Serverknoten, und der Serverknoten leitet die Datei weiter
zu dem entsprechenden Client. Mit Hilfe des Serverknotens kann der
Client auch in die Lage gesetzt werden, Hardwareressourcen wie einen
Drucker zu nutzen.
-
Bei
einem solchen Client-/Serversystem fällt dem Serverknoten die Aufgabe
zu, für
Sicherheit zu sorgen. Zum Beispiel muss der Server gewährleisten,
dass die Netzwerkressourcen (z.B. das Herunterladen von Dateien)
nur von berechtigten Clients genutzt werden und dass nur zugelassene
Dateien herausgegeben werden. Außerdem stellt der Serverknoten
einen verwundbaren Punkt dar. Daher muss der Serverknoten in jeder
Client-/Serverumgebung, von
der Zuverlässigkeit
verlangt wird, industriellen Anforderungen genügen und über redundante Systeme verfügen, um
Systemausfälle
und Datenverluste zu verhindern. Ferner belastet jeder neue Client
im Netzwerk den Serverknoten zusätzlich
und verschlechtert die Leistung des Netzwerks, da alle Ressourcenübertragungen
zwischen den Clients über den
Serverknoten abgewickelt werden.
-
In
einer solchen Client-/Serverumgebung ist die Anonymität der Clients
kaum gewahrt. Üblicherweise
fordert der Serverknoten von einem Client zuerst einen Berechtigungsnachweis (authentication), bevor
er ihm den Zugriff auf Netzwerkressourcen gestattet. Sobald der
Client seine persönlichen
Kenndaten mitgeteilt hat, kann der Serverknoten mit Leichtigkeit
alle Aktivitäten
des Clients im Netzwerk protokollieren. Zum Beispiel kann der Serverknoten
ein Protokoll über
alle Dateien führen,
die der Client gesendet bzw. heruntergeladen hat. Auch, wenn nicht
identifizierten Clients der Zugriff gestattet wird, kann der Serverknoten
verschiedene spezielle Identifizierungsverfahren anwenden, um die
Aktivitäten
der Clients im Laufe der Zeit zu verfolgen. Zum Beispiel kann der
Serverknoten ein spezielles Cookie im Client hinterlegen und den
Client später
anhand dieses Cookies jedes Mal erkennen, wenn er auf den Serverknoten
zugreift.
-
Eine
Lösung
einiger der Nachteile des herkömmlichen
Client-/Server-Systems
bietet ein „virales" Netzwerk. In einem
solchen Netzwerk ist ein Serverknoten mit einem oder mehreren bekannten
Hosts verbunden, die Teil eines stark vernetzten virtuellen Netzwerks
sind. Dann wird der Benutzerknoten selbst zu einem Hostknoten, der
auf Anforderungen nach Ressourcen und verfügbaren Hosts reagieren kann.
Jeder Benutzer im Netzwerk leitet Ressourcenanforderungen an alle
bekannten Nachbarknoten weiter, um so jede Anforderung praktisch
in das gesamte Netzwerk zu leiten. Zum Beispiel verwendet das Gnutella-System
eine solche virale Netzwerkumgebung. Gnutella führt ein öffentliches Netzwerkprotokoll
und stellt den Benutzern eine Client-/Server-Anwendung zur Verfügung (verfügbar unter http://gnutella.wego.com),
mit deren Hilfe jeder Benutzer in einem Netzwerk mit gemeinsam genutzten Dateien
als Hostknoten agieren kann. Das Gnutella-System kann zur sicheren
Verteilung von kommerziellen Inhalten eingesetzt werden, die durch
Verschlüsselung
und Lizenzvergabe geschützt
sind.
-
Virale
Netzwerke beruhen auf der Peer-to-Peer-Kommunikation. Peer-to-Peer
ist ein Kommunikationsmodell, bei dem jeder Teilnehmer über vergleichbare
Fähigkeiten
verfügt
und jeder Teilnehmer eine Kommunikationssitzung starten kann. Zum
Beispiel verwendet die Gnutella-Anwendung die Peer-to-Peer-Kommunikation, damit
Benutzer untereinander Dateien über
das Internet austauschen können.
Das in einem viralen Netzwerk verwendete Peer-to-Peer-Modell ist
auf jeden Peer-Computer (d.h. jeden Benutzerknoten) angewiesen,
der mindestens einen der anderen Peers im Netzwerk kennt. Wenn ein
Peer eine Ressource wie beispielsweise eine Datei sucht, sendet
er eine Ressourcenanforderung an andere bekannte Peers, die diese
wiederum an weitere ihnen bekannte Peers weiterleiten und so weiter,
um die Anforderung im gesamten Netzwerk zu verteilen. Ein Peer,
der im Besitz der Ressource ist und die Anforderung empfängt, kann
die Ressource (oder eine Nachricht, welche deren Verfügbarkeit
anzeigt) zum anfordernden Peer zurücksenden.
-
Da
ein solches System nicht auf eine zentrale Netzwerkeinheit (z.B.
einen Serverknoten) angewiesen ist, bleibt die Anonymität der Benutzer
in einem viralen Netzwerk besser gewahrt, und die Verwundbarkeit
wird ausgeschlossen.
-
1 zeigt
ein Beispiel eines viralen Netzwerks. Jeder Knoten im Netzwerk stellt
einen Benutzer dar, der sowohl als Client als auch als Host agiert und
mit einem oder mehreren anderen Knoten verbunden ist. Wenn ein erster
Knoten 210 nach einer bestimmten Ressource (z.B. einer
Datei) verlangt, gibt der erste Knoten 210 eine Anforderung
an alle bekannten Knoten 202, 204, 206 und 208 aus,
die ihrerseits dasselbe tun. Zum Beispiel erreicht die Anforderung
einen zweiten Knoten 212, indem sie nacheinander durch
die Knoten 208, 216 und 218 weitergeleitet
wurde. Wenn die Ressource beim zweiten Knoten 212 vorliegt,
reagiert dieser, indem er eine entsprechende Nachricht zum ersten
Knoten 210 (z.B. über
denselben Weg wie die Anforderung) zurücksendet. Da ein Knoten gefunden
wurde, der über die
angeforderte Ressource verfügt,
kann der erste Knoten 210 eine direkte Peer-to-Peer-Verbindung zum
zweiten Knoten 212 herstellen, um die Ressource herunterzuladen.
In dem viralen Netzwerk können beliebig
viele solcher Ressourcenanforderungen, Bestätigungen und Übertragungen
gleichzeitig vorkommen.
-
Während virale
Netzwerke die Anonymität besser
wahren und die Verwundbarkeit ausschließen, weist diese Struktur den
Nachteil der unzureichenden Skalierbarkeit auf. In einem großen dezentralen
viralen Netzwerk wird die Ressourcenermittlung umso schwieriger,
je mehr Knoten daran beteiligt sind. Insbesondere kann eine Ressourcenanforderung
nur von Knoten zu Knoten weitergeleitet werden und jeder Knoten
die Anforderung an eine relativ kleine Anzahl weiterer Knoten weiterleiten.
Zur Steuerung des Netzwerkverkehrs und zur Verhinderung übermäßig langer
Reaktionszeiten muss ein praktisches System eine „Lebensdauer" oder eine andere Begrenzung
für die
Häufigkeit
der Weiterleitungsschritte einer Anforderung (d.h. eine maximale
Anzahl der zurückgelegten
Netzwerkknoten) verwenden. Dadurch werden zwei Knoten oder Knotengruppen
wirksam ausgeschlossen, die durch einen Pfad voneinander getrennt
sind, auf welchem eine Anforderung eine übergroße Anzahl von Zwischenknoten durchlaufen
müsste.
Ferner verhindert eine solche Begrenzung der Weiterleitung einer
Anforderung, dass eine überdimensionierte
Suche nach einer Ressource durchgeführt wird, da die Anforderung
bei einer solchen Suche an alle Knoten im Netzwerk weitergeleitet
werden müsste.
-
Außerdem ist
vor Kurzem eine inhaltsabhängige
Ausgabe-/Reservierungs-Infrastruktur
zur Nachrichtenübermittlung
vorgeschlagen worden, welche einen Informationsflussgraphen verwendet.
Zum Beispiel ist vom Anmelder der vorliegenden Erfindung das Gryphon-System
(beschrieben unter http://www.research.ibm.com/gryphon) entwickelt worden.
Dieses System stellt einen inhaltsabhängigen Teilnehmerdienst bereit
und steuert die Nachrichten, indem es die Merkmale der verteilten
Kommunikation zwischen Anbieter und Teilnehmer mit der Datenbanktechnologie
verknüpft.
Das Herzstück des
Gryphon-Systems
ist ein Informationsflussgraph, der die selektive Zustellung von
Ereignissen, die Umwandlung von Ereignissen und die Erzeugung von neuen
Ereignissen darstellt.
-
2 zeigt
ein Beispiel einer inhaltsabhängigen
Ausgabe-/Reservierungs-Infrastruktur
zur Nachrichtenübermittlung,
welche Informationsflussgraphen verwendet. Bei diesem System werden
Aktienumsätze,
die aus den beiden Informationsquellen NYSE und NASDAQ gewonnen
wurden, miteinander kombiniert, umgewandelt, gefiltert und an Teilnehmer-Clients
geliefert. Zum Beispiel kann ein Benutzer 312 auf den Nachrichten-Server 302 zugreifen
und alle Aktienumsätze
an der NYSE und an der NASDAQ anfordern, die einen Wert von einer
Million Dollar überschreiten.
Der Nachrichten-Server 302 empfängt zunächst von der NYSE 324 und
der NASDAQ 326 die unbearbeiteten Kurse und Stückzahlen.
-
Anhand
der Informationsanforderung vom Benutzer 312 verknüpft der
Server 302 die Informationen aus den beiden Quellen über die
Aktienumsätze
miteinander, bildet aus den unbearbeiteten Kursen und Stückzahlen
den Wert für
jeden Einzelumsatz, filtert dann die abgeleiteten Werte heraus und stellt
alle Umsätze
mit einem Wert von über
einer Million Dollar zusammen. Auf ähnliche Weise gibt jeder Teilnehmer
(z.B. die Knoten 304, 306 und 308) seine eigenen
Kriterien an, und der Nachrichten-Server 302 führt die
Informationsauswahl, die Umwandlung, die Filterung und die Zustellung
durch, um jeden Benutzer mit den angeforderten Informationen zu
versorgen.
-
Die
Infrastruktur von 2 zur Steuerung der Nachrichten
zwischen Anbieter und Teilnehmer ermöglicht zwar bei einem Nachrichtensystem
mit vielen Benutzern eine gute Skalierbarkeit, aber die Anonymität der Benutzer
ist wie bei einem herkömmlichen
Client-/Server-Netzwerk kaum gewahrt. Alle Benutzer müssen bei
der Anmeldung im System ihre Kennung angeben und alle Informationen
werden dem Benutzer über
den zentralen Server zugestellt. Somit ist der zentrale Server in
der Lage, ein Protokoll über
alle Benutzer des Systems und die von ihnen gewünschten und erhaltenen genauen
Informationen zu führen.
Der zentrale Server zur Nachrichtensteuerung stellt für das System
auch einen verwundbaren Punkt dar.
-
BESCHREIBUNG DER ERFINDUNG
-
Zur
Verbesserung der Skalierbarkeit und der Leistungsfähigkeit
wird eine skalierbare Nachrichteninfrastruktur bereitgestellt, bei
der die meisten Merkmale eines dezentralen Netzwerks erhalten bleiben. In
einem dezentralen Netzwerk wird mindestens ein Ausgabe-/Reservierungsserverknoten bereitgestellt, der
nicht als zentrale Verwaltungseinheit, sondern als Infrastrukturschicht
zur Nachrichtenübermittlung dient.
Somit kann die Skalierbarkeit in einem dezentralen Netzwerk erreicht
werden.
-
Eine
Ausführungsart
der vorliegenden Erfindung stellt ein Verfahren zur Ermittlung von
Ressourcen in einem Netzwerk von Benutzerknoten bereit. Gemäß dem Verfahren
wird eine Ressourcenanforderung von einem Ausgabe-/Reservierungsserverknoten
ausgegeben und von einem ersten Benutzerknoten des Netzwerks empfangen,
und anschließend wird
entschieden, ob die Ressourcenanforderung zum Ausgeben an einen
Ausgabe-/Reservierungsserverknoten gesendet werden soll. Wenn entschieden
wird, dass die Ressourcenanforderung nicht zum Ausgeben an den Ausgabe-/Reservierungsserverknoten
gesendet werden soll, wird die Ressourcenanforderung über eine
Direktverbindung an einen zweiten Benutzerknoten weitergeleitet.
Wenn entschieden wird, dass die Ressourcenanforderung vom ersten
Benutzerknoten zum Ausgabe-/Reservierungsserverknoten
gesendet werden soll, wird die Ressourcenanforderung zum Ausgeben
zum Ausgabe-/Reservierungsserverknoten
gesendet. Dann wird die Anforderung vom Ausgabe-/Reservierungsserverknoten
an Teilnehmer-Benutzerknoten
ausgegeben. Bei einer bevorzugten Ausführungsart wird die Entscheidung,
ob die Ressourcenanforderung zum Serverknoten gesendet werden soll,
vom ersten Benutzerknoten nach dem Zufallsprinzip gefällt.
-
Eine
andere Ausführungsart
der vorliegenden Erfindung stellt einen Benutzerknoten zur Verwendung
in einem Computernetz bereit, welches Benutzerknoten und mindestens
einen Ausgabe-/Reservierungsserverknoten
enthält,
wobei jeder der Benutzerknoten über
eine Direktverbindung mit mindestens einem anderen Benutzerknoten
verbunden ist. Der Benutzerknoten beinhaltet eine Empfangsschnittstelle
zum Empfangen einer vom Ausgabe-/Reservierungsserverknoten ausgegebenen
Ressourcenanforderung, ein Steuerungsmittel zum Entscheiden, ob
die Ressourcenanforderung zur Ausgabe an den Ausgabe-/Reservierungsserverknoten
gesendet werden soll, und mindestens eine Übertragungsschnittstelle zum
selektiven Weiterleiten der Ressourcenanforderung über eine
Direktverbindung an einen zweiten Benutzerknoten des Netzwerks oder
zum Senden der Ressourcenanforderung an den Ausgabe-/Reservierungsserverknoten
zum Ausgeben. Die Übertragungsschnittstelle
leitet die Ressourcenanforderung an den zweiten Benutzerknoten weiter,
wenn das Steuerungsmittel entscheidet, dass die Ressourcenanforderung
nicht an den Ausgabe-/Reservierungsserverknoten gesendet werden soll,
und sendet die Ressourcenanforderung zum Ausgeben an den Ausgabe-/Reservierungsserverknoten,
wenn das Steuerungsmittel entscheidet, die Ressourcenanforderung
an den Ausgabe-/Reservierungsserverknoten
zu senden. Bei einer bevorzugten Ausführungsart wählt das Steuerungsmittel als
zweiten Benutzerknoten, an welchen die Ressourcenanforderung weitergeleitet
werden soll, nach dem Zufallsprinzip einen der anderen Benutzerknoten
des Netzwerks aus.
-
KURZBESCHREIBUNG
DER ZEICHNUNGEN
-
Im
Folgenden wird die Erfindung lediglich anhand eines Beispiels und
unter Bezug auf die beiliegenden Zeichnungen beschrieben:
-
1 ist
eine Darstellung eines Beispiels eines viralen Netzwerks.
-
2 ist
eine Darstellung eines Beispiels einer Ausgabe-/Reservierungsinfrastruktur zur inhaltsabhängigen Nachrichtenübermittlung.
-
3 ist
eine Darstellung einer skalierbaren Netzwerkstruktur gemäß einer
bevorzugten Ausführungsart
der vorliegenden Erfindung.
-
4 ist
ein Flussdiagramm eines Prozesses zum Suchen einer Ressource in
einer skalierbaren Netzwerkstruktur gemäß einer ersten Ausführungsart
der vorliegenden Erfindung.
-
5 ist
ein Flussdiagramm eines Prozesses zum Suchen einer Ressource in
einer skalierbaren Netzwerkstruktur gemäß einer zweiten Ausführungsart
der vorliegenden Erfindung.
-
6 ist
ein Flussdiagramm eines Prozesses zum Suchen einer Ressource in
einer skalierbaren Netzwerkstruktur gemäß einer dritten Ausführungsart
der vorliegenden Erfindung.
-
7 ist
eine Darstellung einer skalierbaren Netzwerkstruktur, welche eine
beispielhafte Ausführung
eines Teils des Prozesses von 6 zeigt.
-
8 ist
eine Darstellung einer skalierbaren Netzwerkstruktur, welche eine
beispielhafte Ausführung
eines anderen Teils des Prozesses von 6 zeigt.
-
DETAILLIERTE
BESCHREIBUNG DER ERFINDUNG
-
3 zeigt
ein skalierbares Netzwerksystem gemäß einer bevorzugten Ausführungsart
der vorliegenden Erfindung. Das System beinhaltet einen Ausgabe-/Reservierungsserverknoten 402 und
mehrere Benutzerknoten (z.B. 404, 406 und 410).
Bei Ausführungsarten
der vorliegenden Erfindung kann der Serverknoten 402 durch
einen einzelnen Server oder einen aus einer beliebigen Anzahl von
Servern bestehenden „Serververbund" realisiert werden.
Die einzelnen Server eines solchen Serververbundes können auf
verschiedene Weise untereinander und mit dem Internet verbunden
werden und dabei sogar weit voneinander getrennt sein, sodass eine
passende Versorgungsqualität
und vorteilhafte Merkmale wie zum Beispiel Daten- und Pfadredundanz
gewährleistet
werden.
-
Innerhalb
dieses Systems erreicht ein Benutzerknoten 416 Zugang zum
Netzwerk, indem er eine Verbindung zum Ausgabe-/Reservierungsserverknoten 402 herstellt
und bestimmte „Nachrichtenkanäle" belegt. Außerdem belegt
der hinzukommende Benutzerknoten 416 Leitungen und stellt
dann direkt eine Verbindung zu mindestens einem anderen Benutzerknoten 410, 418 und 420 her
(z.B. anhand eines Kriteriums wie beispielsweise des geografischen
Standortes, der Übertragungsgeschwindigkeit
oder gemeinsamer Interessen). Auf diese Weise sind alle Benutzerknoten
im Netzwerk zur Nachrichtenübermittlung
mit dem (zur besseren Anschaulichkeit nicht gezeigten) zentralen
Ausgabe-/Reservierungsserverknoten und außerdem über Peer-to-Peer-Verbindungen untereinander verbunden,
die ein dezentrales Netzwerk vom viralen Typ zur gemeinsamen Ressourcennutzung
bilden.
-
4 ist
ein Flussdiagramm eines Prozesses zur Ermittlung einer Ressource
in einem solchen skalierbaren Netzwerksystem gemäß einer ersten Ausführungsart
der vorliegenden Erfindung. Immer wenn ein erster Benutzerknoten 416 im
Netzwerk eine Ressource (z.B. eine Datei) verlangt, wird eine Ressourcenanforderung
(oder Abfrage) zum Serverknoten 402 gesendet (Schritt S10),
und der Serverknoten 402 gibt die Ressourcenanforderung
aus, indem er sie an alle Benutzerknoten sendet, welche den Kanal
belegen, der dem Anforderungstyp entspricht (Schritt S12). Ein zweiter
Benutzerknoten 422, welcher die Anforderung empfängt und
bereit ist, die Ressource zur Verfügung zu stellen, nimmt eine
Verbindung zum ersten Benutzerknoten 416 auf (Schritt S14),
und der erste und der zweite Benutzerknoten 416 und 422 stellen
untereinander eine Peer-to-Peer-Verbindung her, um dem ersten Benutzerknoten 416 die
angeforderte Ressource zur Verfügung
zu stellen (S16). Auf diese Weise ermöglicht die Ausgabe-/Reservierungsinfrastrukturschicht
zur Nachrichtenübermittlung,
dass eine Ressourcenanforderung zu Knoten gelangen kann, die vom
anfordernden Knoten über
einen direkten Verbindungspfad mit einer großen Anzahl von Zwischenknoten
erreichbar sind.
-
Somit
bleibt in dem skalierbaren Netzwerksystem gemäß der vorliegenden Erfindung
die wirksame Ressourcensuche erhalten, wenn die Anzahl der Benutzerknoten
im Netzwerk zunimmt. Gleichzeitig werden die Ressourcen selbst dem
Server nicht mitgeteilt und der Server in die gemeinsame Ressourcennutzung
nicht einbezogen, sodass der Server nicht so stark in Anspruch genommen
wird wie beim herkömmlichen
Client-/Server-System. Da jede Suchanforderung an alle Benutzerknoten
ausgegeben wird, welche den betreffenden Kanal belegen, kann außerdem innerhalb vertretbarer
Zeit eine umfassende (oder zumindest sehr ausführliche) Suche nach der angeforderten
Ressource in einem Netzwerk durchgeführt werden, das eine große Anzahl von
Benutzerknoten enthält.
-
Bei
bevorzugten Ausführungsarten
unterstützt
die Ausgabe-/Reservierungsinfrastruktur
zur Nachrichtenübermittlung
zwei Arten von „Kanälen" oder gemeinsam genutzten
Datenströmen.
Die erste Kanalart ist ein „Knotensuchkanal", der die Suche nach
anderen Benutzerknoten im dezentralen Netzwerk unterstützt. Um
in das Netzwerk zu gelangen, meldet sich ein Benutzerknoten über die
Ausgabe-/Reservierungsinfrastruktur zur Nachrichtenübermittlung
des Serverknotens an. Insbesondere wird eine Zugangsanmeldung vom
neuen Benutzerknoten über
den Serverknoten zu einem oder mehreren der Knotensuchkanäle geleitet,
um Verbindungen von anderen Benutzerknoten anzufordern. Somit fungiert die
Ausgabe-/Reservierungsinfrastruktur
als Universaltransportschicht (ähnlich
einer Schicht oberhalb des Internetprotokolls), welche Verbindungen
zu anderen Benutzerknoten herstellt, um die Zugangsanmeldungen rundzusenden.
-
Solche
Zugangsanmeldungen können
anhand von Kategorien wie des geografischen Standorts, der Übertragungsgeschwindigkeit,
der Art der verfügbaren
Ressourcen und/oder der gemeinsamen Interessen auf einzelne Knotensuchkanäle aufgeteilt werden.
Auf diese Weise kann der neue Benutzerknoten (sowohl bezüglich der
geografischen Lage als auch der Anzahl der Vermittlungsschritte)
ferne Benutzerknoten ausfindig machen und beim Herstellen der Verbindung
solche Knoten bevorzugen, welche die gewünschte Ressourcenart oder akzeptable
Verbindungseigenschaften aufweisen. Da jede Zugangsanmeldung nur
an die Benutzerknoten gesendet wird, welche bestimmte Kanäle belegen,
werden die Benutzerknoten in einem sehr großen Netzwerk außerdem nicht
ständig
mit Zugangsanmeldungen überhäuft.
-
Die
zweite Kanalart ist ein „Ressourcenanforderungskanal", der zum Optimieren
der Ausgabe von Ressourcenanforderungen dient. Wie oben erläutert, gibt
der Serverknoten jede Ressourcenanforderung aus, indem er sie an
alle Benutzerknoten sendet, die einen bestimmten Kanal (oder mehrere
Kanäle)
belegen. Diese Ressourcenanforderungskanäle können in eine große Vielfalt
von Ressourcenarten aufgeteilt werden, damit die Benutzerknoten
unerwünschte
Anforderungen wirksam herausfiltern können. Ferner wird mit Hilfe
der Ressourcenanforderungskanäle
erreicht, dass eine Ressourcenanforderung nicht jeden Benutzerknoten
im Netzwerk erreicht, sondern nur ein bestimmter Teil der Benutzerknoten
(d.h. diejenigen Knoten, die den betreffenden Kanal oder die betreffenden
Kanäle
belegen).
-
Somit
wird ein Benutzerknoten, der nur eine technische Dokumentation einsehen
will, nicht mit Anforderungen nach Multimediainhalten überhäuft. Je
nach Anwendung kann der Benutzerknoten und/oder der Serverknoten
den oder die Kanäle
festlegen, über
welche eine Zugangsanmeldung oder Ressourcenanforderung ausgegeben
werden soll. Außerdem
existiert ein Kanal nur insofern, als ein Benutzerknoten eine Nachricht über ihn
ausgibt. Somit kann jeder Benutzerknoten einen neuen Ressourcenkanal
erzeugen und dann seine Teilnehmerverfügbarkeit auf herkömmliche
Weise (z.B. mittels einer Website, über Newsgroups, Fernsehen oder über Briefwerbung)
mitteilen.
-
5 ist
ein Flussdiagramm eines Prozesses zur Suche nach einer Ressource
in einem skalierbaren Netzwerksystem gemäß einer zweiten Ausführungsart
der vorliegenden Erfindung. Immer wenn ein erster Benutzerknoten 416 im
Netzwerk eine Ressource (z.B. einer Datei) anfordert, wird eine
Ressourcenanforderung an den Serverknoten 402 gesendet
(Schritt S10), und der Serverknoten 402 gibt die Ressourcenanforderung
aus, indem er sie an alle Benutzerknoten sendet, welche den der
Anforderungsart entsprechenden Kanal belegen (Schritt S12). Außerdem sendet
der erste Knoten 416 bei der zweiten Ausführungsart
auch die Ressourcenanforderung an alle Benutzerknoten 410, 418 und 420,
mit denen er im dezentralen Netzwerk verbunden ist.
-
Dieser
Prozess wird bei jedem Benutzerknoten wiederholt, der die Anforderung
empfängt
und an die Benutzerknoten weiterleitet, mit denen er verbunden ist,
um die Anforderung an die Benutzerknoten des dezentralen Netzwerks
zu verteilen (Schritt S11). Zum Beispiel erreicht die Anforderung
einen zweiten Benutzerknoten 404, indem sie nacheinander
durch die Knoten 410 und 414 weitergeleitet wurde.
Ferner sendet bei manchen Ausführungsarten
jeder Benutzerknoten (z.B. der Benutzerknoten 422), der
die Ressourcenanforderung vom Serverknoten empfängt, die Ressourcenanforderung
auch an alle Benutzerknoten, mit denen er im dezentralen Netzwerk verbunden
ist. Wenn der zweite Benutzerknoten 404 die Anforderung
(entweder durch Weiterleitung über Benutzerknoten
oder vom Serverknoten) empfängt und
bereit ist, die Ressource zur Verfügung zu stellen, setzt sich
der zweite Benutzerknoten 404 in Verbindung mit dem ersten
Benutzerknoten 416 (Schritt S14) und stellt eine Peer-to-Peer-Verbindung
her, um die angeforderte Ressource zur Verfügung zu stellen (Schritt S16).
-
Bei
der zweiten Ausführungsart
werden somit Ressourcenanforderungen sowohl über die Infrastrukturschicht
zur Nachrichtenübertragung
(wie bei der ersten Ausführungsart)
ausgegeben als auch über
die Benutzerknoten des dezentralen Netzwerks weitergeleitet. Da
dieser kombinierte Weiterleitungsprozess eine Alternative zum Weiterleitungspfad
für Anforderungen über den
zentralen Serverknoten darstellt, wird der verwundbare Punkt ausgeschlossen. Mit
anderen Worten, die Ressourcenanforderung wird an andere Benutzerknoten
weitergeleitet, wenn der Serverknoten abgeschaltet ist. Ferner brauchen bei
der zweiten Ausführungsart
nicht alle Benutzerknoten mit der Ausgabe-/Reservierungsinfrastruktur verbunden
zu sein oder von ihrem Vorhandensein zu wissen. Ein solcher Benutzerknoten
braucht nur die Ressourcenanforderungen an alle Benutzerknoten weiterzuleiten,
mit denen er verbunden ist. Aufgrund dieses Merkmals kann die zweite
Ausführungsart
in einem vorhandenen Netzwerk realisiert werden, ohne dass alle
Benutzerknoten verändert
werden müssen.
-
6 ist
ein Flussdiagramm eines Prozesses zum Suchen einer Ressource in
einem skalierbaren Netzwerksystem gemäß einer dritten Ausführungsart
der vorliegenden Erfindung. Bei dieser Ausführungsart werden Ressourcenanforderungen
nicht direkt zum Serverknoten gesendet, um die Anonymität des anfordernden
Benutzerknotens besser zu wahren. Immer wenn bei der dritten Ausführungsart eine
Ressource (z.B. eine Datei) angefordert wird, sendet der anfordernde
erste Benutzerknoten 410 eine Ressourcenanforderung an
einen zweiten Benutzerknoten 414, mit welchem er im dezentralen Netzwerk
verbunden ist (Schritt S20), was in 7 durch
die gestrichelten Pfeile dargestellt ist. Dann entscheidet der zweite
Benutzerknoten 414, ob die Anforderung an den Ausgabe-/Reservierungsserverknoten 402 oder
an einen anderen Benutzerknoten gesendet werden soll, mit dem er
im dezentralen Netzwerk verbunden ist (Schritt S22). Vorzugsweise sind
alle Benutzerknoten zur Nachrichtenübermittlung mit dem zentralen
Ausgabe-/Reservierungsserverknoten verbunden (aus Gründen der Übersichtlichkeit
nicht gezeigt).
-
Wenn
die Entscheidung gefällt
wird, die Anforderung nicht zum Serverknoten 402 zu senden, leitet
der zweite Benutzerknoten 414 die Ressourcenanforderung
an einen anderen Benutzerknoten 420 gemäß 7 weiter,
mit dem er verbunden ist (Schritt S20). Dieser Weiterleitungsprozess
wird bei jedem Benutzerknoten wiederholt, der die Ressourcenanforderung
empfängt
und dieselbe Entscheidung fällt
(Schritt S22). Wenn ein dritter Benutzerknoten 416 die
Entscheidung fällt,
die Anforderung zum Serverknoten 402 zu senden, wird die
Ressourcenanforderung zum Serverknoten 402 gesendet (Schritt S24),
und der Serverknoten 402 gibt die Ressourcenanforderung
aus, indem er sie an alle Benutzerknoten sendet, welche den Kanal
belegen, der dieser Anforderungsart entspricht (Schritt S26).
-
Bei
bevorzugten Ausführungsarten
wird jede Entscheidung, ob die Anforderung an den Ausgabe-/Reservierungsserverknoten
gesendet werden soll, vom Benutzerknoten nach dem Zufallsprinzip gefällt, wobei
er einen Gewichtungsfaktor zwischen 0 und 1 zugrunde legt, der die
Wahrscheinlichkeit angibt, dass die Anforderung zum Serverknoten
gesendet wird. Wenn der Gewichtungsfaktor beispielsweise gleich
0,25 ist, beträgt
die Wahrscheinlichkeit, dass der Benutzerknoten die Anforderung
an den Serverknoten sendet, 25 % und die Wahrscheinlichkeit, dass
die Anforderung an einen anderen Benutzerknoten weitergeleitet wird,
75 %. Somit müssten Ressourcenanforderungen
mit einem Gewichtungsfaktor von 0,25 im Mittel dreimal an andere
Benutzerknoten weitergeleitet werden, bevor sie an den Ausgabe-/Reservierungsserverknoten
gesendet werden. Der Wert des Gewichtungsfaktors wird aufgrund von Faktoren
wie beispielsweise des gewünschten
Anonymitätsgrades
gewählt.
Ferner kann der Gewichtungsfaktor ein fester Wert sein, der im gesamten Netzwerk
verwendet wird, oder von den Benutzerknoten entsprechend jeder Nachricht
gewählt
werden. Ferner können
auch noch andere Kriterien wie beispielsweise die maximale Anzahl
der Weiterleitungsschritte oder ein Zeitlimit in die Entscheidung einbezogen
werden, die jeder Benutzerknoten nach dem Empfangen der Anforderung
fällt.
-
Bei
weiteren Ausführungsarten
wird die Entscheidung, ob die Anforderung zum Ausgabe-/Reservierungsserverknoten
gesendet werden soll, aufgrund anderer Kriterien wie beispielsweise
einer festen Anzahl von Weiterleitungsschritten gefällt. Bei
einer Ausführungsart
wird zum Beispiel jede Ressourcenanforderung immer über drei
Benutzerknoten weitergeleitet und dann zum Ausgabe-/Reservierungsserverknoten
gesendet. Wenn eine Ressourcenanforderung an einen anderen Benutzerknoten weitergeleitet
werden soll, wird bei der Entscheidung, welcher andere Benutzerknoten
die weitergeleitete Anforderung empfangen soll, vorzugsweise nach dem
Zufallsprinzip einer der Benutzerknoten ausgewählt, mit dem der weiterleitende
Benutzerknoten verbunden ist.
-
Nach
der Ausgabe der Ressourcenanforderung durch den Serverknoten 402 nimmt
ein vierter Benutzerknoten 422, der die Anforderung empfängt und
bereit ist, die Ressource zur Verfügung zu stellen, Verbindung
mit dem ersten Benutzerknoten 410 auf. Insbesondere sendet
der vierte Benutzerknoten 422 gemäß der Darstellung in 8 eine
Antwort an den dritten Benutzerknoten 416 (Schritt S28),
der die Ressourcenanforderung zum Ausgeben an den Serverknoten 402 gesendet
hatte. Der dritte Benutzerknoten 416 leitet die Antwort
an den Benutzerknoten 420 weiter, von welchem er die Ressourcenanforderung
empfangen hat, und dieser Weiterleitungsprozess wird so lange wiederholt,
bis die Antwort den ersten Benutzerknoten 410 erreicht
hat (Schritt S30). In diesem Augenblick kann der erste Benutzerknoten 410 Verbindung
mit dem vierten Benutzerknoten 422 aufnehmen, um eine direkte
Peer-to-Peer-Verbindung herzustellen und die angeforderte Ressource zur
Verfügung
zu stellen (Schritt S32).
-
Bei
bevorzugten Ausführungsarten
enthält die
Antwort des Benutzerknotens, bei dem sich die Ressource befindet,
Metadaten zur Ressourcenübereinstimmung.
Wenn die Antwort empfangen wird, bewertet der anfordernde Benutzerknoten
die Metadaten und entscheidet dann, ob eine Direktverbindung zum
antwortenden Knoten hergestellt werden soll, um die Ressource selbst
zu nutzen (z.B., um die angeforderte Datei herunterzuladen). Wenn
mehrere Antworten empfangen werden, kann der anfordernde Benutzerknoten
die Metadaten in jeder Antwort bewerten und dann anhand beliebiger
Kriterien (z.B. frühere
Erfahrungswerte, Eingangsreihenfolge, Übertragungsgeschwindigkeit
oder physischer Standort) einen oder mehrere der antwortenden Benutzerknoten
auswählen.
-
Bei
bevorzugten Ausführungsarten
werden außerdem
Antworten von Benutzerknoten, bei denen sich die Ressource befindet, über vorhandene
Verbindungen geleitet (zum Beispiel über die Verbindung, über welche
die Anforderung durch den Serverknoten geleitet worden ist), während eine
neue Peer-to-Peer-Verbindung
erst zur eigentlichen Übertragung
der Ressource eingerichtet wird. Sonst würde der Benutzerknoten, der
die Antworten empfängt, von
einer großen
Anzahl von Antworten überfordert, wenn
jeder antwortende Benutzerknoten eine neue Peer-to-Peer-Verbindung
einrichten würde.
Alternativ kann der Serverknoten zum Beantworten der Ressourcenanforderung
durch die Benutzerknoten einen passenden „Einmal"-Antwortkanal oder einen Dauerantwortkanal
einrichten. Das Ausgeben von Antworten über einen Dauerantwortkanal
könnte „passiven" Benutzerknoten das
Archivieren von möglicherweise interessanten
Antworten zur späteren
Verwendung ermöglichen.
-
Da
Ressourcenanforderungen nicht direkt zum Serverknoten, sondern über einen
oder mehrere andere Benutzerknoten weitergeleitet werden, wahrt die
dritte Ausführungsart
die Anonymität
der anfragenden Benutzerknoten. Der jeweilige Benutzerknoten, der
eine Ressource anfordert, bleibt dem Serverknoten gegenüber anonym,
sodass der Serverknoten nicht nachverfolgen kann, welche Benutzer
welche Ressourcen gemeinsam nutzen (oder auch nur anfordern). Ebenso
wie bei einem herkömmlichen
viralen Netzwerk sind bei der dritten Ausführungsart nur einem Benutzerknoten,
der die Ressource tatsächlich
zur Verfügung
stellt, die gemeinsame Nutzung der Ressource sowie die Identität des anfordernden Knotens
bekannt. Im Gegensatz zu einem herkömmlichen viralen Netzwerk ermöglicht bei
der dritten Ausführungsart
die Verwendung einer Ausgabe-/Reservierungsinfrastrukturschicht
zur Nachrichtenübermittlung
die wirksame Ressourcensuche in einem Netzwerk mit einer sehr großen Anzahl
von Benutzerknoten. Somit ermöglich
die vorliegende Erfindung die Skalierbarkeit in einem dezentralen
Netzwerk, während
die Anonymität
der Benutzer gleichzeitig in hohem Maße gewahrt bleibt.
-
Die
Ausführungsarten
der oben beschriebenen vorliegenden Erfindung erfordern einen Mechanismus
zur Erkennung einzelner Nachrichten. Bei bevorzugten Ausführungsarten
wird jeder Nachricht (d.h. einer Ressourcenanforderung oder Antwort) eine
eindeutige Kennungsnummer zugewiesen. Eine Ausführungsart verwendet zum Beispiel
einen von Microsoft Corporation entwickelten Algorithmus, mit dessen
Hilfe jeder Benutzerknoten für
sich global unverwechselbare Nachrichtenkennungen (Globally-Unique
Message Identifier, GUID) erzeugen kann, die mit hoher Wahrscheinlichkeit
wirklich nur einmal vorkommen. Außerdem muss jeder Benutzerknoten mindestens
eine begrenzte Vorgeschichte der weitergeleiteten Nachrichten speichern
(z.B. in Form einer Historientabelle), damit die Antworten (die
möglicherweise
auch die Ressource selbst enthalten können) den Benutzerknoten auf
demselben Pfad erreichen, über
welchen der Benutzerknoten eine Nachricht gesendet hatte. Ferner
beinhalten bestimmte Ausführungsarten
einen Mechanismus, der verhindert, dass eine Ressourcenanforderung
im Kreis herumgeschickt wird. Beispielsweise können die GUIDs und die Historientabelle
des Knotens einfach zum Einrichten eines solchen Mechanismus zum
Verhindern der Bildung einer solchen Schleife verwendet werden.
-
Während sich
die oben beschriebenen Ausführungsarten
der vorliegenden Erfindung auf einen einzigen Serverknoten beziehen,
können
im Netzwerk mehrere Ausgabe-/Reservierungsserverknoten bereitgestellt
werden, um die Verwundbarkeit von Punkten weiter zu verringern.
Ferner können
im Netzwerk mehrere Anbieter mit unterschiedlichen Serverknoten
tätig sein,
die um die Nutzung der Benutzerknoten konkurrieren. Außerdem können die Merkmale
der oben beschriebenen verschiedenen Ausführungsarten für weitere
Anwendungen miteinander kombiniert werden. Zum Beispiel beinhaltet eine
Ausführungsart
der vorliegenden Erfindung sowohl die Weiterleitung der Anforderung
nach dem Zufallsprinzip gemäß der dritten
Ausführungsart
als auch die kombinierte Weiterleitung/Ausgabe gemäß der zweiten
Ausführungsart.
Außerdem
können
auch andere konstruktive Lösungen
wie Netzwerkprotokolle, Weiterleitungskriterien und Mitgliedschaftskriterien
einfach eingeführt
werden.
-
Die
vorliegende Erfindung kann in Form von Hardware, Software oder einer
Kombination von Hardware und Software realisiert werden. Jegliches Computersystem
bzw. jegliche andere Vorrichtung zum Ausführen der oben beschriebenen
verfahren ist geeignet. Eine typische Kombination aus Hardware und
Software kann zum Beispiel ein Universalcomputersystem in Verbindung
mit einem Computerprogramm sein, das in das Computersystem geladen und
in ihm ausgeführt
wird und dieses so steuert, dass es die oben beschriebenen Verfahren
ausführt.
-
Die
vorliegende Erfindung kann auch in ein Computerprogrammprodukt eingefügt werden,
das alle Merkmale zur Realisierung der oben beschriebenen Verfahren
umfasst, in ein Computersystem geladen werden und diese Verfahren
ausführen
kann. Im vorliegenden Zusammenhand ist unter einem „Computerprogramm" jeder in einer beliebigen
Sprache oder Bezeichnungsweise oder einem beliebigen Code verfasst
Ausdruck eines Befehlssatzes zu verstehen, mit dessen Hilfe ein
zur Datenverarbeitung geeignetes System dazu veranlasst wird, eine
bestimmte Funktion entweder direkt oder nach einem oder beiden folgenden
Schritten auszuführen:
a) Umwandlung in eine andere Sprache oder Bezeichnungsweise oder
einen anderen Code; und b) Darstellung in einer anderen materiellen
Form.
-
Jedes
Computersystem kann einen oder mehrere Computer und ein computerlesbares
Medium beinhalten, von dem der Computer Daten, Befehle, Nachrichten
oder Nachrichtenpakete und andere computerlesbare Informationen
lesen kann. Das computerlesbare Medium kann z.B. ein nichtflüchtiger
Speicher wie beispielsweise ein ROM, ein Flash-Speicher, eine Festplatte
oder Diskette, ein CD-ROM oder ein anderer permanenter Speicher sein.
Außerdem
kann für
ein computerlesbares Medium ein flüchtiger Speicher wie beispielsweise
ein RAM, Pufferspeicher, ein Cachespeicher und Netzwerkschaltungen
verwendet werden. Außerdem kann
das computerlesbare Medium computerlesbare Informationen in einem
Medium mit Übergangszuständen wie
einer Netzwerkleitung und/oder einer Netzwerkschnittstelle (einschließlich einem
leitungsgebundenen oder einem drahtlosen Netzwerk) beinhalten, mit
dessen Hilfe ein Computer solche computerlesbaren Informationen
lesen kann.