-
GEBIET
-
Eigenschaften
der Erfindung betreffen allgemein die Verwaltung der Bandbreitennutzung
und genauer die Verwaltung von Bandbreite die von Servern genutzt
wird, die in akzeptablen Zeitgrenzen antworten.
-
HINTERGRUND
-
Herkömmlich besteht
das Verfahren zur Anforderungsbearbeitung auf Ein-Maschinen-Serversystemen
darin, Verarbeitungstakte ausgeglichen unter Anforderungs-Behandlungsprozessen
zuzuteilen, und für solche
Prozesse darin, so früh
wie möglich
zu beenden. In Clustersystemen mit mehreren Servern („Serverfarmen") verteilt typischerweise
eine Komponente zum Auslastungsausgleich die Anforderungen gleichmäßig zwischen
den Maschinen (oder gegebenenfalls proportional zu deren einzelnem
Leistungsvermögen)
und anschließend
wendet jede Maschine das zuvor genannte Ein-Maschinen-Verfahren
an. Beide Fälle
optimieren die mittlere Antwortzeit, jedoch möglicherweise auf Kosten von
anderen Zielen. Es wäre
wünschenswert,
wenn es ein Anforderungs-Behandlungsverfahren gäbe, das es gestattete, andere
Ziele zu optimieren.
-
In
Situationen, in denen die Systembetriebskosten mit der Bandbreitennutzung
gekoppelt sind, kann es wünschenswerter
sein, die Bandbreitennutzung zu optimieren und dabei gleichzeitig
die mittlere Antwortzeit lediglich in einem akzeptablen Rahmen zu
halten. Ein Beispiel hierfür
ist der Einsatz von Servern für
Internetdienste. Anbieter solcher Dienste kaufen typischerweise
Bandbreite entsprechend der „95%-Regel": nach dem Verwerfen
der obersten 5% bestimmt der höchste
verbleibende Messwert der Bandbreitennutzung die Rechnungshöhe. Die
Absenkung der Spitzen-Bandbreitennutzung kann daher die Betriebskosten
verringern. Da Bandbreitenkosten 40% der Gesamtbetriebskosten ausmachen
können,
können
die Einsparungen erheblich sein. Daher wäre es vorteilhaft, würden Mittel
existieren, die es Systembetreibern gestatten, die Bandbreitenkosten über eine
Absenkung der Spitzen-Bandbreitennutzung zu verringern.
-
Ein
herkömmliches
Mittel zur Verringerung der Spitzen-Bandbreitennutzung ist es, die
Bearbeitung von Anforderungen zu serialisieren. Diese Technik verringert
die Spitzen der Bandbreitennutzung, sie bietet jedoch keine Möglichkeit,
mit der die Antwortzeit in akzeptablen Grenzen gehalten werden kann.
Herkömmlich wird
für das
Einhalten der akzeptablen Antwortzeit („ART", acceptable response time) innerhalb
akzeptabler Grenzen die Zuteilung von Bandbreite über Anforderungsprozesse
hinweg eingesetzt. Dies kann jedoch das Gegenteil bewirken, wenn
der Mehraufwand für
eine solche Koordinierung zu hoch ist (was beispielsweise auftreten
kann, wenn Interprozess-Kommunikation verwendet wird), wodurch es
unmöglich
wird, ARTs zu erreichen. Es ist daher wünschenswert, dass Mittel existieren,
um die Bandbreitennutzung wirksam zu verringern und dabei gleichzeitig
ARTs einzuhalten.
-
Das
Dokument
EP 0 917 380
A2 offenbart eine Vorrichtung zur Steuerung von Informationsübertragungen
zur Weitergabe von Information, die die Antwort eines Empfängers gestattet.
Die Vorrichtung stellt verschiedene Verzögerungszeiten für die Übertragung
von Information zu jedem von mehreren Zielen ein, und dies in Reaktion
auf Anforderungen von diesem Zielen. Die für jedes Ziel erzeugte Verzögerungszeit
kann auf einer Zufallszahl basieren, die in der Übertragungssteuerungseinheit
erzeugt wird.
-
Des
weiteren können
ARTs vom Kontext einzelner Anforderungen abhängen. Wenn ein Anwender auf das
Ergebnis der Anforderung wartet, sollten die Antwortzeiten recht
kurz sein. Wenn dagegen die Anforderung dazu dient, ein Dokument
für eine
mögliche
zukünftige
Nutzung vorab zu laden, kann die Antwortzeit eher lang sein.
-
Es
ist daher wünschenswert,
dass es ein Verfahren, eine Vorrichtung und ein Computerprogrammprodukt
gibt, die eine effiziente Verwaltung der Bandbreitennutzung gestatten
und dabei gleichzeitig die Antwortzeiten in einem akzeptablen Rahmen
halten.
-
ZUSAMMENFASSUNG
-
Zum
Erreichen dieser und weiterer Ziele ist eine veranschaulichende
Eigenschaft der vorliegenden Erfindung durch Verfahren zur Verwaltung
von Bandbreitennutzung durch einen Server beim Erfüllen von Ressourcenanforderungen
von Clients über
ein Kommunikationsnetzwerk gegeben. Ein exemplarisches Verfahren
umfasst folgendes: Empfangen einer Anforderung für eine Ressource, wobei diese
Anforderung eine akzeptable Antwortzeit einschließt; Verzögern der
Erfüllung
der Anforderung um eine festgelegte Zeitdauer, die kleiner oder
gleich der akzeptablen Antwortzeit ist, um eine sofortige Bandbreitennutzung
durch den Server zu verringern; und das anschließende Erfüllen der Anforderung für die Ressource.
-
Gemäß einer
weiteren Eigenschaft der Erfindung wird eine Vorrichtung gemäß Anspruch
9 bereitgestellt. Gemäß einer
weiteren Eigenschaft der Erfindung wird ein Computerprogrammprodukt
gemäß Anspruch 16
bereitgestellt.
-
Weitere
Eigenschaften der Erfindung werden in den abhängigen Ansprüchen, der
Zeichnung und der nachfolgenden Beschreibung ausgeführt.
-
KURZE BESCHREIBUNG DER FIGUREN
-
Diese
und weitere Eigenschaften, Kennzeichen und Vorteile der vorliegenden
Erfindung werden besser verständlich
mit Bezug auf die nachfolgende Beschreibung, die angehängten Ansprüche und
die beigefügte
Zeichnung, in der:
-
1 ein
Blockdiagramm darstellt, das Elemente in einer Betriebsumgebung
darstellt, in der eine Verwaltung der Server-Bandbreitennutzung
angewendet werden kann;
-
2 ein
Computersystem darstellt, das dafür konfiguriert werden kann,
Kennzeichen der Erfindung gemäß einer
veranschaulichenden Ausführungsform
einzusetzen;
-
3 ein
herkömmliches
Ereignis mit einer Spitzen-Bandbreitenbeanspruchung
darstellt;
-
4 ein
Flussdiagramm eines Verfahrens zur Verwaltung der Server-Bandbreitennutzung
mit der Erzeugung eines Verzögerungswerts
in einem zentralisierten Versendungsprozess gemäß einer veranschaulichenden
Ausführungsform
zeigt;
-
5 ein
Flussdiagramm eines Verfahrens zur Verwaltung der Server-Bandbreitennutzung
mit der Erzeugung eines Verzögerungswerts
in einem Anforderungs-Behandlungsprozess gemäß einer veranschaulichenden
Ausführungsform
zeigt;
-
6 ein
Ereignis mit einer Spitzen-Bandbreitenbeanspruchung mit einer Verwaltung
der Bandbreitennutzung darstellt; und
-
7 eine
Verwaltung der Bandbreitennutzung mit in URIs codierten ARTs darstellt.
-
DETAILLIERTE BESCHREIBUNG
-
BESCHREIBUNG DER FIGUREN
-
1 stellt
mehrere Elemente 1000 einer Betriebsumgebung dar, bei denen
eine Verwaltung der Server-Bandbreitennutzung eingesetzt werden
kann. Es sind mehrere Client-Anwendungen 1500 dargestellt.
Die mehreren Client-Anwendungen 1500 sind nicht auf eine
bestimmte EDV-Hardware eingeschränkt.
Die mehreren Client-Anwendungen 1500 können beispielsweise universell
einsetzbare Computer oder EDV-Technik für spezielle Anwendungen sein.
In einigen Ausführungsformen
sitzen die Client-Anwendungen 1500 auf Hardware-Plattformen,
die Merkmale zur Client/Server-Kommunikation und Merkmale zur Fernseher-Steuerung
integrieren. Herkömmliche
Systeme umfassen „Set-Top"-Boxen, die beispielsweise
die WEBTV Plus Set-Top-Box umfassen, die über WebTV Networks Inc. aus
Palo Alto, Kalifornien, erhältlich
ist.
-
Veranschaulichende
Versionen der Erfindung haben in Verbindung mit erweitertem Fernsehen
(„ETV", enhanced television)
besondere Vorteile. In einem der Veranschaulichung dienenden ETV-Kontext
wird eine Videoproduktion an mehrere Client-Anwendungen 1500 verteilt.
Zu der Videoproduktion gehören
eine oder mehrere erweiternde Ressourcen, die von einem Betrachter
der Videoproduktion ausgewählt
werden können. Herkömmlich können die
erweiternden Ressourcen dem Betrachter zur Verfügung gestellt werden, indem
eine Kennzeichnung für
die Ressource in die Videoproduktion aufgenommen wird. Die Set-Top-Box
des Betrachters extrahiert die Ressourcenkennzeichnung und stellt
für den
Betrachter eine Anzeige bereit, dass erweiterte Ressourcen verfügbar sind.
Wenn der Betrachter eine Ressource auswählt, wird über die in der Set-Top-Box des
Betrachters sitzende Client-Anwendung eine Anforderung gesendet.
-
Es
ist für
den ETV-Kontext eine typische Eigenschaft, dass die mehreren Client-Anwendungen 1500 mehrere
Client-Anforderungen 1400 gleichzeitig senden.
-
Diese
Eigenschaft tritt typischerweise dann auf, wenn beispielsweise die
Videoproduktion Broadcast ist und jeder Betrachter praktisch gleichzeitig
aus der Broadcast-Videoproduktion die Verfügbarkeit der erweiternden Ressource
wahrnimmt.
-
Für gewöhnlich werden
die mehreren Client-Anforderungen 1400, die von den mehreren
Client-Anwendungen 1500 gesendet werden, über ein
Netzwerk 1300 übertragen,
das offen ist. In den meisten Fällen umfasst
das Netzwerk 1300 einen Teil des Internets. Herkömmlich werden
die erweiternden Ressourcen durch einen einheitlichen Ressourcen-Bezeichner
(„URI", Uniform Resource
Identifier) gekennzeichnet.
-
1 zeigt
auch einen Standalone-Server 1100 und ein Multiserver-Cluster 1200.
Verfahren gemäß der Erfindung
können
Computer implementiert werden. 2 stellt
ein Computersystem 2000 dar, das dazu fähig ist, Teile der Erfindung
auszuführen.
Der Standalone-Server 1100 oder der Server im Multiserver-Cluster 1200 können Strukturen
gemäß dem Computersystem 2000 sein.
Das Computersystem 2000 umfasst einen Mikroprozessor 2010,
einen Speicher 2020 und ein Eingabe/Ausgabe-System 2030 (das
eine Schnittstelle zum Netzwerk 1300 einschließt). Des
weiteren ist ein Massenspeicherlaufwerk 2070, wie etwa
eine Festplatte, ein CD-ROM-Laufwerk oder ähnliches, dargestellt. Das
Massenspeichergerät 2070 kann
mit einem Computer verwendbaren Speichermedium 2075 betrieben
werden, das dazu fähig
ist, Computer lesbaren Programmcode zu speichern, der dazu geeignet
ist, das Computersystem 2000 zu konfigurieren, um Teile
der Erfindung auszuführen.
Das Eingabe/Ausgabe-System 2030 kann auch mit einer Tastatur 2050,
einem Monitor 2060 und einem Zeigegerät 2090 betrieben werden.
So wie dargestellt, ist das Computersystem 2000 eine universell
einsetzbare IT-Ausrüstung.
Wie der Fachmann erkennt, können
programmierte Anweisungen die universell einsetzbare IT-Ausrüstung konfigurieren,
um Strukturen zu implementieren, die dazu geeignet sind, Funktionen gemäß Teilen
der Erfindung auszuführen.
So konfiguriert stellt die IT-Ausrüstung strukturelle Elemente
bereit, um Funktionen gemäß der Erfindung
auszuführen.
Es kann auch IT-Ausrüstung
für spezielle
Anwendungen eingesetzt werden, die beispielsweise eine Anwendungsspezifische
integrierte Schaltung (ASIC) umfasst. Der Fachmann kennt zahlreiche
Bauarten von programmierter oder programmierbarer Logik, die dazu
fähig sind, dafür konfiguriert
zu werden, Teile der Erfindung auszuführen. In einigen, der Veranschaulichung
dienenden Ausführungsformen
ist das Computersystem 2000 eine UltraSPARC Workstation
von Sun Microsystems aus Mountain View, Kalifornien, auf der das
SOLARIS Betriebssystem (ebenfalls von Sun) und die Apache HTTP (Web-)Serveranwendung
(weit verbreitet erhältlich
in kommerziellen Produkten und auch von http://www.apache.org) laufen.
Server im Multiserver-Cluster 1200 können entsprechend zum Standalone-Server 1100 konfiguriert
werden und es können
herkömmliche
Lastausgleichsverfahren eingesetzt werden, um Anforderungen an Server
im Multiserver-Cluster 1200 zu verteilen. Teile der Erfindung
können
mit lediglich dem Standalone-Server 1100, lediglich dem
Multiserver-Cluster 1200 oder mit beiden betrieben werden.
-
3 stellt
ein Ereignis mit einer Spitzen-Bandbreitenbeanspruchung 3000 dar,
wie es herkömmlich von
einem oder mehreren Servern, wie etwa dem Standalone-Server 1100 oder
dem Multiserver-Cluster 1200, erzeugt wird (zur Veranschaulichung
wird auf einen Server des Multiserver-Clusters 1200 Bezug
genommen). Die mehreren Client-Anforderungen 1400 kommen über das
Netzwerk 1300 an und ein Teil wird an jeden Server im Multiserver-Cluster 1200 verteilt,
wo sie von einem Serverprozess 3100 angenommen werden.
Wie dargestellt ist, arbeitet der Serverprozess 3100 als
ein zentraler Verteiler für
die Anforderungen, die an einen Satz von Anforderungsbehandlern 3200 gesendet
werden, um Antworten für
die mehreren Clientanwendungen 1500 zu erzeugen und zu
diesen zu übertragen.
Die bestimmte Anzahl im Satz von Anforderungsbehandlern 3200 ist
nicht wesentlich. Wenn die Anforderungen ankommen, beginnend mit
dem Zeitpunkt TIME = 0 und verteilt über ein kurzes Zeitintervall,
erzeugt jeder im Satz der Anforderungsbehandler 3200 eine
Antwort für seine
Anforderung. Dies kann beispielsweise das Laden einer Datei aus
dem Speicher und/oder das Laufen lassen eines ausführbaren
Scripts oder eines Programms einschließen und es wird damit begonnen
die Antwort an den Client zu übertragen.
Mit dem Ablauf der Zeit von links nach rechts in 3 ist
zu sehen, dass die Übertragung
einer ersten Antwort 3300 zuerst, die Übertragung einer zweiten Antwort 3400 ein
wenig später und
die Übertragung
einer dritten Antwort 3500 noch später startet. Diese drei dienen
nur der Veranschaulichung der zahlreichen in 3 dargestellten
Antwortübertragungsereignisse.
-
Jede
Antwortübertragung
beansprucht eine Übertragungsbandbreite,
die gleich der Datenrate ist, mit der die Antwort übertragen
wird. Wenn beispielsweise die mehreren Clientanwendungen 1500 die
Antworten beispielsweise mit der aktuellen Generation von Set-Top-Boxen
empfangen, die Modems enthalten, die mit etwa 40–50 Kilobit/Sekunde arbeiten,
ist diese Datenrate typischerweise die Datenrate der Übertragung
für diese
Antwort, da der Satz von Anforderungsbehandlern 3200, die
auf Servern im Multiserver-Cluster 1200 ausgeführt werden,
typischerweise eine Ausgabe mit einer höheren Datenrate erzeugen kann.
Ein Graph zur Bandbreitenbeanspruchung 3600 stellt dar,
wie der Serverprozess 3100 des einen Servers des Multiserver-Clusters 1200 Bandbreite
beansprucht, wenn Antworten übertragen
werden. In einem herkömmlichen ETV-Kontext erreicht
die zur Bedienung von Antworten beanspruchte Bandbreite schnell
Spitzen, wenn die Anforderungen im wesentlichen gleichzeitig und
in großer
Zahl ankommen. Geht man in 3 von oben
nach unten, kann die von gleichzeitigen Antwortübertragungen jedes der Sätze von
Anforderungsbehandlern 3200 beanspruchte Bandbreite aufsummiert
werden, was durch den Graphen zur Bandbreitenbeanspruchung 3600 angenähert dargestellt
wird. Wenn das Ereignis in der Videoproduktion, das die erweiternde
Ressource angeboten hat, abgelaufen ist, beginnt die Anforderungshäufigkeit
für diese
erweiternde Ressource geringer zu werden und auf ein Grundniveau
zurückzugehen,
was das Ende des Ereignisses zur Spitzen-Bandbreitenbeanspruchung 3000 zum
Zeitpunkt TIME = T anzeigt.
-
Wie
im Graphen zur Bandbreitenbeanspruchung 3600 zu sehen ist,
gibt es ein Zeitfenster, in dem zahlreiche Ressourcenanforderungen
am Serverprozess 3100 des einen Servers des Multiserver-Clusters 1200 ankommen.
Die bei der Beantwortung der Anforderungen beanspruchte Bandbreite
kann eine maximale akzeptable Bandbreitenbeanspruchung übersteigen.
Geht man beispielsweise von 500 Prozessen zur Anforderungsbehandlung
pro Server in einem Multiserver-Cluster von fünfzig Servern aus, wobei jeder
Prozess zur Anforderungsbehandlung mit einer Datenrate von 40 Kilobit/Sekunde
an einen Client überträgt, würde die
momentane Bandbreitenbeanspruchung für die gesamten Antwortübertragungen
vom Multiserver-Cluster 1 Gigabit/Sekunde betragen. Falls Server-Kapazität verfügbar wäre, um beispielsweise
auf 1.000.000 gleichzeitige Ressourcenanforderungen zu antworten,
würde die
erforderliche Bandbreitennutzung 40 Gigabit/Sekunde betragen. Diese
Menge an Bandbreite ist in der Praxis mit der aktuellen Telekommunikationstechnologie
nicht geeignet verfügbar,
wobei jedoch in einem typischen ETV-Kontext 1.000.000 im wesentlichen
gleichzeitige Ressourcenanforderungen erwartet werden. Und selbst,
wenn genügend
Bandbreite zu kommerziell durchführbaren
Kosten verfügbar
wäre, um
gleichzeitig 1.000.000 Antwortübertragungen
zu bedienen, würde
die aktuelle Preisgestaltungspraxis dies ineffizient machen. Da
für Bandbreite üblicherweise
ein Preis berechnet wird, der von der Spitzen-Bandbreitennutzung über den
Rechnungszeitraum abhängt,
würden
die kurzen Phasen mit hoher Bandbreitennutzung zu viel höheren Bandbreitenkosten
führen,
als wenn die Antwortanforderungen über einen längeren Zeitraum verteilt wären.
-
4 stellt
ein Verfahren zur Verwaltung der Server-Bandbreitennutzung dar,
das eine zentralisierte Prozessverteilung 4000 entsprechend
einer veranschaulichenden Ausführungsform
verwendet. In dieser veranschaulichenden Ausführungsform werden Schritte
dieses Verfahrens durch einen Serverprozess ausgeführt. Die
spezielle Serveranwendung ist nicht wesentlich und andere können ohne
Einschränkung
auf Varianten von POSIX-artigen Betriebssystemen, WINDOWS Betriebssystemen
von Microsoft Corp. aus Redmond, Washington, oder weiteren Betriebssystemen
eingesetzt werden.
-
Der
Prozessfluss beginnt bei einem 'Start'-Punkt 4100 und
er fährt
damit fort, dass der Serverprozess einen Datenblock für eine 'Ressourcenanforderung' 4200 aus
dem Netzwerk 1300 empfängt.
In dieser veranschaulichenden Ausführungsform ist der 'Ressourcenanforderungs'-Datenblock 4200 eine
Anforderungsnachricht gemäß dem Hypertext
Transfer Protocol ("HTTP"). Wie jedoch der
Fachmann erkennt, können
andere Ausführungsformen
der Erfindung auch mit anderen Kommunikationsprotokollen arbeiten
und das bestimmte Protokoll ist nicht wesentlich.
-
Als
nächstes
wird durch einen Prozess zur 'Verzögerungswerterzeugung' 4300 ein
Verzögerungswert vorbelegt,
für dessen
Dauer die Ausführung
der Erzeugung einer Antwort für
die Anforderung aufgeschoben wird. Der Verzögerungswert wird vorzugsweise
durch eine akzeptable Antwortzeit ("ART")
zum Erfüllen
der Anforderung nach oben begrenzt. Des weiteren ist eine Folge
von Verzögerungswerten,
die durch eine wiederholte Ausführung
des Prozesses zur 'Verzögerungswerterzeugung' 4300 erzeugt
werden, vorzugsweise in etwa gleichmäßig über den Bereich [0, ART] verteilt.
Ausführungsformen,
in denen diese letztere Bedingung nicht erfüllt ist, können die unerwünschte Eigenschaft
haben, die Spitzen-Bandbreitennutzung einfach auf einen späteren Zeitpunkt
zu verschieben, ohne diese zu verringern.
-
Viele
Verfahren sind geeignet eine Folge von Verzögerungswerten mit den oben
genannten Eigenschaften zu erzeugen. Es können herkömmliche Generatoren für Pseudo-Zufallszahlen
("PRNG", pseudo random number
generators) verwendet werden, und viele können Donald Knuth, The Art
of Computer Programming, Band 2, Kapitel 3 (Addison Wesley, 3. Auflage)
entnommen werden. In einer bevorzugten Ausführungsform wird ein linearer
kongruentieller Generator verwendet. Da die Rechenressourcen, die
zur Berechnung pseudo-zufälliger
Zahlen mit beinahe zufälligen
statistischen Eigenschaften verwendet werden, erheblich sein können, können weitere
Ausführungsformen
auch andere Funktionen einsetzen, die eine gleichmäßig verteilte Sequenz
von Verzögerungswerten
erzeugen, die nicht beinahe zufällig
sind. In nochmals weiteren Ausführungsformen
können
die Verzögerungswerte,
mit oder ohne einen PRNG, berechnet werden bevor das Ereignis mit
einer Spitzen-Bandbreitenbeanspruchung erwartet wird und sie können in
einer (vorzugsweise speicherresidenten) Datenstruktur gespeichert
werden. Bei solchen Ausführungsformen
würde der
Prozess zur 'Verzögerungswerterzeugung' 4300 eine
Lookup-Operation in der Datenstruktur ausführen, um den Verzögerungswert
zu erzeugen.
-
Der
Prozessfluss geht weiter zu einem Prozess zum 'Verteilen der Anforderung an einen Anforderungsbehandler' 4400, in
dem der Serverprozess die Anforderung und den Verzögerungswert
an einen Prozess zur Anforderungsbehandlung weiterleitet, der die
Antwort erzeugt und sie an den Client sendet. Als nächstes verzögert der
Prozess zur 'Ausführungsverzögerung' 4500 die
Ausführung
des Prozesses zur Anforderungsbehandlung um ein Zeitintervall, das
gleich dem Verzögerungswert
ist, der an den Prozess zur Anforderungsbehandlung übergeben
wurde. Zur Verzögerung
der Ausführung
des Prozesses zur Anforderungsbehandlung können Betriebssystemfunktionen
oder auch andere gut bekannte Verfahren verwendet werden. In einer
Multi-Thread-Umgebung können
Verfahren zur Thread-Synchronisation eingesetzt werden. Allgemeiner können herkömmliche
Funktionen zur Verteilung, zum Aufschieben oder Zuteilen von Ereignissen
verwendet werden.
-
Als
nächstes
führt ein
Prozess zur 'Antworterzeugung' 4600 die
notwendigen Schritte zum Erzeugen der für die angeforderte Ressource
geeigneten Antwort aus.
-
Die
besonderen, hierfür
notwendigen Schritte sind für
die vorliegende Erfindung nicht wesentlich und können von der angeforderten
Ressource abhängen.
Beispielsweise kann es für
eine einfache Datei lediglich notwendig sein, sie aus einem Dateisystem
oder einem Speicher zu holen, oder es kann ausführbarer Code ausgeführt werden,
um die Antwort zu erzeugen. Der Prozessfluss geht weiter zu einem
Prozess zum 'Versenden
der Antwort' 4700,
der die Antwort vom Prozess zur 'Antworterzeugung' 4600 an
die anfordernde Client-Anwendung übermittelt. Der Prozessfluss
endet dann in einem 'End'-Punkt 4800.
-
Eine
weitere veranschaulichende Ausführungsform
wird mit Bezug auf 5 verständlich und umgesetzt. In dieser
veranschaulichenden Ausführungsform
werden Schritte dieses Verfahrens von einem Serverprozess ausgeführt, beispielsweise
von einer geeignet modifizierten Version des Apache HTTP-Servers
(der als ein kontinuierlich arbeitender Daemon läuft). Außerdem werden die Verzögerungswerte
durch Prozesse zur Anforderungsbehandlung erzeugt anstatt durch
den Serverprozess, der Ressourcenanforderungen an Prozesse zur Anforderungsbehandlung
verteilt. Mit Ausnahme des unten Beschriebenen, ist diese Ausführungsform ähnlich zu
der oben in Verbindung mit dem Verfahren zur Verwaltung von Server-Bandbreitennutzung
unter Verwendung zentralisierter Prozessverteilung 4000 beschriebenen
Ausführungsform.
-
Der
Prozessfluss beginnt in einem 'Start'-Punkt 5100 und
er fährt
damit fort, dass er einen Datenblock für eine 'Ressourcenanforderung' 5200 aus
dem Netzwerk 1300 empfängt.
Danach kommuniziert ein Prozess zum 'Verteilen der Anforderung an einen Anforderungsbehandler' 5300 die
Information aus dem Datenblock für
eine 'Ressourcenanforderung' 5200 an
einem Prozess zur Anforderungsbehandlung, der eine Antwort erzeugt.
Als nächstes
wird vom Prozess zur Anforderungsbehandlung ein Prozess zum 'Erzeugen eines Verzögerungswerts' 5400 ausgeführt. Der
Prozess zum 'Erzeugen
eines Verzögerungswerts' 5400 bestimmt
vorab einen Verzögerungswert
für die
Dauer, um die die Ausführung
der Erzeugung einer Antwort für
die Anforderung aufgeschoben wird. Der Verzögerungswert kann auf irgend
eine der oben beschriebenen Arten erzeugt werden. Ergänzend ist
eine zusätzliche
Eigenschaft wünschenswert,
wenn der Verzögerungswerts,
wie in dieser veranschaulichenden Ausführungsform, durch den Prozess
zur Anforderungsbehandlung erzeugt wird.
-
Wie
bereits bemerkt, werden typischerweise mehrere Prozesse zur Anforderungsbehandlung
gleichzeitig ausgeführt,
wobei jeder unabhängig
Ressourcenanforderungen von einem zentralen Verteilerprozess empfängt, Antworten
erzeugt und Antworten überträgt. Würde jeder
der mehreren Prozesse zur Anforderungsbehandlung ein identisches
Verfahren zum Erzeugen von Verzögerungswerten
verwenden, würde
die Folge von Anforderungen lediglich zeitlich verschoben, anstatt
zeitlich verteilt zu werden, wobei keinerlei Verringerung der Spitzen-Bandbreitennutzung
bei der Übertragung
der Antworten zustande käme.
Würde beispielsweise
jeder Prozess zur Anforderungsbehandlung denselben PRNG mit demselben
Startwert verwenden, könnte jeder
Prozess zur Anforderungsbehandlung dieselbe pseudo-zufällige Sequenz
erzeugen. Bei der Ankunft jeder Anforderung, würde diese an einen Prozess
zur Anforderungsbehandlung verteilt werden, der denselben Verzögerungswert
erzeugt, wie er auch für
eine vorhergehende und eine nachfolge Anforderung erzeugt würde; die
Anforderungen würden
dann (relativ zueinander) zur selben Zeit behandelt werden, wie
für den
Fall, dass keine Verzögerungswerte
erzeugt worden wären,
obwohl sie um den Betrag des Verzögerungswerts zeitlich weitergeschoben
würden.
Daher sollten für
den Fall, dass die Prozesse zur Anforderungsbehandlung die Sequenzen
der Verzögerungswerte
selber erzeugen, die Sequenzen im wesentlichen unkorreliert sein.
Dies kann beispielsweise erreicht werden, indem zum Erzeugen der
Verzögerungswerte
PRNGs verwendet werden, und für
jeden Prozess zur Anforderungsbehandlung ein anderer Startwert verwendet
wird. Andere Verfahren im Kenntnisbereich des Fachmanns, die den
Vorteil dieser Offenbarung haben, können ebenfalls verwendet werden.
Vom Prozess zum 'Erzeugen
von Verzögerungswerten' 5400 geht
der Prozessfluss weiter zu einem Prozess zur 'Ausführungsverzögerung' 5500, einem
Prozess zum 'Erzeugen
einer Antwort' 5600 und einem
Prozess zum 'Übertragen
der Antwort' 5700,
die dieselben Aufgaben erfüllen,
wie die entsprechenden Prozesse, die weiter oben in Verbindung mit 4 beschrieben
wurden. Der Prozessfluss endet in einem 'End'-Punkt 5800.
-
Vorteile
von Ausführungsformen
werden mit Bezug auf 6 verständlich, die eine Ereignis mit
einer Spitzen-Bandbreitennutzung mit einer Verwaltung der Bandbreitennutzung 6000 darstellt.
Eigenschaften der veranschaulichenden Ausführungsform werden mit Bezug
auf 3 und 6 verständlich. Wie in 3 nimmt
ein Serverprozess 6100 Verbindungen für Ressourcenanforderungen aus
dem Netzwerk 1300 an. Der Serverprozess 6100 verteilt
dann die Anforderungen an eine Gruppe von Anforderungsbehandlern 6200.
Verfahren, wie die weiter oben in Verbindung mit entweder 4 oder 5 beschriebenen,
können
eingesetzt werden, um für
jeden in der Gruppe der Anforderungsbehandler 6200 Verzögerungswerte
zu erzeugen.
-
Veranschaulichend
für die
Einführung
von Verzögerungswerten
bei der Übertragung
von Antworten auf Ressourcenanforderungen sind eine erste Antwortübertragung 6300 und
eine erste Ausführungsverzögerung 6350.
Diese sind nur beispielhaft für
die zahlreichen Ereignisse zur Antwortübertragung und zur Ausführungsverzögerung,
die vom Serverprozess 6100 und der Gruppe der Anforderungsbehandler 6200 in
Reaktion auf ein Ereignis mit einer Spitzen-Bandbreitennutzung erzeugt werden. Die
Wirkung der Einbeziehung von Verzögerungswerten bei der Beantwortung
von Ressourcenanforderungen ist mit Bezug auf einen Graphen der
Bandbreitennutzung 6600 zu erkennen. Im Vergleich des Graphen
der Bandbreitennutzung 6600 in 6 und des
Graphen der Bandbreitennutzung 3600 in 3 ist
zu erkennen, dass die Spitzen-Bandbreitennutzung
im Graphen der Bandbreitennutzung 6600 in 6 verringert
ist, wobei jedoch das Ereignis der Bandbreitennutzung über ein
längeres
Zeitintervall verteilt ist. In 3 und 6 ist
dieselbe Anzahl von auftretenden Antwortübertragungen dargestellt; und
folglich wird dieselbe Anzahl von Bits an die Clients übertragen. Die
Einbeziehung von Verzögerungswerten
vor der Antwortübertragung
führt jedoch
zu einer Situation, bei der zu jedem Zeitpunkt während der des Ereignisses der
Bandbreitennutzung ein Teil aus der Gruppe der Anforderungsbehandler 6200 in
ihrer Ausführung
verzögert
sind und daher keine Bandbreite beanspruchen. Dadurch ist die Spitzen-Bandbreite
verringert.
-
In
einigen Ausführungsformen
ist eine akzeptable Antwortzeit in einem einheitlichen Ressourcen-Bezeichner
codiert, der an einen Client gesendet wird. Wenn der Client eine
Anforderung für
eine Ressource sendet, die über
den einheitlichen Ressourcen-Bezeichner verfügbar ist, kann die akzeptable
Antwortzeit von dem Server, der die Anforderung annimmt, extrahiert
und dazu verwendet werden, einen geeigneten Verzögerungswert zu erzeugen.
-
Eine
veranschaulichende Ausführungsform
ist in 7 zu sehen, die ein Verfahren zur Verwaltung der Bandbreitennutzung
mit ART-codierten URIs 7000 darstellt. Ein Server 7100 überträgt eine
Datei mit ART-codierten URIs 7300 an einen Client 7200.
Der Client 7200 antwortet zu einem späteren Zeitpunkt mit einer Anforderung
mit einer ART-codierten URI 7400 und danach überträgt der Server 7100 eine
Antwort innerhalb der ART 7500.
-
Mit
Bezug auf die Datei mit den ART-codierten URIs 7300 ist
zu sagen, dass der weitere Inhalt dieser Datei nicht wesentlich
ist. In dieser veranschaulichenden Ausführungsform ist die Datei eine
beliebige herkömmliche
HTML-Seite, oder eine andere Datei, die einen einheitlichen Ressourcen-Bezeichner
umfasst, in dem eine akzeptable Antwortzeit codiert ist. In einigen
Ausführungsformen
wird die Seite in Reaktion auf eine vorherige Ressourcenanforderung
an den Client übertragen.
In weiteren Ausführungsformen
kann der Client die Seite und die durch den einheitlichen Ressourcen-Bezeichner
in der Seite bestimmte Ressource vorab laden und in einem Cache
speichern. In einigen Ausführungsformen
wird das Kanal-Defintitons-Format
("CDF", Channel Definition
Format) verwendet. In diesen Ausführungsformen ist die vom Server 7100 an
den Client 7200 gesendete Datei eine Datei, die die CDF-Spezifikation
erfüllt
(die über
das World Wide Web Konsortium unter http://www.w3.org/TR/NOTE-CDFsubmit.html
und Microsoft Corp. in Redmond, WA, bezogen werden kann). Die CDF-Datei
bezeichnet eine oder mehrere Ressourcen, die in Übereinstimmung mit der CDF
in vorgesehenen Intervallen automatisch aktualisiert werden, und
die Bezüge
zu den Ressourcen sind URIs mit darin codierten ARTs.
-
Im
allgemeinen Rahmen des Hypertext-Transfer-Protokolls hat ein einheitlicher
Ressourcen-Bezeichner im allgemeinen folgende Form:
"http:""//"host[":"port][path]
wobei 'port' sich auf den Port
am Server bezieht, über
den eine Verbindung aufgebaut werden sollte, um die Ressource abzurufen. 'Path' bezieht sich auf
eine zusätzliche
Information, die zum Laden einer Ressource verwendet wird und deren
bestimmte Bedeutung vom Kontext abhängt. Die 'port' oder 'path' Anteile eines einheitlichen
Ressourcen-Bezeichners können
für die Übermittlung
einer akzeptablen Antwortzeit verwendet werden. Üblicherweise sind Portnummern
bis 1024 reserviert und es werden daher vorzugsweise Ports mit höheren Nummern
verwendet.
-
In
einer Ausführungsform
ist die akzeptable Antwortzeit als ,port'-Anteil eines einheitlichen Ressourcen-Bezeichners
codiert. Die akzeptable Antwortzeit kann beispielsweise Sekunden
als die Einheit für
Zeitmessungen verwenden und mit 1025 starten, was 1 Sekunde entspricht,
um es zu vermeiden, die Ports von 1024 an abwärts zu verwenden. In dieser
Ausführungsform
akzeptiert der Server 7100 HTTP-Verbindungen auf mehreren Ports. Die
Portnummer über
die die Verbindung aufgebaut wird, liefert die akzeptable Antwortzeit für die Anforderung.
Für jeden
Port erzeugt der Serverprozess 6100 einen Verzögerungswert
im Bereich [0, akzeptable Antwortzeit]. Ein veranschaulichender
einheitlicher Ressourcen-Bezeichner gemäß dieser Ausführungsform
ist nachfolgend angegeben:
http://www.b3tv.com:1034/foo/bar/index.html
-
Dieser
einheitliche Ressourcen-Bezeichner kann in der Datei mit ART-codierten URIs 7300 an
den Client 7200 gesendet werden und der Client 7200 kann
mit der ART-codierten URI 7400 eine Anforderung für die Ressource
senden. Dies kann beispielsweise in Reaktion auf eine Auswahl eines
zugehörigen
Hyperlinks durch einen Benutzer, einen Vorgang des Clients 7200 zum
vorab Laden in den Cache oder eine automatisch aktualisierende Ressource,
wie die zum CDF gehörenden,
geschehen. Der Server 7100 kann dann einen Verzögerungswert
erzeugen, der nach oben von der akzeptablem Antwortzeit begrenzt
wird, und innerhalb der ART eine Antwort bereitstellen 7500.
-
In
einer weiteren Ausführungsform
ist die akzeptable Antwortzeit im ,path'-Anteil
des einheitlichen Ressourcen-Bezeichners codiert. Die akzeptable
Antwortzeit kann wiederum in Sekunden angegeben sein. In dieser
Ausführungsform
akzeptiert der Serverprozess 6100 HTTP-Verbindungen auf
entweder einem oder mehreren Ports. Gemäß der HTTP-Spezifikation wird
Port 80 angenommen, wenn kein Port spezifiziert ist. Die Zahl im
Pfad stellt die akzeptable Antwortzeit für die Anforderung bereit. Für jeden
einheitlichen Ressourcen-Bezeichner erzeugt der Serverprozess 6100 einen
Verzögerungswert
im Bereich [0, ART]. Ein veranschaulichender einheitlicher Ressourcen-Bezeichner
gemäß dieser
Ausführungsform
ist nachfolgend angegeben:
http://www.b3tv.com/foo/bar/index.html..10
-
Dieser
einheitliche Ressourcen-Bezeichner kann in der Datei mit ART-codierten URIs 7300 an
den Client 7200 gesendet werden und der Client 7200 kann
mit der ART-codierten URI 7400 eine Anforderung für die Ressource
senden. Dies kann beispielsweise in Reaktion auf eine Auswahl eines
zugehörigen
Hyperlinks durch einen Benutzer, einen Vorgang des Clients 7200 zum
vorab Laden in den Cache oder eine automatisch aktualisierende Ressource,
wie die zum CDF gehörenden,
geschehen. Der Server 7100 kann dann die akzeptable Antwortzeit
extrahieren und einen Verzögerungswert
erzeugen, der nach oben von der akzeptablem Antwortzeit begrenzt
wird, und innerhalb der ART eine Antwort bereitstellen 7500.
-
Obwohl
die vorliegende Erfindung durch Eigenschaften veranschaulichender
Ausführungsformen
beschrieben wurde, versteht der Fachmann, dass verschiedene Modifikationen,
Veränderungen
und Weglassungen vorgenommen werden können, ohne den Anwendungsbereich
der Erfindung zu verlassen. Demgemäß wird der Anwendungsbereich
der Erfindung nicht auf die hier besprochenen bestimmten Ausführungsformen eingeschränkt, er
soll dagegen nur durch die beigefügten Ansprüche definiert werden. Legende zu den Figuren:
| Englisch | Deutsch |
| | |
Fig.
1 | | |
1300 | Network | Netzwerk |
1400 | Request | Anforderung |
1500 | Client | Client |
| | |
Fig.
2 | | |
1300 | Network | Netzwerk |
2010 | Processor | Prozessor |
2020 | Memory | Speicher |
2030 | Input/Output | Eingabe/Ausgabe |
| | |
Fig.
3 | | |
1300 | Network | Netzwerk |
3100 | Server
Process | Serverprozess |
| Bandwidth | Bandbreite |
| Time | Zeit |
| Response
Transmission | Antwortübertragung |
| | |
Fig.
4 | | |
4100 | Start | Start |
4200 | Resource
Request | Ressourcenanforderung |
4300 | Delay
Value Generation | Verzögerungswert
erzeugen |
4400 | Dispatch
Request to Request Handler | Verteilen
der Anforderung an Anforderungsbehandler |
4500 | Execution
Suspension | Ausführung verzögern |
4600 | Response
Generation | Antwort
erzeugen |
4700 | Response
Transmission | Antwort
versenden |
4800 | End | Ende |
| | |
Fig.
5 | | |
5100 | Start | Start |
5200 | Resource
Request | Ressourcenanforderung |
5300 | Dispatch
Request to Request Handler | Verteilen
der Anforderung an Anforderungsbehandler |
5400 | Delay
Value Generation | Verzögerungswert
erzeugen |
5500 | Execution
Suspension | Ausführung verzögern |
5600 | Response
Generation | Antwort
erzeugen |
5700 | Response
Transmission | Antwort
versenden |
5800 | End | Ende |
| | |
Fig.
6 | | |
1300 | Network | Netzwerk |
6100 | Server
Process | Serverprozess |
| Bandwidth | Bandbreite |
| Time | Zeit |
| Response
Transmission | Antwortübertragung |
| Execution
Suspension | Ausführungsverzögerung |
| | |
Fig.
7 | | |
7100 | Server | Server |
7200 | Client | Client |
7300 | File
with ART-encoded URIs | Datei
mit ART-codierten URIs |
7400 | Request
with ART-encoded URIs | Anforderung
mit ART-codierten URIs |
7500 | Requested
resource within the ART | angeforderte
Ressource innerhalb der ART |
| | |