DE102011114454B4 - Ressourchenallokation unter verwendung gemeinsam genutzter ressourcenpools - Google Patents

Ressourchenallokation unter verwendung gemeinsam genutzter ressourcenpools Download PDF

Info

Publication number
DE102011114454B4
DE102011114454B4 DE102011114454.8A DE102011114454A DE102011114454B4 DE 102011114454 B4 DE102011114454 B4 DE 102011114454B4 DE 102011114454 A DE102011114454 A DE 102011114454A DE 102011114454 B4 DE102011114454 B4 DE 102011114454B4
Authority
DE
Germany
Prior art keywords
server
resource
resources
bandwidth
pool
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.)
Active
Application number
DE102011114454.8A
Other languages
English (en)
Other versions
DE102011114454A1 (de
Inventor
Mouli Chandra Ravipati
Owen Kenneth Michie
James Douglas Free
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.)
Avaya Inc
Original Assignee
Avaya Inc
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
Priority claimed from US13/079,593 external-priority patent/US8782240B2/en
Application filed by Avaya Inc filed Critical Avaya Inc
Publication of DE102011114454A1 publication Critical patent/DE102011114454A1/de
Application granted granted Critical
Publication of DE102011114454B4 publication Critical patent/DE102011114454B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • 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/745Reaction in network
    • 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/78Architectures of resource allocation
    • H04L47/783Distributed allocation of resources, e.g. bandwidth brokers
    • H04L47/787Bandwidth trade among domains
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/02Traffic management, e.g. flow control or congestion control
    • H04W28/08Load balancing or load distribution

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

Verfahren zum Zuteilen von Ressourcen, das Folgendes umfasst: Definieren von mehreren Ressourcenpools, wobei ein erster Ressourcenpool in den mehreren Ressourcenpools ein Prioritätsressourcenpool ist, wobei der Prioritätsressourcenpool eine erste größte Poolgröße aufweist, wobei ein zweiter Ressourcenpool bei den mehreren Ressourcenpools ein normaler Ressourcenpool ist, wobei der normale Ressourcenpool eine zweite größte Poolgröße aufweist und wobei die erste größte Poolgröße größer ist als die zweite größte Poolgröße; Zuordnen (604) einer anfänglichen Ressourcenallokation von den mehreren Ressourcenpools zu jedem von mehreren Servern (124a, 124b, 124, c); Empfangen (606) einer Anfrage nach Ressourcen bei einem in den mehreren Servern (124a, 124b, 124, c) enthaltenen ersten Server (124a); Identifizieren eines ersten der mit der Anfrage assoziierten ersten und zweiten Ressourcenpools; als Reaktion auf das Bestimmen (608), dass dem ersten Server (124a) keine momentan zugeteilten Ressourcen von dem mit der verfügbaren Anfrage assoziierten Ressourcenpool zur Verfügung stehen, Durchführen mindestens eines der Folgenden: Neuallokation (624) mindestens einiger der angefragten Ressourcen von einem zweiten der ersten oder zweiten Ressourcenpools zum ersten der ersten und zweiten Ressourcenpools; Anfordern (616) mindestens einiger der Ressourcen von einem zweiten, in den mehreren Servern (124a, 124b, 124, c) enthaltenen Server (124b); als Reaktion auf das Bestimmen (608), dass die Anfrage nicht aus dem ersten Server (124a) zugeteilten Ressourcen erfüllt werden kann: Senden (616) einer ersten Anfrage nach gemeinsam genutzten Ressourcen an einen in den mehreren Servern (124a, 124b, 124, c) enthaltenen dritten Server (124c), wobei die Anfrage nach gemeinsam genutzten Ressourcen Folgendes beinhaltet: ...

Description

  • 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.

