DE60301202T2 - Verfahren und vorrichtung zur verkehrssteuerung einer web-farm - Google Patents

Verfahren und vorrichtung zur verkehrssteuerung einer web-farm Download PDF

Info

Publication number
DE60301202T2
DE60301202T2 DE60301202T DE60301202T DE60301202T2 DE 60301202 T2 DE60301202 T2 DE 60301202T2 DE 60301202 T DE60301202 T DE 60301202T DE 60301202 T DE60301202 T DE 60301202T DE 60301202 T2 DE60301202 T2 DE 60301202T2
Authority
DE
Germany
Prior art keywords
customer
server
sharable
servers
requests
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE60301202T
Other languages
English (en)
Other versions
DE60301202D1 (de
Inventor
Joel Wolf
Philip Yu
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE60301202D1 publication Critical patent/DE60301202D1/de
Application granted granted Critical
Publication of DE60301202T2 publication Critical patent/DE60301202T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1006Server selection for load balancing with static server selection, e.g. the same server being selected for a specific client
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1023Server selection for load balancing based on a hash applied to IP addresses or costs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/10015Access to distributed or replicated servers, e.g. using brokers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)
  • Replacement Of Web Rolls (AREA)
  • Multi Processors (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

  • GEBIET DER ERFINDUNG
  • Die vorliegende Erfindung betrifft den Belastungsausgleich in Webfarmen.
  • HINTERGRUND DER ERFINDUNG
  • Webfarmen oder Webkomplexe werden gegenwärtig sehr populär. Ein grundlegendes Konzept einer Webfarm ist die Aussage, dass eine Vielzahl von unterschiedlichen Websites zusammengefasste Betriebsmittel gemeinsam verwenden. Sie verwenden im Einzelnen einen gemeinsamen Eingangszuteiler, um eine Belastungssteuerung auszuführen und um Kundenanforderungen zu verteilen. Sie verwenden außerdem mehrere Webserver gemeinsam, und sie verwenden eine Ausgangsbandbreite gemeinsam, um Anforderungsergebnisse an die Kunden zurückzuleiten. Die Hardware und die Software sind typischerweise im Besitz eines einzelnen Leistungsanbieters oder eines Inhalt-Datenanbieters und werden von diesem betrieben und unterhalten. Beispiele von Firmen, die diesen Dienst gegenwärtig bereitstellen oder dessen Bereitstellung planen, sind AT&T, Exodus, Intel, IBM, Qwest, Verio und Worldcom.
  • Eine wesentliche Leistungsherausforderung für Webfarmen besteht darin, die Belastungen der Server wirkungsvoll auszugleichen, um die durchschnittlichen Reaktionszeiten, die im System erreicht werden, so gering wie möglich zu machen. Eine Überbelegung von Servern kann übermäßige Verzögerungen von Kundenanforderungen bewirken. Andererseits ist eine Unterbelegung von Servern verschwenderisch. Eine Minimierung der durchschnittlichen Reaktionszeit hat den zusätzlichen Effekt der Maximierung des Durchsatzes, den die Webfarm erreichen kann. Das bedeutet, dass die Prozedur der Belastungssteuerung in dem Eingangsverteiler toleranter gemacht werden kann, indem weniger Anforderungen zurückgewiesen werden.
  • Eines der Hauptinteressen an Webfarmen liegt in den Nutzeffekten, die auf Grund der zusammengefassten Betriebsmittel entstehen. Jede Website ist einer Gruppe aus einem oder mehreren Servern zugewiesen. Im Stand der Technik wird jedoch angenommen, dass die Websitezuweisungen unter den Servern aufgeteilt sind: Das heißt, kein Server wickelt Verkehr von mehr als einer Website ab.
  • Das Grundprinzip der Erzeugung von Gruppen, die mehrere Server enthalten, ist die Durchführbarkeit: Die Verteilung von Kundenanforderungen auf die verschiedenen Sites wird typischerweise in starkem Maße ungleichmäßig sein. Einige Sites werden wahrscheinlich erheblich bekannter sein als andere, und die Popularität einer gefragten Website wird im Allgemeinen ausreichend hoch sein, dass die Zuweisung eines einzelnen Servers diesen überlasten würde. Deswegen wird es erforderlich sein, einige Sites mehreren Servern zuzuweisen, um eine annehmbare Leistungsfähigkeit zu erreichen.
  • Es ist bekannt, Lastausgleich-Algorithmen für den Fall der Partitionierung zu realisieren, eine derartige Partitionierung führt jedoch zu einer geringeren Flexibilität und deswegen zu einem weniger optimal verteilten Website-Belastungsausgleich.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Es wird ein Verfahren beschrieben, um eine Webfarm zu steuern, die eine Vielzahl von Websites und Servern aufweist, wobei das Verfahren die folgenden Schritte umfasst: Klassifizieren von Kundenanforderungen, die durch die Websites empfangen wurden, in eine Vielzahl von Kategorien, wobei die Kategorien gemeinsam benutzbare Kundenanforderungen und nicht gemeinsam benutzbare Kundenanforderungen umfassen; Leiten der gemeinsam benutzbaren Kundenanforderungen in der Weise, dass jeder der Server gemeinsam benutzbare Kundenanforderungen, die von verschiedenen Websites der Websites empfangen wurden, verarbeiten kann; und Leiten der nicht gemeinsam benutzbaren Kundenanforderungen von einer bestimmten Website der Websites nur zu bestimmten Servern, denen diese bestimmten Websites zugewiesen sind.
  • Ein weiterer Aspekt des Verfahrens umfasst eine Zielvorgabe-Prozedur, die den folgenden Schritt umfasst: für jede Kundenanforderung Bestimmen eines optimalen Server unter den Servern, dem die jeweilige Kundenanforderung zugewiesen werden soll, um zu einem beliebigen vorgegebenen Zeitpunkt die durchschnittliche Kundenreaktionszeit minimal zu machen, wobei die Zuweisung der Websites zu den Servern und eine momentane Kundenanforderungsbelastung vorgegeben sind.
  • In einem weiteren Aspekt des Verfahrens wird die Zielvorgabe-Prozedur bewirkt, indem die Funktion
    Figure 00040001
    in Abhängigkeit von den Randbedingungen
    Figure 00040002
    xi,j = 0 wenn ai,j = 0,
    Figure 00040003
    und yi,j = 0 wenn if bi,j = 0,minimiert wird, wobei M die Anzahl der Websites, N die Anzahl der Server, Rj die erwartete Reaktionszeit als eine Funktion der Kundenankunftsrate beim Server j, xij eine Entscheidungsvariable, die die hypothetische Anzahl von gemeinsam benutzbaren Kundenanforderungen für die Website i repräsentiert, die durch den Server j abgewickelt werden kann, yij eine Entscheidungsvariable, die die hypothetische Anzahl von nicht gemeinsam benutzbaren Kundenanforderungen für die Website i repräsentiert, die durch den Server j abgewickelt werden kann, Lj die maximal zulässige Belastung für den Server j, ci die momentane Anzahl von gemeinsam benutzbaren Kundenanforderungen von der Website i, di die momentane Anzahl von nicht gemeinsam benutzbaren Kundenanforderungen von der Website i, aij ein Index, der angibt, ob gemeinsam benutzbare Anforderungen von der Website i zum Server j geleitet werden können, und bij ein Index ist, der angibt, ob nicht gemeinsam benutzbare Anforderungen von der Website i zum Server j geleitet werden können.
  • Ein weiterer Aspekt des Verfahrens umfasst die folgenden Schritte: Erzeugen und Aufrechterhalten eines gerichteten Graphen, wobei der gerichtete Graph einen Hilfsknoten und eine Vielzahl von Serverknoten umfasst, wobei jeder Serverknoten einem der Server entspricht; Bezeichnen von einem der Serverknoten, für den der Ausdruck
    Figure 00050001
    minimal ist, als einen Gewinnerknoten; und Auswählen eines kürzesten gerichteten Pfades von dem Hilfsknoten zu dem Gewinnerknoten.
  • Ein weiterer Aspekt des Verfahrens umfasst eine statische Prozedur, die das Zuweisen von bestimmten Websites zu bestimmten Servern umfasst.
  • In einem weiteren Aspekt des Verfahrens weist die statische Prozedur auf der Grundlage eines vorhergesagten Bedarfs an gemeinsam benutzbaren Kundenanforderungen und nicht gemeinsam benutzbaren Kundenanforderungen von der jeweiligen Website die Websites bestimmten Servern zu.
  • Ein weiterer Aspekt des Verfahrens umfasst eine dynamische Prozedur, die die folgenden Schritte umfasst: Prüfen der nächsten Kundenanforderung; Aufrufen der Zielvorgabe-Prozedur, um zu bestimmen, welcher Server der optimale Server ist, um gegenwärtig die nächste Kundenanforderung zu verarbeiten; und Senden der nächsten Kundenanforderung zu dem optimalen Server.
  • Ein weiterer Aspekt des Verfahrens umfasst das Empfangen der Kundenanforderungen in einer Warteschlange; und wobei die dynamische Prozedur ferner umfasst: Überwachen der Kundenanforderungen in der Warteschlange; Überwachen der Kundenanforderungen, die gegenwärtig von den Servern verarbeitet werden; Definieren einer Funktion Ṙj(z) für jeden j-ten Server durch Setzen von j(z) = Rj(z + Σ(c ..i,j + d ..i,j));Definieren einer abgestimmten zulässigen Belastung LL .j für jeden j-ten Server durch Setzen von
    Figure 00060001
    und
    Aufrufen der Zielvorgabe-Prozedur, um die Ṙj(z)-Funktion und die abgestimmte zulässige Belastung LL .j zum Minimieren der Funktion
    Figure 00060002
    in Abhängigkeit von den Randbedingungen
    Figure 00070001
    i,j = 0 wenn ai,j = 0,
    Figure 00070002
    und i,j = 0 wenn bi,j = 0,zu verwenden, wobei ẋij eine Entscheidungsvariable, die die hypothetische Anzahl von gemeinsam benutzbaren Anforderungen in der Warteschlange für die Website i repräsentiert, die durch den Server j abgewickelt werden kann, ẏij eine Entscheidungsvariable, die die hypothetische Anzahl von nicht gemeinsam benutzbaren Kundenanforderungen für die Website i repräsentiert, die durch den Server j abgewickelt werden kann, ċi die gegenwärtige Anzahl von gemeinsam benutzbaren Anforderungen in der Warteschlange von der Website i, ḋi die gegenwärtige Anzahl von nicht gemeinsam benutzbaren Anforderungen in der Warteschlange von der Website i, c ..i die gegenwärtige Anzahl von gemeinsam benutzbaren Anforderungen von der Website i, die gegenwärtig in einem der Server verarbeitet wird, und d ..i die gegenwärtige Anzahl von nicht gemeinsam benutzbaren Anforderungen von der Website i ist, die gegenwärtig in einem der Server verarbeitet wird.
  • Es wird eine Programmspeichervorrichtung offenbart, die durch eine Maschine gelesen werden kann, die konkret ein Programm aus Anweisungen enthält, die von der Maschine ausgeführt werden können, um Verfahrensschritte zum Steuern einer Webfarm, die eine Vielzahl von Websites und Servern aufweist, auszuführen, wobei die Verfahrensschritte umfassen:
    Klassifizieren von Kundenanforderungen, die durch die Websites empfangen wurden, in eine Vielzahl von Kategorien, wobei die Kategorien gemeinsam benutzbare Kundenanforderungen und nicht gemeinsam benutzbare Kundenanforderungen umfassen; Leiten der gemeinsam benutzbaren Kundenanforderungen in der Weise, dass jeder der Server gemeinsam benutzbare Kundenanforderungen, die von verschiedenen Websites der Websites empfangen wurde, verarbeiten kann; und Leiten der nicht gemeinsam benutzbaren Kundenanforderungen von einer bestimmten Website der Websites nur zu bestimmten Servern, denen diese bestimmten Websites zugewiesen sind.
  • Ein weiterer Aspekt der Vorrichtung umfasst eine Zielvorgabe-Prozedur, wobei die Zielvorgabe-Prozedur Folgendes umfasst: für jede Kundenanforderung Bestimmen eines optimalen Server unter den Servern, dem diese Kundenanforderung zugewiesen werden soll, um eine durchschnittliche Kundenreaktionszeit zu einem beliebigen Zeitpunkt minimal zu machen, wobei die Zuweisung dieser Websites zu den Servern und eine momentane Kundenanforderungslast vorgegeben sind.
  • In einem weiteren Aspekt der Vorrichtung wird die Zielvorgabe-Prozedur bewirkt, indem die Funktion
    Figure 00080001
    in Abhängigkeit von den Randbedingungen Σ(xi,j + yi,j) ∊ {0, ..., Lj}
    Figure 00090001
    xi,j = 0 wenn ai,j = 0,
    Figure 00090002
    und yi,j = 0 wenn if bi,j = 0,minimiert wird, wobei M die Anzahl der Websites, N die Anzahl der Server, Rj die erwartete Reaktionszeit als eine Funktion der Kundenankunftsrate beim Server j, xij eine Entscheidungsvariable, die die hypothetische Anzahl von gemeinsam benutzbaren Kundenanforderungen für die Website i repräsentiert, die durch den Server j abgewickelt werden kann, yij eine Entscheidungsvariable, die die hypothetische Anzahl von nicht gemeinsam benutzbaren Kundenanforderungen für die Website i repräsentiert, die durch den Server j abgewickelt werden kann, Lj die maximal zulässige Belastung für den Server j, ci die momentane Anzahl von gemeinsam benutzbaren Kundenanforderungen von der Website i, di die momentane Anzahl von nicht gemeinsam benutzbaren Kundenanforderungen von der Website i, aij ein Index, der angibt, ob gemeinsam benutzbare Anforderungen von der Website i zum Server j geleitet werden können, und bij ein Index ist, der angibt, ob nicht gemeinsam benutzbare Anforderungen von der Website i zum Server j geleitet werden können.
  • Ein weiterer Aspekt der Vorrichtung umfasst die folgenden Schritte: Erzeugen und Aufrechterhalten eines gerichteten Graphen, wobei der gerichtete Graph einen Hilfsknoten und eine Vielzahl von Serverknoten umfasst, wobei jeder Serverknoten einem der Server entspricht; Bezeichnen von einem der Serverknoten, für den der Ausdruck
    Figure 00100001
    minimal ist, als einen Gewinnerknoten; und Auswählen eines kürzesten gerichteten Pfades von dem Hilfsknoten zu dem Gewinnerknoten.
  • Ein weiterer Aspekt der Vorrichtung umfasst eine statische Prozedur, wobei die statische Prozedur das Zuweisen von bestimmten Websites zu bestimmten Servern umfasst.
  • In einem weiteren Aspekt der Vorrichtung weist die statische Prozedur auf der Grundlage eines vorhergesagten Bedarfs an gemeinsam benutzbaren Kundenanforderungen und nicht gemeinsam benutzbaren Kundenanforderungen von der jeweiligen Website die Websites bestimmten Servern zu.
  • Ein weiterer Aspekt der Vorrichtung umfasst eine dynamische Prozedur, wobei die dynamische Prozedur umfasst: Prüfen der nächsten Kundenanforderung; Aufrufen der Zielvorgabe-Prozedur, um zu bestimmen, welcher Server der optimale Server ist, um gegenwärtig die nächste Kundenanforderung zu verarbeiten; und Senden der nächsten Kundenanforderung zu dem optimalen Server.
  • Ein weiterer Aspekt der Vorrichtung umfasst das Empfangen der Kundenanforderungen in einer Warteschlange; und wobei die dynamische Prozedur ferner umfasst: Überwachen der Kundenanforderungen in der Warteschlange; Überwachen der Kundenanforderungen, die gegenwärtig von den Servern verarbeitet werden; Definieren einer Funktion Ṙj(z) für jeden j-ten Server durch Setzen von j(z) = Rj(z + Σ(c ..i,j + d ..i,j));
  • Definieren einer abgestimmten annehmbaren Belastung L .j für jeden j-ten Server durch Setzen von
    Figure 00110001
    und
    Aufrufen der Zielvorgabe-Prozedur, um die Ṙj(z)-Funktion und die abgestimmte annehmbare Belastung L .j zum Minimieren der Funktion
    Figure 00110002
    in Abhängigkeit von den Randbedingungen
    Figure 00110003
    i,j = 0 wenn ai,j = 0,
    Figure 00110004
    und i,j = 0 wenn bi,j = 0, zu verwenden, wobei ẋij eine Entscheidungsvariable, die die hypothetische Anzahl von gemeinsam benutzbaren Anforderungen in der Warteschlange für die Website i repräsentiert, die durch den Server j abgewickelt werden kann, ẏij eine Entscheidungsvariable, die die hypothetische Anzahl von nicht gemeinsam benutzbaren Kundenanforderungen für die Website i repräsentiert, die durch den Server j abgewickelt werden kann, ċi die gegenwärtige Anzahl von gemeinsam benutzbaren Anforderungen in der Warteschlange von der Website i, ḋi die gegenwärtige Anzahl von nicht gemeinsam benutzbaren Anforderungen in der Warteschlange von der Website i, ċi die gegenwärtige Anzahl von gemeinsam benutzbaren Anforderungen von der Website i, die gegenwärtig in einem der Server verarbeitet wird, und d ..i die gegenwärtige Anzahl von nicht gemeinsam benutzbaren Anforderungen von der Website i ist, die gegenwärtig in einem der Server verarbeitet wird.
  • Es wird eine Webfarm offenbart, die umfasst: Mittel zum Empfangen von Kundenanforderungen vom Kunden; Mittel zum Verarbeiten der Kundenanforderungen, um Antworten zu erzeugen; Mittel zum Übertragen der Antworten zu den Kunden; Mittel zum Klassifizieren von Kundenanforderungen in gemeinsam benutzbare Kundenanforderungen und nicht gemeinsam benutzbare Kundenanforderungen; einen Netzwerkverteiler, der Mittel zum Ausführen einer Zielvorgabe-Prozedur, einer statischen Prozedur und einer dynamischen Prozedur umfasst, wobei die Zielvorgabe-Prozedur umfasst: für jede Kundenanforderung Bestimmen eines optimalen Server unter den Servern, dem die jeweilige Kundenanforderung zugewiesen werden soll, um zu einem beliebigen vorgegebenen Zeitpunkt die durchschnittliche Kundenreaktionszeit minimal zu machen, wobei die Zuweisung der Websites zu den Servern und eine momentane Kundenanforderungsbelastung vorgegeben sind, wobei die gemeinsam benutzbaren Kundenanforderungen einem beliebigen Server zugewiesen werden können und die nicht gemeinsam benutzbaren Kundenanforderungen in Abhängigkeit davon, von welcher Website die nicht gemeinsam benutzbare Kundenanforderung stammt, lediglich bestimmten Servern zugewiesen werden können; wobei die statische Prozedur umfasst: Zuweisen bestimmter Websites zu bestimmten Servern; und wobei die dynamische Prozedur umfasst: Prüfen der nächsten Kundenanforderung; Aufrufen der Zielvorgabe-Prozedur, um zu bestimmen, welcher Server der optimale Server ist, um gegenwärtig die nächste Kundenanforderung zu verarbeiten; und Senden der nächsten Kundenanforderung zu dem optimalen Server.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • 1 zeigt eine Webfarm, die einen Netzwerkverteiler und mehrere Server enthält.
  • 2 zeigt einen Pfad von dem Hilfsknoten zu dem Gewinnerknoten als Teil der Zielvorgabe-Prozedur.
  • 3 ist ein Ablaufplan der Zielvorgabe-Prozedur.
  • 3b ist ein Ablaufplan eines Initialisierungsschritts der Zielvorgabe-Prozedur.
  • 3c ist ein Ablaufplan eines Pfadbuchungsschritts der Zielvorgabe-Prozedur.
  • 3d ist ein Ablaufplan eines Graphbuchungsschritts der Zielvorgabe-Prozedur.
  • 4 ist ein Ablaufplan der dynamischen Prozedur.
  • 5 ist die Erklärungsliste der Website-Symbole für ein Beispiel, das die dynamische Prozedur erläutert.
  • 6 zeigt den gerichteten Graphen der dynamischen Prozedur in diesem Beispiel.
  • 7 zeigt den ungerichteten Graphen der statischen Prozedur in diesem Beispiel.
  • 8 zeigt die Heuristik "Neighborhood escape" in der statischen Prozedur.
  • 9 zeigt einen Ablaufplan der statischen Prozedur.
  • GENAUE BESCHREIBUNG VON BEVORZUGTEN AUSFÜHRUNGSFORMEN
  • Die Erfindung stellt eine Lösung für das Problem des Ausgleichs der Belastung in einer Webfarm bereit, indem Überlappungen unter den Serverzuweisungen mehrerer Sites zugelassen werden, wobei das praktisch in einer Weise geschieht, die für die Besitzer der verschiedenen Sites angenehm ist. Die Lehren dieser Erfindung können an Stelle des Systems zum Belastungsausgleich verwendet werden, das in der gemeinsam übertragenen, gleichzeitig anhängigen US-Patentanmeldung 09/374,539, die am 16. August 1999 eingereicht wurde, Akten-Nr. 12793(YO999-307) mit dem Titel METHOD AND APPARATUS FOR LOAD BALANCING OF WEB CLUSTER FARMS und nun das US-Patent Nr. 6 374 297 ist, offenbart ist.
  • Das Dokument US 6 282 569 offenbart ein Verfahren zum Steuern einer Webfarm, die eine Vielzahl von Websites und Servern enthält. Kundenanforderungen werden gemäß einer statischen Prozedur in gemeinsam benutzbare und nicht gemeinsam benutzbare Kundenanforderungen klassifiziert.
  • Die Erfindung ist durch den Gegenstand der unabhängigen Ansprüche 1 und 8 definiert.
  • Der Grundgedanke der Überlappung der Websitegruppen ist Flexibilität: Webfarmen müssen in der Lage sein, Kundenanforderungen von den vielen verschiedenen Websites gleichzeitig abzuwickeln, wobei dieser Kundenbedarf typischerweise stoßförmig ist. Diese Stoßförmigkeit kann in Folge der sich verändernden Website-Popularität und der Kundenzusammensetzung wöchentlich, täglich und stündlich beobachtet werden. Die Wirklichkeit legt nahe, dass dies bei viel kleineren Zeiteinheiten geschieht, wie etwa in Minuten und selbst in Sekunden. Das Problem ist dabei, dass die durchschnittlichen Websitezugriffraten das schwankende Wesen des Kundenverhaltens nicht ausreichend erfassen. Der Verkehr für eine Website kann dramatisch zunehmen und abnehmen, und eine Website kann belegt sein, während eine andere weniger belegt ist. Die Hoffnung besteht darin, dass ein Server, der mehrere Sites abwickelt, dafür sorgen kann, dass der Ausgleich der Arbeitsbelastung zwischen diesen Sites variiert wird, um auf diesen dynamischen Verkehr zu reagieren. Es wird angemerkt, dass ein partitionierter Aufbau diese Reaktionsmöglichkeit nicht ermöglicht.
  • Ein Beispiel der Erfindung fasst die Server-Betriebsmittel wirkungsvoll zusammen und verwendet intelligente Verfahren für den Eingangsverteiler, um die Belastungen dieser Server auszugleichen. Ein Beispiel der Erfindung kann ausreichend verallgemeinert werden, so dass angenommen werden kann, dass jede Website einer Gruppe aus einem oder mehreren Servern zugewiesen ist und dass diese Gruppen ferner überlappen können. Das bedeutet, dass ein Server bei Bedarf Kundenanforderungen von mehreren Websites abwickeln kann. Die weniger erwünschte Alternative besteht darin, die Server unter den verschiedenen Sites aufzuteilen, so dass jeder Server Anforderungen von genau einer Website abwickelt. Die Erfindung funktioniert für diesen weniger erwünschten Spezialfall ebenso, wenn auch weniger wirkungsvoll.
  • Überlappende Gruppen sind jedoch bei Webfarmen nicht problemlos. Obwohl es aus technischer Sicht vernünftig ist, dass ein in geeigneter Weise hochentwickelter Server eine bescheidene Anzahl von Websites aufnehmen kann, kann das aus politischer Sicht nicht ganz vernünftig sein. Ein Händler auf dem Gebiet des elektronischen Handels könnte z.B. die gemeinsamen Benutzung von Servern ablehnen, die Transaktionsanfragen mit anderen Händlern abwickeln, selbst wenn der Server zwischen den Sites logisch aufgeteilt ist. Die Ablehnung des Händlers wird typischerweise auf Geheimhaltungsgründen beruhen. Ein solcher Händler hätte jedoch nahezu immer bei der gemeinsamen Nutzung von Servern für Browseranfragen weniger Bedenken. Damit eine Belastungsausgleichprozedur praktisch und somit realisierbar ist, muss sie dieses Problem wirksam umgehen. Das kann erreicht werden, indem die Arbeitsbelastung jeder Website bei Bedarf in zwei Kategorien geteilt wird, von denen eine nicht gemeinsam genutzt werden kann und die andere gemeinsam genutzt werden kann. Das setzt voraus, dass die öffentlichen Anforderungen (durch Browser begründet) einen Server mit gemeinsam benutzbaren Anforderungen von anderen Sites gemeinsam benutzen können. Sie können außerdem einen Server mit privaten Anforderungen (durch Transaktionen begründet) von der gleichen Website gemeinsam nutzen. Diese entscheidende Verfeinerung gibt der Erfindung die erforderliche Flexibilität, dass sie trotz des politisch unberechenbaren Problems von überlappenden Zuweisungen gut funktioniert.
  • Obwohl die Erfindung nachfolgend in Bezug auf zwei Ebenen des Kundenverkehrs beschrieben wird, wird ein Fachmann anerkennen, dass die Erfindung auf eine Hierarchie aus Verkehrsebenen mit veränderlichen Einschränkungen zwischen Server und Website verallgemeinert werden kann.
  • Obwohl die öffentliche und die private Kategorie durch Browser- bzw. Transaktionsanforderungen begründet sind, wird angemerkt, dass diese Ausdrücke tatsächlich durch die Möglichkeit oder die Unmöglichkeit der gemeinsamen Benutzung definiert sind. Bei Sites des elektronischen Handels, die das Konzept der logischen Unterteilung akzeptieren, werden z.B. Transaktionsanforderungen als Teil des öffentlichen Verkehrs gezählt, und deswegen gibt es überhaupt keinen privaten Verkehr. Im anderen Extrem werden Sites des elektronischen Handels, die es ablehnen, eine gemeinsame Benutzung von Servern auch nicht für Browser zuzulassen, Browseranforderungen haben, die als Teil des privaten Verkehrs gezählt werden, und es gibt überhaupt keinen öffentlichen Verkehr. Es kann natürlich nichtkommerzielle Sites geben, für die die Ausdrücke Browsen und Transaktion keinerlei wörtliche Bedeutung haben. Zur Vereinfachung wird Verkehr trotzdem in Abhängigkeit von der Möglichkeit der gemeinsamen Nutzung entweder in die öffentliche Kategorie oder in die private Kategorie klassifiziert.
  • Die Erfindung nutzt den Vorteil der Möglichkeit von überlappenden Websitezuweisungen, um die Webfarmbelastung sehr wirkungsvoll auszugleichen. Das Problem wird natürlich in zwei Teilprobleme zerlegt, und die jeweiligen Lösungen nutzen das gleiche grundlegende Optimierungsverfahren, um geeignete Zielvorgaben festzulegen. Es gibt deswegen drei Hauptkomponenten der Erfindung, die als die Zielvorgabe-Prozedur, die statische Prozedur und die dynamische Prozedur bezeichnet werden.
  • Die Zielvorgabe-Prozedur ist die grundlegende gemeinsame Prozedur. Sie verwendet eine Optimierungstechnik, die so beschaffen ist, dass sie zu einem beliebigen vorgegebenen Zeitpunkt die durchschnittliche Kundenreaktionszeit minimal macht, wobei die Zuweisung der Sites zu Servern und die momentane Kundenanforderungsbelastung vorgegeben sind. Die Technik ist in gewisser Weise ein bestimmter Spezialfall einer Technik, die zum Lösen des so genannten diskreten klassenbeschränkten separierbaren konvexen Problems der Betriebsmittelzuweisung verwendet wird, das von Tantawi u.a., Optimal allocation of multiple class resources in computer systems, ACM Sigmetrics Conference (Mai 1988), S. 253–260 gelehrt wird. Deswegen legt dieses Verfahren die Zielvorgabe des optimalen Belastungsausgleichs fest. Das Ergebnis ist im Einzelnen die optimale Anzahl von Kundenanforderungen sowohl der öffentlichen Kategorie als auch der privaten Kategorie für jede Website, die durch den jeweiligen geeigneten Server abgewickelt werden sollen, und durch die Summierung somit die optimale Anzahl aller Kundenanforderungen pro Server. Dieses Problem muss verhältnismäßig häufig gelöst werden. Glücklicherweise ist die Lösungstechnik schnell (und im Wesen inkrementell). Sie kann mit verschiedenartigen Servern umgehen, was wichtig ist, da einige alte langsame Server mit der Zeit unvermeidlich durch neue schnellere Server ersetzt werden. Die Zielvorgabe-Prozedur ist ein Bestandteil der Komponenten dynamische Prozedur und statische Prozedur, die nachfolgend aufgeführt werden.
  • Die statische Prozedur erzeugt eine gute und hoffentlich nahezu optimale Zuweisung von Sites zu Servern, die die Bedürfnisse von öffentlichen und privaten Anforderungen berücksichtigt. Je besser das geschieht, desto besser kann die durchschnittliche Reaktionszeit in der Zielvorgabe-Prozedur sein. Die Komponente der statischen Prozedur ruft bei ihrem Fortschreiten die Zielvorgabe-Prozedur iterativ auf. Die Technik kann entweder in der Ausgangsbetriebsart und in der inkrementellen Betriebsart ablaufen. Die Ausgangsbetriebsart ist geeignet, wenn eine neue Webfarm konfiguriert wird. Die inkrementelle Betriebsart ermöglicht Randbedingungen, die die Anzahl von Zuweisungsänderungen beschränken, und ist dadurch zweckmäßig für die Aufrechterhaltung von hochwertigen Zuweisungen zwischen Website zu Server. Eine Heuristik "Neighborhood escape" wird verwendet, wie etwa die Heuristik, die in R. Garfinkel u.a., Integer Programming, John Wiley and Sons, New York, NY (1972) offenbart ist. Die inkrementelle Betriebsart sollte periodisch, möglicherweise einmal pro Woche oder dergleichen, ausgeführt werden. Eine Neukonfiguration der Zuweisungen zwischen Website und Server ist offensichtlich keine triviale Aufgabe. Die genaue Häufigkeit wird von der Unbeständigkeit der Vorhersagen der Websitenachfrage und von dem Aufwand der Ausführung der neuen Zuweisungen abhängen.
  • Die dynamische Prozedur führt eine Echtzeit-Webserverlenkung in dem Netzwerkverteiler auf der Grundlage des Ergebnisses der Komponente „Statische Prozedur" und der schwankenden Kundennachfrage der Website aus. Sie löst ein beschränktes Teilproblem auf der Grundlage der Zielvorgabe-Prozedur, um diese idealisierte Lenkung zu berechnen. Dadurch wird die Zuweisung nicht von zuvor verteilten Anforderung übertragen, was die Leistungsfähigkeit weiter verbessern könnte, jedoch einen unzulässig hohen Aufwand nach sich ziehen würde.
  • In 1 ist ein Beispiel einer hypothetischen Webfarm 10, die drei Sites 12 und neun Server 13 aufweist, gezeigt. Ein Netzwerkverteiler 14 leitet Kundenanforderungen für die drei Sites 12 zu den geeigneten Servern. Die erste Website 12a umfasst zwei Server (1 und 2) und überlappt mit der zweiten Website 12b, die fünf Server (2 bis 6) besitzt und die ihrerseits mit der dritten Website 12c, die vier Server (6 bis 9) besitzt, überlappt. Die Ergebnisse der Kundenanforderungen werden zu den Kunden zurückgeleitet, die dann weitere Anforderungen machen können.
  • Bei Vorgabe des erläuternden Beispiels von 1 ist es nun sinnvoll, die drei Hauptkomponenten der Erfindung genau zu beschreiben.
  • Die Komponente Zielvorgabe-Prozedur (Zielvorgabe)
  • Es ist sinnvoll, zunächst einige Bezeichnungen zu definieren. M soll die Anzahl der Websites bezeichnen, die zur Einfachheit immer mit i indexiert ist. N soll die Anzahl den Server bezeichnen und ist durch j indexiert. Die {0, 1} M × N-Matrix A = (ai,j) soll die Möglichkeit der Zuweisung öffentlicher Anforderungen für die Website i zu dem Server j angeben. Mit anderen Worten, ai,j = 1, wenn gemeinsam benutzbare Anforderungen für die Website i durch den Server j abgewickelt werden können, sonst ai,j = 0. Analog soll die {0, 1} M × N-Matrix B = (bi,j) die Möglichkeit der Zuweisung privater Anforderungen für die Website i zu dem Server j angeben. Mit anderen Worten, bi,j = 1, wenn nicht gemeinsam benutzbare Anforderungen für die Website i durch den Server j abgewickelt werden können, sonst bi,j = 0. In der Praxis wird angenommen, dass ein Server j, der private Anforderungen für die Website i abwickelt, außerdem öffentliche Anforderungen für diese Website abwickeln kann. Somit gilt ai,j = 1, wenn bi,j = 1.
  • Jedem Server j ist eine Funktion Rj zugeordnet, die die erwartete Reaktionszeit als eine Funktion der Kundenankunftsrate misst. Diese Funktion hängt von der Betriebszeitverteilung ab, die wiederum von der Geschwindigkeit des Prozessors abhängt. Die Funktion Rj ist im Allgemeinen ansteigend und konvex. Es gibt klassische Warteschlangentechniken zum Berechnen oder Abschätzen von Rj bei bestimmten Vereinfachungsannahmen über das Ankunftsratenmuster und die Betriebszeitverteilung, wie durch Lavenberg, Computer Performance Modeling Handbook, Academic Press, New York, NY (1983) gelehrt wird, dessen Offenbarungen hier in ihrer Gesamtheit durch Literaturverweis eingeschlossen sind, die Funktion muss jedoch im Allgemeinen über Simulationsexperimente oder durch Überwachung berechnet werden. Anhand dieser Funktion kann angenommen werden, dass eine maximale annehmbare Belastung Lj des Servers j in dem Sinn vorhanden sein wird, dass ein Überschreiten dieses Schwellenwertes bewirkt, dass der Wert von Rj zu groß wird. Wenn Lj = ∞ gesetzt wird, ist diese Randbedingung der maximalen Belastung natürlich unklar. Es wird angenommen, dass zu einem bestimmten Zeitpunkt ci öffentliche Anforderungen und di private Anforderungen für die Website i im Gang sind. Diese werden weiter unterteilt in ci,j öffentliche Anforderungen und di,j private Anforderungen für die Website i an dem Server j. Somit gelten
    Figure 00220001
    und ci,j = 0 immer dann, wenn ai,j = 0 (man kann eine öffentliche Anforderung für eine Website nicht von einem Server abwickeln, dem sie nicht zugewiesen ist). Gleichfalls gilt di,j = 0 immer dann, wenn bi,j = 0.
    Figure 00220002
    soll die Gesamtzahl der im Gang befindlichen öffentlichen
  • Anforderungen bezeichnen, und gleichfalls soll
    Figure 00220003
    die Gesamtzahl der im Gang befindlichen privaten Anforderungen bezeichnen.
  • Die Serverbelastungen können dann, wenn die momentane Belastung und die Zuweisungen zwischen Website und Server vorgegeben sind, als optimal ausgeglichen betrachtet werden, wenn die Zielfunktion
    Figure 00220004
    in Abhängigkeit von den Randbedingungen Σ(xi,j + yi,j) ∊ {0, ..., Lj}, (2)
    Figure 00230001
    xi,j = 0 if ai,j = 0, (4)
    Figure 00230002
    yi,j = 0 if bi,j = 0. (6)minimal gemacht wird.
  • Dabei ist xi,j eine Entscheidungsvariable, die die hypothetische Anzahl von öffentlichen Anforderungen für die Website i darstellt, die durch den Server j abgewickelt werden können. In ähnlicher Weise ist yi,j eine Entscheidungsvariable, die die hypothetische Anzahl von privaten Anforderungen für die Website i darstellt, die durch den Server j abgewickelt werden können. Die Zielfunktion misst die Summe der erwarteten Reaktionszeiten bei den verschiedenen Servern, die sich durch eine multiplikative Konstante von der durchschnittlichen Reaktionszeit unterscheiden. Diese Konstante ist aus der Sicht des Optimierungsproblems irrelevant. Die Randbedingung (2) begrenzt die annehmbare Belastung des Servers i. Die Randbedingung (3) stellt sicher, dass die Gesamtzahl der öffentlichen Anforderungen der Website i gleich der tatsächlichen Anzahl derartiger Anforderungen ist, die im Gang sind. Die Randbedingung (4) stellt sicher, dass die Website-Server-Zuweisungen für öffentliche Anforderungen berücksichtigt werden. Die Randbedingungen (5) und (6) sind die entsprechenden Forderungen für private Anforderungen. Wenn in der optimalen Lösung
    Figure 00240001
    wird angemerkt, dass sie Summe Xj + Yj die gewünschte Belastung des Servers j angibt. Die endgültige Zielvorgabe wird darin bestehen, sicherzustellen, dass die optimale Belastung Xj + Yj und die tatsächliche Belastung
    Figure 00240002
    für jeden Server j immer nahe beieinander liegen.
  • Das oben beschriebene Optimierungsproblem ist ein Spezialfall des so genannten diskreten klassenbeschränkten separierbaren konvexen Problems der Betriebsmittelzuweisung. Die Klassen entsprechen den öffentlichen und den privaten Anforderungen für die verschiedenen Sites. Das Problem ist diskret in Folge der Randbedingung (2), ein Betriebsmittelzuweisungsproblem in Folge der Randbedingungen (3) und (5) und in Folge der Randbedingungen (4) und (6) klassenbeschränkt. Der Ausdruck der Separierbarkeit bezieht sich auf das Wesen der Zielfunktion und der Ausdruck der Konvexität erklärt sich selbst. Wie durch Tantawi u.a. gelehrt wird, können diskrete klassenbeschränkte separierbare Betriebsmittelzuweisungsprobleme unter Verwendung einer graphentheoretischen Optimierungsprozedur genau und wirkungsvoll gelöst werden.
  • In 3 ist ein Ablaufplan einer bevorzugten Ausführungsform der Zielvorgabe-Prozedur gezeigt. Unter der Annahme, dass eine plausible Lösung existiert, läuft die Prozedur in den Schritten C und D ab. Ein gerichteter Graph, wie etwa in 2, wird erzeugt und wird während des gesamten Ablaufs der Prozedur aufrechterhalten. Die Knoten des Graphen sind die Server 1, ..., N sowie ein Hilfsknoten, der als "Knoten 0" bezeichnet wird. Es werden ai,0 = 1 und bi,0 = 1 für alle i sowie L0 = 0 gesetzt. Es wird eine teilweise plausible Lösung {xi,j |i = 1, ..., M, j = 0, ..., N} ⋃ {yi,j |i = 1, ..., M, j = 0, ..., N} erzeugt und modifiziert. Anfangs wird diese teilweise plausible Lösung in den Schritten 100 und 105 von 3 für alle i so gesetzt, dass xi,0 = ci, yi,0 = di und xi,j = yi,j = 0 für alle j = 1, ..., N, deswegen befinden sich alle Betriebsmittel im Hilfsknoten. Der gerichtete Graph wird im Schritt 110 initialisiert und besitzt in jedem Schritt einen gerichteten Bogen von einem Knoten j1 ∊ {0, ..., N} zu einem Knoten j2 ∊ {0, ..., N}, wenn wenigstens eine Website i1 vorhanden ist, die die Bedingungen
    Figure 00250001
    erfüllt oder alternativ wenigstens eine Website i1 vorhanden ist, die die Bedingungen
    Figure 00250002
    und die Bedingung (9) erfüllt. Die Bedingung (7) gibt an, dass die Knoten j1 und j2 öffentliche Anforderungen für die Website i1 abwickeln können. Die Bedingung (8) gibt an, dass eine öffentliche Anforderung für die Website i1 dem Knoten j1 zugewiesen wurde. Die Bedingung (9) gibt an, dass diese Anforderung an den Knoten j2 übertragen werden könnte, ohne die Belastungsbegrenzung für diesen Knoten zu überschreiten. Die Bedingungen (10), (11) und (9) sind die entsprechenden Forderungen für private Anforderungen. Es wird angemerkt, dass gerichtete Bögen von dem Knoten 0 vorhanden sein können, es gibt jedoch keine gerichteten Bögen zu den Knoten 0. Deshalb wird der empfangende Knoten immer ein realer Server und nicht der Hilfsknoten sein.
  • Der allgemeine Schritt des Verfahrens findet unter allen Knoten j ∊ {0, ..., N}, für die ein gerichteter Pfad von 0 zu j vorhanden ist, den Gewinnerknoten, für den die erste Differenz
    Figure 00260001
    minimal ist. Diese so genannte erste Differenz ist das diskrete Analogon der Ableitung für kontinuierliche Funktionen. Die ersten Differenzen sind durch die Konvexität von Rj in j für alle i nichtabnehmend. Wenn keine derartige Knoten vorhanden sind, endet die Prozedur mit einer unplausiblen Lösung. Andernfalls wird ein kürzester gerichteter Pfad von 0 zu dem Gewinnerknoten ausgewählt. Für jeden gerichteten Bogen (j1, j2) in diesem Pfad wird der Wert von xi1-j1 + yi1-j1 um 1 vermindert und der Wert xi1-j2 + yi1-j2 um 1 erhöht für eine geeignete Website i1 (entweder durch eine Verminderung oder eine Erhöhung für eine öffentliche Anforderung oder durch eine Verminderung oder eine Erhöhung für eine private Anforderung). Das Ausführen dieses Schritts über alle gerichteten Bögen hat die Wirkung des Entfernens einer Belastungseinheit von dem Hilfsknoten und des Hinzufügens einer Belastungseinheit zu dem Gewinnerknoten. Es gibt keine Gesamtauswirkung auf die Belastung der Zwischenknoten. Dadurch wirkt der Hilfsknoten als ein Bereitstellungsraum für die Betriebsmittel, wovon bei jedem Schritt jeweils ein Betriebsmittel an die Serverknoten freigegeben wird. Eine Buchung wird dann an dem gerichteten Graphen ausgeführt, der einige gerichtete Bögen modifizieren kann und möglicherweise bestimmte Knoten treffen kann, und der Schritt wird wiederholt. Nach den Schritten (C + D) endet die Prozedur mit einer optimalen Lösung des ursprünglichen diskreten klassenbeschränkten Betriebsmittelzuweisungsproblems. Eine Plausibilität ist wegen den Bedingungen an die Bögen in dem gerichteten Graphen garantiert.
  • In 3 beginnt im Schritt 100 eine bevorzugte Ausführungsform der Zielvorgabe-Prozedur durch das Setzen der Variablen xi,j und yi,j auf null für alle Sites i und Server j. Die Prozedur erhöht und vermindert während ihres Verlaufs diese Variablen. Im Schritt 105 wird ein Hilfsknoten als Knoten 0 initialisiert. Alle Betriebsmittel werden anfangs dort abgelegt, so dass xi,0 = ci und yi,0 = di gesetzt werden. Im Schritt 110 wird der gerichtete Graph, der die N + 1 Knoten verbindet, gemäß den Gleichungen (7) bis (11) initialisiert, wie später unter Bezugnahme auf 3b genauer beschrieben wird. Man kann daraus erkennen, dass es gerichtete Bögen von dem Hilfsknoten 0 zu den Knoten j in der Art geben wird, dass es wenigstens eine Website i mit ai,j = 1 oder bi,j = 1 geben wird. Dieser Graph wird im Verlauf der Prozedur modifiziert. Im Schritt 115 wird k = 1 gesetzt. Diese Variable wird die Einheiten der Betriebsmittel zählen, wenn sie zugewiesen werden. Im Schritt 120 werden m auf den Anfangswert unendlich und j auf den Anfangswert 1 gesetzt. Im Schritt 125 wird festgestellt, ob ein gerichteter Pfad von 0 zum Knoten 1 vorhanden ist. Wenn das der Fall ist, wird im Schritt 130 die Gleichung (12) für diesen Server j berechnet und mit m verglichen. Wenn sie kleiner als m ist, werden im Schritt 135 j* = j und m auf den Wert der Gleichung (12) gesetzt. Das ist momentan der kleinste Wert von m. Dann geht der Ablauf zum Schritt 140. Der Ablauf geht ebenfalls zum Schritt 140, wenn im Schritt 125 kein Pfad vorhanden ist oder wenn im Schritt 130 berechnet wird, dass die Gleichung (12) gleich m oder größer ist. Im Schritt 140 wird j erhöht. Im Schritt 145 wird geprüft, ob j kleiner oder gleich N ist. Wenn das der Fall ist, erfolgt eine Rückkehr zum Schritt 125. Andernfalls geht der Ablauf zum Schritt 150, in dem m mit unendlich verglichen wird. Wenn m nicht kleiner als unendlich ist, ist kein Pfad von dem Hilfsknoten zu irgendeinem Knoten vorhanden, und es gibt somit keine plausible Lösung für das Problem. Deswegen wird die Prozedur im Schritt 155 angehalten. Andernfalls geht der Ablauf zum Schritt 160 und findet den kürzesten derartigen Pfad. Im Schritt 165 wird die Buchung an diesem Pfad ausgeführt, indem die geeigneten Werte von xi,j und yi,j erhöht bzw. vermindert werden. Dadurch wird eine Einheit der Betriebsmittel aus dem Hilfsknoten entnommen und eine Einheit der Betriebsmittel wird dem Server j* zugefügt, wie später unter Bezugnahme auf 3c genauer beschrieben wird. Anschließend wird im Schritt 170 eine Buchung an dem gerichteten Pfad ausgeführt, wobei wiederum sichergestellt ist, dass die Gleichungen (7) bis (11) erfüllt sind. Einige gerichtete Bögen können in diesem Prozess, der später unter Bezugnahme auf 3d genauer beschrieben wird, hinzugefügt sowie einige entfernt werden. Im Schritt 175 wird k erhöht. Im Schritt 180 wird k geprüft um festzustellen, ob k kleiner oder gleich C + D ist. Wenn das nicht der Fall ist, endet die Prozedur im Schritt 185 mit der endgültigen Lösung xi,j und yi,j, andernfalls erfolgt eine Rückkehr zum Schritt 120, um die Prozedur fortzusetzen.
  • In 2 ist ein Pfad in dem gerichteten Graphen der klassenbeschränkten Betriebsmittelzuweisungsprozedur dargestellt. Es wird angemerkt, dass alle Knoten und gerichteten Bögen des Graphen hier gezeigt sind. Eine Belastung wird von dem "Knoten 0" 20 zu dem Gewinnerknoten (Serverknoten) 25, d.h. zu dem mit dem Knoten 0 verbundenen Knoten, dessen erste Differenz minimal ist, übertragen. Der gerichtete Pfad, der gezeigt ist, sollte der kürzeste Pfad sein. Die gerichteten Bögen sind mit 1 bis 5 nummeriert. In der Figur wird eine neue (öffentliche oder private) Anforderung für eine Website über den gerichteten Bogen 1 zugewiesen, wobei der erste (Server-)Knoten 21, dem sie zugewiesen ist, seinen Grad an Aktivität nicht ändert. Tatsächlich besitzt keiner der ersten vier Serverknoten 21 bis 24 einen unterschiedlichen Grad an Aktivität. Der fünfte Serverknoten, der Gewinnerserverknoten 25, erfährt einen Zuwachs von einer Aktivitätseinheit auf Kosten des Hilfsknotens 20.
  • In 3b ist ein Ablaufplan der Initialisierungsprozedur gezeigt, die dem Schritt 110 von 3 entspricht. Im Schritt 400 wird j = 1 initialisiert, und anschließend wird im Schritt 405 geprüft, ob Lj größer als 0 ist. Wenn das der Fall ist, wird im Schritt 410 i auf den Anfangswert 1 gesetzt, und im Schritt 415 wird geprüft, ob aj größer als 0 ist. Wenn das der Fall ist, wird im Schritt 420 geprüft, ob xi0 größer als 0 ist. Wenn das der Fall ist, wird im Schritt 425 ein gerichteter Bogen vom Hilfsknoten 0 zu j gerichtet, und der Ablauf geht zum Schritt 430. Wenn einer der Schritte 415 oder 420 ein negatives Ergebnis erbringt, geht der Ablauf zum Schritt 435, in dem geprüft wird, ob bj größer als 0 ist. Wenn das der Fall ist, wird im Schritt 440 geprüft um festzustellen, ob yi0 größer als 0 ist. Wenn das der Fall ist, geht der Ablauf wie zuvor zum Schritt 425. Wenn einer der Schritte 435 oder 440 negativ ausfällt, geht die Steuerung zum Schritt 430, in dem j erhöht wird. Im Schritt 445 wird geprüft, ob j kleiner oder gleich N ist. Wenn das nicht der Fall ist, geht Steuerung in der Schleife zurück zum Schritt 405, andernfalls endet der Ablauf am Schritt 450.
  • Im 3c ist ein Ablaufplan der Pfadbuchungsprozedur des Schritts 165 von 3 gezeigt. Bei diesem Ablaufplan wird angenommen, dass der kürzeste Pfad k gerichtete Bögen besitzt und von j0 = 0 nach j1 und j2 usw. bis jk = j angegeben ist. Im Schritt 500 wird j = 0 initialisiert, und im Schritt 505 wird i = 0 initialisiert. Im Schritt 510 wird geprüft, ob ai,j = ai(j + 1) = 1. Wenn das der Fall ist, wird im Schritt 515 geprüft, ob xi,j größer als 0 ist. Wenn das der Fall ist, werden im Schritt 520 xi,j erhöht und xi(j + 1) vermindert. Wenn einer der Schritte 510 oder 515 ein negatives Ergebnis erbringt, geht der Ablauf zum Schritt 525, in dem analog geprüft wird, ob bi,j = bi(j + 1) = 1. Wenn das der Fall ist, wird im Schritt 530 geprüft, ob yi,j größer als 0 ist. Wenn das der Fall ist, werden im Schritt 535 yi,j erhöht und yi(j + 1) vermindert. Wenn einer der Schritte 525 oder 530 ein negatives Ergebnis erbringt, geht der Ablauf zum Schritt 540, in dem i erhöht wird und eine Rückkehr zum Schritt 510 erfolgt (es ist bekannt, dass ein Server i durch die Randbedingungen diese Prüfung schließlich erfolgreich bestehen wird). Nach dem Schritt 520 oder dem Schritt 535 geht der Ablauf zum Schritt 545, in dem j erhöht wird. Es erfolgt im Schritt 550 eine Prüfung, um festzustellen, ob j kleiner als k ist. Wenn das der Fall ist, erfolgt die Rückkehr zum Schritt 505. Wenn das nicht der Fall ist, endet die Prozedur im Schritt 555.
  • In 3d ist ein Ablaufplan der Graphbuchungsprozedur des Schritts 170 von 3 gezeigt. Beginnend im Schritt 600 wird j1 auf den Anfangswert 1 gesetzt. Im Schritt 605 wird j2 auf den Anfangswert 1 gesetzt. Es erfolgt im Schritt 610 eine Prüfung, um festzustellen, ob die Bedingung (9) in Bezug auf Lj2 erfüllt ist. Wenn das nicht der Fall ist, endet die Prozedur im Schritt 612, andernfalls wird im Schritt 615 i = 1 initialisiert, und anschließend wird im Schritt 625 geprüft, ob aj1 = aj2 = 1. Wenn das der Fall ist, wird im Schritt 625 geprüft, ob aij1 größer als 0 ist. Wenn das der Fall ist, wird im Schritt 630 ein gerichteter Bogen vom Knoten j1 zum Knoten j2 erzeugt, und der Ablauf geht zum Schritt 635, in dem j2 erhöht wird. Wenn einer der Schritte 620 und 625 ein negatives Ergebnis erbringt, geht der Ablauf zum Schritt 640, in dem geprüft wird, ob bj1 = bj2 = 1. Wenn das der Fall ist, wird im Schritt 645 geprüft, ob yij2 größer als 0 ist. Wenn das der Fall ist, geht der Ablauf wie zuvor zum Schritt 630. Wenn einer der Schritte 640 und 645 ein negatives Ergebnis erbringt, geht der Ablauf zum Schritt 635. Im Schritt 650 wird geprüft, ob j2 kleiner oder gleich N ist. Wenn das der Fall ist, wird im Schritt 655 j1 erhöht und der Ablauf geht zum Schritt 660, in dem geprüft wird um festzustellen, ob j1 kleiner oder gleich N ist. Wenn das nicht der Fall ist, endet der Ablauf im Schritt 665. Wenn die Prüfung im Schritt 650 ein negatives Ergebnis erbringt, geht der Ablauf zum Schritt 670, in dem geprüft wird, ob j1 = j2. Wenn j1 = j2, erfolgt eine Rückkehr zum Schritt 635, andernfalls erfolgt eine Rückkehr zum Schritt 610. Wenn die Prüfung im Schritt 660 ein negatives Ergebnis erbringt, geht der Ablauf zum Schritt 675, in dem ebenfalls geprüft wird, ob j1 = j2. Wenn j1 = j2, erfolgt eine Rückkehr zum Schritt 655, andernfalls erfolgt eine Rückkehr zum Schritt 605.
  • Die dynamische Prozedur (Dynamik)
  • In 4 wird die Komponente „Dynamische Prozedur" der Belastungsausgleichsprozedur beschrieben. Die Technik setzt Zuweisungen (der Komponente „Statische Prozedur") der Sites zu Servern als gegeben voraus. Das läuft auf die Bestimmung der Matrizen A und B hinaus. Sie überwacht dann die genauen oder genäherten Belastungen an den Servern sowie die Ankunft neuer Kundenanforderungen bei dem Netzwerkverteiler. Die Aufgabe der Komponente „Dynamische Prozedur" besteht darin, Leitwegentscheidungen in dem Netzwerkverteiler für die in Warteschlangen angeordneten Anforderungen zu treffen, indem sie geeigneten Servern zugewiesen werden. Dadurch wird versucht, in einem möglichen Umfang die optimale durchschnittliche Reaktionszeit und Serverbelastungspegel, die durch die Zielvorgabe-Prozedur festgelegt wurden, zu erreichen. Sie ruft tatsächlich die Zielvorgabe-Prozedur an dem in dem Netzwerkverteiler in Warteschlangen angeordneten Verkehr auf, um ihre Entscheidungen zu treffen. Die Leitwegentscheidungen könnten über eine exakte oder eine wahrscheinlichkeitstheoretische Verfahrensweise realisiert werden. Nachdem die Anforderungen durch die Komponente „Statische Prozedur" Servern zugewiesen wurden, werden sie bei diesen Servern erfüllt. Mit anderen Worten, in der bevorzugten Ausführungsform wird die Entscheidung des Netzwerkverteilers als endgültig betrachtet, und Anforderungen können bei den Servern selbst anhand der Belastung nicht umgeleitet werden.
  • Es ist nützlich, einige Metabezeichnungen zu definieren. Zu jedem vorgegebenen Zeitpunkt ist eine bestimmte Belastung in dem Netzwerkverteiler in Warteschlangen angeordnet, und eine bestimmte Belastung ist bereits an die Server verteilt. Diese beiden Typen der Belastung sowie die Gesamtbelastung sollen unterschieden werden. Ein einzelner Punkt wird verwendet, wenn es sich um Variable handelt, die die Belastung in dem Verteiler betrifft, und ein doppelter Punkt wird verwendet, wenn es sich um eine Variable handelt, die die Belastung in dem Verteiler betrifft. Wenn keine Punkte verwendet werden, bezieht sich die Variable auf die kombinierte Verteiler- und Serverbelastung.
  • Das Verfahren überwacht die gegenwärtige Anzahl von verteilten öffentlichen Anforderungen c ..i,j und die Anzahl von verteilten privaten Anforderungen d ..i,j für die Website i am Server j. Die Komponente „Dynamische Prozedur" reagiert nicht direkt auf Beendigungen der Anforderungen bei den Servern, sie vermindert jedoch die Werte von c ..i,j und d ..i,j in geeigneter Weise. Wenn diese Daten nicht einfach zur Verfügung stehen, können sie geschätzt werden. Zwischenzeitlich kommen neue Anforderungen an und werden in dem Netzwerkverteiler in Warteschlangen angeordnet. ċi soll die Anzahl der neuen öffentlichen Anforderungen für die Website i seit der letzten Ausführung der Komponente „Dynamische Prozedur" bezeichnen. In ähnlicher Weise soll ḋi die Anzahl der neuen privaten Anforderungen für die Website i seit der letzten Ausführung der Komponente „Dynamische Prozedur" bezeichnen. Zusammenfassend sollen
    Figure 00340001
    die Gesamtzahl von in Warteschlangen angeordneten öffentlichen bzw. privaten Anforderungen in dem Verteiler bezeichnen.
  • Die Komponente „Dynamische Prozedur" kann so beschaffen sein, dass sie nach einem festen Zeitintervall erwacht und ausgeführt wird, nachdem die Anzahl von Elementen Ċ und Ḋ in der Warteschlange einen festen Schwellenwert der Stapelgröße erreicht, oder es kann möglicherweise eine bestimmte Kombination beider Kriterien verwendet werden.
  • Die Zielvorgabe-Prozedur wird auf die Anforderungen angewendet, die in dem Netzwerkverteiler in Warteschlangen angeordnet sind, während die zuvor verteilten Anforderungen unberücksichtigt bleiben. Dazu sollte eine bestimmte Buchung erforderlich sein. Im Einzelnen wird für jeden Server j eine neue konvexe ansteigende Funktion Ṙj(z) definiert, indem
    Figure 00340002
    gesetzt wird.
  • Diese Funktion verschiebt einfach die ursprüngliche Funktion, um dem Betrag der nichtveränderbaren Belastung im Server Rechnung zu tragen. Aus dem gleichen Grund wird außerdem für jeden Server j eine abgestimmte annehmbare Belastung L .j definiert, indem
    Figure 00350001
    gesetzt wird.
  • Mit diesen Formeln wird die optimale Möglichkeit zum Verteilen der Ċ und Ḋ in Warteschlangen angeordneten Anforderungen festgelegt, indem das folgende eingeschränkte Problem der Komponente „Dynamische Prozedur" gelöst wird: Miminieren von
    Figure 00350002
    bei den Randbedingungen
    Figure 00350003
    i,j = 0 if ai,j = 0, (18)
    Figure 00360001
    i,j = 0 if bi,j = 0, (20)was dem Schritt 200 von 4 entspricht. Selbst bei der optimalen Lösung ist die Gesamtbelastung
    Figure 00360002
    des Servers j insgesamt nicht optimal. Sie ist jedoch optimal in Bezug auf die zusätzliche Randbedingung, dass keine zuvor zugewiesene Belastung zwischen Servern übertragen werden kann.
  • Ferner wird angemerkt, dass für den Spezialfall, in dem die Technik immer dann erwacht, wenn eine neue Anforderung bei dem Netzwerkverteiler ankommt, so dass entweder ċi,j = 1 oder ḋi,j = 1 für eine Website ij ist, die Prozedur einfach ein Greedy-Algorithmus ist. Mit anderen Worten, wenn ċi,j = 1, so dass eine neue öffentliche Anforderung für die Website ij zugewiesen werden soll, wird der Server j ausgewählt, der ai,j = 1 und
    Figure 00360003
    erfüllt, dessen erste Differenz
    Figure 00360004
    minimal ist. Wenn ḋi,j = 1, so dass eine neue private Anforderung für die Website ij zuzufügen ist, wird der Server j ausgewählt, der bi,j = 1 und die Randbedingung der Belastungsbegrenzung erfüllt, deren erste Differenz, die durch den Ausdruck (21) angegeben ist, minimal ist.
  • Die dynamische Prozedur kann durch das in den 5 und 6 gezeigte Beispiel erläutert werden. Es wird eine Konfiguration aus 15 Servern betrachtet, die 8 Sites beherbergen. Es sind 5 Server zugewiesen, um öffentlichen Websiteverkehr abzuwickeln. Diese werden als Cluster-Server bezeichnet, da jeder derartige Server die Fähigkeit besitzt, Verkehr von mehreren Sites abzuwickeln. Es gibt außerdem 10 Server, die für die Abwicklung von privatem Websiteverkehr zugewiesen sind. Diese werden deshalb als Partition-Server bezeichnet. Jeder derartige Server kann sowohl öffentlichen als auch privaten Verkehr abwickeln, jedoch nur von einer einzelnen Website. Es wird 5 betrachtet, die eine Auflistung von Websitesymbolen für dieses Beispiel ist. Jedes Symbol besitzt eine Form, die für die Website eindeutig ist. circularlogic.com wird z.B. durch einen Kreis repräsentiert. Die grauen Symbole geben öffentlichen Verkehr an, und die schwarzen Symbole geben privaten Verkehr an. Die relevanten Zuordnungen der Cluster- und Partition-Server sind außerdem angegeben. Das sind die Zeilensummen
    Figure 00370001
    der Zuweisungsmatrizen A bzw. B. circularlogic.com ist z.B. 3 Cluster-Servern und 2 Partition-Servern zugewiesen.
  • All das ist in 6 genauer dargestellt. Die innere Schleife enthält die 5 Cluster-Server C1 bis C5, und die äußere Schleife enthält die zehn Partition-Server P1 bis P10. Es wird angemerkt, dass circularlogic.com den Cluster-Servern C1, C2 und C5 zugewiesen ist. Am Server C1 muss der öffentliche Verkehr den Server mit dem öffentlichen Verkehr für hexnut.com und eggcentric.com gemeinsam benutzen. circularlogic.com ist gleichfalls den Partition-Servern P1 und P2 zugewiesen. Jeder dieser beiden Server wickelt sowohl öffentlichen als auch privaten Verkehr ab, jedoch nur für diese Website.
  • Eigentlich stellt 6 mehr Informationen dar. Sie zeigt einen geringfügig modifizierten gerichteten Graphen der Art, die durch die Zielvorgabe-Prozedur verwendet wird. Es wird nochmals auf 2 verwiesen, die einen kürzesten Pfad von dem Hilfsknoten zu einem Serverknoten zu einem bestimmten Zeitpunkt in der Lösung des klassenbeschränkten Betriebsmittelzuweisungsproblems veranschaulicht. Im Gegensatz dazu zeigt 6 einen gerichteten Graphen H, der mit einer Ausnahme alle gerichteten Bögen und Knoten zu einem derartigen Zeitpunkt zeigt. (Die Ausnahme besteht darin, dass der Hilfsknoten und die von ihm kommenden gerichteten Bögen entfernt wurden.)
  • Deshalb ist H in der folgenden Weise definiert: Die Knoten entsprechen den Servern. Für jedes Paar j1 und j2 von unterschiedlichen Serverknoten gibt es einen gerichteten Bogen von j1 zu j2, vorausgesetzt, es ist wenigstens eine Website i1 vorhanden, die die Bedingungen (7) bis (9) oder die Bedingungen (10), (11) und (9) erfüllt.
  • In 6 erscheinen nicht alle gerichteten Bögen in beiden Richtungen, da sie möglicherweise nicht alle relevanten Randbedingungen erfüllen. Es gibt z.B. keinen gerichteten Bogen von P3 zu P4, offensichtlich deswegen, weil an P3 keine Belastung vorhanden ist, weder eine öffentliche (Bedingung 8) noch eine private (Bedingung 11). Es gibt keinen gerichteten Bogen von C3 zu P7, offensichtlich deswegen nicht, weil P7 bei voller Kapazität betrieben wird (Bedingung 9). Es gibt keinen Bogen in beiden Richtungen zwischen C1 und P3, offensichtlich deswegen nicht, weil an P3 keine öffentliche Belastung vorhanden ist (Bedingung 8) und weil C1 bei voller Kapazität betrieben wird. Es gibt keinen Bogen in beiden Richtungen zwischen P1 und C4, da weder die Bedingung (7) noch die Bedingung (10) erfüllt sind.
  • Das Vorhandensein eines gerichteten Bogens gibt wiederum die Möglichkeit an, die Belastung am Server zu verringern, die Belastung an einem anderen Server zu vergrößern, ohne die Belastungskapazität zu überschreiten, und die Belastungen an anderen Servern unverändert zu lassen. Ein gerichteter Pfad von dem Hilfsknoten zu einem der Serverknoten ermöglicht die Übertragung einer Belastungseinheit von dem Bereitstellungsknoten zu diesem Server, wobei alle anderen Serverknoten unverändert gelassen werden. Nach dieser Übertragung kann der Graph H über eine Buchungstechnik modifiziert sein, um den gegenwärtigen Zustand der Randbedingungen (8), (9) und (11) zu berücksichtigen. (Der Zustand der Randbedingungen (7) und (10) bleibt bestehen.)
  • In 6 sind drei unterschiedliche Typen von gerichteten Bögen ersichtlich. Ein Typ, der mögliche Übertragungen einer öffentlichen oder aber einer privaten Belastung von einem Partition-Server zu einem anderen angibt, ist zwischen P1 und P2 zu sehen. Ein zweiter Typ, der mögliche Übertragungen einer öffentlichen Belastung von einem Partition-Server an einen Cluster-Server oder umgekehrt angibt, ist zwischen P1 und C1 zu sehen. Ein dritter Typ, der mögliche Übertragungen einer öffentlichen Belastung von einem Cluster-Server zu einem anderen angibt, ist zwischen C1 und C2 zu sehen.
  • Es sollte klar sein, dass es umso wahrscheinlicher ist, dass die Zielvorgabe-Prozedur hochwertige Ergebnisse mit der Folge kürzerer Reaktionszeiten erzielen kann, je dichter der Graph H in Bezug auf das Vorhandensein möglichst vieler gerichteter Bögen ist. Das ist die Aufgabe der Komponente „Statische Prozedur", die nachfolgend beschrieben wird.
  • Eine genaue Ausführungsform der dynamischen Prozedur ist in dem Ablaufplan von 4 gezeigt. Der Steuerungsablauf beginnt im Schritt 200, wobei die Zielvorgabe-Prozedur verwendet wird, um eine Lösung für die optimalen Zielvorgaben ẋi,j und ẏi,j für jede Website i und jeden Server j zu erhalten. Im Schritt 205 wird k = 1 gesetzt. Im Schritt 210 werden ẋi,j und ẏi,j für jede Website i und jeden Server j auf 0 gesetzt. Diese Variablen werden den Fortschritt des Verteilers in Bezug auf die Aufgaben zählen. Im Schritt 215 wird festgestellt, welche Website der Anforderung k in der Warteschlange entspricht. Im Schritt 220 wird festgestellt, ob die Anforderung öffentliche oder privat ist. Es gibt für jede dieser beiden Möglichkeiten vergleichbare Abläufe, wobei hier die öffentliche Alternative im Vordergrund stehen soll. Diese beginnt mit dem Schritt 225, in dem j = 1 und M auf minus unendlich gesetzt werden. Es wird versucht, den Server mit der maximalen Differenz zwischen den Zielvorgaben und den erreichten Werten in der folgenden Weise zu finden: Im Schritt 230 wird gefragt, ob M kleiner als ẋi,j – Ẋi,j ist. Wenn das der Fall ist, werden im Schritt 235 j* = j und M = ẋi,j – Ẋi,j gesetzt, und der Ablauf geht zum Schritt 240. Es erfolgt auch eine Verzeigung zum Schritt 240, wenn die Prüfung im Schritt 230 ein negatives Ergebnis erbringt. Im Schritt 240 wird j erhöht. Im Schritt 245 wird gefragt, ob j kleiner oder gleich N ist. Wenn das der Fall ist, erfolgt die Rückkehr zum Schritt 230. Wenn das nicht der Fall ist, wurde ein Gewinnerserver j* erhalten, und im Schritt 250 wird Ẋi,j* erhöht, und die Anforderung k wird zu dem Server j* verteilt. Der Ablauf geht dann zum Schritt 255, in dem k erhöht wird. Im Schritt 260 wird geprüft, ob k kleiner oder gleich Ċ + Ḋ ist. Wenn das der Fall ist, erfolgt eine Rückkehr zum Schritt 230, um die nächste Anforderung zu verteilen. Wenn das nicht der Fall ist, wird der Ablauf angehalten, da die Warteschlange der Anforderungen geleert wurde. Wenn der Schritt 220 feststellt, dass die Anforderung eine private Anforderung ist, geht der Ablauf zu den Schritten 270 bis 295. Diese Schritte sind exakt analog den Schritten 225 bis 250 mit der Ausnahme, dass sie an Stelle von öffentlichen Anforderungen private Anforderungen behandeln. Der Steuerungsablauf kehrt schließlich wieder zum Schritt 230 zurück.
  • Die Komponente „Statische Prozeduren"
  • Unter Bezugnahme auf die 7 bis 9 wird nachfolgend die Komponente „Statische Prozedur" beschrieben, die Sites Servern zuweist. Die Aufgabe besteht darin, die erreichbare Leistungsfähigkeit der Zielvorgabe-Prozedur und somit die Komponente „Dynamische Prozedur" zu optimieren. Die wesentliche Eingabe in die Komponente „Statische Prozedur" ist die Vorhersage des durchschnittlichen Bedarfs an öffentlichen und privaten Anforderungen für jede Website sowie alle Randbedingungen zu den zulässigen Website-Server-Zuweisungen. Der Ausgang der Komponente „Statische Prozedur" sind einfach die zwei {0, 1}-Zuweisungsmatrizen A = (ai,j) und B = (bi,j).
  • Es wird außerdem angenommen, dass die Randbedingungen von Website-Server-Zuweisungen vorgegeben sind. Diese Randbedingungen könnten die physischen Kapazitäten des Servers selbst, die Aufgabe zum Erreichen von annehmbar hohen Cachetrefferraten, die Betriebssysteme bei den Servern, feste Serverzuweisungen, die bestimmte Sites vereinbart haben könnten usw., betreffen. Derartige Randbedingungen könnten recht kompliziert oder ganz einfach sein. Eine Cachespeicher-Randbedingung könnte z.B. verhältnismäßig komplex sein, wobei sie möglicherweise auf einem analytischen Trefferratenmodell, dem Standort der Website-Daten und der Cachespeichergröße beruht. Sie könnte die Wirkung haben, dass sie sicherstellt, dass jedem Server eine verhältnismäßig kleine Anzahl von Sites zugewiesen wird. Eine Betriebssystem-Randbedingung könnte dagegen einfach eine Liste von den Sites sein, die für bestimmte Server ungeeignet sind. Der Kernpunkt besteht darin, dass die Komponente „Statische Prozedur" dem Wesen nach heuristisch ist und die Randbedingungen behandeln kann, indem sie diese einfach prüft, bevor Änderungen der Zuweisungen in Betracht gezogen werden.
  • Die Komponente „Statische Prozedur" hat zwei mögliche Betriebsarten. Die Ausgangsbetriebsart (9) wird verwendet, um ein neues System, ein System, für das bisher noch keine Sites Servern zugewiesen wurden, von Grund auf zu konfigurieren. Die inkrementelle Betriebsart wird dann periodisch verwendet, um vorhandene Website-Server-Zuweisungen anhand von abgestimmten Vorhersagen des Website-Bedarfs einzustellen. Um sicherzustellen, dass die Realisierung dieser Einstellung machbar ist, wird eine Randbedingung berücksichtigt, die die zulässige Anzahl von zulässigen Änderungen der Website-Server-Zuweisungen begrenzt. Es ist ersichtlich, dass beide Betriebsarten im Wesentlichen die gleiche Methodologie verwenden. Bei der Ausgangsbetriebsart könnte die Notwendigkeit bestehen, analytische Modelle für Reaktionszeitfunktionen zu verwenden, während bei der inkrementellen Betriebsart stattdessen genauer gemessene Reaktionszeiten verwendet werden könnten. Diese würden vermutlich die Wirkungen des Cachespeichers und anderer echter Phänomene besser wiedergeben.
  • Das Inkrementieren der Komponente „Statische Prozedur" sollte nicht zu häufig ausgeführt werden, da offensichtlich ein Aufwand bei der Ausführung der Zuweisungsänderungen entsteht. Einmal pro Woche ist wahrscheinlich vernünftig. Die exakte Häufigkeit wird von dem Kompromiss zwischen diesem Aufwand und der Möglichkeit der Leistungsverbesserung bei vorgegebenen aktualisierten Website-Vorhersagen abhängen. Ein Ablauf der statischen Prozedur könnte vermutlich durch die Erfassung einer bestimmten Art einer Bedingung des Lastungleichgewichts ausgelöst werden.
  • Eine Hauptaufgabe besteht in beiden Betriebsarten darin, eine hohe Verbindungsfähigkeit des ungerichteten Graphen G zu erreichen, die in der folgenden Weise definiert ist: Die Knoten entsprechen den Servern. Für jedes Paar j1 und j2 verschiedener Knoten gibt es einen Bogen zwischen und j2, vorausgesetzt, es ist wenigstens eine Website vorhanden, für die
    Figure 00440001
    oder wenigstens eine Website i1, für die
    Figure 00440002
    Diese Randbedingungen imitieren die Randbedingungen (7) und (10) in der Definition für den gerichteten Graphen H. Da die Randbedingungen (8), (9) und (11) im Allgemeinen in allen gut ausgeglichenen Webfarmen erfüllt sind, ist die Vorstellung derart, dass G als ein effektiv bedingt geeigneter Ersatz für H dient. Es wird außerdem angemerkt, dass die Randbedingungen (7) und (10) im Wesentlichen statisch sind, während die Randbedingungen (8), (9) und (11) im Grunde dynamisch sind. Deswegen ist G für die Komponente „Statische Prozedur" besser geeignet.
  • 7 zeigt den Graphen G für das oben beschriebene Beispiel. Es wird auf die Ähnlichkeiten zu dem in 6 gezeigten gerichteten Graphen H hingewiesen. Es gibt jedoch in 7 einen Bogen zwischen den Servern C1 und P3, wobei 6 keinen vergleichbaren gerichteten Bogen in den beiden Richtungen aufweist. Außerdem stimmen mehrere andere gerichtete Bögen in 6, wie etwa der Bogen vom Server P3 zum Server P3, nicht mit gerichteten Bögen in der entgegengesetzten Richtung überein. Es wird darauf hingewiesen, dass in 7 Bögen zwischen zwei Cluster-Servern als durchgehende Linien, Bögen zwischen zwei Partition-Servern als punktierte Linien und Bögen zwischen einem Cluster-Server und einem Partition-Server als gestrichelte Linien dargestellt sind.
  • Die Zielfunktion, deren Optimierung versucht wird, ist die der Komponente Zielvorgabe-Prozedur selbst, die in der Erfindung als Blackbox behandelt wird. Der Sinn besteht darin, dass dieser Wert, effektiv die durchschnittliche Reaktionszeit, deutlich direkter geeignet ist als jeder der anderen beiden graphentheoretischen, bedingt geeigneten Ersatzwerte (Durchmesser oder durchschnittlicher Abstand) und im Wesentlichen mit keinem größeren rechentechnischen Aufwand zu berechnen ist.
  • Die verwendete Metabezeichnung besteht darin, dass eine Tilde (~) die Formulierung des Problems der statischen Prozedur bezeichnet.
  • Im Weiteren wird eine neue Matrix à definiert, die den Raum von (in gewissem Sinn bevorzugten) Zuweisungen von Sites zu Servern in der folgenden Weise beschreibt: à = (ãi,j) ist wieder eine {0, 1}-Matrix der Größe M × N. Unter den typischen Bedingungen, dass sowohl öffentlicher als auch privater Verkehr für jede Website vorhanden ist, erfolgt die Umsetzung von à zu Aà in der folgenden Weise: ai,j = ãi,j (22)
  • Figure 00450001
  • Dadurch wird die implizite Annahme getroffen, dass jeder Server j, für den die Zeilensumme
    Figure 00450002
    ist, ein Partition-Server sowohl mit öffentlichem Verkehr als auch mit privatem Verkehr für eine Website ist und alle anderen Server Server mit öffentlichem Verkehr mit mehreren Websites sind. Es wird darauf hingewiesen, dass alle möglichen Paare von Zuweisungsmatrizen A und B so betrachtet werden können, dass sie aus einer bestimmten Matrix à umgesetzt wurden. Diejenigen, die nicht umgesetzt werden können, sind jedoch weniger bevorzugt. Die Komponente „Statische Prozedur" wird sie nicht auswählen.
  • Es sind geringfügige Einstellungen erforderlich, um Spezialfälle zu behandeln. Wenn lediglich privater Verkehr für die Website i vorhanden ist, wird gefordert, dass ãi',j = 0 für i' ≠ i, wenn ãi,j = 1. Das macht j zu einem Partition-Server für die Website i. Es werden ai,j = 0 und bi,j = 1 gesetzt. Wenn für die Website i lediglich öffentlicher Verkehr vorhanden ist, kann jeder Server j, der dieser Website zugewiesen ist, offiziell als öffentlich betrachtet werden, selbst wenn
    Figure 00460001
    Deshalb werden ai,j = ãi,j und bi,j = 0 gesetzt.
  • Es muss außerdem die Reaktionszeitfunktion Rj für jeden Server i modifiziert werden, um die Fälle zu behandeln, bei denen die Last an diesem Server seine Lastgrenze Lj übersteigt. Derartige fehlende Ausführbarkeiten können zumindest in den frühen Stufen der Prozeduren der Komponente „Statische Prozedur" durchaus auftreten, und sie müssen behandelt werden, indem die Ausführbarkeit auf Kosten einer großen Zielfunktion erzwungen wird. Deshalb wird eine sehr große Anzahl Q betrachtet, und es soll gelten R ~j(k) = Rj(k) für k ≤ Lj, jedoch R ~j(Lj + 1) = R ~j(Lj) + Q, R ~j(Lj + 2) = R ~j(Lj + 1) + 2Q usw. Die allgemeine Rekursion definiert R ~j(Lj + k) = R ~j(Lj + k – 1) + kQ (24) für k > 0. Es wird angemerkt, dass R ~j konvex und ansteigend bleibt. Es wird außerdem die maximal zulässige Last als L ~j = ∞ neu definiert.
  • cc ~1 und d ~1 sollen die vorhergesagte öffentliche bzw. private Belastung für die Website i bezeichnen. Der Ausgangspunkt beruht auf dem Fall, bei dem für jede Website sowohl öffentlicher als auch privater Verkehr vorhanden sind, wobei jedoch geeignete Modifikationen rasch festgelegt werden können, wenn das nicht der Fall ist.
  • Ohne Verlust der Allgemeingültigkeit wird angenommen, dass die Sites in Bezug auf die erhöhte vorhergesagte Gesamtlast cc ~1 + d ~1 neu indexiert wurden. Es wird außerdem angenommen, dass die Server in Bezug auf die ansteigende Leistungsfähigkeit neu indexiert wurden. Das könnte z.B. durch ihre ursprüngliche maximal zulässige Belastung Lj festgestellt werden.
  • Der erste Schritt des Verfahrens der ursprünglichen Zuweisung besteht in der Zuordnung von Sites zu Servern in dem möglichen Umfang. Es kann Machbarkeitsbedingungen geben, die bestimmte Sites von bestimmten Servern einschränken, wobei diese berücksichtigt werden müssen. Deswegen wird beim Durchlaufen der Schleife in der Reihenfolge von Website i = 1 bis M, wie in den Schritten 305 bis 335 von 9 gezeigt ist, im Schritt 325
    Figure 00470001
    gesetzt, wobei j der niedrigste Index eines möglichen, jedoch momentan nicht zugewiesenen Servers ist, und bei der Initialisierung wird ãi,j = 0 für alle anderen j gesetzt. Es ist möglich, jedoch vermutlich sehr unwahrscheinlich, dass es keine ausführbaren Zuweisungen gibt, die für alle Sites möglich sind. Das könnte möglicherweise wegen der Randbedingungen vorkommen, und es könnte wegen M > N geschehen. In diesem Fall hat die ursprüngliche Zuweisungstechnik versagt. Andernfalls gibt an diesem Punkt M Partition-Server, und die verbleibenden N – M Server sind frei.
  • Die Zielfunktion wird für diese ursprüngliche Lösung berechnet, die sich ergibt als
  • Figure 00480001
  • Die ursprüngliche Lösung wird nun durch die Realisierung einer so genannten Heuristik "Neighborhood escape" modifiziert. Diese Heuristik verwendet ein Maß Δ, um die Abstände zwischen zwei möglichen Zuweisungen von Sites zu Servern zu messen, was im Folgenden kurz beschrieben wird. Kurz gesagt, die Heuristik "Neighborhood escape" ist eine iterative Verbesserungsprozedur, die versucht, ein Einfangen bei lokalen Minimalwerten zu verhindern, wobei ein verhältnismäßig geringer Berechnungsaufwand erreicht wird. Werden das im Voraus definierte Maß Δ für den Augenblick in dem Suchraum von plausiblen Lösungen und eine vorhandene ursprüngliche plausible Lösung, wie etwa die oben beschriebe Lösung, vorausgesetzt, läuft die Technik stufenweise ab. Am Anfang jeder Stufe gibt eine so genannte momentane Lösung, die während der Stufe modifiziert werden kann. Am Beginn der ersten Stufe ist die momentane Lösung die anfängliche Lösung.
  • Alle Stufen durchsuchen nacheinander die Umgebungen des Abstands 1, 2 usw. um die momentane Lösung. (Eine Umgebung des Abstands k um die momentane Lösung ist die Menge aller plausiblen Zuweisungen, deren Abstand von der momentanen Lösung kleiner als oder gleich k ist. Ein Ring mit dem Abstand k um die momentane Lösung ist die Menge aller plausiblen Zuweisungen, deren Abstand von der momentanen Lösung gleich k ist, was die Umgebung mit dem Abstand k minus die Umgebung mit dem Abstand k – 1 ist.) Wenn eine Verbesserung der Zielfunktion in der Umgebung mit dem Abstand 1 um die momentane Lösung gefunden werden kann, wählt die Heuristik die beste derartige Verbesserung aus, benennt sie als die momentane Lösung um, und iteriert den Prozess durch Beginnen der neuen Stufe. Wenn in der Umgebung mit dem Abstand 1 keine Verbesserung gefunden wird, betrachtet die Heuristik stattdessen den Ring mit dem Abstand 2. Es gibt wieder zwei Möglichkeiten: Wenn dabei eine Verbesserung auftritt, wird die beste derartige Verbesserung als die momentane Lösung ausgewählt, und die Prozedur beginnt die nächste Stufe. Wenn das nicht der Fall ist, betrachtet die Prozedur den Ring mit dem Abstand 3 usw. bis zu einer festen Abstandsgrenze, z.B. K. Wenn innerhalb des K-ten Rings keine Verbesserungen der Zielfunktion erreicht wurden, endet der Prozess mit einer endgültigen Lösung, die gleich der momentanen Lösung ist. Die Prüfungen der verschiedenen Ringe erfolgt in den Schritten 360, 380 und 285 von 9. Nach Verbesserungen wird im Schritt 370 geprüft.
  • 8 veranschaulicht diesen Prozess. Die momentane Lösung am Beginn der anfänglichen Stufe befindet sich am Mittelpunkt 400 der ersten Gruppe von Umgebungen DISTANCE 1. Die Heuristik sucht die erste Umgebung und nachfolgende Ringe nacheinander ab, bis eine Verbesserung gefunden wird. In der Figur ist lediglich der K-te Ring DISTANCE K derjenige, bei dem eine Verbesserung auftritt. Dann ersetzt die Heuristik die momentane Lösung als die beste Verbesserung, die bei dieser Suche gefunden wurde und durch den Mittelpunkt 410 repräsentiert wird, und beginnt die zweite Stufe. Die Figur zeigt die Umgebungen um diese Lösung. Eine Verbesserung zeigt die Umgebung um diese Lösung. Eine Verbesserung wird nun in dem dritten Ring gefunden. Nun beginnt die dritte Stufe, die jedoch in der Figur nicht gezeigt ist. Hätte der K-te Ring keine Verbesserung erzielt, wäre die ursprüngliche Lösung in der ersten Stufe die endgültige Lösung.
  • Nun wird das Abstandsmaß Δ definiert. Ã1 = (ã 1 / i, / j) und Ã2 = (ã 2 / i, / j ) sollen zwei derartige Zuweisungen sein, und es wird definiert
  • Figure 00500001
  • Die Absicht besteht dabei einfach in Folgendem: Wenn z.B. eine Zuweisung Ã1 zu einer neuen Zuweisung Ã2 modifiziert wird, indem eine einzelne Website zu einem der Server hinzugefügt oder von diesem entfernt wird, wird Δ(Ã1, A2) = 1 erhalten. Eine Verschiebung einer Website von einem alten Server zu einem neuen Server (dem die Website zuvor nicht zugewiesen war) besitzt in 8 den Abstand DISTANCE 2. Das Entfernen einer Website von einem Server und das gleichzeitige Hinzufügen einer anderen Website zu diesem Server, besitzt ebenfalls den Abstand DISTANCE 2. Ein Wechsel von verschiedenen Sites auf unterschiedlichen Servern besitzt den Abstand DISTANCE 4 usw.
  • Für eine vorgegebene Lösung à und ihre umgesetzten Zuweisungsmatrizen Aà und Bà enthält die Prüfung nach Verbesserungen das Lösen des Problems der Komponente Zielvorgabe-Prozedur der Minimierung von
    Figure 00510001
    bei den Randbedingungen
    Figure 00510002
    x ~i,j = 0 if ai,j = 0, (29)
    Figure 00510003
    und y ~i,j = 0 if bi,j = 0, (31)
  • Die Randbedingungen, die L ~j = ∞ enthalten, sind natürlich leer. Wenn jedoch der Betrag der Belastung, die den Grenzwert Lj übersteigen, vorgegeben ist, wäre zu erwarten, dass die Lösung für jeden Server j nach sehr wenigen Stufen in der Heuristik "Neighborhood escape" die Gleichung
    Figure 00520001
    erfüllt. Dadurch sollten Zuweisungen, die aus allen Perspektiven machbar sind, in einer kürzeren Reihenfolge erreicht werden können. Tatsächlich werden die ersten paar Stufen der Prozedur typischerweise Sites mit großem Volumen den momentan ungenutzten Servern zuweisen, und die Technik wird dann beginnen, Partition-Server zu Cluster-Servern zu machen, wobei typischerweise zuerst der Status der Server mit höherer Leistungsfähigkeit geändert wird.
  • Eine inkrementelle Prozedur wird periodisch ausgeführt, möglicherweise einmal pro Woche, um günstige Website-Server-Zuweisungen beim Vorhandensein veränderlicher Vorhersagen und dergleichen beizubehalten. Sie verwendet vorteilhaft die gleiche Methodologie.
  • Die ursprüngliche Lösung ist natürlich die momentane Lösung von dem letzten Durchlauf der Komponente „Statische Prozedur", die durch die Technik "Neighborhood escape" modifiziert wird. Die einzige Schwierigkeit besteht darin, dass ein zusätzliches Anhaltekriterium verwendet wird, ein Kriterium, das das Anhalten bewirkt, wenn der Abstand zwischen der ursprünglichen und der momentanen Lösung einen bestimmten, vom Anwender definierten Schwellenwert T überschreitet. Der Grund dafür besteht darin, dass es wirklich aufwändig ist, die Zuweisungsänderungen auszuführen und keine stark unterschiedlichen Lösungen zwischen aufeinanderfolgenden Durchläufen der Komponente „Statische Prozedur" zugelassen werden sollen.
  • In 9 ist eine genaue Ausführungsform der statischen Prozedur gezeigt. Zunächst wird im Schritt 300 Website i auf den Anfangswert 1 gesetzt. Im Schritt 305 wird der Server j auf den Anfangswert 1 gesetzt. Im Schritt 310 wird festgestellt, ob der Server j für die Website i geeignet ist. Wenn das der Fall ist, geht der Ablauf zum Schritt 320, in dem festgestellt wird, ob der Server j momentan nicht zugewiesen ist. Wenn er momentan nicht zugewiesen ist, wird er im Schritt 325 zugewiesen, und die Website i wird im Schritt 330 erhöht. Im Schritt 335 wird festgestellt, ob i kleiner oder gleich der Gesamtzahl der Sites M ist. Wenn das der Fall ist, geht der Ablauf zurück zum Schritt 305. Wenn die Prüfungen in den Schritten 310 oder 320 ein negatives Ergebnis erbracht haben, geht der Ablauf zum Schritt 340, in dem der Server j erhöht wird. Im Schritt 345 wird festgestellt, ob j kleiner oder gleich der Gesamtzahl von Servern N ist. Wenn das der Fall ist, kehrt der Ablauf zum Schritt 310 zurück. Wenn das nicht der Fall ist, erfolgt im Schritt 350 ein Halt mit einer nichtplausiblen Lösung. In dem Fall, wenn die Sites im Schritt 335 erschöpfend behandelt wurden, geht der Ablauf zum Schritt 355, in dem die Komponente "Neighborhood escape" der Prozedur begonnen wird. Der Wert R der Lösung, der durch die Gleichung (25) gegeben ist, wird berechnet. Im Schritt 360 wird k = 1 gesetzt. Im Schritt 365 wird der k-te Ring gesucht, um die bestmögliche Lösung Rk zu berechnen. Im Schritt 370 wird Rk im Vergleich mit der besten momentanen Lösung R berechnet. Wenn der neue Wert besser ist, wird dieser im Schritt 375 zur besten Lösung gemacht, und es erfolgt eine Rückkehr zum Schritt 360. Wenn der neue Wert nicht besser ist, wird im Schritt 380 k erhöht. Im Schritt 385 wird festgestellt, ob alle Ringe k erschöpfend behandelt wurden. Wenn das nicht der Fall ist, kehrt der Ablauf zum Schritt 365 zurück. Andernfalls erfolgt im Schritt 390 ein Halt mit der endgültigen Zuweisungslösung.
  • Die Beispiele der Erfindung können leicht an eine Automatisierung angepasst werden, indem z.B. konkret ein Programm aus Anweisungen auf einem maschinenlesbaren Speichermedium ausgeführt wird, das die Anweisungen ausführen kann, wie etwa ein Computer.
  • Es sollte außerdem klar sein, dass der Ausdruck "Website" nicht auf die Beispiele der Erfindung beschränkt sein soll, um sie bei HMTL-Dokumenten (Hypertext markup language) im weltweiten Netz zu verwenden, sie ist dagegen so vorgesehen, dass sie alle Anwendernetzwerk-Schnittstellen umfassen soll, die Kundenanforderungen empfangen, Ergebnisse ausgeben und mit einem Server kommunizieren können, wie z.B. in einem lokalen Netzwerk und dergleichen.
  • Es sollte klar sein, dass alle hier offenbarten physikalischen Größen, falls nicht anders angegeben, nicht als exakt gleich der offenbarten Größe, sondern stattdessen als etwa gleich der offenbarten Größe vorgesehen sind. Ferner sollte das bloße Fehlen einer Bewertung, wie z.B. "etwa" oder dergleichen, nicht als eine explizite Anzeige dafür angesehen werden, dass eine derartige offenbarte physikalische Größe eine exakte Größe ist, unabhängig davon, ob derartige Bewertungen in Bezug auf andere hier offenbarte physikalische Größen verwendet werden.

