DE60217666T2 - System und verfahren zum beantworten von ressourcenanforderungen in verteilten rechnernetzen - Google Patents

System und verfahren zum beantworten von ressourcenanforderungen in verteilten rechnernetzen Download PDF

Info

Publication number
DE60217666T2
DE60217666T2 DE60217666T DE60217666T DE60217666T2 DE 60217666 T2 DE60217666 T2 DE 60217666T2 DE 60217666 T DE60217666 T DE 60217666T DE 60217666 T DE60217666 T DE 60217666T DE 60217666 T2 DE60217666 T2 DE 60217666T2
Authority
DE
Germany
Prior art keywords
user node
node
user
response
requesting
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE60217666T
Other languages
English (en)
Other versions
DE60217666D1 (de
Inventor
Christopher Richard Arlington VINCENT
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE60217666D1 publication Critical patent/DE60217666D1/de
Application granted granted Critical
Publication of DE60217666T2 publication Critical patent/DE60217666T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0407Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the identity of one or more communicating identities is hidden
    • H04L63/0421Anonymous communication, i.e. the party's identifiers are hidden from the other party or parties, e.g. using an anonymizer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/102Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying security measure for e-commerce
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • H04L63/0838Network architectures or network communication protocols for network security for authentication of entities using passwords using one-time-passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Marketing (AREA)
  • Strategic Management (AREA)
  • Technology Law (AREA)
  • Development Economics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Economics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)
  • Multi Processors (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Mobile Radio Communication Systems (AREA)

Description

  • Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft Computernetze und insbesondere ein System und ein Verfahren zum Beantworten einer Ressourcenanforderung in einem verteilten Computernetz.
  • Grundlagen der Erfindung
  • Computernetze wie beispielsweise das Internet ermöglichen Benutzern die gemeinsame Nutzung von Ressourcen, zum Beispiel Dateien und Hardware. Die Ausdehnung des Internet und die Übernahme von Standards für das World Wide Web haben ein nahezu müheloses Anschauen und Herunterladen von Dateien durch einen Benutzer möglich gemacht. Der Benutzer muss keinerlei Programmiersprachen kennen. Durch einfaches Ausführen eines Internet-Browser muss der Benutzer zum Anschauen und Herunterladen gewünschter Dateien lediglich auf diese zeigen und sie anklicken. Die Verfügbarkeit solcher Programme ermöglicht eine problemlose Zusammenarbeit und eine gemeinsame Nutzung von Dateien zwischen gleich gesinnten Personen, die durch große Entfernungen voneinander getrennt sind, über ein verteiltes Computernetz, das buchstäblich den gesamten Globus umspannen kann.
  • Herkömmlicherweise wird ein verteiltes Computernetz mit einem Client/Server-Gerüst eingerichtet. Insbesondere ist jeder Benutzer ein Client, der über das Netz auf einen Serverknoten zugreifen kann und mit der ordnungsgemäßen Berechtigung Dateien im Serverknoten veröffentlichen kann. Sobald eine Datei im Serverknoten veröffentlicht worden ist, können andere Clients im Netz auf den Serverknoten zugreifen, um die Datei anzuschauen oder herunterzuladen. Außerdem kann der Serverknoten einem Client das automatische Übertragen einer Datei an einen anderen über das Netz erreichbaren Client ermöglichen. Der Client überträgt die Datei einfach zusammen mit Daten, die den gewünschten Empfänger kennzeichnen, an den Serverknoten, und der Serverknoten leitet die Datei weiter an den entsprechenden Client. Außerdem kann der Serverknoten verwendet werden, um den Clients die gemeinsame Nutzung von Hardwareressourcen, beispielsweise eines Druckers, zu ermöglichen.
  • Bei einem solchen Client/Server-Gerüst ist der Serverknoten für die Bereitstellung von Sicherheitsvorkehrungen verantwortlich. Beispielsweise muss der Serverknoten sicherstellen, dass nur berechtigte Clients die Netzressourcen (z.B. Dateien herunterzuladen) verwenden können und nur einwandfreie Dateien veröffentlicht werden. Außerdem stellt der Serverknoten eine einzelne Fehlerstelle (single point of failure) dar. Folglich muss der Serverknoten in jeder Client/Server-Umgebung, in der Zuverlässigkeit erforderlich ist, Industriestärke bereitstellen und redundante Systeme aufweisen, um das Herunterfahren des Systems und Datenverlust zu verhindern. Da alle Ressourcenübertragungen von Client zu Client über den Serverknoten laufen, stellt das Hinzufügen eines weiteren Client zum Netz außerdem eine zusätzliche Belastung für den Serverknoten dar und verschlechtert die Netzleistung.
  • In einem solchen Client/Server-Gerüst besteht für die Clients wenig Datenschutz. Normalerweise verlangt der Serverknoten eine Berechtigungsüberprüfung, bevor er einem Client den Zugriff auf Netzressourcen ermöglicht. Sobald der Client Berechtigungsnachweise (authentication credentials) bereitgestellt hat, kann der Serverknoten alle Netzaktivitäten des Client problemlos protokollieren. Beispielsweise könnte der Serverknoten ein Protokoll aller vom Client hoch- und heruntergeladenen Dateien aufbewahren. Selbst wenn der Zugriff durch unberechtigte Clients gestattet ist, kann der Serverknoten ein beliebiges von verschiedenen eindeutigen Identifizierungsverfahren verwenden, um die Clientaktivität im Lauf der Zeit zu verfolgen. Beispielsweise kann der Serverknoten ein eindeutiges Cookie im Client platzieren und dieses zu einem späteren Zeitpunkt bei jedem Zugriff des Client auf den Serverknoten zum Identifizieren des Client verwenden.
  • Eine Lösung für einige der Nachteile des herkömmlichen Client/Server-Gerüstes wird von einem „viralen" Netz bereitgestellt. In einem solchen Netz ist ein Benutzerknoten mit einem oder mehreren bekannten Hosts verbunden, die an einem virtuellen Netz mit hoher Verbindungsdichte beteiligt sind. Anschließend wird der Benutzerknoten selbst ein Hostknoten, der Anforderungen nach Ressourcen und verfügbaren Rosts beantworten kann. Jeder Benutzer im Netz leitet Ressourcenanforderungen an alle bekannten benachbarten Knoten weiter, so dass jede Anforderung möglicherweise durch das gesamte Netz geleitet wird. Beispielsweise verwendet das System Gnutella ein solches Gerüst eines viralen Netzes. Gnutella hat ein veröffentlichtes Netzprotokoll und stellt Benutzern eine Client/Server-Anwendung bereit (erhältlich unter http://gnutella.wego.com), die es jedem Benutzer ermöglicht, in einem Netz mit gemeinsamer Dateinutzung als Hostknoten zu agieren. Das System Gnutella kann zum sicheren Verteilen von kommerziellen Inhalten verwendet werden, die durch Verschlüsselung und Lizenzvergabe (licensing) geschützt sind.
  • Virale Netze beruhen auf einer nichthierarchischen Datenübertragung (peer-to-peer communication). In diesem nichthierarchischen Datenübertragungsmodell hat jeder Teilnehmer ähnliche Fähigkeiten und kann eine Datenaustauschsitzung einleiten. Beispielsweise verwendet die Gnutella-Anwendung einen nichthierarchischen Datenaustausch, um Benutzern das Austauschen von Dateien untereinander über das Internet zu ermöglichen. Das in einem viralen Netz verwendete nichthierarchische Modell beruht darauf, dass jeder Partner (d.h. Benutzerknoten) Kenntnis von mindestens einem der anderen Partner im Netz hat. Wenn nach einer Ressource wie beispielsweise einer Datei gesucht wird, überträgt ein Partner eine Ressourcenanforderung an andere bekannte Partner, die diese ihrerseits an ihre bekannten Partner weiterleiten und so weiter, um die Anforderung durch das Netz zu leiten. Ein Partner, der über die Ressource verfügt und die Anforderung empfängt, kann die Ressource (oder eine Nachricht, die deren Verfügbarkeit anzeigt) an den anfordernden Partner rückübertragen. Da ein solches Gerüst Unabhängigkeit von einer zentralen Netzautorität (network authority) (z.B. einem Serverknoten) bietet, haben Benutzer in einem viralen Netz einen besseren Datenschutz, und die einzelne Fehlerstelle fällt weg.
  • 1 zeigt ein beispielhaftes virales Netz. Jeder Knoten im Netz stellt einen Benutzer dar, der sowohl als Client als auch als Host agiert, und ist mit einem oder mehreren anderen Knoten verbunden. Wenn ein erster Knoten 210 eine bestimmte Ressource (z.B. eine Datei) wünscht, gibt er eine Anforderung an alle bekannten Knoten 202, 204, 206 und 208 aus, die ihrerseits das gleiche tun. Beispielsweise erreicht die Anforderung einen zweiten Knoten 212, indem sie nacheinander durch die Knoten 208, 216 und 218 geleitet worden ist. Falls der zweite Knoten 212 die anforderte Ressource hat, antwortet er durch das Übertragen einer entsprechenden Nachricht an den ersten Knoten 210 (z.B. zurück über denselben Pfad, über den die Anforderung geleitet wurde). Da ein Knoten identifiziert wurde, der über die anforderte Ressource verfügt, kann der erste Knoten 210 eine direkte nichthierarchische Verbindung mit dem zweiten Knoten 212 einleiten, um die Ressource herunterzuladen. Im gesamten viralen Netz kann eine beliebige Anzahl solcher Ressourcenanforderungen, Bestätigungen und Übertragungen gleichzeitig erfolgen.
  • Obwohl virale Netze einen besseren Datenschutz bieten und eine einzelne Fehlerstelle wegfällt, hat das Gerüst Nachteile in Bezug auf die Verfügbarkeit. In einem großen dezentralisierten viralen Netz wird ein leistungsfähiges Ausfindigmachen von Ressourcen unmöglich, wenn die Anzahl von teilnehmenden Knoten steigt. Insbesondere kann eine Ressourcenanforderung nur von Knoten zu Knoten geleitet werden, und jeder Knoten leitet die Anforderung lediglich an eine verhältnismäßig geringe Anzahl anderer Knoten weiter. Zur Steuerung des Netzverkehrs und zur Verhinderung von unmäßigen Antwortzeiten muss ein praktisches System eine „Lebensdauer" („time-to-live") oder eine Begrenzung der Anzahl von Malen, die eine Anforderung weitergeleitet werden kann (d.h. eine maximale Anzahl von Partnersprüngen), verwenden. Dies unterbricht in der Tat die Verbindung zweier beliebiger Knoten oder Gruppen von Knoten, die durch einen Pfad getrennt sind, der es erforderlich machen würde, dass eine Anforderung durch eine unverhältnismäßig hohe Anzahl von Zwischenknoten geleitet würde. Außerdem macht jede solche Begrenzung der Anforderungsweiterleitung es unmöglich, eine erschöpfende Suche nach einer Ressource auszuführen, da eine solche Suche die Weiterleitung der Anforderung an alle Knoten im Netz erforderlich machen würde.
  • Außerdem wurde vor kurzem eine inhaltsbasierte Publish/Subscribe-Infrastruktur zur Nachrichtenübermittlung (publish-subscribe messaging infrastructure) vorgeschlagen, die einen Datenflussgraphen (information flow graph) verwendet. Beispielsweise wurde das System Gryphon (unter http://www.research.ibm.com/gryphon beschrieben) vom Anmelder der vorliegenden Erfindung entwickelt. Dieses System stellt einen inhaltsbasierten Subskriptionsdienst (subscription service) bereit und führt eine Nachrichtenverteilung (message brokering) aus, indem die Merkmale von verteilten Publish/Subscribe-Datenübertragungen und Datenbanktechnologie vermischt werden. Im Kern des Gryphon-Systems befindet sich ein Datenflussgraph, der die selektive Lieferung von Ereignissen, die Umformung von Ereignissen und die Erzeugung neuer Ereignisse angibt.
  • 2 zeigt eine beispielhafte inhaltsbasierte Publish/Subscribe-Infrastruktur zur Nachrichtenübermittlung, die Datenflussgraphen verwendet. In diesem System werden aus zwei Datenquellen NYSE und NASDAQ abgeleitete Aktienhandelsgeschäfte verknüpft, umgeformt, gefiltert und teilnehmenden Clients zugestellt. Beispielsweise kann ein Benutzer 312 am Nachrichtenverteilungs-Server 302 teilnehmen und den Empfang aller Aktienhandelsgeschäfte sowohl der NYSE als auch der NASDAQ anfordern, die einen Wert von über einer Million Dollar haben. Der Nachrichtenverteiler 302 empfängt unbearbeitete Daten zum Aktienhandel, beispielsweise Preis und Menge, von der NYSE 324 und der NASDAQ 326.
  • Aufgrund der Datenanforderung des Benutzers 312 mischt der Server 302 die Aktienhandelsdaten aus den beiden Quellen, formt die unbearbeiteten Preis- und Mengendaten in Wertedaten für jedes Handelsgeschäft um und filtert anschließend die abgeleiteten Werte, um die Teilmenge von Handelsgeschäften zu erzeugen, die einen Wert von über einer Million Dollar haben. Auf ähnliche Weise gibt jeder teilnehmende Benutzer (z.B. die Knoten 304, 306 und 308) seine eigenen Kriterien an, und der Nachrichtenverteilungs- Server 302 führt die Datenauswahl, -filterung und -zustellung aus, um jeden Benutzer mit den angeforderten Daten zu versehen.
  • Obwohl die Publish/Subscribe-Infrastruktur zur Nachrichtenübermittlung von 2 eine gute Skalierbarkeit für ein Nachrichtenübermittlungssystem mit einer großen Anzahl von Benutzern bereitstellt, haben die Benutzer wie im herkömmlichen Client/Server-Gerüst wenig Datenschutz. Alle Benutzer müssen sich identifizieren, wenn sie am System teilnehmen, und alle Daten werden dem Benutzer durch den zentralen Server zugestellt. Folglich kann der zentrale Server problemlos ein Protokoll aller Benutzer des Systems und der genauen Daten verwalten, die jeder wünscht und empfängt. Der zentrale Nachrichtenverteilungs-Server stellt ebenfalls eine einzelne Fehlerstelle für das System dar.
  • BESCHREIBUNG DER ERFINDUNG
  • Eine Ausführungsform der vorliegenden Erfindung stellt ein Verfahren zum Beantworten einer Ressourcenanforderung von einem anfordernden Benutzerknoten in einem Netz von Benutzerknoten bereit. Gemäß dem Verfahren wird eine Antwort auf die Ressourcenanforderung in einem ersten Benutzerknoten des Netzes empfangen, und als willkürliche, von einem ersten Benutzerknoten getroffene Entscheidung wird festgelegt, ob die Antwort an den anfordernden Benutzerknoten rückübertragen wird. Wenn festgelegt wird, die Antwort nicht an den anfordernden Benutzerknoten rückzuübertragen, wird sie über eine direkte Verbindung an einen zweiten Benutzerknoten des Netzes weitergeleitet. Wenn festgelegt wird, die Antwort an den anfordernden Benutzerknoten rückzuübertragen, wird sie an diesen rückübertragen.
  • Eine andere Ausführungsform der vorliegenden Erfindung stellt einen Benutzerknoten zur Verwendung in einem Computernetz des Typs bereit, der Benutzerknoten beinhaltet, die über eine direkte Verbindung jeweils mit mindestens einem anderen Benutzerknoten verbunden sind. Der Benutzerknoten enthält eine Empfangsschnittstelle zum Empfangen einer Antwort auf eine Ressourcenanforderung von einem anfordernden Benutzerknoten, ein Steuermittel zum willkürlichen Entscheiden, ob die Antwort an den anfordernden Benutzerknoten rückübertragen wird, und mindestens eine Übertragungsschnittstelle zum selektiven Weiterleiten der Antwort an einen zweiten Benutzerknoten des Netzes über eine direkte Verbindung oder zum Rückübertragen der Antwort an den anfordernden Benutzerknoten. Die Übertragungsschnittstelle leitet die Antwort an den zweiten Benutzerknoten weiter, wenn das Steuermittel entscheidet, diese nicht an den anfordernden Knoten rückzuübertragen, und rücküberträgt die Antwort an den anfordernden Benutzerknoten, wenn das Steuermittel diese Entscheidung trifft. In einer bevorzugten Ausführungsform wählt das Steuermittel willkürlich einen der anderen Benutzerknoten des Netzes als den zweiten Benutzerknoten aus, an den die Antwort weitergeleitet wird.
  • Außerdem stellt die Erfindung ein maschinenlesbares Medium nach Anspruch 8 bereit.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Nun wird die Erfindung lediglich beispielhaft mit Bezugnahme auf die begleitenden Zeichnungen beschrieben, in denen:
  • 1 eine Darstellung eines beispielhaften viralen Netzes ist;
  • 2 eine Darstellung einer beispielhaften inhaltsbasierten Publish/Subscribe-Infrastruktur zur Nachrichtenübermittlung ist;
  • 3 eine Darstellung eines skalierbaren Netzgerüstes gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung ist;
  • 4 ein Flussdiagramm eines Prozesses zum Erhalten einer Ressource in einem skalierbaren Netzgerüst gemäß einer ersten Ausführungsform der vorliegenden Erfindung ist;
  • 5 ein Flussdiagramm eines Prozesses zum Erhalten einer Ressource in einem skalierbaren Netzgerüst gemäß einer zweiten Ausführungsform der vorliegenden Erfindung ist;
  • 6 ein Flussdiagramm eines Prozesses zum Erhalten einer Ressource in einem skalierbaren Netzgerüst gemäß einer dritten Ausführungsform der vorliegenden Erfindung ist;
  • 7 eine Darstellung eines skalierbaren Netzgerüstes ist, das eine beispielhafte Ausführung eines Teils des Prozesses von 6 zeigt;
  • 8 eine Darstellung eines skalierbaren Netzgerüstes ist, das eine beispielhafte Ausführung eines anderen Teils des Prozesses von 6 zeigt;
  • 9 ein Flussdiagramm eines Prozesses zum Bereitstellen einer angeforderten Ressource in einem skalierbaren Netzgerüst gemäß einer vierten Ausführungsform der vorliegenden Erfindung ist;
  • 10 eine Darstellung eines skalierbaren Netzgerüstes ist, das eine beispielhafte Ausführung eines Teils des Prozesses von 9 zeigt; und
  • 11 eine Darstellung eines skalierbaren Netzgerüstes ist, das eine alternative Ausführung eines Teils des Prozesses von 9 zeigt.
  • AUSFÜHRLICHE BESCHREIBUNG DER ERFINDUNG
  • 3 zeigt ein skalierbares Netzgerüst gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung. Wie gezeigt wird, beinhaltet das Gerüst einen Publish/Subscribe-Serverknoten 402 und mehrere Benutzerknoten (z.B. 404, 406 und 410). In Ausführungsformen der vorliegenden Erfindung kann der Serverknoten 402 von einem einzelnen Server oder einer „Serverwolke" realisiert werden, die aus einer beliebigen Anzahl von Servern besteht. Die einzelnen Server einer solchen Serverwolke können auf verschiedene Arten miteinander und mit dem Internet verbunden sein und auch durch große Entfernungen voneinander getrennt sein, so dass ein entsprechender Servicegrad (level of service) und vorteilhafte Merkmale bereitgestellt werden, beispielsweise Daten- und Pfadredundanz.
  • In diesem Gerüst geht ein Benutzerknoten 416 eine Verbindung mit dem Netz ein durch Kontaktieren des Publish/Subscribe-Serverknotens 402 und Abonnieren bestimmter Nachrichten„Kanäle". Außerdem fordert der die Verbindung eingehende Benutzerknoten 416 Verbindungen an und geht sodann eine direkte Verbindung mit mindestens einem anderen Benutzerknoten 410, 418 und 420 ein (z.B. aufgrund bestimmter Kriterien, beispielsweise der geographischen Position, der Verbindungsgeschwindigkeit oder gemeinsamer Interessen). Auf diese Weise sind alle Benutzerknoten im Netz zur Nachrichtenübermittlung mit dem zentralen Publish/Subscribe-Serverknoten (der Klarheit halber nicht gezeigt) und durch nichthierarchische Verbindungen miteinander verbunden, die ein dezentralisiertes Netz vom viralen Typ zur gemeinsamen Ressourcennutzung bilden.
  • 4 ist ein Flussdiagramm eines Prozesses zum Erhalten einer Ressource in einem solchen skalierbaren Netzgerüst gemäß einer ersten Ausführungsform der vorliegenden Erfindung. Jedes Mal, wenn ein erster Benutzerknoten 416 im Netz eine Ressource (z.B. eine Datei) wünscht, wird eine Ressourcenanforderung (oder -anfrage) an den Serverknoten 402 übertragen (Schritt S10), und der Serverknoten 402 veröffentlicht die Ressourcenanforderung, indem er sie an alle Benutzerknoten überträgt, die den Kanal abonnieren, der diesem Typ von Anforderung entspricht (Schritt S12). Ein zweiter Benutzerknoten 422, der die Anforderung empfängt und die Ressource bereitstellen möchte, kontaktiert den ersten Benutzerknoten 416 (Schritt S14), und der erste und der zweite Benutzerknoten 416 und 422 richten eine nichthierarchische Verbindung ein, um die angeforderte Ressource an den ersten Benutzerknoten 416 zu übertragen (Schritt S16). Auf diese Weise ermöglicht es die Schicht der Publish/Subscribe-Infrastruktur zur Nachrichtenübermittlung, dass eine Ressourcenanforderung Knoten erreicht, die vom anfordernden Knoten durch einen direkten Verbindungspfad getrennt sind, der eine sehr große Anzahl von Zwischenknoten beinhaltet.
  • Folglich wird in dem von der vorliegenden Erfindung bereitgestellten skalierbaren Netzgerüst ein leistungsfähiges Ausfindigmachen von Ressourcen bereitgestellt, wenn die Anzahl von Benutzerknoten im Netz steigt. Gleichzeitig werden die Ressourcen selbst nicht an den Server veröffentlicht, und die eigentliche gemeinsame Ressourcennutzung bezieht den Server nicht mit ein, so dass die Anforderungen an den Server geringer als im herkömmlichen Client/Server-Gerüst sind. Da jede Suchanforderung für alle Benutzerknoten veröffentlicht wird, die den entsprechenden Kanal abonniert haben, ist es außerdem möglich, in einem annehmbaren Zeitrahmen eine erschöpfende (oder zumindest sehr ausgedehnte) Suche nach der angeforderten Ressource in einem Netz auszuführen, das eine sehr hohe Anzahl von Benutzerknoten beinhaltet.
  • In bevorzugten Ausführungsformen unterstützt die Publish/Subscribe-Infrastruktur zur Nachrichtenübermittlung zwei Typen von „Kanälen" oder gemeinsam genutzten Datenströmen. Der erste Kanaltyp ist ein „Kanal zum Ausfindigmachen von Knoten" (node discovery channel), der zum Unterstützen des Ausfindigmachens anderer Benutzerknoten im dezentralisierten Netz verwendet wird. Um eine Verbindung mit dem Netz einzugehen, meldet ein Benutzerknoten sich selbst an unter Verwendung der Publish/Subscribe-Infrastruktur zur Nachrichtenübermittlung des Serverknotens. Insbesondere wird eine Verbindungsankündigung (join announcement) vom neuen Benutzerknoten über den Serverknoten an einen oder mehrere der Kanäle zum Ausfindigmachen von Knoten geleitet, um Verbindungen von anderen Benutzerknoten anzufordern. Folglich fungiert die Publish/Subscribe-Infrastruktur als eine Universaltransportschicht (wie eine Schicht über IP), die Verbindungen mit anderen Benutzerknoten einrichtet, um die Rundsendung von Verbindungsankündigungen auszuführen.
  • Solche Verbindungsankündigungen können auf der Grundlage bestimmter Kategorien, beispielsweise der geographischen Position, der Netzverbindungsgeschwindigkeit, der Typen verfügbarer Ressourcen und/oder gemeinsamer Interessen, unter einzelnen Kanälen zum Ausfindigmachen von Knoten aufgeteilt werden. Folglich kann der neue Benutzerknoten ferne Benutzerknoten (sowohl geographisch als auch in Bezug auf Netzsprünge) ausfindig machen, und bei Eingehen einer Verbindung Knoten mit dem gewünschten Ressourcentyp oder annehmbaren Verbindungsattributen bevorzugen. Da jede Verbindungsankündigung lediglich an die Benutzerknoten übertragen wird, die bestimmte Kanäle abonniert haben, werden die Benutzerknoten eines sehr großen Netzes nicht ständig mit Verbindungsankündigungen überhäuft.
  • Der zweite Kanaltyp ist ein „Ressourcenanforderungskanal", der zum Optimieren der Veröffentlichung von Ressourcenanforderungen verwendet wird. Wie oben erläutert wurde, veröffentlicht der Serverknoten jede Ressourcenanforderung, indem er sie an alle Benutzerknoten überträgt, die einen bestimmten Kanal (oder bestimmte Kanäle) abonniert haben. Diese Ressourcenanforderungskanäle können in eine umfangreiche Taxonomie von Ressourcentypen unterteilt werden, um den Benutzerknoten eine wirksame Ausfilterung unerwünschter Anforderungen zu ermöglichen. Anstatt jeden Benutzerknoten im Netz zu erreichen, macht die Verwendung von Ressourcenanforderungskanälen es außerdem möglich, dass eine Ressourcenanforderung nur eine entsprechende Teilgruppe von Benutzerknoten erreicht (d.h. jene, die den/die entsprechenden Kanal/Kanäle abonniert haben).
  • Folglich wird ein Benutzerknoten, der lediglich technische Dokumentationen gemeinsam nutzen möchte, nicht mit Anforderungen nach Multimediainhalten bombardiert. In Abhängigkeit von der Anwendung können der Benutzerknoten und/oder der Serverknoten den oder die Kanäle festlegen, auf denen eine einzelne Ankündigung oder Ressourcenanforderung veröffentlicht wird. In bevorzugten Ausführungsformen besteht ein Kanal lediglich aufgrund der Veröffentlichung durch einen Benutzerknoten. Folglich kann jeder Benutzerknoten einen neuen Ressourcenkanal erzeugen und anschließend dessen Verfügbarkeit zum Abonnement auf eine beliebige herkömmliche Weise unterstützen (z.B. durch eine Web-Site, ein Diskussionsforum (newsgroup), das Fernsehen oder durch direkte Postwerbesendungen).
  • 5 ist ein Flussdiagramm eines Prozesses zum Erhalten einer Ressource in einem skalierbaren Netzgerüst gemäß einer zweiten Ausführungsform der vorliegenden Erfindung. Jedes Mal, wenn ein erster Benutzerknoten 416 im Netz eine Ressource (z.B. eine Datei) wünscht, wird eine Ressourcenanforderung an den Serverknoten 402 übertragen (Schritt S10), und der Serverknoten 402 veröffentlicht die Ressourcenanforderung, indem er sie an alle Benutzerknoten überträgt, die den Kanal abonniert haben, der diesem Typ von Anforderung entspricht (Schritt S12). In der zweiten Ausführungsform überträgt der erste Knoten 416 die Ressourcenanforderung außerdem an alle Benutzerknoten 410, 418 und 420, mit denen er im dezentralisierten Netz verbunden ist.
  • Dieser Prozess wird wiederholt, wobei jeder Benutzerknoten, der die Anforderung empfängt, diese an die mit ihm verbundenen Benutzerknoten leitet, so dass die Anforderung durch die Benutzerknoten des dezentralisierten Netzes geleitet wird (Schritt S11). Beispielsweise erreicht die Anforderung einen zweiten Benutzerknoten 404, indem sie nacheinander durch die Knoten 410 und 414 geleitet worden ist. In einigen Ausführungsformen überträgt jeder Benutzerknoten, der die Ressourcenanforderung vom Serverknoten (z.B. dem Benutzerknoten 422) empfängt, diese außerdem an alle Benutzerknoten, mit denen er im dezentralisierten Netz verbunden ist. Falls der zweite Benutzerknoten 404 die Anforderung empfängt (entweder durch Weiterleitung von einem Benutzerknoten oder vom Serverknoten) und bereit ist, die Ressource bereitzustellen, kontaktiert er den ersten Benutzerknoten 416 (Schritt S14), und es wird eine nichthierarchische Verbindung eingerichtet, um die angeforderte Ressource gemeinsam zu nutzen (Schritt S16).
  • In der zweiten Ausführungsform werden Ressourcenanforderungen folglich sowohl durch die Schicht der Nachrichtenübermittlungsinfrastruktur (wie in der ersten Ausführungsform) als auch durch Weiterleitung durch die Benutzerknoten im dezentralisierten Netz veröffentlicht. Da dieser Prozess mit doppeltem Pfad (dual path process) eine Alternative zu dem über den zentralen Serverknoten laufenden Anforderungsweiterleitungspfad bietet, gibt es keine einzelne Fehlerstelle mehr. Mit anderen Worten, die Ressourcenanforderung wird selbst dann an andere Benutzerknoten geleitet, wenn der Serverknoten nicht erreichbar ist. In der zweiten Ausführungsform ist es außerdem nicht nötig, dass alle Benutzerknoten mit der Publish/Subscribe-Infrastruktur verbunden sind oder auch nur Kenntnis von deren Vorhandensein haben. Ein solcher Benutzerknoten kann lediglich Ressourcenanforderungen an alle mit ihm verbundenen Benutzerknoten weiterleiten. Dieses Merkmal ermöglicht eine Realisierung der zweiten Ausführungsform in einem vorhandenen Netz, ohne dass eine Änderung aller Benutzerknoten notwendig wird.
  • 6 ist ein Flussdiagramm eines Prozesses zum Erhalten einer Ressource in einem solchen skalierbaren Netzgerüst gemäß einer dritten Ausführungsform der vorliegenden Erfindung. In dieser Ausführungsform werden Ressourcenanforderungen nicht direkt an den Serverknoten übertragen, um dem anfordernden Benutzerknoten einen besseren Datenschutz zu bieten. Jedes Mal, wenn in der dritten Ausführungsform eine Ressource (z.B. eine Datei) gewünscht wird, überträgt der anfordernde erste Benutzerknoten 410 eine Ressourcenanforderung an einen zweiten Benutzerknoten 414, mit dem er im dezentralisierten Netz verbunden ist (Schritt S20), wie durch die gestrichelten Pfeile in 7 gezeigt wird. Der zweite Benutzerknoten 414 legt sodann fest, ob die Anforderung an den Publish/Subscribe-Serverknoten 402 oder an einen anderen Benutzerknoten übertragen wird, mit dem er im dezentralisierten Netz verbunden ist (Schritt S22). Vorzugsweise sind alle Benutzerknoten zur Nachrichtenübermittlung mit dem zentralen Publish/Subscribe-Serverknoten verbunden (der Klarheit halber nicht gezeigt).
  • Falls gegen eine Übertragung an den Serverknoten 402 entschieden wird, leitet der zweite Benutzerknoten 414 die Ressourcenanforderung an einen anderen mit ihm verbundenen Benutzerknoten 420 weiter (Schritt S20), wie in 7 gezeigt wird. Dieser Weiterleitungsprozess wird wiederholt, wobei jeder die Ressourcenanforderung empfangende Benutzerknoten dieselbe Entscheidung ausführt (Schritt S22). Wenn ein dritter Benutzerknoten 416 sich für eine Übertragung an den Serverknoten 402 entscheidet, wird die Ressourcenanforderung an den Serverknoten 402 übertragen (Schritt S24), und dieser veröffentlicht die Ressourcenanforderung, indem er sie an alle Benutzerknoten überträgt, die den Kanal abonniert haben, der diesem Typ von Anforderung entspricht (Schritt S26).
  • In bevorzugten Ausführungsformen ist jede Entscheidung, ob die Anforderung an den Publish/Subscribe-Serverknoten übertragen wird, eine „willkürliche" Entscheidung, die vom Benutzerknoten auf der Grundlage eines Bewertungsfaktors zwischen 0 und 1 getroffen wird, der die Wahrscheinlichkeit angibt, dass die Anforderung an den Serverknoten übertragen wird. Falls der Bewertungsfaktor beispielsweise 0,25 ist, besteht eine 25 %ige Wahrscheinlichkeit, dass der Benutzerknoten die Anforderung an den Serverknoten überträgt, und eine 75 %ige Wahrscheinlichkeit, dass die Anforderung an einen anderen Benutzerknoten weitergeleitet wird. Folglich muss ein Bewertungsfaktor von 0,25 bewirken, dass Ressourcenanforderungen durchschnittlich dreimal an andere Benutzerknoten weitergeleitet werden, bevor sie an den Publish/Subscribe-Serverknoten übertragen werden. Der Wert des Bewertungsfaktors wird auf der Grundlage von Faktoren wie beispielsweise dem gewünschten Grad an Datenschutz eingestellt. Außerdem kann der Bewertungsfaktor ein feststehender Wert sein, der im gesamten Netz verwendet wird, oder kann von den Benutzerknoten Nachricht für Nachricht (on a per message basis) eingestellt werden. Andere Kriterien, beispielsweise eine maximale Anzahl von Weiterleitungen oder eine maximal vergangene Zeit, können ebenfalls in die Entscheidung einbezogen werden, die von jedem die Anforderung empfangenden Benutzerknoten getroffen wird.
  • In weiteren Ausführungsformen wird die Entscheidung, ob die Anforderung an den Publish/Subscribe-Serverknoten übertragen wird, auf der Grundlage anderer Kriterien getroffen, beispielsweise einer feststehenden Anzahl von Weiterleitungen. In einer Ausführungsform wird jede Ressourcenanforderung beispielsweise stets durch drei Benutzerknoten weitergeleitet und anschließend an den Publish/Subscribe-Serverknoten übertragen. Jedes Mal, wenn eine Ressourcenanforderung an einen anderen Benutzerknoten weitergeleitet werden muss, erfolgt die Wahl, welcher andere Benutzerknoten die weitergeleitete Anforderung empfängt, vorzugsweise durch eine willkürliche Auswahl eines der Benutzerknoten, mit denen der weiterleitende Benutzerknoten verbunden ist.
  • Nachdem die Ressourcenanforderung vom Serverknoten 402 veröffentlicht wurde, kontaktiert ein vierter Benutzerknoten 422, der die Anforderung empfängt und die Ressource bereitstellen möchte, den ersten Benutzerknoten 410. Wie in 8 gezeigt wird, überträgt der vierte Benutzerknoten 422 insbesondere eine Antwort an den dritten Benutzerknoten 416 (Schritt S28), der die Ressourcenanforderung zur Veröffentlichung an den Serverknoten 402 übertragen hatte. Der dritte Benutzerknoten 416 leitet die Antwort den Benutzerknoten 420 weiter, von dem er die Ressourcenanforderung empfing, und dieser Weiterleitungsprozess wird wiederholt, bis die Antwort den ersten Benutzerknoten 410 erreicht (Schritt S30). An diesem Punkt kann der erste Benutzerknoten 410 den vierten Benutzerknoten 422 kontaktieren, um eine direkte nichthierarchische Verbindung zur gemeinsamen Nutzung der angeforderten Ressource einzurichten (Schritt S32).
  • In bevorzugten Ausführungsformen enthält die Antwort von dem die Ressource aufweisenden Benutzerknoten Metadaten bezüglich der Ressourcenübereinstimmung. Wenn die Antwort empfangen wird, wertet der anfordernde Benutzerknoten die Metadaten aus und entscheidet sodann, ob er eine direkte Verbindung mit dem antwortenden Knoten einrichtet, um die Ressource selbst zu nutzen (z.B. die angeforderte Datei herunterzuladen). Falls mehrere Antworten empfangen werden, kann der anfordernde Benutzerknoten die Metadaten in jeder Antwort auswerten und anschließend einen oder mehrere der antwortenden Benutzerknoten auf der Grundlage beliebiger Kriterien (z.B. vergangener Erfahrung, Empfangsreihenfolge, Verbindungsgeschwindigkeit oder physische Position) auswählen.
  • Außerdem werden in bevorzugten Ausführungsformen Antworten von Benutzerknoten, die die Ressource aufweisen, über bestehende Verbindungen geleitet (beispielsweise diejenige, über die die Anforderung durch den Serverknoten geleitet wurde), und eine neue Punkt-zu-Punkt-Verbindung wird lediglich zur tatsächlichen Übertragung der Ressource eingerichtet. Wenn andernfalls jeder antwortende Benutzerknoten eine neue Punkt-zu-Punkt-Verbindung einleiten würde, könnte der die Antworten empfangene Benutzerknoten bei jedem Empfang einer großen Anzahl von Antworten überlastet werden. Alternativ könnte der Serverknoten einen übereinstimmenden „einmaligen" Antwortkanal oder einen dauerhaften Antwortkanal einrichten, der von Benutzerknoten verwendet werden könnte, die die Ressourcenanforderung beantworten. Die Veröffentlichung von Antworten über einen dauerhaften Antwortkanal würde „passive" Benutzerknoten ermöglichen, die Antworten von möglichem Interesse für eine künftige Verwendung archivieren.
  • Da Ressourcenanforderungen anstelle einer direkten Übertragung an den Serverknoten durch einen oder mehrere Benutzerknoten weitergeleitet werden, bietet die dritte Ausführungsform Datenschutz für die anfordernden Benutzerknoten. Der eigentliche eine Ressource anfordernde Benutzerknoten bleibt für den Serverknoten anonym, folglich kann der Serverknoten nicht verfolgen, welche Benutzer welche Ressourcen gemeinsam nutzen (oder auch nur anfordern). Wie in einem herkömmlichen viralen Netz hat in der dritten Ausführungsform nur ein Benutzerknoten, der die Ressource tatsächlich bereitstellt, Kenntnis von der gemeinsamen Nutzung der Ressource und der Identität des anfordernden Knotens. Im Gegensatz zu einem herkömmlichen viralen Netz ermöglicht die Verwendung einer Publish/Subscribe-Infrastrukturschicht zur Nachrichtenübermittlung in der dritten Ausführungsform ein leistungsfähiges Ausfindigmachen von Ressourcen in einem Netz mit einer sehr hohen Anzahl von Benutzerknoten. Folglich ermöglicht die vorliegende Erfindung eine Skalierbarkeit, die in einem dezentralisierten Netz ausgeführt werden kann, während ein besserer Benutzerdatenschutz aufrechterhalten wird.
  • 9 ist ein Flussdiagramm eines Prozesses zur Bereitstellung einer angeforderten Ressource in einem skalierbaren Netzgerüst gemäß einer vierten Ausführungsform der vorliegenden Erfindung. In dieser Ausführungsform werden Antworten auf Ressourcenanforderungen nicht direkt an den anfordernden Benutzerknoten zurückgeleitet, um diesem einen besseren Datenschutz zu gewährleisten. Jedes Mal, wenn eine Ressource (z.B. eine Datei) gewünscht wird, überträgt der anfordernde erste Benutzerknoten 410 eine Ressourcenanforderung an einen zweiten Benutzerknoten 414, mit dem er im dezentralisierten Netz verbunden ist (Schritt S20), wie durch die gestrichelten Pfeile in 7 gezeigt wird. Wie in der dritten Ausführungsform legt der zweite Benutzerknoten 414 sodann fest, ob er die Anforderung an den Publish/Subscribe-Serverknoten 402 oder an einen anderen Benutzerknoten überträgt, mit dem er im dezentralisierten Netz verbunden ist (Schritt S22).
  • Falls gegen eine Übertragung an den Serverknoten 402 entschieden wird, leitet der zweite Benutzerknoten 414 die Ressourcenanforderung an einen anderen Benutzerknoten 420 weiter, mit dem er verbunden ist (Schritt S20), wie in 7 gezeigt wird. Dieser Weiterleitungsprozess wird wiederholt, wobei jeder Benutzerknoten, der die Ressourcenanforderung empfängt, dieselbe Entscheidung ausführt (Schritt S22). Wenn ein dritter Benutzerknoten 416 sich für eine Übertragung an den Serverknoten 402 entscheidet, wird die Ressourcenanforderung an den Serverknoten 402 übertragen (Schritt S24), und der Serverknoten 402 veröffentlicht die Ressourcenanforderung, indem er sie an alle Benutzerknoten überträgt, die den Kanal abonniert haben, der diesem Typ von Anforderung entspricht (Schritt S26).
  • Nachdem die Ressourcenanforderung vom Serverknoten 402 veröffentlicht worden ist, bereitet ein vierter Benutzerknoten 422, der die Anforderung empfängt und die Ressource bereitstellen möchte, eine Antwort vor. Wie oben erläutert wurde, wird die Antwort vom vierten Benutzerknoten 422 in dieser Ausführungsform nicht direkt rückübertragen. Stattdessen überträgt der vierte Benutzerknoten 422 die Antwort an einen fünften Benutzerknoten 426, mit dem er im dezentralisierten Netz verbunden ist (Schritt S40), wie durch die gestrichelten Pfeile in 10 gezeigt wird. Ähnlich wie beim Prozess zum Weiterleiten der Ressourcenanforderung legt der fünfte Benutzerknoten 426 fest, ob die Antwort an den anfordernden Benutzerknoten 410 oder an einen anderen Benutzerknoten übertragen wird, mit dem er im dezentralisierten Netz verbunden ist (Schritt S42).
  • Falls gegen eine Übertragung an den anfordernden Benutzerknoten 410 entschieden wird, leitet der fünfte Benutzerknoten 426 die Antwort an einen anderen Benutzerknoten 428 weiter, mit dem er verbunden ist (Schritt S40), wie in 10 gezeigt wird. Dieser Weiterleitungsprozess wird wiederholt, wobei jeder Benutzerknoten, der die Antwort empfängt, dieselbe Entscheidung ausführt (Schritt S42). Wenn ein sechster Benutzerknoten 424 entscheidet, die Antwort an den anfordernden Benutzerknoten 410 zu übertragen, wird die Antwort an diesen zurück geleitet (Schritt S44). Insbesondere in der in 10 gezeigten beispielhaften Ausführungsform überträgt der sechste Benutzerknoten 424 die Antwort direkt an den dritten Benutzerknoten 416, der die Ressourcenanforderung zur Veröffentlichung an den Serverknoten 402 übertragen hatte.
  • In einer in 11 gezeigten alternativen Ausführungsform überträgt der sechste Benutzerknoten 424 die Antwort über den Serverknoten 402 an den dritten Benutzerknoten 416. Obwohl die Quelle der Antwort noch anonym gehalten wird, ermöglicht diese alternative Ausführungsform es dem Server, Kenntnis über Antworten im Allgemeinen zu erlangen. In jedem Fall leitet der dritte Benutzerknoten 416 die Antwort sodann zurück an den Benutzerknoten 420, von dem er die Ressourcenanforderung empfing, und dieser Weiterleitungsprozess wird wiederholt, bis die Antwort den ersten Benutzerknoten 410 erreicht, der die ursprüngliche Anforderung ausgeführt hatte.
  • In bevorzugten Ausführungsformen enthält die Antwort von dem die Ressource aufweisenden Benutzerknoten die tatsächliche Ressource selbst (z.B. die angeforderte Datei). Wenn die Antwort den anfordernden Benutzerknoten erreicht, ist die Ressource folglich sofort verfügbar, und es besteht keine Notwendigkeit für weitere Maßnahmen zum gemeinsamen Nutzen der Ressource. Außerdem wird dadurch für den antwortenden Knoten ein hoher Grad an Anonymität bereitgestellt. In weiteren Ausführungsformen enthält die Antwort Metadaten bezüglich der Ressourcenübereinstimmung. Wenn die Antwort empfangen wird, wertet der anfordernde Benutzerknoten die Metadaten aus und entscheidet sodann, ob er die Ressource selbst vom antwortenden Benutzerknoten abruft. In solchen Ausführungsformen kann die Ressource auf vielfältige Art und Weise vom antwortenden Benutzerknoten abgerufen werden.
  • Beispielsweise könnte der anfordernde Benutzerknoten 410 eine Zustimmung an den antwortenden Benutzerknoten 422 rückübertragen, wobei eine direkte Verbindung mit dem sechsten Benutzerknoten 424 verwendet wird, der die Antwort zur Rückübertragung an den anfordernden Benutzerknoten 410 an den dritten Benutzerknoten 416 übertragen hatte. Alternativ könnte der anfordernde Benutzerknoten 410 die Zustimmung über denselben Pfad, über den die Antwort übertragen wurde, zurück an den antwortenden Benutzerknoten 422 leiten (d.h. über die Knoten 414, 420, 416, 424, 428 und 426). Für einen besseren Datenschutz könnte der anfordernde Benutzerknoten 410 außerdem erneut den indirekten Weiterleitungsprozess verwenden, so dass die Zustimmung durch einen oder mehrere andere Benutzerknoten weitergeleitet wird, bevor sie zur Rückleitung an den antwortenden Benutzerknoten 422 an den sechsten Benutzerknoten 424 übertragen wird. Wenn die Zustimmung empfangen wird, hat der antwortende Benutzerknoten 422 einen analogen Satz von Antwortalternativen, die zum Rückübertragen der eigentlichen Ressource an den anfordernden Benutzerknoten 410 verwendet werden können.
  • In einer weiteren Ausführungsform nimmt der anfordernde Benutzerknoten einen „einmaligen" öffentlichen Schlüssel in die Ressourcenanforderung auf, und der antwortende Benutzerknoten verschlüsselt die Antwort, so dass sie nur vom anfordernden Benutzerknoten gelesen werden kann. Folglich kann der antwortende Benutzerknoten sich selbst in der Antwort identifizieren und bleibt dennoch für alle außer dem anfordernden Benutzerknoten anonym. Außerdem ermöglicht diese Ausführungsform es dem anfordernden Benutzerknoten, den antwortenden Knoten direkt zu kontaktieren, um eine nichthierarchische Verbindung zum gemeinsamen Nutzen der angeforderten Ressource einzurichten.
  • Wie bei Ressourcenanforderungen werden Antworten vorzugsweise über vorhandene Verbindungen oder einen übereinstimmenden Antwortkanal geleitet, um zu verhindern, dass ein Benutzerknoten bei jedem Empfang einer großen Anzahl von Antworten überlastet wird. Ebenso ist jede Festlegung, ob die Antwort an den anfordernden Benutzerknoten rückübertragen wird, vorzugsweise eine „willkürliche" Entscheidung, die vom Benutzerknoten auf der Grundlage eines Bewertungsfaktors getroffen wird, der die Wahrscheinlichkeit darstellt, dass die Anforderung an den anfordernden Benutzerknoten rückübertragen wird. Es können jedoch auch andere Kriterien (beispielsweise eine maximale Anzahl von Weiterleitungen oder eine maximal verstrichene Zeit) in die vom Benutzerknoten getroffene Entscheidung aufgenommen werden, oder die Entscheidung kann lediglich auf einigen anderen Kriterien beruhen (beispielsweise einer feststehenden Anzahl von Weiterleitungen). Jedes Mal, wenn eine Antwort an einen anderen Benutzerknoten weitergeleitet werden muss, wird die Wahl, welcher andere Benutzerknoten die weitergeleitete Antwort empfängt, außerdem vorzugsweise durch eine willkürliche Auswahl eines der Benutzerknoten getroffen, mit denen der weiterleitende Benutzerknoten verbunden ist.
  • Da Antworten anstelle einer direkten Rückübertragung an den anfordernden Benutzerknoten durch einen oder mehrere andere Benutzerknoten weitergeleitet werden, bietet die vierte Ausführungsform Datenschutz für antwortende Benutzerknoten. Der eigentliche Benutzerknoten, der die Ressource bereitstellt (oder bereitstellen möchte), bleibt für den anfordernden Benutzerknoten und den Serverknoten anonym. Folglich können weder der anfordernde Benutzerknoten noch der Serverknoten verfolgen, welche Benutzer welche Ressourcen bereitstellen (oder auch nur besitzen). In der Tat ist es bei der vierten Ausführungsform möglich zu verhindern, dass der antwortende Knoten die Identität des anfordernden Knotens kennt und umgekehrt. Im Gegensatz zu einem herkömmlichen viralen Netz ermöglicht die Verwendung einer Publish/Subscribe-Infrastruktur zur Nachrichtenübermittlung in der vierten Ausführungsform außerdem ein leistungsfähiges Ausfindigmachen von Ressourcen in einem Netz mit einer sehr großen Anzahl von Benutzerknoten. Folglich ermöglicht die vorliegende Erfindung die Skalierbarkeit in einem dezentralisierten Netz, wobei ein besserer Benutzerdatenschutz aufrechterhalten wird.
  • Die oben beschriebenen Ausführungsformen der vorliegenden Erfindung benötigen einen Mechanismus zum Kennzeichnen einzelner Nachrichten. In bevorzugten Ausführungsformen wird jeder Nachricht (d.h. Ressourcenanforderung oder Antwort) eine eindeutige Kennung zugewiesen. Eine Ausführungsform verwendet beispielsweise einen von Microsoft Corporation entwickelten Algorithmus, der es jedem Benutzerknoten ermöglicht, jeweils global eindeutige Nachrichtenbezeichner (global-unique message identifiers – GUIDs) zu erzeugen, die mit hoher Wahrscheinlichkeit global eindeutig sind. Außerdem muss jeder Benutzerknoten mindestens ein begrenztes Protokoll von weitergeleiteten Nachrichten speichern (z.B. in einer Tabelle), um es zu ermöglichen, dass Antworten (die möglicherweise die Ressource selbst enthalten) den Benutzerknoten erreichen, der eine Nachricht über denselben Pfad übertrug. Außerdem enthalten einige Ausführungsformen einen Mechanismus, um eine Endlosübertragung (looping) einer Ressourcenanforderung zu verhindern. Beispielsweise können global eindeutige Nachrichtenbezeichner (GUIDs) und Knotenprotokolltabellen problemlos verwendet werden, um einen Anti-Schleifenbildungsmechanismus (anti-looping mechanism) zu erzeugen.
  • Obwohl die oben beschriebenen Ausführungsformen der vorliegenden Erfindung einen einzelnen Serverknoten betreffen, können mehrere Publish/Subscribe-Serverknoten im Netz bereitgestellt werden, um „Fehlerstellen" auf ein Minimum herabzusetzen. Außerdem können konkurrierende Anbieter nebeneinander im Netz auftreten, indem sie verschiedene Serverknoten betreiben und um Abonnements durch Benutzerknoten konkurrieren. Außerdem können die Merkmale der verschiedenen oben beschriebenen Ausführungsformen für weitere Anwendungen kombiniert werden. Beispielsweise beinhaltet eine Ausführungsform der vorliegenden Erfindung sowohl die willkürliche Antwortweiterleitung der vierten Ausführungsform als auch die willkürliche Weiterleitung/Veröffentlichung der zweiten Ausführungsform. Andere Gestaltungsmöglichkeiten, beispielsweise Netzprotokolle, Weiterleitungskriterien und Zugehörigkeitskriterien (membership criteria) könnten problemlos angepasst werden.
  • Die vorliegende Erfindung kann in Form von Hardware, Software oder einer Kombination aus Hard- und Software realisiert werden. Jede Art von Computersystem – oder eine andere Vorrichtung, die zum Ausführen der hierin beschriebenen Verfahren in der Lage ist – ist geeignet. Eine typische Kombination aus Hardware und Software könnte ein Universalcomputersystem mit einem Computerprogramm sein, das, wenn es geladen und ausgeführt wird, das Computersystem so steuert, dass es die hierin beschriebenen Verfahren ausführt.
  • Außerdem kann die vorliegende Erfindung in einem Computerprogrammprodukt ausgeführt werden, das alle Merkmale umfasst, die die Ausführung der hierin beschriebenen Verfahren ermöglichen, und das – wenn es in ein Computersystem geladen wird – diese Verfahren ausführen kann. Im vorliegenden Zusammenhang enthält ein „Computerprogramm" einen beliebigen Ausdruck in einer beliebigen Sprache, einem beliebigen Code oder einer beliebigen Schreibweise eines Satzes von Befehlen, die dafür vorgesehen sind, ein System mit einer Datenverarbeitungsfähigkeit zu veranlassen, eine bestimmte Funktion direkt oder nach einem oder beiden von folgenden Vorgängen auszuführen: a) einer Umsetzung in eine andere Sprache, einen anderen Code oder eine andere Schreibweise; und b) einer Wiedergabe in einer anderen materiellen Form.
  • Zu jedem Computersystem können ein oder mehrere Computer und ein computerlesbares Medium gehören, das dem Computer das Lesen von Daten, Befehlen, Nachrichten oder Nachrichtenpaketen und anderen computerlesbaren Daten aus dem computerlesbaren Medium ermöglicht. Zu dem computerlesbaren Medium kann ein nichtflüchtiger Speicher, beispielsweise ein ROM, ein Flash-Speicher, eine Festplatte oder Diskette, eine CD-ROM oder ein anderer nichtflüchtiger Speicher gehören. Außerdem können zu einem computerlesbaren Medium ein flüchtiger Speicher wie beispielsweise ein RAM, Puffer, ein Cachespeicher und Netzschaltungen gehören. Außerdem kann das computerlesbare Medium computerlesbare Daten in einem vorübergehend genutzten Medium beinhalten, beispielsweise in einer Netzverbindung und/oder einer Netzschnittstelle (darunter ein verkabeltes Netz oder ein kabelloses Netz), das einem Computer das Lesen solcher computerlesbaren Daten ermöglicht.

Claims (17)

  1. Verfahren zum Beantworten einer Ressourcenanforderung von einem anfordernden Benutzerknoten in einem Netz von Benutzerknoten, wobei das Verfahren die folgenden Schritte umfasst: Empfangen einer Antwort auf die Ressourcenanforderung in einem ersten Benutzerknoten des Netzes; Entscheiden, ob die Antwort an den anfordernden Benutzerknoten rückübertragen wird, als eine willkürliche von einem ersten Benutzerknoten getroffene Entscheidung; Weiterleiten der Antwort an einen zweiten Benutzerknoten des Netzes über eine direkte Verbindung, wenn entschieden wurde, die Antwort nicht an den anfordernden Benutzerknoten rückzuübertragen; und Rückübertragen der Antwort an den anfordernden Benutzerknoten, wenn entschieden wurde, die Antwort an den anfordernden Benutzerknoten rückzuübertragen.
  2. Verfahren nach Anspruch 1, wobei die willkürliche Entscheidung im Entscheidungsschritt auf der Grundlage eines Bewertungsfaktors getroffen wird, der der Wahrscheinlichkeit entspricht, dass der erste Benutzerknoten entscheidet, die Antwort an den anfordernden Benutzerknoten rückzuübertragen.
  3. Verfahren nach Anspruch 1, wobei der Schritt des Weiterleitens die folgenden Teilschritte enthält: willkürliches Auswählen eines der Benutzerknoten, mit denen der erste Benutzerknoten verbunden ist, als zweiten Benutzerknoten; und Weiterleiten der Antwort vom ersten Benutzerknoten an den zweiten Benutzerknoten über eine direkte Verbindung.
  4. Verfahren nach Anspruch 1, wobei der Schritt des Rückübertragens der Antwort an den anfordernden Benutzerknoten die folgenden Teilschritte beinhaltet: direktes Übertragen der Antwort an einen dritten Benutzerknoten des Netzes über eine direkte Verbindung, wobei der dritte Benutzerknoten zuvor die Ressourcenanforderung zur Veröffentlichung an einen Serverknoten übertragen hatte; und Weiterleiten der Antwort vom dritten Benutzerknoten an den anfordernden Benutzerknoten.
  5. Verfahren nach Anspruch 1, wobei der Schritt des Rückübertragens der Antwort an den anfordernden Benutzerknoten die folgenden Teilschritte beinhaltet: Übertragen der Antwort an einen dritten Benutzerknoten des Netzes über einen Serverknoten, wobei der dritte Benutzerknoten zuvor die Ressourcenanforderung zur Veröffentlichung an den Serverknoten übertragen hatte; und Weiterleiten der Antwort vom dritten Benutzerknoten an den anfordernden Benutzerknoten.
  6. Verfahren nach Anspruch 1, das außerdem die folgenden Schritte umfasst: Empfangen der Ressourcenanforderung in einem dritten Benutzerknoten des Netzes; Entscheiden, ob die Ressourcenanforderung an einen Serverknoten übertragen wird; Weiterleiten der Ressourcenanforderung an einen vierten Benutzerknoten des Netzes über eine direkte Verbindung, wenn entschieden wurde, die Ressourcenanforderung nicht an den Serverknoten zu übertragen; und Übertragen der Ressourcenanforderung zur Veröffentlichung an den Serverknoten, wenn entschieden wurde, die Ressourcenanforderung an den Serverknoten zu übertragen.
  7. Verfahren nach Anspruch 6, wobei der Schritt des Weiterleitens der Ressourcenanforderung die folgenden Teilschritte beinhaltet: willkürliches Auswählen eines der Benutzerknoten, mit denen der dritte Benutzerknoten verbunden ist, als vierten Benutzerknoten; und Weiterleiten der Ressourcenanforderung vom dritten Benutzerknoten an den vierten Benutzerknoten über eine direkte Verbindung; und wobei der Schritt des Weiterleitens der Antwort die folgenden Teilschritte beinhaltet: willkürliches Auswählen eines der Benutzerknoten, mit denen der erste Benutzerknoten verbunden ist, als zweiten Benutzerknoten; und Weiterleiten der Antwort vom ersten Benutzerknoten an den zweiten Benutzerknoten über eine direkte Verbindung.
  8. Maschinenlesbares Medium, das mit einem Programm zum Beantworten einer Ressourcenanforderung von einem anfordernden Benutzerknoten in einem Netz von Benutzerknoten codiert ist, wobei das Programm Befehle zum Ausführen der folgenden Schritte enthält: Empfangen einer Antwort auf die Ressourcenanforderung in einem ersten Benutzerknoten des Netzes; Entscheiden, ob die Antwort an den anfordernden Benutzerknoten rückübertragen wird, als eine willkürliche von einem ersten Benutzerknoten getroffene Entscheidung; Weiterleiten der Antwort an einen zweiten Benutzerknoten des Netzes über eine direkte Verbindung, wenn entschieden wurde, die Antwort nicht an den anfordernden Benutzerknoten rückzuübertragen; und Rückübertragen der Antwort an den anfordernden Benutzerknoten, wenn entschieden wurde, die Antwort an den anfordernden Benutzerknoten rückzuübertragen.
  9. Maschinenlesbares Medium nach Anspruch 8, wobei im Entscheidungsschritt die willkürliche Entscheidung auf der Grundlage eines Bewertungsfaktors getroffen wird, der der Wahrscheinlichkeit entspricht, dass der erste Benutzerknoten entscheidet, die Antwort an den anfordernden Knoten rückzuübertragen.
  10. Maschinenlesbares Medium nach Anspruch 8, wobei der Schritt des Weiterleitens die folgenden Teilschritte beinhaltet: willkürliches Auswählen eines der Benutzerknoten, mit denen der erste Benutzerknoten verbunden ist, als zweiten Benutzerknoten; und Weiterleiten der Antwort vom ersten Benutzerknoten an den zweiten Benutzerknoten über eine direkte Verbindung.
  11. Maschinenlesbares Medium nach Anspruch 8, wobei der Schritt des Rückübertragens der Antwort an den anfordernden Knoten die folgenden Teilschritte beinhaltet: direktes Übertragen der Antwort an einen dritten Benutzerknoten des Netzes über eine direkte Verbindung, wobei der dritte Benutzerknoten zuvor die Ressourcenanforderung zur Veröffentlichung an einen Serverknoten übertragen hatte; und Weiterleiten der Antwort vom dritten Benutzerknoten an den anfordernden Benutzerknoten.
  12. Maschinenlesbares Medium nach Anspruch 8, wobei der Schritt des Rückübertragens der Antwort an den anfordernden Benutzerknoten die folgenden Teilschritte beinhaltet: Übertragen der Antwort an einen dritten Benutzerknoten des Netzes über einen Serverknoten, wobei der dritte Benutzerknoten zuvor die Ressourcenanforderung zur Veröffentlichung an den Serverknoten übertragen hatte; und Weiterleiten der Antwort vom dritten Benutzerknoten an den anfordernden Benutzerknoten.
  13. Benutzerknoten zur Verwendung in einem Computernetz des Typs, der eine Vielzahl von Benutzerknoten enthält, wobei jeder der Benutzerknoten über eine direkte Verbindung mit mindestens einem anderen Benutzerknoten verbunden ist, wobei der Benutzerknoten Folgendes umfasst: eine Empfangsschnittstelle zum Empfangen einer Antwort auf eine Ressourcenanforderung von einem anfordernden Benutzerknoten; ein Steuermittel zum willkürlichen Entscheiden, ob die Antwort an den anfordernden Benutzerknoten rückübertragen wird; mindestens eine Übertragungsschnittstelle zum selektiven Weiterleiten der Antwort an einen zweiten Benutzerknoten des Netzes über eine direkte Verbindung oder zum Rückübertragen der Antwort an den anfordernden Benutzerknoten, wobei die Übertragungsschnittstelle die Antwort an den zweiten Benutzerknoten weiterleitet, wenn das Steuermittel entscheidet, die Antwort nicht an den anfordernden Benutzerknoten zu übertragen, und die Antwort an den anfordernden Benutzerknoten rücküberträgt, wenn das Steuermittel entscheidet, die Antwort an den anfordernden Benutzerknoten rückzuübertragen.
  14. Benutzerknoten nach Anspruch 13, wobei das Steuermittel willkürliche Entscheidungen auf der Grundlage eines Bewertungsfaktors ausführt.
  15. Benutzerknoten nach Anspruch 13, wobei das Steuermittel einen der anderen Benutzerknoten des Netzes willkürlich als zweiten Benutzerknoten auswählt, an den die Antwort weitergeleitet wird.
  16. Benutzerknoten nach Anspruch 13, wobei die Übertragungsschnittstelle die Antwort an den anfordernden Knoten rücküberträgt, indem die Antwort über eine direkte Verbindung direkt an einen dritten Benutzerknoten des Netzes übertragen wird, so dass die Antwort sodann vom dritten Benutzerknoten an den anfordernden Benutzerknoten weitergeleitet werden kann, wobei der dritte Benutzerknoten die Ressourcenanforderung zuvor zur Veröffentlichung an einen Serverknoten übertragen hatte.
  17. Benutzerknoten nach Anspruch 13, wobei die Übertragungsschnittstelle die Antwort an den anfordernden Benutzerknoten rücküberträgt, indem die Antwort über einen Serverknoten an einen dritten Benutzerknoten des Netzes übertragen wird, so dass die Antwort sodann vom dritten Benutzerknoten an den anfordernden Benutzerknoten weitergeleitet werden kann, wobei der dritte Benutzerknoten die Ressourcenanforderung zuvor zur Veröffentlichung an einen Serverknoten übertragen hatte.
DE60217666T 2001-05-07 2002-03-18 System und verfahren zum beantworten von ressourcenanforderungen in verteilten rechnernetzen Expired - Lifetime DE60217666T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/850,390 US7797375B2 (en) 2001-05-07 2001-05-07 System and method for responding to resource requests in distributed computer networks
US850390 2001-05-07
PCT/GB2002/001284 WO2002091705A2 (en) 2001-05-07 2002-03-18 System and method for responding to resource requests in distributed computer networks

Publications (2)

Publication Number Publication Date
DE60217666D1 DE60217666D1 (de) 2007-03-08
DE60217666T2 true DE60217666T2 (de) 2007-10-25

Family

ID=25307982

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60217666T Expired - Lifetime DE60217666T2 (de) 2001-05-07 2002-03-18 System und verfahren zum beantworten von ressourcenanforderungen in verteilten rechnernetzen

Country Status (12)

Country Link
US (1) US7797375B2 (de)
EP (1) EP1386467B1 (de)
JP (1) JP3956365B2 (de)
AT (1) ATE352161T1 (de)
CA (1) CA2442546A1 (de)
CZ (1) CZ20032572A3 (de)
DE (1) DE60217666T2 (de)
HU (1) HUP0400014A3 (de)
IL (1) IL158613A0 (de)
PL (1) PL367749A1 (de)
TW (1) TWI235563B (de)
WO (1) WO2002091705A2 (de)

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7765329B2 (en) * 2002-06-05 2010-07-27 Silicon Graphics International Messaging between heterogeneous clients of a storage area network
US7617292B2 (en) 2001-06-05 2009-11-10 Silicon Graphics International Multi-class heterogeneous clients in a clustered filesystem
US7640582B2 (en) 2003-04-16 2009-12-29 Silicon Graphics International Clustered filesystem for mix of trusted and untrusted nodes
US20040139125A1 (en) 2001-06-05 2004-07-15 Roger Strassburg Snapshot copy of data volume during data access
US8010558B2 (en) 2001-06-05 2011-08-30 Silicon Graphics International Relocation of metadata server with outstanding DMAPI requests
US7440994B2 (en) * 2001-07-06 2008-10-21 Intel Corporation Method and apparatus for peer-to-peer services to shift network traffic to allow for an efficient transfer of information between devices via prioritized list
US7546363B2 (en) * 2001-07-06 2009-06-09 Intel Corporation Adaptive route determination for peer-to-peer services
US20030009586A1 (en) * 2001-07-06 2003-01-09 Intel Corporation Method and apparatus for peer-to-peer services
US7562112B2 (en) * 2001-07-06 2009-07-14 Intel Corporation Method and apparatus for peer-to-peer services for efficient transfer of information between networks
US7167979B2 (en) * 2002-04-03 2007-01-23 Hewlett-Packard Development Company, L.P. Invoking mutual anonymity by electing to become head of a return path
US7343418B2 (en) * 2002-06-03 2008-03-11 Microsoft Corporation Peer to peer network
US20030237097A1 (en) * 2002-06-21 2003-12-25 Marshall Carl S. Peer to peer broadcast acquisition
US6954798B2 (en) * 2002-08-28 2005-10-11 Matsushita Electric Works, Ltd. Content-based routing of data from a provider to a requestor
US20040181487A1 (en) * 2003-03-10 2004-09-16 Microsoft Corporation Digital media clearing house platform
WO2004114581A2 (en) 2003-06-17 2004-12-29 Bytemobile, Inc. Method and system for dynamic interleaving
KR20060123449A (ko) * 2004-01-09 2006-12-01 코닌클리케 필립스 일렉트로닉스 엔.브이. 프로그램 콘텐츠를 검색하는 방법
US7562143B2 (en) * 2004-01-13 2009-07-14 International Business Machines Corporation Managing escalating resource needs within a grid environment
US7406691B2 (en) * 2004-01-13 2008-07-29 International Business Machines Corporation Minimizing complex decisions to allocate additional resources to a job submitted to a grid environment
US7552437B2 (en) * 2004-01-14 2009-06-23 International Business Machines Corporation Maintaining application operations within a suboptimal grid environment
JP3890398B2 (ja) * 2004-02-19 2007-03-07 海 西田 ピアツーピア型匿名プロキシにおける安全性の高い匿名通信路の検証及び構築する方法
US20060048157A1 (en) * 2004-05-18 2006-03-02 International Business Machines Corporation Dynamic grid job distribution from any resource within a grid environment
US7266547B2 (en) * 2004-06-10 2007-09-04 International Business Machines Corporation Query meaning determination through a grid service
US7584274B2 (en) * 2004-06-15 2009-09-01 International Business Machines Corporation Coordinating use of independent external resources within requesting grid environments
US8316088B2 (en) * 2004-07-06 2012-11-20 Nokia Corporation Peer-to-peer engine for object sharing in communication devices
JP4445421B2 (ja) * 2004-08-26 2010-04-07 パナソニック株式会社 Ip電話装置、enumサーバ及びip電話システム
US7712100B2 (en) * 2004-09-14 2010-05-04 International Business Machines Corporation Determining a capacity of a grid environment to handle a required workload for a virtual grid job request
US20060168584A1 (en) * 2004-12-16 2006-07-27 International Business Machines Corporation Client controlled monitoring of a current status of a grid job passed to an external grid environment
US7590623B2 (en) * 2005-01-06 2009-09-15 International Business Machines Corporation Automated management of software images for efficient resource node building within a grid environment
US7472079B2 (en) * 2005-01-12 2008-12-30 International Business Machines Corporation Computer implemented method for automatically controlling selection of a grid provider for a grid job
US7571120B2 (en) * 2005-01-12 2009-08-04 International Business Machines Corporation Computer implemented method for estimating future grid job costs by classifying grid jobs and storing results of processing grid job microcosms
US7467196B2 (en) * 2005-01-12 2008-12-16 International Business Machines Corporation Managing network errors communicated in a message transaction with error information using a troubleshooting agent
US7562035B2 (en) * 2005-01-12 2009-07-14 International Business Machines Corporation Automating responses by grid providers to bid requests indicating criteria for a grid job
JP4404007B2 (ja) * 2005-05-16 2010-01-27 コニカミノルタホールディングス株式会社 通信方法、ネットワーク、および情報処理装置
GB0607294D0 (en) * 2006-04-11 2006-05-24 Nokia Corp A node
US8027342B2 (en) * 2006-12-21 2011-09-27 Motorola Mobility, Inc. Method and apparatus for establishing peer-to-peer communications
US20080154851A1 (en) * 2006-12-21 2008-06-26 Canon Kabushiki Kaisha Method and apparatus for sharing files over a network
KR101409991B1 (ko) 2007-04-16 2014-06-20 삼성전자주식회사 P2p 통신 환경에서의 데이터 전송 방법 및 장치
US8583164B2 (en) * 2007-07-12 2013-11-12 Sony Corporation Reward-based access to media content
US9086775B1 (en) 2008-07-10 2015-07-21 Google Inc. Minimizing software based keyboard
KR101626117B1 (ko) * 2009-06-22 2016-05-31 삼성전자주식회사 클라우드 스토리지를 제공하는 클라이언트, 중개 서버 및 방법
US9432454B2 (en) 2011-08-29 2016-08-30 At&T Intellectual Property I, L.P. Cloud-to-cloud peering
US8811950B2 (en) * 2012-03-30 2014-08-19 Qualcomm Incorporated Methods and apparatus for controlling devices with no or limited WWAN capability in peer to peer communication
US10187452B2 (en) 2012-08-23 2019-01-22 TidalScale, Inc. Hierarchical dynamic scheduling
US9576039B2 (en) 2014-02-19 2017-02-21 Snowflake Computing Inc. Resource provisioning systems and methods
US10812408B1 (en) * 2016-03-25 2020-10-20 Amazon Technologies, Inc. Preventing concentrated selection of resource hosts for placing resources
US10620992B2 (en) 2016-08-29 2020-04-14 TidalScale, Inc. Resource migration negotiation
US11023135B2 (en) 2017-06-27 2021-06-01 TidalScale, Inc. Handling frequently accessed pages
US10817347B2 (en) 2017-08-31 2020-10-27 TidalScale, Inc. Entanglement of pages and guest threads
US11570171B2 (en) * 2019-04-26 2023-01-31 Vmware, Inc. System and method for license management of virtual appliances in a computing system

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4814979A (en) * 1981-04-01 1989-03-21 Teradata Corporation Network to transmit prioritized subtask pockets to dedicated processors
US4945471A (en) * 1981-04-01 1990-07-31 Teradata Corporation Message transmission system for selectively transmitting one of two colliding messages based on contents thereof
US4412285A (en) * 1981-04-01 1983-10-25 Teradata Corporation Multiprocessor intercommunication system and method
US4445171A (en) * 1981-04-01 1984-04-24 Teradata Corporation Data processing systems and methods
CA1260151A (en) 1985-06-11 1989-09-26 Frank D. Bartocci Propagation of network queries through superior- subordinate and peer-peer data distribution relationships
GB2345157B (en) * 1998-12-23 2003-06-18 Ibm Publish and subscribe data processing apparatus, method and computer program product with declaration of a unique publisher broker
US5826269A (en) * 1995-06-21 1998-10-20 Microsoft Corporation Electronic mail interface for a network server
JPH09179820A (ja) * 1995-12-26 1997-07-11 Mitsubishi Electric Corp 負荷分散方式及び方法
US5873084A (en) 1996-01-18 1999-02-16 Sun Microsystems, Inc. Database network connectivity product
US5870605A (en) * 1996-01-18 1999-02-09 Sun Microsystems, Inc. Middleware for enterprise information distribution
US5819032A (en) * 1996-05-15 1998-10-06 Microsoft Corporation Electronic magazine which is distributed electronically from a publisher to multiple subscribers
US5768528A (en) * 1996-05-24 1998-06-16 V-Cast, Inc. Client-server system for delivery of online information
US5970231A (en) * 1996-11-27 1999-10-19 Pen Industries, Inc. Electronic newspaper and electronic publishing medium
US6446116B1 (en) 1997-06-30 2002-09-03 Sun Microsystems, Inc. Method and apparatus for dynamic loading of a transport mechanism in a multipoint data delivery system
US6216132B1 (en) * 1997-11-20 2001-04-10 International Business Machines Corporation Method and system for matching consumers to events
US6324587B1 (en) * 1997-12-23 2001-11-27 Microsoft Corporation Method, computer program product, and data structure for publishing a data object over a store and forward transport
US6636886B1 (en) * 1998-05-15 2003-10-21 E.Piphany, Inc. Publish-subscribe architecture using information objects in a computer network
US6317754B1 (en) * 1998-07-03 2001-11-13 Mitsubishi Electric Research Laboratories, Inc System for user control of version /Synchronization in mobile computing
JP2003520191A (ja) 1998-09-08 2003-07-02 ワトソン ファーマシューティカルズ, インコーポレイテッド 薬物の親水性塩類を含有する感圧接着剤マトリックスパッチの製造方法
US6829770B1 (en) * 1999-02-23 2004-12-07 Microsoft Corporation Object connectivity through loosely coupled publish and subscribe events
US6356929B1 (en) * 1999-04-07 2002-03-12 International Business Machines Corporation Computer system and method for sharing a job with other computers on a computer network using IP multicast
US6553411B1 (en) * 1999-05-18 2003-04-22 International Business Machines Corporation System and method for cache acceleration
US6725281B1 (en) * 1999-06-11 2004-04-20 Microsoft Corporation Synchronization of controlled device state using state table and eventing in data-driven remote device control model
US6405191B1 (en) * 1999-07-21 2002-06-11 Oracle Corporation Content based publish-and-subscribe system integrated in a relational database system
GB2354847A (en) * 1999-09-28 2001-04-04 Ibm Publish/subscribe data processing with subscription points for customised message processing
US6742023B1 (en) * 2000-04-28 2004-05-25 Roxio, Inc. Use-sensitive distribution of data files between users
US6732237B1 (en) * 2000-08-29 2004-05-04 Oracle International Corporation Multi-tier caching system
US6466116B1 (en) * 2000-10-02 2002-10-15 Johnson Electric S.A. Starter motor
US7114003B2 (en) * 2000-10-18 2006-09-26 Nortel Networks Limited Content networks
US20020165948A1 (en) * 2001-05-07 2002-11-07 International Business Machines Corporation Scalable resource discovery and reconfiguration for distributed computer networks

Also Published As

Publication number Publication date
HUP0400014A2 (hu) 2004-04-28
DE60217666D1 (de) 2007-03-08
JP3956365B2 (ja) 2007-08-08
EP1386467B1 (de) 2007-01-17
CA2442546A1 (en) 2002-11-14
CZ20032572A3 (cs) 2003-12-17
JP2005501311A (ja) 2005-01-13
PL367749A1 (en) 2005-03-07
IL158613A0 (en) 2004-05-12
TWI235563B (en) 2005-07-01
US7797375B2 (en) 2010-09-14
WO2002091705A3 (en) 2003-02-06
HUP0400014A3 (en) 2004-07-28
EP1386467A2 (de) 2004-02-04
US20020165979A1 (en) 2002-11-07
ATE352161T1 (de) 2007-02-15
WO2002091705A2 (en) 2002-11-14

Similar Documents

Publication Publication Date Title
DE60217666T2 (de) System und verfahren zum beantworten von ressourcenanforderungen in verteilten rechnernetzen
DE60208659T2 (de) Skalierbare ressourcenermittlung und rekonfiguration für verteilte rechnernetze
DE60036021T2 (de) System zur Verteilung von Daten innerhalb eines Internetzwerkes mit zweitseitiger Vereinbarung über Inhalt
DE69730056T2 (de) Routen von duplikaten
EP1423964B1 (de) Skalierbares peer-to-peer-netzwerk mit einem verzeichnisdienst
DE69909839T3 (de) Optimierte Lokalisierung von Netzwerkbetriebsmittel
DE60108166T2 (de) Untergruppen-multicasting in einem kommunikationsnetz
DE60317925T2 (de) Steuerung von netzwerkverkehr in einer peer-to-peer umgebung
DE602005003301T2 (de) Verfahren zum Aufbau einer Verbindung zwischen Peer-Gruppen
DE60038460T2 (de) Anonymität in einem präsenzverarbeitungssystem
DE60028972T2 (de) Verfahren zur verteilten gruppenschlüsselverwaltung für sichere mehr-zu-mehrpunktkommunikation
DE60302994T2 (de) Multicast Router mit Übersetzungsfunktion von Protokollen gemäß Any-Source-Multicast und Source-Specific-Multicast
DE69917925T2 (de) Steuerung einer angekündigten sitzung
EP2826224B1 (de) Zugriff von clients auf einen serverdienst mittels einer opc-ua
DE10392283T5 (de) System, Verfahren und Vorrichtung für verbündete einzelne Dienstleistungen mit Anmeldeverfahren beziehungsweise Sign-On-Dienstleistungen
KR20010020190A (ko) 멀티캐스트 네트워크에서 멀티캐스트 그룹 멤버쉽을 관리하는 시스템, 장치, 및 방법
DE102012218575B4 (de) Schützen der Privatsphäre beim Austauschen von Daten mit einem Webserver
DE19900636A1 (de) Datenzugriffs- und -verwaltungssystem sowie Verfahren zum Datenzugriff und zur Datenverwaltung für ein Rechnersystem
EP1800458B1 (de) Verfahren zur initialisierung eines datennetzes
EP1815665B1 (de) Verfahren zur bereitstellung einer adresse in einem daten-netzwerk
DE10307512A1 (de) Erleichterung von Geschäftstransaktionen zwischen Handelsnetzwerken
DE102006023758A1 (de) Verfahren zum Aufbau eines semistrukturierten Peer-to-Peer Netzwerkes und zur Suche in diesem, sowie ein entsprechendes Computerprogramm und ein entsprechendes computerlesbares Speichermedium
EP1635514A1 (de) Datenverarbeitungsgerät und Ad-hoc-Netzwerk mit Presence-Information
EP1833192A1 (de) Übergabe des Zugriffs auf eine serverbasierte Anwendungssitzung an ein Kommunikationsendgerät

Legal Events

Date Code Title Description
8381 Inventor (new situation)

Inventor name: VINCENT, CHRISTOPHER, RICHARD, ARLINGTON, MA 0, US

8364 No opposition during term of opposition
8320 Willingness to grant licences declared (paragraph 23)