-
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.