Claims (9)

  1. Verfahren zum Steuern einer Webfarm, die eine Vielzahl von Websites und Servern aufweist sowie ferner eine statische Prozedur aufweist, wobei das Verfahren umfasst: Klassifizieren von Kundenanforderungen, die durch die Websites empfangen wurden, in eine Vielzahl von Kategorien, wobei die Kategorien gemeinsam benutzbare Kundenanforderungen und nicht gemeinsam benutzbare Kundenanforderungen umfassen; Leiten der gemeinsam benutzbaren Kundenanforderungen in der Weise, dass jeder der Server gemeinsam benutzbare Kundenanforderungen, die von verschiedenen Websites der Websites empfangen wurden, verarbeiten kann; Leiten der nicht gemeinsam benutzbaren Kundenanforderungen von einer bestimmten Website der Websites nur zu bestimmten Servern, denen diese bestimmten Websites zugewiesen sind; dadurch gekennzeichnet, dass: der Schritt des Leitens der nicht gemeinsam benutzbaren Kundenanforderungen die statische Prozedur zum Zuweisen von bestimmten Websites von den Websites an bestimmte Server anhand einem vorhergesagten Bedarf an gemeinsam benutzbaren und nicht gemeinsam benutzbaren Kundenanforderungen von jeder Website umfasst.
  2. Verfahren nach Anspruch 1, das ferner eine Zielvorgabe-Prozedur umfasst, wobei die Zielvorgabe-Prozedur Folgendes umfasst: für jede Kundenanforderung Bestimmen eines optimalen Server unter den Servern, dem die jeweilige Kundenanforderung zugewiesen werden soll, um eine durchschnittliche Kundenreaktionszeit zu einem beliebigen Zeitpunkt minimal zu machen, wobei die Zuweisung dieser Websites zu den Servern und eine momentane Kundenanforderungslast vorgegeben sind.
  3. Verfahren nach Anspruch 2, bei dem die Zielvorgabe-Prozedur durch Minimieren der Funktion
    Figure 00560001
    in Abhängigkeit von den Randbedingungen Σ(xi,j + yi,j) ∊ {0, ..., Lj}
    Figure 00560002
    xi,j = 0 wenn ai,j = 0,
    Figure 00560003
    und yi,j = 0 wenn if bi,j = 0,erreicht wird, wobei M die Anzahl der Websites, N die Anzahl der Server, Rj die erwartete Reaktionszeit als eine Funktion der Kundenankunftsrate beim Server j, xij eine Entscheidungsvariable, die die hypothetische Anzahl von gemeinsam benutzbaren Kundenanforderungen für die Website i repräsentiert, die durch den Server j abgewickelt werden kann, yij eine Entscheidungsvariable, die die hypothetische Anzahl von nicht gemeinsam benutzbaren Kundenanforderungen für die Website i repräsentiert, die durch den Server j abgewickelt werden kann, Lj die maximal zulässige Belastung für den Server j, ci die momentane Anzahl von gemeinsam benutzbaren Kundenanforderungen von der Website i, di die momentane Anzahl von nicht gemeinsam benutzbaren Kundenanforderungen von der Website i, aij ein Index, der angibt, ob gemeinsam benutzbare Anforderungen von der Website i zum Server j geleitet werden können, und bij ein Index ist, der angibt, ob nicht gemeinsam benutzbare Anforderungen von der Website i zum Server j geleitet werden können.
  4. Verfahren nach Anspruch 3, das ferner umfasst: Erzeugen und Aufrechterhalten eines gerichteten Graphen, wobei der gerichtete Graph einen Hilfsknoten und eine Vielzahl von Serverknoten umfasst, wobei jeder Serverknoten einem der Server entspricht; Bezeichnen von einem der Serverknoten, für den der Ausdruck
    Figure 00570001
    minimal ist, als einen Gewinnerknoten; und Auswählen eines kürzesten gerichteten Pfades von dem Hilfsknoten zu dem Gewinnerknoten.
  5. Verfahren nach einem der Ansprüche 2 bis 4, ferner umfassend eine dynamische Prozedur, wobei die dynamische Prozedur umfasst: Prüfen der nächsten Kundenanforderung; Aufrufen der Zielvorgabe-Prozedur, um zu ermitteln, welcher Server der optimale Server ist, um gegenwärtig die nächste Kundenanforderung zu verarbeiten; und Senden der nächsten Kundenanforderung zu dem optimalen Server.
  6. Verfahren nach Anspruch 5, ferner umfassend: Empfangen der Kundenanforderungen in einer Warteschlange; und wobei die dynamische Prozedur ferner umfasst: Überwachen der Kundenanforderungen in der Warteschlange; Überwachen der Kundenanforderungen, die gegenwärtig von den Servern verarbeitet werden; Definieren einer Funktion Ṙj(z) für jeden j-ten Server durch Setzen von j(z) = Rj(z + Σ(c ..i,j + d ..i,j));Definieren einer abgestimmten zulässigen Belastung L .j für jeden j-ten Server durch Setzen von
    Figure 00590001
    und Aufrufen der Zielvorgabe-Prozedur, um die Ṙj(z)-Funktion und die abgestimmte zulässige Belastung L .j zum Minimieren der Funktion
    Figure 00590002
    in Abhängigkeit von den Randbedingungen
    Figure 00590003
    i,j = 0 wenn ai,j = 0,
    Figure 00590004
    und i,j = 0 wenn bi,j = 0,zu verwenden, wobei ẋij eine Entscheidungsvariable, die die hypothetische Anzahl von gemeinsam benutzbaren Anforderungen in der Warteschlange für die Website i repräsentiert, die durch den Server j abgewickelt werden kann, ẏij eine Entscheidungsvariable, die die hypothetische Anzahl von nicht gemeinsam benutzbaren Kundenanforderungen für die Website i repräsentiert, die durch den Server j abgewickelt werden kann, ċi die gegenwärtige Anzahl von nicht gemeinsam benutzbaren Anforderungen in der Warteschlange von der Website i, ḋi die gegenwärtige Anzahl von gemeinsam benutzbaren Anforderungen in der Warteschlange von der Website i, c ..i die gegenwärtige Anzahl von gemeinsam benutzbaren Anforderungen von der Website i, die gegenwärtig in einem der Server verarbeitet wird, und dd ..i die gegenwärtige Anzahl von nicht gemeinsam benutzbaren Anforderungen von der Website i ist, die gegenwärtig in einem der Server verarbeitet wird.
  7. Computerprogramm, das aus Befehlen besteht, die durch einen Computer abgearbeitet werden können, um ein Verfahren nach einem der Ansprüche 1 bis 6 auszuführen.
  8. Webfarm mit einer Vielzahl von Websites und Servern, wobei die Webfarm ferner umfasst: ein Mittel zum Empfangen von Kundenanforderungen vom Kunden; ein Mittel zum Verarbeiten der Kundenanforderungen, um Antworten zu erzeugen; ein Mittel zum Übertragen der Antworten zu den Kunden; ein Mittel zum Klassifizieren der Kundenanforderungen in gemeinsam benutzbare Anforderungen und nicht gemeinsam benutzbare Anforderungen; ein Mittel zum Lenken der gemeinsam benutzbaren Anforderungen in der Weise, dass irgendwelche der Server gemeinsam benutzbare Kundenanforderungen, die von unterschiedlichen Websites der Websites empfangen werden, verarbeiten können; gekennzeichnet durch: eine statische Prozedur zum Lenken der nicht gemeinsam benutzbaren Kundenanforderungen von bestimmten Websites der Websites lediglich zu bestimmten Servern, denen die bestimmten Websites anhand des vorhergesagten Bedarfs an gemeinsam benutzbaren und nicht gemeinsam benutzbaren Kundenanforderungen von jeder Website zugewiesen wurden.
  9. Webfarm nach Anspruch 8, ferner umfassend: einen Netzwerk-Lastverteiler, der ein Mittel umfasst zum Ausführen einer Zielvorgabe-Prozedur, einer statischen Prozedur und einer dynamischen Prozedur; wobei die Zielvorgabe-Prozedur umfasst: für jede Kundenanforderung Bestimmen eines optimalen Server unter den Servern, dem die jeweilige Kundenanforderung zugewiesen werden soll, um zu einem beliebigen vorgegebenen Zeitpunkt die durchschnittliche Kundenreaktionszeit minimal zu machen, wobei die Zuweisung der Websites zu den Servern und eine momentane Kundenanforderungsbelastung vorgegeben sind, wobei die gemeinsam benutzbaren Kundenanforderungen einem beliebigen Server zugewiesen werden können und die nicht gemeinsam benutzbaren Kundenanforderungen in Abhängigkeit davon, von welcher Website die nicht gemeinsam benutzbare Kundenanforderung stammt, lediglich bestimmten Servern zugewiesen werden können; wobei die statische Prozedur umfasst: Zuweisen bestimmter Websites zu bestimmten Servern; und wobei die dynamische Prozedur umfasst: Prüfen der nächsten Kundenanforderung; Aufrufen der Zielvorgabe-Prozedur, um zu bestimmen, welcher Server der optimale Server ist, um gegenwärtig die nächste Kundenanforderung zu verarbeiten; und Senden der nächsten Kundenanforderung zu dem optimalen Server.
