DE69816183T2 - Dynamische Cache-Speicher-Vervielfältigung durch Erzeugung eines umgekehrten Baums in einem Netzwerk - Google Patents

Dynamische Cache-Speicher-Vervielfältigung durch Erzeugung eines umgekehrten Baums in einem Netzwerk Download PDF

Info

Publication number
DE69816183T2
DE69816183T2 DE69816183T DE69816183T DE69816183T2 DE 69816183 T2 DE69816183 T2 DE 69816183T2 DE 69816183 T DE69816183 T DE 69816183T DE 69816183 T DE69816183 T DE 69816183T DE 69816183 T2 DE69816183 T2 DE 69816183T2
Authority
DE
Germany
Prior art keywords
router
server
network
replica
area
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 - Fee Related
Application number
DE69816183T
Other languages
English (en)
Other versions
DE69816183D1 (de
Inventor
Cagatay Holmdel Buyukkoc
Jr. Adrian Emmanuel Holmdel Eckberg
Pravin Kumar Aberdeen Johri
Danielle Holmdel Liu
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.)
AT&T Corp
Original Assignee
AT&T 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 AT&T Corp filed Critical AT&T Corp
Application granted granted Critical
Publication of DE69816183D1 publication Critical patent/DE69816183D1/de
Publication of DE69816183T2 publication Critical patent/DE69816183T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9574Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/04Interdomain routing, e.g. hierarchical routing

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Information Transfer Between Computers (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Small-Scale Networks (AREA)

Description

  • TECHNISCHES GEBIET
  • Diese Erfindung betrifft Telekommunikationen und insbesondere ein Verfahren zum Verteilen von Nachbildungs-Caches von Information unter diversen Bereichen eines Netzes.
  • HINTERGRUND
  • Im Nachrichtenverkehr auf dem Internet gibt es eine inhärente Redundanz, die eine exzessive Last auf dem Stütznetz (Backbone-Netz) erzeugt. Das Caching von bestimmten Anwendungen und die Bereitstellung von Web-Proxies auf dem Internet vereinfacht einen gewissen Teil der unnötigen Replizierung im Datentransfer. Die Praxis eines Multicasting (Mehrfachaussendung) ist eine andere Technik, um die Effizienz der Verteilung zu verbessern. Beim Multicasting verteilt ein Versender das gleiche Dokument, Daten, oder eine Nachricht an eine große Anzahl von Empfängern, die gewöhnlicherweise über ein breites Gebiet verteilt sind.
  • Um die Effizienz, bzw. den Wirkungsgrad zu verbessern ist es vorteilhaft ein Verfahren anzuwenden, bei dem eine Kopie des Multicast-Dokuments (des mehrfach gesendeten Dokuments) in jedem Bereich an einen vorgegebenen Server geliefert wird, wobei die lokale Verteilung an den Server delegiert wird. Dieser nachgebildete bzw. replizierte Cach-Mechanismus kann einen effizienten Baum-Bildungsalgorithmus erfordern. Mehrere Beispiele davon werden bereits in Internet-Protokollen für statische Verteilungen von Nachbildungs-Caches verwendet.
  • Es gibt signifikante Probleme, die durch die existierenden praktischen Vorgehensweisen bei der Replizierung bzw. Nachbildung von Caches auf dem Internet nicht gelöst sind. Das Hauptproblem ist die dynamische Art des Internet-Verkehrs, sowohl über der Zeit als auch über dem Ort. Es gibt Orte, bzw. Stellen, die zu gewissen Tageszeiten aktiv sind und zu anderen Zeiten nicht aktiv sind. Was benötigt wird ist eine dynamische Technik zum Zuweisen und erneuten Zuweisen von Servern in dem Netz, die die Rolle von nachgebildeten (bzw. replizierten) Caches ausführen werden.
  • Der Artikel "Demand-based Document Dissemination to Reduce Traffic and Balance Load in Distributed Informations Systems" von Azer Bestavros, veröffentlicht in PROCEEDINGS OF THE 1995 7TH IEEE SYMPOSIUM ON PARALLEL AND DISTRIBUTED PROCESSING, SAN ANTONIO, TX, USA, am 25–28 Oktober 1995, auf den Seiten 338 bis 345, ISSN 1063-6374, XP910747, offenbart eine Technik zum Nachbilden von Information in einem verteilten System auf einer globalen Zuführungs/Anforderungs-Basis.
  • ZUSAMMENFASSUNG
  • Die Erfindung stellt ein Verfahren bereit, wie in den beigefügten Ansprüchen aufgeführt.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • In den Zeichnungen zeigen:
  • 1A bis 1E eine Abfolge von Zuständen eines beispielhaften Netzes, welches sich selbst in einen primären Cache und zwei Nachbildungs-Caches für drei Dienstdomänen organisiert;
  • 1F das Ergebnis des Netzes der 1E, welches sich periodisch in einen primären Cache und überarbeitete Nachbildungs-Caches mit überarbeiteten Dienstdomänen neu organisiert;
  • 2A bis 2C Nachrichtenformate für eine Router-Steuerung für das beispielhafte Netz der 1A bis 1E;
  • 2D eine Zuweisungsnachricht und 2E eine Nachbildungsnachricht für das beispielhafte Netz der 1E;
  • 3 ein Architekturdiagramm des Routers 30 in 1A;
  • 4 ein Flussdiagramm des optimalen Nachbildungs-Cache-Zuweisungsprogramms;
  • 5 eine Organisation der ersten Stufe von einem zweiten beispielhaften Netz;
  • 6 eine Organisation einer zweiten Stufe des beispielhaften Netzes der 5;
  • 7A und 7B Router-Tabellen für die Netzorganisationen der 5 bzw. 6; und
  • 8A eine Zuweisungsnachricht und 8B eine Nachbildungsnachricht für die Organisation der zweiten Stufe des beispielhaften Netzes der 6.
  • AUSFÜHRLICHE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
  • Die 1A bis 1E zeigen eine Abfolge von Stufen eines beispielhaften Netzes, wenn es sich automatisch organisiert, um die Verteilung von Nachbildungs-Caches von Informationen unter seinen Bereichen zu optimieren. Diese Operation der Erfindung wird nachstehend als eine Umkehrbaum-Erzeugung bezeichnet. Das beispielhafte Netz, welches gezeigt ist, ist das Internet-Netz in den Vereinigten Staaten, das um das Internet-Backbone-Netz 10 herumgebaut ist. 1A zeigt eine erste Stufe in der Organisation des Netzes, wenn der Server 40 in dem Nordost-Gebiet 20 die einzige Kopie eines Datensatzes speichert, auf den von Benutzern in allen Bereichen des Netzes zugegriffen wird. Die Kopie des Datensatzes in dem Server 40 ist der primäre Information-Cache "P". Dieser Datensatz kann z. B. die Information für eine bestimmte Internet-Website darstellen. Während Perioden eines stabilen Betriebs werden Dienstanforderungsnachrichten an dem Router 30 in dem Nordost-Bereich des Netzes von Benutzern in sämtlichen Bereichen des Netzes empfangen. Diese Dienstaufforderungen beabsichtigen einen Zugriff auf die Kopie des primären Caches "P" des Datensatzes, der in dem Server 40 gespeichert ist. Wenn dieser Datensatz eine populäre Internet-Website darstellt, z. B. die Website der New York Times "www.nytimes.com", dann wird der Router 30 zur Behandlung dieser Dienstanforderung sehr beschäftigt sein. Die Erfindung arbeitet, um die Last der Dienstanforderungen an dem Router 30 zu verringern, und zwar durch automatisches Verteilen von ein oder mehreren Nachbildungen des Datensatzes an neue Server in entfernten Bereichen des Netzes und durch Zuweisen von neuen Routing-Tabellen (Verzweigungstabellen) an die Router (Verzweiger) in dem Netz. Die neuen Routing-Tabellen leiten Dienstanforderungen, die von Benutzer in entfernten Bereichen stammen, an die neuen Server um, die gemeinsam die Last der Dienstanforderungen mit dem ursprünglichen Server 40 teilen.
  • Das Netz der 1A umfasst eine Vielzahl von Bereichen: den Nordost-Bereich 20, den nördlichen zentralen Bereich 22, den Nordwest-Bereich 24, den Südost-Bereich 26, den südlichen zentralen Bereich 28, und den Südwest-Bereich 29. Jeder von diesen jeweiligen Bereichen umfasst einen Router 30, 32, 34, 36, 38 und 39, der über den jeweiligen Pfad 30', 32', 34', 36', 38' und 39' mit dem Backbone-Netz 10 verbunden ist. Jeder der jeweiligen Bereiche umfasst einen Server 40, 42, 44, 46, 48 und 49, der über den jeweiligen Pfad 40', 42', 44', 46', 48' und 49' mit seinem jeweiligen Router verbunden ist. Jeder der jeweiligen Bereiche umfasst eine Vielzahl von Benutzerterminals 50, 52, 54, 56, 58 und 59, die mit ihrem jeweiligen Router über einen jeweiligen Pfad 50', 52', 54', 56', 58' und 59' verbunden sind. In jedem der Bereiche koppelt der jeweilige Router den jeweiligen Server und die jeweilige Vielzahl von Benutzerterminals mit dem Internet-Backbone-Netz 10, und zwar mit Hilfe der Strecken 30', 32', 34', 36', 38' und 39'. 2D zeigt die existierende Router-Tabelle 334 für die ursprüngliche Organisation des Netzes in 1A, wobei der Server 40 in dem Nordost-Bereich 20 die einzige Kopie eines Datensatzes als einen primären Cache "P" speichert, auf den von Benutzern in sämtlichen Bereichen des Netzes zugegriffen wird. Die Router-Tabelle 334 wird an jedem Router 30, 32, 34, 36, 38 und 39 in dem Netz gespeichert.
  • 1B zeigt die nächste Stufe des Netzes, welches sich selbst zur Optimierung der Verteilung von Nachbildungs-Caches von Information unter den Bereichen organisiert. Der Router 30, oder ein Prozessor, der zu dem Router 30 gehört, sendet eine Überwachungsanforderungsnachricht an sämtliche anderen Router 32, 34, 36, 38 und 39, die mit dem Backbone-Netz 10 verbunden sind, wobei die anderen Router aufgefordert werden, die Dienstanforderungen zu überwachen, die aus ihren Bereichen stammen und die an den primären Cache an dem Server 40 gerichtet sind. 2A zeigt ein Beispiel einer Überwachungsanforderungsnachricht 200, die von dem Router 30 an sämtliche anderen Router 32, 34, 36, 38 und 39 gesendet wird, die mit dem Backbone-Netz 10 verbunden sind. Die Überwachungsanforderungsnachricht 200 umfasst ein Feld 202, das den Zielrouter spezifiziert, ein Feld 204, das den Quellenrouter spezifiziert, und ein Feld 206, das die Überwachungsanforderung spezifiziert. Die Überwachungsanforderungsnachricht 200 wird an sämtliche Router 32, 34, 36, 38 und 39 in dem Netz herausgesendet.
  • 3 ist ein Architekturdiagramm des Routers 30. Sämtliche anderen Router 32, 34, 36, 38 und 39 in dem Netz weisen eine ähnliche Architektur auf. Der Router 30 umfasst einen Speicher 302, der über den Systembus 304 mit dem Netzadapter 308, dem Plattenlaufwerkspeicher 306, dem Prozessor 318 und der Serverschnittstelle 312 verbunden ist. Der Netzadapter 308 verbindet den Router über den Pfad 30' mit dem Backbone-Netz 10. Die Serverschnittstelle 312 verbindet den Router 30 über einen Pfad 40' mit dem Server 40. Die Schnittstelle 312 kann den Router 30 auch über den Pfad 50' mit den Benutzern 50 in 1A verbinden.
  • Der Speicher 302 in 3 speichert den Dienstanforderungs-Nachrichtenpuffer 322, der Dienstanforderungsnachrichten von dem Backbone-Netz 10 und von den lokalen Benutzern 50 empfängt. Dienstanforderungsnachrichten werden an den Server 40 für eine Verarbeitung übergeben. Der Speicher 302 in 3 speichert den Dienstanwort-Nachrichtenpuffer 324, der Dienstantwortnachrichten von dem Server 50 empfängt. Dienstantwortnachrichten werden an das Backbone-Netz 10 oder an die lokalen Benutzer 50 weitergeleitet.
  • Der Speicher 302 in 3 speichert den Überwachungsanforderungs-Nachrichtenpuffer 326, der die Überwachungsanforderungsnachricht 200 der 2A speichert. In dem Router 30, von dem die Nachricht 200 ausgeht, wird die Nachricht in dem Puffer 326 gebaut und dann durch den Netzadapter 308 an die anderen Router 32, 34, 36, 38 und 39 gesendet. Diese Stufe ist in 1B dargestellt, wobei der Router 30 eine Anforderung für eine Verkehrsüberwachung an die anderen Router heraussendet. In den Routern 32, 34, 36, 38 und 39, die die Nachricht 200 über ihre jeweiligen Netzadapter 308 empfangen, wird die Nachricht 200 gepuffert und gelesen. Die Überwachungsanforderungsnachricht 200 identifiziert den Datensatz, der als der primäre Cache "P" in dem Server 40 gespeichert ist. Die Überwachungsanforderungsnachricht 200 bittet die Zielrouter 32, 34, 36, 38 und 39 sämtliche Nachrichten zu überwachen, die sie behandeln, die Anzahl von an den Server 40 gerichteten Dienstanforderungen zu zählen, die einen Zugriff auf den Datensatz anfordern, der als der primäre Cache "P" gespeichert ist. Die Überwachungsanforderungsnachricht 200 bittet die Zielrouter 32, 34, 36, 38 und 39 an den Router 30 mit einem Verkehrswert zu antworten, der der akkumulierte Zählwert von derartigen Dienstanforderungen über eine gegebenen Zeitperiode ist.
  • Der Speicher 302 in 3 speichert das Verkehrsüberwachungsprogramm 329. Es läuft unter dem Betriebssystemprogramm 320, wobei seine Befehle auf dem Prozessor 310 ausgeführt werden. In den Routern 32, 34, 36, 38 und 39, die die Überwachungsanforderungsnachricht 200 über ihre jeweiligen Netzadapter 308 empfangen, liest das Verkehrsüberwachungsprogramm 320 die Nachricht 200, die in dem Puffer 326 gepuffert ist, und führt den Verkehrsüberwachungsbetrieb aus, der in 1C gezeigt ist. In jedem der Zielrouter 32, 34, 36, 38, und 39, überwacht das Verkehrsüberwachungsprogramm 329 sämtliche Nachrichten, die der Router behandelt, und zählt die Anzahl von an den Server 40 gerichteten Dienstanforderungen, die einen Zugriff auf den Datensatz anfordern, der als der primäre Cache "P" gespeichert ist. Das Verkehrsüberwachungsprogramm 329 in dem ursprünglichen Server 30 führt auch diese Überwachungsoperation für die Benutzer 40 in dem eigenen Bereich 20 des Routers aus. Das Verkehrsüberwachungsprogramm 329 in jedem der Router 30, 32, 34, 36, 38 und 39 antwortet an den Router 30 mit einem Verkehrswert, der der akkumulierte Zählwert von derartigen Dienstanforderungen über eine gegebene Zeitperiode ist. Der Speicher 302 in 3 speichert den Überwachungsantwort-Nachrichtenpuffer 328, der die Überwachungsantwortnachricht 220 speichert. Die Überwachungsantwortnachricht 220 umfasst ein Feld 222, das den Zielrouter spezifiziert, ein Feld 224, das den Quellenrouter spezifiziert, und ein Feld 226, das die Überwachungsantwort spezifziert, die der Verkehrswert ist, die an diesem Router gemessen wird. Die Überwachungsantwort 220 wird dann von jedem Router 32, 34, 36, 38 und 39 zurück an den Ursprungsrouter 30 gesendet.
  • Der Speicher 302 in 3 speichert das optimale Nachbildungs-Cache-Zuweisungsprogramm 330. Es läuft unter dem Betriebssystemprogramm 320, wobei seine Befehle auf dem Prozessor 310 ausgeführt werden. In dem Ursprungsrouter 30 der 1D berechnet das Zuweisungsprogramm 330 die optimale Verteilung von Nachbildungen (Replikas) des Datensatzes, der als der primäre Cache "P" gespeichert ist. Dies basiert auf den Verkehrswerten in jedem entfernten Bereich 22, 24, 26, 28 und 29, der von jedem Router 32, 34, 36, 38 und 39 berichtet wird, und auch wie lokal in dem Bereich 20 von dem Router 30 gemessen. Das Programm 330 für die optimale Zuweisung von Nachbildungs-Caches wird in dem Flussdiagramm der 4 beschrieben.
  • Das Programm 330 für die optimale Zuweisung von Nachbildungs-Caches basiert auf einem Algorithmus, der eine Kosten/Nutzen-Analyse einer Hinzufügung oder Löschung von Nachbildungs-Caches ausführt. Der Kosten/Nutzen-Analysealgorithmus wird mit näheren Einzelheiten nachstehend in Verbindung mit einem Beispiel seiner Anwendung auf ein zweites Netz, das in den 5 und 6 gezeigt ist, beschrieben. Das Zuweisungsprogramm 330 aktualisiert periodisch diese Kosten/Nutzen-Analyse auf Grundlage von aktualisierten Verkehrsüberwachungsmessungen von den entfernten Bereichen des Netzes.
  • Der Kosten/Nutzen-Analysealgorithmus bestimmt, ob eine kritische Schwellenmenge des Verkehrs in einen Bereich akkumuliert worden ist, die das Aufbauen eines Nachbildungs-Caches auf einem neuen Server gerechtfertigt. Der Kosten/Nutzen-Analysealgorithmus berechnet eine Minimalgewichtungs-Überspannungsbaumanalyse (minimum weight spanning tree analysis) oder eine Steiner Baumanalyse (Steiner tree analysis), um diese Bestimmung durchzuführen. Das Zuweisungsprogramm 330 berechnet dann neue Routing-Tabellen für die Router in dem Netz, um einige der Dienstanforderungen an die Nachbildungs-Caches auf den neuen Server umzuleiten. Der Speicher 302 in 3 speichert die existierende Router-Tabelle 30 und die neue Router-Tabelle 336. Ein Beispiel der existierenden Router-Tabelle 334 ist in 2D gezeigt und ein Beispiel der neuen Router-Tabelle 336 ist in 2E gezeigt.
  • Der Speicher 302 in 3 speichert den Zuweisungs-Nachrichtenpuffer 332, wo der Router 30 eine Zuweisungsnachricht 210 aufbaut, wie in 2C gezeigt. Die Zuweisungsnachricht 210 umfasst ein Feld 212, das den Zielrouter spezifiziert, ein Feld 214, das den Quellenrouter spezifiziert, und ein Feld 216, das die neue Routing-Zuweisung (Verweisungszuweisung) spezifiziert, die von dem Kosten/Nutzen-Analysealgorithmus berechnet wird. 2F zeigt ein Beispiel der Zuweisungsnachricht 210. Das Feld 212, spezifiziert eine Heraussendung an die Zielrouter 32, 34, 36, 38 und 39. Das Feld 214, spezifiziert den Quellenrouter als Router 30. Das Zuweisungsfeld 216 spezifiziert ein Beispiel der neuen Router-Tabelle 336, die in 2E gezeigt. Die Zuweisungsnachricht 210 wird an sämtliche anderen Router 32, 34, 36 , 38 und 39 in dem Netz herausgesendet. Sie wird auch zur Verwendung in dem Ursprungsrouter 30 gespeichert. Eine Nachbildungs- bzw. Replizierungs-Nachricht 802, die in 2G gezeigt ist, wird von dem Router 30 z. B. an den Router 34 gesendet, um eine Kopie des Datensatzes als Nachbildungs-Cache "A" an dem neuen Server 44 in dem Bereich 24 bereitzustellen. Das Feld 212 spezifiziert einen Zielrouter 34. Das Feld 214 spezifiziert den Quellenrouter als Router 30. Eine Nachbildungs-Nachricht wird von dem Router 30 z. B. an den Router 38 gesendet, um eine Kopie des Datensatzes als Nachbildungs-Cache "B" an dem neuen Server 48 in dem Bereich 28 bereitzustellen.
  • 1E zeigt das Ergebnis des Umkehrbaum-Erzeugungsbetriebs der Erfindung für das Netz der 1A, nachdem die Neuzuweisungsnachricht 210 von dem Router 30 an sämtliche anderen Router 32, 34, 36, 38 und 39 in dem Netz herausgesendet worden ist. 2E zeigt die neue Router-Tabelle für die aktualisierte Organisation des Netzes in 1E, wobei zwei zusätzliche Nachbildungs-Caches in dem Netz geschaffen worden sind. Der Nachbildungs-Cache "A" ist eine neue Kopie des Datensatzes, die in dem neuen Server 44 in dem Bereich 24 gespeichert wird. Der Router 34 behandelt sämtliche Dienstanforderungen an den Server 44. Die Dienstdomäne 60A für den Server 44 ist der Nordwest-Bereich 24 und der Südwest-Bereich 29. Der Router 34 in dem Bereich 24 und der Router 39 in dem Bereich 29 werden von der neuen Router-Tabelle 336 mit der 2E gesteuert, um an den Nachbildungs-Cache "A" auf dem Server 44 sämtliche Dienstanforderungen umzuleiten, um auf den Datensatz zuzugreifen, der aus den Bereichen 24 und 29 stammte. Der Nachbildungs-Cache "B" ist die neue Kopie des Datensatzes, der in dem neuen Server 48 in dem Bereich 28 gespeichert wird. Der Router 38 behandelt sämtliche Dienstanforderungen an den Server 48. Die Dienstdomäne 60B für den Server 48 ist der nördliche zentrale Bereich 22 und der südliche zentrale Bereich 28. Der Router 32 in dem Bereich 22 und der Router 38 in dem Bereich 28 werden von der neuen Router-Tabelle 336 der 2E gesteuert, um an den Nachbildungs-Cache "B" auf dem Server 48 sämtliche Dienstanforderungen umzuleiten, um auf den Datensatz zuzugreifen, der von den Bereichen 22 und 28 stammte Der primäre Cache "P" ist die existierende Kopie des Datensatzes, die in dem ursprünglichen Server 40 im Bereich 20 gespeichert wird. Der Router 30 behandelt sämtliche Dienstanforderungen an den Server 40. Die Dienstdomäne 60 für den Server 40 ist der Nordost-Bereich 20 und der Südost-Bereich 26. Der Router 30 in dem Bereich 20 und der Router 36 in dem Bereich 26 werden von der neuen Router-Tabelle 336 der 2E gesteuert, um an den primären Cache "P" auf dem Server 40 sämtliche Dienstanforderungen umzuleiten, um auf den Datensatz zuzugreifen, der von den Bereichen 20 und 26 stammte.
  • 1F zeigt das Ergebnis des Netzes, welches sich periodisch selbst in einen primären Cache und überarbeitete Nachbildungs-Caches mit überarbeiteten Dienstdomänen neu organisiert. In 1E überträgt der Router 30 periodisch eine Überwachungsanforderungsnachricht an sämtliche anderen Router 32, 34, 36, 38 und 39, die mit dem Backbone-Netz 10 verbunden sind, wobei die anderen Router aufgefordert werden Dienstanforderungen zu überwachen, die aus ihren Bereichen stammen, wobei auf den Datensatz in einem anderen Nachbildungs-Cache "A", einem Nachbildungs-Cache "B", oder einem primären Cache "P" zugegriffen wird. Die Router 32, 34, 36, 38 und 39 empfangen die Überwachunganforderungsnachricht 200 über ihre jeweiligen Netzadapter 308. Das Verkehrsüberwachungsprogramm 329 liest die Nachricht 200, die in dem Puffer 326 gepuffert ist, und führt den Verkehrsüberwachungsbetrieb aus. In jedem der Zielrouter 32, 34, 36, 38 und 39 überwacht das Verkehrsüberwachungsprogramm 329 sämtliche Nachrichten, die der Router behandelt, und zählt die Anzahl von Dienstanforderungen, die an den Server 40, oder 44, oder 48 gerichtet werden und die einen Zugriff auf den Datensatz anfordern, der als der primäre Cache "P", der Nachbildungs-Cache "A" oder Nachbildungs-Cache "B" gespeichert ist. Der Ursprungsrouter 30 berechnet die optimale Verteilung von Nachbildungen des Datensatzes, die als der primäre Cache "P" gespeichert werden. Dies ist auf den Verkehrswerten in jedem entfernten Bereich 22, 24, 26, 28 und 29 gestützt, der von jedem Router 32, 34, 36, 38 und 39 berichtet wird, und auch wie lokal in dem Bereich 20 von dem Router 30 gemessen. 1F zeigt das Netz 1E, nachdem die Neuzuweisungsnachricht 210 von dem Router 30 an sämtliche anderen Router 32, 34, 36, 38 und 39 in dem Netz herausgesendet worden ist. Der Nachbildungs-Cache "A" bleibt die gleiche Kopie des Datensatzes, der in dem Server 44 in dem Bereich 24 gespeichert ist. Der Router 34 behandelt sämtliche Dienstanforderungen an den Server 44. Die Dienstdomäne 60A' von dem Server 44 hat sich geändert, um der Nordwest-Bereich 24 und der nördliche zentrale Bereich 22 zu werden. Der Router 34 in dem Bereich 24 und der Router 32 in dem Bereich 22 werden von einer neuen Router-Tabelle gesteuert, um an den Nachbildungs-Cache "A" auf dem Server 44 sämtliche Dienstanforderungen umzuleiten, um auf den Datensatz zuzugreifen, der von den Bereichen 24 und 22 stammte. Ein Nachbildungs-Cache "B" ist abgebaut worden. Ein Nachbildungs-Cache "C" ist eine neue Kopie des Datensatzes, der in dem neuen Server 49 in dem Bereich 29 gespeichert ist. Der Router 39 behandelt sämtliche Dienstanforderungen an den Server 49. Die Dienstdomäne 60C für den Server 49 ist der Südwest-Bereich 292 und der südliche zentrale Bereich 28. Der Router 39 in dem Bereich 29 und der Router 38 in dem Bereich 28 werden von der neuen Router-Tabelle gesteuert, um an den Nachbildungs-Cache "C" auf dem Server 48 sämtliche Dienstanforderungen umzuleiten, um auf den Datensatz zuzugreifen, der von den Bereichen 29 und 28 stammte. Der primäre Cache "P" ist die existierende Kopie des Datensatzes, die in dem ursprünglichen Server in dem Bereich 20 gespeichert ist. Der Router 30 behandelt sämtliche Dienstanforderungen an den Server 40. Die Dienstdomäne 60 für den Server 40 ist der Nordost-Bereich 20 und der Südost-Bereich 26. Der Router 30 in dem Bereich 20 und der Router 36 in dem Bereich 26 werden von der neuen Routertabelle gesteuert, um an den primären Cache "P" auf dem Server 40 sämtliche Dienstanforderungen zum Zugreifen auf den Datensatz, der von den Bereichen 20 und 26 stammte, umzuleiten. In dieser Weise reorganisiert sich das Netz periodisch selbst in einen primären Cache und überarbeitete Nachbildungs-Caches mit überarbeiteten Dienstdomänen, um sich dynamisch ändernde Verkehrsmuster zu behandeln.
  • Das Programm 330 für die optimale Zuweisung von Nachbildungs-Caches wird in dem Flussdiagramm der 4 beschrieben. Das Zuweisungsprogramm 330 verwendet einen Kosten/Nutzen-Analysealgorithmus 415, der ein Typ einer Minimumgewichtungs-Überbrückungsbaumanalyse (minimum weight spanning tree analysis) ist. Die Strecken, die sämtliche Routerknoten in dem Netz verbinden, bilden einen nichtgerichteten Graph. Da die Strecken sämtliche Router in dem Netz verbinden, bildet es einen Baum, der den Graph überspannt bzw. überbrückt, woraus sich der Name "Überbrückungsbaum" ergibt. Jede der Strecken wird mit einem Kostenwert gewichtet, der sich auf die Anzahl von Anforderungen pro Einheitszeit "T" bezieht. Der Wert "T" ist die Anzahl von Anforderungen, die über die Strecke für einen Datensatz mit einer gegebenen Größe laufen, der in einem Ziel-Cache auf einem Zielserver gespeichert ist. Der Wert "T" ist die Nachrichtenverkehrsanzahl von Anforderungen pro Einheitzeit der Strecke. Die Summe der Anzahl von Anforderungen pro Einheitszeit für sämtliche Strecken bezieht sich auf die Bandbreitenkosten C[B]. Die Gesamtkosten C[T] der existierenden Verteilung von Caches umfasst die Bandbreitenkosten C[BW] als einen Faktor. Der Zweck des Programms 330 für die optimale Zuweisung von Nachbildungs-Caches besteht darin eine Verteilung von Nachbildungs-Caches, die den Datensatz speichern, zu finden, die die Gesamtkosten C[T] maximiert. Somit ist der Kosten/Nutzen-Analysealgorithmus 415 ein Typ einer Minimalgewichtungs-Überspannungsbaumanalyse.
  • Der Schritt 420 beginnt mit der Berechnung der Gesamtkosten C[T] der existierenden Verteilung von Caches. Um die Auswirkung der Hinzufügung eines nachgebildeten Servers auszuwerten, wird eine Kostenfunktion definiert, die die Ressourcen, die verwendet werden, und die verschiedenen Kosten berücksichtigt. Dies umfasst die Gelegenheits-Kosten für den Fall, dass ein einzelner Server (oder eine Reihe von Servern) überlastet ist (sind) und die potenziellen Kunden herausfallen, bevor sie bedient werden.
  • C[T] soll die Gesamtkosten bezeichnen. C[BW] soll die Bandbreitenkosten definieren, C[STO] die Speicherkosten an den Basisort, C[REP] die Nachbildungs-Kosten in einem einzelnen Server, C[OC] die Gelegenheits-Kosten, C[UP] die Aktualisierungskosten im Zusammenhang mit einer Aktualisierung der nachgebildeten Kopien, um sie davon abzuhalten schal bzw. abgestanden zu sein.
  • Somit gilt: C[T] = C[BW] + C[STO] + C[REP] + C[OC] + C[UP].
  • Die Bandbeitenkosten C[BW] sind eine Funktion der Anzahl von Anforderungen pro Einheitszeit, die auf den individuellen Strecken verwendet werden, und ist das Produkt einer Proportionalitätskonstanten, zugerechnet zu der Anzahl von Anforderungen pro Einheitszeit, mal der Summe der Anzahl von Anforderungen pro Einheitszeit auf jeder Strecke. Die Berechnung von C[BW] kann mit einem Beispielnetz dargestellt werden, das in 5 gezeigt ist.
  • 5 zeigt ein zweites Netz mit acht Routern a, b, c, d, e, f g und h, die acht lokale Benutzerzugriffspunkte 1, 2, 3, 4, 5, 6, 7 und 8 verbinden, so dass sie auf einen Datensatz zugreifen können, dessen einzige Kopie als der primäre Cache "P" auf dem Server 40 gespeichert ist. Der Server 40 ist über einen Router "a" mit den anderen Routern b, c, d, e, f g und h in dem Netz verbunden. Der Router "a" behandelt gegenwärtig 1000 Anforderungen pro Stunde für eine zehn Mega Byte-Datei, die in dem primären Cache "P" als ein Teil des Datensatzes auf dem Server 40 gespeichert ist. In Übereinstimmung mit der Erfindung wird eine Umkehrbaumerzeugung verwendet, um die Caches in dem Netz im Ansprechen auf Benutzungsmuster dynamisch neu zu organisieren. Der Router "a" sendet periodisch eine Überwachungsanforderung an die anderen Router b, c, d, e, f g und h, um eine Überwachung von jeder der Netzstrecken zu beginnen, die er für eine Periode behandelt, z. B. für eine Stunde. 7A zeigt die existierende Router-Tabelle 334 für das Netz der 5.
  • Während der Überwachungsperiode führt jeder lokaler Benutzerzugriffspunkt eine Menge von "T" Anforderungen für die zehn Mega Byte-Datei aus, die in dem primären Cache "P" als Teil des Datensatzes auf dem Server 40 gespeichert ist. Der Wert von "T" ist die Nachrichtenverkehrsanzahl von Anforderungen pro Einheitszeit. Der lokale Benutzerzugriffspunkt 1 wird von seinem Dienstrouter "c" überwacht, um eine Nachrichtenverkehrsanzahl von Aufforderungen pro Einheitszeit zu dem Server 40 von T = 125 zu haben. Der lokale Benutzerzugriffspunkt 2 wird von seinem Dienstrouter "c" überwacht, um eine Nachrichtenverkehrsanzahl von Anforderungen pro Einheitszeit an dem Server 40 von T = 50 aufzuweisen. Der lokale Benutzerzugriffspunkt 3 wird von dem Dienstrouter (bedienenden Router) "d" überwacht, um eine Nachrichtenverkehrsanzahl von Anforderungen pro Einheitszeit an dem Server 40 von T = 250 aufzuweisen. Der lokale Benutzerzugriffspunkt 4 wird von seinem bedienenden Router "e" überwacht, um eine Nachrichtenverkehrsanzahl von Anforderungen pro Einheitszeit an dem Server 40 von T = 225 zu haben. Der lokale Benutzerzugriffspunkt 5 wird von seinem bedienenden Router "f" überwacht, um eine Nachrichtenverkehrsanzahl von Anforderungen pro Einheitszeit an dem Server 40 von T = 50 aufzuweisen. Der lokale Benutzerzugriffspunkt 6 wird von seinem bedienenden Router "g" überwacht, um eine Nachrichtenverkehrsanzahl von Anforderungen pro Einheitszeit an dem Server 40 von T = 50 aufzuweisen. Der lokale Benutzerzugriffspunkt 7 wird von seinem bedienenden Router "a" überwacht, um eine Nachrichtenverkehrsanzahl von Anforderungen pro Einheitszeit an dem Server 40 von T = 50 aufzuweisen. Der lokale Benutzerzugriffspunkt 8 wird von seinem bedienenden Router "b" überwacht, um eine Nachrichtenverkehrsanzahl von Anforderungen pro Einheitszeit an dem Server 40 von T = 200 aufzuweisen.
  • Während der Überwachungsperiode wird jede Netzstrecke überwacht, um eine Menge von "T" Anforderungen für die zehn Mega Byte Datei weiterzugeben, die in dem primären Cache "P" als Teil des Datensatzes auf dem Server 40 gespeichert ist. Die elf Netzstrecken, die die Router der 5 untereinander verbinden, werden wie folgt überwacht. Die Netzstrecke "a–b", die die Router "a" und "b" verbindet, weist eine Nachrichtenverkehrsanzahl von Anforderungen pro Einheitszeit an dem Server 40 von T = 850 auf. Die Netzstrecke "b–c", die die Router "b" und "c" verbindet, weist eine Nachrichtenverkehrsanzahl von Anforderungen pro Einheitszeit an dem Server 40 von T = 175 auf. Die Netzstrecke "c–d", die die Router "c" und "d" verbindet, weist eine Nachrichtenverkehrsanzahl von Anforderungen pro Einheitszeit an dem Server 40 von T = 0 auf. Die Netzstrecke "d–e", die die Router "d" und "e" verbindet, weist eine Nachrichtenverkehrsanzahl von Anforderung pro Einheitszeit an dem Server 40 von T = 0 auf. Die Netzstrecke "e–f", die die Router "e" und "f" verbindet, weist eine Nachrichtenverkehrsanzahl von Anforderungen pro Einheitszeit an dem Server 40 von T = 0 auf. Die Netzstrecke "f–g", die die Router "f" und "g" verbindet, weist eine Nachrichtenverkehrsanzahl von Anforderungen pro Einheitszeit an dem Server 40 von T = 50 auf. Die Netzstrecke "g–a", die die Router "g" und "a" verbindet weist eine Nachrichtenverkehrsanzahl von Anforderungen pro Einheitszeit an dem Server 40 von T = 100 auf. Die Netzstrecke "d–h", die die Router "d" und "h" verbindet, weist eine Nachrichtenverkehrsanzahl von Anforderungen pro Einheitszeit an dem Server 40 von T = 250 auf. Die Netzstrecke "e–h", die die Router "e" und "h" verbindet, weist eine Nachrichtenverkehrsanzahl von Anforderungen pro Einheitszeit an dem Server 40 von T = 225 auf. Die Netzstrecke "f–h", die die Router "f" und "h" verbindet, weist eine Nachrichtenverkehrsanzahl von Anforderungen pro Einheitszeit an dem Server 40 von T = 0 auf. Die Netzstrecke "h–b", die die Router "h" und "b" verbindet, weist eine Nachrichtenverkehrsanzahl von Anforderungen pro Einheitszeit an dem Server 40 von T = 475 auf.
  • Die Bandbreitenkosten C[BW] für das Netz der 5 wird in dem Schritt 402 der 4 berechnet, um das Produkt einer Proportionalitätskonstanten zugerechnet zu der Anzahl von Anforderungen pro Einheitszeit mal der Summe der Anzahl von Anforderungen pro Einheitszeit auf jeder Strecke zu sein. Für dieses Beispiel wird angenommen, dass die Kosten der Anzahl von Anforderungen pro Einheitszeit pro Megabit 0,1 ist. Die Summe der Werte von "T" für die elf Netzverbindungen ist 2125. Somit sind die Bandbreitenkosten C[BW] die im Schritt 402 für das Netz der 5 berechnet werden, 2125 (was 2125 Anforderungen mal zehn Megabits pro Anforderung mal 0,1 Kosten pro Megabit ist).
  • Als nächstes berechnet der Schritt 402 der 4 C[STO], die Speicherkosten an dem Basisort. Für dieses Beispiel ist dieser Wert 500. Als nächstes berechnet der Schritt 402 der 4 C[REP], die Nachbildungs-Kosten in einem einzelnen Server. Da bislang noch keine Nachbildung existierte, ist dieser Wert null. Als nächstes berechnet der Schritt 403 der 4 C[OC], die Gelegenheitskosten. Marktforschungen haben ergeben, dass die Gelegenheitskosten pro verlorenem Treffer fünf sind. Eine empirische Beobachtung der Anzahl von verlorenen Treffern pro Stunde ist 100. Somit ist der Wert von C[OC] für die Gelegenheitskosten in diesem Beispiel 500. Als nächstes berechnet der Schritt 402 der 4 C[UP], die Aktualisierungskosten im Zusammenhang mit einer Aktualisierung der nachgebildeten Kopien, um sie davon abzuhalten schal bzw. abgestanden zu werden. Da bislang keine Nachbildung existiert, ist dieser Wert null. Somit berechnet der Schritt 402 der 4 C[T] = C[BW] + C[STO] + C[REP] + C[OC] + C[UP], um einen Wert von 2125 + 500 + 0 + 500 + 0 = 3125 aufzuweisen.
  • Als nächstes sortiert der Schritt 404 der 4 die Strecken, die an dem Zielcache oder den Zielcaches enden, von der höchsten Strecke zu der niedrigsten Kosten. Für das beispielhafte Netzwerk der 5 ist die sortierte Reihenfolge wie folgt.
    Netzstrecke "a–b" T = 850.
    Netzstrecke "g–a" T = 100.
  • Als nächstes startet der Schritt 406 der 4 eine Schleife. Für jede Strecke "I", die an einem existierenden Cache endet, werden die Schritte 408 und 410 ausgeführt. Der Schritt 408 startet eine eingenistete Schleife, für jede Quelle "S", die zu der Strecke "I" beiträgt, wird der Schritt 410 ausgeführt.
  • Der Schritt 410 findet die Tiefe (die Anzahl von Segmenten entlang des Pfads zu der Strecke) und die Gewichtung (z. B. den Bandbreitenbeitrag) der Quelle. Für das Netz der 5 startet der Schritt 406 mit der Strecke der höchsten Kosten, die die Netzstrecke "e–b" mit T = 850 ist.
  • Die Quellen für einen Verkehr an Netzstrecken "a–b" sind Router c, d, e und h und der lokale Benutzerzugriffspunkt 8. Der Schritt 408 startet die eingenistete Schleife, für jede Quelle, die zu der Netzstrecke "a–b" beiträgt, wobei der Schritt 410 ausgeführt wird. Für den Beitrag des Routers "e" findet der Schritt 410 die Tiefe (die Anzahl von Segmenten entlang des Pfads zu der Strecke) als Drei: Segment e– h, Segment h–b, und Segment b–a. Dann multipliziert der Schritt 410 den Tiefenwert von Drei mit der Anzahl von Anforderungen pro Einheitszeit von dem Router "e" von 225, was zu einem Beitrag von 675 von dem Router "e" führt. Wenn der Router "e" von einem Beitrag zu der Netzstrecke "a–b" beseitigt werden würde, dann könnten Kosten von 675 vermieden werden. Z. B. ist der Server 47 mit dem Router "e" in 5 verbunden. Wenn der Server 47 ein Nachbildungs-Server für den Datensatz in dem primären Cache "P" gemacht werden würde, dann würden die Kosten von 675 vermieden werden. Ferner würde diese Kostenvermeidung gegenüber den Kosten einer Nachbildung des Datensatzes in dem Server 47 ausgeglichen werden müssen. Diese Ausgleichung wird in den Schritt 414 und 416 ausgeführt, wie nachstehend beschrieben.
  • Für den Beitrag des Routers "d" findet der Schritt 410 die Tiefe (die Anzahl von Segmenten entlang des Pfads zu der Strecke a–b) als Drei: Segment d–h, Segment h–b, und Segment b–a. Dann multipliziert der Schritt 410 den Tiefenwert von Drei mit der Anzahl von Anforderungen pro Einheitszeit von dem Router "d" von 250, was zu einem Beitrag von 750 von dem Router "d" führt. Wenn der Router "d" von einem Beitrag zu der Netzstrecke "a–b" beseitigt würde, dann würden Kosten von 750 vermieden werden. Z. B. ist der Server 49 mit dem Router "d" in 5 verbunden. Wenn der Server 49 zu einem Nachbildungs-Server von dem Datensatz in dem primären Cache "P" gemacht würde, dann würden Kosten von 750 vermieden werden. Jedoch müsste diese Kostenvermeidung gegenüber den Kosten einer Replizierung des Datensatzes in dem Server 49 ausgeglichen werden. Diese Ausgleichung wird in den Schritten 414 und 416 ausgeführt, wie nachstehend beschrieben werden wird.
  • Für den Beitrag des Routers "c" findet der Schritt 410 die Tiefe (die Anzahl von Segmenten entlang des Pfads zu der Strecke) als Zwei: Segment c–b und Segment b–a. Dann multipliziert der Schritt 410 den Tiefenwert von Zwei mit der Anzahl von Anforderungen pro Einheitszeit von dem Router "c" von 175, was zu einem Beitrag von 350 von dem Router "c" führt. Wenn der Router "c" von einem Beitrag zu der Netzstrecke "a–b" beseitigt werden würde, dann könnten Kosten von 350 vermieden werden. Z. B. ist der Server 48 mit dem Router "c" in 5 verbunden. Wenn der Server 48 zu einem Nachbildungs-Server für den Datensatz in dem primären Cache "P" gemacht werden würde, dann könnten Kosten von 350 vermieden werden. Jedoch müsste diese Kostenvermeidung gegenüber den Kosten einer Nachbildung des Datensatzes an dem Server 48 ausgeglichen werden. Diese Ausgleichung wird in den Schritten 414 und 416 ausgeführt, wie nachstehend beschrieben werden wird.
  • Für den Beitrag des Routers "h" findet der Schritt 410 die Tiefe (die Anzahl von Segmenten entlang des Pfads zu der Strecke) als Zwei: Segment h–b und Segment b–a. Dann multipliziert der Schritt 410 den Tiefenwert von Zwei mit der Anzahl von Anforderungen pro Einheitszeit von dem Router "h" von 475, was zu einem Beitrag von 950 von dem Router "h" führt. Wenn der Router "h" von einem Beitrag zu der Netzstrecke "a–b" beseitigt werden würde, dann könnten Kosten von 950 vermieden werden. Z. B. ist der Server 44 mit dem Router "h" in 5 verbunden. Wenn der Server 44 zu einem Nachbildungs-Server für den Datensatz in dem primären Cache "P" gemacht werden würde, dann könnten Kosten von 950 vermieden werden. Jedoch müsste diese Kostenvermeidung gegenüber den Kosten einer Nachbildung des Datensatzes an dem Server 44 ausgeglichen werden. Diese Angleichung wird in den Schritten 414 und 416 ausgeführt, wie nachstehend beschrieben werden wird.
  • Für den Beitrag des lokalen Benutzerzugriffspunkts 8 findet der Schritt 410 die Tiefe (die Anzahl von Segmenten entlang des Pfads zu der Strecke) als Eins: Segment b–a. Dann multipliziert der Schritt 410 den Tiefenwert von Eins mit der Anzahl von Anforderungen pro Einheitszeit von dem lokalen Benutzerzugriffspunkt von 200, was zu einem Beitrag von 200 von dem lokalen Benutzerzugriffspunkt 8 führt. Wenn der lokale Benutzerzugriffspunkt 8 von einem Beitrag zu der Netzstrecke "a–b" beseitigt werden würde, dann könnten Kosten von 200 vermieden werden. Z. B. ist der Server 46 mit dem Router "b" in 5 verbunden. Wenn der Server 46 zu einem Nachbildungs-Server für den Datensatz in dem primären Cache "P" gemacht werden würde, dann würden Kosten von 850 vermieden werden. Jedoch müsste diese Kostenvermeidung gegenüber den Kosten einer Nachbildung des Datensatzes an dem Server 46 ausgeglichen werden. Diese Ausgleichung wird in den Schritten 414 und 416 ausgeführt, wie nachstehend beschrieben werden wird.
  • Für das Netz der 5 wird die Schleife, die an dem Schritt 306 beginnt mit der Strecke mit den nächst höchsten Kosten fortgesetzt, was die Netzstrecke "g–a" mit T = 100 ist.
  • Als nächstes wertet der Schritt 412 der 4 Kandidatenserverknoten auf Grundlage der berechneten Tiefen und Gewichtungen, die aus den Schritt 406, 408 und 410 bestimmt werden, aus. In dem Beispiel der 5 gibt es sechs Kandidatenserver, auf denen ein Nachbildungs-Cache des Datensatzes in dem primären Cache "P" gespeichert werden kann. Der Server 42 ist über einen Router "f" mit dem Netz verbunden. Der Server 44 ist über einen Router "h" mit dem Netz verbunden. Der Server 46 ist über einen Router "b" mit dem Netz verbunden. Der Server 47 ist über einen Router "e" mit dem Netz verbunden. Der Server 48 ist über einen Router "c" mit dem Netz verbunden. Schließlich ist der Server 48 über einen Router "d" mit dem Netz verbunden.
  • Der Schritt 412 verwendet die Ergebnisse der Schleife, die von den voranstehend diskutierten Schritten 406, 408 und 410 ausgeführt werden. Wenn der Server 44 zu einem Nachbildungs-Server für den Datensatz in dem primären Cache "P" gemacht werden würde, dann würden Kosten von 950 vermieden werden. Wenn der Server 46 zu einem Nachbildungs-Server für den Datensatz in dem primären Cache "P" gemacht werden würde, dann würden Kosten von 850 vermieden werden. Wenn der Server 47 zu einem Nachbildungs-Server für den Datensatz in dem primären Cache "P" gemacht werden würde, dann würden Kosten von 675 vermieden werden. Wenn der Server 48 zu einem Nachbildungs-Server für den Datensatz in dem primären Cache "P" gemacht werden würde, dann würden Kosten von 350 vermieden. Wenn der Server 49 zu einem Nachbildungs-Server für den Datensatz in dem primären Cache "P" gemacht werden würde, dann würden Kosten von 750 vermieden werden. Beim Auswerten dieser Ergebnisse bestimmt der Schritt 412, dass der beste Kandidat für einen Nachbildungs-Cache der Server 44 ist, der mit dem Router "h" verbunden ist.
  • Als nächstes erzeugt der Schritt 414 der 4 ein versuchsweises neues Netzverkehrsmuster. Er tut dies, indem eine Zuweisung vorgenommen wird, dass der Verkehr des primären Caches, der vorangehend von denjenigen Routern in der Nähe des Kandidaten-Nachbildungs-Cache-Servers gerichtet wurde, umgeleitet wird, so dass er nicht an den Server des primären Caches geht, sondern an den Kandidaten-Server geht. Dann berechnet der Schritt 414 die Gesamtkosten C[T] des versuchsweisen neuen Netzverkehrsmusters.
  • 6 zeigt das Netz der 5 mit dem versuchsweisen neuen Netzverkehrsmuster gerichtet an den Kandidaten-Nachbildungs-Cache "A" auf dem Server 44 und an den primären Cache "P auf dem Server 40. Der Schritt 414 nimmt eine Zuweisung vor, dass der Verkehr des primären Caches, der vorher von denjenigen Routern d, e und f gerichtet wurde, die in der Nähe des Kandidaten-Nachbildungs-Cache-Servers 44 sind, umgeleitet wird, so dass er nicht an den Server 40 des primären Caches geht, sondern an den Kandidaten-Server 44. Dann berechnet der Schritt 414 die Gesamtkosten C[T] des versuchsweisen neuen Netzverkehrsmusters für das Netz der 6.
  • Die elf Netzstrecken, die die Router des versuchsweisen neuen Netzverkehrsmusters für das Netz der 6 untereinander verbinden, weisen den folgenden Verkehr auf. Die Netzstrecke "a–b", die die Router "a" und "b" verbindet, weist eine Nachrichtenverkehrsanzahl von Anforderungen pro Einheitszeit zu dem Server 40 von T = 375 auf. Die Netzstrecke "b–c", die die Router "b" und "c" verbindet, weist eine Nachrichtenverkehrsanzahl von Anforderungen pro Einheitszeit zu dem Server 40 von T = 175 auf. Die Netzstrecke "c–d", die die Router "c" und "d" verbindet, weist eine Nachrichtenverkehrsanzahl von Anforderungen pro Einheitszeit zu dem Server 40 von T = 0 auf. Die Netzstrecke "d–e", die die Router "d" und "e" verbindet, weist eine Nachrichtenverkehrsanzahl von Anforderungen pro Einheitszeit zu dem Server 40 von T = 0 auf. Die Netzstrecke "e–f", die die Router "e" und "f" verbindet, weist eine Nachrichtenverkehrsanzahl von Anforderungen pro Einheitszeit zu dem Server 40 von T = 0 auf. Die Netzstrecke "f–g", die die Router "f" und "g" verbindet, weist eine Nachrichtenverkehrsanzahl von Anforderungen pro Einheitszeit zu dem Server 40 von T = 0 auf. Die Netzstrecke "g–a", die die Router "g" und "a" verbindet, weist eine Nachrichtenverkehrsanzahl von Anforderungen pro Einheitszeit zu dem Server 40 von T = 50 auf. Die Netzstrecke "d–h", die die Router "d" und "h" verbindet, weist eine Nachrichtenverkehrsanzahl von Anforderungen pro Einheitszeit zu dem Nachbildungs-Cach-Server 44 von T = 250 auf. Die Netzstrecke "e–h", die die Router "e" und "h" verbindet, weist eine Nachrichtenverkehrsanzahl von Anforderungen pro Einheitszeit zu dem Nachbildungs-Cach-Server 44 von T = 225 auf. Die Netzstrecke "f–h", die die Router "f" und "h" verbindet, weist eine Nachrichtenverkehrsanzahl von Anforderungen pro Einheitszeit zu dem Nachbildungs-Cach-Server 44 von T = 50 auf. Die Netzstrecke "h–b", die die Router "h" und "b" verbindet, weist eine Nachrichtenverkehrsanzahl von Anforderungen pro Einheitszeit von T = 0 auf.
  • Die Bandbreitenkosten C[BW] für das Netz der 6 wird im Schritt 414 der 4 berechnet, um das Produkt der Proportionalitätskonstanten zugerechnet zu der Anzahl von Anforderungen pro Einheitszeit mal der Summe der Anzahl von Anforderungen pro Einheitszeit auf jeder Strecke zu sein. Für dieses Beispiel wird angenommen, dass die Kosten der Anzahl von Anforderungen pro Einheitszeit pro Megabit 0,1 sind. Die Summe der Werte von "T" für die elf Netzverbindungen ist 1125. Somit sind die Bandbreitenkosten C[BW], die im Schritt 414 für das Netz berechnet werden, 1125.
  • Als nächstes berechnet der Schritt 414 der 4 C[STO], die Speicherkosten an dem Basisort. Für dieses Beispiel ist dieser Wert 500. Als nächstes berechnet der Schritt 414 der 4 C[REP], die Nachbildungs-Kosten in dem einzelnen Nachbildungs-Cach-Server 44. In diesen Beispielen sind die Nachbildungs-Kosten pro Megabits (pro Tag) 50. Für eine zehn Megabit-Datei betragen diese Nachbildungs-Kosten C[REP] 500. Als nächstes berechnet der Schritt 414 der 4 C[OC], die Gelegenheits-Kosten. Da erwartet wird, dass die Hinzufügung des Nachbildungs-Caches "A" sämtliche Benutzeranforderungen für einen Zugriff auf die Datenbank erfüllt, ist der Wert von C[OC] für die Gelegenheitskosten für dieses Beispiel null. Als nächstes berechnet der Schritt 414 der 4 C[UP], die Aktualisierungskosten im Zusammenhang mit der Aktualisierung der nachgebildeten Kopien, um sie davor abzuhalten schal oder abgestanden zu werden. Die Aktualisierungskosten sind für dieses Beispiel 100. Somit berechnet der Schritt 414 der 4 C[T] = C[BW] + C[STO] + C[REP] + C[OC] + C[UP], so dass er einen Wert von 1125 + 500 + 500 + 0 + 100 = 2225 aufweist.
  • Als nächstes entscheidet der Schritt 416 der 4, ob das versuchsweise neue Netzverkehrsmuster niedrigere Gesamtkosten C[T] bereitstellt als dies die existierende Verteilung von Caches tut. Für das Netz der 6 bestimmt der Schritt 416 dass das versuchsweise neue Netzverkehrsmuster niedrigere Gesamtkosten C[T] von 2225 bereitstellt, als dies die existierende Verteilung von Caches in 5 tut, die Gesamtkosten C[T] von 3125 aufweist. Somit entscheidet der Schritt 416, dass das versuchsweise neue Netzverkehrsmuster der 6 implementiert werden sollte und die Basis für eine neue Router-Zuweisung die Router des Netzes wird.
  • Als nächstes sendet der Schritt 418 der 4 eine neue Zuweisung an sämtliche Router. Für das Beispiel der 6 sendet der Router "a" die neue Router-Tabelle 336, wie in 7B gezeigt, an die Router b, c, d, e, f g und h. Dies illustriert das Prinzip der Gruppen-Versendung (des Gruppen-Casting) durch die Erfindung, bei der eine einzelne Router-Tabelle 336 an viele Netzrouter verteilt wird, um selektiv die Identität des Ziel-Caches in Abhängigkeit von der Identität des Routers, der die Routing-Funktion ausführt, bereitzustellen. Die Zuweisungsnachricht 210 ist in 8A gezeigt. Die Zuweisungsnachricht 210 umfasst ein Feld 212, das den Zielrouter spezifiziert, ein Feld 214 das den Quellen-Router spezifiziert, und ein Feld 216, das die neue Routing-Zuweisung spezifiziert, die von dem Kosten/Nutzen-Analysealgorithmus 415 spezifiziert wird. Eine Nachbildungs-Nachricht 802, die in 8B gezeigt ist, wird von dem Router "a" z. B. an den Router "h" gesendet, um eine Kopie des Datensatzes als Nachbildungs-Cache "A" an dem neuen Server 44 bereitzustellen. Das Feld 212 spezifiziert einen Zielrouter "h". Das Feld 214 spezifiziert den Quellenrouter als Router "a".
  • Der Schritt 418 der 4 geht dann durch eine Schleife zurück an den Schritt 402. Die Schleife zurück zum Schritt 402 kann an dem Schritt 420 verzögert werden, bis neue Verkehrsüberwachungsdaten von dem Router 30 empfangen worden sind. Die ursprüngliche existierende Router-Tabelle 334 in 7A wird gelöscht. Die neue Router-Tabelle 336 in 7B wird die neue existierende Router-Tabelle. Somit wertet das Programm 330 der 4 für die optimale Zuweisung von Nachbildungs-Caches periodisch die Verkehrsverteilung in dem Netz aus, wodurch es sich auf ändernde Verkehrsmuster anpasst.
  • Das Zuweisungsprogramm 330 erlaubt auch die Löschung von Nachbildung-Caches von dem Netz, wenn sie nicht mehr benötigt werden. Es sei angenommen, dass sich das Verkehrsmuster von demjenigen ändert, das in 6 gezeigt ist. Der lokale Benutzerzugriffspunkt 4 ändert sich auf eine Nachrichtenverkehrsanzahl von Anforderungen pro Einheitszeit an dem Nachbildungs-Cache "A"-Server 44 von T = 25. Der lokale Benutzerzugriffspunkt 3 ändert sich auf eine Nachrichtenverkehrsanzahl von Anforderungen pro Einheitszeit auf einen Nachbildungs-Cache "A"-Server 44 von T = 50. Dann berechnet der Schritt 412 den Nachteil einer Löschung des Nachbildungs-Caches "A" von dem Server 44. Der Schritt 412 bestimmt, dass die Erhöhung des Verkehrs auf den Strecken h–b und b–a T = 150 sein würde, wenn der Nachbildungs-Cache "a" gelöscht werden würde. Der Schritt 412 bestimmt auch, dass die Löschung des Nachbildungs-Cache "A" die Nachbildungs-Kosten von 500 einsparen würde. Der Schritt 412 erkennt, dass ein Nettogewinn von 350 existiert, wenn der Nachbildungs-Cache entfernt werden würde. Der Schritt 416 entscheidet dann den Nachbildungs-Cache "A" abzubauen. Der Schritt 418 sendet dann die neue Zuweisung an sämtliche Router in dem Netz.
  • In Übereinstimmung mit der Erfindung wird eine Umkehrbaum-Erzeugung verwendet, um die Caches in dem Netz im Ansprechen auf Verwendungsmuster dynamisch neu zu organisieren. Dies löst das Problem der dynamischen Art des Internets-Verkehrs, sowohl über der Zeit als auch über dem Ort. Es gibt Orte, die zu bestimmten Tageszeiten aktiv sind und zu anderen Zeiten als sehr inaktiv angesehen werden können. Die Erfindung beseitigt dies, indem sie ihre Entscheidung zum Replizieren (Nachbilden) von Caches dynamisch auf Grundlage von Verwendungsmustern trifft. Die Erfindung aktualisiert kontinuierlich "Wachstums-"Entscheidungen zum Hinzufügen von Nachbildungs-Caches und "Absägungs-"Entscheidungen, um sie zu löschen. Dies führt zu einem dynamischen Baum mit Servern an seinen sich dynamisch ändernden Kernorten. Effektiv wird ein Baum mit einer minimalen Gewichtsüberspannung (minimum weight spanning tree) "im Durchlauf" ("on the fly") gebaut. Um die Akkumulation von abgestandenen Daten an die Nachbildungs-Cach-Servers zu vermeiden wird jeder von diesen Servern kontinuierlich (wenn erforderlich) durch Verwendung eines Protokolls, wie einem Server-Cache-Synchronisationsprotokoll, aktualisiert.
  • Ein Aspekt der Implementierung der Erfindung ist die Vorgehensweise, mit der Benutzer auf den nachgebildeten Cach-Server zugreifen, der am nächsten zu ihnen ist. Eine Ausführungsform besteht darin Benutzer zu veranlassen zunächst ihren Zielpunkt zu erreichen und die Baumstruktur für diese Anwendung herauszufinden und dann eine Verbindung zu dem Knoten in dem überspannenden Baum herzustellen, der am geeignetsten ist. Eine alternative Ausführungsform besteht darin jede Anwendung als eine Multicast-Gruppe (Mehrfachversendungsgruppe) zu behandeln und zu bewirken, dass Benutzer, die anfragen der Gruppe beizutreten, entsprechend von einer Gruppenversendung (Groupcast) fähigen Routern geroutet (verzweigt) zu werden. Eine Gruppenversendung (Groupcast, GC) ist konzeptionell ähnlich zu der Mehrfachversendung, arbeitet jedoch in der entgegengesetzten Richtung. Ein GC-Router verfolgt eine aktualisierte Routing-Tabelle und wird unter normalen Bedingungen als ein regulärer Router arbeiten. Wenn ein neuer Minimalgewichtungs-Überspannungsbaum (minimum weight spanning tree) beginnt entwickelt zu werden, dann werden die Einträge in der Routing-Tabelle aktualisiert.
  • Die Erfindung stellt eine Vorgehensweise zum Ändern der Verteilung von Nachbildung-Caches auf Grundlage von dynamischen Verwendungsmustern bereit. Die Erfindung erreicht dies durch eine Umkehrbaum-Erzeugungstechnik. Die Erfindung verwendet die Gelegenheitskosten zum Verlieren von nicht erfolgreichen Kunden, um die Verteilung der Nachbildungs-Caches dynamisch zu optimieren.
  • Ein zusätzliches Merkmal des Überwachungsprozesses, der von dem Netzroutern ausgeführt wird, ist die Sammlung von Server-Trefferinformation für die zugrunde liegende Datensatzanwendung. Dies ist nützlich für Marktforschungen von dem Eigentümer des Datensatzes in dem Cache. Es gibt andere Merkmale der Erfindung, wie regionale Anwendungen, die die regionale Differenzierung in den Servern übernehmen. Z. B. werden regionale Ausgaben einer Zeitung, von Werbung, von Promotions etc. in den lokalen Servern plaziert.

Claims (4)

  1. Verfahren zum Verteilen von Nachbildungs-Caches von Information unter Bereichen eines Netzes, das eine Vielzahl von Bereichen (20, 22, 24, 26, 28, 29) einschließt, wobei jeder Bereich einen Router (30), einen Server (40) und eine Vielzahl von Benutzerterminals einschließt, wobei der Router den Server und die Vielzahl von Benutzerterminals mit dem Netz (10) koppelt, wobei das Verfahren die folgenden Schritte umfasst: Senden einer Überwachungsanforderungsnachricht (200) von einem ersten Router (30) in einem ersten Bereich (20) des Netzes an einen Router (32, 34, 36, 38, 39) in einem zweiten Bereich des Netzes, wobei von dem Router in dem zweiten Bereich ein Maß von Serviceanforderungen angefordert wird, die an den ersten Server (40) in dem ersten Bereich gerichtet werden, der eine primäre ("P") Kopie (40) von Information speichert; Feststellen, mit einem Prozessor (310), der zu dem ersten Router (30) gehört, des Maßes von Anforderungen, die von einer Vielzahl von Benutzerterminals (52, 54, 56, 58, 59) in der Vielzahl von Bereichen für die primäre Kopie (40) von Information durchgeführt werden; und wobei der Prozessor (310), im Ansprechen auf das Maß von Anforderungen (220), eine optimale Zuweisung an einen anderen Server (48) in einem anderen der Bereiche (28) des Netzes berechnet, um die Nachbildungs-Kopie ("B") der Information zu speichern, und wobei eine Nachricht (210) an einen Router (38) in dem anderen der Bereiche gesendet wird, um eine Nachbildungs-Kopie ("B") der Information als einen Nachbildungs-Cache zu speichern, wobei der Router (38) in dem anderen Bereich mittels einer Kosten/Nutzen-Analyse gewählt wird, die Gesamtkosten einer Verteilung von Caches in dem Netz berechnet; und wobei die optimale Zuweisung eine Verteilung von Nachbildungen der primären Kopie von Information ist, die Gesamtkosten von Nachrichten, die zwischen der Vielzahl von Benutzerterminals und einer existierenden Verteilung von Caches ausgetauscht werden, minimiert.
  2. Verfahren nach Anspruch 1, ferner umfassend den folgenden Schritt: im Ansprechen auf das Maß von Anforderungen (220), Übertragen einer Nachricht an einen Router (39) in wenigstens einem anderen Bereich (29), um die Anforderungen, die von Benutzerterminals durchgeführt werden, an den Nachbildungs-Cache umzuleiten, durch den Prozessor (310) in dem ersten Bereich.
  3. Verfahren nach Anspruch 1, ferner umfassend den folgenden Schritt: im Ansprechen auf das Maß von Anforderungen (220), Wählen des Routers (39) in wenigstens einem anderen Bereich (29) mittels einer Kosten/Nutzen-Analyse durch den Prozessor (310) in dem ersten Bereich.
  4. Verfahren nach Anspruch 1, ferner umfassend den folgenden Schritt: Berechnen der Kosten einer verpassten Gelegenheit einen Nachbildungs-Cache nicht zu haben, in der Kosten/Nutzen-Analyse.
DE69816183T 1997-06-09 1998-05-21 Dynamische Cache-Speicher-Vervielfältigung durch Erzeugung eines umgekehrten Baums in einem Netzwerk Expired - Fee Related DE69816183T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/871,106 US6189043B1 (en) 1997-06-09 1997-06-09 Dynamic cache replication in a internet environment through routers and servers utilizing a reverse tree generation
US871106 1997-06-09

Publications (2)

Publication Number Publication Date
DE69816183D1 DE69816183D1 (de) 2003-08-14
DE69816183T2 true DE69816183T2 (de) 2004-06-03

Family

ID=25356745

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69816183T Expired - Fee Related DE69816183T2 (de) 1997-06-09 1998-05-21 Dynamische Cache-Speicher-Vervielfältigung durch Erzeugung eines umgekehrten Baums in einem Netzwerk

Country Status (5)

Country Link
US (1) US6189043B1 (de)
EP (1) EP0884870B1 (de)
JP (1) JP4344024B2 (de)
CA (1) CA2237831C (de)
DE (1) DE69816183T2 (de)

Families Citing this family (77)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SE507720C2 (sv) 1997-06-12 1998-07-06 Telia Ab Arrangemang för lastbalansering i datornät
JPH1168795A (ja) * 1997-08-26 1999-03-09 Nec Corp サーバボード方式
US7035943B2 (en) * 1998-05-29 2006-04-25 Yahoo! Inc. Web server content replication
US6976093B2 (en) 1998-05-29 2005-12-13 Yahoo! Inc. Web server content replication
US7581006B1 (en) 1998-05-29 2009-08-25 Yahoo! Inc. Web service
US7143193B1 (en) * 1998-05-29 2006-11-28 Yahoo! Inc. Content collection
US6331984B1 (en) * 1998-08-21 2001-12-18 Nortel Networks Limited Method for synchronizing network address translator (NAT) tables using the server cache synchronization protocol
US6178441B1 (en) * 1998-09-21 2001-01-23 International Business Machines Corporation Method and system in a computer network for the reliable and consistent ordering of client requests
US6477582B1 (en) * 1998-12-16 2002-11-05 Nortel Networks Limited Method and apparatus for conservative link selection
US6438606B1 (en) * 1998-12-23 2002-08-20 Cisco Technology, Inc. Router image support device
DE19900636B8 (de) * 1999-01-11 2005-04-07 Gailer, Peter Datenzugriffs- und -verwaltungssystem sowie Verfahren zum Datenzugriff und zur Datenverwaltung für ein Rechnersystem sowie deren Verwendung
US6502175B1 (en) * 1999-03-31 2002-12-31 Lucent Technologies Inc. Method and apparatus for locating caches in a network to optimize performance
EP1049028A3 (de) * 1999-04-26 2001-01-31 Sarnoff Corporation Effiziente Endgebraucherinformationsverteilung
US6751191B1 (en) 1999-06-29 2004-06-15 Cisco Technology, Inc. Load sharing and redundancy scheme
US6457011B1 (en) * 1999-07-23 2002-09-24 Microsoft Corporation Method of updating a shared database in a computer network
US7349979B1 (en) * 1999-12-02 2008-03-25 Cisco Technology, Inc. Method and apparatus for redirecting network traffic
US6839829B1 (en) 2000-01-18 2005-01-04 Cisco Technology, Inc. Routing protocol based redundancy design for shared-access networks
US7058007B1 (en) 2000-01-18 2006-06-06 Cisco Technology, Inc. Method for a cable modem to rapidly switch to a backup CMTS
US20020091855A1 (en) * 2000-02-02 2002-07-11 Yechiam Yemini Method and apparatus for dynamically addressing and routing in a data network
US6735623B1 (en) * 2000-02-09 2004-05-11 Mitch Prust Method and system for accessing a remote storage area
GB0005653D0 (en) * 2000-03-09 2000-05-03 Avantis Ltd Computer network
US7162539B2 (en) 2000-03-16 2007-01-09 Adara Networks, Inc. System and method for discovering information objects and information object repositories in computer networks
US7395348B1 (en) * 2000-06-05 2008-07-01 Cisco Technology, Inc. Network cache-based content routing
US6950853B2 (en) * 2000-06-27 2005-09-27 The Regents Of The University Of California Multisite coordination in shared multicast trees
US7590558B2 (en) * 2000-09-26 2009-09-15 I2 Technologies Us, Inc. System and method for facilitating electronic commerce transactions
US6708161B2 (en) 2000-09-26 2004-03-16 I2 Technologies Us, Inc. System and method for selective database indexing
US20020111870A1 (en) * 2000-09-26 2002-08-15 I2 Technologies, Inc. System and method for identifying a product
US7299255B2 (en) * 2000-09-26 2007-11-20 I2 Technologies Us, Inc. System and method for migrating data in an electronic commerce system
US7743125B1 (en) * 2000-11-09 2010-06-22 General Electric Company Computer multiple communications port unit
US7146429B2 (en) * 2001-03-16 2006-12-05 The Aerospace Corporation Cooperative adaptive web caching routing and forwarding web content data requesting method
US7555561B2 (en) * 2001-03-19 2009-06-30 The Aerospace Corporation Cooperative adaptive web caching routing and forwarding web content data broadcasting method
US20020184403A1 (en) * 2001-04-06 2002-12-05 Dahlin Michael D. Methods for near-optimal bandwidth-constrained placement in a wide-area network
US7975042B2 (en) 2001-05-01 2011-07-05 International Business Machines Corporation Method for adapting an internet web server to short-term changes in demand
US7349868B2 (en) * 2001-05-15 2008-03-25 I2 Technologies Us, Inc. Pre-qualifying sellers during the matching phase of an electronic commerce transaction
US6983276B2 (en) * 2001-05-15 2006-01-03 I2 Technologies Us, Inc. Facilitating electronic commerce transactions using buyer profiles
US7475030B1 (en) 2001-05-16 2009-01-06 I2 Technologies Us, Inc. Facilitating electronic commerce transactions using a shared product data repository
US7263515B1 (en) * 2001-06-18 2007-08-28 I2 Technologies Us, Inc. Content enhancement in an electronic marketplace
US7881208B1 (en) 2001-06-18 2011-02-01 Cisco Technology, Inc. Gateway load balancing protocol
US7330829B1 (en) 2001-06-26 2008-02-12 I2 Technologies Us, Inc. Providing market feedback associated with electronic commerce transactions to sellers
US7809672B1 (en) 2001-06-28 2010-10-05 I2 Technologies Us, Inc. Association of data with a product classification schema
US8086643B1 (en) 2001-06-28 2011-12-27 Jda Software Group, Inc. Translation between product classification schemas
US7346560B1 (en) 2001-06-29 2008-03-18 I2 Technologies Us, Inc. Protecting content from unauthorized reproduction
US7162453B1 (en) 2001-06-29 2007-01-09 I2 Technologies Us, Inc. Protecting content from unauthorized reproduction
US7290059B2 (en) * 2001-08-13 2007-10-30 Intel Corporation Apparatus and method for scalable server load balancing
EP1298854A1 (de) * 2001-10-01 2003-04-02 Hewlett-Packard Company Datenverteilung in einem gleichrangigen Netz
US7409396B2 (en) * 2002-02-08 2008-08-05 Pitts William M Method for creating an extensible content distribution framework
GB2385683A (en) * 2002-02-22 2003-08-27 Thirdspace Living Ltd Distribution system with content replication
US7412424B1 (en) 2002-03-19 2008-08-12 I2 Technologies Us, Inc. Third party certification of content in electronic commerce transactions
US8516114B2 (en) * 2002-03-29 2013-08-20 International Business Machines Corporation Method and apparatus for content pre-fetching and preparation
JP3729265B2 (ja) * 2002-08-22 2005-12-21 日本電気株式会社 ネットワークシステム、スパニングツリー構成方法、スパニングツリー構成ノード、及びスパニングツリー構成プログラム
US7917646B2 (en) * 2002-12-19 2011-03-29 Intel Corporation Speculative distributed conflict resolution for a cache coherency protocol
US7111128B2 (en) * 2002-12-19 2006-09-19 Intel Corporation Hierarchical virtual model of a cache hierarchy in a multiprocessor system
US6922756B2 (en) * 2002-12-19 2005-07-26 Intel Corporation Forward state for use in cache coherency in a multiprocessor system
US20040260745A1 (en) * 2003-06-18 2004-12-23 Gage Christopher A. S. Load balancer performance using affinity modification
US7593346B2 (en) 2003-07-31 2009-09-22 Cisco Technology, Inc. Distributing and balancing traffic flow in a virtual gateway
US8655755B2 (en) * 2003-10-22 2014-02-18 Scottrade, Inc. System and method for the automated brokerage of financial instruments
US7856493B1 (en) * 2004-03-17 2010-12-21 Cisco Technology, Inc. Method and apparatus providing device-initiated network management
US7822929B2 (en) * 2004-04-27 2010-10-26 Intel Corporation Two-hop cache coherency protocol
US20050240734A1 (en) * 2004-04-27 2005-10-27 Batson Brannon J Cache coherence protocol
US20050262250A1 (en) * 2004-04-27 2005-11-24 Batson Brannon J Messaging protocol
CA2594267C (en) * 2005-01-06 2012-02-07 J. Barry Thompson End-to-end publish/subscribe middleware architecture
CA2594036A1 (en) 2005-01-06 2006-07-13 Tervela, Inc. Intelligent messaging application programming interface
US8010644B1 (en) * 2005-02-23 2011-08-30 Sprint Communications Company L.P. Method and system for deploying a network monitoring service within a communication network
US7395381B2 (en) * 2005-03-18 2008-07-01 Intel Corporation Method and an apparatus to reduce network utilization in a multiprocessor system
US8589530B2 (en) * 2005-03-28 2013-11-19 Riverbed Technology, Inc. Method and system for managing a distributed network of network monitoring devices
JP4635682B2 (ja) * 2005-03-29 2011-02-23 ブラザー工業株式会社 情報処理装置、情報処理方法及び情報処理用プログラム
US20060224773A1 (en) * 2005-03-31 2006-10-05 International Business Machines Corporation Systems and methods for content-aware load balancing
US8126990B2 (en) 2005-04-21 2012-02-28 Fiducci Thomas E Data backup and transfer system, method and computer program product
US7849165B2 (en) 2005-04-21 2010-12-07 Fiducci Thomas E Data backup, storage, transfer, and retrieval system, method and computer program product
JP4786255B2 (ja) * 2005-08-29 2011-10-05 株式会社日立製作所 ストレージシステム及び記憶制御方法
JP2007128371A (ja) * 2005-11-04 2007-05-24 Fujitsu Ltd コンテンツ検索システム
US20070147376A1 (en) * 2005-12-22 2007-06-28 Sun Microsystems, Inc. Router-assisted DDoS protection by tunneling replicas
CN101764833B (zh) * 2008-12-24 2013-01-23 中国移动通信集团公司 一种资源节点信息通知方法及网络实体装置
CN101778005B (zh) * 2010-03-05 2014-03-12 中兴通讯股份有限公司 复杂网络配置方法和系统
JP5419909B2 (ja) * 2011-02-18 2014-02-19 日本電信電話株式会社 キャッシュ設計装置、及びキャッシュ設計方法
CN109558990B (zh) * 2018-12-15 2022-11-08 国网福建省电力有限公司 一种基于斯坦纳树模型的配电网防灾骨干网架规划方法
US12099519B1 (en) * 2021-12-10 2024-09-24 Amazon Technologies, Inc. Replicated events in a multi-region network

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5475842A (en) * 1993-08-11 1995-12-12 Xerox Corporation Method of compilation optimization using an N-dimensional template for relocated and replicated alignment of arrays in data-parallel programs for reduced data communication during execution
US5450313A (en) * 1994-03-24 1995-09-12 Xerox Corporation Generating local addresses and communication sets for data-parallel programs
US5495419A (en) * 1994-04-19 1996-02-27 Lsi Logic Corporation Integrated circuit physical design automation system utilizing optimization process decomposition and parallel processing
US5535195A (en) 1994-05-06 1996-07-09 Motorola, Inc. Method for efficient aggregation of link metrics
US5608649A (en) 1994-05-16 1997-03-04 Gopinath; Bhaskarpillai Directly programmable networks
DE69429983T2 (de) 1994-05-25 2002-10-17 International Business Machines Corp., Armonk Datenübertragungsnetz und Verfahren zum Betreiben des Netzes
US5581753A (en) * 1994-09-28 1996-12-03 Xerox Corporation Method for providing session consistency guarantees
US5758257A (en) * 1994-11-29 1998-05-26 Herz; Frederick System and method for scheduling broadcast of and access to video programs and other data using customer profiles
US6181867B1 (en) * 1995-06-07 2001-01-30 Intervu, Inc. Video storage and retrieval system
US5774668A (en) * 1995-06-07 1998-06-30 Microsoft Corporation System for on-line service in which gateway computer uses service map which includes loading condition of servers broadcasted by application servers for load balancing
US6097882A (en) * 1995-06-30 2000-08-01 Digital Equipment Corporation Method and apparatus of improving network performance and network availability in a client-server network by transparently replicating a network service
US5771355A (en) * 1995-12-21 1998-06-23 Intel Corporation Transmitting electronic mail by either reference or value at file-replication points to minimize costs
US5781901A (en) * 1995-12-21 1998-07-14 Intel Corporation Transmitting electronic mail attachment over a network using a e-mail page
US5903723A (en) * 1995-12-21 1999-05-11 Intel Corporation Method and apparatus for transmitting electronic mail attachments with attachment references
US5864854A (en) * 1996-01-05 1999-01-26 Lsi Logic Corporation System and method for maintaining a shared cache look-up table
CA2170564A1 (en) * 1996-02-28 1997-08-29 Frank Michael Kappe Method of propagating data through a distributed information network
US5854899A (en) * 1996-05-09 1998-12-29 Bay Networks, Inc. Method and apparatus for managing virtual circuits and routing packets in a network/subnetwork environment
US6061332A (en) * 1996-06-25 2000-05-09 Mci Communications Corporation System and method for the automated configuration of network elements in a telecommunications network
US5920697A (en) * 1996-07-11 1999-07-06 Microsoft Corporation Method of automatic updating and use of routing information by programmable and manual routing information configuration based on least lost routing
US6052718A (en) * 1997-01-07 2000-04-18 Sightpath, Inc Replica routing
US5924116A (en) * 1997-04-02 1999-07-13 International Business Machines Corporation Collaborative caching of a requested object by a lower level node as a function of the caching status of the object at a higher level node
US6011782A (en) * 1997-05-08 2000-01-04 At&T Corp. Method for managing multicast addresses for transmitting and receiving multimedia conferencing information on an internet protocol (IP) network
US6070191A (en) * 1997-10-17 2000-05-30 Lucent Technologies Inc. Data distribution techniques for load-balanced fault-tolerant web access

Also Published As

Publication number Publication date
JPH1145204A (ja) 1999-02-16
JP4344024B2 (ja) 2009-10-14
US6189043B1 (en) 2001-02-13
EP0884870A2 (de) 1998-12-16
EP0884870A3 (de) 1999-12-01
EP0884870B1 (de) 2003-07-09
CA2237831C (en) 2002-07-30
CA2237831A1 (en) 1998-12-09
DE69816183D1 (de) 2003-08-14

Similar Documents

Publication Publication Date Title
DE69816183T2 (de) Dynamische Cache-Speicher-Vervielfältigung durch Erzeugung eines umgekehrten Baums in einem Netzwerk
DE3785524T2 (de) Adaptive gebührabhängige Verkehrsleitweglenkung und automatisches Netzwerkhandhabungssystem für Fernmeldenetzwerke mit mehreren Diensten.
DE69626052T2 (de) System und Verfahren zum Verteilen der Belastung eines Datei-Servers
DE69829830T2 (de) Weglenkungsverfahren unter Anwendung eines genetischen Algorithmus
DE69433968T2 (de) Kommunikationsnetwerkverwaltung
DE69834731T2 (de) Arrangement zum gemeinsamen laden in computernetzwerken
DE60014645T2 (de) Datensicherungsvorrichtung für eine internet-server-sitzung
DE69323963T2 (de) Verteilte Durchführung von Routenauswahl über Netzwerke und Teilnetzwerke
DE69124404T2 (de) Real-Zeit-Leitweglenkung in einem Netzwerk
DE69422436T2 (de) Netzanalysenverfahren
DE69730056T2 (de) Routen von duplikaten
DE69935920T2 (de) Lastausgleich in einer netzwerkumgebung
DE69832002T2 (de) Übertragungssystem und Übertragungsverfahren,Empfangssystem und Empfangsverfahren
DE3880501T2 (de) Netzwerkverkehrsleitwegsteuerung.
DE69227665T2 (de) Verfahren zum Betrieb eines Rechners in einem Netz
DE69829759T2 (de) Verteilung von nachrichten zu dienststeuereinrichtungen
DE69534729T2 (de) Verfahren zur Anfragelenkung für eine virtuelle Verbindung in Abhängigkeit vor Informationen über gleichzeitige Anfragen
DE69533838T2 (de) Verfahren und System zur Aktualisierung der nachgebildeten Datenbanken in Fernsprechnetzen
DE69528997T2 (de) Verbesserte nachrichten warteschlangenverteildienste für mitteilungssysteme
DE69925897T2 (de) Verwaltung von gruppenadressen in mobilendgeräten
DE69331374T2 (de) Gerät und Verfahren zur automatischen Registrierung der Identitätsinformationen von Netzeinheiten
DE69927457T2 (de) Verfahren und Vorrichtung zur Cache-Speicherung von Informationen im Netzwerk
EP0700224A3 (de) Verfahren zur adaptiven Wegesuche in einem Kommunikationsnetz
DE602004005785T2 (de) Dynamische Leitweglenkung in einem inhaltbasierten verteilten Netzwerk
DE60030508T2 (de) Netzwerkzustandsserver, Informationsverteilungssystem, Steuerverfahren, und Speichermedium zur Speicherung eines Steuerungsprogramms

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee