-
QUERVERWEIS AUF VERWANDTE ANMELDUNGEN
-
Die vorliegende Anmeldung beansprucht den Vorzug der am 18. Oktober 2010 eingereichten vorläufigen US-Patentanmeldung mit der laufenden Nummer 61/394,025.
-
ERFINDUNGSGEBIET
-
Die vorliegende Erfindung betrifft die gemeinsame Nutzung von Ressourcen zwischen mehreren Ressourcenallokationsautoritäten. Entsprechende Verfahren und Systeme sind dem Fachmann aus der nachveröffentlichten
EP 2 273 368 A2 bekannt.
-
ALLGEMEINER STAND DER TECHNIK
-
Hinsichtlich ihrer Ressourcen begrenzte Systeme können oftmals auf der Basis von Priorisierung, Untertyp oder Dienstgüte oder andere Überlegungen unterteilt werden. Beispielsweise steht vielen Computer- und Kommunikationssystemen eine begrenzte Menge an Bandbreite für das Weiterleiten von Daten zwischen Systemkomponenten zur Verfügung. Um gewünschte Dienstgütehöhen sicherzustellen, kann Systembandbreite bevorzugt bestimmten Benutzern oder Verwendungen zugeteilt werden. Deshalb wurden Systeme entwickelt, bei denen ein bestimmter Anteil verfügbarer Bandbreite für bestimmte Benutzer oder Verwendungen reserviert wird. Diese Anordnung kann jedoch dazu führen, dass verfügbare Bandbreite nicht verwendet wird.
-
Bei bestimmten Systemen und insbesondere bei komplexen Systemen und/oder bei Systemen, die eine hohe Nachfrage erfahren oder ein hohes Volumen an Transaktionen verarbeiten, können viele Server oder andere Autoritäten enthalten sein. Wenn das Gesamtsystem mit Gesamtsystemressourcengrenzen assoziiert ist, muss möglicherweise eine zentrale Autorität eingerichtet werden, um jene Grenzen durchzusetzen. Alternativ können Gesamtsystemressourcenverfügbarkeitsinformationen auf alle die Server in dem System verteilt werden. Diese Lösungen können jedoch zu Systemen führen, die in ihrer Verwaltung komplex sind. Außerdem können solche Lösungen zu der Notwendigkeit führen, Ressourcen zuzuteilen, um mit der Verwaltung des Systems assoziierten Netzwerkverkehr zu berücksichtigen.
-
KURZE DARSTELLUNG DER ERFINDUNG
-
Die offenbarte Erfindung betrifft das Lösen dieser und anderer Probleme und Nachteile des Stands der Technik. Ausführungsformen der offenbarten Erfindung lassen sich auf ein beliebiges Umfeld anwenden, wo eine Ressourcenallokation möglicherweise begrenzt werden könnte, um eine Leistungsverschlechterung zu verhindern. Gemäß Ausführungsformen der offenbarten Erfindung wird ein hinsichtlich seiner Ressourcen begrenztes System mit einer verteilten Ressourcenallokationssteuerung und mit gemeinsam genutzten Ressourcenpools bereitgestellt. Allgemein enthält das System mehrere Ressourcenpools. Mindestens ein Ressourcenpool kann eine maximale Poolgröße aufweisen, die gleich der Gesamtsystemressourcenkapazität ist. Ein in den mehreren Pools enthaltener zweiter Pool kann eine maximale Poolgröße aufweisen, die kleiner ist als die Gesamtressourcenkapazität des Systems. Außerdem enthält das System mehrere Autoritäten oder Server. Ressourcen von den Pools werden unter den enthaltenen Autoritäten zugeteilt.
-
Gemäß Ausführungsformen der offenbarten Erfindung pflegt jeder Server eine Aufzeichnung der bezüglich jedes der mehreren Pools zur Verfügung stehenden Ressourcen. Insbesondere kann eine Aufzeichnung der Gesamtmenge von Ressourcen für einen Pool durch den Server zugeteilt werden, und die tatsächliche Menge an Ressourcen, die von diesem Pool zugeteilt wird, wird von diesem Server gepflegt. Gemäß weiterer Ausführungsformen der offenbarten Erfindung ist ein erster Ressourcenpool in den mehreren Ressourcenpools ein Prioritätsressourcenpool, und ein Server kann sich Ressourcen von dem zweiten, normalen Ressourcenpool zur Allokation zu dem Prioritätsressourcenpool borgen. Gemäß noch weiterer Ausführungsformen der offenbarten Erfindung kann eine Autorität, die eine Anfrage nach Ressourcen an Ressourcen, die gegenwärtig dieser Autorität zugeteilt sind, nicht erfüllen kann, anfragen, dass eine oder mehrere der anderen Autoritäten in dem System sich zusätzliche Ressourcen mit der anfragenden Autorität teilen.
-
Verfahren gemäß Ausführungsformen der vorliegenden Offenbarung beinhalten das Definieren von mehreren Ressourcenpools. Als ein Beispiel können die mehreren Ressourcenpools einen ersten, Prioritätsressourcenpool und einen zweiten, normalen Ressourcenpool enthalten. Das Verfahren beinhaltet das Gestatten des Borgens von Ressourcen von dem normalen Ressourcenpool zur Verwendung durch den Prioritätsressourcenpool. Außerdem unterstützt das Verfahren das gemeinsame Nutzen von Ressourcen zwischen Autoritäten innerhalb des Systems. Die Gesamtsystemressourcen bleiben konstant, und kleinste Ressourcenallokationen zu Prioritätsressourcenpools können durchgesetzt werden, noch während das Borgen und gemeinsame Nutzen von Ressourcen gestattet ist. Zudem ist das Einbeziehen einer zentralen Autorität zum Durchsetzen von Grenzen und Regeln hinsichtlich des Borgens und gemeinsamen Nutzens von Ressourcen nicht erforderlich.
-
Zusätzliche Merkmale und Vorteile von Ausführungsformen der vorliegenden Offenbarung ergeben sich leichter aus der folgenden Beschreibung, insbesondere in Verbindung mit den beiliegenden Zeichnungen.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
1 zeigt Komponenten eines verteilten Systems gemäß Ausführungsformen der vorliegenden Offenbarung;
-
2 zeigt Komponenten eines Servers gemäß Ausführungsformen der vorliegenden Offenbarung;
-
3 zeigt die Inhalte einer Bandbreitenallokationssteuertabelle, die von einem Server gepflegt wird, gemäß Ausführungsformen der vorliegenden Offenbarung;
-
4 ist eine Darstellung der Inhalte einer Anfrage nach gemeinsam genutzter Bandbreite gemäß Ausführungsformen der vorliegenden Offenbarung;
-
5 ist eine Darstellung der Inhalte einer Antwort auf eine Anfrage nach gemeinsam genutzter Bandbreite gemäß Ausführungsformen der vorliegenden Offenbarung;
-
6 ist ein Flussdiagramm, das Aspekte eines Verfahrens zum Erfüllen einer Anfrage nach Bandbreite gemäß Ausführungsformen der vorliegenden Offenbarung zeigt;
-
7 ist ein Flussdiagramm, das Aspekte eines Verfahrens zur Neuallokation von Bandbreite gemäß Ausführungsform der vorliegenden Offenbarung zeigt; und
-
8A–J zeigen beispielhafte Bandbreitenallokationen von Servern in einem System gemäß Ausführungsformen der vorliegenden Offenbarung.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Ein System mit gemeinsam genutzten Ressourcenpools 100 gemäß Ausführungsformen der vorliegenden Offenbarung ist in 1 dargestellt. Wenngleich Abschnitte der Beschreibung die Allokation von Ressourcen erörtern, die Computer- oder Kommunikationsnetzwerke oder Verarbeitungsressourcen umfassen, ist nach Betrachtung der vorliegenden Offenbarung zu verstehen, dass Ausführungsformen der vorliegenden Offenbarung auf beliebige Ressourcen und auf ein beliebiges Umfeld, wo eine Ressourcenallokation möglicherweise begrenzt sein könnte, angewendet werden können. Die Komponenten des Systems 100 können Hardware, Software, Firmware oder dergleichen oder Kombinationen davon sein. Das System 100 enthält mehrere Autoritäten oder Server 104. Jeder Server 104 kann allgemein dahingehend betätigt werden, Ressourcen, hier Bandbreite, als Reaktion auf Ressourcenanfragen zu verwalten. Jeder Server 104 kann entweder direkt oder durch ein Netzwerk 108 mit den anderen Servern 104 in dem System 100 in Kommunikation stehen. Als ein Beispiel kann jeder Server 104 Telefonanrufe oder andere Kommunikationen oder Datentransfers für einen assoziierten Zweig 112 verwalten. Dementsprechend kann ein Server 104 einen Kommunikationsserver oder einen Sitzungsmanager umfassen. Ein Zweig 112 kann eine Menge von mehreren Ressourcenbenutzern enthalten. Beispielsweise kann im Fall eines Bandbreitenbenutzers ein Zweig mehrere Kommunikationseinrichtungen enthalten. Zu Beispielen für Kommunikationseinrichtungen, die in einem Zweig 112 enthalten sein können, zählen Telefone, Videofone, Computer oder andere Kommunikationseinrichtungen. Deshalb kann ein beispielhafter Zweig 112 ein Call-Center oder ein Ort eines Unternehmensnetzwerks sein. In der Regel, aber nicht notwendigerweise, umfassen die Zweige 112 eine Sammlung von IP-(Internet Protocol)Adressen, Telefonnummern und/oder andere Kommunikationssystemkennungen oder -adressen. Zudem kann jeder Zweig 112 einen assoziierten Server 104 umfassen oder direkt oder über ein Zweignetzwerk 104 damit zusammengeschaltet sein. Wenngleich hierin separat darauf Bezug genommen wird, kann ein Zweignetzwerk 114 das Kommunikationsnetzwerk 108 umfassen oder damit zusammengeschaltet sein, das die Server 104 miteinander verbindet.
-
Dementsprechend kann ein Netzwerk 108 oder ein Zweignetzwerk 114 das Internet und/oder ein privates Intranet, ein Fernbereichsnetzwerk und/oder ein Nahbereichsnetzwerk umfassen.
-
Das System 100 verwaltet Kommunikationen oder Anfragen nach Bandbreite von einem oder mehreren Endpunkten oder Knoten, einschließlich unter anderem Kommunikationseinrichtungen, an einem oder mehreren der Zweige 112. Als ein Beispiel kann ein Telefonanruf von einem ersten Zweig 112a angefordert werden. Die Anfrage kann an einen Server A 104a, der der für den Zweig 1 112a verantwortliche Controller ist, über das verbindende Netzwerk A 114a geschickt werden. Bevor gestattet wird, dass der Anruf weitergeht, muss Server A 104a bestimmen, ob das System 100 ausreichend Bandbreite besitzt, um den Anruf zu gestatten. Allgemein ist das System 100 hinsichtlich Ressource, z.B. Bandbreite, begrenzt. Deshalb verwaltet das System 100 gemäß Ausführungsformen der vorliegenden Offenbarung Bandbreitengrenzen. Insbesondere können verschiedene Ressourcen- oder Bandbreitenpools für verschiedene Kommunikationen definiert werden. Bevor eine Kommunikation weitergehen kann, muss zudem ein Server 104 die für die Kommunikation angefragte Bandbreite gewähren. Somit muss jeder Server 104 in der Lage sein zu bestimmen, ob die für eine angefragte Kommunikation angeforderte Bandbreite innerhalb des Systems 100 zur Verfügung steht. Gemäß Ausführungsformen der vorliegenden Offenbarung können Ressourcen des Systems 100 gemäß dem Prioritätsstatus eines Benutzers oder dem Typ einer Kommunikation, der die angefragten Ressourcen verwenden wird, unterteilt werden. Deshalb muss diese Bestimmung auch zwischen Ressourcen unterschiedlicher Typen oder Kategorien zuteilen. Beispielsweise können Ressourcen zwischen Prioritätsbenutzern und Verwendungen und normalen Benutzern und Verwendungen zugeteilt werden. Beispielsweise kann ein Prioritätsbenutzer ein Benutzer sein, der Bandbreite für eine Audiokommunikationssitzung erfordert, während ein normaler oder Nicht-Prioritätsbenutzer ein Benutzer sein kann, der Bandbreite für eine Audio/Video-Kommunikation (im Folgenden einfach als „Video“ bezeichnet) erfordert.
-
Ressourcen können auch gemäß Ressourcentyp kategorisiert und verschiedenen Ressourcenpools zugewiesen werden. Beispielsweise kann das System 100 so konfiguriert sein, dass Systemressourcen von einem ersten Pool zugewiesen werden, der zur Verfügung stehende Ressourcen darstellt, die zu einem ersten Pool gehören, bevor Ressourcen zugewiesen werden, die zu einem zweiten Pool gehören. Als eine Darstellung dafür, wenn die Ressource des Systems 100 elektrischer Strom ist, kann der erste Pool Strom von erneuerbaren Energieressourcen umfassen, während der zweite Pool Strom von einer fossilen Kraftstoffressource umfassen kann. Zudem können zusätzliche Pools (Kategorien) von Ressourcen und/oder Benutzern in dem System 100 enthalten sein. Wenn beispielsweise der zweite Pool eine Allokation von elektrischem Strom von Erdgasquellen ist, kann ein dritter Pool eine Allokation von elektrischem Strom von Kohlequellen sein. In dem Beispiel eines Systems, das Strom liefert, kann eine gewisse Mindestmenge reserviert werden, um in einem Pool enthalten zu sein, der für Prioritätsbenutzer reserviert ist (z.B. Krankenhäuser und andere Noteinrichtungen), während ein Maximum, das kleiner ist als die Gesamtressource des Systems 100, eine Grenze hinsichtlich des Stroms darstellen kann, der gemeinsamen Benutzern zur Verfügung steht.
-
Die Ressourcen oder die Bandbreite des Systems 100 wird unter den Servern 104 gemeinsam benutzt. Beispielsweise wird den Servern 104 eine Bandbreitenmenge des Systems 100 zugeteilt. Zudem kann eine Bandbreitenmenge von jedem von mehreren Bandbreitenpools jedem Server 104 zugeteilt werden. Da jeder Server 104 eine Kommunikation verwaltet oder steuert, wird ein Abschnitt der zugeteilten Bandbreite verwendet. Bei einigen Situationen jedoch erfordert ein Server 104 mehr Bandbreite, um einer Anfrage zu genügen (z.B. um einen Anruf zu verwalten), als diesem Server von dem assoziierten Bandbreitepool zur Verfügung steht. In einer derartigen Situation kann der Server 104 Bandbreite zwischen Pools durch eine Borgeprozedur, wie hierin offenbart, neu zuteilen. Außerdem kann ein Server 104 eine Anfrage an andere Server ausgeben, die Bandbreite des Systems 100 gemeinsam zu nutzen.
-
2 ist ein Blockdiagramm, das Komponenten eines Servers 104 gemäß Ausführungsformen der offenbarten Erfindung zeigt. Allgemein enthält jeder Server 104 einen Prozessor 204, der Programmanweisungen oder Software ausführen kann. Dementsprechend kann der Prozessor 204 einen beliebigen programmierbaren Allzweckprozessor oder -controller zum Ausführen einer Applikationsprogrammierung oder von Anweisungen enthalten. Als ein weiteres Beispiel kann der Prozessor 204 eine speziell konfigurierte applikationsspezifische integrierte Schaltung (ASIC – Application Specific Integrated Circuit) umfassen. Der Prozessor 204 funktioniert allgemein dahingehend, einen Programmierungscode oder Anweisungen auszuführen, die verschiedene, von dem Server 104 durchgeführte Funktionen implementieren. Wie hier an anderer Stelle ausführlicher beschrieben werden wird, kann zu solchen Funktionen die Allokation von Bandbreite von entsprechenden Pools zur Verwendung in Verbindung mit einer Kommunikationssitzung zählen.
-
Ein Server 104 kann zusätzlich einen Speicher 208 zur Verwendung in Verbindung mit der Ausführung einer Programmierung durch den Prozessor 204 und für die vorübergehende oder langfristige Speicherung von Programmanweisungen und/oder Daten enthalten. Als Beispiele kann der Speicher 208 ein RAM, SDRAM oder einen anderen Festkörperspeicher umfassen. Alternativ oder zusätzlich kann eine Datenspeicherung 212 vorgesehen werden. Gemäß Ausführungsformen der vorliegenden Offenbarung kann die Datenspeicherung 212 Programmcode oder Anweisungen enthalten, die verschiedene der von dem Server 104 ausgeführten oder durchgeführten Applikationen oder Funktionen implementieren, und Daten, die in Verbindung mit der Ausführung von Applikationen und/oder der Durchführung von Funktionen verwendet und/oder generiert werden. Wie der Speicher 208 kann die Datenspeicherung 212 eine Festkörperspeichereinrichtung umfassen. Alternativ oder zusätzlich kann die Datenspeicherung 212 ein Festplattenlaufwerk oder einen anderen Direktzugriffsspeicher umfassen.
-
Zu Beispielen für Applikationsprogrammierung oder Anweisungen, die in der Datenspeicherung 212 gespeichert werden können, zählen verschiedene Kommunikationsapplikationen oder Applikationen zum Verwalten von Kommunikationen 216. Zu von einem Server 104 unterstützten oder verwalteten Kommunikationen können beispielsweise und ohne Beschränkung Sprachtelefonie, Videotelefonie, E-Mail, Instant Messaging oder andere Kommunikationen zählen. Als ein weiteres Beispiel kann die Datenspeicherung 212 des Servers 104 eine Sitzungsmanagerapplikation 220 enthalten, um beispielsweise den Support und Dienste für laufende Kommunikationssitzungen bereitzustellen. Gemäß Ausführungsformen der offenbarten Erfindung enthält die Datenspeicherung 212 eines Server 104 eine Applikation 224 zur Allokation von Bandbreite oder anderen Ressourcen. Wie hierin offenbart, arbeitet eine Bandbreitenallokationsapplikation 224 dahingehend, Bandbreite von einem entsprechenden Pool zuzuteilen oder zuzuweisen, um angefragte Kommunikationen zu unterstützen. Außerdem unterstützt die Bandbreitenallokationsapplikation 224 gemäß Ausführungsformen der vorliegenden Offenbarung das Borgen von Bandbreite zwischen Bandbreitenpools und die gemeinsame Nutzung von Bandbreite zwischen Servern 104. Die Datenspeicherung 212 kann auch eine oder mehrere Steuertabellen 228 zum Pflegen von Informationen hinsichtlich eines Status von von dem Server 104 verwalteter Bandbreite enthalten. Wie hierin erörtert, können solche Informationen eine aktuelle Allokation von Bandbreite von mehreren Bandbreitenpools, einen maximalen Bandbreiteallokationswert für mehrere Bandbreitenpools und einen Wert, der ein Ausmaß an geborgter Bandbreite angibt, enthalten.
-
Ein Server 104 kann auch eine oder mehrere Benutzereingabeeinrichtungen 232 enthalten. Zu Beispielen für Benutzereingabeeinrichtungen 232 zählen ein Touchscreendisplay, eine Tastatur, eine Zeigeeinrichtung kombiniert mit einem Displayschirm oder einem anderen Positionscodierer, ein Mikrofon oder eine andere Einrichtung zur hörbaren Eingabe und ein Keypad. Außerdem enthält ein Server 104 allgemein eine oder mehrere Benutzerausgabeeinrichtungen 236. Zu Beispielen für Benutzerausgabeeinrichtungen 236 zählen ein Display, eine Audioausgabeeinrichtung und Indikatorlampen. Benutzereingabeeinrichtungen 232 und Benutzerausgabeeinrichtungen 236 können direkt mit dem Server 104 verbunden sein oder können durch zusammengeschaltete Einrichtungen bereitgestellt werden, um beispielsweise die Fernverwaltung des Servers 104 zu unterstützen. Ein Server 104 enthält allgemein auch eine oder mehrere Kommunikationsnetzwerkschnittstellen 240. Eine Kommunikationsnetzwerkschnittstelle 240 funktioniert allgemein dahingehend, den Server 104 mit anderen Servern 104 und mit Einrichtungen des Zweigs 112 direkt oder über ein oder mehrere Netzwerke 108 und 114 zu verbinden. Zu Beispielen für Kommunikationsnetzwerkschnittstellen 240, die als Teil eines Servers 104 vorgesehen sein können, zählen eine Paketdatennetzwerkschnittstelle wie etwa eine verdrahtete oder drahtlose Ethernet-Schnittstelle, eine Telefonienetzwerkschnittstelle und/oder andere drahtlose oder Drahtleitungsschnittstellen.
-
3 zeigt die Inhalte einer Ressourcenallokationssteuertabelle 228, die von einem Server 104 gepflegt wird, gemäß Ausführungsformen der vorliegenden Offenbarung. Die Steuertabelle 228 enthält allgemein eine Allokationstabelle 304 für Ressourcen (z.B. Bandbreite), die eine Aufzeichnung der aktuellen Ressourcenallokation und Verwendung, die mit dem Server 104 assoziiert ist, auf dem die Steuertabelle 228 gepflegt wird, umfasst. Insbesondere wird eine Allokation von Ressourcen bezüglich verschiedener Ressourcenpools aufgezeichnet. In 3 sind Allokationen bezüglich Ressourcen, die zwei Bandbreitenpools BW1 und BW2 umfassen, gezeigt. Für jeden Bandbreitenpool gibt die X/Y-Notation die Bandbreite von jenem Pool an, der verwendet wird (X), gegenüber der Gesamtbandbreite in diesem Pool, die dem Server zur Verfügung steht (Y). Die Allokationen von Bandbreite zu den Pools (in diesem Beispiel BW1 und BW2) kann zu den Servern 104 in dem System 100 als Teil eines anfänglichen Verwaltungs- oder Bereitstellungsprozesses oder -schritts vorgenommen werden. Wie der Fachmann nach Betrachtung der vorliegenden Offenbarung versteht, kann die Allokation von Bandbreite von den Pools zu individuellen Servern 104 derart vorgenommen werden, dass die Gesamt- oder globale Bandbreite des Systems 100 nicht überstiegen wird. Zudem werden kleinste Bandbreitenallokationen des Systems 100 für einen Prioritätsbandbreitenpool (z.B. BW1) gemäß Ausführungsformen der vorliegenden Offenbarung gepflegt. Die Bandbreitenallokationsaufzeichnung 304 enthält auch einen geborgten (B) Wert zum Verfolgen von normaler Bandbreite (z.B. BW2), die für die Verwendung als Teil des Prioritätspools (z.B. BW1) geborgt wurde.
-
Die Systeme 100 gemäß Ausführungsformen der vorliegenden Erfindung unterstützen auch das gemeinsame Nutzen von Ressourcen zwischen Servern 104. Wenn beispielsweise eine Anfrage nach Bandbreite, die an einen ersten Server 104 gestellt wird, von diesem Server nicht erfüllt werden kann, kann der erste Server 104 von anderen Servern 104 in dem System zusätzliche Bandbreite anfordern. 4 zeigt die Inhalte einer Anfrage 404 nach gemeinsam genutzten Ressourcen, bei diesem Beispiel Bandbreite, gemäß Ausführungsformen der vorliegenden Erfindung. Insbesondere kann die Anfrage 404 eine Identifikation des anfragenden Server 104 in einem ersten Feld 408 enthalten. Außerdem enthält die Anfrage 404 einen Wert, der das Ausmaß an Bandbreite für jeden Bandbreitenpool angibt, das der anfragende Server 104 verwenden kann, und ein Ausmaß an geborgter Bandbreite, das der anfragende Server 104 verwenden kann. Dies kann mit der Notation {BW1, BW2, B} angegeben werden, wobei BW1 ein Zahlenwert ist, der ein Ausmaß an Bandbreite angibt, das für die Allokation zu dem ersten Pool angefordert wird, wobei BW2 ein Zahlenwert ist, der ein Ausmaß an Bandbreite angibt, das für die Allokation zu dem zweiten Pool angefordert wird, und wobei B ein Ausmaß an geborgter Bandbreite ist, das von dem anfragenden Server 104 angewendet werden kann. Diese Werte können null oder von null verschieden sein. Falls beispielsweise der anfragende Server 104 Prioritätsbandbreite erfordert, enthält ein zweites Feld 412 einen von null verschiedenen Wert, um das Ausmaß an Bandbreite von dem ersten Bandbreitenpool anzugeben, das angefordert wird. Falls der anfragende Server 104 normale Bandbreite erfordert, enthält die Anfrage 404 in dem zweiten Feld 412 einen von null verschiedenen Wert und in einem dritten Feld 416 einen von null verschiedenen Wert, der zu einer Allokation von Bandbreite von dem normalen Bandbreitenpool in Beziehung steht. In Verbindung mit einer Anfrage nach Bandbreite von dem zweiten oder normalen Pool kann die Anfrage 404 in einem vierten Feld 420 einen Wert null oder einen von null verschiedenen Wert enthalten, der ein Ausmaß an geborgter Bandbreite angibt, das der anfragende Server 104 beim Erfüllen der Anfrage verwenden könnte. Wie der Fachmann nach Betrachtung der vorliegenden Offenbarung versteht, kann eine Anfrage 404 ein Datenpaket oder eine Nachricht sein, das oder die zwischen Servern 104 innerhalb des Systems 100 über ein verbindendes Netzwerk 106 gesendet wird.
-
5 ist eine Darstellung der Inhalte einer Antwort 504 auf eine Anfrage nach einer gemeinsam genutzten Ressource, in diesem Beispiel Bandbreite, gemäß Ausführungsformen der vorliegenden Erfindung. Die Antwort 504 kann eine Angabe enthalten, dass die Daten eine Antwort auf eine Anfrage nach gemeinsam genutzter Bandbreite darstellen, und kann die Identität des antwortenden Server 104 in einem ersten Feld 508 angeben. Zusätzliche Felder 512, 516 und 520 können Bandbreitenmengen enthalten, die der antwortende Server 104 als Reaktion auf die Anfrage gemeinsam nutzen kann. Beispielsweise kann ein zweites Feld 512 ein Ausmaß an Bandbreite von dem ersten Pool (BW1) angeben, das gemeinsam genutzt wird, ein drittes Feld 516 kann ein Ausmaß an Bandbreite angeben, das von dem zweiten Pool (BW2) gemeinsam genutzt wird, und das vierte Feld 520 kann das Ausmaß an geborgter Bandbreite (B) angeben, das gemeinsam genutzt wird. Dies kann unter Einsatz der Notation {BW1, BW2, B} angegeben werden, wobei BW1 in der Antwort 504 ein Zahlenwert ist, der ein Ausmaß an Bandbreite angibt, das von dem ersten Bandbreitenpool bereitgestellt wird, BW2 ein Zahlenwert ist, der ein Ausmaß an Bandbreite angibt, das von dem zweiten Bandbreitenpool bereitgestellt wird, und B ein Zahlenwert ist, der ein Ausmaß an geborgter Bandbreite angibt, das von dem antwortenden Server 104 bereitgestellt wird. Diese Werte können null oder von null verschieden sein. Gleich der Anfrage 404 kann die Antwort 504 zwischen Servern 104 in dem System 100 als ein Datenpaket oder eine Nachricht kommuniziert werden, das oder die von einem verbindenden Netzwerk 108 geführt wird.
-
6 ist ein Flussdiagramm, das Aspekte eines Verfahrens zum Erfüllen einer Anfrage nach Ressourcen (hier Bandbreite) gemäß Ausführungsformen der vorliegenden Offenbarung darstellt. Anfangs werden bei Schritt 604 Bandbreitenanteile von den Bandbreitenpools des Systems 100 den Servern 104 zugeteilt. Dies kann beinhalten, dass jedem Server 104 ein Abschnitt jedes Bandbreitenpools geliefert wird, der mit dem System 100 assoziiert ist. Zudem können die Bandbreitenpools Prioritäts- und normale Bandbreitenpools enthalten. Gemäß Ausführungsformen der vorliegenden Offenbarung ist ein Prioritätsbandbreitenpool mit einem kleinsten Bandbreitenwert assoziiert. Der kleinste Bandbreitenwert für den Prioritätsbandbreitenpool wird immer gepflegt. Umgekehrt besitzt ein normaler Bandbreitenpool einen größten Bandbreitenwert, der niemals überschritten werden kann. Ausführungsformen des offenbarten Systems gestatten jedoch das Borgen von dem normalen Bandbreitenpool, um Prioritätsbandbreitenerfordernisse zu bedienen. Zudem brauchen die anfänglichen Allokationen von Bandbreite zu den Servern 104 des Systems 100 während des Betriebs des Systems 100 nicht gepflegt zu werden. Insbesondere kann Bandbreite in den verschiedenen Pools, die einem Server 104 an einem beliebigen Zeitpunkt zur Verfügung stehen, von den anfänglichen Allokationen infolge der zwischen Servern 104 gemeinsam genutzten Bandbreite differieren.
-
Bei Schritt 606 wird bei einem Server 104 eine Anfrage nach Bandbreite empfangen. Als ein Beispiel und ohne Beschränkung kann der Server 104 einen Kommunikationsserver umfassen, und die Anfrage nach Bandbreite kann darin bestehen, eine Kommunikation zu unterstützen, bei der eine Einrichtung oder ein Knoten, in dem von dem Server 104 bedienten Zweig 112 enthalten, ein Teilnehmer ist. Als Reaktion auf die Anfrage bestimmt der Server 104 anfänglich, ob die Anfrage nach Bandbreite aus der gegenwärtig auf diesem Server 104 zur Verfügung stehenden Bandbreite erfüllt werden kann (Schritt 608). Falls bestimmt wird, dass der Server 104 die Anfrage nicht selbst erfüllen kann, kann als Nächstes eine Bestimmung dahingehend erfolgen, ob potenziell ein anderer Server zur Verfügung steht (Schritt 612). Falls ein anderer Server 104 potenziell zur Verfügung steht (d.h., der anfragende Server 104 hat noch keine Anfrage an jeden Server 104 in dem System gestellt), wird der nächste zusätzliche Server 104 gewählt und eine Anfrage 304 nach Bandbreite wird an den gewählten Server 104 geschickt (Schritt 616). Eine Bestimmung erfolgt dann dahingehend, ob Bandbreite von diesem nächsten Server zur Verfügung steht (Schritt 620). Falls die angefragte Bandbreite nicht zur Verfügung steht, kann der Prozess zu Schritt 612 zurückkehren und eine Anfrage 304 kann an einen nächsten Server 104 geschickt werden, falls er zur Verfügung steht.
-
Falls bei Schritt 608 bestimmt wurde, dass Bandbreite von dem Server 104 zur Verfügung steht, der für den Zweig 112 verantwortlich ist, von dem die Anfrage kam, oder falls bei Schritt 620 bestimmt wird, dass von einem anderen Server 104 Bandbreite zur Verfügung steht, wird die angeforderte Bandbreite ganz oder teilweise zugeteilt, um die ursprüngliche Anfrage zu bedienen (Schritt 624). Bei Schritt 628 erfolgt eine Bestimmung dahingehend, ob zusätzliche Bandbreite erforderlich ist, um zu gestatten, dass die Kommunikation oder andere Transaktion, die mit der Bandbreitenanfrage assoziiert ist, weitergeht. Falls zusätzliche Bandbreite erforderlich ist, kann der Prozess zu Schritt 608 zurückkehren. Falls zusätzliche Bandbreite nicht erforderlich ist, wird die Anfrage nach Bandbreite, die von dem Zweig 112 durchgeführt wurde, gewährt (Schritt 632), und die Kommunikation oder Transaktion, die die Bandbreite erfordert, kann weitergehen.
-
Falls bei Schritt 608 bestimmt wurde, dass erforderliche Bandbreite nicht von dem Server 104 zur Verfügung steht, der die Anfrage von dem Zweig 112 empfangen hat, und falls auch bei Schritt 612 bestimmt wird, dass keine anderen Server 104 zur Verfügung stehen, um zusätzliche Bandbreite zu liefern, wird die Anfrage von dem Zweig 112 verweigert (Schritt 636). Nach dem Gewähren (Schritt 632) oder Verweigern (Schritt 636) der Anfrage kann der Prozess enden.
-
7 ist ein Flussdiagramm, das Aspekte eines Verfahrens zur Neuallokation einer Ressource wie etwa Bandbreite gemäß Ausführungsformen der vorliegenden Offenbarung zeigt. Anfänglich kann bei Schritt 704 eine Bestimmung durch den Server 104, der die Anfrage empfängt, dahingehend erfolgen, ob die Anfrage für normale oder Prioritätsbandbreite gilt. Das heißt, die Identität des Bandbreitenpools, aus der die Anfrage erfüllt werden sollte, wird bestimmt. Der die Anfrage empfangende Server 104 kann der Server 104 sein, der für den Zweig 112 verantwortlich ist, von dem die Anfrage initiiert wurde. Alternativ kann der Server 104 ein Server 104 sein, der eine Anfrage 304 nach gemeinsam genutzter Bandbreite von einem anderen Server 104 empfangen hat.
-
Falls die Anfrage eine Anfrage nach normaler Bandbreite umfasst, erfolgt eine Bestimmung dahingehend, ob normale Bandbreitenanteile zur Verfügung stehen (Schritt 708). Falls normale Bandbreitenanteile zur Verfügung stehen, werden die angeforderten normalen Anteile dem Benutzer zugeteilt (Schritt 712). Als Nächstes kann eine Bestimmung dahingehend erfolgen, ob zusätzliche Bandbreite erforderlich ist (Schritt 716).
-
Nach dem Bestimmen bei Schritt 716, dass zusätzliche normale Bandbreite erforderlich ist, oder nach dem Bestimmen bei Schritt 708, dass einem Server keine normale Bandbreite zur Verfügung steht, kann eine Bestimmung dahingehend erfolgen, ob zuvor von einem Prioritätsbenutzer geborgte normale Bandbreite nun zur Verfügung steht (Schritt 720). Falls zuvor von einem Prioritätsbenutzer geborgte normale Bandbreite nun zur Verfügung steht, wird die zuvor geborgte normale Bandbreite neu zugeteilt (Schritt 724). Dementsprechend werden die zuvor geborgten normalen Anteile als Teil des normalen Bandbreitenpools wieder zur Verfügung gestellt. Nach der Neuallokation von geborgten Bandbreitenanteilen kann der Prozess der Neuallokation innerhalb des jeweiligen Server 104 enden.
-
Falls bei Schritt 704 bestimmt wurde, dass die Anfrage nach Bandbreite eine Anfrage nach Prioritätsbandbreite ist, erfolgt eine Bestimmung dahingehend, ob Prioritätsbandbreite zur Verfügung steht (Schritt 728). Falls Prioritätsbandbreite zur Verfügung steht, wird die angeforderte Prioritätsbandbreite dem Prioritätsbenutzer oder der Prioritätsverwendung zugeteilt oder zur Verfügung gestellt (Schritt 732). Bei Schritt 736 kann eine Bestimmung dahingehend erfolgen, ob zusätzliche Prioritätsbandbreite erforderlich ist, um die Anfrage zu erfüllen. Falls keine zusätzliche Prioritätsbandbreite erforderlich ist, kann der Prozess enden. Falls bestimmt wird, dass zusätzliche Prioritätsbandbreite erforderlich ist, oder falls bestimmt wird, dass auf dem Server 104 keine Prioritätsbandbreite zur Verfügung steht, kann als Nächstes eine Bestimmung dahingehend erfolgen, ob auf dem Server 104 normale Bandbreite zur Verfügung steht (Schritt 740). Falls keine normale Bandbreite zur Verfügung steht, kann der Prozess enden. Falls normale Bandbreite zur Verfügung steht, wird die angeforderte normale Bandbreite dem Prioritätsbenutzer zugeteilt, und der Zählwert geborgter Bandbreite wird inkrementiert (Schritt 744). Zusätzlich zu dem Inkrementieren des Zählwerts geborgte Anteile wird der Zählwert der Prioritätsbandbreite durch das geborgte Ausmaß inkrementiert, und der Zählwert an normaler Bandbreite wird um das geborgte Ausmaß dekrementiert. Nach dem Bestimmen bei den Schritten 716 oder 736, dass keine zusätzlichen Anteile erforderlich sind, dass normale Bandbreite bei den Schritten 720 oder 740 nicht zur Verfügung steht, oder nach dem Neuzuteilen oder Zuteilen von Anteilen bei den Schritten 724 oder 744 kann der Prozess enden.
-
Die folgenden Beispiele werden nur zu Zwecken der Darstellung vorgelegt und sollen den Schutzbereich der Erfindung nicht beschränken.
-
BEISPIEL 1
-
Bei diesem Beispiel wird auf eine Basiskonfiguration oder einen Ausgangspunkt für eine Ressource, umfassend Bandbreitenallokationen, wie in 8A dargestellt, Bezug genommen. Insbesondere zeigt diese Figur eine anfängliche globale Bandbreitenallokation für einen ersten und zweiten Bandbreitenpool, mit BW1 zw. BW2 bezeichnet. Zudem gibt der Zähler des Werts hinter den Bandbreitenpools ein Ausmaß der verwendeten Allokation an, während der Nenner jenes Werts die Gesamtbandbreite angibt (d.h. die globale Bandbreite oder Bandbreite des Systems 100), die dem Pool zugeteilt ist. Außerdem wird eine Anzeige der Kosten von verschiedenen Transaktionen (z.B. Anrufen) angegeben. Bei diesem Beispiel betragen die Kosten BW1C für eine Transaktion, die Bandbreite von dem ersten Pool erfordert, 1. Dementsprechend ist eine eine Bandbreite von dem ersten Pool erfordernde Transaktion mit Kosten von einer Einheit an Bandbreite von diesem Pool assoziiert. Als ein Beispiel und ohne Beschränkung kann der erste Bandbreitenpool BW1 einen Prioritätspool umfassen, der für Audioanrufe reserviert ist. Unter Weiterführung dieses Beispiels weist der zweite Pool BW2 bei diesem Beispiel Kosten von zwei Einheiten an Bandbreite auf und kann bei diesem Beispiel einem Videoanruf entsprechen. Die Tabellen 808a, 808b und 808c zeigen die zu den Servern 104 in dem System 100 gemachten Anfangsbandbreitenallokationen. Insbesondere ist ein Wert für das Ausmaß an Bandbreite angegeben, das von jedem der beiden Bandbreitenpools durch die individuellen Server 104 verwendet wird. Außerdem ist die insgesamt verfügbare Bandbreite bezüglich jedes der Bandbreitenpools angegeben. Insbesondere wird die Gesamtsystembandbreite nicht überschritten (die gleich der Anfangsallokation von Prioritätsbandbreite, bzw. bei diesem Beispiel fünf, plus der Anfangsallokation an normaler Bandbreite, bei diesem Beispiel vier, für insgesamt neun, ist). Außerdem enthält jede Tabelle 808 eine Anzeige des Ausmaßes an geborgter Bandbreite (B).
-
In 8B ist ein beispielhafter Arbeitsstatus des Systems 100 gezeigt. Insbesondere wird die ganze Bandbreite des Systems 100 voll genutzt. Außerdem ist es zu einem Borgen von Bandbreite von dem zweiten Bandbreitenpool BW2 zur Verwendung als Teil des ersten Bandbreitenpools BW1 gekommen.
-
Beginnend mit der Konfiguration in 8B hat bei diesem ersten Beispiel der Server 2 104b ein Audioanrufende, was dazu führt, dass eine Einheit an Audiobandbreite (BW1) verfügbar wird. Server 1 104a muss nun einen Audioanruf machen. Als Reaktion darauf, dass der Server 1 104a bestimmt, dass ihm keine Audiobandbreite zur Verfügung steht, versucht er, seine Allokation an normaler oder Videobandbreite (BW2) zu borgen, doch steht ihm auch dort nichts zur Verfügung. Dementsprechend sendet Server 1 104a eine Anfrage 404 an den Server 2 104b mit Werten von {1, 0, 0} (d.h., er fordert eine Einheit an Prioritätsbandbreite und null Einheiten an normaler oder geborgter Bandbreite an). Der Server 2 104b sendet eine Antwort 504 mit den Werten {1, 0, 0}, was anzeigt, dass er eine Einheit an Bandbreite von dem Prioritätspool BW1 an den Server 1 104a gibt. Der Server 1 104a verwendet dann die gemeinsam genutzte Bandbreite, um den Anruf zuzulassen. Die Allokation von Bandbreite über das System hinweg nach dem Borgen und der Nutzung, wie in Beispiel 1 beschrieben, ist in 8C dargestellt.
-
Unter Weiterführung dieses Beispiels endet ein Videoanruf auf dem Server 3 104c. Außerdem muss Server 1 104a einen weiteren Audioanruf machen. Dem Server 1 104a steht keine A- oder V-Bandbreite zur Verfügung. Dementsprechend sendet er eine Anfrage 404 an den Server 2 104b mit den Werten {1, 0, 0}. Dem Server 2 104b steht jedoch keine Audiobandbreite zur Verfügung. Außerdem besitzt der Server 2 104b keine normale Bandbreite, um von dieser zu borgen. Dementsprechend sendet der Server 2 104b eine Antwort 504 mit den Werten {0, 0, 0}. Der Server 1 104a sendet dann eine Anfrage 404 mit den Werten {1, 0, 0} an den Server 3 104c. Dem Server 3 104c steht keine Audiobandbreite zur Verfügung, doch kann er aus seiner Videobandbreitenallokation borgen. Dementsprechend borgt er eine aus dem Videopool BW2, wobei dabei der geborgte Wert B inkrementiert wird. Dann reagiert er auf den Server 1 104a mit einer Antwort 504, die die Werte {1, 0, 0} enthält. Der Server 1 104a verwendet diese neue Bandbreite von dem ersten Bandbreitenpool BW1, um den Anruf herzustellen. Das Endergebnis ist in 8D gezeigt.
-
BEISPIEL 2
-
Beginnend mit der in 8B gezeigten Konfiguration veranlassen der Server 1 104a und der Server 3 104c, dass ihre Audioanrufe enden, sodass ihnen jeweils eine Einheit an Audiobandbreite (BW1) zur Verfügung steht. Server 1 104a muss nun einen Videoanruf tätigen. Der Server 1 104a bestimmt, dass ihm keine Videobandbreite (BW2) zur Verfügung steht. Er versucht, von seiner Prioritätsbandbreite BW1 zu entborgen, doch sein geborgter Wert beträgt null. Dementsprechend sendet er eine Anfrage 404 mit den Werten {1, 2, 2} an den Server 2 104b. Hier wird nur eine Einheit an Bandbreite von dem ersten Bandbreitenpool BW1 angefordert, weil der Server 1 104a nur bis zu einer Einheit mehr an Bandbreite von dem Prioritätspool verwenden kann. Der Server 2 104b sendet eine Antwort 504 mit den Werten {0, 0, 2}, was anzeigt, dass er zwei geborgte Einheiten an den Server 1 104a gibt. Der Server 1 104a evaluiert von neuem seine aktuellen Allokationen, und weil ihm eine Einheit an BW1 zur Verfügung steht, keine Bandbreite von BW2 zur Verfügung steht und zwei geborgte Einheiten zur Verfügung stehen, wandelt Server 1 104a die eine Einheit von BW1 zu BW2 um, wobei die gemeinsam benutzte geborgte Bandbreite verwendet wird, was die in 8E gezeigte Allokation ergibt.
-
Server 1 104a erfordert immer noch eine zusätzliche Einheit an Bandbreite, um den Videoanruf herzustellen. Dementsprechend sendet er eine Anfrage 404 mit den Werten {1, 1, 0} an den Server 3 104c. Dies ist der Fall, weil eine Einheit an Bandbreite von dem normalen Pool BW2 erforderlich ist, weil Server 1 104a eine Einheit an Prioritätsbandbreite verwenden könnte, aber keine geborgte Bandbreite verwenden kann, um diese Anfrage zu erfüllen. Der Server 3 104c sendet eine Antwort 504 mit den Werten {1, 0, 0}. Der Server 1 104a evaluiert wieder seine Bandbreitenallokationen und wandelt eine Einheit an Bandbreite in dem Prioritätspool BW1 in eine Einheit an normaler Bandbreite BW2 um, indem er die geborgte Bandbreite anwendet. Der Server 1 104a kann nun seinen Videoanruf herstellen. Das Ergebnis nach dem Anwenden der Bandbreite auf den Videoanruf ist in 8F gezeigt.
-
BEISPIEL 3
-
Wieder bei der in 8B gezeigten Konfiguration beginnend, veranlasst der Server 1 104a, dass sein Audioanruf endet, und Server 3 104c veranlasst, dass alle seine Anrufe enden. Der Server 2 104b muss einen Videoanruf tätigen. Der Server 2 104b bestimmt, dass ihm keine Videobandbreite BW2 zur Verfügung steht und er lokale Audiobandbreite BW1 nicht entborgen kann. Er sendet eine Anfrage 404 mit den Werten {2, 2, 0} an den Server 1 104a, weil der Server 2 104b keine geborgte Bandbreite verwenden kann. Der Server 1 104a sendet eine Antwort 504 mit den Werten {1, 0, 0}, die eine Einheit an Audiobandbreite BW1 anbietet. Der Server 2 104b evaluiert sich selbst wieder, wobei eine Einheit an Prioritätsbandbreite BW1 durch Dekrementieren von B in normale Bandbreite BW2 umgewandelt wird. Die Bandbreitenallokation des Systems 100, die sich nach dieser Umwandlung durch den Server 2 104b ergeben, ist in 8G gezeigt.
-
Der Server 2 104b erfordert immer noch eine zusätzliche Einheit an normaler Bandbreite BW2, um den Videoanruf herzustellen. Dementsprechend sendet er eine Anfrage 404 mit den Werten {1, 1, 0} an den Server 3 104c. Diese Anfrage 404 wird gesendet, weil der Server 2 104b eine Bandbreite an normaler Bandbreite BW2 benötigt, er könnte eine Einheit an Prioritätsbandbreite BW1 verwenden, kann aber keine geborgte Bandbreite verwenden. Der Server 3 104c sendet eine Bandbreite {0, 1, 0}, weil, wenn sowohl die Prioritätsbandbreite BW1 als auch die normale Bandbreite BW2 angefordert wird, die normale Bandbreite BW2 bevorzugt wird. Der Server 2 104b evaluiert wieder seine Bandbreitenallokation und kann nun den Videoanruf herstellen. Die Bandbreitenallokation des Systems 100, die sich nach dem Herstellen (d.h. Bedienen) des Videoanrufs durch den Server 2 104b ergibt, ist in 8H gezeigt.
-
BEISPIEL 4
-
Wieder bei der in 8B dargestellten Konfiguration beginnend, veranlassen der Server 1 104a und der Server 2 104b, dass Audioanrufe enden. Der Server 3 104c muss nun einen Videoanruf tätigen. Der Server 3 104c bestimmt, dass ihm keine Videobandbreite zur Verfügung steht und er lokale Audiobandbreite nicht entborgen kann. Er sendet eine Anfrage 404 nach Bandbreite mit den Werten {2, 2, 2} an den Server 1 104a. Der Server 1 104a sendet eine Antwort 504 mit den Werten {1, 0, 0}, die eine Einheit an Prioritäts- oder Audiobandbreite BW1 anbietet. Der Server 3 104c evaluiert wieder seine Bandbreitenallokation, kann aber an seiner verfügbaren normalen oder Videobandbreite BW2 keinerlei Veränderungen vornehmen. Die Bandbreitenallokation des Systems 100 bis zu diesem Punkt ist in 8I gezeigt.
-
Als Nächstes sendet der Server 3 104c eine Anfrage 404 mit den Werten {1, 2, 2} an den Server 2 104b, und zwar weil der Server 3 104c zwei Einheiten an Video- oder normaler Bandbreite BW2 benötigt, nur eine Einheit an Prioritäts- oder Audiobandbreite BW1 verwenden kann und zwei geborgte Einheiten an Bandbreite verwenden kann. Der Server 2 104b antwortet, indem er zuerst intern Video- oder normale Bandbreite von der Audio- oder Prioritätsbandbreite BW1 entborgt und den geborgten Wert dekrementiert. Der Server 2 104b gibt dann eine Antwort 504 mit den Werten {0, 1, 1} zurück, wobei sowohl der neu erzeugte Anteil an normaler oder Videobandbreite BW2 und sein anderer geborgter Bandbreitenanteil aufgegeben werden. Der Server 3 104c evaluiert erneut wieder seine Bandbreitenallokation. Er kann nun einen Prioritäts- oder Audiobandbreitenanteil BW1 durch Dekrementieren des geborgten Werts in einen normalen oder Videoanteil BW2 umwandeln. Dadurch kann der Server 3 104c den Videoanruf herstellen. Die resultierende Bandbreitenallokation des Systems 100 mit dem neu hergestellten Anruf, der stattfindet, ist in 8J gezeigt.
-
In allen vorausgegangenen Beispielen ist zu verstehen, dass die gesamte Bandbreite des Systems 100, wie sie sich aus der Tabelle der globalen Bandbreitenallokation 804 ergibt, konstant bleibt. Insbesondere übersteigt die insgesamt verfügbare Bandbreite niemals neun. Außerdem wird die globale Mindestallokation von Prioritätsbandbreite BW1 von drei immer aufrechterhalten oder überschritten, und der globale Höchstwert an normaler Bandbreite BW2 von sechs wird niemals überschritten. Dementsprechend gestatten Ausführungsformen der offenbarten Erfindung die Pflege von Bandbreitenparametern des Systems 100 und die gemeinsame Nutzung von Bandbreite zwischen Servern 104, ohne dass eine zentrale Autorität für die Implementierung und Verwaltung von flexiblen Bandbreitenallokationen bezüglich individueller Server erforderlich wäre.
-
Wie zuvor angemerkt, können Ausführungsformen der vorliegenden Offenbarung in Verbindung mit einem beliebigen, hinsichtlich seiner Ressourcen begrenzten System angewendet werden. Insbesondere können bei jedem System, das Ressourcen nutzt, wobei jene Ressourcen oder Benutzer jener Ressourcen in zwei oder mehr Kategorien unterteilt werden können, Ausführungsformen der vorliegenden Offenbarung angewendet werden, um die Ressourcen zuzuteilen. Insbesondere gestatten Ausführungsformen der vorliegenden Offenbarung eine derartige Allokation von Ressourcen in Systemen mit mehreren Autoritäten, während sie das Durchsetzen von Gesamtressourcenallokationsgrenzen für das System gestatten. Insbesondere werden das Borgen zwischen Ressourcen und/oder Benutzerkategorien und das gemeinsame Nutzen zugeteilter Ressourcen zwischen Autoritäten unterstützt.
-
Die vorausgegangene Erörterung der Erfindung wurde zu Zwecken der Darstellung und Beschreibung vorgelegt. Die Beschreibung soll zudem die Erfindung nicht auf die hierin offenbarte Form beschränken. Folglich liegen Variationen und Modifikationen, die den obigen Lehren entsprechen, innerhalb des Geschicks oder des Wissens der relevanten Technik, innerhalb des Schutzbereichs der vorliegenden Erfindung. Die hier oben beschriebenen Ausführungsformen sollen weiterhin die beste Weise erläutern, die gegenwärtig bekannt ist, um die Erfindung zu praktizieren, und es anderen Fachleuten ermöglichen, die Erfindung in solchen oder in anderen Ausführungsformen zu nutzen und mit verschiedenen Modifikationen, die durch die jeweilige Anwendung oder Verwendung der Erfindung gefordert wird. Die beigefügten Ansprüche sollen so ausgelegt werden, dass sie alternative Ausführungsformen in dem von dem Stand der Technik gestatteten Ausmaß enthalten.