DE60301202T 2002-01-24 2003-01-17 Verfahren und vorrichtung zur verkehrssteuerung einer web-farm Expired - Lifetime DE60301202T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US57516 1987-06-01
US10/057,516 US7356592B2 (en) 2002-01-24 2002-01-24 Method and apparatus for web farm traffic control
PCT/GB2003/000167 WO2003063447A1 (en) 2002-01-24 2003-01-17 Method and apparatus for web farm traffic control

Publications (2)

Publication Number Publication Date
DE60301202D1 DE60301202D1 (de) 2005-09-08
DE60301202T2 true DE60301202T2 (de) 2006-04-20

Family

ID=22011052

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60301202T Expired - Lifetime DE60301202T2 (de) 2002-01-24 2003-01-17 Verfahren und vorrichtung zur verkehrssteuerung einer web-farm

Country Status (10)

Country Link
US (1) US7356592B2 (de)
EP (1) EP1472846B1 (de)
JP (1) JP3989443B2 (de)
KR (1) KR100754296B1 (de)
CN (1) CN100556024C (de)
AT (1) ATE301364T1 (de)
CA (1) CA2471594C (de)
DE (1) DE60301202T2 (de)
TW (1) TWI238621B (de)
WO (1) WO2003063447A1 (de)

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7451183B2 (en) * 2003-03-21 2008-11-11 Hewlett-Packard Development Company, L.P. Assembly and method for balancing processors in a partitioned server
US7562143B2 (en) 2004-01-13 2009-07-14 International Business Machines Corporation Managing escalating resource needs within a grid environment
US7406691B2 (en) 2004-01-13 2008-07-29 International Business Machines Corporation Minimizing complex decisions to allocate additional resources to a job submitted to a grid environment
US7552437B2 (en) 2004-01-14 2009-06-23 International Business Machines Corporation Maintaining application operations within a suboptimal grid environment
US20060048157A1 (en) * 2004-05-18 2006-03-02 International Business Machines Corporation Dynamic grid job distribution from any resource within a grid environment
US7266547B2 (en) * 2004-06-10 2007-09-04 International Business Machines Corporation Query meaning determination through a grid service
US7584274B2 (en) * 2004-06-15 2009-09-01 International Business Machines Corporation Coordinating use of independent external resources within requesting grid environments
US7712102B2 (en) 2004-07-30 2010-05-04 Hewlett-Packard Development Company, L.P. System and method for dynamically configuring a plurality of load balancers in response to the analyzed performance data
US7712100B2 (en) * 2004-09-14 2010-05-04 International Business Machines Corporation Determining a capacity of a grid environment to handle a required workload for a virtual grid job request
US20060168584A1 (en) * 2004-12-16 2006-07-27 International Business Machines Corporation Client controlled monitoring of a current status of a grid job passed to an external grid environment
US7502850B2 (en) * 2005-01-06 2009-03-10 International Business Machines Corporation Verifying resource functionality before use by a grid job submitted to a grid environment
US7668741B2 (en) * 2005-01-06 2010-02-23 International Business Machines Corporation Managing compliance with service level agreements in a grid environment
US7793308B2 (en) * 2005-01-06 2010-09-07 International Business Machines Corporation Setting operation based resource utilization thresholds for resource use by a process
US7533170B2 (en) * 2005-01-06 2009-05-12 International Business Machines Corporation Coordinating the monitoring, management, and prediction of unintended changes within a grid environment
US7707288B2 (en) * 2005-01-06 2010-04-27 International Business Machines Corporation Automatically building a locally managed virtual node grouping to handle a grid job requiring a degree of resource parallelism within a grid environment
US20060149652A1 (en) * 2005-01-06 2006-07-06 Fellenstein Craig W Receiving bid requests and pricing bid responses for potential grid job submissions within a grid environment
US7590623B2 (en) * 2005-01-06 2009-09-15 International Business Machines Corporation Automated management of software images for efficient resource node building within a grid environment
US7761557B2 (en) * 2005-01-06 2010-07-20 International Business Machines Corporation Facilitating overall grid environment management by monitoring and distributing grid activity
US7562035B2 (en) 2005-01-12 2009-07-14 International Business Machines Corporation Automating responses by grid providers to bid requests indicating criteria for a grid job
US7571120B2 (en) 2005-01-12 2009-08-04 International Business Machines Corporation Computer implemented method for estimating future grid job costs by classifying grid jobs and storing results of processing grid job microcosms
US8176408B2 (en) * 2005-09-12 2012-05-08 Microsoft Corporation Modularized web provisioning
US20070101061A1 (en) * 2005-10-27 2007-05-03 Guruprasad Baskaran Customized content loading mechanism for portions of a web page in real time environments
US7979789B2 (en) * 2005-12-19 2011-07-12 Microsoft Corporation System and method of replacing a delegate component associated with a delegate modular software component at software execution time
US20080043965A1 (en) * 2006-08-01 2008-02-21 Microsoft Corporation Provision and Management of Conference Websites
JP2008097378A (ja) * 2006-10-12 2008-04-24 Nomura Research Institute Ltd ジョブ管理装置、ジョブ実行装置、及びそれら装置を含むジョブ管理システム
US8225192B2 (en) * 2006-10-31 2012-07-17 Microsoft Corporation Extensible cache-safe links to files in a web page
US20080114879A1 (en) * 2006-11-14 2008-05-15 Microsoft Corporation Deployment of configuration data within a server farm
US8849746B2 (en) * 2006-12-19 2014-09-30 Teradata Us, Inc. High-throughput extract-transform-load (ETL) of program events for subsequent analysis
US9294345B2 (en) * 2007-07-06 2016-03-22 Lg Electronics Inc. Wireless network management procedure, station supporting the procedure, and frame format for the procedure
WO2009094672A2 (en) * 2008-01-25 2009-07-30 Trustees Of Columbia University In The City Of New York Belief propagation for generalized matching
US8683062B2 (en) * 2008-02-28 2014-03-25 Microsoft Corporation Centralized publishing of network resources
US20090259757A1 (en) * 2008-04-15 2009-10-15 Microsoft Corporation Securely Pushing Connection Settings to a Terminal Server Using Tickets
US8612862B2 (en) 2008-06-27 2013-12-17 Microsoft Corporation Integrated client for access to remote resources
CN102317962B (zh) * 2008-12-12 2016-03-16 纽约市哥伦比亚大学理事会 机器优化装置、方法和系统
US8275853B2 (en) * 2009-01-29 2012-09-25 Hewlett-Packard Development Company, L.P. Method and system for a service intermediary selection in a web service management system
CA2761944A1 (en) 2009-05-20 2010-11-25 The Trustees Of Columbia University In The City Of New York Systems devices and methods for estimating
US9836783B2 (en) 2009-07-24 2017-12-05 Avago Technologies General Ip (Singapore) Pte. Ltd. Method and system for content selection, delivery and payment
US20120259956A1 (en) * 2011-04-07 2012-10-11 Infosys Technologies, Ltd. System and method for implementing a dynamic change in server operating condition in a secured server network
US20120259913A1 (en) * 2011-04-07 2012-10-11 Infosys Technologies, Ltd. System and method for implementing a dynamic change in server operating condition in a secured server network
JP5724687B2 (ja) 2011-07-04 2015-05-27 富士通株式会社 情報処理装置、サーバ選択方法、及びプログラム
US9082082B2 (en) 2011-12-06 2015-07-14 The Trustees Of Columbia University In The City Of New York Network information methods devices and systems
US8868711B2 (en) * 2012-02-03 2014-10-21 Microsoft Corporation Dynamic load balancing in a scalable environment
US9852010B2 (en) 2012-02-03 2017-12-26 Microsoft Technology Licensing, Llc Decoupling partitioning for scalability
US10860384B2 (en) 2012-02-03 2020-12-08 Microsoft Technology Licensing, Llc Managing partitions in a scalable environment
EP3279756B1 (de) * 2016-08-01 2019-07-10 Siemens Aktiengesellschaft Diagnoseeinrichtung und verfahren zur überwachung des betriebs einer technischen anlage
CN107979876B (zh) * 2017-11-16 2022-01-07 广州市百果园网络科技有限公司 数据传输方法及终端

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2281793A (en) * 1993-09-11 1995-03-15 Ibm A data processing system for providing user load levelling in a network
US5774668A (en) * 1995-06-07 1998-06-30 Microsoft Corporation System for on-line service in which gateway computer uses service map which includes loading condition of servers broadcasted by application servers for load balancing
US5806065A (en) * 1996-05-06 1998-09-08 Microsoft Corporation Data system with distributed tree indexes and method for maintaining the indexes
US6119143A (en) * 1997-05-22 2000-09-12 International Business Machines Corporation Computer system and method for load balancing with selective control
US6351775B1 (en) * 1997-05-30 2002-02-26 International Business Machines Corporation Loading balancing across servers in a computer network
US6633916B2 (en) * 1998-06-10 2003-10-14 Hewlett-Packard Development Company, L.P. Method and apparatus for virtual resource handling in a multi-processor computer system
US6185598B1 (en) * 1998-02-10 2001-02-06 Digital Island, Inc. Optimized network resource location
US6611861B1 (en) * 1998-02-27 2003-08-26 Xo Communications, Inc. Internet hosting and access system and method
US6098093A (en) * 1998-03-19 2000-08-01 International Business Machines Corp. Maintaining sessions in a clustered server environment
US6112279A (en) * 1998-03-31 2000-08-29 Lucent Technologies, Inc. Virtual web caching system
US6092178A (en) * 1998-09-03 2000-07-18 Sun Microsystems, Inc. System for responding to a resource request
JP3550503B2 (ja) * 1998-11-10 2004-08-04 インターナショナル・ビジネス・マシーンズ・コーポレーション 通信を可能とするための方法及び通信システム
US6728748B1 (en) * 1998-12-01 2004-04-27 Network Appliance, Inc. Method and apparatus for policy based class of service and adaptive service level management within the context of an internet and intranet
EP1049307A1 (de) * 1999-04-29 2000-11-02 International Business Machines Corporation System und Verfahren zur Zuweisung von Klientsitzungen in einem Verband von mit dem World Wide Web verbundenen Servern
US6976077B1 (en) * 1999-07-06 2005-12-13 Microsoft Corporation Automatic and transparent synchronization of server-side state information with a client application
US6697849B1 (en) * 1999-08-13 2004-02-24 Sun Microsystems, Inc. System and method for caching JavaServer Pages™ responses
US6374297B1 (en) * 1999-08-16 2002-04-16 International Business Machines Corporation Method and apparatus for load balancing of web cluster farms
US6771595B1 (en) * 1999-08-31 2004-08-03 Intel Corporation Apparatus and method for dynamic resource allocation in a network environment
US6772333B1 (en) * 1999-09-01 2004-08-03 Dickens Coal Llc Atomic session-start operation combining clear-text and encrypted sessions to provide id visibility to middleware such as load-balancers
US6798747B1 (en) * 1999-12-22 2004-09-28 Worldcom, Inc. System and method for time slot assignment in a fiber optic network simulation plan
US7000007B1 (en) * 2000-01-13 2006-02-14 Valenti Mark E System and method for internet broadcast searching
US6587970B1 (en) * 2000-03-22 2003-07-01 Emc Corporation Method and apparatus for performing site failover
WO2002008870A2 (en) * 2000-07-26 2002-01-31 David Dickenson Distributive access controller
US6985956B2 (en) * 2000-11-02 2006-01-10 Sun Microsystems, Inc. Switching system
US6901448B2 (en) * 2000-12-29 2005-05-31 Webex Communications, Inc. Secure communications system for collaborative computing
US20020087679A1 (en) * 2001-01-04 2002-07-04 Visual Insights Systems and methods for monitoring website activity in real time
US20020198995A1 (en) * 2001-04-10 2002-12-26 International Business Machines Corporation Apparatus and methods for maximizing service-level-agreement profits
US6675264B2 (en) * 2001-05-07 2004-01-06 International Business Machines Corporation Method and apparatus for improving write performance in a cluster-based file system

