-
Urheberrechtshinweis/Erlaubnis
-
Ein
Abschnitt der Offenbarung dieser Patentliteratur enthält Material,
das Gegenstand von Urheberrechtsschutz ist. Der Urheberrechtsinhaber
hat keinen Einwand gegen die Faksimile-Reproduktion durch irgendjemanden
der Patentliteraturstelle oder der Patentoffenbarung, wie sie in
der Patentakte oder Aufzeichnungen des Patent- und Warenzeichenamtes
erscheint, reserviert aber andererseits alle welche auch immer Urheberrechte.
Der folgende Hinweis trifft auf die Software und Daten, wie nachstehend
beschrieben, und in beliebigen Zeichnungen dazu zu: Copyright © 2002, Volera,
Inc., alle Rechte vorbehalten.
-
Gebiet der
Erfindung
-
Die
vorliegende Erfindung bezieht sich auf Inhaltsverteilungsnetze,
und insbesondere auf eine Anreicherung eines Baums für ein Inhaltsverteilungsnetz.
-
Hintergrund
der Erfindung
-
Netzbandbreite
wird zunehmend eine Herausforderung, da Ressourcen, die zuvor aufgestellt werden,
für eine
Handhabung von steigendem Verkehr unzureichend werden. Viele Probleme
haben zu dieser nicht vorhergesehenen Erweiterung in der Verwendung
von Netzbandbreite beigetragen. Eines der Probleme ist die stets
ansteigende Verwendung digitaler Medien, die für Ausbildung und elektronisches
Lernen verwendet werden.
-
Entsprechend
haben Organisationen entdeckt, dass Fern-Netzmeetings und/oder Ausbildung unter
Verwendung von Multimedia-Inhalt
für eine spezifische
Aufgabe für
die Organisation weit weniger aufwändig ist als Fliegen von Meeting-Koordinatoren
und/oder Lehrkräften
zu entfernten geografischen Standorten.
-
Auf
dem Gebiet von Unterhaltung haben außerdem viele die Bequemlichkeit
von Auswahl und Betrachtung von Medien von einem gewünschten Standort
viel verlockender gefunden als Durchführen einer Fahrt zu einem Geschäft, Durchsuchen
von Medieninventar, Prüfen
einer gewünschten
Auswahl und Rückkehr,
um die Medien in dem gewünschten Standort
zu betrachten. Ferner eskaliert das Problem wegen der steigenden
Verwendung von Netzen, um erhebliche Mediendateien zu entfernten
Betrachtungsstandorten rechtzeitig für gewünschte Ereignisse zu verschieben,
rasch. Altlast-Netzinfrastruktur wird über ihre gedachte Kapazität hinaus
belastet, und der Aufwand, der mit einer Aufstellung zusätzlicher
oder neuer Netzressourcen in Verbindung steht, ist für Organisationen
häufig
ausgeschlossen.
-
Konventionell
wird ein Netz in höhere
Ebenen der Abstraktion abstrahiert, um die Komplexitäten des
unterliegenden physischen Netzes zu vereinfachen. Die Abstraktion
wird gewöhnlich
als eine Überlagerung
auf dem physischen Netz betrachtet. Außerdem wird auf die Abstraktion
häufig
als eine Topologie oder logische Abbildung des Netzes verwiesen.
Die Abbildung enthält
Knoten, die physische (z.B. Server) oder logische (z.B. Anwendungen)
Ressourcen des Netzes darstellen. Die Abbildung enthält auch
Verknüpfungen,
die physische (z.B. Medienkanäle)
oder logische (z.B. Protokolle) Kommunikationen zwischen den Knoten
darstellen. Ein Pfad von einem Eingangs- oder Zugangsknoten zu einem oder mehr
Ausgangs- oder Ausstiegsknoten kann innerhalb der Abbildung durch
Verbinden von Knoten und Verknüpfungen
auf eine geordnete Art und Weise definiert werden. Die Knoten und
Verknüpfungen
können
auch Kos ten enthalten, die durch Richtlinien für das Netz bestimmt sind. Somit
kann ein Pfad von einem Zugangsknoten zu einem Ausstiegsknoten zugehörige Kosten
haben. Die Richtlinien können
eine Vielfalt von Metrik oder Attributen für jede der Verknüpfungen
und/oder Knoten enthalten, wie etwa verfügbare Bandbreite, geografischer
Abstand, Medienübertragungskanal
und dergleichen.
-
Sobald
die Knoten, Verknüpfungen
und Richtlinien bekannt sind, können
Umspannungsbaumalgorithmen (spanning tree algorithms) verwendet werden,
um hierarchische Bäume
innerhalb der Topologie zu generieren. Außerdem existiert eine Vielfalt
von Algorithmen eines besten Pfades (best-path algorithms), um Pfade
mit geringsten Kosten zu erzeugen, die zum Transferieren von Daten
von einem Zugangsknoten zu Ausstiegsknoten innerhalb eines Baums
der Topologie verwendet werden können. Existierende
Techniken beruhen jedoch auf Software und Hardware, die mit dem
physischen Netz in Verbindung stehen, um die Daten durch das Netz
umzuleiten, sollte irgendein bestimmter Knoten oder eine Verknüpfung ausfallen,
wenn die Daten innerhalb des Netzes im Durchgang sind. Diese Techniken
sind nicht optimal, da die unterliegende Software und Hardware des
physischen Netzes einen neuen Durchgangspfad für die Daten dynamisch neu kalkulieren
müssen,
wenn Fehler erfasst werden. Wenn Neukalkulationen benötigt werden,
können
des weiteren die unterliegende Software und/oder Hardware des physischen
Netzes belastet werden oder gerade andere wichtige Operationen durchführen. Als
ein Ergebnis können
die Daten nicht optimal, effizient und/oder zeitgerecht durch das
Netz bewegt werden, wenn dynamische Umleitung benötigt wird.
Außerdem
kann die ursprüngliche
Struktur eines beliebigen verwendeten Baums verloren gehen oder
nicht effizient aufrechterhalten werden, wenn dynamische Umleitung
durchgeführt
wird.
-
Da
konventionelle Ansätze
dynamische Umleitung verwenden, wenn Fehler während eines Datentransfers
erfasst werden, wird wenig empirisches Wissen, das ein Netzadministrator
mit Bezug auf sein/ihr Netz haben kann, während der Umleitung verwendet.
Z.B. kann eine Organisation eines Landes in der Dritten Welt häufig Verknüpfungs-
oder Kommunikationsausfälle über eine
spezifische Verknüpfung
erfahren, während
eine andere Organisation häufigen
heftigen Verkehr in einem spezifischen Knoten während gewisser Stunden des
Tages erfährt.
Da dieses empirische Wissen nicht vollständig genutzt werden kann, wenn
dynamische Umleitung auftritt, können
somit Umleitungspfade für
einen Netzadministrator konsistent und unnötig problematisch sein.
-
Wie
einem Durchschnittsfachmann nun offensichtlich ist, existiert eine
Notwendigkeit für
verbesserte Techniken, die angereicherte Bäume für Inhaltsverteilungsnetze erzeugen.
Die Notwendigkeit ist besonders in Netzen großen Maßstabs, Netzen mit starkem
Verkehr und/oder Netzen, die große Mediendateien verarbeiten,
wünschenswert.
Des weiteren sollten die Techniken eine dynamische Umleitungskalkulation
nicht erfordern, wenn Knoten und/oder Verknüpfungen des Netzes während eines Datentransfers
ausfallen. Außerdem
sollten die Techniken flexibel genug sein, um das empirische Wissen von
Netzadministratoren mit Bezug auf ihre eigenen individuellen Netze
und Erfahrungen, die darauf bezogen sind, zu erfassen.
-
US 6047231 offenbart ein
Verfahren zum Generieren erster und zweiter Baumtopologien für einen
beliebigen Quellknoten in einem Netz, der als ein Knoten oder ein
kantenredundanter Graph dargestellt werden kann, derart, dass ein
beliebiger Knoten in dem Graph mit dem Quellknoten über mindestens einen
Baum verbunden bleibt, selbst nach dem Ausfall eines Knotens oder
einer Kante.
-
Zusammenfassung
der Erfindung
-
In
verschiedenen Ausführungsformen
der vorliegenden Erfindung werden Techniken zum Anreichern eines
Verteilungsbaums eines Inhaltsverteilungsnetzes beschrieben. Der
angereicherte Baum repräsentiert
eine Abbildung, die geplante Pfade enthält, um Daten durch das Inhaltsverteilungsnetz
zu bewegen, und einen oder mehr alternative Pfade, um die Daten
umzuleiten, sollte ein Fehler mit einer oder mehr Verknüpfungen
und/oder Knoten des Inhaltsverteilungsnetzes auftreten. Der angereicherte
Baum oder erweiterte Baum kann als ein gerichteter Graph (kann zyklisch
sein) mit einem oder mehr alternative Pfaden, auf die innerhalb
des angereicherten Baums zugegriffen werden kann, gesehen werden.
-
Genauer
und in einer Ausführungsform
der vorliegenden Erfindung wird ein Verfahren, um einen Baum für ein Inhaltsverteilungsnetz
anzureichern, präsentiert.
Der Baum für
das Inhaltsverteilungsnetz wird empfangen und es wird auch eine
Anforderung empfangen, die alternativen Pfade für den Baum zu generieren. Außerdem werden
die alternativen Pfade basierend auf der Anforderung generiert.
Ferner werden die alternativen Pfade vor einer Verwendung des Baums
generiert, um Daten durch das Inhaltsverteilungsnetz zu transferieren.
-
In
einer anderen Ausführungsform
der vorliegenden Erfindung wird ein anderes Verfahren beschrieben,
um einen Baum für
ein Inhaltsverteilungsnetz anzureichern. Der Baum wird für das Inhaltsverteilungsnetz
angefordert und präsentiert.
Es wird ein gewünschter
Grad von alternativen Pfaden, die für den Baum zu generieren sind,
empfangen. Als Nächstes
werden alternative Pfade unter Verwendung des gewünschten
Grades und des Baums generiert. Des weiteren werden die Pfade mit
den Baum in Verbindung gebracht, bevor Daten über das Inhaltsverteilungsnetz
unter Verwendung des Baums transferiert werden.
-
In
noch einer anderen Ausführungsform
der vorliegenden Erfindung wird ein System, um einen Baum für ein Inhaltsverteilungsnetz
anzureichern, präsentiert.
Das System enthält
einen Baum, ein Sprungelternmodul (skip parent module) und ein Verbindungsmodul
(join module). Es wird ein Umspannungsbaumalgorithmus verwendet,
um den Baum zu generieren. Außerdem
enthält
der Baum eine Vielzahl von Verknüpfungen
zwischen Knoten, und einen oder mehr geplante Pfade zum Bewegen
von Daten durch das Inhaltsverteilungsnetz. Das Sprungelternmodul
wird verwendet, um eine Zahl der alternativen Pfade zu generieren,
falls ein Elternknoten (Parentknoten) innerhalb des Inhaltsverteilungsnetzes
ausfällt.
Das Verbindungsmodul wird verwendet, um eine Zahl der alternativen
Pfade zu generieren, falls eine Verknüpfung innerhalb des Inhaltsverteilungsnetzes ausfällt. Ferner
werden die alternativen Pfade mit dem Baum in Verbindung gebracht,
bevor die Daten durch das Inhaltsverteilungsnetz bewegt werden.
-
In
noch einer anderen Ausführungsform
der vorliegenden Erfindung wird eine erweiterte Baumdatenstruktur
beschrieben, die sich auf einem computerlesbaren Medium befindet
zum Vorsehen alternativer Pfade, wenn Daten durch ein Inhaltsverteilungsnetz
bewegt werden. Die erweiterte Baumdatenstruktur enthält einen
Baum mit Zugriff auf einen oder mehr alternative Pfade innerhalb
des Baums. Der Baum wird innerhalb einer Topologie des Inhaltsverteilungsnetzes
dargestellt und enthält
einen Zugangsknoten, Zwischenknoten, einen oder mehr Ausstiegsknoten,
Verknüpfungen
zwischen den Knoten und einen oder mehr geplante Pfade von dem Zugangsknoten
zu den Ausstiegsknoten zum Bewegen von Daten durch das Inhaltsverteilungsnetz.
Der eine oder mehr alternative Pfad erweitert die geplanten Pfade
zum Bewegen der Daten um potenzielle Fehler herum in den Knoten
und/oder den Verknüpfungen, wenn
die Daten durch das Inhaltsverteilungsnetz bewegt werden.
-
Noch
andere Aspekte der vorliegenden Erfindung werden einem Fachmann
aus der folgenden Beschreibung von verschiedenen Ausführungsformen
offensichtlich. Wie erkannt wird, ist die Erfindung zu anderen Ausführungsformen
fähig,
alle ohne Abweichung von der vorliegenden Erfindung. Entsprechend
sind die Zeichnungen und Beschreibungen veranschaulichend in ihrem
Wesen und nicht gedacht, einschränkend
zu sein.
-
Kurze Beschreibung
der Zeichnungen
-
1A ist
ein Diagramm einer Beispieltopologie eines Inhaltsverteilungsnetzes
gemäß einer Ausführungsform
der vorliegenden Erfindung;
-
1B ist
ein Diagramm einer Beispieltopologie, das Anreicherung von 1A darstellt,
gemäß einer
Ausführungsform
der vorliegenden Erfindung;
-
2 ist
ein Flussdiagramm, das ein Verfahren darstellt, um einen Baum anzureichern,
gemäß einer
Ausführungsform
der vorliegenden Erfindung;
-
3 ist
ein Flussdiagramm, das ein anderes Verfahren darstellt, um einen
Baum anzureichern, gemäß einer
Ausführungsform
der vorliegenden Erfindung;
-
4 ist
ein Diagramm eines Systems, um einen Baum anzureichern, gemäß einer
Ausführungsform
der vorliegenden Erfindung; und
-
5 ist
ein Diagramm einer Datenstruktur, die einen erweiterten Baum darstellt,
gemäß einer Ausführungsform
der vorliegenden Erfindung.
-
Detaillierte
Beschreibung der Erfindung
-
In
der folgenden Beschreibung wird auf die begleitenden Zeichnungen
Bezug genommen, die einen Teil von ihr bilden, und in denen als
Veranschaulichung spezifische Ausführungsformen gezeigt werden,
in denen die Erfindung praktiziert werden kann. Diese Ausführungsformen
werden ausreichend detailliert beschrieben, um einem Durchschnittsfachmann
zu ermöglichen,
die Erfindung zu praktizieren, und es ist zu verstehen, dass andere
Ausführungsformen
genutzt werden können,
und dass strukturelle, logische, optische und elektrische Änderungen durchgeführt werden
können,
ohne von dem Bereich der vorliegenden Erfindung abzuweichen. Die
folgende Beschreibung ist deshalb nicht in einer begrenzten Bedeutung
aufzunehmen, und der Bereich der vorliegenden Erfindung wird durch
die angefügten Ansprüche definiert.
-
In
verschiedenen Ausführungsformen
der vorliegenden Erfindung wird ein Inhaltsverteilungsnetz (Content
Distribution Network, CDN) in eine Topologie abstrahiert, die die
Besonderheiten darstellt und vereinfacht, die mit dem tatsächlichen
physischen Netz in Verbindung stehen. Es werden viele Router, Switches,
Hubs und dergleichen verwendet, um das physische Netz zu bewirken,
das die Topologie abstrahiert. CDN-Administratoren betrachten die Topologie,
um einen Job zu erstellen, der den Inhalt/die Daten beschreibt,
der/die durch das CDN zu bewegen ist/sind. Außerdem verwendet das CDN die Topologie
um zu planen, wann der Job verarbeitet wird und wo der Inhalt/die
Daten innerhalb des CDN auszugeben ist/sind. Die Topologie kennzeichnet
das CDN und kann mit Visualisierungsanwendungen gekoppelt sein,
um das CDN Administratoren visuell zu präsentieren.
-
Entsprechend
verwenden Administratoren die Topologie, um das Netz als einen oder
mehr hierarchische Bäume
zu visualisie ren, wobei jeder Baum einen Zugangsknoten, Null oder
mehr Zwischenknoten und einen oder mehr Ausstiegs-/Zielknoten hat.
Die Knoten repräsentieren
physische Einrichtungen des CDN (z.B. Server, Berechnungseinrichtungen,
Geräte
und andere) und logische Einrichtungen des CDN (z.B. Anwendungen,
Server-Farmen und
andere). Die Knoten des Baums sind über Verknüpfungen verbunden. Die Verknüpfungen repräsentieren
physische Verbindungen zwischen den Knoten (z.B. Medienkanäle, Übertragungsleitungstypen
und andere) und logische Verbindungen zwischen den Knoten (z.B.
verwendete Kommunikationsprotokolle, verwendete Sicherheitsanwendungen
und andere).
-
Die
Topologie gestattet, dass Attribute oder Charakteristika verschiedener
Bäume leicht
wahrgenommen werden. Z.B. kann ein Zugangsknoten (z.B. ein Wurzelknoten
des einzelnen Baums) als ein Achteck dargestellt werden, ein Ausstiegsknoten
kann als ein Kreis mit zwei Dreiecken unten rechts von dem Kreis
dargestellt werden und dergleichen. Außerdem kann die angezeigte
Länge einer
Verknüpfung
verwendet werden, um den Abstand einer Kommunikationsverbindung
zwischen zwei Knoten zu bestimmen, oder optional die Qualität oder Geschwindigkeit der
Kommunikationslänge.
Somit wird eine Verknüpfung
einer längeren
Länge mit
einer weniger wünschenswerten
Kommunikationsverbindung als eine Verknüpfung mit einer kürzeren Länge in Verbindung gebracht.
Auch können
Verknüpfungen
als unterbrochene Linien mit gerichteten Pfeilen dargestellt werden,
um einen geplanten Pfad des Inhalts/der Daten durch einen beliebigen
bestimmten Baum von dem Zugangsknoten zu einem oder mehr Ausstiegsknoten
anzuzeigen. CDN-Topologien sind einem Durchschnittsfachmann gut
bekannt, und werden CDN-Administratoren einfach zur Verfügung gestellt.
Alle derartigen Topologien und Topologievisualisierungswerkzeuge
sind gedacht, in den Bereich der vorliegenden Offenbarung zu fallen.
Außerdem
kann eine Vielfalt von visuellen Hinweisen (z.B. Farben, Texturen,
Schriftarten und dergleichen) über
das hinaus verwendet wer den, was präsentiert wurde, um verschiedene
Attribute und Charakteristika von Knoten, Verknüpfungen und Pfaden innerhalb
des Baums oder Topologie des CDN zu identifizieren. Somit werden
die oben erörterten
visuellen Hinweise nur für veranschaulichende
Zwecke präsentiert,
um bei der Beschreibung einiger Ausführungsformen der vorliegenden
Erfindung zu helfen, und sollten nicht als eine Begrenzung in der
vorliegenden Erfindung betrachtet werden.
-
Ein
Zugangsknoten ist ein Punkt in der Topologie, wo Inhalt/Daten in
das CDN eingeführt wird/werden.
Ein einzelner Baum, der innerhalb der CDN-Topologie dargestellt
wird, enthält
einen einzelnen Zugangsknoten. Es ist nicht wünschenswert, den Inhalt, sobald
in einem Zugangsknoten empfangen, zu allen Knoten des CDN zu bewegen,
da dies eine ineffiziente Verwendung ist, die zu redundanten Inhalts-/Datentransfers
innerhalb des CDN führt.
Ein Ausstiegsknoten ist ein Austrittspunkt für den Inhalt/die Daten (z.B.
eine Einrichtung oder ein Gerät, wo
der Inhalt/die Daten verbraucht wird/werden).
-
Des
weiteren können
Anfangsbäume,
die innerhalb der CDN-Topologie der vorliegenden Erfindung dargestellt
werden, unter Verwendung eines beliebigen konventionellen Algorithmus
generiert werden, wie etwa des Umspannungsbaumalgorithmus nach Steiner
(Steiner spanning tree algorithm). Es können auch ad hoc oder angepasste
Baumgenerierungsalgorithmen verwendet werden, wie etwa, wenn bestimmte
Charakteristika des CDN eine derartige Option für eine Verwendung praktisch
machen. Auch können
Pfade innerhalb des Baums oder der Topologie generiert werden, unter
Verwendung beliebiger konventioneller, ad hoc, oder angepasster Pfadgenerierungsalgorithmen.
Wie ein Durchschnittsfachmann leicht erkennt, nehmen Pfadgenerierungsalgorithmen
Eingangsparameter (z.B. einen Zeiger zu der Wurzel eines Baums,
Kostencharakteristika, Richtlinien, Attribute von Knoten und Verknüpfungen,
Ausstiegsknoten und derglei chen), um einen oder mehr geplante Pfade
innerhalb eines Baums zu erzeugen, damit der Inhalt/die Daten ihren
Weg am effizientesten nimmt/nehmen.
-
Des
weiteren ist in einer Ausführungsform die
vorliegende Offenbarung innerhalb des Produktangebotes Volera Content
Distribution Network (VCDN), vertrieben durch Volera, Inc. implementiert. Es
wird ein angereicherter CDN-Baum verwendet, um eine Weiterleitungstabelle
zu erzeugen, die weiter durch VCDN verwendet wird, um Inhalt/Daten durch
ein CDN ohne signifikante Unterbrechung effizient zu bewegen, selbst
wenn einige Knoten und Verknüpfungen
innerhalb des CDN ausfallen, während
die Daten durch das CDN bewegt werden. Es ist jedoch zu verstehen,
dass die Unterweisungen der vorliegenden Offenbarung in anderen
existierenden Produkten (z.B. existierenden Routern, Switches, Hubs
und dergleichen) und/oder eigenständigen Produkten implementiert
werden können.
Alle derartigen Modifikationen an existierenden Produkten und/oder angepasst
erstellten Produkten, die die Unterweisungen der vorliegenden Offenbarung
verwenden, sind gedacht, in den Bereich der vorliegenden Offenbarung
zu fallen.
-
1A veranschaulicht
ein Diagramm einer Beispieltopologie 100 eines CDN gemäß einer
Ausführungsform
der vorliegenden Erfindung. Die Beispieltopologie 100 ist
auf einem computerlesbaren Medium verkörpert und repräsentiert
CDN-Knoten 0–9.
Nur für
den Zweck der Veranschaulichung werden Zugangsknoten 4 und 5 als
Achtecke dargestellt, während
die Ausstiegsknoten 9, 0, 7 und 2 als
Kreise mit zwei Dreiecken unten rechts von dem Kreisen dargestellt
werden. Die Topologie enthält
auch Kreise ohne Dreiecke, die Zwischenknoten 3, 8, 6 und 1 anzeigen,
die weder Zugangsknoten noch Ausstiegsknoten innerhalb des CDN sind.
Außerdem
kann die Länge
der Linien, die die Knoten verbinden, als Kosten gesehen werden,
die mit einer Verwendung einer bestimmten Kommunikation zwischen
zwei Kno ten in Verbindung stehen. Somit ist eine Verknüpfung kürzerer Länge wünschenswerter
als eine Verknüpfung längerer Länge.
-
Jeder
Zugangsknoten 4 und 5 kann als eine Wurzel eines
Baums mit Knoten innerhalb der Topologie 100 gesehen werden.
Wie ein Durchschnittsfachmann leicht erkennt, können Bäume unter Verwendung eines
beliebigen Umspannungsbaumalgorithmus generiert werden, wie etwa
des Umspannungsbaumalgorithmus nach Steiner und anderer. Nur für den Zweck
der Veranschaulichung legt das in 1A und 1B erörterte vorliegende
Beispiel den Schwerpunkt auf einen einzelnen Baum T mit einem Wurzelknoten,
der als ein Zugangsknoten 5 innerhalb der Topologie 100 dargestellt
ist. Der Baum enthält
Knoten 5, 6, 9, 7, 2 und 0.
-
Zusätzlich zum
Generieren eines Anfangsbaums T können beliebige konventionelle,
angepasste oder ad hoc Pfadgenerierungsalgorithmen verwendet werden,
um Pfade von dem Wurzelknoten/Zugangsknoten 5 des Baums
T zu den entsprechenden Ausstiegsknoten 9, 0, 7 und 2 zu
generieren. Z.B. ist der Pfad zu Ausstiegsknoten 9 durch Durchlaufen
des Baums T in der folgenden Reihenfolge 5→6→9 definiert. Gleichermaßen ist
der Pfad zu Ausstiegsknoten 0 durch 5→6→7→0 definiert. Der Pfad zu Ausstiegsknoten 7 ist
5→6→7, und der
Pfad zu Ausstiegsknoten 2 ist 5→6→7→2. Pfadgenerierungsalgorithmen
bestimmen basierend auf Kosten (z.B. Charakteristika von Knoten
und/oder Verknüpfungen
und/oder Richtlinien des CDN), welche Pfade für das CDN als ein ganzes optimal
sind. Somit ist es in dem vorliegenden Beispiel weniger aufwändig, Inhalt/Daten,
der/die in das CDN in Zugangsknoten 5 eingeführt wird/werden,
zu Knoten 6 zu bewegen, bevor zu beliebigen der Ausstiegsknoten 9, 0, 7 oder 2 fortgefahren
wird.
-
Sobald
der Baum T und die anfänglichen
geplanten Pfade aus der Topologie 100 für das CDN abgeleitet sind,
wird der Baum angereichert, um einen oder mehr alternierende Pfade
inner halb des Baums T zu enthalten, um den Inhalt/die Daten in dem
potenziellen Ereignis von Ausfällen
eines Knotens/einer Verknüpfung
zu bewegen. 1B stellt eine derartige Anreicherung
dar. Obwohl 1B Ausstiegsknoten 7 als
innerhalb der Topologie 110 isoliert darstellt, ist zu
verstehen, dass dies nicht der Fall ist. Dies ist zum Zweck der
Veranschaulichung geschehen, um ein Beispiel einer Anreicherung
zu isolieren, das mit der vorliegenden Erfindung geeignet ist. In
der Tat existieren alle Pfade, die ursprünglich in 1A dargestellt
werden, auch in 1B, 1B enthält jedoch
alternierende oder angereicherte Pfade, die die existierenden Pfade
von Baum T in 1A erweitern.
-
1B veranschaulicht
ein Diagramm einer Beispieltopologie 110, die eine Anreicherung
von Baum T in 1A gemäß einer Ausführungsform
der vorliegenden Erfindung darstellt. Anreicherung von Bäumen in
der vorliegenden Erfindung kann basierend auf konfigurierbaren Optionen
geschehen, die durch einen CDN-Administrator geliefert werden. Der Baum
T kann basierend auf einem bestimmten Knoten angereichert werden,
der nicht in der Lage ist, mit einem seiner entsprechenden Elternknoten
zu kommunizieren (Sprungelternanreicherungstyp, Skip Parent enrichment
type). Alternativ kann Baum T basierend auf einem bestimmten Knoten
angereichert werden, der nicht in der Lage ist, mit einer seiner
Verknüpfungen
zu kommunizieren (Verbindungsanreicherungstyp, Join enrichment type).
Außerdem
kann ein Merkmal "optionale
Anreicherung" mit
einem der zwei Typen von Anreicherung verwendet werden. Optionale
Anreicherung organisiert die alternativen Pfade, die durch Anreicherung
generiert werden von geringsten Kosten (z.B. kürzester Pfad) zu höchsten Kosten
(z.B. längste
Pfad). Ursprüngliche
geplante Pfade für
Baum T und beliebige alternative angereicherte Pfade für Baum T
werden als Weiterleitungstabellen zum Bewegen von Inhalt/Daten durch
das CDN verfügbar
gemacht. Auch kann jeder Anreicherungstyp isoliert oder in Kombination
mit dem verbleibenden Anreicherungstyp, mit dem oder ohne das optionale(n)
Anreicherungsmerkmal verwendet werden.
-
Zum
Zweck der Veranschaulichung wird ein Knoten, an dem zum Zweck von
Anreicherung gearbeitet wird, hierin als "Subjektknoten" bezeichnet. Außerdem wird die Notation N(#,
EP) zum Zweck von Veranschaulichung verwendet, wobei N ein Knoten ist,
der eine ganze Zahl identifiziert, # die aktuelle Zahl von nicht
verwendeten Verknüpfungen
anzeigt, die mit Knoten N in Verbindung stehen, und EP verwendet
wird um anzuzeigen, ob Knoten N ein Ausstiegsknoten ist (z.B. Ausstiegsknoten
(EP)).
-
Wie
zuvor übermittelt,
leiten konventionelle Techniken Inhalt/Daten durch das CDN dynamisch um,
wenn Ausfälle
eines Knotens oder einer Verknüpfung
erfasst werden. Dies belastet die Netzressourcen, führt zu Verzögerungen
und setzt die Verwendung des anfänglichen
erstellten Umspannungsbaums innerhalb der Topologie des CDN nicht
wirksam ein. Mit der vorliegenden Erfindung, wie in verschiedenen
hierin präsentierten
Ausführungsformen dargestellt,
sind angereicherte oder alternative Pfade für den anfangs erstellten Umspannungsbaum
T mit dem Baum T verfügbar
und vorbestimmt, derart, dass wenn ein tatsächlicher Ausfall auftritt,
keine neue Kalkulation der Netzressourcen erforderlich ist. Somit kommt
Inhalt/kommen Daten zeitgerechter in den Ausstiegsknoten 9, 0, 7 und 2 an.
Des weiteren nutzt die Bewegung des Inhalts/der Daten das CDN effizienter,
und die Bewegung kann die Einwirkung auf identifizierte für die Aufgabe
kritische Anwendungsverarbeitung innerhalb des CDN verringern. Außerdem können minimale
CDN-Ressourcen verwendet werden,
um CDN-Schleifen zu erfassen und Umleitung von Inhalt/Daten, wenn
Unterbrechungen oder Ausfälle
erfasst werden, erfordert keine zusätzlichen CDN-Ressourcen zur
Auflösung.
-
Wenn
ein CDN-Administrator Anreicherung wünscht, identifiziert der Administrator
anfangs eine Zahl von Subjektknoten, für die alternative Pfade innerhalb
des Baums T zu generieren sind. Alternativ oder in Kombination mit
der Identifikation der Subjektknoten kann der Administrator eine
Zahl von Verknüpfungen
innerhalb des Baums T identifizieren, für die alternative Pfade mit
dem Baum T zu generieren sind. Auf diese Weise kann der Administrator
den Grad von Granularität
anpassen, der mit Generieren alternativer Pfade in Verbindung steht,
und der Administrator kann sein/ihr eigenes empirisches Wissen über sein/ihr
Netz verwenden um zu bestimmen, ob und wann Sprungelternanreicherung
und/oder Verbindungsanreicherung verwendet werden sollte, kombiniert
mit dem/ohne das optionale(n) Anreicherungsmerkmal.
-
In
einer Ausführungsform
kann bei Vorbereitung des Baums T für Anreicherung eine optionale Operation
implementiert sein, um eine effizientere Verarbeitung der Sprungeltern-
und Verbindungsanreicherungsoperationen vorzusehen. Die optionale Operation
wird Subjektknotenordnung (Subject Node Ordering) genannt. Subjektknotenordnung
erstellt eine Liste aller Knoten, die mit Baum T in Verbindung stehen.
Diese Operation bestimmt, welche Knoten des Baums T mit einer optionalen
Anreicherung in Verbindung stehen und fügt diese Knoten der Liste hinzu.
Außerdem
enthält
jeder Knoten des Baums T einen ganzzahligen Zähler #, der die Gesamtzahl
von nicht verwendeten oder nicht-füllenden Verknüpfungen
enthält
(z.B. Verknüpfungen,
die gegenwärtig nicht
geplant sind, als den Inhalt/die Daten ausgebend verwendet zu werden),
die mit jedem Knoten in Verbindung stehen. Außerdem werden Ausstiegsknoten
als EP-Knoten identifiziert
und gekennzeichnet. Als Nächstes
wird die gesamte Liste in aufsteigender Reihenfolge durch den Zählerwert
# und EP-Indikator sortiert. Schließlich werden alle Knoten mit
einem Zählerwert
von 0 entfernt, da diese Knoten nicht angereichert sein können, da
nur eine füllende Verknüp fung existiert
und gegenwärtig
gerade innerhalb des Baums T verwendet wird.
-
Wenn
ein Administrator einen Sprungelternanreicherungstyp wählt, wird
ein Subjektknoten innerhalb des Baums T durch den Administrator
innerhalb der Topologie 110 identifiziert. In dem in 1B präsentierten
veranschaulichenden Beispiel wird angenommen, dass der Administrator
Subjektknoten 2 (einen Ausstiegsknoten) für das Sprungelternanreicherungsmerkmal
der vorliegenden Erfindung gewählt
hat. Knoten und Verknüpfungen,
die mit den ursprünglichen
geplanten Pfaden in Verbindung stehen, um den Inhalt/die Daten durch
das CDN zu bewegen, können
mit der Notation: 2(1EP), 0(1EP), 9(2EP), 7(4EP), and 6(4) identifiziert
werden und sind in 1A dargestellt.
-
Wenn
die Sprungelternanreicherungsoperation mit Subjektknoten 2 durchgeführt wird,
werden alle Verknüpfungen,
die mit dem Elternknoten von Subjektknoten 2 in Verbindung
stehen, verwendet in dem geplanten Pfad für Baum T, außer Acht
gelassen. Mit dem vorliegenden Beispiel macht dies die Verknüpfung von
Knoten 7 zu Knoten 2 nicht verfügbar. Es
kann eine beliebige Technik verwendet werden, um den Elternknoten
außer
Acht zu lassen; eine derartige Technik ist, den Elternknoten mit
unendlichen Kosten zu kennzeichnen, wobei allen verbleibenden Verknüpfungen
von Baum T, die anfangs als nicht-füllende Verknüpfungen
für den
Subjektknoten erachtet wurden, Kosten von 0 zugewiesen werden. Als
Nächstes
werden die verbleibenden Knoten/Verknüpfungen innerhalb der zeitweilig überarbeiteten Topologie
dem verwendeten Pfadgenerierungsalgorithmus vorgelegt, um einen
neuen alternativen Pfad für
den Subjektknoten 2 zu erzeugen.
-
Wie
in 1B dargestellt, führt dies zu einem angereicherten
Pfad 5→3→2, der für Subjektknoten 2 generiert
wird, wenn wir annehmen, dass Knoten 2 seinen Elternknoten 7 nicht
verfügbar
haben wird. Der angereicherte Baum T kann dann als 2(0EP), 0(1EP),
9(2EP), 7(4EP), und 6(4) bezeichnet werden. Wenn Knoten 0 die
Sprungelternanreicherungsoperation verwendet, was auch Knoten 7 in dem
Baum T ist, wird ein angereicherter Pfad als 5→6→9→0 generiert, wie auch in 1B dargestellt wird.
Sobald Anreicherung zu dem vom Administrator konfigurierten gewünschten
Grad von Granularität durchgeführt ist,
werden der Baum T und seine ursprünglichen geplanten Pfade zu
ihren ursprünglichen
Werten wiederhergestellt, wie in 1A dargestellt,
und mit den alternativen Pfaden, die in 1B dargestellt
sind, erweitert oder angereichert.
-
Entsprechend
enthält
der revidierte, angereicherte und erweiterte Baum T einen gewünschten Grad
von alternativen Pfaden, die verwendet werden können, wenn der Inhalt/die Daten
durch das CDN bewegt wird/werden. Wenn somit ein Elternknoten nicht
reagiert oder während
einer Übertragung
von Inhalt/Daten ausfällt,
wird der Umleitungsvektor oder Pfad für den ausgefallenen Parent
(Eltern) leicht aus dem angereicherten Baum T der vorliegenden Erfindung
erlangt, ohne Verzögerung
oder unnötige
Verwendung von Netzressourcen. In einigen Ausführungsformen kann dieser angereicherte
Baum T als eine Weiterleitungstabelle 111 für den Inhalt/die
Daten vorgesehen werden, wie er/sie das CDN durchquert/durchqueren.
-
Somit
würde in
dem vorliegenden Beispiel Knoten 2 automatisch den Inhalt/die
Daten von Knoten 3 erlangen, sollte Knoten 7 nicht
verfügbar
werden, und gleichermaßen
würde Knoten 0 automatisch
den Inhalt/die Daten von Knoten 9 erlangen, falls Knoten 7 nicht
verfügbar
ist. Die Weiterleitungstabelle 111 kann konventionellen
oder traditionellen Weiterleitungseinrichtungen, Weiterleitungsprotokollen
und/oder Weiterleitungsanwendungen zur Verwendung zugeführt werden,
wenn sich der Inhalt durch das CDN bewegt. Alternativ kann die Weiter leitungstabelle 111 durch
Cache-Beschleuniger oder andere angepasste Anwendungen verwendet
werden, um den Inhalt/die Daten durch das CDN weiterzuleiten. Die
Pfade/Routen, die innerhalb der Weiterleitungstabelle 111 enthalten
sind, können
in einer Ausführungsform
nach geringsten Kosten oder kürzestem
Pfad geordnet sein, wenn der Administrator das optionale Anreicherungsmerkmal
der vorliegenden Erfindung wählt,
wie in Weiterleitungstabelle 111 von 1B dargestellt
wird.
-
Außerdem kann
die Sprungelternanreicherungsoperation für jeden Knoten in den ursprünglichen
Baum (per Vorgabe) oder für
jene Knoten in dem ursprünglichen
Baum, spezifiziert durch den Administrator, die einen alternativen
Pfad erfordern, verwendet werden.
-
Die
Verbindungsanreicherungsoperation konzentriert sich nicht darauf,
wenn ein Parent eines Subjektknotens ausfällt, sondern konzentriert sich vielmehr
auf schnelle und effiziente erneute Verbindung des Baums T, wenn
von einer Verknüpfung
zu dem Subjektknoten angenommen wird, dass sie nicht verfügbar ist.
Dies geschieht durch Kennzeichnen von füllenden Verknüpfungen
zu dem Subjektknoten bei unendlichen Kosten oder nicht verfügbar und
allen nicht-füllenden
Verknüpfungen
zu dem Subjektknoten zu Kosten gesetzt, wobei alle verbleibenden
Verknüpfungen,
die Teil des Baums T sind, bei Null-Kosten markiert sind. Dann wird
der Pfadgenerierungsalgorithmus ausgeführt, um einen angereicherten
Pfad zu dem Subjektknoten zu finden. Die ursprünglichen Einstellungen für den Baum
T werden dann wiederhergestellt und mit dem angereicherten Pfad
erweitert, der durch die Verbindungsanreicherungsoperation generiert
wird. Eine Anwendung der Verbindungsanreicherungsoperation auf das
vorliegende Beispiel mit Subjektknoten 2 führt zu der
gleichen Anreicherung, die mit dem Sprungparent erzeugt wurde und
in 1B dargestellt ist. Wie ein Durchschnittsfachmann
jedoch schnell erkennt, ist dies nicht immer der Fall und angereicherte
Pfade können
abhängig
von dem Baum variieren, der angereichert wird, und können unter
Verwendung der oben präsentierten
Unterweisungen bestimmt werden.
-
Wie
zuvor erörtert,
können
die Sprungeltern- und Verbindungsanreicherungsoperationen in einer beliebigen
Reihenfolge, allein oder in Kombination durch einen CDN-Administrator
verarbeitet werden. Ferner kann jede Operation das optionale Anreicherungsmerkmal
enthalten, wie oben präsentiert.
Außerdem
können
beliebige doppelte angereicherte Pfade, die generiert sind, aus
dem verbesserten Baum T für
Effizienzzwecke ausgeschnitten werden.
-
Während des
Betriebs wird, wenn ein Knoten und/oder eine Verknüpfung ausfällt, ein
Ereignis innerhalb des CDN ausgelöst, das anzeigt, dass der Knoten/Verknüpfung nicht
reagiert oder innerhalb einer vorbestimmten Zeitperiode nicht antwortet,
da es sein könnte,
dass der nicht reagierende Knoten nicht ausgeschaltet ist, sondern
vielmehr wegen einer heftigen Verarbeitung, die in einem beliebigen
bestimmten Zeitpunkt geladen ist, im Timeout ist. Wenn dies auftritt,
wird auf die Weiterleitungstabelle 111, die den angereicherten
Baum T darstellt, unverzüglich
für den
nächsten
alternativen Pfadknoten zugegriffen. Somit führen die Netzressourcen nur
Nachschauen in einer Tabelle durch und müssen keinerlei Umleitungskalkulationen
durchführen.
Dies ist besonders wünschenswert,
wenn der Inhalt/die Daten, der/die durch das CDN bewegt wird/werden,
große
Mediendateien sind. Dennoch können
die Grundsätze
der vorliegenden Offenbarung mit irgendeinem Netz oder Datentransfer
verwendet werden und alle derartigen Anwendungen gedacht, in den
Bereich der vorliegenden Offenbarung zu fallen.
-
Die
dargestellte Weiterleitungstabelle 111 enthält andere
Anreicherung für
Knoten und Verknüpfungen,
die oben nicht erörtert
werden. Für
einen Durchschnittsfachmann ist es jedoch offensichtlich, dass diese
zusätzlichen
angereicherten Knoten und Verknüpfungen
auf die gleiche Art und Weise erzeugt werden können, wie es mit dem veranschaulichenden
Beispiel präsentiert
wird.
-
2 veranschaulicht
ein Flussdiagramm, das ein Verfahren 200 darstellt, um einen Baum
anzureichern, gemäß einer
Ausführungsform
der vorliegenden Erfindung. Der Baum wird aus einer CDN-Topologie
abgeleitet oder generiert. Baumgenerierung oder Ableitung kann unter
Verwendung eines beliebigen konventionellen, angepassten und/oder
ad hoc Baumgenerierungsalgorithmus geschehen. Pfade können auch
innerhalb des Baums zum Projizieren von einem oder mehr geplanten
Pfaden für
Inhalt/Daten, der/die durch das CDN zu bewegen ist/sind, generiert
werden. Pfadgenerierungsalgorithmen sind einem Durchschnittsfachmann
gut bekannt, und alle derartigen existierenden, angepasst entwickelten oder
ad hoc Pfadgenerierungsalgorithmen können mit der vorliegenden Offenbarung
verwendet werden. Die Pfade entspringen in der Wurzel des Baums
oder einem Zugangsknoten und durchlaufen definierte Verknüpfungen
durch Null oder mehr Zwischenknoten zu einem oder mehr Ausstiegsknoten.
-
Ein
CDN-Administrator kann die Topologie (z.B. Knoten und Verknüpfungen),
den Baum und die geplanten Pfade unter Verwendung einer beliebigen grafischen
Benutzerschnittstellen- (GUI)
Anwendung betrachten. Die Visualisierung gestattet dem Administrator
auch, Kosten zu erkennen, die mit den Knoten, Verknüpfungen
und Pfaden in Verbindung stehen. Kosten werden durch Charakteristika
der Knoten und/oder Verknüpfungen,
oder Richtlinien, die für das
CDN festgesetzt sind, bestimmt. Der Pfadgenerierungsalgorithmus
kann Kosten verwenden, wenn die Pfade für den Baum generiert werden.
-
In 201 wird
ein Baum empfangen, der innerhalb der CDN-Topologie enthalten ist.
In einigen Ausführungsformen
wird der Empfang durch Erhalten eines Zeigers zu dem Wurzelknoten
des Baums erhalten, derart, dass der gesamte Baum durch Verwenden
des Wurzelzeigers bestimmt und durchlaufen werden kann. Der Baum
wird durch Baumanreicherungsoperationen empfangen, die die Unterweisungen
der vorliegenden Offenbarung praktizieren. In einigen Ausführungsformen
sind diese Operationen als ein Sprungelternmodul und ein Verbindungsmodul implementiert,
wobei jedes Modul ein optionales Anreicherungsmerkmal hat, das die
generierten angereicherten Pfade nach geringsten Kosten zu höchsten Kosten
ordnet. Wie einem Durchschnittsfachmann natürlich leicht offensichtlich
ist, können
ein einzelnes Modul oder mehr als zwei Module implementiert sein,
um die hierin präsentierten
Unterweisungen zu praktizieren, und alle derartigen Konfigurationen
fallen in den Bereich der vorliegenden Offenbarung.
-
In 202 wird
eine Anforderung durch das Operationsimplementierungsverfahren 200 empfangen.
Die Anforderung dient zum Anreichern des aktuellen Baums mit einem
oder mehr alternativen Pfaden basierend auf Annahmen, die als Parameter
zu der Anforderung bereitgestellt werden. Die Parameter identifizieren
Subjektknoten des Baums, der anzureichern ist, zusammen mit Angeben
bezüglich dessen,
ob ein Parent als nicht verfügbar
anzunehmen ist und/oder ob füllende
Verknüpfungen,
die innerhalb der ursprünglichen
geplanten Pfade enthalten sind, als für die Subjektknoten nicht verfügbar angenommen
werden. Optional kann in 203 ein angepasster Grad (level)
von Anreicherung (z.B. Parameter) von einem Administrator empfangen
werden. Der angepasste Grad kann eine Liste von Knoten/Verknüpfungen
vorsehen, die anzureichern sind, zusammen mit dem Typ von durchzuführender
Anreicherung. Alternativ kann der angepasste Grad eine hierarchische
Ebene innerhalb des Baums darstellen, wo Anreicherung gewünscht wird.
Außerdem
kann der angepasste Grad eine Anzeige vorsehen, dass der Baum mit
allen bestimmbaren alternativen Pfaden anzureichern ist, die durch
den aktuellen Baum generiert werden können.
-
In 204 werden,
bevor der Baum mit alternativen Pfaden angereichert wird, die Anfangsbaumeinstellungen
und Pfade für
eine anschließende
Wiederherstellung gesichert, wenn der Baum zu dem gewünschten
Grad angereichert wurde. Als Nächstes werden
in 205 die geeigneten Anreicherungsmodule ausgeführt. Die
Anreicherungsmodule identifizieren einen Subjektknoten innerhalb
des Baums, und sie nehmen an, dass der Parent des Subjektknotens nicht
verfügbar
ist und/oder die füllende
Verknüpfungen
des Subjektknotens nicht verfügbar
sind. Der Pfadgenerierungsalgorithmus wird dann mit dem nicht verfügbaren Parent
und/oder Knoten ausgeführt,
um einen angereicherten und alternativen Pfad für den Subjektknoten zu erzeugen.
Entsprechend wird in 206 ein alternativer Pfad (Pfade)
für jeden Subjektknoten
generiert, an dem durch die Anreicherungsmodule gearbeitet wird.
Die Anreicherungsmodule setzen eine Verarbeitung fort, bis alle
Subjektknoten, die als eine Anreicherung erfordernd identifiziert
sind, verarbeitet sind. Optional wird (werden) in 210 der
(die) angereicherte(n) Pfad(e) von geringsten Kosten (z.B. kürzestem
Pfad) zu höchsten
Kosten (z.B. längstem
Pfad) geordnet. Dies kann durch Verwenden des optionalen Anreicherungsmerkmals
der vorliegenden Erfindung erreicht werden.
-
In 220 werden
die alternativen Pfaden mit dem Baum in Verbindung gebracht und
die ursprünglichen
geplanten Pfade des Baums und die ursprünglichen Baumeinstellungen
werden wiederhergestellt. In irgend einem späteren Zeitpunkt wird/werden
Inhalt/Daten in das CDN in dem Zugangsknoten unter der Wurzel des
Baums eingespeist, wie in 230 dargestellt wird. Falls der
Zugang oder die Wurzel nicht verfügbar ist, dann schlägt die Bewegung
von Inhalt/Daten fehl, da der Inhalt/Daten in das CDN nicht eintreten
können.
Falls jedoch der Zugangsknoten verfügbar ist, dann wird/werden
der Inhalt/die Daten anfangs durch das CDN unter Verwendung der
ursprünglich
generierten geplanten Pfade für
den Baum bewegt, um einen oder mehr Ausstiegsknoten zu erreichen,
wo der Inhalt/die Daten verbraucht wird/werden.
-
Während sich
der Inhalt/die Daten durch das CDN bewegt/bewegen, werden Prüfungen durchgeführt um zu
bestimmen, ob der/die nächste
verfügbare
Knoten/Verknüpfung
ausgefallen ist oder anderweitig nicht reagiert, wie in 231 dargestellt.
Falls ein Ausfall für
den/die nächste(n)
Knoten/Verknüpfung eines
geplanten oder aktuellen Pfades für den Inhalt/die Daten erfasst
wird, wird dann in 232 der geeignete angereicherte oder
alternative Pfad ausgewählt,
und der Inhalt/die Daten wird/werden geeignet zu dem/der neuen Knoten/Verknüpfung bewegt.
Dieser Prozess setzt in 233 fort, bis der Inhalt/die Daten die
gewünschten
Ausstiegsknoten erreicht hat/haben. In einigen Ausführungsformen
werden die geplanten Pfade des Baums und die alternativen oder angereicherten
Pfade innerhalb einer Weiterleitungstabelle dargestellt, auf die
die Weiterleitungsanwendungen von angepassten Anwendungen zugreifen können, die
zum Bewegen des Inhalts/der Daten durch das CDN verantwortlich sind.
Somit ist Umleitung vorbestimmt und verfügbar, wenn ein Ausfall auftritt,
und anders als in konventionellen Ansätzen gibt es keine Notwendigkeit
zum Durchführen
dynamischer Umleitungskalkulationen, die zu Verzögerungen führen und die CDN-Ressourcen übermäßig belasten
können.
Außerdem
wird die Anfangsstruktur des optimal generierten Baums für das CDN
während der
Umleitung des Inhalts/der Daten im wesentlichen aufrechterhalten.
-
3 veranschaulicht
ein Flussdiagramm, das ein anderes Verfahren 300 darstellt,
um einen Baum anzureichern, gemäß einer
Ausführungsform der
vorliegenden Erfindung. Anfangs wird in 301 eine Anforderung
durchgeführt,
eine Baumabstraktion von einer gegebenen Topologie für ein CDN
zu generieren. In einer Ausführungsform
wird in 302 die Baumgenerierung aus dem Umspannungsbaumalgorithmus
nach Steiner angefordert, es kann natürlich ein beliebiger Generierungsalgorithmus
mit den Unterweisungen der vorliegenden Offenbarung verwendet werden.
Der Zugangsknoten des Baums ist die Wurzel des Baums. Außerdem kann
ein beliebiger Pfadgenerierungsalgorithmus verwendet werden, um
einen oder mehr Pfade von dem Zugangsknoten zu einem oder mehr Ausstiegsknoten
zu erzeugen (z.B. Ziel oder Verbrauchsstellen von Inhalt/Daten innerhalb
des CDN).
-
In 303 wird
der generierte Baum empfangen. In einer Ausführungsform wird der Baum mit
einer GUI-Anwendung einem CDN-Administrator vorgelegt, wie in 304 dargestellt,
innerhalb des Kontexts der gesamten Topologie, wie in 304 dargestellt.
Die Topologie kann einen oder mehr zusätzliche Bäume enthalten, die innerhalb
des CDN dargestellt sind. Die Darstellung gestattet dem Administrator
auch, Charakteristika und Kosten zu visualisieren, die mit Knoten,
Verknüpfungen
und/oder Pfaden des Baums in Verbindung stehen. Somit gestatten
erkennbare visuelle Hinweise dem Administrator, Aspekte des Baums
leicht zu bestimmen. Der Administrator verwendet die Visualisierung
und den Baum, um einen Job zu erstellen, um Inhalt/Daten von der
Wurzel (z.B. dem Zugangsknoten) des Baums zu einem oder mehr Ausstiegsknoten
zu bewegen.
-
Der
Administrator stellt den gewünschten Grad
von alternativen Pfaden in 305 bereit, die für den Job
gewünscht
sind. Der gewünschte
Grad kann Subjektknoten mit potenziellen nicht verfügbaren Eltern
und/oder Verknüpfungen
identifizieren. Alternativ kann der gewünschte Grad einen Wunsch des
Administrators anzeigen, alternative oder erweiterte Pfade für den Job
völlig
und vollständig
zu erzeugen. Sobald der gewünschte
Grad von Granularität
für alternative
Pfadgenerierung empfan gen ist, werden dann in 310 der Anfangsbaum
und seine Einstellungen/geplanten Pfade für eine spätere Wiederherstellung gesichert.
-
Als
Nächstes
werden eine oder mehr Baumverbesserungsoperationen ausgeführt, wo
Knoten, die für
Verbesserungen verarbeitet werden, als Subjektknoten identifiziert
sind. Entsprechend nehmen in 311 die Operationen an, das
Elternknoten/Verknüpfungen
für die
Subjektknoten nicht verfügbar
sind und führen
den Baumgenerierungsalgorithmus unter diesen Umständen aus.
Dies führt
zu alternativen Pfaden für
die Subjektknoten, die in 312 generiert werden. Dies nimmt
an, dass der Subjektknoten andere Verknüpfungen und/oder Eltern über das
hinaus hat, was ausgeschlossen wurde; anderenfalls wird unter derartigen
Umständen
Anreicherung nicht durchgeführt.
Die alternativen Pfade, die generiert werden, können in einigen Ausführungsformen
CDN-Richtlinien oder angepasste Richtlinien verwenden, wenn Kosten
bestimmt werden, die mit den alternativen Pfaden in Verbindung stehen.
In einigen Fällen
sind diese Richtlinien die gleichen wie sie verwendet wurden, als
die anfänglichen
geplanten Pfade für
den Baum generiert wurden, obwohl nichts verbietet, dass die Richtlinien
mit der vorliegenden Offenbarung erweitert werden, um neue Richtlinien
zu enthalten, die durch einen Administrator erwünscht sind.
-
In 320 terminiert
die Verarbeitungsschleife der Anreicherungsoperationen, sobald alle
gewünschten
Subjektknoten verarbeitet sind. Darauf wird der Baum zu seinen ursprünglichen
Einstellungen wiederhergestellt und mit allen generierten alternativen
Pfaden in Verbindung gebracht. Wenn der Job des Administrators verarbeitet
wird, wird/werden als Nächstes
in 330 der Inhalt/die Daten des Jobs in das CDN in der Wurzel oder
dem Zugangsknoten eingespeist, um den Inhalt/die Daten entlang der
ursprünglichen
geplanten Pfade für
den Baum zu bewegen. Entsprechend wird in 331 die/der nächste Verknüpfung/Knoten
in der Initialisierung der Wurzelknoten sein.
-
Folgend
den geplanten Pfaden für
den Job wird eine nächste
Verknüpfung/ein
nächster
Knoten innerhalb der geplanten Pfade identifiziert und in 332 wird
eine Prüfung
durchgeführt
um zu bestimmen, ob eine derartige Verknüpfung/ein derartiger Knoten
reagiert oder verfügbar
ist. Falls die/der nächste
Verknüpfung/Knoten
nicht reagiert oder nicht verfügbar ist,
dann wird in 333 einer der entsprechenden alternativen
Pfade, mit alternativen nächsten
Knoten/Verknüpfungen,
unverzüglich
ausgewählt
und in 332 auf Verfügbarkeit
geprüft.
Der Prozess kehrt zurück
zu 331, bis der Job verarbeitet ist, was anzeigt, dass
der Inhalt/die Daten durch das CDN zu den Ausstiegsknoten zum Verbrauch
erfolgreich bewegt wurde/wurden.
-
In
einer Ausführungsform
werden die geplanten Pfade und angereicherten alternativen Pfade in
einer Weiterleitungstabellendatenstruktur dargestellt, auf die eine
Weiterleitungsanwendung zugreifen kann, wie etwa eine Caching-Anwendung,
die verantwortlich ist, den Inhalt/die Daten zu bewegen, oder traditionelle
Weiterleitungstechniken, die die Weiterleitungstabellendatenstruktur
der vorliegenden Offenbarung verwenden.
-
4 veranschaulicht
ein Diagramm eines Systems 400, um einen Baum anzureichern,
gemäß einer
Ausführungsform
der vorliegenden Erfindung. Das System 400 enthält einen
Baum 410, ein Sprungelternmodul 420 und ein Verbindungsmodul 430. Das
System ist auf einem computerlesbaren Medium verkörpert und
wird verwendet, um einen konventionellen Baum mit alternativen Pfaden
zu verbessern, wobei der Baum 410 der vorliegenden Offenbarung verwendet
wird, um Weiterleitungsinformation für eine Bewegung von Inhalt/Daten
durch ein CDN 411 von einem Zugangsknoten zu einem oder
mehr Ausstiegsknoten vorzusehen.
-
Der
Baum 410 ist aus einer Topologie des CDN 411 abgeleitet.
In einigen Ausführungsformen wird
der Baum unter Verwendung eines beliebigen existierenden oder angepasst
entwickelten Umspannungsbaumgenerierungs-/Ableitungsalgorithmus 440 abgeleitet
oder generiert. Außerdem
enthält
der Baum 410 eine Zahl von geplanten Pfaden 412,
die anfangs mit dem Baum 410 durch Verwendung eines beliebigen
existierenden oder angepasst entwickelten Pfadgenerierungsalgorithmus 450 bereitgestellt werden.
Pfade identifizieren eine Route für Inhalt/Daten für einen
Weg durch das CDN 411, beginnend von einem Zugangsknoten
und sich durch einen oder mehr Zwischenknoten zu einem oder mehr
endgültigen
Ziel- oder Ausstiegsknoten bewegend. Der Baum 410 enthält einen
Zugangsknoten, Null oder mehr Zwischenknoten, Ausstiegsknoten, Angeben geplanter
Pfade 412 und Verknüpfungen
zwischen den Knoten.
-
Generieren
von einem oder mehr alternativen Pfaden 412 für den Baum 410 reichert
den Baum 410 an. Das Sprungelternmodul 420 und
das Verbindungsmodul 430 generieren die alternativen Pfade 413 für den Baum 410.
Außerdem
sind die alternativen Pfade 413 vorgesehen und erweitern
den Baum 410, bevor beliebiger Inhalt/beliebige Daten in
das CDN 411 eingespeist und zu einem Fortschritt entlang
eines geplanten Pfades 412 zu einem oder mehr Ausstiegsknoten
gelenkt wird/werden.
-
Das
Sprungelternmodul 420 empfängt konfigurierbare Parameter,
die anzeigen, welche Knoten des Baums 410 mit alternativen
Pfaden 413 anzureichern sind. Das Sprungelternmodul 420 arbeitet
an den Knoten, die als Subjektknoten identifiziert sind, und macht
Elternknoten, die mit den Subjektknoten in Verbindung stehen, für Pfadgenerierung 450 nicht verfügbar. Als
Nächstes
ruft das Sprungelternmodul 420 den Pfadgenerator 450 mit
einer überarbeiteten Version
des Baums 410 auf und fordert einen neuen alternativen
Pfad 413 für
die Subjekt knoten an, die angereichert werden. Schließlich werden,
sobald das Sprungelternmodul 420 seine Anreicherung abgeschlossen
hat, die ursprünglichen
Einstellungen und geplanten Pfade 412 für den Baum 410 wiederhergestellt
und die neu angereicherten alternativen Pfade 413 werden
mit dem Baum 410 in Verbindung gebracht.
-
Auf
eine ähnliche
Weise empfängt
das Verbindungsmodul 430 konfigurierbare Parameter, die Subjektknoten
des Baums 410 identifizieren, die anzureichern sind. Das
Verbindungsmodul 430 arbeitet an den identifizierten Subjektknoten
und macht existierende füllende
Verknüpfungen
zu den Subjektknoten für
Pfadgenerierung 450 nicht verfügbar. Als Nächstes ruft das Verbindungsmodul 430 den
Pfadgenerator 450 auf, um einen neu angereicherten alternativen
Pfad 413 für
einen Subjektknoten zu generieren, wobei vorherige existierende
füllende
Verknüpfungen
nicht verwendet werden. Schließlich werden,
sobald das Verbindungsmodul 430 seine Anreicherung abgeschlossen
hat, die ursprünglichen Einstellungen
und geplanten Pfade 412 für den Baum 410 wiederhergestellt
und die neu angereicherten alternativen Pfade 413 werden
mit dem Baum 410 in Verbindung gebracht.
-
Das
Sprungelternmodul 420 und das Verbindungsmodul 430 können in
Kombination miteinander oder getrennt voneinander verwendet werden,
abhängig
von den Bedürfnissen
und/oder Wünschen
eines CDN-Administrators. Außerdem
kann jedes Modul 420 und 430 ein optionales Anreicherungsmerkmal
enthalten, das die alternativen Pfade 413 von den geringsten
Kosten (z.B. kürzester
Pfad) zu höchsten
Kosten (z.B. längster
Pfad) ordnet. Des weiteren kann der Pfadgenerator 450 Pfade
basierend auf Kosten vorsehen, die mit verschiedenen Charakteristika
des CDN 411, Knoten und/oder Verknüpfungen in Verbindung stehen.
-
In
einer Ausführungsform
ist der angereicherte Baum 410 für eine Verwendung in einer
Netzweiterleitungstabelle vorgesehen und wird durch eine oder mehr
beschleunigte Caching-Anwendungen verwendet, um den Inhalt/die Daten
durch das CDN 411 zu bewegen. In einer anderen Ausführungsform ist
der angereicherte Baum 410 für eine Verwendung in einer
Netzweiterleitungstabelle vorgesehen und wird durch eine oder mehr
konventionelle Weiterleitungseinrichtungen oder Weiterleitungsanwendungen
verwendet, um den Inhalt/die Daten durch das CDN 411 zu
bewegen.
-
Auf
diese Weise kann das System 400 durch eine oder mehr zusätzliche
Anwendungen verwendet werden, um den Inhalt/die Daten durch das
CDN 411 effizient zu bewegen. Dies geschieht derart, dass wenn
der Inhalt/die Daten in das CDN 411 in dem Zugangs- oder
Wurzelknoten des angereicherten Baums 410 eingespeist wird/werden,
alternative Knoten/Verbindungen, die mit den alternativen Pfaden 413 in
Verbindung stehen, vorbestimmt und für eine Verwendung verfügbar gemacht
werden, sollte ein(e) beliebige(r) Knoten/Verknüpfung während einer Bewegung des Inhalts/der
Daten ausfallen. Wie ein Durchschnittsfachmann leicht erkennt, erfordern die
Techniken der vorliegenden Offenbarung keine wesentliche Verwendung
von Netzressourcen, um eine Weiterleitung des Inhalts/der Daten
zu beeinflussen, wenn Ausfälle
auftreten, da die vorliegende Offenbarung derartige Umstände mit
dem angereicherten Baum 410, der die alternativen Pfade 413 hat,
bereits berücksichtigt
hat. Außerdem
können
die alternativen Pfade 413 basierend auf empirischem Wissen
eines CDN-Administrators des CDN 411 angepasst generiert
werden. Somit wird/werden Inhalt/Daten durch das CDN 411 mit
den Grundsätzen der
vorliegenden Offenbarung effizienter bewegt.
-
In
einigen Ausführungsformen
kann der Pfadgenerator 450 in dem Baumgenerator 440 enthalten
oder Teil von ihm sein.
-
Außerdem kann
in einigen Ausführungsformen
der Pfadgenerator 450, der verwendet wird, um die geplanten
Pfade zu generieren, getrennt und verschieden von einem Pfadgenerator 450 sein,
der verwendet wird, um die alternativen Pfade zu generieren.
-
5 veranschaulicht
ein Diagramm einer Datenstruktur, die einen erweiterten Baum 500 darstellt,
gemäß einer
Ausführungsform
der vorliegenden Erfindung. Die erweiterte Baumdatenstruktur 500 enthält eine
ursprüngliche
Baumdatenstruktur mit einem Zugangsknoten 501, Null oder
mehr Zwischenknoten 502, einem oder mehr Zugangsknoten 503 und
einem oder mehr ursprünglichen
geplanten Pfaden 504. Die erweiterte Baumdatenstruktur 500 enthält auch
einen oder mehr angereicherte oder alternative Pfade 505.
Die erweiterte Baumdatenstruktur 500 befindet sich auf
einem computerlesbaren Medium 510 und ist für eine oder
mehr Anwendungen zugreifbar, die verwendet werden, um die Datenstruktur 500 anzureichern,
oder um die Datenstruktur 500 zum Weiterleiten von Inhalt/Daten 540 durch
ein CDN zu verwenden.
-
Die
ursprüngliche
Baumdatenstruktur wird unter Verwendung beliebiger konventioneller
oder angepasst entwickelter Umspannungsbaumalgorithmen generiert.
Die ursprüngliche
Baumdatenstruktur wird innerhalb einer Topologie dargestellt, die
aus dem CDN abstrahiert ist. Die Topologie kann eine oder mehr Baumdatenstrukturen
enthalten. Ferner enthält
die ursprüngliche
Baumdatenstruktur Verknüpfungen
zwischen den Knoten. Die geplanten Pfade 504 sehen eine
geplante Route zum Bewegen von Inhalt/Daten 540 von dem
Zugangsknoten 501 durch Null oder mehr Zwischenknoten 502 zu
einem oder mehr Ausstiegsknoten 503 unter Verwendung der
Verknüpfungen
vor.
-
Die
alternativen Pfade 505 sind Alternativen zu den geplanten
Pfaden 504 und sind mit der erweiterten Baumdatenstruktur 500 (z.B.
nun einem zyklischen Graph) verfügbar,
bevor der Inhalt/die Daten 540 bewegt oder in das CDN eingespeist
wird/werden. Die alternativen Pfade 505 werden automatisch aus
Weiterleitungstabellen 520 erlangt, wenn ein Knoten/eine
Verknüpfung
bestimmt wird, mit einem geplanten Pfad 504 nicht verfügbar oder
nicht reagierend zu sein, oder mit einem der alternativen Pfade 505.
Die Weiterleitungstabellen 520 sind für Anwendungen und/oder Einrichtungen 530 (z.B.
Caching-Anwendungen,
traditionelle Weiterleitungssysteme und andere) zugreifbar, wenn
diese Anwendungen und/oder Einrichtungen 530 zum Bewegen
des Inhalts/der Daten 540 durch das CDN verantwortlich sind.
-
Alternative
Pfade 505 können
durch eine beliebige Anreicherungsanwendung generiert werden, die
angereicherte Pfade basierend auf konfigurierbaren Annahmen vorbestimmt,
dass Elternknoten und/oder existierende füllende Verknüpfungen
innerhalb der ursprüngliche
Baumdatenstruktur potenziell nicht verfügbar sind. Des weiteren können diese
alternativen Pfade optional von geringsten Kosten (z.B. kürzester
Pfad) zu höchsten
Kosten (z.B. längster Pfad)
organisiert sein. Die alternativen Pfade 505 werden der
erweiterten Baumdatenstruktur 500 bereitgestellt, bevor
der Inhalt/die Daten 540 in das CDN eingespeist wird/werden.
Es kann auch ein Grad von Granularität konfiguriert und der Anreicherungsanwendung
zugeführt
werden, derart, dass die Zahl und der Typ von alternativen Pfaden 505 bestimmt
werden können.
Ein Typ eines alternativen Pfades 505 kann eine ausgefallene
existierende füllende
Verknüpfung
für einen
Subjektknoten oder ein ausgefallener Elternknoten für den Subjektknoten sein.
-
Somit
wird/werden mit der erweiterten Baumdatenstruktur 500 Inhalt/Daten 540 effizienter durch
das CDN umgeleitet, wenn Ausfälle
von Verknüpfungen
und/oder Knoten erfasst werden. Außerdem kann der Grad von Granularität, der mit
alternativer Pfadgenerierung in Verbindung steht, konfiguriert und
durch jemanden, der mit dem CDN am meisten vertraut ist, wie etwa
einem Inhaltsadministrator, bereitgestellt werden. Wenn eine Umleitung
für den Inhalt/die
Daten 540 innerhalb des CDN erforderlich ist, sind außerdem die
alternativen Pfade 505, die verwendet werden, um eine beliebige
Umleitung aufzulösen,
eng ausgerichtet und setzen die ursprüngliche Baumdatenstruktur wirksam
ein. Ein Durchschnittsfachmann versteht nun beim Lesen und Nachvollziehen
der vorliegenden Offenbarung, wie ein Baum für ein CDN angereichert werden
kann, um effizienteren und zeitgerechteren Service vorzusehen.
-
Obwohl
verschiedene Ausführungsformen der
vorliegenden Erfindung in Form eines CDN erörtert wurden, ist einem Durchschnittsfachmann
leicht offensichtlich, dass dieser Begriff eine beliebige Netzkonfiguration
enthalten kann, die verwendet wird, um die Unterweisungen der vorliegenden
Erfindung zu erreichen. Außerdem
sind die angereicherten Bäume
von verschiedenen Ausführungsformen der
vorliegenden Erfindung gerichtete Graphen und können Ringe enthalten. Des weiteren
ist einem Durchschnittsfachmann leicht offensichtlich, dass wenn
die angereicherten Bäume
in Gebrauch sind, beliebige standardmäßige oder angepasst entwickelte
Mechanismen verwendet werden können,
um Weiterleitungsschleifen oder einen Bruch von Ringweiterleitung
zu erfassen und zu vermeiden. Diese Mechanismen können mit
den angereicherten Bäumen in
Verbindung stehen und/oder von den angereicherten Bäumen getrennt
und verschieden sein.
-
Obwohl
verschiedene Ausführungsformen Daten
darstellen, als in ein CDN eingespeist oder geschoben zu werden,
ist außerdem
leicht offensichtlich, dass dies nicht der Fall sein muss. In der
Tat können
in einigen Ausführungsformen
die Daten in und durch das CDN gezogen werden. Deshalb können Schiebe-
oder Zugtechniken mit der vorliegenden Offenbarung verwendet werden.
-
Die
vorangehende Beschreibung von verschiedenen Ausführungsformen der Erfindung
wurde zum Zweck von Veranschaulichung und Beschreibung präsentiert.
Sie ist nicht gedacht, erschöpfend zu
sein oder die Erfindung auf die genaue offenbarte Form zu begrenzen.
Einem Fachmann werden angesichts der obigen Unterweisung viele Alternativen, Modifikationen
und Variationen offensichtlich sein. Obwohl verschiedene Ausführungsformen
der Erfindung als eine Reihe sequenzieller Schritte beschrieben
wurden, ist die Erfindung z.B. nicht auf eine Durchführung beliebiger
bestimmter Schritte in einer beliebigen bestimmten Reihenfolge begrenzt.
Entsprechend ist diese Erfindung gedacht, alle Alternativen, Modifikationen,
Entsprechungen und Variationen zu umgreifen, die in den Bereich
der angefügten Ansprüche fallen.