DE60038170T2 - Verfahren und vorrichtung zur verwaltung der serversbandbreitenutzung - Google Patents

Verfahren und vorrichtung zur verwaltung der serversbandbreitenutzung Download PDF

Info

Publication number
DE60038170T2
DE60038170T2 DE60038170T DE60038170T DE60038170T2 DE 60038170 T2 DE60038170 T2 DE 60038170T2 DE 60038170 T DE60038170 T DE 60038170T DE 60038170 T DE60038170 T DE 60038170T DE 60038170 T2 DE60038170 T2 DE 60038170T2
Authority
DE
Germany
Prior art keywords
request
resource
delay value
response time
computer program
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE60038170T
Other languages
English (en)
Other versions
DE60038170D1 (de
Inventor
Jay C. Menlo Park WEBER
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intellectual Ventures I LLC
Original Assignee
Rehle Visual Communications LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Rehle Visual Communications LLC filed Critical Rehle Visual Communications LLC
Publication of DE60038170D1 publication Critical patent/DE60038170D1/de
Application granted granted Critical
Publication of DE60038170T2 publication Critical patent/DE60038170T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/15Flow control; Congestion control in relation to multipoint traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/74Admission control; Resource allocation measures in reaction to resource unavailability
    • H04L47/741Holding a request until resources become available
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/82Miscellaneous aspects
    • H04L47/826Involving periods of time
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/28Timers or timing mechanisms used in protocols

Description

  • 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

Claims (21)

  1. Computer implementiertes Verfahren zur Verwaltung der Bandbreitennutzung durch einen Server beim Erfüllen von Ressourcenanforderungen von Clients über ein Kommunikationsnetzwerk, wobei das Verfahren folgendes umfasst: Empfangen einer Anforderung (1400) für eine Ressource, wobei diese Anforderung eine akzeptable Antwortzeit einschließt; Verzögern (4500) des Erfüllens der Anforderung um eine festgelegte Zeitdauer, die kleiner oder gleich der akzeptablen Antwortzeit ist, um eine sofortige Bandbreitennutzung durch den Server (1100, 1200) zu verringern; und das anschließende Erfüllen der Anforderung für die Ressource (4700).
  2. Verfahren nach Anspruch 1, wobei der Verzögerungsschritt folgendes umfasst: Erzeugen eines Verzögerungswertes, wobei der Verzögerungswert kleiner oder gleich der akzeptablen Antwortzeit ist; und Warten bis ein Zeitintervall verstrichen ist, das wenigstens so lang ist, wie der Verzögerungswert.
  3. Verfahren nach Anspruch 2, wobei der Verzögerungswert ein Element einer Folge ist, die im wesentlichen gleichförmig zwischen Null und der akzeptablen Antwortzeit verteilt ist.
  4. Verfahren nach Anspruch 3, wobei die Folge eine pseudo-zufällige Folge ist.
  5. Verfahren nach Anspruch 1, wobei das Empfangen einer Anforderung für eine Ressource folgendes umfasst: Empfangen einer Anforderung für eine Ressource durch einen Anforderungs-Versendungsprozess (6100); Erzeugen eines Verzögerungswertes durch den Anforderungs-Versendungsprozess; und Versenden der Anforderung und des Verzögerungswerts an einen Anforderungs-Behandlungsprozess (6200) zur Behandlung.
  6. Verfahren nach Anspruch 1, wobei die akzeptable Antwortzeit durch einen Port festgelegt wird, über den die Anforderung ankommt.
  7. Verfahren nach Anspruch 1, wobei die Anforderung einen Pfad einschließt, der die Ressource identifiziert, und wobei der Pfad die akzeptable Antwortzeit umfasst.
  8. Verfahren nach Anspruch 1, das des weiteren folgendes umfasst: Übertragen (7300) einer Kennzeichnung für eine Ressource, die auf einem Server verfügbar ist, an einen Client.
  9. Vorrichtung, die einen Prozessor (2010), einen Speicher (2020), eine Netzwerkschnittstelle (2030) und ein Dateisystem umfasst, wobei programmierte Anweisungen diese Vorrichtung dafür konfigurieren, Verbindungen anzunehmen, um Anforderungen (1400) von Clients über ein Kommunikationsnetzwerk zu bedienen, indem an diese Antworten versendet werden, wobei diese Vorrichtung außerdem mit programmierten Anweisungen konfiguriert ist, die folgendes umfassen: einen Anforderungsempfänger (3100), der dafür konfiguriert ist, eine Anforderung (4300) für eine Ressource zu empfangen, wobei diese Anforderung eine akzeptable Antwortzeit umfasst; einen Verzögerer (3100) für die Anforderungserfüllung, der für folgendes konfiguriert ist: Verzögern des Erfüllens der Anforderung um eine festgelegte Zeitdauer, die kleiner oder gleich der akzeptablen Antwortzeit ist; und einen Anforderungsbehandler (3200), der dafür konfiguriert ist, die Anforderung für die Ressource zu erfüllen.
  10. Verfahren nach Anspruch 9, wobei der Verzögerer für die Anforderungserfüllung folgendes umfasst: einen Verzögerungswert-Erzeuger, der dafür konfiguriert ist, einen Verzögerungswert zu erzeugen, wobei dieser Verzögerungswert kleiner ist als eine akzeptable Antwortzeit; und eine Zeitsteuerung, die dafür konfiguriert ist, zu warten bis ein Zeitintervall verstrichen ist, das wenigstens so lang ist, wie der Verzögerungswert.
  11. Vorrichtung nach Anspruch 9, die außerdem dafür konfiguriert ist, einen Verzögerungswert zu erzeugen, wobei der Verzögerungswert ein Element einer Folge ist, die im wesentlichen gleichmäßig zwischen Null und der akzeptablen Antwortzeit verteilt ist.
  12. Vorrichtung nach Anspruch 10, wobei die Folge eine pseudo-zufällige Folge ist.
  13. Vorrichtung nach Anspruch 9, wobei der Anforderungsempfänger folgendes umfasst: einen Anforderungsempfänger (3100), der dafür konfiguriert ist, eine Anforderung für eine Ressource mit einem Anforderungs-Versendungsprozess (6100) zu empfangen; Erzeugen eines Verzögerungswerts mit diesem Anforderungs-Versendungsprozess; und ein Anforderungsversender, der dafür konfiguriert ist, diese Anforderung und diesen Verzögerungswert an einen Anforderungs-Behandlungsprozess (3200) zu liefern.
  14. Vorrichtung nach Anspruch 9, wobei diese akzeptable Antwortzeit durch einen Port festgelegt wird, über den die Anforderung ankommt.
  15. Vorrichtung nach Anspruch 9, wobei die Anforderung einen Pfad umfasst, der die Ressource identifiziert, und wobei der Pfad die akzeptable Antwortzeit umfasst.
  16. Computerprogrammprodukt, das ein Computer lesbares Medium umfasst, das darauf codierte, Computer lesbare Anweisungen zur Verwaltung der Bandbreitennutzung durch einen Server enthält, folgendes umfassend: Computerprogramm-Anweisungen, die dafür konfiguriert sind, einen Computer (1100, 1200) zu veranlassen, eine Anforderung (1400) für eine Ressource (4200) von einem Client über ein Kommunikationsnetzwerk zu empfangen; Computerprogramm-Anweisungen, die dafür konfiguriert sind, einen Computer zu veranlassen, einen Verzögerungswert zu erzeugen (4300), wobei der Verzögerungswert kleiner ist, als eine akzeptable Antwortzeit, wobei diese akzeptable Antwortzeit mit der Anforderung empfangen wird; Computerprogramm-Anweisungen, die dafür konfiguriert sind, einen Computer zu veranlassen, das Erfüllen der Anforderung um eine festgelegte Zeitdauer zu verzögern (4500), die wenigstens so lang ist wie der Verzögerungswert; und Computerprogramm-Anweisungen, die dafür konfiguriert sind, einen Computer zu veranlassen, die Anforderung für die Ressource zu erfüllen (4700), nachdem die festgelegte Zeitdauer abgelaufen ist.
  17. Computerprogrammprodukt nach Anspruch 16, wobei der Verzögerungswert ein Element einer Folge ist, die im wesentlichen gleichmäßig zwischen Null und der akzeptablen Antwortzeit verteilt ist.
  18. Computerprogrammprodukt nach Anspruch 16, wobei die Folge eine pseudo-zufällige Folge ist.
  19. Computerprogrammprodukt nach Anspruch 16, wobei die Computerprogramm-Anweisungen, die dafür konfiguriert sind, einen Computer zu veranlassen, eine Anforderung für eine Ressource zu empfangen, folgendes umfassen: Computerprogramm-Anweisungen, die dafür konfiguriert sind, einen Computer zu veranlassen, eine Anforderung für eine Ressource mit einem Anforderungs-Versendungsprozess (6100) zu empfangen; Computerprogramm-Anweisungen, die dafür konfiguriert sind, einen Computer zu veranlassen, den Verzögerungswert mit dem Anforderungs-Versendungsprozess zu erzeugen; und Computerprogramm-Anweisungen, die dafür konfiguriert sind, einen Computer zu veranlassen, die Anforderung und den Verzögerungswert zur Behandlung an einen Anforderungs-Behandlungsprozess (6200) zu versenden.
  20. Computerprogrammprodukt nach Anspruch 16, wobei diese akzeptable Antwortzeit durch einen Port festgelegt wird, über den die Anforderung ankommt.
  21. Computerprogrammprodukt nach Anspruch 16, wobei die Anforderung einen Pfad umfasst, der die Ressource identifiziert, und wobei der Pfad die akzeptable Antwortzeit umfasst.
DE60038170T 1999-05-26 2000-05-24 Verfahren und vorrichtung zur verwaltung der serversbandbreitenutzung Expired - Lifetime DE60038170T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US320010 1999-05-26
US09/320,010 US6424993B1 (en) 1999-05-26 1999-05-26 Method, apparatus, and computer program product for server bandwidth utilization management
PCT/US2000/009821 WO2000074338A2 (en) 1999-05-26 2000-05-24 Method and apparatus for server bandwidth utilization management

Publications (2)

Publication Number Publication Date
DE60038170D1 DE60038170D1 (de) 2008-04-10
DE60038170T2 true DE60038170T2 (de) 2009-02-26

Family

ID=23244486

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60038170T Expired - Lifetime DE60038170T2 (de) 1999-05-26 2000-05-24 Verfahren und vorrichtung zur verwaltung der serversbandbreitenutzung

Country Status (5)

Country Link
US (1) US6424993B1 (de)
EP (1) EP1183845B1 (de)
AU (1) AU5122900A (de)
DE (1) DE60038170T2 (de)
WO (1) WO2000074338A2 (de)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6631115B1 (en) * 1999-01-28 2003-10-07 International Business Machines Corporation Method, apparatus and program product for balancing communication loads over a network
US6842783B1 (en) * 2000-02-18 2005-01-11 International Business Machines Corporation System and method for enforcing communications bandwidth based service level agreements to plurality of customers hosted on a clustered web server
US6662270B1 (en) * 2000-05-16 2003-12-09 Xerox Corporation System and method for caching of reusable objects
AU2001259409A1 (en) * 2000-05-19 2001-12-03 Intel Corporation Automatically delaying client responses to broadcast uniform resource locators
US7765316B1 (en) * 2000-10-10 2010-07-27 Intel Corporation Scheduling the uploading of information from a client to a server
US20030046394A1 (en) * 2000-11-03 2003-03-06 Steve Goddard System and method for an application space server cluster
US7363371B2 (en) * 2000-12-28 2008-04-22 Nortel Networks Limited Traffic flow management in a communications network
EP1257107B1 (de) * 2001-05-08 2007-03-21 Matsushita Electric Industrial Co., Ltd. Verfahren und System für Zweiwegkommunikation und Informationsverarbeitungsapparat
US7478164B1 (en) * 2001-06-12 2009-01-13 Netapp, Inc. Methods and apparatus for pacing delivery of streaming media data
US7139826B2 (en) * 2001-07-13 2006-11-21 Hitachi, Ltd. Initial copy for remote copy
US20030046365A1 (en) * 2001-09-04 2003-03-06 Schlumberger Technology Corporation System and method for caching content
US20030079018A1 (en) * 2001-09-28 2003-04-24 Lolayekar Santosh C. Load balancing in a storage network
US8082318B2 (en) 2001-09-28 2011-12-20 British Telecommunications Plc Controlling service requests transmitted from a client to a server
US20040032486A1 (en) 2002-08-16 2004-02-19 Shusman Chad W. Method and apparatus for interactive programming using captioning
US20030196206A1 (en) 2002-04-15 2003-10-16 Shusman Chad W. Method and apparatus for internet-based interactive programming
US20040210947A1 (en) 2003-04-15 2004-10-21 Shusman Chad W. Method and apparatus for interactive video on demand
US8145788B1 (en) * 2002-05-31 2012-03-27 Emc Corporation Distributed ISP load balancer
US7991905B1 (en) 2003-02-12 2011-08-02 Netapp, Inc. Adaptively selecting timeouts for streaming media
GB2398701A (en) * 2003-02-22 2004-08-25 Alps Electric Controlling bandwidth by introducing variable delay in transmission path
US7539748B2 (en) * 2003-05-16 2009-05-26 Time Warner Cable, A Division Of Time Warner Entertainment Company, L.P. Data transfer application monitor and controller
US7451251B2 (en) * 2003-12-29 2008-11-11 At&T Corp. Method for redirection of web streaming clients using lightweight available bandwidth measurement from a plurality of servers
JP5077617B2 (ja) * 2005-10-27 2012-11-21 富士通株式会社 想定外需要検出システムおよび想定外需要検出プログラム
US7898982B2 (en) 2006-03-22 2011-03-01 Alcatel Lucent Logical group endpoint discovery for data communication network
EP1916578A1 (de) * 2006-10-24 2008-04-30 Triphase NV System für Echtzeit-Prozesssteuerung
US7996845B2 (en) * 2006-11-14 2011-08-09 Nokia Corporation Methods and apparatus to control application execution resource with a variable delay
WO2008113986A2 (en) * 2007-03-16 2008-09-25 British Telecommunications Public Limited Company Data transmission scheduler
WO2010103341A1 (en) * 2009-03-10 2010-09-16 Telefonaktiebolaget L M Ericsson (Publ) System and methods for a managed application server restart
EP2614364A1 (de) 2010-09-10 2013-07-17 Hitachi Chemical Co., Ltd. Einzeln adressierbare bandelektrodenarrays und verfahren zu ihrer herstellung
US9015224B2 (en) 2011-10-09 2015-04-21 LabTech, LLC Interactive response of a remote monitoring and management system
US9055091B2 (en) 2011-11-16 2015-06-09 LabTech, LLC Adaptive timing of distributed device response to maximize channel capacity utilization
US9979609B2 (en) * 2012-08-22 2018-05-22 Empire Technology Development Llc Cloud process management
EP4127952A4 (de) * 2020-03-30 2023-12-27 INTEL Corporation Dynamische kompression für multiprozessorplattformen und verbindungen

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5640151A (en) 1990-06-15 1997-06-17 Texas Instruments Incorporated Communication system for communicating with tags
US5758057A (en) 1995-06-21 1998-05-26 Mitsubishi Denki Kabushiki Kaisha Multi-media storage system
US5721823A (en) * 1995-09-29 1998-02-24 Hewlett-Packard Co. Digital layout method suitable for near video on demand system
KR100280559B1 (ko) * 1996-01-08 2001-02-01 포만 제프리 엘 멀티미디어파일배포를위한파일서버
AUPN955096A0 (en) 1996-04-29 1996-05-23 Telefonaktiebolaget Lm Ericsson (Publ) Telecommunications information dissemination system
US5799002A (en) * 1996-07-02 1998-08-25 Microsoft Corporation Adaptive bandwidth throttling for network services
US6085243A (en) 1996-12-13 2000-07-04 3Com Corporation Distributed remote management (dRMON) for networks
US6104333A (en) 1996-12-19 2000-08-15 Micron Technology, Inc. Methods of processing wireless communication, methods of processing radio frequency communication, and related systems
US5987504A (en) * 1996-12-31 1999-11-16 Intel Corporation Method and apparatus for delivering data
KR100542936B1 (ko) 1997-10-06 2006-03-23 마츠시타 덴끼 산교 가부시키가이샤 동일정보를복수의목적지에송신하는정보송신제어장치및정보송신제어장치로부터송신된정보를수신하는정보수신장치
US6216006B1 (en) * 1997-10-31 2001-04-10 Motorola, Inc. Method for an admission control function for a wireless data network
US6289461B1 (en) * 1998-06-09 2001-09-11 Placeware, Inc. Bi-directional process-to-process byte stream protocol
US6175862B1 (en) * 1998-06-17 2001-01-16 International Business Machines Corporation Hot objects with sequenced links in web browsers

Also Published As

Publication number Publication date
DE60038170D1 (de) 2008-04-10
EP1183845B1 (de) 2008-02-27
WO2000074338A3 (en) 2001-07-12
EP1183845A2 (de) 2002-03-06
WO2000074338A2 (en) 2000-12-07
AU5122900A (en) 2000-12-18
US6424993B1 (en) 2002-07-23

Similar Documents

Publication Publication Date Title
DE60038170T2 (de) Verfahren und vorrichtung zur verwaltung der serversbandbreitenutzung
DE69909839T3 (de) Optimierte Lokalisierung von Netzwerkbetriebsmittel
DE69837508T2 (de) Verfahren zum Inhaltswiederauffinden über ein Netzwerk
DE69838262T2 (de) Allgemeine benutzer-authentifizierung für netz-rechner
DE60130011T2 (de) Http-multiplexer/demultiplexer
DE60308700T2 (de) Dynamische fernkonfiguration eines webservers zur bereitstellung von kapazität auf anfrage
DE10196732B4 (de) Verfahren, Speichermedium und System zur Verteilung von Software an prozessorbasierte Systeme
DE69935920T2 (de) Lastausgleich in einer netzwerkumgebung
DE69814900T2 (de) Verfahren und system zur unterstützung verteilter software- entwicklung ohne bewusstsein der verteilten charakteristik der software
DE60015423T2 (de) Verfahren und Vorrichtung zur Objektwiedergabe in einem Netzwerk
EP1930818B1 (de) Verfahren zum Vorabübertragen strukturierter Datenmengen zwischen einer Clienteinrichtung und einer Servereinrichtung
DE69732605T2 (de) Dynamisches Cachespeicher-Vorladen über lose gekoppelte administrative Bereiche
EP2826224B1 (de) Zugriff von clients auf einen serverdienst mittels einer opc-ua
DE602005004334T2 (de) Nms zur Verarbeitung von Multi-Server Ereignissen
EP0959407B1 (de) Verfahren zum Zuteilen von Aufträgen Datenverarbeitungssystem, Client-Datenbearbeitungsknoten und computerlesbares Speichermedium
DE69734432T2 (de) Verfahren und Vorrichtung zur Absendung von Clientverfahrenanrufen in einem Server Rechnersystem
DE60005194T2 (de) Optimiertes zufallzugriffschema für ein verteiltes betriebsmittel
DE10297645B4 (de) Verfahren und Einrichtung zum Lastteilen und zur Datenverteilung in Servern
DE69836814T2 (de) Zulieferausgewählte nachricht als antwort auf anwenderanfrage
DE60132360T2 (de) Verwaltung von netzwerk-verkehr durch anwendung einer hashfunktion
DE60031665T2 (de) System und verfahren zur dateienfernübertragung
WO2005074234A1 (de) System und verfahren zur kommunikation zwischen entfernten objekten und lokalen stellvertretern
DE4320131B4 (de) Globaler Belastungsausgleich in einem Echtzeitdatenabbildungsnetzwerksystem
DE10125409A1 (de) Eine prozessorgesteuerte interaktive Datenanzeigeschnittstelle zur Überwachung ausgegebener Nachrichten in einem dynamischen Kommunikationssystem mit Belastungsausgleich
DE60117140T2 (de) Automatischen verzögerung von kundenantworten auf rundgesendete url adressen

Legal Events

Date Code Title Description
8364 No opposition during term of opposition