-
Technisches
Gebiet
-
Die
Erfindung bezieht sich auf das Gebiet des Lieferns von Inhalten
in einem Datenkommunikationsnetzwerk. Weiter insbesondere betrifft
diese Erfindung die verteilte Steuerung eines Datenpaketstroms,
welcher durch ein zwischengeschaltetes Netzwerkelement fließt, und
die verteilte Steuerung und Konfiguration von Netzwerkressourcen
an einer Hierarchie der Zwischenstationen. Die hauptsächlich gewünschte Verwendung
dieser Erfindung ist, als ein Proxy für Inhaltsstreaming zu dienen
und in einer verteilten Weise Inhaltsanpassungsdienste zur Verfügung zu
stellen.
-
Stand der
Technik
-
Über das
letzte Jahrzehnt hat das Internet und weiter insbesondere das auf
dem Internet-Protokoll (IP) basierende Netzwerk ein großartiges
Wachstum erlebt. Die Ausbreitung des Internet und die ansteigende
Zahl von Internet-Nutzern hat zu Erweiterungs- und Skalierproblemen
für Anwendungen
geführt.
Dies ist insbesondere für
Anwendungen richtig, die für
Endnutzer entworfen sind, wie etwa das World Wide Web (WWW) und audiovisuelles
Streaming. Die Anstiege in Netzwerkbandbreite und Verarbeitungsstärke können kaum
mit den Forderungen der steigenden Zahl von Internet-Nutzern mithalten.
Dies hat zu einer längeren
Ladezeit für
eine www-Seitenanfrage geführt
und zu einem Verlust von Qualität
bei einer audiovisuellen Echtzeitwiedergabe über das Internet geführt. Der
Versuch, derartige unerwünschte
Effekte zu reduzieren, hat zu einer weiten Verbreitung von intelligenten
Netzwerkelementen an dem Netzwerkrand (d.h. näher an den Endnutzern) geführt.
-
Die
am meisten verbreitete Verwendung derartiger zwischengeschalteter
Netzwerkelemente ist es, als Cache Proxies zu dienen, wie etwa Hypertexttransfer protokoll
(http) Proxies und/oder Caches, wie sie in einem Artikel „Hypertexttransferprotokoll – HTTP/1.1", IETF RFC 2616,
Juni 1999, von Fielding, R., Gettys, J., Mogul, J., Frystyk, H.,
Masinter, L., Leach, P., und T. Berners-Lee beschrieben sind. Diese
waren erfolgreich beim Reduzieren der Netzwerkbelastung an dem WWW-Server
und einer Beschleunigung von einem Liefern von WWW-Inhalten an die
Endnutzer. Da jedoch die Zahl von Endnutzern ansteigt, weitet sich
die Vielzahl von Netzbrowserkonfigurationen und Plattformen aus.
Auf ähnliche
Weise verbreitert sich auch die Bandbreite von Netzinhalten. Es
kann nicht davon ausgegangen werden, dass ein einfaches Replizieren
von statischen Netzinhalten die immer weiter ansteigenden Forderungen
der Endnutzer trägt.
-
Darüber hinaus
besteht auch ein merklicher Anstieg bei der Verbreitung von Multimedia-Streaming über das
Internet. Dieses verwendet normalerweise das Echtzeit-Streaming-Protokoll
(RTSP) als Sitzungsprotokoll, um einen Kommunikationskanal aufzubauen
und abzubauen, und ein Echtzeittransportprotokoll und ein Echtzeitsteuerprotokoll
(RTP/RTCP) für
die tatsächliche Übertragung
von Inhaltsdaten. Das RTSP ist beispielsweise in „Real-Time
Streaming Protocol (RTSP)",
IETF RFC 2326, April 1998, von Schulzrinne, H., Rao, A., und Lanphier,
R. offenbart. Das RTP/RTCP ist beispielsweise in „RTP: A
Transport Protocol for Real-Time Applications", IETF RFC 1889, Januar 1996, von Schulzrinne,
H., Casner, S., Frederi ck, R., und Jabcobson, V. offenbart. Aufgrund
der vielfältigen
Natur des Internet-Verkehrs ist eine Anpassung des Multimedia-Stroms an
die fluktuierenden Verkehrsbedingungen notwendig, um für den Endnutzer
eine glatte Präsentation
zu sichern. Obwohl RTCP ein Mittel für Endnutzer zur Verfügung stellt,
um deren Kommunikationsstatus zurück an den Sender zu berichten,
können
Maßnahmen,
die durch den Sender auf der Basis eines Empfängerberichts vorgenommen werden,
nur schwer effektiv sein, da der Abstand (Netz-Abfrage) zwischen
dem Empfänger
und dem Sender oft groß ist.
Da die meisten Endnutzer mit dem Internet über eine Zwischenstation beliebiger
Sorte, beispielsweise Firewall Gateways, Netzwerkadressenübersetzer
(NAT) oder Proxies in Verbindung treten, bietet die Zwischenstation
eine gute Wahl, um Anpassungsdienste für den den Inhalt ursprünglich zur
Verfügung
stellenden durchzuführen.
-
Ebenso
wie das Internet wächst
darüber
hinaus auch die Bandbreite von Vorrichtungen, die verwendet werden,
um von dem Netz auf Inhalte zuzugreifen. Diese Diversifikation von
Browser-Typen wurde mit kürzlichen
Fortschritten bei der drahtlosen Internet-Technologie beschleunigt,
wodurch kleine Handgeräte,
wie etwa digitale persönliche
Assistenten (PDA) und Mobiltelefone eingebaute Mikro-Browser aufweisen,
die das Netz absuchen, oder audio-visuelle Ströme wiedergeben. Inhaltsautoren
können
nicht länger
Inhalte mit der Annahme entwickeln, dass der entwickelte Inhalt
nur durch Nutzer angesehen werden wird, die herkömmliche Desktop Computer verwenden.
Vorrichtungsunabhängigkeit
ist nunmehr eine kritische Überlegung,
wie etwa in „Device
Independence Principles",
W3C Working Draft, http://www.w3.org/TR/di-princ/, September 2001,
von Gimson, R., et. al. offenbart.
-
Eine
Anzahl von internationalen Standardisierungsorganisationen hat den
Bedarf erkannt, Dienste, die ursprünglich nur an dem Netzwerkkern
(wo sich die Server befinden) zur Verfügung standen, dem Netzwerkrand
(wo sich die Endnutzer befinden) zur Verfügung zu stellen. Die Internet
Engineering Task Force (IETF) hat beispielsweise kürzlich einige
Arbeitsgruppen eingesetzt, die sich darauf konzentrieren, Dienste
an den Netzwerkrändern
zur Verfügung
zu stellen. Die Open Pluggable Extensible Services (OPES) Arbeitsgruppe
ist ein solcher Versuch. Die OPES-Arbeitsgruppe fokussiert sich
auf eine Erweiterung der derzeitigen HTTP-Proxies von einem Ausführen von
einfachen Cache-Aufgaben zu einer ganzen Gesamtheit von Anwendungsdiensten.
Das Grundgerüst
von OPES ist in „A
Model for Open Pluggable Edge Services", IETF Internet Draft, Work in Progress,
http://www.ietf.org/internet-drafts/draft-tomlinson-opes-model-01,
November 2001, von Tomlison, G., Chen, R., und Hofmann, M. spezifiziert.
Es besteht auch eine Content Distribution Internetworking (CDI)
Arbeitsgruppe, die sich auf die Zusammenarbeit zwischen verschiedenen
Inhaltsverteilungsnetzwerken (CDN) konzentriert. Von derartigen
Verteilungsanstrengungen wird angenommen, dass sie in der Lage sind,
das Liefern von Inhalten an den Endnutzer weiter zu beschleunigen.
-
Die
derzeitige Verbindung von Zwischenstationen bei einem Liefern von
Inhalten ist zumeist auf ein Liefern einer einfachen Funktionalität, wie etwa
einem HTTP cache-Vorgang, einem HTTP Proxy oder einem RTSP Proxy
beschränkt.
Dabei kann nicht erwartet werden, dass das von den Nutzern des heutigen
Internets geforderte Service-Niveau aufrechterhalten werden kann,
da die Anzahl von Endnutzern exponentiell ansteigt. Da sich darüber hinaus
die Bandbreite von Hardwarevorrichtungen und Softwareagenten, die
durch verschiedene Nutzer verwendet werden, um Inhalte aufzufinden,
ebenfalls verbreitert, finden es Inhaltslieferanten schwierig, den
Nutzern einen kohärenten
Satz von Inhalten zur Verfügung
zu stellen, der der Vorrichtung und den Vorlieben des Nutzers angepasst
ist.
-
Obwohl
verschiedene internationale Vereinigungen die obigen Probleme erkannt
haben und gewirkt haben, um Resolutionen zur Verfügung zu
stellen, könnte
deren Arbeit weiterhin verbessert werden. Das beschriebene OPES-Grundgerüst konzentriert
sich auf die Operationen einer einzelnen Zwischenstation, den derzeitigen
Trend von Kollaborationen zwischen Inhaltslieferungsnetzwerken ignorierend.
Obwohl die Idee des OPES-Grundgerüsts ist, eine Inhaltsanpassung
durchzuführen,
um so die Erfahrung des Nutzers beim Auffinden von Inhalt zu verbessern,
fokussierte es darüber
hinaus nur auf Parameter des HTTP. Dies ist nicht nur nicht adäquat für eine Vorrichtungsunabhängigkeit,
es ist auch nicht auf die steigende Anzahl von audiovisuellen Streaming-Anwendungen
zugeschnitten.
-
Beck
A. Hofmann, M.: "IRML:
A Rule Specification Language for Intermediate Services; Version
02" IETF INTERNET
DRAFT; [Online] 21 November 2001 (2001-11-21), Seiten 1-17 offenbart
Netzdienste als eine neue Klasse von Anwendungen, die auf vernetzten
Computern in einer verteilten Umgebung laufen. Diese Dienste werden
entweder direkt durch Anwendungsendpunkte oder durch Zwischenstationen
aufgerufen, die für
Anwendungsendpunkte wirken. Solche Zwischenstationen können in
der Form von Caches, Proxies, Gateways, Schaltern usw. auftreten,
und sie werden auch als Dienstverteiler, Anwendungs-Broker, Dienst-Broker usw.
bezeichnet. IRML (Zwischenstations-Regel-Mark-up-Sprache (englisch = Intermediary Rule
Mark-up Language)) ist ausgebildet, um als eine einfache und effiziente
aber mächtige
Sprache zu dienen, um die Dienstausführungsvorschriften von Anwendungsendpunkten
auszudrücken.
IRML-Regeln werden typischerweise durch Zwischenstationen verarbeitet,
die die Ausführung
von Netzdiensten gemäß diesen
Regeln und Vorschriften auslösen
(englisch = tricker).
-
Srisuresh
P et al: „Middlebox
communication architecture and framework;" INTERNET ENGINEERING TASK FORCE, 28
February 2002 (2202-02-28), Seiten 1-35, offenbart, dass heute eine
Vielzahl von Zwischenstationsvorrichtungen im Internet besteht,
die für
ihren Betrieb Anwendungsintelligenz benötigen. Diagramme, die Echtzeit-Streaming-Anwendungen
betreffen, wie etwa SIP und H.323, und eine Peer-to-Peer-Anwendung,
wie etwa Napster und NetMeeting, können nicht durch ungefähres Überprüfen von
Paketköpfen identifiziert
werden.
-
Offenbarung der Erfindung
-
Um
das in Abschnitt 3.3 aufgeführte
Problem zu lösen,
erlaubt es die vorliegende Erfindung, Inhaltslieferanten, Zugriffslieferanten
und/oder Endnutzern, Regeln zu spezifizieren, die das Liefern von
Inhalt über zwischengeschaltete
Netzwerkelemente regeln. Diese Regeln können zu anderen Zwischenstationen
entlang des Inhaltsfließweges
verteilt werden, um eine maximale Effizienz und eine leichtere Steuerung
von Netzwerkressourcen zu erreichen. Sie ist geeignet für einen
Einsatz durch verschiedene Inhaltslieferungsnetzwerke und kann untereinander
kooperieren. Zusätzlich
erlaubt es die vorliegende Erfindung, dass Regeln spezifiziert werden,
die speziell auf Echtzeitinhaltsstreaming zugeschnitten sind. Die
vorliegende Erfindung definiert auch einen Mechanismus, um Regeln
zu erweitern, die auf der Basis von Benutzervorlieben und Vorrichtungsleistungsfähigkeiten
konstruiert sind. Solch eine Einrichtung erlaubt es dem Regelautor
Regeln zu konstruieren, die Inhalte besser anpassen können, um
eine Vorrichtungsunabhängigkeit
zu erreichen.
-
Diese
Erfindung ist durch die anhängenden
Ansprüche
definiert und beinhaltet die Operationen von einem oder mehreren
zwischengeschalteten Netzwerkelementen, die eine Lieferung von Inhalt
ausführen
und eine Anpassung zwischen Endnutzern und den Inhaltslieferanten
durchführen.
Das zwischengeschaltete Netzwerkelement (auch als Zwischenstation
bekannt) wird ein Parsing jedes zwischen dem Endnutzer und dem Inhalt
der Lieferanten transferierten Datenpakets durchführen. Wenn
die Datenpakete bestimmten Kriterien entsprechen, wie sie in einem
Satz von Regeln spezifiziert sind, welcher in der Zwischenstation
registriert ist, werden Aktionen durchgeführt, die in den Regeln spezifiziert
sind, was normalerweise zu der Modifikation der Datenpakete führt. Regeln
in einer Zwi schenstation können
zu anderen Zwischenstationen verteilt werden, welche besser geeignet
sind, um die Regel zu evaluieren und/oder die Anpassungen durchzuführen. Zusätzlich können Regeln
auch speziell auf ein Echtzeit-Streaming-Protokoll zugeschnitten werden, oder
sie können
mit Lieferungskontextparametern konstruiert werden, um eine Vorrichtungsunabhängigkeit
zu erreichen.
-
Kurze Beschreibung
der Zeichnungen
-
1 ist
ein Grundgerüst
eines zwischengeschalteten Netzwerkelements, welches die funktionale
Architektur des zwischengeschalteten Netzwerkelements zeigt, wie
in der Erfindung verwendet.
-
2 zeigt
Knoten entlang des Inhaltsweges und illustriert einen typischen
Inhaltsfließweg
von dem Inhaltsserver zu dem Inhaltsnutzer über eine einzelne oder mehrere
Zwischenstationen.
-
3 zeigt
ein Beispiel einer Inhaltswegstruktur, insbesondere die Werte zeigend,
die in einer Inhaltswegstruktur der Zwischenstation foo4.com gespeichert
sind, wie durch Bezugszeichen 204 in 2 markiert.
-
4 zeigt
ein Verfahren zum Extrahieren von Zwischenstationsinformation aus
einer eingebetteten Signatur in Datenpaketen, insbesondere das Flussdiagramm
des Verfahrens zum Extrahieren von Zwischenstationssignaturen in
den Datenpaketen zeigend, um die Inhaltswegstruktur zu konstruieren/auf
den neuesten Stand zu bringen.
-
5 zeigt
ein Verfahren des Bestimmens der entfernten Zwischenstation, um
eine Regel zu verbreiten, insbesondere den Algorithmus zeigend,
der verwendet wird, um die entfernte Zwischenstation dazu zu bestimmen,
zu der eine Regel zu verteilen ist, wobei die Verteilungsanzeige
vorgegeben ist.
-
6 zeigt
ein Verfahren, eines Durchführens
eines Parsing einer Regel mit einer verteilten Regelunterstützung, insbesondere
den Algorithmus zeigend, der verwendet wird, um eine Regel einem
Parsing zu unterziehen, mit dem Fokus auf Unterstützen von
verteilten Regeln. Das tatsächliche
Verfahren einer Durchfüh rung
eines Parsing der Regel, um auf eine syntaktische Gültigkeit
hin zu überprüfen und
einer Evaluation der Regel liegt außerhalb des Bereichs dieses
Dokuments.
-
7 zeigt
ein Verfahren zum Bestimmen der entfernten Zwischenstation zur Verteilung
einer Regel in einem Server-Client-Modell, insbesondere den Algorithmus
zeigend, der verwendet wird, um die entfernte Zwischenstation zu
bestimmen, um zu der eine Regel zu verteilen ist, wobei die Verteilungsanzeige
vorgegeben wird, in einem Server-Client-Modell.
-
Bester Weg
die Erfindung auszuführen
-
Eine
Vorrichtung und Verfahren zum verteilten Netzwerkressourcen-Management wird offenbart.
Um ein Verständnis
der Erfindung zu erleichtern, werden die folgenden Definitionen
verwendet:
Ein „Paket" ist eine in sich
abgeschlossene Einheit von Daten jedes möglichen Formats, welches über ein
Datennetzwerk geliefert werden könnte.
-
Eine „Zwischenstation" und ein „zwischengeschaltetes
Netzwerk" sind äquivalent
und werden austauschbar verwendet, wenn es nicht anderweitig spezifiziert
ist, um ein Gateway, einen Router oder eine intelligente Netzwerkverteilstation
zu bezeichnen, auf welche sich diese Erfindung bezieht.
-
Der
Begriff „aktuelle
Zwischenstation" oder „aktuelles
zwischengeschaltetes Netzwerkelement" bezieht sich auf ein zwischengeschaltetes
Netzwerkelement, welches ein Datenpaket verarbeitet, oder eine Regelspezifikation,
in Abhängigkeit
von dem Kontext, in dem der Begriff verwendet wird.
-
Die
Begriffe „Inhaltsserver" und „Inhaltsnutzer" werden mit Bezug
auf ein Server-Client-Modell
eines Informationsaustauschs verwendet. Der Inhaltsnutzer, welcher
der Client ist, wird ein einzelnes oder eine Mehrzahl von Datenpaketen
zu dem Inhaltsserver senden, welche eine Anfrage enthalten. Derartige
Datenpakete sind als Anfragepakete bekannt. Beim Verarbeiten der
Anfrage würde
der Inhaltsserver mit einem einzelnen oder einer Mehrzahl von Datenpaketen
antwor ten, welche die Antwort enthalten. Derartige Datenpakete werden
als Antwortpakete bezeichnet.
-
Beim
Verteilen von Regeln wird der Begriff „Zielzwischenstation" oder „zwischengeschaltetes
Zielnetzwerkelement" für das zwischengeschaltete
Netzwerkelement der vorliegenden Erfindung verwendet, welches die
verteilte Regel empfängt.
Der Begriff „verteilende
Zwischenstation" oder „verteilendes
zwischengeschaltetes Netzwerkelement" bezieht sich auf das zwischengeschaltete
Netzwerkelement der vorliegenden Erfindung, welches die Regeln zu
anderen Zwischenstationen verteilt.
-
In
der folgenden Beschreibung werden zum Zwecke einer Erklärung bestimmte
Zahlen, Zeiten, Strukturen und andere Parameter ausgeführt, um
ein tiefgreifendes Verständnis
der vorliegenden Erfindung zur Verfügung zu stellen. Es ist jedoch
jedem Fachmann der Technik klar, dass die vorliegende Erfindung
ohne diese spezifischen Details durchgeführt werden kann.
-
Das
zwischengeschaltete Netzwerkelement, auf welches die vorliegende
Erfindung angewendet wird, besteht aus der funktionalen Architektur,
wie sie in 1 dargestellt ist. Die Zwischenstation
besteht aus einem Gateway-Modul (101), einer Regelverarbeitung
(102), einem einzelnen oder einer Mehrzahl von speziellen
Paketen (103) und aus dem Regelinjektionsmodul (104).
-
Das
Gateway-Modul (101) ist die Sammlung von funktionalen Blöcken, die
Gateway oder Proxy-Funktionalitäten
implementieren. Diese können
HTTP-Proxies und/oder Caches, RTSP-Proxies, RTP/RTCP-Mixer und/oder Übersetzer,
und Anwendungsniveau-Gateways (ALG) umfassen, sind jedoch nicht
darauf beschränkt.
Beispielsweise betrachten wir eine Zwischenstation, die die Rolle
eines HTTP-Proxies ausführt.
Das Gateway-Modul (101) würde somit die funktionale Komponente
implementieren, um HTTP-Verbindungen von der Client-Seite handzuhaben,
die funktionalen Komponenten implementieren, um mit dem Server oder
einem anderen HTTP-Proxy eine HTTP-Verbindung zu etablieren, basierend
auf einer Anfrage der Client-Seite, und die funktionale Komponente
implementieren, um Antworten von dem Server zurück auf die Client-Seite zu schalten.
Das Gateway-Modul (101) ist tatsächlich die funktionale Komponente,
die die Protokolle (beispielsweise HTTP, RTSP) implementiert, für welche
die Zwischenstation ein aktiver Teilnehmer ist.
-
Das
Regelverarbeitungsmodul (102) führt ein Parsing mit allen oder
einem Teil der Datenpakete durch, die das zwischengeschaltete Netzwerkelement
passieren, und gleicht diese Datenpakete mit einem Satz von Kriterien
ab, die durch eine einzelne oder eine Mehrzahl von Regeln spezifiziert
sind. Dies ist als Evaluierung von Regeln bekannt. Diese Regeln
werden in einer logischen Einheit spezifiziert, die als Regelspezifikation
bekannt ist. Eine Regelspezifikation kann eine einzelne oder ein
Mehrzahl von Regeln enthalten. Wenn eine Übereinstimmung aufgefunden
wird, dann wird (werden) die entsprechende (entsprechenden) Aktion(en),
die in den Regeln spezifiziert ist (sind), getriggert. Dies ist
als das „Abfeuern
einer Regel" bekannt.
Diese ausgeführt
Aktion kann ein Einfügen
von Inhalten in die Datenpakete, ein Entfernen von einem Teil oder
des gesamten Inhalts aus den Datenpaketen und ein Modifizieren von
Inhalten in den Datenpaketen umfassen, ist jedoch nicht darauf beschränkt. Dieses
Einfügen,
Entfernen und Modifizieren von Paketinhalten kann auf der Zwischenstation
oder anderen entfernten Maschinen ausgeführt werden, die bestimmt sind,
um Pakettransformationen durchzuführen.
-
Beispiele
von Regeln, die durch eine Regelverarbeitung (102) einem
Parsing unterzogen werden, schließen eine Regel ein, welche
die Bandbreite bestimmt, die dem Datenstrom zuzuordnen ist, die
der Client anfordert. Beispielsweise kann eine Regel in der folgenden,
ein hohes Niveau aufweisenden Form spezifiziert werden:
„Wenn Netzwerkkanal
von Client <= 1
Mbps, dann ordne 10 kBit für
Datenstrom zu".
(Regel 1)
-
Das
Regelverarbeitungsmodul (102) implementiert die Funktionalität, um solche
Regeln einem Parsing zu unterziehen, und bestimmt, ob eine Übereinstimmung
(d.h. ob der Netzwerkkanal des Endnutzers eine Kapazität aufweist,
die kleiner ist oder gleich 1 Mbps) auftritt. Das obige Beispiel
zeigt auch, wie die Regeln die Netzwerkressourcenzuordnungsentscheidungen
steuern.
-
Ein
anderes Beispiel von Regeln, die durch das Regelverarbeitungsmodul
(102) einem Parsing unterzogen werden, wird sein, die nächste Zwischenstation,
oder den nächsten
Server zu bestimmen, der in Antwort auf eine Anfrage eines Klienten,
welche von dem Gateway-Modul (101) empfangen wurde, zu
kontaktieren ist. Hier kann, auf der Basis der Parameter der Anfrage,
die Anfrage zu einem anderen Server/einer anderen Zwischenstation
geleitet werden. Beispielsweise seien die folgenden Regeln eines
hohen Niveaus betrachtet:
„Wenn die angefragten Daten
nur audio sind, dann leite Anfrage zu foo3.bar.com" (Regel 2a)
„Wenn angefragte
Daten audio und video sind, dann leite Anfrage zu foo4.bar.com" (Regel 2b)
-
Das
Regelverarbeitungsmodul (102) ist verantwortlich für das Durchführen eines
Parsing und das Interpretieren derartiger Regeln, und für das Bestimmen,
ob eine Bedingung erfüllt
ist. Wenn eine erfüllt
ist, wird das Regelverarbeitungsmodul (102) das Gateway-Modul
(101) informieren, welche nächste Zwischenstation/welcher
nächster
Server ausgewählt
ist, und das Gateway-Modul (101), welches die tatsächliche
Funktionalität
implementiert, um unter Verwendung des spezifischen Protokolls mit
anderen zu kommunizieren, würde voranschreiten,
um die Anfrage an die ausgewählte
nächste
Zwischenstation/den ausgewählten
nächsten
Server zu leiten.
-
Die
Zwischenstation in der vorliegenden Erfindung kann null, ein einziges
oder mehrere von speziellen Paketen (103) aufweisen. Diese
speziellen Pakete (103) sind Module, die entworfen sind,
um das Regelverarbeitungsmodul (102) zu verstärken, indem
sie spezialisierte Funktionalitäten
zur Verfügung
stellen. Beispielsweise kann ein spezielles Paket „Qualität-des-Service" (QoS) verwendet
werden, um das Regelverarbeitungsmodul (102) beim Verstehen
und Evaluieren von Regeln zu unterstützen, was QoS-Parameter und
Bedingungen und beinhaltet. Das Regelverarbeitungsmodul (102)
kann selbst nur ein Parsing von Regeln durchführen und versuchen, eine Übereinstimmung
mit den durch die Regelspezifikationen ausgesprochenen Bedingungen
zu finden. Unter Verwendung des obigen Beispiels der (Regel 1a)
wird das Regelverarbeitungsmodul (102) Hilfe benötigen, um
die tatsächliche
Kapazität
des Netzwerkskanals des Client zu bestimmen. Ein spezielles Paket
(103) zum Evaluieren von QoS-Parametern kann in der Zwischenstation
installiert werden, um einen derartigen Ausdruck zu evaluieren.
Das Regelverarbeitungsmodul (102) würde das spezielle QoS-Paket (103)
anfragen, wenn es ein Parsing einer Regelspezifikation durchführt, welche
einen QoS-Parameter (wie etwa Bandbreite, Verzögerung usw.) spezifiziert.
Das spezielle QoS-Paket (103) evaluiert den Wert des fraglichen
Parameters und gibt ihn zurück
an das Regelverarbeitungsmodul (102). Von da an kann dann
das Regelverarbeitungsmodul (102) voranschreiten, um zu
prüfen,
ob eine Übereinstimmung
mit der Bedingung, die durch die Regelspezifikation spezifiziert
wurde, aufgetreten ist. Auf diesem Weg kann ein modulares Design der
Zwischenstation erreicht werden. Das Regelverarbeitungsmodul (102)
führt den
Job einer Durchführung eines
Parsing von Regelspezifikationen aus. Es verwendet verschiedene
spezielle Pakete (103), um den Wert eines Parameters zu
evaluieren, der in einer Regelspezifikation spezifiziert ist, und
von diesen Werten bestimmt es, ob eine Bedingung erfüllt ist.
Bei der vorliegenden Erfindung wird ein spezielles Paket zum Evaluieren
von Regeln auf der Basis eines Lieferkontexts ausgeführt.
-
Das
Regelinjektionsmodul (104) ist ein Modul, welches dynamisch
Regeln lädt
und entlädt,
in und aus dem Regelverarbeitungsmodul (102). Es liefert
auch die Schnittstelle für
entfernte Teilnehmer, um dynamisch Regeln zu registrieren, zu aktivieren
oder zu deaktivieren. Dieses Modul ist unerlässlich beim Unterstützen einer
Verteilung von Regeln durch verschiedene Zwischenstationen.
-
Am
Anfang, wenn die Zwischenstation hochfährt, wird das Regelinjektionsmodul
(104) einen Anfangssatz von Regelspezifikationen laden,
basierend auf einer Konfigurationsdatei oder anderweitig, aus dem
Speicher der Zwischenstation. Die Regelspezifikationen werden in
das Regelverarbeitungsmodul (102) geladen. Wenn eine Client-Anfrage
(oder Server-Antwortdaten) ankommt, wird das Gateway-Modul die Anfrage
des Client (oder Server-Antwortdaten) verarbeiten, und sie an das
Regelverarbeitungsmodul (102) zum Durchführen eines
Parsing weiterleiten. Das Regelverarbeitungsmodul (103)
wird das Parsing der Regelspezifikationen durchführen und versuchen, eine Übereinstimmung
mit den spezifizierten Bedingungen gegenüber der Anfrage (oder Antwort)
zu suchen. Während
das Parsing dieser Regeln durchgeführt wird, kann das Regelverarbeitungsmodul (102)
eine Unterstützung
von speziellen Paketen (103) benötigen, um den Wert der Parameter
zu evaluieren.
-
Das
Regelinjektionsmodul (104) erlaubt auch, dass Regeln dynamisch
in die Zwischenstation geladen werden. Beispielsweise kann ein Administrator
einen neuen Satz von Regelspezifikationen, der auf der Zwischenstation
zu installieren ist, aus der Entfernung transferieren. Alternativ
kann der Administrator wünschen, eine
Regelspezifikation aus der Entfernung von der Zwischenstation zu
entfernen. Das Regelinjektionsmodul (104) verarbeitet derartige
Operationen aus der Entfernung. Darüber hinaus sind diese Operationen
nicht beschränkt
auf menschliche Administratoren. Tatsächlich beschreibt der erste
Abschnitt der vorliegenden Erfindung detailliert den Mechanismus,
der es erlaubt, Regelspezifikationen zwischen Zwischenstationen
dynamisch zu laden und zu entladen. Das Regelinjektionsmodul (104)
spielt hier die Rolle des Akzeptierens von Verbindungen von anderen
Zwischenstationen und verarbeitet Anfragen, um eine Regelspezifkation
in das Regelverarbeitungsmodul (102) zu laden oder aus
dem Regelverarbeitungsmodul (102) zu entladen.
-
Eine
Verteilung von Regeln impliziert, dass (eine) Regelspezifikation(en),
die auf eine Zwischenstation geladen wird (werden) zu einer anderen
Zwischenstation, um evaluiert zu werden, geleitet werden können. Das
ganze oder ein Teil der Regelspezifikation kann bezeichnet werden,
um verteilt zu werden. Diese Bezeichnungen schlagen auch vor, zu
welcher Zwischenstation entlang des Datenflussweges zu verteilen
ist. 2 zeigt einen typischen Inhaltsflussweg. Es ist
zu beachten, dass andere Netzwerkelemente, die ein Vermittlungsziel
entlang des Inhaltsweges durchführen,
vorhanden sind, die nicht in 2 dargestellt
sind. Entlang des Weges von dem Inhalts-Server (201) zu
dem Inhaltsnutzer (207) können eine einzelne oder mehrere
Zwischenstationen (202-206) vorhanden sein, wobei
die vorliegende Erfindung verwendet wird.
-
Autoren
der Regelspezifikation können
anzeigen, welche Zwischenstation entlang des Inhaltsflussweges die
Regelspezifikation teilweise oder insgesamt zu verteilen hat. Da
es für
Autoren unlogisch wäre,
zu wissen, wie Zwischenstationen in einer tatsächlichen realen Situation verteilt
sind, spezifizieren Autoren die bevorzugte Zwischenstation, zu welcher
die Regel zu verteilen ist, indem die Richtung der Verteilung, d.h.
in Richtung auf einen Quellenknoten oder in Richtung eines Zielknotens,
angezeigt wird. Der Begriff „Quelle" (englisch = source)
und „Ziel" (englisch = destination)
werden mit Bezug auf die Datenpakete verwendet. Der Quellenknoten
ist der Knoten, der das Datenpaket erzeugt, und der Zielknoten ist
der Knoten, der das Datenpaket konsumiert. In einem Server-Client-Modell können die
Richtungen als „in
Richtung auf den Server" oder „in Richtung
auf den Client" bezeichnet
werden.
-
Beispielsweise
wird bei Verwendung des Verteilungsszenarios, wie es in 2 dargestellt
ist, eine Regelspezifikation zu dem zwischengeschalteten Netzwerkelement
foo4.bar.com (204) übertragen.
Ein Teil der Regel ist indiziert, um in Richtung des „Ziels" verteilt zu werden.
Wenn ein Anfragepaket verarbeitet wird, d.h. ein Paket, welches
von dem Inhaltsnutzer (207) zu dem Inhaltsserver (201)
gesandt wurde, kann dieser Abschnitt der Regelspezifikation an die
Zwischenstation f002.bar.com (202) oder die Zwischenstation foo3.bar.com
(203) verteilt werden. Im Gegensatz dazu kann, wenn ein
Antwortpaket verarbeitet wird, der gleiche Abschnitt der Regelspezifikation
zu dem zwischengeschalteten Netzwerkelement foo6.bar.com (206)
oder dem Netzwerkelement foo5.bar.com (205) verteilt werden. Ähnlich kann,
wenn ein Teil der Regel indiziert ist, um in Richtung des „Servers" verteilt zu werden,
diese zu der Zwischenstation foo2.bar.com (202) oder der Zwischenstation
foo3.bar.com (203) verteilt werden. Im Gegensatz dazu kann,
wenn ein Abschnitt der Regelspezifikation indiziert ist, um in Richtung
des „Client" verteilt zu werden,
dieser Abschnitt der Regelspezifikation zu dem zwischengeschalteten
Netzwerkelement foo6.bar.com (206) oder dem Netzwerkelement
foo5.bar.com (205) verteilt werden.
-
Ein
Ziel der vorliegenden Erfindung ist es, es Regelautoren zu erlauben,
in der Lage zu sein, eine Regelhierarchie zu spezifizieren, wobei
das höchste
Niveau der Regelspezifikation auf einer Zwischenstation liegt, und
die niedrigeren Niveauabschnitte der Regelspezifikation auf anderen
Zwischenstationen liegen. Dies erlaubt eine effiziente Steuerung
der Operationen der Zwischenstationen. Zusätzlich zum Spezifizieren der Richtung,
in welche die verteilten Regeln fließen sollen (d.h. nach vorne,
nach hinten, in Richtung auf einen Inhalts-Server oder in Richtung
auf einen Inhaltsnutzer), erlaubt es die vorliegende Erfindung Regelau toren auch,
den ungefähren
Ort in dieser Richtung zu spezifizieren, wo die Regel verteilt werden
soll.
-
Das
obige Beispiel verwendend kann ein Regelautor den verteilten Abschnitt
der Regelspezifikation spezifizieren, um zu der Zwischenstation
so nah wie möglich
an dem Inhaltsnutzer verteilt zu werden. In 2 impliziert
dies die Zwischenstation foo6.bar.com (206). Alternativ
kann ein Abschnitt der Regel spezifiziert werden, um zu der Zwischenstation
verteilt zu werden, die eine Station weg von dem Element ist, welches
am nächsten
zu dem Inhaltsnutzer liegt. In 2 impliziert
dies das zwischengeschaltete Netzwerkelement foo5.bar.com (205).
Auf ähnliche
Weise ist es für
den Autor möglich,
zu spezifizieren, dass ein Abschnitt der Regel, zu der nächsten Zwischenstation
in Richtung auf den Inhalts-Server zu verteilen ist. Unter Verwendung des
vorstehenden Beispiels, wo die Regelspezifikation zu foo4.bar.com
(204) übertragen
wird, bedeutet dies, dass der Regelautor den wollte, dass der Abschnitt
der Regel zu dem Netzelement foo3.bar.com (203) zu verteilen
ist.
-
Die
vorliegende Erfindung deckt alle zuvor erwähnten Mittel des Markierens
der Regelspezifikation für eine
Verteilung ab. Als eine Illustration werden die folgenden auf Zeichen
basierenden Indizierungsverfahren vorgestellt. Es sollte für jeden
Fachmann der Technik klar sein, dass andere Formen der Indizierung
verwendet werden können,
um einen gleichen Effekt zu erreichen, wie etwa eine Verwendung
von numerischen oder alphanumerischen Codes. Bei den auf Zeichen
basierenden Indizierungen ist jede Indizierung in der Form vom <Zielrichtung>-<ungefährer Ort vom Ziel weg>, oder in der Form <ungefährer Ort
in Richtung auf das Ziel>-<Zielrichtung>, wobei <Zielrichtung> der Begriff Quelle
(englisch = source), Ziel (englisch = destination), Server oder
Client ist, und <ungefährer Ort
vom weg> und <ungefährer Ort
in Richtung auf das Ziel> numerische
Werte sind, die die Anzahl von Zwischenstationen weg von dem spezifizierten
Ziel anzeigen.
-
Um
beispielsweise den Abschnitt der Regel zu indizieren, die zu der
Zwischenstation zu verteilen ist, die am nächsten zu dem Inhalts-Server
liegt, kann der Regelautor eine Indizierung Server-1 verwenden,
um zu zeigen, dass die Regel zu der Zwischenstation zu verteilen
ist, die eine Station weg von dem Inhalts- Server liegt. Wenn die Indizierung 2-Server
verwendet wird, dann drückte
der Regelautor den Wunsch aus, die Regel zu einer Zwischenstation
zu verteilen, die zwei Stationen weg von der Zwischenstation liegt,
wo die Regel geladen ist, in Richtung auf die Richtung des Inhalts-Servers.
Auf ähnliche
Weise zeigt die Indizierung Client-2 an, dass die Regel zu dem zwischengeschalteten
Netzwerkelement zu verteilen ist, die zwei Stationen weg von dem
Inhaltsnutzer liegt, und die Initiierung 1-Client zeigt an, dass
die Regel zu der nächsten
Zwischenstation in der Richtung des Inhaltsnutzers zu verteilen
ist.
-
Damit
Zwischenstationen Regelspezifikationen unter sich selbst verteilen
können,
müssen
die Zwischenstationen in der Lage sein, zunächst die Existenz von anderen
Zwischenstationen auf einem gegebenen Inhaltsflussweg zu entdecken.
Jede Zwischenstation kann auch mit mehreren Inhaltsservern, Inhaltsnutzern und
anderen Zwischenstationen verbunden sein, so dass eine Entdeckung
wahrscheinlich nicht statisch unter Verwendung von Konfigurationsdateien
durchgeführt
werden kann, noch mit einem Schuss, wenn das System hochfährt.
-
Die
vorliegende Erfindung verlangt, dass eine Zwischenstation eine Indizierung
ihres Vorhandenseins in dem Inhalt einbettet, wenn Datenpakete von
dem Inhaltsnutzer zu dem Inhalts-Server und umgekehrt fließen. Solch
eine Indizierung ist als die Signatur der Zwischenstation bekannt.
Diese Signaturen sollten Information der Zwischenstation, wie etwa
einen auflösbaren
Host-Rechnernamen und die Fähigkeiten
der Zwischenstation enthalten. Die Fähigkeit der Zwischenstation
sollte klar anzeigen, dass die Zwischenstation verteilte Regeln
unterstützt,
und sollte auch Informationen enthalten, wie etwa die in der Zwischenstation
installierten speziellen Pakete.
-
In
den HTTP- und RTSP-Protokollen können
Zwischenstationen beispielsweise ihre Signaturen an den in den Anfrage-
und Antwortköpfen
enthaltenen allgemeinen „Via" Kopf anhängen. Eine
Zwischenstation des Host-Rechnernamens foo4.bar.com mit installiertem
speziellem QoS-Paket kann das folgende „Via" Kopffeld als ihre Signatur einsetzen:
Via:
1.1 foo4.bar.com (OPES = standard, gos, verteilt)
-
Für andere
Protokolle, die keinen eingebauten Mechanismus für Zwischenstationen aufweisen,
um ihre Signatur einzubetten, kann nach anderen Mitteln gesucht
werden. Beispielsweise liefern Protokolle normalerweise die Funktionalität für Maschinen,
um optionale Information in die Datenpakete (normalerweise unter
Verwendung von optionalen Verlängerungsköpfen) einzubetten.
Dies kann verwendet werden, um Signaturen der Zwischenstation zu
tragen. Zusätzlich
verwendete das obige Beispiel Zeichenketten als Signatur zum Erleichtern
des Verständnisses.
Es sollte jedoch jedem Fachmann der Technik klar sein, dass andere
Formen der Signatur verwendet werden können, um den gleichen Effekt
zu erzielen, wie etwa eine Verwendung von numerischen oder alphanumerischen
Codes, solange eine externe Entität den Host-Rechnernamen und
Fähigkeiten
der Zwischenstation aus der Signatur extrahieren kann.
-
In
beiden Fällen,
in denen der in das Protokoll eingebaute Mechanismus verwendet wird
oder eine optionale Verlängerung
verwendet wird, sollten mehrere Signaturen erlaubt sein, so dass
eine Signatur jeder nachfolgenden Zwischenstation angehängt werden
kann. Wenn ein Datenpaket ein gegebenes zwischengeschaltetes Netzwerkelement
in dem Inhaltsflussweg erreicht, weiß das zwischengeschaltete Netzwerkelement mit
anderen Worten um die anderen Zwischenstationen, die das Datenpaket
vorher passiert hat. Dies ermöglicht
es der Zwischenstation auch, die Reihenfolge der Zwischenstationen
zu kennen, die das Paket passiert hat.
-
Bei
einer typischen Operation wird eine Anfrage von dem Inhaltsnutzer
zu dem Inhalts-Server fließen, und
die Antwort wird von dem Inhalts-Server zu dem Inhaltsnutzer fließen. Zwischenstationen
werden somit alle anderen Zwischenstationen entlang des Inhaltsflussweges
kennen, wenn einmal ein Paar eines Anfrage- und Antwortdatenpakets
diese passiert hat. Unter Verwendung des Szenarios, welches in 2 dargestellt
ist, wird beispielsweise die Zwischenstation foo4.bar.com (204)
die Existenz der Zwischenstationen foo6.bar.com (206) und
foo5.bar.com (205) kennen, wenn sie die Anfrage von dem
Inhaltsnutzer (207) erreicht. Wenn die Inhaltsantwort von
dem Inhalts-Server die foo4.bar.com (204) erreicht, wird
die Zwischenstation die Existenz der zwischengeschalteten Netzwerkelemente
foo2.bar.com (202) und foo3.bar.com (203) entdecken.
Somit wird die Zwischenstation foo4.bar.com (204) in der
Lage sein, das Vorhandensein von anderen zwischengeschalteten Netzwerkelementen
in dem gesamten Inhaltsflussweg zu erkennen.
-
Zwischenstationen
werden einen Cache-Speicher eines bekannten Netzwerkes aus Zwischenstationen
entlang jedes vorgegebenen Inhaltsflussweges aufrechterhalten. Der
Grund hierfür
wird unten erklärt. Wenn
eine Zwischenstation eine Anfrage erhalten hat, kann es für sie notwendig
sein, in Richtung des Inhalts-Servers
eine Regel zu einem anderen zwischengeschalteten Netzwerkelement
zu verteilen. Wenn die Zwischenstation sich nur auf die eingebildete
Signatur verlässt,
um andere zwischengeschaltete Netzwerkelemente zu entdecken, kann
sie nicht vorher andere Zwischenstationen in Vorwärtsrichtung
in Richtung auf den Inhalts-Server kennen, bis sie die Inhaltsantwort
erhält.
Sollte solche eine Situation aufkommen, sollte das Regelverarbeitungsmodul
(102) prüfen,
ob es Information über
Zwischenstationen aus seinem Cache entnehmen kann. Wenn es dies
kann, dann kann die Regel zu einer in Vorwärtsrichtung liegenden Zwischenstation
verteilt werden; sonst sollte die Regel lokal evaluiert werden.
-
Um
das Cache aufrechtzuerhalten, können
die Datenformate verwendet werden, wie sie unten in Datenformat
1 und Datenformat 2 dargestellt sind. Datenformat 1 wird verwendet,
um die Host-Rechneridentifikation (in dem Feld Hostname gespeichert)
und Fähigkeiten
(gespeichert im Feld Capabilities) der Zwischenstation aufzuzeichnen.
Datenformat 2 wird verwendet, um die Liste von bekannten Zwischenstationen
entlang eines gegebenen Inhaltsflussweges aufzuzeichnen. Der Inhaltsflussweg
ist einzigartig spezifiziert durch das Triplet Quelle (gespeichert
in dem Feld source), Ziel (gespeichert in dem Feld destination),
und Protokoll (gespeichert in dem Feld protocol), ausgedrückt als
{source, destination, protocol}. Das Feld num_nodes speichert die
Anzahl von zwischengeschalteten Zweckelementen, die ein Datenpaket
von dem Quellenknoten passieren muss, bevor es den Zielknoten erreicht,
startend (jedoch nicht ausschließend) von der aktuellen Zwischenstation,
und das Knotenfeld speichert die Information jedes solchen zwischengeschalteten
Netzwerkelements. 3 illustriert ein Paar von Inhaltsweg
(in 3 als ContentPath bezeichnet)-Datenformaten, die
in der Zwischenstation foo4.bar.com (204) in dem in 2 dargestellten
Szenario gespeichert sind.
-
Datenformat
1: Zwischenstationseintrag
-
Datenformat
2: Datenflussweginformation
-
4 zeigt
das Verfahren, erdacht um die in den Datenpaketen eingebetteten
Signaturen der Zwischenstationen zu extrahieren und die Struktur
des Inhaltsweges (in der Fig. als ContentPath bezeichnet) zu konstruieren/auf
den neuesten Stand zu bringen. Wenn ein Datenpaket ankommt, prüft die Zwischenstation zunächst, ob
eine Signatur eingebettet ist, wie in dem Schritt dargestellt, der
mit dem Bezugszeichen 401 bezeichnet ist. Wenn eine vorhanden
ist, wird eine Inhaltswegstruktur von dem Cache gesucht, welches
mit dem Triplet {destination, source, protocol} übereinstimmt, wie in dem Schritt
dargestellt, der mit dem Bezugszeichen 402 bezeichnet ist.
Es ist zu beachten, dass die Quelle des Daten pakets gegenüber dem
Inhaltswegziel geprüft wird
und umgekehrt. Der Grund dafür
ist, dass die Inhaltswegstruktur verwendet wird, um die Liste von
Zwischenstationen in Richtung auf den Zielknoten zur Verfügung zu
stellen, wobei die Zwischenstationen von dem Quellenknoten vorgegeben
werden, wenn Signaturen von den Datenpaketen extrahiert werden.
Somit besteht ein Bedarf dafür,
ein Swapping mit den Ziel- und Quellenknoten durchzuführen, wenn
eine Übereinstimmung gesucht
wird.
-
Wenn
keine gefunden werden kann, wird eine neue Inhaltswegstruktur zugeordnet,
wie in dem Schritt dargestellt, der mit dem Bezugszeichen 403 bezeichnet
ist. Wenn eine in das Cache verbrachte Inhaltswegstruktur lokalisiert
ist, werden die Felder num_nodes und nodes gelöscht, wie in dem Schritt dargestellt,
der mit dem Bezugszeichen 404 bezeichnet ist. Ein last-in-first-out
Stapel, um die Signaturen temporär
zu speichern, wird dann initialisiert, um leer zu sein, und der
Zähler
n wird auf null gesetzt, in dem Schritt, der mit dem Bezugszeichen 405 bezeichnet
ist. In dem Schritt, der mit dem Bezugszeichen 406 bezeichnet
ist, wird jede eingebettete Struktur extrahiert und zu dem Stapel
verschoben. Zusätzlich
wird der Zähler
n inkrementiert, um die Anzahl von extrahierten Signaturen aufzuzeichnen.
Wenn alle Signaturen extrahiert sind, wird der Zähler n die Anzahl von Zwischenstationen
vor dem aktuellen Netzwerkelement in dem Inhaltsflussweg enthalten.
Diese wird in dem Feld num_nodes gespeichert. Signaturen in dem
Stapel werden dann herausgeholt, um das Knotenfeld auf den neuesten
Stand zu bringen, wie in dem Schritt dargestellt ist, der mit dem
Bezugszeichen 406 bezeichnet ist.
-
Die
vorstehende Beschreibung hat das Verfahren für Zwischenstationen präsentiert,
um andere Zwischenstationen entlang des Inhaltsflussweges zu entdecken.
Wenn ein Regelverarbeitungsmodul ein Parsing mit einer Regelspezifikation
durchführt
und feststellt, dass ein Abschnitt der Regelspezifikation markiert
ist, um verteilt zu werden, dann kann es dann die angemessene Inhaltswegstruktur
(durch Verwenden des Triplets aus Inhalts-Server, Inhaltsnutzer
und Protokoll) prüfen
und bestimmen, zu welchen entfernten Zwischenstationen die Regel
zu verteilen ist.
-
5 zeigt
den Algorithmus, verwendet, um die entfernte Zwischenstation zu
bestimmen, um dorthin die Regel zu verteilen, wobei die Indizierung
der Verteilung in der Form
<Zielrichtung>-<ungefährer Ort vom Ziel aus>
oder
<ungefährer Ort
in Richtung auf das Ziel>-<Zielrichtung>,
wie zuvor beschrieben.
Der Begriff Ziel wird verwendet, um den numerischen Wert von <ungefährer Ort
in Richtung auf das Ziel> oder <ungefährer Ort
vom Ziel aus>, zu
bezeichnen. Der Begriff Richtungssinn enthält den Wert „von", wenn die erste
Form verwendet wird, und den Wert „zu", wenn die zweite Form verwendet wird. Der
Begriff Richtung ist der Wert „Quelle" oder der Wert „Ziel". Die Begriffe src,
dst und protocol beziehen sich auf die Quelle, das Ziel bzw. das
Protokoll, welche von dem Datenpaket extrahiert wurden.
-
Der
Algorithmus sucht zunächst
für das
Inhaltswegdatenformat, wie es in den Schritten dargestellt ist, die
mit 501 bis 504 bezeichnet sind. Wenn die Richtung
einer Verteilung in Richtung auf das Ziel vorliegt, wird das Triplet
{src, dst, protocol} verwendet, um den Inhaltsweg zu lokalisieren,
wie in dem Schritt dargestellt ist, der mit dem Bezugszeichen 502 markiert
ist. Andererseits wird das Triplet {dst, src, protocol} stattdessen
verwendet, wie in dem Schritt dargestellt ist, der mit dem Bezugszeichen 503 bezeichnet
ist. Wenn kein Inhaltsweg gefunden werden kann, gibt der Algorithmus
NULL zurück,
wie in dem Schritt dargestellt, der mit dem Bezugszeichen 512 bezeichnet
ist. In den Schritten, die mit 505 und 506 bezeichnet
sind, wird das Ziel geprüft, um
zu verhindern, dass es die Zahl von entfernten Zwischenstationen
in der Richtung der Verteilung übersteigt. In
dem Schritt, der mit dem Bezugszeichen 507 markiert ist,
wird die Verteilungsindizierung überprüft, um zu sehen,
ob sie in der Form
<Zielrichtung>-<ungefährer Ort vom Ziel aus>
oder
<ungefährer Ort
in Richtung auf das Ziel>-<Zielrichtung>
vorliegt.
-
Für die erste
Form zeigt der numerische Wert die Zahl der Zwischenstationen von
den am Ende liegenden Hostrechner (Inhalts-Server oder Inhaltsnutzer)
an. Die Zwischenstationen sind jedoch in einem Knotenfeld in der
Reihenfolge der Richtung in Richtung auf den Endknoten gelistet.
Somit wird in dem Schritt, der mit dem Bezugszeichen 508 bezeichnet
ist, eine temporäre
Variable x auf die Zahl von Zwischenstationen minus dem numerischen
Wert des Ziels gesetzt. Im Gegensatz dazu wird dann die temporäre Variable
x auf den numerischen Wert des Ziels minus 1 gesetzt, wenn die Indizierung
in der zweiten Form vorliegt, wie in dem Schritt dargestellt ist,
der mit dem Bezugszeichen 509 bezeichnet ist. Der Grund,
eins abzuziehen liegt darin, das dass erste Element in dem Knotenfeld
als Knoten[0] (englisch = nodes[0]) angenommen wird. Jeder Fachmann
der Technik kann leicht die obigen Formeln modifizieren, um sie
an andere Arten von Feldanordnungen anzupassen. In dem Schritt,
der mit dem Bezugszeichen 510 bezeichnet ist, wird die
Variable x geprüft,
um zu sehen, ob sie außerhalb
des Bereichs liegt. Wenn dies der Fall ist, gibt der Algorithmus
NULL zurück,
um anzuzeigen, dass keine passende entfernte Zwischenstation aufgefunden
werden kann, wie in dem Schritt dargestellt, der mit dem Bezugszeichen 512 bezeichnet
ist. Sonst gibt die Funktion die entfernte Zwischenstation zurück, die
in Knoten[x] (englisch = nodes[x]) vorgegeben ist, wie in dem Schritt
dargestellt ist, der mit dem Bezugszeichen 511 bezeichnet
ist.
-
6 zeigt
das Verfahren des Durchführen
eines Parsing einer Regelspezifikation unter Berücksichtigung eines Verteilens
von Regeln. Die Regelspezifikation wird zuerst einem Parsing unterzogen,
um sie auf syntaktische Gültigkeit
zu prüfen,
und es werden ungültige
Regeln zurückgewiesen,
wie in den Schritten dargestellt, die mit 601, 602 und 603 bezeichnet
sind. Die Regel wird als nächstes
geprüft,
um zu sehen, ob sie markiert ist, um verteilt zu werden, wie in
dem Schritt dargestellt ist, der mit dem Bezugszeichen 604 bezeichnet
ist. Wenn sie nicht markiert ist, wird die Regel lokal evaluiert
(605). Sonst wird der in 4 dargestellte Algorithmus
verwendet, um die entfernte Zwischenstation zu identifizieren, um
die Regel zu dieser zu verteilen, wie in dem Schritt dargestellt
ist, der mit dem Bezugszeichen 606 bezeichnet ist. Wenn
der Algorithmus NULL zurückgibt,
das heißt,
dass keine passende entfernte Zwischenstation gefunden werden kann,
dann wird die Regel lokal evaluiert, wie in den Schritten dargestellt
ist, die mit 607 und 605 markiert sind. Wenn eine
entfernte Zwischenstation aufgefunden wird, wird sie geprüft, um zu
sehen, ob sie das durch die Regel geforderte spezielle Paket unterstützt, wie
in dem Schritt dargestellt ist, der mit dem Bezugszeichen 608 bezeichnet
ist. Wenn sie es nicht tut, wird die Regel lokal evaluiert (605).
Wenn sie es tut, wird die Regel dann verteilt (609). Der gesamte
Prozess wird für
die nächste
Regel wiederholt, die einem Parsing zu unterziehen ist (610).
-
Wenn
ein Server-Client-Modell verwendet wird, wo die Zielrichtung durch
in Richtung auf den „Server" oder stattdessen
in Richtung auf den „Client" spezifiziert werden
kann, dann kann das Verfahren des Lokalisierens der Zielzwischenstation
gemäß 5 nicht
mehr verwendet werden. 7 zeigt das Verfahren für ein Server-Client-Modell.
Der einzige Unterschied zwischen dem Algorithmus in der 7 und
dem in der 5 liegt in den Schritten, die
mit dem Bezugszeichen 701 bis 703 markiert sind,
und in den Schritten, die mit den Bezugszeichen 501 bis 503 markiert
sind. In dem Schritt, der mit dem Bezugszeichen 701 markiert
ist, wird die Zielrichtung zunächst
geprüft,
ob sie in Richtung auf den Server oder auf den Client liegt. Wenn
die Zielrichtung der Server ist, dann wird der Inhaltsweg abgesucht
unter Verwendung des Triplets {Knotenidentifikation des Client,
Knotenidentifikation des Servers, Protokoll} (englisch = {node identification
of client, node identification of server, protocol}), wie in dem
Schritt dargestellt ist, der mit dem Bezugszeichen 702 markiert
ist. Wenn die Zielrichtung der Client ist, dann wird der Inhaltsweg
unter Verwendung des Triplets {Knotenidentifikation des Servers,
Knotenidentifikation des Clients, Protokoll} (englisch = {node identification
of server, node identification of client, protocol}) abgesucht,
wie in dem Schritt dargestellt ist, der mit dem Bezugszeichen 703 markiert ist.
Die verbleibenden Schritte, die mit dem Bezugszeichen 704 bis 712 markiert
sind, sind identisch zu den Schritten, die mit dem Bezugszeichen 504 bis 512 markiert
sind.
-
Um
die Regel zu verteilen, muss die Zwischenstation die Empfangszwischenstation
signalisieren. Zur Vereinfachung der Erklärung wird das in 2 dargestellte
Szenario verwendet. Für
die folgende Diskussion ist die Zwischenstation foo4.bar.com (204)
das Netzwerkelement, welches die Regel lädt, und sie hat bestimmt, dass
die Regel zu der Zwischenstation foo6.bar.com (206) zur
Evaluierung zu verteilen ist.
-
Um
foo6.bar.com (206) zu signalisieren kann foo4.bar.com (204)
ein Signal in das Datenpaket einbetten. Die vorliegende Erfindung
erfordert, dass das eingebettete Signal den Identifizierer der Zwischenstation enthält, die
die Regel verteilt, den Identifizierer der gewünschten Zwischenstation enthält, die
die Regel empfängt,
und den Regelidentifizierer enthält,
der die Regel, die zu verteilen ist, eindeutig identifiziert. Der
Regelidentifizierer muss den Abschnitt der Regelspezifikation auf
einer vorgegebenen Zwischenstation eindeutig identifizieren, der
zu verteilen ist, und der Identifizierer sollte sich mit der Zeit
nicht verändern.
-
Beispielsweise
können
in den HTTP- und RTSP-Protokollen Zwischenstationentoken an den
allgemeinen „Pragma"-Kopf in den Anfrage-
und Antwortköpfen
anhängen.
Die vorliegende Erfindung kann somit von diesem Gebrauch machen,
um die benötigten
Signale einzubetten. Beispielsweise kann foo4.bar.com den folgenden
Token
OPES-distributed = "foo6.bar.com:XYZABC@foo4.bar.com";
an den allgemeinen „Pragma" Kopf der Antwort
anhängen.
Der verwendete Token ist von der Form
OPES-verteilt = "<Ziel>:<Regelidentifizierer>@<Verteiler>",
wobei <Ziel> den Hostrechnernamen
der Zwischenstation bezeichnet, die die verteilte Regel empfängt, <Regelidentifizierer> den eindeutigen Identifizierer
bezeichnet, um die verteilte Regel zu identifizieren, und <Verteiler> die Zwischenstation
bezeichnet, die die Regeln verteilt.
-
Für andere
Protokolle, die keinen eingebauten Mechanismus für Zwischenstationen aufweisen,
um Signale einzubetten, könnte
nach anderen Mitteln gesucht werden. Beispielsweise stellen Protokolle
normalerweise die Funktionalität
für Maschinen
zur Verfügung,
um optionale Information in die Datenpakete (normalerweise unter
Verwendung von optionalen Verlängerungsköpfen) einzubetten.
-
Dies
kann verwendet werden, um für
die Zwischenstation Signale zu transportieren. Zusätzlich verwendete
das obige Beispiel Zeichenketten als die Signatur für ein leichteres
Verständnis.
Es sollte jedem Fachmann der Technik klar, dass andere Formen von
Signatur verwendet werden können,
um einen gleichen Effekt zu erzielen, wie etwa eine Verwendung von
numerischen oder alphanumerischen Codes, solange eine externe Entität den Hostrechnernamen
der verteilenden Zwischenstationen, einen Hostrechnernamen der Zielzwischenstation
und den Regelidentifizierer von dem Signal extrahieren kann.
-
In
beiden Fällen,
in denen das Protokoll mit eingebautem Mechanismus verwendet wird
oder eine optionale Verlängerung
verwendet wird, sollten mehrere Signale erlaubt sein, so dass zwei
oder mehr Sätze
von Regeln bei einem einfachen Passieren eines Datenpakets verteilt
werden können.
Jede Zwischenstation muss die Datenpakete inspizieren, um derartige
Signale zu erfassen, und prüfen,
ob das Signal für
sie vorgesehen ist. Wenn sie bestimmt hat, dass das Signal für sie vorgesehen
ist, kann die Zwischenstation optional das Signal von dem Datenpaket
entfernen.
-
Der
Regelidentifizierer wird verwendet, um die tatsächliche Regel von der verteilenden
Zwischenstation unter Verwendung eines separaten Kommunikationskanals
zu erhalten. Das Regelinjektionsmodul (104) ist verantwortlich
für eine
Etablieren eines solchen Kommunikationskanals und ein Auffinden/Durchleiten
jeder verteilten Regel. Die vorliegende Erfindung spezifiziert das
Format eines solchen Kommunikationskanals nicht. Da der Regelidentifizierer
einzigartig für
eine spezifizierte Zwischenstation ist, sollten Zwischenstationen
die wiedergewonnene verteilte Regel unter Verwendung des Regelidentifizierers
und des Hostrechnernamens der verteilenden Zwischenstation als ein
Cache-Schlüssel
in einem Cache-Speicher
speichern. Dies eliminiert die Notwendigkeit, die gleiche verteilte
Regel wiederzugewinnen, sollte eine nachfolgende Verteilung erneut
auftreten.
-
Die
obigen Mechanismen können
für Inhaltsverteilung
eingesetzt werden, wenn eine Mehrzahl von sendenden und empfangenden
Knoten vorhanden ist. Eine solche Situation wird in mehrere Datenflusswege aufgeteilt,
wobei jeder einen sendenden Knoten und einen empfangenden Knoten
enthält.
Es sei festgehalten, dass diese Dekomposition nur für die Konstruktion
der Inhaltswegstruktur, wie zuvor beschrieben, verwendet wird. Wenn
tatsächliche
Daten an einer Zwischenstation ankommen, die zu einer Mehrzahl von
empfangenden Knoten gesandt werden, dann kann die Zwischenstation
auf der Basis jeder Inhaltswegstruktur für jedes entsprechende Paar
aus Sendeknoten (d.h. Quelle) und Empfangsknoten (d.h. Ziel) über die
Regelverteilung entscheiden. Wenn die Zielzwischenstation, die eine
Regel zu verteilen hat, die gleiche ist, dann kann eine einzelnes
Signal in den Inhalt eingebettet werden. Wenn mehr als eine Zielzwischenstation
identifiziert wird (da der Inhaltsweg sich irgendwo entlang der
Leitung aufteilt), dann kann ein separates Signal für jede Zielzwischenstation
in den Inhalt eingebettet werden.
-
In
den vorstehenden Beschreibungen wird das Zwischenstationsnetzwerk
für ein
Verteilen einer Regel offenbart. Dieses Dokument wird in den folgenden
Diskussionen zu dem nächsten
Abschnitt der vorliegenden Erfindung übergehen, welche den Einsatz
der vorliegenden Erfindung auf eine Situation eines Echtzeitinhalts-Streaming
fokussiert. In dieser Situation sendet der Inhaltsnutzer eine Anfrage
an den Inhaltsserver, über eine
einzelne Zwischenstation oder über
mehrere Zwischenstationen, welche das (die) Objekt(e) der vorliegenden
Erfindung ist (sind), um eine Echtzeitsitzung aufzubauen. Wenn der
Inhaltsserver die Anfrage mit einer angemessenen Antwort akzeptiert,
wird ein Kommunikationskanal zwischen dem Inhalts-Server und dem
Inhaltsnutzer durch die Zwischenstation(en) aufgebaut. Dieser Kommunikationskanal
zwischen dem Inhalts-Server und dem Inhaltsnutzer wird im folgenden
als die Inhaltssitzung bezeichnet. Der Inhalts-Server beginnt ein Übertragen von Datenpaketen
durch die Inhaltssitzung zu dem Inhaltsnutzer ohne eine aktive Anfrage
von dem Inhaltsnutzer, bis der Inhaltsnutzer eine Anfrage über die
Zwischenstation sendet, um die Inhaltssitzung abzubrechen. Derartige
Datenpakete, die spontan durch den Inhalts-Server gesendet werden,
werden im Folgenden als Inhaltspakete bezeichnet. Während der
Verlauf der Übertragung
der Inhaltspakete durch den Inhalts-Server kann der Inhaltsnutzer
Information über
die Übertragungsstatistik
zurück
an den Inhalts-Server übertragen,
oder kann dies auch nicht tun. Derartige Statistiken werden im Folgenden
als Feedback-Pakete bezeichnet.
-
Eine
existierendes Protokoll, welches zu der obigen Beschreibung passt,
ist das Echtzeit-Streaming-Protokoll (RTSP). Die vorliegende Erfindung
kann jedoch auf andere Protokolle angewendet werden, die das gleiche
Verhalten zeigen, welches zuvor beschrieben wurde, wie jedem Fachmann
der Technik klar sein sollte.
-
Für den Stand
der Technik sind für
alle Anfrage- und/oder Antwortpakete, die die Zwischenstation passieren,
Regeln entwickelt. Die vorliegende Erfindung erweitert dies durch
Zurverfügungstellen
der Fähigkeit
für Regelautoren,
Regeln zu spezifizieren, die evaluiert werden, wann immer ein Inhaltspaket
die Zwischenstation passiert, Regeln, die evaluiert werden, wann
immer eine spezifizierte Mehrzahl von Inhaltspaketen die Zwischenstation
passiert, Regeln, die evaluiert werden, wenn ein Feedback-Paket
die Zwischenstation passiert, und Regeln, die in einem spezifizierten
regelmäßigen Intervall
während
der Dauer evaluiert werden, während der
die Inhaltssitzung etabliert ist. Um eine solche Maßnahme zu
erreichen, wird Regelautoren erlaubt, jede Regel mit einem speziellen
Attribut zu kennzeichnen. Zum Zwecke der Erklärung wird das Attribut als
das „evaluateOn" Attribut bezeichnet.
Tabelle 1 zeigt unten die möglichen
Werte der Attribute „evaluateOn". Jeder Fachmann
der Technik sollte erkennen, dass die vorliegende Erfindung unter
Verwendung von anderen Namen eingesetzt werden kann.
-
Tabelle
1: „evaluateOn"-Attribute
-
Der
letzte Teil der vorliegenden Erfindung betrifft den Einsatz von
speziellen Paketen (103). Wie zuvor beschrieben, sind spezielle
Pakete (103) Module, die das Regelverarbeitungsmodul (102)
in die Lage versetzen, Regel unter Einbeziehung unterschiedlicher
Sätze von
Parametern (wie etwa eines die Qualität des Service betreffenden
Parameters) zu evaluieren. Die vorliegende Erfindung definiert ein
neues spezielles Paket, bekannt als spezielles Paket „Delivery
Context". Dieses
Paket wird es dem Regelverarbeitungsmodul (102) erlauben,
Regeln zu interpretieren, die auf der Basis eines Auslieferungskontexts
konstruiert sind. Vier Hauptklassen von Auslieferungskontexten sind
definiert, wie in Tabelle 2 unten dargestellt ist. Dieses sind Benutzervorlieben
(englisch = User Preferences), Agentenfähigkeiten (englisch = Agent
Capabilities), Vorrichtungsfähigkeiten
(englisch = device capabilities) und natürliche Umgebung (englisch =
Natural Envi ronment). Nutzervorlieben bezieht sich auf Information über den
menschlichen Nutzer, einschließlich
Surf-Vorlieben, Sprachvorlieben, Anzeigevorlieben, QoS-Vorlieben, Altersgruppe
und Geschlecht. Agentenfähigkeiten
liefern Informationen über
den Software-Agenten, wie etwa den Agententyp, unterstützte Formate,
unterstützte
Sprachen, und unterstützte
Transportprotokolle. Vorrichtungsfähigkeiten bezieht sich auf
die Information über
die Hardware-Vorrichtung, welches den Vorrichtungstyp, die Prozessorgeschwindigkeit
und -typ, die Speicherkapazität,
die Bildschirmauflösung
und -tiefe, und Operationssysteme einschließt. Natürliche Umgebung liefert Information über die
natürliche
Umgebung, die den Endnutzer umgibt, einschließlich der Information, ob der
Endnutzer in einem Gebäude
oder außerhalb
ist, die Geschwindigkeit des Endnutzers, der Ort des Endnutzers
und Beleuchtungseigenschaften.
-
Tabelle
2: Auslieferungskontextparameter
-
Das
Spezialpaketauslieferungskontext interpretiert Regeln, die unter
Verwendung von Parametern konstruiert sind, die aus dem Auslieferungskontext
stammen. Es gibt verschiedene Verfahren, wodurch das spezielle Paket
des Auslieferungskontexts die aktuellen Werte der Parameter erhalten
kann. Ein Verfahren ist es, einen Kommunikationskanal mit einer
externen Entität
zu etablieren, die ein Wissen über
derartige Parameter zur Verfügung
stellt, beispielsweise mit dem Inhaltsnutzer. Für Parameter, wie etwa die Vorrichtungsfähigkeiten,
kann es notwendig sein, diese von dem Inhaltsnutzer direkt zu erhalten.
Ein alternatives Verfahren ist es, sie von einem anderen Modul zu
erhalten, welches sich auf der Zwischenstation befindet. Dieses
Modul kann die Werte lokal aufnehmen, die Werte von einer Speichervorrichtung
laden, oder die Werte von einer externen Entität abfragen. Für Parameter,
wie etwa natürliche
Umgebung, kann die Zwischenstation in der Lage sein, die Information
eigenständig
abzuleiten, insbesondere dann, wenn die Zwischenstation in der Nähe des Inhaltsnutzers
lokalisiert ist. Für
Parameter wie etwa die Nutzervorlieben, kann der menschliche Nutzer
einen Satz von Profilen registriert haben, welches auf der Zwischenstation
zu speichern ist.
-
Die
Erfindung erlaubt es zwischengeschalteten Netzwerkelementen entlang
eines Inhaltsflussweges bei ihren Inhaltsauslieferungsbemühungen aktiv
zusammenzuarbeiten, um die Nutzererfahrungen beim Auffinden von
Inhalt zu verbessern. Mit mehr und mehr Inhaltsauslieferungsnetzwerken
(CDN), die im Internet eingesetzt sind, erlaubt es die Erfindung,
die in diesem Dokument offenbart ist, Zwischenstationen, wie etwa CDNs,
ihre Bemühungen
durch das zur Verfügung
stellen von verteilten Regeln zu orchestrieren. Regeln, die auf
ein Netzwerkelement geladen sind, können zu anderen Zwischenstationen
in Echtzeit verteilt werden, sodass eine Adaptierung von Dateninhalten
und Inhaltsanfrage an einen passenderen Knoten durchgeführt werden
kann. Sie erlaubt eine bessere Steuerung der Operationen bei einer
Inhaltsauslieferung.
-
Zusätzlich enthält die offenbarte
Erfindung Verfahren und Mittel, welche spezifisch für das Ausliefern in
Echtzeit von audiovisuellem Inhalt in einem Paketschaltungsnetzwerk
sind. Dies erlaubt es Regelautoren, Regeln zu kreieren, die auf
Fluktuationen in den Netzwerkbedingungen des Inhaltsstreaming schneller
reagieren können.
Autoren können
auch Regeln kreieren, die auf den Vorrich tungsfähigkeiten und Nutzervorlieben der
Inhaltskonsumenten basieren. Wenn derartige Regeln vorsichtig mit
passenden Anpassungsdiensten entworfen werden, wird die Gesamterfahrung
des Nutzers beim Auffinden von Inhalt signifikant verbessert.