Claims (7)

  1. Verfahren zum Zuteilen von Ressourcen, das Folgendes umfasst: Definieren von mehreren Ressourcenpools, wobei ein erster Ressourcenpool in den mehreren Ressourcenpools ein Prioritätsressourcenpool ist, wobei der Prioritätsressourcenpool eine erste größte Poolgröße aufweist, wobei ein zweiter Ressourcenpool bei den mehreren Ressourcenpools ein normaler Ressourcenpool ist, wobei der normale Ressourcenpool eine zweite größte Poolgröße aufweist und wobei die erste größte Poolgröße größer ist als die zweite größte Poolgröße; Zuordnen (604) einer anfänglichen Ressourcenallokation von den mehreren Ressourcenpools zu jedem von mehreren Servern (124a, 124b, 124, c); Empfangen (606) einer Anfrage nach Ressourcen bei einem in den mehreren Servern (124a, 124b, 124, c) enthaltenen ersten Server (124a); Identifizieren eines ersten der mit der Anfrage assoziierten ersten und zweiten Ressourcenpools; als Reaktion auf das Bestimmen (608), dass dem ersten Server (124a) keine momentan zugeteilten Ressourcen von dem mit der verfügbaren Anfrage assoziierten Ressourcenpool zur Verfügung stehen, Durchführen mindestens eines der Folgenden: Neuallokation (624) mindestens einiger der angefragten Ressourcen von einem zweiten der ersten oder zweiten Ressourcenpools zum ersten der ersten und zweiten Ressourcenpools; Anfordern (616) mindestens einiger der Ressourcen von einem zweiten, in den mehreren Servern (124a, 124b, 124, c) enthaltenen Server (124b); als Reaktion auf das Bestimmen (608), dass die Anfrage nicht aus dem ersten Server (124a) zugeteilten Ressourcen erfüllt werden kann: Senden (616) einer ersten Anfrage nach gemeinsam genutzten Ressourcen an einen in den mehreren Servern (124a, 124b, 124, c) enthaltenen dritten Server (124c), wobei die Anfrage nach gemeinsam genutzten Ressourcen Folgendes beinhaltet: ein größtes Ausmaß an Prioritätsressourcen, das der erste Server (124a) verwenden könnte; ein größtes Ausmaß an normalen Ressourcen, das der erste Server (124a) verwenden könnte; ein größtes Ausmaß an geborgten Ressourcen, das der erste Server (124a) verwenden könnte.
  2. Verfahren nach Anspruch 1, wobei als Reaktion auf das Bestimmen (616), dass dem ersten Server (124a) keine Ressourcen zur Verfügung stehen, die von dem Ressourcenpool zugeteilt werden, der mit der Anfrage assoziiert ist, Folgendes beinhaltet: Neuallokation (624) der Ressourcen von einem anderen Ressourcenpool, wobei die Neuallokation der Ressourcen von einem anderen Ressourcenpool Folgendes beinhaltet: Bestimmen, dass der mit der Anfrage assoziierte Ressourcenpool ein Prioritätsressourcenpool ist; Bestimmen, dass Ressourcen aus der Allokation, die von dem normalen Ressourcenpool zu dem ersten Server (124a) vorgenommen wurden, zur Verfügung stehen; Inkrementieren eines mit dem ersten Server (124a) assoziierten Prioritätsressourcenzählwerts; Inkrementieren eines mit dem ersten Server (124a) assoziierten geborgten Prioritätsressourcenzählwerts; und Dekrementieren eines mit dem ersten Server (124a) assoziierten normalen Ressourcenzählwerts.
  3. Verfahren nach Anspruch 2, wobei die Neuallokation (624) der angeforderten Ressource von einem anderen Ressourcenpool Folgendes beinhaltet: Bestimmen, dass der mit der Anfrage assoziierte Ressourcenpool der normale Ressourcenpool ist; Bestimmen, dass ein mit dem ersten Server (124a) assoziierter geborgter Ressourcenzählwert größer als null ist; Bestimmen, dass ein verfügbarer Prioritätsressourcenzählwert für den ersten Server (124a) größer als null ist; Dekrementieren des geborgten Ressourcenzählwerts für den ersten Server (124a); Dekrementieren eines verfügbaren Prioritätsressourcenzählwerts für den ersten Server (124a); und Inkrementieren eines Normalressourcengesamtzählwerts für den ersten Server (124a), wobei Ressourcen von der Prioritätsressourcenallokation für den ersten Server (124a) zu der normalen Ressourcenallokation für den ersten Server (124a) neu zugeteilt werden.
  4. Verfahren nach Anspruch 1, das weiterhin Folgendes umfasst: als Reaktion auf das Empfangen der ersten Anfrage nach gemeinsam genutzten Ressourcen gibt der dritte Server (124c) unbenutzte Ressourcen an den ersten Server (124a) frei, wobei Ressourcen zwischen dem ersten und dritten Server (124a, 124c) neu zugeteilt werden, wobei der Prioritätsressourcenpool eine kleinste Poolgröße aufweist, wobei eine Summe aus der kleinsten Poolgröße des Prioritätsressourcenpools und der größten Poolgröße des normalen Ressourcenpools gleich Gesamtsystemressourcen ist, und wobei die Neuallokation von Ressourcen zwischen dem ersten und dritten Server (124a, 124c) die Gesamtsystemressourcen nicht ändert.
  5. Verfahren nach Anspruch 4, wobei, dass der dritte Server (124c) unbenutzte Ressourcen neu an den ersten Server (124a) zuteilt, beinhaltet, dass der dritte Server (124c): ein Ausmaß an angefragten normalen Ressourcen bestimmt, das dem ersten Server (124a) neu zugeteilt werden kann; ein Ausmaß an angefragten geborgten Ressourcen bestimmt, das dem ersten Server (124a) neu zugeteilt werden kann; Bestimmen eines Ausmaßes an angefragten Prioritätsressourcen, das dem ersten Server (124a) neu zugeteilt werden kann.
  6. Verfahren nach Anspruch 5, das weiterhin Folgendes umfasst: als Reaktion darauf, dass die empfangenen zugeteilten Ressourcen nicht ausreichen, um die Anfrage nach Ressourcen, die an den ersten Server (124a) gestellt wird, zu erfüllen, der erste Server (124a) eine zweite Anfrage nach gemeinsam genutzten Ressourcen an einen vierten Server sendet.
  7. System zum Verwalten von Ressourcen, das Folgendes umfasst: mindestens ein erstes Netzwerk (114); zwei oder mehr Zweige; eine Mehrzahl von Servern (124a, 124b, 124c), wobei jeder Server (124a, 124b, 124c) mit einem der Zweige assoziiert ist und wobei die Server (124a, 124b, 124c) miteinander in Kommunikation stehen und an das erste Netzwerk (114) angeschlossen sind, wobei jeder Server (124a, 124b, 124c) Folgendes enthält: Datenspeicherung, die Folgendes beinhaltet: eine Steuertabelle, wobei die Steuertabelle mehrere Ressourcenpools definiert, wobei ein erster Ressourcenpool in den mehreren Ressourcenpools ein Prioritätsressourcenpool ist, wobei der Prioritätsressourcenpool eine erste größte Poolgröße aufweist, wobei ein zweiter Ressourcenpool bei den mehreren Ressourcenpools ein normaler Ressourcenpool ist, wobei der normale Ressourcenpool eine zweite größte Poolgröße aufweist und wobei die erste größte Poolgröße größer ist als die zweite größte Poolgröße; eine Ressourcenapplikationsanwendung, wobei die Ressourcenapplikationsanwendung eine anfängliche Ressourcenallokation von den mehreren Ressourcenpools zu jedem von mehreren Servern (124a, 124b, 124c) zuordnet (604), eine Anfrage nach Ressourcen bei einem in den mehreren Servern (124a, 124b, 124c) enthaltenen ersten Server (124a) empfängt (606), einen ersten der mit der Anfrage assoziierten ersten und zweiten Ressourcenpools identifiziert, und als Reaktion auf das Bestimmen (608), dass dem ersten Server (124a) keine momentan zugeteilten Ressourcen von dem mit der verfügbaren Anfrage assoziierten Ressourcenpool zur Verfügung stehen, mindestens eines der Folgenden durchführt: Neuallokation (624) mindestens einiger der angefragten Ressourcen von einem zweiten der ersten oder zweiten Ressourcenpools zum ersten der ersten und zweiten Ressourcenpools; Anfordern (616) mindestens einiger der Ressourcen von einem zweiten, in den mehreren Servern (124a, 124b, 124c) enthaltenen Server (124b); und eine Ressourcenapplikationsanwendung im ersten Server (124a) der Mehrzahl von Servern (124a, 124b, 124c), die, als Reaktion auf das Bestimmen, dass die Anfrage nicht aus dem ersten Server (124a) zugeteilten Ressourcen erfüllt werden kann, eine erste Anfrage nach gemeinsam genutzten Ressourcen an einen in den mehreren Servern (124a, 124b, 124c) enthaltenen dritten Server (124c) sendet (616), wobei die Anfrage nach gemeinsam genutzten Ressourcen Folgendes beinhaltet: ein größtes Ausmaß an Prioritätsressourcen, das der erste Server (124a) verwenden könnte; ein größtes Ausmaß an normalen Ressourcen, das der erste Server (124a) verwenden könnte; ein größtes Ausmaß an geborgten Ressourcen, das der erste Server (124a) verwenden könnte.