Also Published As

Publication number Publication date
KR20040075048A (ko) 2004-08-26
DE60301202D1 (de) 2005-09-08
EP1472846A1 (de) 2004-11-03
CN100556024C (zh) 2009-10-28
US20030140143A1 (en) 2003-07-24
US7356592B2 (en) 2008-04-08
CA2471594C (en) 2010-06-01
ATE301364T1 (de) 2005-08-15
EP1472846B1 (de) 2005-08-03
CA2471594A1 (en) 2003-07-31
TWI238621B (en) 2005-08-21
JP2005516293A (ja) 2005-06-02
JP3989443B2 (ja) 2007-10-10
TW200302644A (en) 2003-08-01
WO2003063447A1 (en) 2003-07-31
CN1706165A (zh) 2005-12-07
KR100754296B1 (ko) 2007-09-03

Similar Documents

Publication Publication Date Title
DE60301202T2 (de) Verfahren und vorrichtung zur verkehrssteuerung einer web-farm
DE69030340T2 (de) Makler für die Auswahl von Rechnernetzwerkservern
DE68924954T2 (de) Übertragungssystem für verteilte Datenbanken.
DE19882235B4 (de) Verwendung von Web-Technologie für Teilnehmerverwaltungsaktivitäten
DE60210733T2 (de) System und Verfahren zur Überlastregelung in Netzwerken
DE60302876T2 (de) Master-knotenauswahl in geclusterten knotenkonfigurationen
DE60306186T2 (de) Verfahren und system zur anordnung von dienste in einer webdienstarchitektur
DE602004011890T2 (de) Verfahren zur Neuverteilung von Objekten an Recheneinheiten
DE69626052T2 (de) System und Verfahren zum Verteilen der Belastung eines Datei-Servers
DE60206789T2 (de) Echtzeitverarbeitung
DE60016283T2 (de) Arbeitsbelastungsverwaltung in einer rechnerumgebung
DE69835400T2 (de) Netzbelastungsausgleich für Mehrrechner Anbieter
DE19842673B4 (de) Verfahren und Vorrichtung zur Vermittlung bei der Datenkommunikation
DE60221019T2 (de) Verwaltung von serverbetriebsmitteln für hostanwendungen
DE69822935T2 (de) Vorrichtung und Verfahren zur dynamischen Regelung der Betriebsmittelzuweisung in einem Computersystem
DE69815819T2 (de) Adaptives verteiltes informationsnetzwerk
EP0959407B1 (de) Verfahren zum Zuteilen von Aufträgen Datenverarbeitungssystem, Client-Datenbearbeitungsknoten und computerlesbares Speichermedium
DE10051021A1 (de) System, Verfahren und Computerprogramm zur Veröffentlichung interaktiver Web-Inhalte in einer statisch verknüpften Web-Hierarchie
DE19954268A1 (de) Verfahren und System zur Verbesserung des Workflow-Durchsatzes in Workflow-Anwendungssystemen
DE112005001995B4 (de) Computeranordnung und Verfahren zum Anbieten von Diensten für Benutzer über ein Netzwerk
DE10238546A1 (de) Verfahren zur Bereitstellung von Ressourcen in Kommunikations-Netzwerken
EP2804134A2 (de) Verfahren und System zur Fuzzy-basierten Regelung einer Zuordnung von Ressourcen in einem System
DE69934823T2 (de) Verfahren zur last-regulierung
DE112021000619T5 (de) Adaptive zustandsverwaltung für statusunabhängige services
WO2005074234A1 (de) System und verfahren zur kommunikation zwischen entfernten objekten und lokalen stellvertretern

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8320 Willingness to grant licences declared (paragraph 23)
8328 Change in the person/name/address of the agent

Representative=s name: DUSCHER, R., DIPL.-PHYS. DR.RER.NAT., PAT.-ANW., 7