DE102011114454.8A 2010-10-18 2011-09-28 Ressourchenallokation unter verwendung gemeinsam genutzter ressourcenpools Active DE102011114454B4 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US39402510P 2010-10-18 2010-10-18
US61/394,025 2010-10-18
US13/079,593 US8782240B2 (en) 2010-10-18 2011-04-04 Resource allocation using shared resource pools
US13/079,593 2011-04-04

Publications (2)

Publication Number Publication Date
DE102011114454A1 DE102011114454A1 (de) 2012-04-19
DE102011114454B4 true DE102011114454B4 (de) 2017-03-23

Family

ID=44994213

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102011114454.8A Active DE102011114454B4 (de) 2010-10-18 2011-09-28 Ressourchenallokation unter verwendung gemeinsam genutzter ressourcenpools

Country Status (2)

Country Link
DE (1) DE102011114454B4 (de)
GB (1) GB2484785B (de)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2273368A2 (de) * 2009-06-22 2011-01-12 Citrix Systems, Inc. Systeme und Verfahren zur Handhabung von Grenzparametern für Mehrkernsysteme

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4679191A (en) * 1983-05-04 1987-07-07 Cxc Corporation Variable bandwidth switching system
US6460082B1 (en) * 1999-06-17 2002-10-01 International Business Machines Corporation Management of service-oriented resources across heterogeneous media servers using homogenous service units and service signatures to configure the media servers
US20060195578A1 (en) * 2005-02-28 2006-08-31 Fujitsu Limited Resource allocation method for network area and allocation program therefor, and network system
EP2037634A1 (de) * 2007-09-11 2009-03-18 Deutsche Thomson OHG Verfahren für die Verwaltung von Netzwerkressourcen und Netzwerkmanagementvorrichtung
CN102037709B (zh) * 2008-05-21 2015-08-12 艾利森电话股份有限公司 刀片集群交换中心服务器中的资源池化
US8463908B2 (en) * 2010-03-16 2013-06-11 Alcatel Lucent Method and apparatus for hierarchical management of system resources

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2273368A2 (de) * 2009-06-22 2011-01-12 Citrix Systems, Inc. Systeme und Verfahren zur Handhabung von Grenzparametern für Mehrkernsysteme

Also Published As

Publication number Publication date
DE102011114454A1 (de) 2012-04-19
GB2484785A (en) 2012-04-25
GB201116830D0 (en) 2011-11-09
GB2484785B (en) 2018-10-10

Similar Documents

Publication Publication Date Title
DE602004010676T2 (de) Verteilte mcu
US8782240B2 (en) Resource allocation using shared resource pools
DE112018003482B4 (de) Serveranfrageverwaltung
DE69923774T2 (de) Verfahren und gerät zum bereitstellen von diensten in einem kommunikationsnetzwerk
DE69728299T2 (de) System und Verfahren zur Herstellung eines Echtzeit-Agentenpools zwischen Rechnersystemen
DE60013477T2 (de) Verfahren zur steurung von mehreren mehrpunktsteuerungseinheiten als eine mehrpunktsteuerungseinheit
DE602004005632T2 (de) Reservierung von entfernten Ressourcen und automatische Übertragung zu diesen Ressourcen von persönlichen Telefoneinstellungen mittels einer Softwareanwendung
DE10247164A1 (de) Verfahren und Vorrichtung für eine Netzwerkbandbreitenoptimierung
DE102006003067A1 (de) Verfahren und System zur dynamischen Ressourcenzuweisung
DE60210133T2 (de) Global eindeutige identifikation von benutzergruppen in einem kommunikationssystem
DE602006000347T2 (de) Verfahren zum Herstellen einer Kommunikationssitzung und Kommunikationsnetzwerk
DE102014213304A1 (de) Verfahren und Vorrichtungen zum Überwachen bzw. Einstellen einer Dienstgüte von einer Datenübertragung über eine Datenverbindung in einem Funknetzwerk
EP1722534A1 (de) Eigenschaften-basierte Zuweisung von Ressourcen zu Sicherheitsdomänen
DE102011017299A1 (de) Phasenbasierte Priorisierung von IMS-Signalisierungsnachrichten für eine Überlastdrosselung
DE102011114454B4 (de) Ressourchenallokation unter verwendung gemeinsam genutzter ressourcenpools
DE102004016113A1 (de) Verfahren und System zur Telefonübertragung
DE112004001490B4 (de) Verfahren zur integrierten Verwaltung und Bereitstellung von Diensten in Kommunikationsnetzwerken
DE60021994T2 (de) Verfahren und System zur adaptiven Zuweisung von Anrufaufgaben
EP2681890B1 (de) Verfahren zur kommunikation und komponente in einem kommunikationsnetzwerk
DE69938391T2 (de) Telefonvermittlungsstelle mit integrierten internetzugriffservern
DE602004007659T2 (de) Verfahren und netzwerkstruktur zur bewegung von verbindungszweigen
DE10142271A1 (de) Verfahren und Vorrichtung zur Laststeuerung von vermittlungstechnischen Ressourcen
DE10212374B4 (de) Lastverteilung auf periphere Einrichtungen eines paketbasierten Vermittlungssystems
DE102004012503B4 (de) Kommunikationsserver und Verfahren zur Steuerung und Überwachung von Endgeräten, und Kombination aus einem Kommunikationsserver, einer Mehrzahl von Kommunikationsknoten und Endgeräten
DE102005014717A1 (de) Computersystem und Verfahren zur Aufteilung und Zuteilung von Rechenleistung innerhalb eines Computersystems

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: H04L0029020000

Ipc: H04L0065000000