DE69733498T2 - Verteiltes rechnersystem und verfahren zur aufteilung von benutzeranfragen auf duplizierte netzwerkserver - Google Patents

Verteiltes rechnersystem und verfahren zur aufteilung von benutzeranfragen auf duplizierte netzwerkserver Download PDF

Info

Publication number
DE69733498T2
DE69733498T2 DE69733498T DE69733498T DE69733498T2 DE 69733498 T2 DE69733498 T2 DE 69733498T2 DE 69733498 T DE69733498 T DE 69733498T DE 69733498 T DE69733498 T DE 69733498T DE 69733498 T2 DE69733498 T2 DE 69733498T2
Authority
DE
Germany
Prior art keywords
server
servers
network
substep
content
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
DE69733498T
Other languages
English (en)
Other versions
DE69733498D1 (de
Inventor
Lance Rodney JOFFE
Alan Jason BRITTAIN
Everett Brian PETTINGELL
Burke Ian VANDEVENTER
Michael Steven HOTZ
Barry A. Dykes
Joseph Victor OPPELMAN
Joseph James LIPPARD
Dean Brett WATSON
Herbert Nils MCCARTHY
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.)
Verizon Corporate Services Group Inc
Genuity Inc
Original Assignee
Verizon Corporate Services Group Inc
Genuity Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Verizon Corporate Services Group Inc, Genuity Inc filed Critical Verizon Corporate Services Group Inc
Application granted granted Critical
Publication of DE69733498D1 publication Critical patent/DE69733498D1/de
Publication of DE69733498T2 publication Critical patent/DE69733498T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • 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/101Server selection for load balancing based on network conditions

Description

  • HINTERGRUND DER ERFINDUNG
  • Die vorliegende Erfindung bezieht sich allgemein auf das Gebiet der verteilten Rechnersysteme und insbesondere auf Rechensysteme und Verfahren zum Zuweisen von Anforderungen zu einem von mehreren Netzservern auf der Grundlage bester Kriterien, wie beispielsweise der Geschwindigkeit der unterlegten Netz-Infrastruktur.
  • Das explosive Wachstum des World Wide Web verlangt wenig Einführung. Nicht nur die Mitglieder der technisch versierten Gemeinschaft, der eine immer größere Anzahl technischer und Informationsquellen im World Wide Web verfügbar ist, sondern auch die allgemeine Bevölkerung findet bevorzugte Restaurants, Fahrzeugwerkstätten und Kirchen, die neue Webseiten erstellen. Die Popularität des World Wide Web als Kommunikationsmedium liegt in der Fülle seines Informationsinhalts und der Einfachheit seines Gebrauchs. Information in diesem Medium existiert als Objekte in einer breit verteilten Sammlung von im Internet arbeitenden Servern, wobei jedes Objekt durch seinen eigenen, einheitlichen Quellenlokator (URL) eindeutig adressierbar ist. Seit seiner Einführung hat das World Wide Web eine weltweite Vorrangstellung im täglichen Leben und der Wirtschaft gefunden.
  • Dieses explosive Wachstum ist jedoch nicht komplikationslos verlaufen. Die ungebremste Ausweitung kommerzieller Anwendungen bringt eine immer weiter wachsende Zahl Benutzer mit sich, die eine immer weiter wachsende Zahl Anfragen starten. Die Probleme der Wartezeit und der Bandbreitenbegrenzungen äußern sich in Verzögerungen, Informationsverlust und genervten Benutzern.
  • Netzarchitekten antworten mit der Benutzung einer Gruppe von Lösungen. Viele Antworten fallen in die Kategorie von Lösungen, die auf der Zurverfügungstellung von mehr Rechnerleistung basieren. Dieses kann Alternativen umfassen, die verschiedene Webserver-Software, Webserver-Hardware oder Plattform, Vergrößerungen an RAM oder CPU im Server, Anwendungsüberschreibungen oder vergrößerte Netzbandbreite durch aufgerüstete Hardware. Eine andere Lösungsklasse umfasst die Verwendung mehrerer Server oder eine strategische Verteilung von Servern. Ein Verfahren in dieser Klasse besteht darin, den Server am Internet-Serviceprovider anzuordnen. Durch Auswahl eines Serviceproviders mit optimal passender Kapazität kann die Anordnung des Servers am Platz des Serviceproviders zu einer viel besseren Verbindung zum Rest des Internet führen. Eine weitere Möglichkeit ist die Verwendung verteilter Server. Server mit identischem Inhalt werden an strategischen Orten rund um die Welt angeordnet, beispiels weise einer in New York, einer San Francisco und einer in London. Dieses verteilt die Last auf mehrere Server und hält den Verkehr näher am Benutzer. Eine weitere Lösung ist es, Server zusammenzupacken. Eine Zusammenpackung ermöglicht die gemeinsame Verwendung von Festplattengruppen über mehrere Server. Eine weitere Lösung ist die Serverfarm. Dieses umfasst die Verwendung mehrerer Webserver mit identischem Inhalt oder die Segmentierung auf der Grundlage der Funktionalität. Beispielsweise zwei Server für Webfunktionen, zwei für FTP, zwei als Datenbank, usw.. Eine Variante der Serverfarm ist die verteilte Serverfarm. Dieses installiert Server an strategischen Orten – kombiniert im Wesentlichen die Serverfarmlösung mit der Verteilte-Server-Lösung.
  • Die Lösungen mit mehreren und verteilten Servern lösen ein Problem auf Kosten der Schaffung eines neuen Problems. Wenn mehrere Server vorhanden sind, wie bestimmt der Endbenutzer den Ort Ihrer Seite? Gegenwärtig werden Namen und universale Quelllokatoren (URLs) in eindeutige Einzeladresse durch einen Domainnamensservice (DNS) aufgelöst. DNS-Server unterhalten eine Liste von Domainnamen, die einen Bezug zu individuellen IP-Adressen haben. Wenn jedoch mehrere Webserver oder Serverfarmen verwendet werden, muss das DNS-System modifiziert werden. Eine übliche Lösung für dieses Problem ist es, das DNS-System auf ein Eins-zu-viel-Abbildung von Namen auf IP-Adressen zu modifizieren. Das DNS gibt somit eine Liste von IP-Adressen für jedes spezielle Web-Objekt zurück. Dieses können dann an die verschiedenen Kunden in einer Weise jeder gegen jeden ausgegeben werden. Diese Lösung hat jedoch einige Nachteile. Das Jeder-gegen-Jeden-Paradigma gibt IP-Adressen in einer strengen Reihenfolge mit wenig Rücksicht auf den Ort des Anforderers oder des Servers aus. Das Schema hat keine Kenntnis von der Server-Architektur oder -Belastung. Die Auswahl ergibt lediglich eine einfache Liste. Ein Server kann alle Hochlastbenutzerempfangen. Außerdem bestimmt das schwächste Glied die Gesamtleistung, so dass Serverplattformen relativ gleichwertig sein müssen. Ein weiteres Problem besteht darin, dass das DNS einfach IP-Adressen ausgibt, ohne Rücksicht darauf, ob der Server, zu dem die Adresse gehört, in Betrieb ist. Wenn daher einer der Jeder-gegen-Jeden-Server zufälligerweise wegen Wartungsarbeiten abgeschaltet ist, gibt das DNS die Adresse aus, und mögliche Benutzer erhalten weiterhin Auszeit-Fehlerantworten. Die Jeder-gegen-Jeden-Modifikation des DNS macht also einen breiten Versuch, das Problem verteilter Server zu lösen. Es wird jedoch keine Rücksicht auf den Netzverkehr, auf geringen Lastausgleich unter den Servern oder auf die Zuverlässigkeit genommen.
  • Mehrere Erzeugnisse auf dem Markt befassen sich mit diesen Problemen, jedoch leiden alle frühere Bemühungen an dem Nachteil, dass sie verlangen, dass die Benutzersoftwareumgebung modifiziert wird, um eine nachgebildete Serverauswahl zu erleichtern. Ein Schema, das Modifikationen an der Benutzersoftware erfordert, ist wegen praktischer Probleme der Sicher stellung einer breiten Softwareverteilung weniger wünschenswert. Solche Schemata sind höchstens als Optimierungstechniken nützlich.
  • Eine solche Lösungsklasse besteht aus jenen, die auf expliziter Benutzerauswahl zur Zuweisung einer Benutzeranforderung an einen Server beruhen. Die Benutzeranwendung kann zusätzliche Schritte beinhalten, die vom Benutzer ausreichende Kenntnis, Erfahrung und Geduld verlangen, die eigene Serverauswahl auszuführen. Solche Schemata sind aus mehreren Gründen nicht immer wünschenswert.
  • Eine Technik, die auf der selektiven Host-Leitwegbestimmung beruht, verwendet mehrere nachgebildete Server, sämtlich mit der gleichen Netzadresse, die an unterschiedlichen Punkten in der Netztopologie angeordnet sind. Ein jedem Server zugeordneter Router nimmt den einlaufenden Netzverkehr zu den gemeinsamen Serveradressen auf und liefert den Verkehr an den speziellen Server. Diese Technik kann nur statisch die Benutzeranforderungslast auf den benachbarten Server ohne Berücksichtigung der Serverlast oder anderer Netzcharakteristika statisch verteilen.
  • Die BIND-Ausführung des DNS-Servers kann Techniken einschließen, um Servernamen an verschiedenen Netzadressen zu binden, wo eine aus einem Satz unterschiedlicher Mehrfachadressen entweder der Reihenfolge nach oder wahlfrei zugewiesen wird. Serviceprovider weisen eine andere Adresse jedem nachgebildeten Server zu, und BIND richtet Benutzeranforderungen an die alternativen Server. Diese Technik kann nur statisch die Benutzeranforderungslast auf einen beliebigen Server verteilen ohne Rücksicht auf die Serverlast oder andere Netzcharakteristika.
  • SONAR ist ein emporkommendes IETF (Internet Engineering Task Force)-Protokoll zum Verteilen von Netzcharakteristika, insbesondere für topologische Nachbarschaft. SONAR enthält ein Datenformat zum Darstellen von Frageanforderungen und Antworten, es spezifiziert aber keinen Mechanismus zum Bestimmen der Netzcharakterstika.
  • Der Cisco Local Director ist ein Produkt, das als ein Netzverkehrsmultiplexer arbeitet, der vor mehreren örtlichen Servern sitzt und neue Transportverbindungen an jeden Server auf der Grundlage des Umfangs an Verkehr verteilt, der zu den Servern fließt. Dieses Produkt berücksichtigt bei seiner Entscheidung die Netzcharakterstika nicht, und es erfordert, dass die nachgebildeten Server zusammen angeordnet sind. Cisco Systems ist eine Gesellschaft mit Sitz in San Jose, Kalifornien.
  • Der Cisco Distributed Director leitet Benutzeranforderungen auf topologisch entfernte Server auf der Grundlage von Information um, die von Netzroutingprotokollen erhalten werden. Der Distributed Director nimmt entweder ankommende DNS-Anforderungen oder HTTP-Anforderungen auf, und liefert die für die Weitersendung geeignete Antwort. Dieses Produkt berücksichtigt nicht die Serverlast und berücksichtigt nur den beschränkten Satz an Information, der aus Routingprotokollen verfügbar ist; diese Information hat durch die Aggregationstechniken, die erforderlich sind, um ein skalierbares Internetrouting zu ermöglichen, auch nur beschränkte Genauigkeit.
  • EP-A-0 648 038 beschreibt ein Datenverarbeitungssystem zum Erleichtern einer Verbindung eines Programms auf einem Clientenrechner mit Serverrechnern mit gemeinsamen Quellen. Alle diese Rechner befinden sich in einem örtlichen Netz. Es wird eine Entscheidungslogik verwendet, um den Serverrechner unter Verwendung spezieller Testkriterien in Intervallen zu untersuchen. Dies bedeutet, dass nur die Serverrechner, nicht aber das gesamte Netz überwacht werden.
  • US-A-5 452 294 beschreibt ein Übertragungsnetz mit mehreren verfügbaren Leitwegen. Es wird eine adaptive Leitwegauswahl verwendet, um den besten Leitweg (Route) zwischen einer Quelle und einem Bestimmungsknoten zu finden, indem die Verbindungszustandsvariablen überwacht werden.
  • Obgleich diese Produkte zusammen die Serverlast und die Netzcharakteristika in Betracht ziehen, führen sie doch keine integrierte Serverauswahl durch. Für all diese Bemühungen klingt die Kritik des Fachmanns richtig, es ist noch immer das "weltweite Warten". Daher wird ein System benötigt, das automatisch einen geeigneten Server auswählt, von dem ein Datenobjekt für einen Benutzer ermittelt wird auf der Grundlage der Benutzeranforderung und der Fähigkeiten und der Topologie des zugrundeliegenden Netzes.
  • ÜBERSICHT ÜBER DIE ERFINDUNG
  • Die vorliegende Erfindung schafft die Möglichkeit, Anforderungen nach Datenobjekten durch Clienten unter vielen Netzservern zuzuweisen. Die Erfindung schafft ein verteiltes Rechensystem und Verfahren zum Zuweisen von Benutzeranforderungen zu nachgebildeten Servern, die in dem verteilten Rechensystem enthalten sind, in einer Weise, die danach trachtet, die Ziele einer speziellen Leitwegrichtlinie zu befriedigen. Diese Richtlinien können das Minimieren des Zeitaufwandes für die abzuschließende Anforderung enthalten. Beispielsweise kann ein System nach der Erfindung so konfiguriert sein, dass Datenobjekte an Benutzer in Übereinstimmung mit dem kürzesten verfügbaren Netzweg übermittelt werden.
  • Die Erfindung gibt insbesondere ein System zum Leiten von Anforderungen nach Datenobjekten von jeder Zahl Clienten zu einem von mehreren Datenservern auf der Grundlage einer "Bester Server"-Leitwegrichtlinie an. Datenserver liefern Datenobjekte, indem sie auf Teilnehmer-anforderungen über einen oder mehrere Netzzugangspunkte ansprechen, entsprechend der Entscheidung eines Direktors. Der Direktor bestimmt auf der Grundlage der Leitwregrichtlinien den Leitweg der Anforderung nach Datenobjekten zu einem bestimmten Datenserver.
  • In Übereinstimmung mit einem besonderen Aspekt der Erfindung kann die Leitwegrichtlinie eines der nachfolgenden oder eine beliebige Kombination der nachfolgenden oder keine der nachfolgenden Kriterien enthalten: 1) die letzte Nummer offener TCP-Verbindungen; 2) das am meisten verfügbare freie RAM; 3) das am meisten verfügbare freie SWAP (virtueller Speicher); 4) der größte Umfang an CPU-Leerlaufzeit; oder 5) der schnellste ICMP-Leitweg zur Teilnehmermaschine.
  • Vorteile der Lösungen gemäß der Erfindung sind gesteigerte Toleranz gegenüber Fehlern, die in der zugrundeliegenden Hardware auftreten, und Zuverlässigkeit gegenüber bekannten Web-Servern. Die Erfindung wird besser durch Bezugnahme auf die folgende detaillierte Beschreibung und ihre begleitenden Zeichnungen verstanden.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • 1A zeigt ein repräsentatives Teilnehmer-Server-Verhältnis in Übereinstimmung mit einer speziellen Ausführungsform der Erfindung;
  • 1B zeigt eine Funktionsperspektive des beispielhaften Teilnehmer-Server-Verhältnisses gemäß einer speziellen Ausführungsform der Erfindung;
  • 1C zeigt eine beispielhafte Internet-Arbeitsumgebung gemäß einer speziellen Ausführungsform der Erfindung;
  • 1D zeigt ein Beziehungsdiagramm der Ebenen der TCP/IP-Protokollfolge;
  • 2A zeigt eine verteilte Rechnerumgebung in Übereinstimmung mit einer speziellen Ausführungsform der Erfindung;
  • 2B zeigt eine verteilte Rechnerumgebung in Übereinstimmung mit einer alternativen Ausführungsform der Erfindung;
  • 3A zeigt die Beziehung von Prozessen in Übereinstimmung mit einer beispielhaften Ausführungsform der Erfindung;
  • 3B zeigt die Beziehung von Prozessen in Übereinstimmung mit einer alternativen Ausführungsform der Erfindung;
  • 3C zeigt die Beziehung von Prozessen in Übereinstimmung mit einer bevorzugten Ausführungsform der Erfindung;
  • 4A zeigt Prozessschritte in Übereinstimmung mit einer speziellen Ausführungsform der Erfindung;
  • 4B zeigt Prozessschritte in Übereinstimmung mit einer alternativen Ausführungsform der Erfindung;
  • 4C zeigt Prozessschritte in Übereinstimmung mit einer bevorzugten Ausführungsform der Erfindung; und
  • 5A bis 5C zeigen Flussdiagramme des Optimierungsprozesses innerhalb einer Direktorkomponente in Übereinstimmung mit einer speziellen Ausführungsform der Erfindung.
  • BESCHREIBUNG DER SPEZIELLEN AUSFÜHRUNGSFORMEN
  • 1.0 Einleitung
  • Eine bevorzugte Ausführungsform eines Serverlastausgleichssystems gemäß der Erfindung ist in die Praxis umgesetzt worden und wird unter dem Handelsnamen "HOPSCOTCH®" verfügbar.
  • Ein Wort über Nomenklatur ist angebracht. Systeme gemäß der vorliegenden Erfindung umfassen eine Vielzahl Prozesse, die in alternativen Ausführungsformen in irgendeinem von vielen Rechnern in einer verteilten Netzumgebung vorhanden sein können, oder als konkurrierende Prozesse, die in virtuellen Maschinen oder Adressräumen am gleichen Rechner ablaufen kön nen. Um das exponentielle Wachstum von Namen zu begrenzen, sind die folgenden Abmachungen verwendet worden, um die Lesbarkeit zu verbessern. Individuelle Abweichungen werden angegeben, wo sie auftreten. Ein 'xyz-Server' ist ein Rechner oder eine virtuelle Maschine, die eine Sammlung von Prozessen enthält, die xyz bilden. Eine 'xyz-Komponente' ist eine Sammlung Prozesse, die einen Satz Funktionen durchführen, die gemeinsam als xyz bezeichnet werden. Eine 'xyz' ist ein Satz Funktionen, die durch die xyz-Komponente auf der xyz-Maschine ausgeführt werden.
  • 1.1 Hardware-Übersicht
  • Das verteilte Rechensystem für den Serverlastausgleich (das "System") der vorliegenden Erfindung ist in der Perl-Programmiersprache ausgeführt und wird auf einem Rechnersystem betrieben, wie in 1A gezeigt. Diese Erfindung kann in einer Teilnehmer-Server-Umgebung ausgeführt werden, jedoch ist eine Teilnehmer-Server-Umgebung nicht wesentlich. 1A zeigt ein konventionelles Teilnehmer-Server-Rechnersystem, das einen Server 20 und zahlreiche Clienten enthält, von denen einer als Teilnehmer 25 gezeigt ist. Die Verwendung des Ausdrucks "Server" wird im Kontext der Erfindung verwendet, in dem der Server Anfragen von (typischerweise entfernten) Clienten empfängt, im Wesentlichen die gesamte Verarbeitung ausführt, die zur Formulierung von Antworten auf die Anfragen notwendig ist, und diese Anforderungen an die Clienten abgibt. Der Server 20 kann jedoch selbst in der Eigenschaft als ein Teilnehmer wirken, wenn er auf entfernte Datenbanken zugreift, die an einem anderen Knoten angeordnet sind, der als Datenbank-Server arbeitet.
  • Die Hardwarekonfigurationen sind im Allgemeinen Standard und werden nur kurz beschrieben. In Übereinstimmung mit bekannter Praxis enthält der Server 20 einen oder mehrere Prozessoren 30, die mit mehreren Peripheriegeräten über ein Bus-Untersystem 32 kommunizieren. Diese Peripheriegeräte enthalten typischerweise ein Speicher-Untersystem 35, das aus einem Speicher-Untersystem 35a und einem Datenspeicher-Untersystem 35b besteht, die Rechnerprogramme (z. B. Kode oder Befehle) und Daten enthalten, einen Satz Benutzerschnittstellen-Eingabe- und -Ausgabevorrichtungen 37 und eine Schnittstelle zu äußeren Netzen, die Ethernet, Tornring, ATM, IEEE 802.3, ITU X.25, Serial Link Internet Protocol (SLIP) oder das öffentliche Telefonvermittlungsnetz verwenden können. Diese Schnittstelle ist schematisch als ein "Netzschnittstelle"-Block 40 gezeigt. Sie ist mit entsprechenden Verschachtelungsvorrichtungen in Clientenrechnern über eine Netzverbindung 45 gekoppelt.
  • Der Teilnehmer 25 hat den gleichen allgemeinen Aufbau, obgleich typischerweise mit weniger Speicher- und Prozessorkapazität. Während der Clientenrechner ein Endgerät oder ein Klein- PC sein kann, ist der Serverrechner somit im Allgemeinen eine Groß-Workstation oder Hauptrechner, beispielsweise ein Server vom Typ SUN SPARC®. Entsprechende Elemente und Untersysteme im Clientenrechner sind mit entsprechenden Bezugszeichen dargestellt, die jedoch mit einem Apostroph versehenen sind.
  • Die Benutzerschnittstellen-Eingabevorrichtungen sind typischerweise eine Tastatur und können weiterhin eine Zeigervorrichtung und ein Scanner sein. Die Zeigervorrichtung kann eine indirekte Zeigervorrichtung, wie beispielsweise eine Maus, ein Trackball, ein Berührungsfeld oder ein Graphiktablett sein, oder sie kann eine direkte Zeigervorrichtung sein, z. B. ein Berührungsschirm, der in die Anzeigevorrichtung integriert ist. Andere Arten von Benutzerschnittstellen-Eingabevorrichtungen, wie Spracherkennungssysteme, sind ebenfalls möglich.
  • Die Benutzerschnittstellen-Ausgabevorrichtungen enthalten typischerweise einen Drucker und ein Anzeige-Untersystem, das einen Anzeigesteuerer und eine Anzeigevorrichtung umfasst, die mit dem Steuerer verbunden ist. Die Anzeigevorrichtung kann eine Kathodenstrahlröhre (CRT), ein Flachbildschirm, wie beispielsweise ein Flüssigkristallschirm (LCD) oder eine Projektionsvorrichtung sein. Der Anzeigesteuerer liefert Steuersignale an die Anzeigevorrichtung und enthält normalerweise einen Anzeigespeicher zum Speichern der Pixel, die auf der Anzeigevorrichtung erscheinen. Das Anzeigeuntersystem kann auch eine unsichtbare Anzeige liefern, wie beispielsweise eine akustische Ausgabe.
  • Das Speicheruntersystem enthält typischerweise mehrere Speicher mit einem Haupt-Arbeitsspeicher (RAM) zur Speicherung von Befehlen und Daten während der Programmausführung und einem Festspeicher (ROM), in dem feste Befehle gespeichert sind. Im Falle von Macintosh-kompatiblen PCs würde der ROM Teile des Betriebssystems enthalten; im Fallen von IBM-kompatiblen PCs würde er das BIOS (Basic Input/Output System) enthalten.
  • Das Dateispeicheruntersystem bietet eine dauerhafte (nicht flüchtige) Speicherung für Programm- und Daten-Dateien und enthält typischerweise wenigstens ein Festplattenlaufwerk und wenigstens ein Diskettenlaufwerk (mit zugehörigen entnehmbaren Medien). Es können auch andere Vorrichtungen, wie beispielsweise ein CD-ROM-Laufwerk und optische Laufwerke (sämtlich mit ihren zugehörigen entnehmbaren Medien) vorhanden sein. Außerdem kann das Rechnersystem Laufwerke enthalten, die mit entnehmbaren Speicherkassetten arbeiten. Die entnehmbaren Speicherkassetten können beispielsweise Festplattenkassetten sein, wie beispielsweise jene, die von Syquest und anderen angeboten werden, und solche mit flexiblen Disketten, wie jene, die von Iomega vertrieben werden. Eine oder mehrere der Laufwerke kön nen an einer entfernten Stelle angeordnet sein, wie beispielsweise in einem Server oder in einem örtlichen Netz (LAN) oder an einem Platz des World Wide Web des Internet.
  • In diesem Kontext wird der Ausdruck "Bus-Untersystem" generisch verwendet, so dass er jeden Mechanismus einschließt, der die zahlreichen Komponenten und Untersysteme miteinander kommunizieren lässt, wie es beabsichtigt ist. Mit Ausnahme der Eingabevorrichtungen und der Anzeige brauchen die anderen Komponenten nicht am gleichen physikalischen Ort zu sein. So könnten beispielsweise Teile des Dateispeichersystems über zahlreiche örtliche oder überörtliche Netzmedien, einschließlich Telefonleitungen, angeschlossen sein. In gleicher Weise brauchen die Eingabevorrichtungen und die Anzeige nicht am gleichen Ort wie der Prozessor zu sein, obgleich vorausgesetzt wird, dass die vorliegende Erfindung am häufigsten im Kontext von PCs und Workstations ausgeführt wird.
  • Das Bus-Untersystem 32 ist schematisch als ein einzelner Bus gezeigt, jedoch hat ein typisches System mehrere Busse, wie beispielsweise einen örtlichen Bus und einen oder mehrere Erweiterungsbusse (z. B. ADB, SCSI, ISA, EISA, MCA, NuBus oder PCI), sowie serielle und parallele Anschlüsse. Netzverbindungen werden gewöhnlich über eine Vorrichtung, wie beispielsweise einen Netzadapter, an einem dieser Ausdehnungsbusse, oder über ein Modem an einem seriellen Anschluss eingerichtet. Der Clientenrechner kann ein Tischrechner oder ein tragbares System sein.
  • Der Benutzer arbeitet mit dem System unter Verwendung von Schnittstellenvorrichtungen 37' (oder Vorrichtungen 37 in einem Einzelsystem) zusammen. Beispielsweise werden Clientenanfragen über eine Tastatur eingegeben, dem Clientenprozessor 30' übermittelt und dann über das Bus-Untersystem 32' zu einer Netzschnittstelle 40' geleitet. Die Anfrage wird dann über die Netzverbindung 45 an den Server 20 übermittelt. In gleicher Weise werden die Ergebnisse der Anfrage vom Server an den Clienten über die Netzverbindung 45 zur Ausgabe auf einer der Vorrichtungen 37' (beispielsweise eine Anzeige oder ein Drucker) übermittelt, oder können in einem Speicher-Untersystem 35' gespeichert werden.
  • 1B ist ein Funktionsdiagramm des Rechnersystems von 1A. 1B zeigt einen Server 20 und einen repräsentativen Clienten aus mehreren Clienten, die mit dem Server 20 über das Internet 45 oder irgendwelchen anderen Kommunikationsverfahren zusammenwirken können. Blöcke auf der rechten Seite des Servers stehen für die Prozesskomponenten und -funktionen, die im Serverprogramm und im Datenspeicher, auftreten, der durch den Block 35a in 1A gezeigt ist. Ein TCP/IP-"Stapel" 44 arbeitet mit dem Betriebssystem 42 zusammen, um mit Prozessen über ein Netz oder eine serielle Verbindung zu kommunizieren, die den Server 20 an das Internet 45 anschließt. Webserversoftware 46 läuft gleichzeitig und in Zusammenarbeit mit anderen Prozessen im Server 20 ab, um Datenobjekte 50 und 51 den anfordernden Clienten verfügbar zu machen. Ein Common Gateway Interface (CGI)-Skript 51 ermöglicht es Information von Benutzern vom Webserver 46 oder anderen Prozessen im Server 20 verarbeiten zu lassen. Antworten auf Clientenanfragen können an die Clienten in Form von Hypertext Markup Language (HTML)-Dokumentenausgaben zurückgegeben werden, die dann über das Internet 45 zum Benutzer übertragen werden.
  • Der Teilnehmer 25 in 1b besitzt Software, die Funktionsprozesse ausführt, die operativ in ihrem Programm- und Datenspeicher angeordnet ist, wie durch den Block 35a' in 1A angegeben ist. Der TCP/IP-Stapel 44' arbeitet zusammen mit dem Betriebssystem 42', um mit Prozessen über ein Netz oder eine Serienverbindung, die den Clienten 25 an das Internet 45 anschließt, zu kommunizieren. Software, die die Funktion eines Webbrowsers 46' ausführt, läuft gleichzeitig und in Zusammenarbeit mit anderen Prozessen beim Clienten 25 ab, um Anfragen des Servers 20 nach Datenobjekten 50 und 51 zu machen. Der Benutzer des Clienten kann über den Webbrowser 46' interagieren, um solche Anfragen des Servers 20 über Internet 45 zu machen und die Antworten vom Server 20 über das Internet 45 am Webbrowser 46' zu betrachten.
  • 1.2 Netzübersicht
  • 1C zeigt den Internetverkehr mehrerer Clienten, wie Teilnehmer 25 der 1A und 1B und mehrerer Server, wie Server 20 der 1A und 1B, wie oben beschrieben. In 1C ist ein Netz 70 beispielsweise ein Tokenring oder rahmenorientiertes Netz. Das Netz 70 verbindet einen Host 71, wie beispielsweise eine Workstation IBM RS6000 R1SC, in der das AIX-Betriebssystem laufen kann, mit einem Host 72, der ein PC ist und mit Windows 95, IBM OS/2 oder 1)05 als Betriebssystem läuft, mit einem Host 73, der ein Rechner IBM AS/400 sein kann und mit OS/400 als Betriebssystem läuft. Das Netz 70 ist über Internet mit einem Netz 60 über ein Systemgateway verbunden, das hier als Router 75 dargestellt ist, das aber auch ein Gateway sein kann, das eine Firewall oder eine Netzbrücke hat. Das Netz 60 ist ein Beispiel eines Ethernet-Netzes, das einen Host 81, der eine SPARC Workstation ist und mit SUNOS als Betriebssystem läuft, mit einem Host 62 verbindet, der ein Rechner VAX6000 von Digital Equipment sein kann und mit VMS als Betriebssystem laufen kann.
  • Der Router 75 ist ein Netzzugangspunkt (NAP) des Netzes 70 und des Netzes 60. Der Router 75 verwendet einen Tokenring-Adapter und einen Ethernet-Adapter. Dieses ermöglicht es dem Router 75, mit den zwei heterogenen Netzen verbunden zu werden. Der Router 75 kennt auch die Inter-Netzprotokolle, wie beispielsweise ICMP ARP und RIP, die unten beschrieben werden.
  • 1D zeigt die Bestandteile der Transmission Control Protocol Internet Protocol (TCP/IP)-Protokollfolge. Die Grundebene der TCP/IP-Protokollfolge ist die physikalische Ebene 80, die die mechanischen, elektrischen funktionalen und Prozedurstandards für die physikalische Datenaussendung über Kommunikationsmedien, wie beispielsweise die Netzverbindung 45 von 1A definiert. Die physikalische Ebene kann elektrische, mechanische oder funktionale Standards enthalten, beispielsweise ob ein Netz ein paketschaltendes oder ein flammenschaltendes Netz ist, oder ob ein Netz auf einem Carrier Sense Multiple Access/Collision Detection (CSMA/CD)- oder einem Rahmenrelais-Paradigma beruht.
  • Über der physikalischen Ebene liegt die Datenverbindungsebene 82. Die Datenverbindungsebene liefert die Funktion und Protokolle zur Übertragung von Daten zwischen Netzquellen und ermittelt Fehler, die in der physikalischen Ebene auftreten können. Betriebsarten in der Datenverbindungsebene umfassen solche standardisierten Netztopologien, wie IEEE 802.3 Ethernet, IEEE 802.5 Tokenring, ITU X.25 oder serielle (SLIP) Protokolle.
  • Netzebenenprotokolle 87 liegen über der Datenverbindungsebene und bilden die Einrichtung zum Erstellen von Verbindungen zwischen Netzen. Die Standards der Netzebenenprotokolle liefern Betriebssteuerprozeduren für Internetverbindungen und Leitweginformation durch mehrere heterogene Netze. Beispiele von Netzebenenprotokolle sind das Internetprotokoll (IP) und das Internet Control Message Protocol (ICMP). Das Address Resolution Protocol (ARP) dient der Korrelierung einer Internetadresse und einer Media Access Adresse (MAC) eines speziellen Host. Das Routing Information Protocol (RIP) ist ein dynamisches Leitwegprotokoll für die Vermittlung von Leitweginformation zwischen Hosts auf Netzen. Das Internet Control Message Protocol (ICMP) ist ein internes Protokoll zum Durchleiten von Steuermitteilungen zwischen Hosts auf zahlreichen Netzen. ICMP-Mitteilungen schaffen Rückmeldung über Ereignisse in der Netzumgebung oder können bei der Ermittlung helfen, ob zu einem speziellen Host in der Netzumgebung ein Weg vorhanden ist. Letztere wird ein "Ping" genannt. Das Internet Protocol (IP) schafft den Grundmechanismus für das Leiten von Informationspaketen im Internet. IP ist ein unzuverlässiges Übertragungsprotokoll. Es schafft einen "bestmöglichen" Lieferservice und vertraut keine Netzquelle einer speziellen Transaktion an, noch führt sie wiederholte Aussendungen durch oder gibt sie Bestätigungen ab.
  • Die Transportebenenprotokolle 86 schaffen Transportdienste von Ende zu Ende über mehrere heterogene Netze. Das User Datagram Protocol (UDP) bietet einen verbindungslosen, Da tagramm-orientierten Service, der einen unzuverlässigen Liefermechanismus für Informationsströme bereitstellt. Das Transmission Control Protocol (TCP) bietet einen zuverlässigen Service auf Session-Grundlage zur Lieferung von seriellen Informationspaketen über das Internet. TCP schafft einen Verbindungs-orientierten, zuverlässigen Mechanismus für die Informationsübermittlung.
  • Die Sessions-Anwendungsebene 88 liefert eine Liste von Netzanwendungen und Werkzeugen, von denen einige hier dargestellt sind. Beispielsweise ist das File Transfer Protocol (FTP) ein Standard-TCP/IP-Protokoll zur Übertragung von Dateien von einer Maschine zu einer anderen. FTP-Teilnehmer richten Sessionen über TCP-Verbindungen mit FTP-Servern ein, um Dateien zu erhalten. Telnet ist ein Standard-TCP/IP-Protokoll für ferne Endgerätverbindung. Ein Telnet-Teilnehmer wirkt als ein Endgerät-Emulator und richtet eine Verbindung unter Verwendung von TCP als Transportmechanismus mit einem Telnet-Server ein. Das Simple Network Management Protocol (SNMP) ist ein Standard zur Verwaltung von TCP/IP-Netzen. SNMP-Aufgaben, genannt "Agenten" überwachen Netzstatusparameter und senden diese Statusparameter an SNMP-Aufgaben, genannt "Manager". Die Manager verfolgen den Status zugehöriger Netze. Ein Remote Procedure Call (RPC) ist eine Programmierschnittstelle, die es Programmen ermöglichen, entfernte Funktionen auf Servermaschinen aufzurufen. Das Hypertext Transfer Protocol (HTTP) erleichtert die Übertragung von Datenobjekten über Netze über ein System von gleichen Quellindikatoren (URI).
  • Das Hypertext Transfer Protocol ist ein einfaches Protokoll, das auf der Transmission Control Protocol (TCP) aufgesetzt ist. Das HTTP liefert ein Verfahren für Benutzer, um Datenobjekte von zahlreichen Hosts zu erhalten, die als Server im Internet arbeiten. Benutzeranfragen nach Datenobjekten werden mittels einer HTTP CET-Anforderung gemacht. Eine GET-Anforderung, wie unten dargestellt, enthält 1) einen HTTP-Kopf des Formats "http://", gefolgt von 2) einem Identifizierer des Servers, bei dem sich das Datenobjekt befindet, gefolgt von 3) dem vollständigen Pfad des Datenobjekts, gefolgt von 4) dem Namen des Datenobjekts. In der unten gezeigten GET-Anforderung wird eine Anforderung des Servers "www.w3.org" für das Datenobjekt mit einem Pfadnamen "/pub/" und dem Namen "MyData.html" gemacht:
    GET http://www.w3.org/pub/My/Data.html (1)
  • Die Verarbeitung einer GET-Anforderung zieht die Einrichtung einer TCP/IP-Verbindung mit dem Servernamen in der GET-Anforderung und dem Empfang des spezifizierten Datenobjekts vom Server nach sich. Nach Empfang und Interpretation einer Anforderungsmitteilung antwortet ein Server in Form einer HTTP RESPONSE-Mitteilung.
  • Antwortmitteilungen beginnen mit einer Statuszeile, die eine Protokollversion enthält, gefolgt von einem numerischen Status Code und einer zugehörigen Text Reason Phrase. Diese Elemente sind durch Zwischenraumzeichen getrennt. Das Format einer Statuszeile ist in Zeile (2) aufgetragen:
    Statuszeile = HTTP-Version Status-Code Reason-Phrase (2)
  • Die Statuszeile beginnt stets mit einer Protokollversion und einem Statuskode, z. B. "HTTP/1.0 200". Das Statuskodeelement ist ein dreistelliger, ganzzahliger Ergebniskode des Versuchs, die vorangehende Anforderungsmitteilung zu verstehen und zu befriedigen. Die Grundphrase soll eine kurze Textbeschreibung des Statuskodes geben. Die erste Stelle des Statuskodes bestimmt die Antwortklasse. Es gibt fünf Kategorien für die erste Stelle. 1XX ist eine Informationsantwort. Sie wird gegenwärtig nicht verwendet. 2XX ist eine erfolgreiche Antwort, die Aktion wurde erfolgreich empfangen, verstanden und akzeptiert. 3XX ist eine Weitersendeantwort, die anzeigt, dass weitere Aktion notwendig ist, um die Anforderung zu vervollständigen. Es ist diese Antwort, die von manchen Ausführungsformen der vorliegenden Erfindung verwendet wird, um einen Clienten zu veranlassen, sich erneut an einen ausgewählten Serverplatz zu wenden. 4XX ist eine Clientenfehlerantwort. Diese zeigt eine schlechte Syntax in der Anforderung an. Schließlich ist 5XX ein Serverfehler. Dieses zeigt an, dass der Server eine offensichtlich gültige Anforderung nicht erfüllt hat.
  • Spezielle Formate von HTTP-Mitteilungen sind beschrieben in D. Crocker, "Standard for the Format of ARPA Internet Text Messages", STD II, RFC 822, UDEL, August 1982, die hier für alle Zwecke durch Bezugnahme eingeschlossen wird.
  • 2.0 Spezielle Konfigurationen
  • 2A zeigt ein repräsentatives, verteiltes Berechnungssystem gemäß der vorliegenden Erfindung. In 2A verbindet ein Netz 200 mehrere Servermaschinen miteinander und mit einer äußeren Internetumgebung über mehrere Netzzugangspunkte (NAPs). Die Topologie dieses internen Netzes ist vollständig willkürlich bezüglich der Erfindung. Es kann Ethernet, Tokenring, Asynchronous Transfer Mode (ATM) oder jede andere geeignete Netztopologie sein. Die Netzzugangspunkte sind Verbindungspunkte zwischen großen Netzen und können Router, Gateways, Brücken oder andere Verfahren enthalten, um Netze in Übereinstimmung mit speziellen Netztopologien miteinander zu verbinden.
  • Netzzugangspunkte 202, 204, 206 und 208 schaffen eine Netzerreichbarkeit zu äußeren Netzen A, B, C und D für die Verbindung mit Clientenmaschinen über mehrere äußere Netzpfade. In einer speziellen Ausführungsform enthalten diese Netzzugangspunkte einen Teil der Leitwegkonfigurationskomponente. In einer bevorzugten Ausführungsform sind diese NAPs Router 222, 224, 226 und 228, die zu anderen Netzen passen und für Open Shortest Path First (OSPF)-Leitwegalgorithmus offen sind. OSPF ist in der Lage, den Fall zu behandeln, bei dem mehrere Maschinen exakt die gleiche IP-Adresse haben, indem Pakete zur nächsten Maschine geleitet werden. Hingegen würde ein alternativer Leitwegmechanismus, Routing Information Protocol (RIP), diesen Fall nicht handhaben.
  • Weiterhin verwenden diese Router IP-Tunnelungstechniken, die dem Fachmann allgemein bekannt sind, und sind für die Schaffung von Leitwegen nach Vorgabe in der Lage, d. h. sie können Pakete zum Teil auf der Grundlage ihrer Quellenadresse leiten. Jede ist so gestaltet, dass IP-Tunnelung verwendet wird, um Pakete aus dem Netz über einen speziellen Router an eine spezielle NAP auf der Grundlage von Mantelquellenadressen und Serververfügbarkeit zu leiten.
  • 2A zeigt Frontende-Server 212, 214, 216 und 218, die an jeder NAP angeordnet sind. Diese Frontende-Server enthalten einen Frontende-Komponentenprozess. In einer bevorzugten Ausführungsform enthalten die Frontendeserver auch einen IP-Relaiskomponentenprozess. Die Funktionen dieser Prozesse werden unten beschrieben.
  • Ein Direktor-Server 250 enthält mehrere Softwarekomponenten, die in einer bevorzugten Ausführungsform eine Direktokomponente, eine Ping-Manager-Komponente und eine Lastmanager-Komponente enthalten, die jeweils unten beschrieben werden.
  • Einer oder mehrere Inhaltsserver 232, 234, 236 und 238 führen die wirkliche Abgabe von Inhalt durch, d. h. von Webseiten oder FTP-Dateien. Jedem sind eine oder mehrere Beispiele einer Inhaltsserverkomponente zugeordnet, die in der Lage ist, Daten abzugeben, beispielsweise, dass ausgehende Pakete eine Quellenadresse haben, die durch die Direktorkomponente auswählbar ist.
  • Jeder Inhaltsserver hat eine Netzpseudonym-IP-Adresse für jeden Router, die durch das System gesteuert ist. Beispielsweise hat in einem System mit vier Routern ein spezieller Inhaltsserver vier getrennte Netzpseudonym-IP-Adressen. Die Leitwegbestimmung innerhalb des Systems wird für die "Richtlinien-Leitwegbestimmung" konfiguriert, d. h. ein Leitweg auf der Grundlage der Quellenadressen von Paketen bestimmt, so dass in Abhängigkeit davon, woher die Netzpseudonym-IP-Adresse stammt, sie durch einen speziellen Systemrouter geleitet werden, der von dem Direktor ausgewählt wird. Eine Serie wählbarer IP-Tunnel ermöglichen es den Inhaltsservern, Daten an Clienten unter Verwendung eines "besten Leitwegs" zu senden. IP-Tunnel sind so konfiguriert, dass jeder Server Daten über einen gewählten Netzzugangspunkt anbieten kann. Hingegen liefern allgemein bekannte Systeme Daten, die vom Netz über einen Standardbeobachtungspunkt ausgeleitet werden, d. h. Netzausgangspunkte, die zu anderen Netzen führen, die das Internet bilden. Typischerweise ist der Netzbeobachtungspunkt der einzige Beobachtungspunkt für das Netz. Jeder IP-Tunnel ist so konfiguriert, dass er alle Daten zu einem anderen Beobachtungsrouter sendet. Jeder IP-Tunnel startet an einem Router und endet an einem anderen (entfernten) Router. Dieses ermöglicht es einer Inhaltsserverfarm (einer oder mehrere Inhaltsserver am gleichen physikalischen Ort, die hinter einem Router arbeiten), Daten über den Router einer anderen Inhaltsserverfarm anzubieten, wenn der Direktor bestimmt hat, dass dieses der optimale Pfad ist.
  • Router sind statistisch so konfiguriert, dass sie Pakete abwärts eines IP-Tunnels senden, wenn die Pakete eine Quellenadresse haben, die diesem IP-Tunnel zugeordnet sind. Beispielsweise in einem Netz, das drei Beobachtungspunkte hat, würde der Router am ersten Beobachtungspunkt, er sei "A" genannt, zwei ausgehende Tunnel haben, "Tunnel 1" und "Tunnel 2". Diese ausgehenden Tunnel führen zu den anderen beiden Routern, die jeweils in einem der anderen beiden Beobachtungspunkte, B und C, liegen. Der Router am Beobachtungspunkt A wäre so konfiguriert, dass er alle Pakete, die eine Quellenadresse von 1.1.1.1 haben, den Tunnel 1 hinableiten, und alle Pakete, die eine Quellenadresse 2.2.2.2 haben, den Tunnel 2 hinableiten. Tunnel 1 sendet alle Pakete an einen zweiten Beobachtungspunkt B, und Tunnel 2 sendet alle Pakete zu einem dritten Beobachtungspunkt C. Diese Leitwegbestimmung auf Quellenbasis ist allgemein als "Richtlinien-Leitwegbestimmung" (Policy Routing) bekannt.
  • Ein Inhaltsserver, der dem Router am Beobachtungspunkt A zugeordnet ist, läuft mit Serversoftware, die die örtliche Seite seiner Serverfassungen an Adressen 1.1.1.1 und 2.2.2.2 bindet, was es ihm ermöglicht, aus beiden Adressen zu bedienen. Die Direktorsoftware besitzt Konfigurationsinformation über diesen Inhaltsserver und seine Serveradressen. Dieses ermöglicht es dem Direktor zu bestimmen, dass wenn der Inhaltsserver von der 1.1.1.1-Adresse bedient, alle Pakete über Tunnel 1 zum Netzzugangspunkt B geleitet werden, und wenn der Inhaltsserver von der 2.2.2.2-Adresse bedient, alle Pakete über Tunnel 2 zum Netzzugangspunkt C geleitet werden. Die Direktorsoftware ist in der Lage, den NAP zu wählen, über den jeder Inhaltsserver seine Daten anbietet, indem der Teilnehmer informiert wird, welcher voll taugliche Domainname entsprechend einer IP-Adresse den Zugang ermöglicht, da dieses die Quellenadresse der Antwortpakete auf die Anforderung ist. Die Antwortpakete werden automatisch durch den von der Direktorsoftware gewählten NAP geleitet.
  • Diese Konfiguration der Richtlinien-Leitwegbestimmung wird für jedes System bei der Installation einmal eingerichtet. Der Direktor hat Zugang zu einer Tabelle IP-Adressen für jeden Inhaltsserver und den entsprechenden Systemrouter für jede der IP-Adressen eines speziellen Inhaltsservers. Dieses ermöglicht es dem Direktor, eine Inhaltsserver-IP-Adresse zu wählen, die durch den Systemrouter der Wahl des Direktors leitet. Der Direktor muss zunächst entscheiden, welcher Inhaltsserver die geringste Last hat. Er formuliert dieses aus den Daten, die ihm durch den Lastmanager gegeben wird (der seinerseits die Daten von jedem der Last-Deamons sammelt). Sobald der Direktor die am geringsten belastete Inhaltsservermaschine gewählt hat, wählt er eine Adresse aus dem Satz Netzpseudonym-IP-Adressen dieser Maschine, die durch einen Router führt, der die beste ICMP-Einweglaufzeit zum abprüfenden Teilnehmer hat. Er macht diese Entscheidung auf der Grundlage von Daten, die ihm vom Ping-Manager gegeben werden (der seinerseits seine Daten von den Ping-Daemons sammelte).
  • 2B zeigt eine alternative Ausführungsform eines verteilten Rechensystems gemäß der vorliegenden Erfindung. Die Ausführungsform von 2B unterscheidet sich von der Ausführungsform von 2A vor allem darin, dass die Ausführungsform von 2B keinen getrennten Direktorserver hat. Vielmehr sind in der alternativen Ausführungsform von 2B die Prozesse, die am Direktorserver 250 in 2A abliefen, unter den Frontende-Servern 212, 214, 216 und 218 in 2B verteilt.
  • 3.0 Spezielle Prozesse
  • 3A zeigt die Prozesskomponenten einer repräsentativen Ausführungsform gemäß der vorliegenden Erfindung.
  • 3.1 Prozesskomponenten
  • Das Frontende – Eine Ausführungsform einer Frontende-Komponente 360 empfängt Clientenanforderungen nach Datenobjekten. Es kann eine ankommende HTTP-Anforderung in der bevorzugten Ausführungsform sein. Das Frontende ermittelt zunächst "Rat" von den Direktorkomponenten 362, falls verfügbar, indem sofort die IP-Adresse des suchenden Clienten zum Direktor gesandt wird, und wartet darauf, dass der Direktor den "besten" Server auswählt. Schließlich sendet er eine Antwort zum anfordernden Clienten, die den Clienten anweist, einen speziellen Server für die weitere Verarbeitung der Anforderung anzusprechen. Das Frontende muss das Protokoll der Clientenanforderung verstehen und wird anwendungsspezifische Mechanismen verwenden, um den Clienten zum speziellen Server zu leiten. In einer speziellen Ausführungsform sendet das Frontende dem suchenden Clienten eine HTTP-Weitersendungsantwort zum URL des besten Servers. Eine Ausführungsform dieser Erfindung kann mehrere Frontende-Komponenten enthalten, die ein oder mehrere Benutzerebenenprotokolle verstehen.
  • Der Direktor – Eine Ausführungsform einer Direktorkomponente 362 empfängt Datenanfragen von Frontende-Komponenten 360 und unter Verwendung von Daten über die Quelle des Clienten, vorzugsweise die IP-Adresse des anfragenden Clienten sowie von nachgebildeten Serverstatus- und Netzpfadcharakteristika, vorzugsweise ICMP-Echoantwortzeiten, die von den Kollektorkomponenten empfangen werden, wie beispielsweise dem Ping-Manager 364 und dem Last-Manager 366, gibt sie Information zurück, die es den Frontenden ermöglicht, Benutzeranforderungen zu leiten. Die Entscheidung berücksichtigt alle Daten und sendet dem Frontende die IP-Adresse des "besten" Servers. Direktorkomponenten enthalten die Entscheidungsverfahren zur Bewertung alternativer Serverwahlen und schaffen eine Koordination für das gesamte System. Eine Ausführungsform dieser Erfindung enthält eine oder mehrere Direktorkomponenten.
  • Die Kollektorkomponenten – Eine Ausführungsform einer Kollektorkomponente überwacht eine oder mehrere Charakteristika von Netzpfaden oder Inhaltsserverlast und macht diese Information der Direktorkomponente zur Verwendung bei der Serverauswahlentscheidung verfügbar. Eine Ausführungsform dieser Erfindung enthält eine oder mehrere Kollektorkomponenten, vorzugsweise eine Ping-Manager-Komponente 364, eine Ping-Daemon-Komponente (nicht gezeigt), eine Last-Manager-Komponente 366 und eine Last-Daemon-Komponente (nicht gezeigt).
  • Der Ping-Manager unterrichtet den Direktor, welcher Inhaltsserver den schnellsten ICMP-Echopfad hat. Diese Daten werden vom Ping-Manager 364 gesammelt. Der Ping-Manager erhält seine Pingzeitdaten von einzelnen Servermaschinen, die jeweils ICMP-Pings verwenden, um die ICMP-Leitwegbestimmungszeit zwischen sich selbst und der Maschine des suchenden Clienten zu bestimmen. Der Ping-Manager speichert dann diese Information und berichtet sie an den Direktor, der sie bei den Entscheidungen über den besten Leitweg verwendet.
  • Der Ping-Daemon läuft auf Servermaschinen, die jeder Inhaltsservermaschinenansammlung zugeordnet sind. Eine Inhaltsservermaschine (oder Ansammlung von ihnen) befindet sich nahe jedem der Netzzugangspunkte (NAPs). Der Ping-Daemon wartet auf eine Ping-Anforderung (und seine entsprechende IP-Adresse, die die IP-Adresse des suchenden Clienten ist) und "pingt" dann die IP-Adresse des suchenden Clienten, um die ICMP-Leitwegbestimmungszeit durch den eigenen, nächsten Grenzrouter aufzuzeichnen. Er sendet dann diese Daten zurück zum Ping-Manager.
  • Die Lastmanager-Software ist ähnlich dem Ping-Manager, berichtet und speichert aber Information vom Last-Daemon über jede laufende Belastung der Inhaltsservermaschinen. Sie sendet diese Daten auch zum Direktor.
  • Der Last-Daemon läuft zusammen mit jedem Inhaltsserver 368 und berichtet periodisch zurück zum Lastmanager. Er sendet Daten über die Anzahl gegenwärtig offener TCP-Verbindungen, freier RAM-, freier SWAP- und CPU-Leerlauf-Zeit.
  • 3B zeigt die Softwarekomponenten einer alternativen Ausführungsform gemäß der vorliegenden Erfindung. Wenn man das Softwarekomponentendiagramm der alternativen Ausführungsform von 3B mit dem der Ausführungsform von 3A vergleicht, dann besteht der Hauptunterschied zwischen zwei Ausführungsformen darin, dass in der alternativen Ausführungsform von 3B der Direktorprozess 362 auf zahlreiche Server verteilt ist. In 3B ist der Direktorprozess 363 daher als drei separate Direktorprozessinstanzen gezeigt. In 3A hingegen ist der Direktorprozess 362 als ein einziger Direktorprozess gezeigt, der mit anderen Prozessen auf mehreren Servern in Verbindung ist.
  • 3C zeigt die Softwarekomponenten einer bevorzugten Ausführungsform gemäß der vorliegenden Erfindung. Im Vergleich des Softwarekomponentendiagramms der Ausführungsform von 3B mit dem der Ausführungsform von 3C besteht der Hauptunterschied zwischen den zwei Ausführungsformen darin, dass in der Ausführungsform von 3C der Frontende-Prozess 360 eine IP-Relais-Funktion enthält.
  • Das Frontede/IP-Relais – Eine Ausführungsform einer Frontende/IP-Relais-Komponente 360 empfängt einlaufende IP-Pakete für jeglichen IP-Verkehr. Wie in den Ausführungsformen der 3A und 3B erbittet das Frontende zunächst "Rat" von den Direktorkomponenten 362, falls verfügbar, indem sofort die IP-Adresse des Clienten zum Direktor gesandt und darauf gewartet wird, dass der Direktor den "besten" Server wählt. Anstatt jedoch den Clienten anzuweisen, einen speziellen Server für weitere Anforderungsverarbeitung zu kontaktieren, wie von den Frontende-Komponenten der Ausführungsformen der 3A und 3B durchgeführt, leitet das IP-Relais die Pakete zum gewählten "besten" Server in Übereinstimmung mit der Bestimmung, die durch den Direktor getroffen wurde. Eine Ausführungsform dieser Erfindung kann mehrere Frontende-Komponenten enthalten, die als die IP-Ebene funktionieren.
  • 3.2 Schritte zur Bedienung einer Anforderung
  • 4A zeigt einen Satz Schritte, die bei der Verarbeitung bei Empfang, Bewertung und Beantwortung einer Kundenanforderung in einer speziellen Ausführungsform der Erfindung auftreten. In einem Schritt 402 aktualisiert ein Last-Daemon-Prozess, der sich bei einem Inhaltsserver befindet, wie 232 von 2A, periodisch Information direkt an einem Lastmanagerprozess 366, der an einem Direktorserver 250 wirkt. Anschließend aktualisiert im Schritt 404 der Lastmanagerprozess Lastinformation, die von allen Inhaltsservern gewonnen wurde, die Last-Daemon-Prozesse haben. Dieses ermöglicht es dem Direktorprozess 362, die am geringsten belastete Inhaltsservermaschine auszuwählen, in Abhängigkeit von einer einlaufenden Anforderung, wie in den Schritten 410 und 412.
  • Im Schritt 410 wird eine einlaufende Clientenanforderung, die eine HTTP-Anforderung von beispielsweise einem Webbrowser sein kann oder eine FTP-Anforderung von einem FTP-Clienten, über einen wahlfreien äußeren Pfad zu einem System Grenzgateway geleitet, typischerweise ein Router an einem Netzzugangspunkt. An diesem Punkt wird die Clientenanforderung eine Eingabe in die Serverlast, die das verteilte Rechensystem der vorliegenden Erfindung vergleichmäßigt. Sie wird durch IP-Aktion einer Frontende-Komponente 360 in Übereinstimmung mit der Leitwegtabelle übermittelt, die einem an diesem Netzzugangspunkt gelegenen Router zugeordnet ist. Im Schritt 412 betätigt im Ansprechen auf den Empfang der Clientenanwendungsanforderung die Frontende-Komponente eine Anforderung an die Direktorkomponente 362 nach einem bevorzugten Server. Der Direktor, der die Frontende-Anforderung nach Information über Clientenanforderung im Schritt 412 empfangen hat, fordert Information, wie beispielsweise den zweckmäßigsten Pfad zwischen Servern und Clienten, von einer Kollektorkomponente an, beispielsweise einen Ping-Manager 364, in einem Schritt 413. In der Ausführungsform von 4A ist der zweckmäßigste Pfad jeder mit der schnellsten ICMP-Echoantwort (Ping), der durch eine Ping-Mangager-Kollektorkomponente 364 bestimmt wird, die zusammen mit einer oder mehreren Ping-Daemon-Komponenten wirkt, die zusammen an den zahlreichen Netzzugangspunkten im Systemnetz angeordnet sind, in einem Schritt 414. Diese Ping-Daemons bestimmen den schnellsten ICMP-Echopfad zwischen ihrem speziellen Frontende-Server und dem Clienten durch Übertragung aufeinanderfolgender Pings zum Clienten über den ihrem speziellen Frontende-Server zugeordneten Netzzugangspunkt und durch Zeitbestimmung der Antwort, wie in einem Schritt 415 gezeigt. Jeder Ping-Daemon überträgt von Zeit zu Zeit die Zeit zu einem Clienten über seinen speziellen Netzzugangspunkt zum Ping-Manager in einem Schritt 416. Die Ping-Manager-Komponente liefert Rückkehrwerte für den Netzzugangspunkten des Systems zugeordnete Pfade im Schritt 417 an den Clienten zurück. In speziellen Ausführungsformen kann die Ping-Manager-Komponente pro-aktive Statusanfragen (nicht dargestellt) auslösen oder kann Statusinformation zu jeder Zeit zurückgeben, ohne ausdrückliche Anforderungen von der Direktorkomponente. Die Direktorkomponente gibt den richtigen Inhaltsserver an, der für den Clienten zu benutzen ist, an die FrontendeKomponente in einem Schritt 418. Die Frontende-Komponente leitet den Clienten zum richtigen Inhaltsserver unter Verwendung eines Anwendungsebenenprotokolls, vorzugsweise einer HTTP-Leitantwort in einem Schritt 419. Die Frontende-Antwort wird über einen Netzzugangspunkt an die Clientenmaschine durch das Internetz geleitet, beispielsweise unter Verwendung des IP-Protokolls. Anschließend werden, wie im Schritt 420 gezeigt, Anforderungen vom Clienten nach dem besten Inhaltsserver, z. B. 232, über den besten Leitweg zu seiner Maschine gemacht. (Was auch der beste Platz ist, um in das externe Netz einzutreten, um den dem suchenden Clienten eigenen Netzprovider zu erhalten.)
  • 4B zeigt einen Satz Schritte, die beim Prozess des Empfangens, Bewertens und Antwortens einer Clientenanforderung in einer alternativen Ausführungsform der Erfindung auftreten. Vergleicht man die Verarbeitungsschritte der in 4B gezeigten Ausführungsform mit jenen der Ausführungsform von 4A, wird klar, dass die besonderen Schritte identisch sind. Es ist jedoch anzumerken, dass die Schritt 412, 414, 416 und 418 keine Netztransaktionen sind, wie es in 4A der Fall war, sondern Transaktionen zwischen Prozessen, die gemeinsam innerhalb einer Servermaschine ablaufen.
  • 4C zeigt einen Satz Schritte, die beim Prozess des Empfangens, Bewertens und Beantwortens einer Clientenanforderung in einer bevorzugten Ausführungsform der Erfindung auftreten. Vergleicht man die Verarbeitungsschritte der in 4B gezeigten Ausführungsform mit jenen der Ausführungsform von 4C, wird klar, dass der Hauptunterschied darin besteht, dass die Schritte 419 und 420 von 4B, die Weitersendeantwort und die nachfolgenden HTTP-Umwandlungschritte durch einen neuen Schritt 422 ersetzt worden sind. Wir im Schritt 422 wird der IP-Verkehr vom Clienten entsprechend der Bestimmung durch den Direktor zum "besten Server" weitergeleitet. Dieses nimmt den Platz des Weitersendeantwortschritt 419, der durch den Frontende-Prozess getan wird, zum Clienten ein, wie in 4B gezeigt. Es ist anzumerken, dass die Schritte 402, 402, 410, 412, 413, 414, 415, 416, 417 und 418 in der bevorzugten Ausführungsform von 4C die gleichen bleiben, wie bei den Ausführungsformen der 4A und 4B.
  • 4C zeigt die Verarbeitungsschritte in der bevorzugten Ausführungsform. In einem Schritt 410 nimmt ein Frontende-Relais 360 in das Netz eintretende Pakete auf. Auf der Grundlage von Adressinformation, die im IP-Kopfteil enthalten ist, bestimmt das Frontende-Relais den ursprünglichen Zielserver des Pakets. Als nächstes ruft im Schritt 412 das Frontende-Relais den Direktor 362 auf, die Leitwegentscheidung zum "besten Server" zu treffen. In den Schritten 413, 414, 415, 416, 417 und 418 bestimmt der Direktor im Zusammenwirken mit dem Lastmanager 366, dem Ping-Mananger 364, den Last-Daemon- und Ping-Daemon-Komponenten einen "besten Server" für den IP-Verkehr und teilt diese Maschinenadresse dem Frontende/Relais mit. Der Entscheidungsprozess ist identisch mit jenem der Ausführungsformen der 4A und 4B. In einem Schritt 422 leitet das Frontende/Relais alle Pakete zur "besten" Servermaschine. Da die Paketweitergabe in der IP-Ebene stattfindet, können Pakete für jeden Service, der über die IP-Ebene läuft, durch die Verfahren der vorliegenden Erfindung geleitet werden.
  • 4.0 Entscheidungsfindungsverfahren
  • 4.1 Direktor
  • Der Direktor trifft Entscheidungen darüber, welcher Inhaltsserver und welcher Router der beste für jede Anforderung durch einen Clienten ist. 5A zeigt ein Flussdiagramm 500 der Prozessschritte, die von einem Direktor in einer speziellen Ausführungsform der Erfindung unternommen werden. In einem Schritt 501 wird ein Netzmaß für jede Kombination von "Inhaltsserver" und "Ausgehender Router" berechnet. Eine Sortierliste wird aus diesen Maßen konstruiert, mit dem Format:
    (Platz 1 Grenze 1 Maß 1, ... Platz N Grenze N Maß N) (3)
  • In einem Schritt 502 werden die Serverkandidaten für die besten Plätze aus der im obigen Schritt 501 erzeugten Liste ausgewählt. Die Verarbeitung durchquert die Liste, wählt das Maß obersten Rangs sowie alle Kandidaten, die innerhalb eines gewissen Prozentsatzes (beispielsweise X%) des höchsten Maßes liegen. Merke, dass jeder Inhaltsserver mit allen Kombinationen ausgehender Router in der Liste aufgeführt ist. Da es nicht notwendig ist, Server-Router-Kombinationen in Betracht zu ziehen, die nicht sinnvoll sind, beispielsweise braucht der Server von LA, der durch die Grenze von NY geht, nicht betrachtet zu werden, wenn eine Kombination eines LA-Servers, der durch die LA-Grenze geht, vorhanden ist, muss nur die "beste" in Betracht gezogen werden. Beispielsweise mit X = 5 und der sortierten Liste von Kombinationen (Platz, Grenze, Maß) wie in Zeile (4) gezeigt:
    @network = (ny ny 300 sj) la 305 sj sj 312 ny sj 380 dc ny 400 ...) (4)
  • Die ersten drei Eingaben sind:
    ny ny 300
    sj la 305
    sj sj 312
  • Da diese alle innerhalb 5% von einander sind, zieht das System alle drei in Betracht. Es ist jedoch anzumerken, dass San Jose zweimal aufgeführt ist, und dass die Zeit der zweiten Listung länger ist, als die Zeit der ersten. Das erste Erscheinen des Servers von San Jose ist daher gegenüber dem zweiten bevorzugt, so dass das zweite zugunsten des ersten ausgeschieden wird. Es wird ein Server entweder in NY oder SJ gewählt. Wenn ein Server in NY gewählt wird, wird auch die Grenze in NY gewählt. Wenn ein Server in SJ gewählt wird, ist die Grenze in LA die "beste".
  • In einem Schritt 503 wird der "beste" Server aus den Kandidaten ausgewählt. Es wird eine Liste aller Maße für Kandidatenserver erstellt und ein statistischer Algorithmus angewendet, um den besten Server aus den Kandidaten auszuwählen. Das Ergebnis dieses Schritts ist der Platz für den ausgewählten Server und ein Identifizierer für den speziellen Server (es können mehrere Server an jedem Platz sein).
  • In einem Schritt 504 ruft vom Platz des oben gewählten Servers das System auf, welche Grenze für den im Schritt 502 bestimmten Platz zu verwenden ist. Aus dem Serveridentifizierer und der ausgehenden Grenze wird dann der richtige, voll geeignete Domainname, der die geeignete IP-Adresse für die interne Richtlinien-Leitwegbestimmung ermittelt.
  • 4.2 Ping-Manager
  • Der Ping-Manager ruft konstant Ping-Information von einem oder mehreren Ping-Daemans ab. Der Ping-Manager sendet an den Direktor eine Folge von Werten, die für die Hin- und Zurück-Zeit zu und von jedem Clientenplatz repräsentativ sind. Nicht antwortende Clientenplätze werden durch einen beliebig langen Wert dargestellt, wenn ein Ping-Daemon nicht antwortet. In einer speziellen Ausführungsform sendet ein Ping-Manager an einen Direktor eine Folge, wie sie unten durch Zeilen (5) und (6) aufgetragen sind.
    "client_address metric_site_1 metric_site2...metric_site_N\n" (5)
    "128.9192.44 3009999999 280 450\n" (6)
  • In einer bevorzugten Ausführungsform werden die Platzmaße geordnet.
    @incoming_metric_order = ('ny', 'la', 'dc', 'sj') (7)
  • 5B zeigt ein Flussdiagramm 510 der Prozessschritte, die vom Direktor im Ansprechen auf dem Empfang der Informationsfolge nach den Zeilen (5) und (6) vom Ping-Manager ausgeführt werden. In einem Schritt 512 des Flussdiagramms 510 führt der Direktor die Verarbeitung der einlaufenden Information vom Ping-Manager aus, um die Information in einem verwendbaren Format zu speichern, wie durch den Pseudokode in Zeilen (8) unten aufgetragen ist.
  • Figure 00230001
  • Als nächstes ermittelt in einem Schritt 514 im Ansprechen auf eine von einem Frontende-Prozess empfangene Anforderung der Direktor Information über diese zu beantwortende Anforderung. Zeile (9) zeigt den Pseudokode für den Verarbeitungsschritt 514:
  • Figure 00230002
  • In einem Schritt 516 berechnet der Direktor Einwegmaße aus den Zweiwegmaßen, die vom Ping-Manager geliefert werden, entsprechend dem folgenden Pseudokode in Zeile (10):
  • Figure 00230003
  • Figure 00240001
  • Als nächstes berechnet im Schritt 518 der Direktor Pfadmaße für alle Platz- und Grenzkombinationen entsprechend dem folgenden Pseudokode in Zeilen (11)
  • Figure 00240002
  • Als nächstes sortiert in einem Schritt 520 der Direktor die Maße und baut eine geordnete Liste unter Verwendung des folgenden Pseudokode in Zeilen (12) auf:
  • Figure 00240003
  • Figure 00250001
  • An diesem Punkt enthält die Variable @sorted_list alle Information, die notwendig ist, um Paare von Plätzen und Kandidatenservern auszuwählen.
  • 4.3 Lastmanager
  • Der Lastmanager sendet Mitteilungen an den Direktor etwa einmal alle zwei Sekunden, in dem in Zeile (13) gezeigten Format:
    "server1 load1 server2 load2 ... server N load N"; (13)
  • 5C zeigt ein Flussdiagramm 521 von Ziegelprozessschritten, die vom Direktor bei der Wahl eines "besten" Servers unter Verwendung der Information ausgeführt werden, die vom Lastmanager, aufgetragen in Zeile 13 oben, und vom Ping-Manager, aufgetragen in den Zeilen (5) und (6) oben ausgeführt werden.
  • Der Direktor hält mehrere innere Datenstrukturen aufrecht, einschließlich einer assoziativen Gruppe von Serverlasten, Paarlastwerte mit Serverindentifizierern:
    $load_array{$serverID} = $load;
    eine Liste von Servern an jedem Platz:
    $servers {'la'} = www.la1.test.com www.la2.testcom;
    $servers{'dc'} = www.dcl.test.com www.dc2.test.com";
    eine Abbildung von Servern und Grenzen in einen richtigen Namen, der eine entsprechende Quellenadresse hat:
    $server_map {"www.la1.test.com la"} = www.la1-la.test.com;
    $server_map {"www.la1.test.com dc"} = www.la1-dc.test.com;
    die oben erzeugte @sorted_list enthält Tripel aus Plätzen, Grenzen und Pfadmaßstäben. Aus diesen Datenstrukturen kann der Direktor einen optimalen Server unter Verwendung der in 5C gezeigten Schritte wählen. Ein Entscheidungsschritt betätigt, dass alle Eingaben in die @sorted_list nicht verarbeitet worden sind, und initialisiert die "best_metric"-Variable zum Maß des ersten Elements der @sorted_list. Diese Schritte sind im folgenden Pseudokode aufgetragen:
  • Figure 00260001
  • Wie in 5C gezeigt, führen ein Entscheidungsschritt 522, ein Prozessschritt 524, ein Entscheidungsschritt 526 und ein Prozessschritt 528 einen Schleifendurchgang zum Auswählen von Tripeln aus Platz, Grenze und Maß von der @sorted_list und ein Hinzufügen der Grenzinformation zu einer Platzgrenzliste und des Platzes zu einer Serverliste aus. Dieses ist ebenfalls im folgenden Pseudokode aufgetragen:
  • Figure 00260002
  • Sobald diese Schleife alle Glieder der @sorted_list verarbeitet hat, nimmt der Entscheidungschritt 522 den "ja"-Pfad, und die Verarbeitung wird mit einem Entscheidungsschritt 530 fortgesetzt, der zusammen mit den Prozessschritten 532 und 534 einen Scheifendurchgang zur Verarbeitung aller Server in der oben erzeugten Serverliste ausführt und die Last jedes Servers zu einer Serverlastliste hinzufügt und die Lasten aller Server in $total-Variablen zusammenfasst. Dieses ist auch im folgenden Pseudokode aufgetragen:
  • Figure 00270001
  • Sobald diese Schleife alle Glieder der @sorted_list verarbeitet hat, nimmt der Entscheidungsschritt 530 von 5C den ja"-Pfad, und die Verarbeitung wird mit einem Prozessschritt 536 fortgesetzt, der eine beliebige Zahl zwischen 1 und der Gesamtserverlast bestimmt. Als nächstes vollzieht sich die Verarbeitung in der Schleife, die von den Entscheidungsschritten 538 und 544 und den Verarbeitungsschritten 540, 542 und 546 gebildet wird. Diese Schleife wandert durch die Server @server_list, summiert deren Lasten bis dieses laufende Gesamtergebnis die beliebige Zahl überschreitet, die im Prozessschritt 536 gewählt wurde, oder bis das letzte Glied der @server_list verarbeitet worden ist. In jedem Falle ist es jener Server, der darauf geprüft wird, ob eine diese beiden Bedingungen erfüllt ist, der Server, der von dem Direktor als der "beste" Server ausgewählt wird. Dieses ist auch im folgenden Pseudokode aufgetragen:
  • Figure 00270002
  • Sobald der Direktor einen "besten" Server gewählt hat, wird die Verarbeitung fortgesetzt, wie im Schritt 504 von 5A beschrieben, und es gilt der folgende Pseudokode:
  • Figure 00280001
  • 5.0 Zusammenfassung
  • Zusammenfassend kann man sehen, dass die vorliegende Erfindung ein intervernetztes System schafft, in dem Datenobjekte an Benutzer entsprechend dem kürzesten verfügbaren Netzpfad geliefert werden. Ein weiterer Vorteil der Lösungen gemäß der Erfindung besteht darin, dass diese Verfahren Toleranz gegenüber Fehlern haben, die in der Hardware enthalten sind. Außerdem wird die Zuverlässigkeit von System gemäß der Erfindung gegenüber bekannten Webservern vergrößert. Andere Ausführungsformen der vorliegenden Erfindung und ihre Einzelnen Komponenten liegen für den Fachmann aus dem Studium der detaillierten Beschreibung auf der Hand, in der Ausführungsformen der Erfindung durch Erläuterung der besten Art zur Ausführung der Erfindung beschrieben sind. Wie man erkennt, sind weitere und andere Ausführungsformen der Erfindung möglich und es sind viele Details von Modifikationen zahlreicher, auf der Hand liegender Beziehung möglich, ohne vom Umfang der vorliegenden Erfindung abzuweichen. Dementsprechend sollen die Zeichnungen und die detaillierte Beschreibung als in ihrer Art beispielhaft und nicht einschränkend betrachtet werden. Es ist daher nicht beabsichtigt, dass die Erfindung eingeschränkt wir, mit Ausnahme wie in beigefügten Ansprüchen beschrieben.

Claims (23)

  1. System zum Leiten von Anforderungen nach Datenobjekten von mehreren Clienten über ein Netz (200) auf der Grundlage von Richtlinien Politik, die Netzbedingungen berücksichtigen, enthaltend: mehrere Router (222, 224, 226, 228); mehrere Inhaltsserver (232, 234, 236, 238) zum Abgeben der Datenobjekte, die von den Clienten angefordert werden; mehrere Frontende-Server (212, 214, 216, 218) zum Empfangen der Datenobjektanforderungen von den Clienten und zum Leiten der Datenobjektanforderungen an die Inhaltsserver (232, 234, 236, 238) über das Netz (200); einen Direktor (250) zum periodischen Überwachen der Netzbedingungen und zum Identifizieren von Kombinationen der Inhaltsserver (232, 234, 236, 238) und der Router (222, 224, 226, 228) als Kandidaten zum Bearbeiten spezieller Datenobjektanforderungen, wobei der Direktor (250) einige der Kandidaten auf der Grundlage der beobachteten Netzbedingungen auswählt und die Frontende-Server (212, 214, 216, 218) anweist, die speziellen Datenobjektanforderungen den Inhaltsservern der ausgewählten Kandidaten zuzuleiten; wobei die Netzbedingungen Information über eine Zeit zur Durchquerung eines Pfades über das Netz zu jedem der Inhaltsserver (232, 234, 236, 238) enthalten und der Direktor (250) die Kandidaten auswählt, die die Inhaltsserver mit einem Pfad haben, der in einer kürzesten Zeitdauer durchquert werden kann; wobei die Zeit zur Durchquerung des Pfades durch eine ICMP-Echoantwort bestimmt wird.
  2. System nach Anspruch 1, bei dem der Direktor (250) eine Anfrage von den Frontende-Servern (212, 214, 216, 218) empfängt und die Anfrage mit einer Antwortweitersendung an die Inhaltsserver (232, 234, 236, 238) der ausgewählten Kandidaten beantwortet.
  3. System nach Anspruch 1 oder 2, beim die Netzbedingungen Information über eine Last für jeden der Inhaltsserver (232, 234, 236, 238) enthalten und der Direktor (250) die Kandidaten auswählt, die die Inhaltsserver mit der geringsten Last haben.
  4. System nach einem der Ansprüche 1 bis 3, bei dem die Weitersendungsantwort eine HTTP-Weitersendungsantwort ist.
  5. System nach einem der Ansprüche 1 bis 4, bei dem die Last der Inhaltsserver (232, 234, 236, 238) durch die Anzahl offener TCP-Verbindungen für jeden der Inhaltsserver bestimmt wird und der Direktor (250) die Kandidaten auswählt, die die Inhaltsserver mit der geringsten Zahl offener TCP-Bedingungen haben.
  6. System nach einem der Ansprüche 1 bis 5, bei dem die Last der Inhaltsserver (232, 234, 236, 238) durch den Umfang an verfügbarem freien RAM für jeden der Inhaltsserver bestimmt wird und der Direktor (250) die Kandidaten auswählt, die die Inhaltsserver mit dem größten Umfang an verfügbarem freiem RAM haben.
  7. System nach einem der Ansprüche 1 bis 7, bei dem die Last der Inhaltsserver (232, 234, 236, 238) durch den Umfang an verfügbarem freiem SWAP für jeden der Inhaltsserver bestimmt wird und der Direktor (250) die Kandidaten auswählt, die die Inhaltsserver mit dem größten Umfang an verfügbarem freien SWAP haben.
  8. System nach einem der Ansprüche 1 bis, bei dem die Last der Inhaltsserver (232, 234, 236, 238) durch den Umfang an CPU-Leerlaufzeit für jeden der Inhaltsserver bestimmt wird und der Direktor (250) die Kandidaten auswählt, die die Inhaltsserver mit dem größten Umfang an CPU-Leerlaufzeit haben.
  9. Verfahren zum Leiten von Datenobjektanforderungen über ein Netz (200) von mehreren Clienten an mehrere Inhaltsserver (232, 234, 236, 268) über mehrere Router (222, 224, 226, 228) auf der Grundlage von Richtlinien, die Netzbedingungen berücksichtigen, umfassend die Schritte: periodisches Überwachen der Netzbedingungen; Identifizieren von Kombinationen aus den Inhaltsservern (232, 234, 236, 238) mit den Routern (222, 224, 226, 228) als Kandidaten zur Bedienung mit den Datenobjektanforderungen; Auswählen eines besten Kandidaten aus den Kandidaten für eine Datenobjektanforderungen auf der Grundlage der überwachten Netzbedingungen; Zuleitung der einen Datenobjektanforderung an den Inhaltsserver des ausgewählten besten Kandidaten über das Netz (200); wobei der Überwachungsschritt den Unterschritt enthält: Ermitteln einer Zeit zur Durchquerung eines Leitwegs zwischen jedem der Inhaltsserver und einem speziellen der Teilnehmer; und bei dem der Auswählschritt den Unterschritt enthält: Auswählen des besten Kandidaten, der den Inhaltsserver mit einem Pfad hat, der in einer kürzesten Zeitdauer durchquert werden kann; wobei die Zeitdauer zur Durchquerung des Pfades durch eine ICM-Echoantwort bestimmt wird.
  10. Verfahren nach Anspruch 9, bei dem der Leitungsschritt die Unterschritte enthält: Empfangen einer Anfrage bezüglich des Inhaltsservers des besten Kandidaten, und Beantworten der Anfrage mit einer Antwortweitersendung zum Inhaltsserver des besten Kandidaten, der im Auswählschritt gewählt wurde.
  11. Verfahren nach Anspruch 9 oder 10, bei der Überwachungsschritt den Unterschritt enthält: Ermitteln einer Last eines jeden der Inhaltsserver; und wobei der Auswählschritt den Unterschritt enthält: Auswählen des besten Kandidaten, der den Inhaltsserver mit der geringsten Last hat.
  12. Verfahren nach einem Ansprüche 9 bis 11, bei dem Weitersendungsantwort eine HTTP-Weitersendungsantwort ist.
  13. Verfahren nach einem der Ansprüche 9 bis 12, bei dem der Überwachungsschritt den Unterschritt enthält: Ermitteln der Anzahl offener TCP-Verbindungen für jeden der Inhaltsserver; und wobei der Auswählschritt den Unterschritt enthält: Auswählen des besten Kandidaten, der den Inhaltsserver mit der geringsten Zahl offener TCP-Verbindungen hat.
  14. Verfahren nach einem der Ansprüche 9 bis 13, bei dem der Überwachungsschritt den Unterschritt enthält: Ermitteln eines Umfangs an verfügbarem, freien RAM für jeden der Inhaltsserver; und wobei der Auswählschritt den Unterschritt enthält: Auswählen des besten Kandidaten, der den Inhaltsserver mit dem größten Umfang an verfügbarem, freiem RAM hat.
  15. Verfahren nach einem der Ansprüche 9 bis 14, bei dem der Überwachungsschritt den Unterschritt enthält: Ermitteln eines Umfangs an verfügbarem, freiem SWAP für jeden der Inhaltsserver; und wobei der Auswählschritt den Unterschritt enthält: Auswählen des besten Kandidaten, der den Inhaltsserver mit einem größten Umfang an verfügbarem, freiem SWAP hat.
  16. Verfahren nach einem der Ansprüche 9 bis 15, bei dem der Überwachungsschritt den Unterschritt enthält: Ermitteln eines Umfangs an CPU-Leerlaufzeit für jeden der Inhaltsserver; und wobei der Auswählschritt den Unterschritt enthält: Auswählen des besten Kandidaten, der den Inhaltsserver mit einem höchsten Umfang an CPU-Leerlaufzeit.
  17. Verfahren zum Zuleiten von Information von mehreren Clienten aus einer Vielzahl Clienten unter einer Vielzahl Server (232, 234, 236, 238) über mehrere Router (222, 224, 226, 228) auf der Grundlage von Richtlinien, die eine Antwortzeit in einer Paketnetzumgebung berücksichtigen, umfassend die Schritte: Überwachen der Netzantwortzeit; Identifizieren von Kombinationen aus den Servern (2323, 234, 236, 238) und den Routern (222, 224, 226, 228) als Kandidaten für das Empfangen der Information; Auswählen eines besten Kandidaten aus den Kandidaten auf der Grundlage der überwachten Netzantwortzeit; Weiterleiten der Information von einem speziellen Clienten in der Vielzahl Clienten zu dem Server des besten Kandidaten, wobei der Überwachungsschritt den Unterschritt enthält: Ermitteln einer Zeit zur Durchquerung eines Leitwegs zwischen jedem der Server und einem speziellen der Clienten; und wobei der Auswählschritt den Unterschritt enthält: Auswählen des besten Kandidaten, der den Server mit einem Pfad hat, der in einer kürzesten Zeitdauer durchquert werden kann; wobei die Zeitdauer zur Durchquerung des Pfades durch eine ICMP-Echoantwort bestimmt wird.
  18. Verfahren nach Anspruch 17, bei dem der Weiterleitungsschritt den Unterschritt enthält: Übermitteln der Information zu dem Server des besten Kandidaten unter Verwendung von Netzebenenprotokollen.
  19. Verfahren nach Anspruch 17 oder 18, bei der Überwachungsschrit den Unterschritt enthält: Ermitteln einer Last von jedem der Server; und wobei der Auswählschritt den Unterschritt enthält: Auswählen des besten Kandidaten, der den Server mit der geringsten Last hat.
  20. Verfahren nach einem der Ansprüche 17 bis 19, bei dem der Überwachungsschritt den Unterschritt enthält: Ermitteln der Anzahl offener TCP-Verbindungen für jeden der Server; und wobei der Auswählschritt den Unterschritt enthält: Auswählen des besten Kandidaten, der den Server mit der geringsten Zahl offener TCP-Verbindungen hat.
  21. Verfahren nach einem der Ansprüche 17 bis 20, bei dem der Überwachungsschritt den Unterschritt enthält: Ermitteln eines Umfangs an verfügbarem, freiem RAM für jeden der Server; und wobei der Auswählschritt den Unterschritt enthält: Auswählen des besten Kandidaten, der den Server mit dem größten Umfang an verfügbarem, freiem RAM hat.
  22. Verfahren nach einem der Ansprüche 17 bis 21, bei dem der Überwachungsschritt den Unterschritt enthält: Ermitteln eines Umfangs an verfügbarem, freiem SWAP für jeden der Server; und wobei der Auswählschritt den Unterschritt enthält: Auswählen des besten Kandidaten, der den Inhaltsserver mit einem größten Umfang an verfügbarem, freiem SWAP hat.
  23. Verfahren nach einem der Ansprüche 17 bis 22, bei dem der Überwachungsschritt den Unterschritt enthält: Ermitteln eines Umfangs an CPU-Leerlaufzeit für jeden der Server; und wobei der Auswählschritt den Unterschritt enthält: Auswählen des besten Kandidaten, der den Server mit einem höchsten Umfang an CPU-Leerlaufzeit hat.
DE69733498T 1996-12-09 1997-12-09 Verteiltes rechnersystem und verfahren zur aufteilung von benutzeranfragen auf duplizierte netzwerkserver Expired - Lifetime DE69733498T2 (de)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US3248496P 1996-12-09 1996-12-09
US32484P 1996-12-09
US965848 1997-11-07
US08/965,848 US6185619B1 (en) 1996-12-09 1997-11-07 Method and apparatus for balancing the process load on network servers according to network and serve based policies
PCT/US1997/022542 WO1998026559A1 (en) 1996-12-09 1997-12-09 Distributed computing system and method for distributing user requests to replicated network servers

Publications (2)

Publication Number Publication Date
DE69733498D1 DE69733498D1 (de) 2005-07-14
DE69733498T2 true DE69733498T2 (de) 2005-11-03

Family

ID=26708484

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69733498T Expired - Lifetime DE69733498T2 (de) 1996-12-09 1997-12-09 Verteiltes rechnersystem und verfahren zur aufteilung von benutzeranfragen auf duplizierte netzwerkserver

Country Status (12)

Country Link
US (2) US6185619B1 (de)
EP (1) EP1016253B1 (de)
JP (1) JP4354532B2 (de)
AT (1) ATE297628T1 (de)
AU (1) AU724096B2 (de)
CA (1) CA2274496C (de)
DE (1) DE69733498T2 (de)
DK (1) DK1016253T3 (de)
ES (1) ES2258800T3 (de)
NZ (1) NZ336187A (de)
PT (1) PT1016253E (de)
WO (1) WO1998026559A1 (de)

Families Citing this family (380)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6473793B1 (en) * 1994-06-08 2002-10-29 Hughes Electronics Corporation Method and apparatus for selectively allocating and enforcing bandwidth usage requirements on network users
ATE188793T1 (de) 1994-10-12 2000-01-15 Touchtunes Music Corp Intelligentes system zur numerischen audio- visuellen reproduktion
US8661477B2 (en) * 1994-10-12 2014-02-25 Touchtunes Music Corporation System for distributing and selecting audio and video information and method implemented by said system
US7424731B1 (en) * 1994-10-12 2008-09-09 Touchtunes Music Corporation Home digital audiovisual information recording and playback system
US7188352B2 (en) * 1995-07-11 2007-03-06 Touchtunes Music Corporation Intelligent digital audiovisual playback system
US6317775B1 (en) * 1995-11-03 2001-11-13 Cisco Technology, Inc. System for distributing load over multiple servers at an internet site
US5991809A (en) * 1996-07-25 1999-11-23 Clearway Technologies, Llc Web serving system that coordinates multiple servers to optimize file transfers
FR2753868A1 (fr) * 1996-09-25 1998-03-27 Technical Maintenance Corp Procede de selection d'un enregistrement sur un systeme numerique de reproduction audiovisuel et systeme pour mise en oeuvre du procede
SE9702239L (sv) * 1997-06-12 1998-07-06 Telia Ab Arrangemang för lastbalansering i datornät
US6112239A (en) 1997-06-18 2000-08-29 Intervu, Inc System and method for server-side optimization of data delivery on a distributed computer network
US6760746B1 (en) 1999-09-01 2004-07-06 Eric Schneider Method, product, and apparatus for processing a data request
US6775692B1 (en) 1997-07-31 2004-08-10 Cisco Technology, Inc. Proxying and unproxying a connection using a forwarding agent
FR2769165B1 (fr) * 1997-09-26 2002-11-29 Technical Maintenance Corp Systeme sans fil a transmission numerique pour haut-parleurs
US6735631B1 (en) * 1998-02-10 2004-05-11 Sprint Communications Company, L.P. Method and system for networking redirecting
US8060613B2 (en) * 1998-02-10 2011-11-15 Level 3 Communications, Llc Resource invalidation in a content delivery network
US7054935B2 (en) * 1998-02-10 2006-05-30 Savvis Communications Corporation Internet content delivery network
US6185598B1 (en) 1998-02-10 2001-02-06 Digital Island, Inc. Optimized network resource location
US6330617B1 (en) * 1998-02-27 2001-12-11 Sabre Inc System, method and computer program product for data conversion in a computer network
US6681327B1 (en) * 1998-04-02 2004-01-20 Intel Corporation Method and system for managing secure client-server transactions
JP3734206B2 (ja) * 1998-05-01 2006-01-11 インターナショナル・ビジネス・マシーンズ・コーポレーション エージェント対話管理方法、コンピュータ及び記憶媒体
US20030191717A1 (en) * 1998-06-05 2003-10-09 Johnson Teddy C. High performance server data delivery system and method
US6446109B2 (en) * 1998-06-29 2002-09-03 Sun Microsystems, Inc. Application computing environment
US6108703A (en) * 1998-07-14 2000-08-22 Massachusetts Institute Of Technology Global hosting system
US6249801B1 (en) * 1998-07-15 2001-06-19 Radware Ltd. Load balancing
US6665702B1 (en) 1998-07-15 2003-12-16 Radware Ltd. Load balancing
FR2781582B1 (fr) * 1998-07-21 2001-01-12 Technical Maintenance Corp Systeme de telechargement d'objets ou de fichiers pour mise a jour de logiciels
FR2781580B1 (fr) 1998-07-22 2000-09-22 Technical Maintenance Corp Circuit de commande de son pour systeme de reproduction audiovisuelle numerique intelligent
US8028318B2 (en) * 1999-07-21 2011-09-27 Touchtunes Music Corporation Remote control unit for activating and deactivating means for payment and for displaying payment status
FR2781591B1 (fr) 1998-07-22 2000-09-22 Technical Maintenance Corp Systeme de reproduction audiovisuelle
US6181692B1 (en) * 1998-09-03 2001-01-30 Genesys Telecommunications Laboratories Inc Method and apparatus for data routing, delivery, and authentication in a packet data network
US6324580B1 (en) 1998-09-03 2001-11-27 Sun Microsystems, Inc. Load balancing for replicated services
US6327622B1 (en) 1998-09-03 2001-12-04 Sun Microsystems, Inc. Load balancing in a network environment
US6092178A (en) * 1998-09-03 2000-07-18 Sun Microsystems, Inc. System for responding to a resource request
US6535509B2 (en) 1998-09-28 2003-03-18 Infolibria, Inc. Tagging for demultiplexing in a network traffic server
US6993591B1 (en) * 1998-09-30 2006-01-31 Lucent Technologies Inc. Method and apparatus for prefetching internet resources based on estimated round trip time
US20020126135A1 (en) * 1998-10-19 2002-09-12 Keith Ball Image sharing for instant messaging
US7339595B2 (en) 1998-10-19 2008-03-04 Lightsurf Technologies, Inc. Method and system for improved internet color
US6304913B1 (en) 1998-11-09 2001-10-16 Telefonaktiebolaget L M Ericsson (Publ) Internet system and method for selecting a closest server from a plurality of alternative servers
US6691165B1 (en) 1998-11-10 2004-02-10 Rainfinity, Inc. Distributed server cluster for controlling network traffic
US7664864B2 (en) * 1998-11-13 2010-02-16 Verisign, Inc. Meta content distribution network
US6931446B1 (en) * 1998-12-14 2005-08-16 International Business Machines Corporation Methods, systems and computer program products for policy based network control of characteristics of user sessions
US6912590B1 (en) * 1998-12-18 2005-06-28 Telefonaktiebolaget Lm Ericsson (Publ) Single IP-addressing for a telecommunications platform with a multi-processor cluster using a distributed socket based internet protocol (IP) handler
JP2000196677A (ja) 1998-12-28 2000-07-14 Fujitsu Ltd ネットワ―クシステムに用いられる中継装置
DE19900636B8 (de) 1999-01-11 2005-04-07 Gailer, Peter Datenzugriffs- und -verwaltungssystem sowie Verfahren zum Datenzugriff und zur Datenverwaltung für ein Rechnersystem sowie deren Verwendung
US7099848B1 (en) 1999-02-16 2006-08-29 Listen.Com, Inc. Audio delivery and rendering method and apparatus
US6901604B1 (en) * 1999-02-19 2005-05-31 Chaincast, Inc. Method and system for ensuring continuous data flow between re-transmitters within a chaincast communication system
US8726330B2 (en) * 1999-02-22 2014-05-13 Touchtunes Music Corporation Intelligent digital audiovisual playback system
US6760775B1 (en) * 1999-03-05 2004-07-06 At&T Corp. System, method and apparatus for network service load and reliability management
US6314465B1 (en) * 1999-03-11 2001-11-06 Lucent Technologies Inc. Method and apparatus for load sharing on a wide area network
US6338082B1 (en) * 1999-03-22 2002-01-08 Eric Schneider Method, product, and apparatus for requesting a network resource
US8037168B2 (en) 1999-07-15 2011-10-11 Esdr Network Solutions Llc Method, product, and apparatus for enhancing resolution services, registration services, and search services
US9141717B2 (en) 1999-03-22 2015-09-22 Esdr Network Solutions Llc Methods, systems, products, and devices for processing DNS friendly identifiers
USRE43690E1 (en) 1999-03-22 2012-09-25 Esdr Network Solutions Llc Search engine request method, product, and apparatus
US7188138B1 (en) 1999-03-22 2007-03-06 Eric Schneider Method, product, and apparatus for resource identifier registration and aftermarket services
GB9906628D0 (en) * 1999-03-23 1999-05-19 Koninkl Philips Electronics Nv Data network load management
US6801949B1 (en) 1999-04-12 2004-10-05 Rainfinity, Inc. Distributed server cluster with graphical user interface
US7299294B1 (en) 1999-11-10 2007-11-20 Emc Corporation Distributed traffic controller for network data
WO2000062502A2 (en) * 1999-04-12 2000-10-19 Rainfinity, Inc. Distributed server cluster for controlling network traffic
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
EP1061710B1 (de) * 1999-06-17 2010-12-08 Level 3 Communications, LLC System und Verfahren zur integrierter Lastverteilung und Betriebsmittelverwaltung in einer Internet-Umgebung
US6275470B1 (en) * 1999-06-18 2001-08-14 Digital Island, Inc. On-demand overlay routing for computer-based communication networks
US6628654B1 (en) 1999-07-01 2003-09-30 Cisco Technology, Inc. Dispatching packets from a forwarding agent using tag switching
US6549516B1 (en) 1999-07-02 2003-04-15 Cisco Technology, Inc. Sending instructions from a service manager to forwarding agents on a need to know basis
US6633560B1 (en) 1999-07-02 2003-10-14 Cisco Technology, Inc. Distribution of network services among multiple service managers without client involvement
US6650641B1 (en) 1999-07-02 2003-11-18 Cisco Technology, Inc. Network address translation using a forwarding agent
US6742045B1 (en) 1999-07-02 2004-05-25 Cisco Technology, Inc. Handling packet fragments in a distributed network service environment
US6606315B1 (en) 1999-07-02 2003-08-12 Cisco Technology, Inc. Synchronizing service instructions among forwarding agents using a service manager
US7051066B1 (en) 1999-07-02 2006-05-23 Cisco Technology, Inc. Integrating service managers into a routing infrastructure using forwarding agents
US6606316B1 (en) 1999-07-02 2003-08-12 Cisco Technology, Inc. Gathering network statistics in a distributed network service environment
US6704278B1 (en) 1999-07-02 2004-03-09 Cisco Technology, Inc. Stateful failover of service managers
US6687222B1 (en) 1999-07-02 2004-02-03 Cisco Technology, Inc. Backup service managers for providing reliable network services in a distributed environment
US6735169B1 (en) 1999-07-02 2004-05-11 Cisco Technology, Inc. Cascading multiple services on a forwarding agent
US6970913B1 (en) * 1999-07-02 2005-11-29 Cisco Technology, Inc. Load balancing using distributed forwarding agents with application based feedback for different virtual machines
US6400710B1 (en) * 1999-07-09 2002-06-04 Enron Warspeed Services, Inc. Network with hot button for providing switched broadband multipoint/multimedia intercommunication
FR2796482B1 (fr) 1999-07-16 2002-09-06 Touchtunes Music Corp Systeme de gestion a distance d'au moins un dispositif de reproduction d'informations audiovisuelles
US8135842B1 (en) 1999-08-16 2012-03-13 Nvidia Corporation Internet jack
USRE44207E1 (en) 1999-09-01 2013-05-07 Esdr Network Solutions Llc Network resource access method, product, and apparatus
JP3782265B2 (ja) 1999-09-07 2006-06-07 株式会社日立製作所 オンラインサービス提供の取次装置
CA2318622A1 (en) * 1999-09-13 2001-03-13 Nortel Networks Limited Call control server selection with load sharing mechanisms
US6810411B1 (en) * 1999-09-13 2004-10-26 Intel Corporation Method and system for selecting a host in a communications network
US6857106B1 (en) 1999-09-15 2005-02-15 Listen.Com, Inc. Graphical user interface with moveable, mergeable elements
US6957247B1 (en) * 1999-09-22 2005-10-18 Ates Gorkem I Internet system
US6667980B1 (en) 1999-10-21 2003-12-23 Sun Microsystems, Inc. Method and apparatus for providing scalable services using a packet distribution table
US6957254B1 (en) * 1999-10-21 2005-10-18 Sun Microsystems, Inc Method and apparatus for reaching agreement between nodes in a distributed system
US8543901B1 (en) 1999-11-01 2013-09-24 Level 3 Communications, Llc Verification of content stored in a network
US6724733B1 (en) 1999-11-02 2004-04-20 Sun Microsystems, Inc. Method and apparatus for determining approximate network distances using reference locations
AU4347600A (en) * 1999-11-10 2001-06-06 Rainfinity, Inc. Distributed traffic controlling system and method for network data
US6405252B1 (en) * 1999-11-22 2002-06-11 Speedera Networks, Inc. Integrated point of presence server network
AU2577401A (en) 1999-12-08 2001-06-18 Tuneto.Com, Inc. Scheduled retrieval, storage and access of media data
US7441045B2 (en) * 1999-12-13 2008-10-21 F5 Networks, Inc. Method and system for balancing load distribution on a wide area network
US6742023B1 (en) * 2000-04-28 2004-05-25 Roxio, Inc. Use-sensitive distribution of data files between users
US6799202B1 (en) * 1999-12-16 2004-09-28 Hachiro Kawaii Federated operating system for a server
SE517217C2 (sv) * 1999-12-29 2002-05-07 Ericsson Telefon Ab L M Metod och system för kommunikation mellan olika nätverk
US7068992B1 (en) 1999-12-30 2006-06-27 Motient Communications Inc. System and method of polling wireless devices having a substantially fixed and/or predesignated geographic location
US7162238B1 (en) 1999-12-30 2007-01-09 Massie Rodney E System and method of querying a device, checking device roaming history and/or obtaining device modem statistics when device is within a home network and/or a complementary network
US7230944B1 (en) 1999-12-30 2007-06-12 Geologic Solutions, Inc. System and method of host routing when host computer is within a home network and/or a complementary network
US7024199B1 (en) 1999-12-30 2006-04-04 Motient Communications Inc. System and method of querying a device, checking device roaming history and/or obtaining device modem statistics when device is within a home network and/or complementary network
WO2001050331A2 (en) * 2000-01-06 2001-07-12 L90, Inc. Method and apparatus for selecting and delivering internet based advertising
US6757836B1 (en) 2000-01-10 2004-06-29 Sun Microsystems, Inc. Method and apparatus for resolving partial connectivity in a clustered computing system
US6769008B1 (en) 2000-01-10 2004-07-27 Sun Microsystems, Inc. Method and apparatus for dynamically altering configurations of clustered computer systems
US6748437B1 (en) 2000-01-10 2004-06-08 Sun Microsystems, Inc. Method for creating forwarding lists for cluster networking
US6735205B1 (en) 2000-01-10 2004-05-11 Sun Microsystems, Inc. Method and apparatus for fast packet forwarding in cluster networking
US6587866B1 (en) * 2000-01-10 2003-07-01 Sun Microsystems, Inc. Method for distributing packets to server nodes using network client affinity and packet distribution table
US6789213B2 (en) * 2000-01-10 2004-09-07 Sun Microsystems, Inc. Controlled take over of services by remaining nodes of clustered computing system
US6748429B1 (en) 2000-01-10 2004-06-08 Sun Microsystems, Inc. Method to dynamically change cluster or distributed system configuration
US6735206B1 (en) * 2000-01-10 2004-05-11 Sun Microsystems, Inc. Method and apparatus for performing a fast service lookup in cluster networking
US6862613B1 (en) 2000-01-10 2005-03-01 Sun Microsystems, Inc. Method and apparatus for managing operations of clustered computer systems
US7886023B1 (en) * 2000-01-21 2011-02-08 Cisco Technology, Inc. Method and apparatus for a minimalist approach to implementing server selection
US7349348B1 (en) 2000-01-24 2008-03-25 Cisco Technologies, Inc. Method and apparatus for determining a network topology in the presence of network address translation
US7508753B2 (en) * 2000-01-31 2009-03-24 At&T Intellectual Property, Ii, L.P. Packet redirection and message stream management
FR2805377B1 (fr) 2000-02-23 2003-09-12 Touchtunes Music Corp Procede de commande anticipee d'une selection, systeme numerique et juke-box permettant la mise en oeuvre du procede
EP1256225B1 (de) * 2000-02-04 2010-08-18 Listen.Com, Inc. System mit einem verteilten Multimedianetzwerk und einem Meta-Daten-Server
FR2805072B1 (fr) 2000-02-16 2002-04-05 Touchtunes Music Corp Procede d'ajustement du volume sonore d'un enregistrement sonore numerique
FR2805060B1 (fr) 2000-02-16 2005-04-08 Touchtunes Music Corp Procede de reception de fichiers lors d'un telechargement
US7162539B2 (en) * 2000-03-16 2007-01-09 Adara Networks, Inc. System and method for discovering information objects and information object repositories in computer networks
US7552233B2 (en) * 2000-03-16 2009-06-23 Adara Networks, Inc. System and method for information object routing in computer networks
US7565450B2 (en) * 2000-03-16 2009-07-21 Adara Networks Inc. System and method for using a mapping between client addresses and addresses of caches to support content delivery
US20020073033A1 (en) * 2000-04-07 2002-06-13 Sherr Scott Jeffrey Online digital video signal transfer apparatus and method
US20020032905A1 (en) * 2000-04-07 2002-03-14 Sherr Scott Jeffrey Online digital video signal transfer apparatus and method
US7024466B2 (en) * 2000-04-07 2006-04-04 Movielink, Llc Network configured for delivery of content for download to a recipient
US20020154157A1 (en) * 2000-04-07 2002-10-24 Sherr Scott Jeffrey Website system and process for selection and delivery of electronic information on a network
CA2405478C (en) * 2000-04-07 2010-07-06 Movielink, Llc System and process for delivery of content over a network
US7155415B2 (en) 2000-04-07 2006-12-26 Movielink Llc Secure digital content licensing system and method
US7240100B1 (en) 2000-04-14 2007-07-03 Akamai Technologies, Inc. Content delivery network (CDN) content server request handling mechanism with metadata framework support
WO2001080515A2 (en) * 2000-04-17 2001-10-25 Circadence Corporation System and method for data prioritization
US6618705B1 (en) * 2000-04-19 2003-09-09 Tiejun (Ronald) Wang Method and system for conducting business in a transnational e-commerce network
US7577754B2 (en) * 2000-04-28 2009-08-18 Adara Networks, Inc. System and method for controlling access to content carried in a caching architecture
US7725596B2 (en) * 2000-04-28 2010-05-25 Adara Networks, Inc. System and method for resolving network layer anycast addresses to network layer unicast addresses
US7343422B2 (en) * 2000-04-28 2008-03-11 Adara Networks, Inc. System and method for using uniform resource locators to map application layer content names to network layer anycast addresses
US7908337B2 (en) * 2000-04-28 2011-03-15 Adara Networks, Inc. System and method for using network layer uniform resource locator routing to locate the closest server carrying specific content
US7237138B2 (en) * 2000-05-05 2007-06-26 Computer Associates Think, Inc. Systems and methods for diagnosing faults in computer networks
US7500143B2 (en) * 2000-05-05 2009-03-03 Computer Associates Think, Inc. Systems and methods for managing and analyzing faults in computer networks
AU2001261275A1 (en) * 2000-05-05 2001-11-20 Aprisma Management Technologies, Inc. Systems and methods for isolating faults in computer networks
AU2001261258A1 (en) * 2000-05-05 2001-11-20 Aprisma Management Technologies, Inc. Help desk systems and methods for use with communications networks
US7752024B2 (en) * 2000-05-05 2010-07-06 Computer Associates Think, Inc. Systems and methods for constructing multi-layer topological models of computer networks
FR2808906B1 (fr) * 2000-05-10 2005-02-11 Touchtunes Music Corp Dispositif et procede de gestion a distance d'un reseau de systemes de reproduction d'informations audiovisuelles
US7562153B2 (en) * 2000-05-12 2009-07-14 AT&T Intellectual Property II, L. P. Method and apparatus for content distribution network brokering and peering
US7062642B1 (en) * 2000-05-20 2006-06-13 Ciena Corporation Policy based provisioning of network device resources
US6976066B1 (en) * 2000-05-22 2005-12-13 Microsoft Corporation Network and method for implementing network platform services for a computing device
WO2001091382A1 (en) 2000-05-22 2001-11-29 Nokia Corporation System and method for providing a connection in a communication network
US7020698B2 (en) * 2000-05-31 2006-03-28 Lucent Technologies Inc. System and method for locating a closest server in response to a client domain name request
US6658000B1 (en) * 2000-06-01 2003-12-02 Aerocast.Com, Inc. Selective routing
US6904460B1 (en) 2000-06-01 2005-06-07 Aerocast.Com, Inc. Reverse content harvester
US7213062B1 (en) 2000-06-01 2007-05-01 General Instrument Corporation Self-publishing network directory
US6836806B1 (en) 2000-06-01 2004-12-28 Aerocast, Inc. System for network addressing
AR028658A1 (es) * 2000-06-01 2003-05-21 Aerocast Com Inc Metodo de indicacion de buen estado holistico y aparato de distribucion de posibilidad de indicacion.
US6879998B1 (en) 2000-06-01 2005-04-12 Aerocast.Com, Inc. Viewer object proxy
US7039691B1 (en) * 2000-06-02 2006-05-02 Sun Microsystems, Inc. Java virtual machine configurable to perform as a web server
US20020095498A1 (en) * 2000-06-05 2002-07-18 Accordion Networks Network architecture for multi-client units
US7047196B2 (en) * 2000-06-08 2006-05-16 Agiletv Corporation System and method of voice recognition near a wireline node of a network supporting cable television and/or video delivery
US20020049760A1 (en) * 2000-06-16 2002-04-25 Flycode, Inc. Technique for accessing information in a peer-to-peer network
FR2811175B1 (fr) 2000-06-29 2002-12-27 Touchtunes Music Corp Procede de distribution d'informations audiovisuelles et systeme de distribution d'informations audiovisuelles
AU2001266297A1 (en) * 2000-06-20 2002-01-02 Nds Limited Unicast/multicast architecture
FR2811114B1 (fr) 2000-06-29 2002-12-27 Touchtunes Music Corp Dispositif et procede de communication entre un systeme de reproduction d'informations audiovisuelles et d'une machine electronique de divertissement
US7089301B1 (en) * 2000-08-11 2006-08-08 Napster, Inc. System and method for searching peer-to-peer computer networks by selecting a computer based on at least a number of files shared by the computer
US8527639B1 (en) * 2000-08-18 2013-09-03 Cisco Technology, Inc. Content server selection for accessing content in a content distribution network
US6836462B1 (en) 2000-08-30 2004-12-28 Cisco Technology, Inc. Distributed, rule based packet redirection
FR2814085B1 (fr) 2000-09-15 2005-02-11 Touchtunes Music Corp Procede de divertissement base sur les jeux concours a choix multiples
US7657629B1 (en) 2000-09-26 2010-02-02 Foundry Networks, Inc. Global server load balancing
US9130954B2 (en) 2000-09-26 2015-09-08 Brocade Communications Systems, Inc. Distributed health check for global server load balancing
US7454500B1 (en) * 2000-09-26 2008-11-18 Foundry Networks, Inc. Global server load balancing
JP2002109366A (ja) * 2000-09-29 2002-04-12 Mori Seiki Co Ltd 製品情報提供システム
US6823391B1 (en) * 2000-10-04 2004-11-23 Microsoft Corporation Routing client requests to back-end servers
US6865605B1 (en) * 2000-10-04 2005-03-08 Microsoft Corporation System and method for transparently redirecting client requests for content using a front-end indicator to preserve the validity of local caching at the client system
US20020040391A1 (en) * 2000-10-04 2002-04-04 David Chaiken Server farm formed of systems on a chip
US20020042839A1 (en) 2000-10-10 2002-04-11 Christopher Peiffer HTTP multiplexor/demultiplexor
US7379994B2 (en) * 2000-10-26 2008-05-27 Metilinx Aggregate system resource analysis including correlation matrix and metric-based analysis
US20020083170A1 (en) * 2000-10-26 2002-06-27 Metilinx System-wide optimization integration model
US20020178248A1 (en) * 2000-10-26 2002-11-28 Metilinx Application program interface for optimization integration model
US7039717B2 (en) * 2000-11-10 2006-05-02 Nvidia Corporation Internet modem streaming socket method
US7353277B1 (en) * 2000-11-14 2008-04-01 Hewlett-Packard Development Company, L.P. Dynamic load balancing of video requests
US6980521B1 (en) 2000-11-29 2005-12-27 Cisco Technology, Inc. Method and apparatus for per session load balancing with improved load sharing in a packet switched network
US7421505B2 (en) * 2000-12-21 2008-09-02 Noatak Software Llc Method and system for executing protocol stack instructions to form a packet for causing a computing device to perform an operation
US7418522B2 (en) * 2000-12-21 2008-08-26 Noatak Software Llc Method and system for communicating an information packet through multiple networks
US7287090B1 (en) * 2000-12-21 2007-10-23 Noatak Software, Llc Method and system for identifying a computing device in response to a request packet
US7512686B2 (en) * 2000-12-21 2009-03-31 Berg Mitchell T Method and system for establishing a data structure of a connection with a client
US20020116605A1 (en) * 2000-12-21 2002-08-22 Berg Mitchell T. Method and system for initiating execution of software in response to a state
US20020116397A1 (en) * 2000-12-21 2002-08-22 Berg Mitchell T. Method and system for communicating an information packet through multiple router devices
US20020116532A1 (en) * 2000-12-21 2002-08-22 Berg Mitchell T. Method and system for communicating an information packet and identifying a data structure
US7546369B2 (en) * 2000-12-21 2009-06-09 Berg Mitchell T Method and system for communicating a request packet in response to a state
US7131140B1 (en) * 2000-12-29 2006-10-31 Cisco Technology, Inc. Method for protecting a firewall load balancer from a denial of service attack
US7421489B2 (en) * 2000-12-29 2008-09-02 Nortel Network Limited Network protocols for distributing functions within a network
US20020087722A1 (en) * 2000-12-29 2002-07-04 Ragula Systems D/B/A/ Fatpipe Networks Domain name resolution making IP address selections in response to connection status when multiple connections are present
US7587500B2 (en) * 2001-01-10 2009-09-08 Xcelera Distributed selection of a content server
US7379475B2 (en) * 2002-01-25 2008-05-27 Nvidia Corporation Communications processor
US8095370B2 (en) * 2001-02-16 2012-01-10 Agiletv Corporation Dual compression voice recordation non-repudiation system
EP1388073B1 (de) * 2001-03-01 2018-01-10 Akamai Technologies, Inc. Optimale routenauswahl in einem inhaltsablieferungsnetzwerk
US20020133597A1 (en) * 2001-03-14 2002-09-19 Nikhil Jhingan Global storage system
US20020143946A1 (en) * 2001-03-28 2002-10-03 Daniel Crosson Software based internet protocol address selection method and system
US7340505B2 (en) * 2001-04-02 2008-03-04 Akamai Technologies, Inc. Content storage and replication in a managed internet content storage environment
US7149797B1 (en) * 2001-04-02 2006-12-12 Akamai Technologies, Inc. Content delivery network service provider (CDNSP)-managed content delivery network (CDN) for network service provider (NSP)
US8218555B2 (en) * 2001-04-24 2012-07-10 Nvidia Corporation Gigabit ethernet adapter
US7203747B2 (en) * 2001-05-25 2007-04-10 Overture Services Inc. Load balancing system and method in a multiprocessor system
US8175257B1 (en) 2001-05-31 2012-05-08 Cisco Technology, Inc. Method and apparatus for scheduling automatic call distribution system callers
US7000006B1 (en) * 2001-05-31 2006-02-14 Cisco Technology, Inc. Implementing network management policies using topology reduction
GB0115996D0 (en) * 2001-06-29 2001-08-22 Nokia Corp Circuit-switched and packet-switched communications
US7290059B2 (en) * 2001-08-13 2007-10-30 Intel Corporation Apparatus and method for scalable server load balancing
US6772224B2 (en) 2001-08-22 2004-08-03 Spatial Communications Technologies, Inc. Method and system for processing load distribution for a packetized telecommunication network entity
WO2003023640A2 (en) * 2001-09-07 2003-03-20 Sanrad Load balancing method for exchanging data between multiple hosts and storage entities, in ip based storage area network
WO2003023607A1 (en) * 2001-09-10 2003-03-20 Cenus Technologies, Inc. System and method for information object routing in computer networks
US7228337B1 (en) * 2001-09-11 2007-06-05 Cisco Technology, Inc. Methods and apparatus for providing a network service to a virtual machine
EP2403219B1 (de) * 2001-09-28 2014-10-22 Level 3 CDN International, Inc. Verfahren zur Domänennamenauflösung
US7860964B2 (en) * 2001-09-28 2010-12-28 Level 3 Communications, Llc Policy-based content delivery network selection
US7373644B2 (en) 2001-10-02 2008-05-13 Level 3 Communications, Llc Automated server replication
JP2003122658A (ja) * 2001-10-11 2003-04-25 Hitachi Ltd データ配送方法
US20030079027A1 (en) 2001-10-18 2003-04-24 Michael Slocombe Content request routing and load balancing for content distribution networks
US20080279222A1 (en) * 2001-10-18 2008-11-13 Level 3 Communications Llc Distribution of traffic across a computer network
US6938031B1 (en) 2001-10-19 2005-08-30 Data Return Llc System and method for accessing information in a replicated database
US7000016B1 (en) 2001-10-19 2006-02-14 Data Return Llc System and method for multi-site clustering in a network
US7984110B1 (en) * 2001-11-02 2011-07-19 Hewlett-Packard Company Method and system for load balancing
EP1445896A4 (de) * 2001-11-13 2006-05-17 Matsushita Electric Ind Co Ltd Anbieterverbindungssystem, paketaustauschvorrichtung dafür, dns-server, paketaustauschverfahren und computerprogramm dafür
US7082531B1 (en) 2001-11-30 2006-07-25 Cisco Technology, Inc. Method and apparatus for determining enforcement security devices in a network topology
US20030115153A1 (en) * 2001-12-19 2003-06-19 Chen Li Identifier management in message transmission system
US20070061472A1 (en) * 2001-12-19 2007-03-15 Chen Li Identifier management in message transmission system
US7636937B1 (en) 2002-01-11 2009-12-22 Cisco Technology, Inc. Method and apparatus for comparing access control lists for configuring a security policy on a network
US7426515B2 (en) * 2002-01-15 2008-09-16 International Business Machines Corporation Edge deployed database proxy driver
US20030149755A1 (en) * 2002-02-06 2003-08-07 Emek Sadot Client-controlled load balancer
US9167036B2 (en) * 2002-02-14 2015-10-20 Level 3 Communications, Llc Managed object replication and delivery
US7535913B2 (en) * 2002-03-06 2009-05-19 Nvidia Corporation Gigabit ethernet adapter supporting the iSCSI and IPSEC protocols
US20030177173A1 (en) * 2002-03-15 2003-09-18 Petros Belimpasakis System and method for the reception of content items
JP2003281008A (ja) * 2002-03-26 2003-10-03 Toshiba Corp サーバー計算機負荷分配装置、サーバー計算機負荷分配方法、サーバー計算機負荷分配プログラム及びサーバー計算機システム
US7337234B2 (en) 2002-04-05 2008-02-26 Oracle International Corporation Retry technique for multi-tier network communication systems
US20030217149A1 (en) * 2002-05-20 2003-11-20 International Business Machines Corporation Method and apparatus for tunneling TCP/IP over HTTP and HTTPS
US7516194B1 (en) 2002-05-21 2009-04-07 Microsoft Corporation Method for downloading high-volumes of content from the internet without adversely effecting the source of the content or being detected
WO2005008493A1 (en) * 2002-05-31 2005-01-27 Unisys Corporation Improving transaction-processing performance by preferentially reusing frequently used processes
US20040059777A1 (en) * 2002-05-31 2004-03-25 Palazzo Craig M. System and method for distributed component object model load balancing
US7222178B2 (en) * 2002-05-31 2007-05-22 Unisys Corporation Transaction-processing performance by preferentially reusing frequently used processes
US20030236813A1 (en) * 2002-06-24 2003-12-25 Abjanic John B. Method and apparatus for off-load processing of a message stream
US7010596B2 (en) * 2002-06-28 2006-03-07 International Business Machines Corporation System and method for the allocation of grid computing to network workstations
US20040006622A1 (en) * 2002-07-03 2004-01-08 Burkes Don L. Optimized process for balancing load for data mirroring
US7180862B2 (en) 2002-07-18 2007-02-20 Intel Corporation Apparatus and method for virtual output queue feedback
US7620699B1 (en) * 2002-07-26 2009-11-17 Paltalk Holdings, Inc. Method and system for managing high-bandwidth data sharing
US7086061B1 (en) * 2002-08-01 2006-08-01 Foundry Networks, Inc. Statistical tracking of global server load balancing for selecting the best network address from ordered list of network addresses based on a set of performance metrics
US7565413B1 (en) * 2002-08-05 2009-07-21 Cisco Technology, Inc. Content request redirection from a wed protocol to a file protocol
US7574508B1 (en) 2002-08-07 2009-08-11 Foundry Networks, Inc. Canonical name (CNAME) handling for global server load balancing
DE10238291A1 (de) 2002-08-21 2004-03-04 Siemens Ag Effizientes Intra-Domain Routing in Paketnetzen
US7266607B2 (en) * 2002-08-27 2007-09-04 International Business Machines Corporation Quasi-high availability hosted applications
US7822687B2 (en) 2002-09-16 2010-10-26 Francois Brillon Jukebox with customizable avatar
US10373420B2 (en) 2002-09-16 2019-08-06 Touchtunes Music Corporation Digital downloading jukebox with enhanced communication features
US8151304B2 (en) * 2002-09-16 2012-04-03 Touchtunes Music Corporation Digital downloading jukebox system with user-tailored music management, communications, and other tools
US8332895B2 (en) 2002-09-16 2012-12-11 Touchtunes Music Corporation Digital downloading jukebox system with user-tailored music management, communications, and other tools
US8103589B2 (en) 2002-09-16 2012-01-24 Touchtunes Music Corporation Digital downloading jukebox system with central and local music servers
US9646339B2 (en) * 2002-09-16 2017-05-09 Touchtunes Music Corporation Digital downloading jukebox system with central and local music servers
US8584175B2 (en) 2002-09-16 2013-11-12 Touchtunes Music Corporation Digital downloading jukebox system with user-tailored music management, communications, and other tools
US11029823B2 (en) 2002-09-16 2021-06-08 Touchtunes Music Corporation Jukebox with customizable avatar
US8392609B2 (en) * 2002-09-17 2013-03-05 Apple Inc. Proximity detection for media proxies
US20040153440A1 (en) * 2003-01-30 2004-08-05 Assaf Halevy Unified management of queries in a multi-platform distributed environment
JP4428934B2 (ja) * 2003-03-24 2010-03-10 富士通株式会社 映像選択サーバ、映像配信システム、および映像選択方法
US7293059B2 (en) * 2003-04-04 2007-11-06 Sun Microsystems, Inc. Distributed computing system using computing engines concurrently run with host web pages and applications
US7222195B2 (en) * 2003-04-22 2007-05-22 Cisco Technology, Inc. System and method for distributing information in a network environment
US7379988B2 (en) * 2003-04-23 2008-05-27 International Business Machines Corporation Autonomic performance tuning of a distributed virtual storage server
US20040260745A1 (en) * 2003-06-18 2004-12-23 Gage Christopher A. S. Load balancer performance using affinity modification
US7650402B1 (en) 2003-06-25 2010-01-19 Cisco Technology, Inc. System and method for tracking end users in a loadbalancing environment
US7912954B1 (en) * 2003-06-27 2011-03-22 Oesterreicher Richard T System and method for digital media server load balancing
US9525566B2 (en) * 2003-07-31 2016-12-20 Cloudsoft Corporation Limited Self-managed mediated information flow
US8909726B1 (en) 2003-08-27 2014-12-09 Cisco Technology, Inc. Priority based anycast routing
US9584360B2 (en) 2003-09-29 2017-02-28 Foundry Networks, Llc Global server load balancing support for private VIP addresses
US20050097185A1 (en) * 2003-10-07 2005-05-05 Simon Gibson Localization link system
US7756040B1 (en) 2003-10-08 2010-07-13 Cisco Technology, Inc. System and method for relaying information in order to enable services in a network environment
US8050275B1 (en) 2003-11-18 2011-11-01 Cisco Technology, Inc. System and method for offering quality of service in a network environment
JP2005173823A (ja) * 2003-12-09 2005-06-30 Canon Inc Webアプリケーション及びそのデータ共有方法、並びにプログラム
US8065439B1 (en) 2003-12-19 2011-11-22 Nvidia Corporation System and method for using metadata in the context of a transport offload engine
US8176545B1 (en) 2003-12-19 2012-05-08 Nvidia Corporation Integrated policy checking system and method
US8549170B2 (en) * 2003-12-19 2013-10-01 Nvidia Corporation Retransmission system and method for a transport offload engine
US7899913B2 (en) * 2003-12-19 2011-03-01 Nvidia Corporation Connection management system and method for a transport offload engine
US7596107B1 (en) 2004-01-26 2009-09-29 Cisco Technology, Inc. System and method for enabling multicast group services in a network environment
US7206872B2 (en) * 2004-02-20 2007-04-17 Nvidia Corporation System and method for insertion of markers into a data stream
US7249306B2 (en) * 2004-02-20 2007-07-24 Nvidia Corporation System and method for generating 128-bit cyclic redundancy check values with 32-bit granularity
US7698413B1 (en) 2004-04-12 2010-04-13 Nvidia Corporation Method and apparatus for accessing and maintaining socket control information for high speed network connections
US8089972B2 (en) 2004-05-03 2012-01-03 Level 3 Communications, Llc Registration redirect server
US20060064478A1 (en) * 2004-05-03 2006-03-23 Level 3 Communications, Inc. Geo-locating load balancing
US7584301B1 (en) 2004-05-06 2009-09-01 Foundry Networks, Inc. Host-level policies for global server load balancing
US7496651B1 (en) 2004-05-06 2009-02-24 Foundry Networks, Inc. Configurable geographic prefixes for global server load balancing
US7020090B2 (en) * 2004-06-21 2006-03-28 Cisco Technology, Inc. System and method for loadbalancing in a network environment using feedback information
US20060015596A1 (en) * 2004-07-14 2006-01-19 Dell Products L.P. Method to configure a cluster via automatic address generation
US20060021920A1 (en) * 2004-08-02 2006-02-02 Forbes Robert C Pond filters
US7423977B1 (en) 2004-08-23 2008-09-09 Foundry Networks Inc. Smoothing algorithm for round trip time (RTT) measurements
US7805517B2 (en) * 2004-09-15 2010-09-28 Cisco Technology, Inc. System and method for load balancing a communications network
US7957379B2 (en) * 2004-10-19 2011-06-07 Nvidia Corporation System and method for processing RX packets in high speed network applications using an RX FIFO buffer
US8768350B2 (en) 2004-12-09 2014-07-01 Level 3 Communications, Llc Systems and methods for locating endpoints in a communication network
US7734019B1 (en) * 2004-12-09 2010-06-08 Level 3 Communications, Llc Systems and methods for third party emergency call termination
US9843557B2 (en) 2004-12-09 2017-12-12 Level 3 Communications, Llc Systems and methods for dynamically registering endpoints in a network
DE102005010690B4 (de) * 2005-03-09 2007-04-12 Knorr-Bremse Systeme für Schienenfahrzeuge GmbH Öleingespritzter Verdichter mit Temperaturschalter
US7340744B2 (en) * 2005-04-08 2008-03-04 Cisco Technology, Inc. System and method for optimizing sessions and network resources in a loadbalancing environment
US7693071B2 (en) * 2005-05-27 2010-04-06 Microsoft Corporation System and method for routing messages within a messaging system
US7496037B2 (en) * 2005-06-14 2009-02-24 International Business Machines Corporation Apparatus, system, and method for facilitating delivery of asynchronous response messages
US20070008974A1 (en) * 2005-07-07 2007-01-11 International Business Machines Corporation Method, apparatus and computer program product for network services
US8009676B2 (en) * 2005-07-26 2011-08-30 Cisco Technology, Inc. Dynamically providing a quality of service for a mobile node
US7945678B1 (en) 2005-08-05 2011-05-17 F5 Networks, Inc. Link load balancer that controls a path for a client to connect to a resource
US9191396B2 (en) * 2005-09-08 2015-11-17 International Business Machines Corporation Identifying source of malicious network messages
US7630486B2 (en) * 2005-09-20 2009-12-08 Cisco Technology, Inc. Method and system for handling a queued automatic call distributor call
EP1949214B1 (de) * 2005-10-28 2012-12-19 Network Appliance, Inc. System und verfahren zum optimieren der multi-pathing-unterstützung in einer verteilten speichersystemumgebung
US7779098B1 (en) 2005-12-20 2010-08-17 At&T Intellectual Property Ii, L.P. Methods for identifying and recovering stranded and access-no-revenue network circuits
US8307057B1 (en) 2005-12-20 2012-11-06 At&T Intellectual Property Ii, L.P. Methods for identifying and recovering non-revenue generating network circuits established outside of the united states
US8447837B2 (en) * 2005-12-30 2013-05-21 Akamai Technologies, Inc. Site acceleration with content prefetching enabled through customer-specific configurations
ITTO20060149A1 (it) 2006-03-01 2007-09-02 Cisco Tech Inc Tecnica per l'instradamento ottimizzato di flussi di dati su una dorsale ip in una rete di computer.
US7519734B1 (en) * 2006-03-14 2009-04-14 Amazon Technologies, Inc. System and method for routing service requests
US8493858B2 (en) 2006-08-22 2013-07-23 Citrix Systems, Inc Systems and methods for providing dynamic connection spillover among virtual servers
US8312120B2 (en) * 2006-08-22 2012-11-13 Citrix Systems, Inc. Systems and methods for providing dynamic spillover of virtual servers based on bandwidth
JP2008077428A (ja) * 2006-09-21 2008-04-03 Fujitsu Ltd 負荷分散装置、負荷分散方法及び負荷分散プログラム
US8433730B2 (en) 2006-10-31 2013-04-30 Ariba, Inc. Dynamic data access and storage
US20080140826A1 (en) * 2006-12-08 2008-06-12 Microsoft Corporation Monitoring and controlling electronic message distribution
US8462799B2 (en) * 2006-12-13 2013-06-11 The Boeing Company Distributed application communication routing system for internet protocol networks
KR101221473B1 (ko) * 2007-01-11 2013-01-14 삼성전자주식회사 메타 데이터 정보 제공 서버, 클라이언트 장치, 메타데이터 정보 제공 방법 및 콘텐츠 제공 방법
US9794310B2 (en) * 2007-01-11 2017-10-17 Samsung Electronics Co., Ltd. Meta data information providing server, client apparatus, method of providing meta data information, and method of providing content
US9330529B2 (en) * 2007-01-17 2016-05-03 Touchtunes Music Corporation Game terminal configured for interaction with jukebox device systems including same, and/or associated methods
US9171419B2 (en) 2007-01-17 2015-10-27 Touchtunes Music Corporation Coin operated entertainment system
CN101123527B (zh) * 2007-02-25 2010-10-27 华为技术有限公司 一种流媒体系统、信令转发设备以及流媒体发送方法
US8209417B2 (en) * 2007-03-08 2012-06-26 Oracle International Corporation Dynamic resource profiles for clusterware-managed resources
US9953481B2 (en) * 2007-03-26 2018-04-24 Touchtunes Music Corporation Jukebox with associated video server
US8159961B1 (en) 2007-03-30 2012-04-17 Amazon Technologies, Inc. Load balancing utilizing adaptive thresholding
US20080307114A1 (en) * 2007-03-30 2008-12-11 Canon Kabushiki Kaisha Network assignment method and apparatus
US8285870B2 (en) * 2007-09-05 2012-10-09 Echostar Technologies L.L.C. Systems and methods for statistical resolution of domain name service (DNS) requests
US8332887B2 (en) 2008-01-10 2012-12-11 Touchtunes Music Corporation System and/or methods for distributing advertisements from a central advertisement network to a peripheral device via a local advertisement server
US10290006B2 (en) 2008-08-15 2019-05-14 Touchtunes Music Corporation Digital signage and gaming services to comply with federal and state alcohol and beverage laws and regulations
US8055795B2 (en) * 2007-10-02 2011-11-08 Echostar Technologies Llc Systems and methods for proxy resolution of domain name service (DNS) requests
US10924573B2 (en) 2008-04-04 2021-02-16 Level 3 Communications, Llc Handling long-tail content in a content delivery network (CDN)
US9762692B2 (en) 2008-04-04 2017-09-12 Level 3 Communications, Llc Handling long-tail content in a content delivery network (CDN)
EP2274684A4 (de) 2008-04-04 2012-12-05 Level 3 Communications Llc Umgang mit long-tail-inhalt in einem inhaltsablieferungsnetzwerk (cdn)
EP2279584B1 (de) * 2008-05-20 2012-01-04 Thomson Licensing System und verfahren zur verteilung eines verzeichnisses für inhalte auf mehrere empfangsgeräte
WO2010005569A1 (en) 2008-07-09 2010-01-14 Touchtunes Music Corporation Digital downloading jukebox with revenue-enhancing features
CN102204349B (zh) * 2008-09-29 2014-12-24 株式会社东芝 多个网络接入点的预先评估
US8613072B2 (en) * 2009-02-26 2013-12-17 Microsoft Corporation Redirection of secure data connection requests
US20100228824A1 (en) * 2009-03-06 2010-09-09 Cisco Technology, Inc. Distributed server selection for online collaborative computing sessions
KR101748448B1 (ko) 2009-03-18 2017-06-16 터치튠즈 뮤직 코포레이션 엔터테인먼트 서버 및 관련 소셜 네트워킹 서비스
US10564804B2 (en) 2009-03-18 2020-02-18 Touchtunes Music Corporation Digital jukebox device with improved user interfaces, and associated methods
US10719149B2 (en) 2009-03-18 2020-07-21 Touchtunes Music Corporation Digital jukebox device with improved user interfaces, and associated methods
US9292166B2 (en) 2009-03-18 2016-03-22 Touchtunes Music Corporation Digital jukebox device with improved karaoke-related user interfaces, and associated methods
US20100313262A1 (en) 2009-06-03 2010-12-09 Aruba Networks, Inc. Provisioning remote access points
US10402834B2 (en) 2009-09-30 2019-09-03 Verizon Patent And Licensing Inc Advertisements within television advertisements
US9141513B2 (en) 2009-10-01 2015-09-22 Kryterion, Inc. Maintaining a secure computing device in a test taking environment
US9280907B2 (en) * 2009-10-01 2016-03-08 Kryterion, Inc. Proctored performance analysis
CA2881456A1 (en) 2010-01-26 2011-08-04 Touchtunes Music Corporation Digital jukebox device with improved user interfaces, and associated methods
US20120077177A1 (en) * 2010-03-14 2012-03-29 Kryterion, Inc. Secure Online Testing
US10672286B2 (en) * 2010-03-14 2020-06-02 Kryterion, Inc. Cloud based test environment
PL3232610T3 (pl) * 2010-03-22 2020-09-21 Koninklijke Kpn N.V. System i sposób obsługi żądania konfiguracji
US8219646B2 (en) * 2010-03-31 2012-07-10 Oracle International Corporation Dynamic intelligent mirror host selection
US8521697B2 (en) * 2010-05-19 2013-08-27 Cleversafe, Inc. Rebuilding data in multiple dispersed storage networks
US8958439B2 (en) 2010-08-03 2015-02-17 F5 Networks, Inc. Mediating method and system between signaling network peers
US9137163B2 (en) 2010-08-04 2015-09-15 Kryterion, Inc. Optimized data stream upload
US8713130B2 (en) 2010-08-04 2014-04-29 Kryterion, Inc. Peered proctoring
US8549148B2 (en) 2010-10-15 2013-10-01 Brocade Communications Systems, Inc. Domain name system security extensions (DNSSEC) for global server load balancing
JP5724494B2 (ja) * 2011-03-17 2015-05-27 富士通株式会社 監視装置、状態監視システム及び装置設定方法
KR101544483B1 (ko) * 2011-04-13 2015-08-17 주식회사 케이티 분산 저장 시스템의 복제 서버 장치 및 복제본 생성 방법
US8959222B2 (en) 2011-05-19 2015-02-17 International Business Machines Corporation Load balancing system for workload groups
US8819425B2 (en) 2011-06-30 2014-08-26 True[X] Media Inc. Privacy protected interactions with third parties
GB2522772B (en) 2011-09-18 2016-01-13 Touchtunes Music Corp Digital jukebox device with karaoke and/or photo booth features, and associated methods
US9154549B2 (en) * 2011-10-27 2015-10-06 Cisco Technology, Inc. Dynamic server farms
US11151224B2 (en) 2012-01-09 2021-10-19 Touchtunes Music Corporation Systems and/or methods for monitoring audio inputs to jukebox devices
US20130325612A1 (en) * 2012-06-04 2013-12-05 WebLinc LLC Methods and systems for interfacing e-commerce platforms with brick and mortar presences
JP5975745B2 (ja) * 2012-06-11 2016-08-23 フェリカネットワークス株式会社 情報処理装置及び情報処理方法、情報通信システム、並びにコンピューター・プログラム
US9672567B2 (en) * 2012-06-29 2017-06-06 Estimatics In The Fourth Dimensions, Llc Damage assessment and reporting system
CN103634737A (zh) * 2012-08-23 2014-03-12 环达电脑(上海)有限公司 以位置和外部情况选择相关广告之移动装置及其选择方法
CN103678311B (zh) * 2012-08-31 2018-11-13 腾讯科技(深圳)有限公司 基于中转模式的网页访问方法及系统、抓取路径服务器
US20130262238A1 (en) * 2012-09-06 2013-10-03 Mikhail Leonidovich Liubachev System and method for customer involvement
US9712402B2 (en) * 2012-10-10 2017-07-18 Alcatel Lucent Method and apparatus for automated deployment of geographically distributed applications within a cloud
US20140365299A1 (en) * 2013-06-07 2014-12-11 Open Tv, Inc. System and method for providing advertising consistency
WO2015070070A1 (en) 2013-11-07 2015-05-14 Touchtunes Music Corporation Techniques for generating electronic menu graphical user interface layouts for use in connection with electronic devices
US10694000B2 (en) 2013-12-02 2020-06-23 Amazon Technologies, Inc. Browser-based analysis of content request mode performance
US10237373B2 (en) * 2013-12-02 2019-03-19 Amazon Technologies, Inc. Performance-based determination of request modes
US10242322B2 (en) 2013-12-02 2019-03-26 Amazon Technologies, Inc. Browser-based selection of content request modes
US11017433B1 (en) 2013-12-13 2021-05-25 Groupon, Inc. Systems, apparatus, and methods for providing merchant-defined local promotions
US9391884B2 (en) 2014-01-31 2016-07-12 Google Inc. Consistent hashing using exact matching with application to hardware load balancing
EP3123293A4 (de) 2014-03-25 2017-09-27 Touchtunes Music Corporation Digitale jukebox-vorrichtung mit verbesserten benutzeroberflächen sowie entsprechende verfahren
US10432711B1 (en) * 2014-09-15 2019-10-01 Amazon Technologies, Inc. Adaptive endpoint selection
US9489242B2 (en) * 2014-09-30 2016-11-08 Telefonaktiebolaget L M Ericsson (Publ) Algorithm for faster convergence through affinity override
US9699088B2 (en) * 2014-11-10 2017-07-04 Hughes Network Systems, Llc Service plan based flow control
US11350254B1 (en) 2015-05-05 2022-05-31 F5, Inc. Methods for enforcing compliance policies and devices thereof
US11757946B1 (en) 2015-12-22 2023-09-12 F5, Inc. Methods for analyzing network traffic and enforcing network policies and devices thereof
US11178150B1 (en) 2016-01-20 2021-11-16 F5 Networks, Inc. Methods for enforcing access control list based on managed application and devices thereof
CN107786604B (zh) * 2016-08-30 2020-04-28 华为数字技术(苏州)有限公司 一种确定内容服务器的方法及装置
US10505792B1 (en) 2016-11-02 2019-12-10 F5 Networks, Inc. Methods for facilitating network traffic analytics and devices thereof
US10812266B1 (en) 2017-03-17 2020-10-20 F5 Networks, Inc. Methods for managing security tokens based on security violations and devices thereof
US11122042B1 (en) 2017-05-12 2021-09-14 F5 Networks, Inc. Methods for dynamically managing user access control and devices thereof
US11343237B1 (en) 2017-05-12 2022-05-24 F5, Inc. Methods for managing a federated identity environment using security and access control data and devices thereof
US11522897B2 (en) * 2018-07-25 2022-12-06 International Business Machines Corporation Detecting and patching network vulnerabilities
US11362889B2 (en) * 2018-10-15 2022-06-14 Cdw Llc System and method for automated information technology services management
US11516116B2 (en) * 2020-03-30 2022-11-29 EMC IP Holding Company LLC Domain name system multipathing distributed applications
US11055196B1 (en) 2020-06-12 2021-07-06 Bank Of America Corporation System and method for optimizing technology stack architecture
US11010281B1 (en) * 2020-10-12 2021-05-18 Coupang Corp. Systems and methods for local randomization distribution of test datasets

Family Cites Families (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4399531A (en) * 1980-09-29 1983-08-16 Rockwell International Corporation Distributed digital data communications network
US4587651A (en) 1983-05-04 1986-05-06 Cxc Corporation Distributed variable bandwidth switch for voice, data, and image communications
JPH0831876B2 (ja) * 1985-09-20 1996-03-27 株式会社日立製作所 パケツト交換網におけるル−チング制御方式
US5001472A (en) * 1988-02-11 1991-03-19 Datapoint Corporation Uneven token distribution technique for token based local area network
US4958341A (en) 1988-03-31 1990-09-18 At&T Bell Laboratories Integrated packetized voice and data switching system
US4873517A (en) 1988-06-23 1989-10-10 International Business Machines Corporation Method for selecting least weight end node to end node route in a data communications network
US5341477A (en) * 1989-02-24 1994-08-23 Digital Equipment Corporation Broker for computer network server selection
US5231631A (en) 1989-08-15 1993-07-27 At&T Bell Laboratories Arrangement for regulating traffic in a high speed data network
CA2032620C (en) * 1989-12-22 1995-08-15 Takafumi Chujo Method for searching for alternate path in communication network
US5404451A (en) 1990-02-06 1995-04-04 Nemirovsky; Paul System for identifying candidate link, determining underutilized link, evaluating addition of candidate link and removing of underutilized link to reduce network cost
JP2644624B2 (ja) 1990-11-30 1997-08-25 株式会社日立製作所 網間ルーティング制御方式
US5278829A (en) 1991-01-10 1994-01-11 Digital Equipment Corporation Reduced broadcast algorithm for address resolution protocol
US5347633A (en) 1991-04-30 1994-09-13 International Business Machines, Inc. System for selectively intercepting and rerouting data network traffic
US5442630A (en) 1991-05-24 1995-08-15 Gagliardi; Ugo O. ISDN interfacing of local area networks
GB9117172D0 (en) 1991-08-08 1991-09-25 British Telecomm Communication system
US5434863A (en) 1991-08-30 1995-07-18 Hitachi, Ltd. Internetworking apparatus for connecting plural network systems and communication network system composed of plural network systems mutually connected
IL99923A0 (en) 1991-10-31 1992-08-18 Ibm Israel Method of operating a computer in a network
AU3416293A (en) 1991-12-23 1993-07-28 Network Express System for internetworking data terminal equipment through a switched digital network
US5357510A (en) 1992-02-19 1994-10-18 Fujitsu Limited Apparatus and a method for supervising and controlling ATM traffic
US5323394A (en) 1992-04-07 1994-06-21 Digital Equipment Corporation Selecting optimal routes in source routing bridging without exponential flooding of explorer packets
US5276735A (en) 1992-04-17 1994-01-04 Secure Computing Corporation Data enclave and trusted path system
JP2826416B2 (ja) 1992-06-05 1998-11-18 日本電気株式会社 ローカルエリアネットワーク間の接続ルータ
WO1993026109A1 (en) 1992-06-17 1993-12-23 The Trustees Of The University Of Pennsylvania Apparatus for providing cryptographic support in a network
US5452330A (en) 1992-07-06 1995-09-19 Digital Equipment Corporation Bus-oriented switching system for asynchronous transfer mode
US5490252A (en) 1992-09-30 1996-02-06 Bay Networks Group, Inc. System having central processor for transmitting generic packets to another processor to be altered and transmitting altered packets back to central processor for routing
US5398012A (en) 1992-11-24 1995-03-14 International Business Machines Corporation Distributed processing of route selection across networks and subnetworks
US5361259A (en) 1993-02-19 1994-11-01 American Telephone And Telegraph Company Wide area network (WAN)-arrangement
US5444782A (en) 1993-03-09 1995-08-22 Uunet Technologies, Inc. Computer network encryption/decryption device
US5548724A (en) * 1993-03-22 1996-08-20 Hitachi, Ltd. File server system and file access control method of the same
JP2520563B2 (ja) 1993-05-19 1996-07-31 日本電気株式会社 パケット交換網
CA2124974C (en) 1993-06-28 1998-08-25 Kajamalai Gopalaswamy Ramakrishnan Method and apparatus for link metric assignment in shortest path networks
GB2281793A (en) 1993-09-11 1995-03-15 Ibm A data processing system for providing user load levelling in a network
US5475685A (en) 1993-10-27 1995-12-12 International Business Machines Corporation Multi-media flow control over FDDI synchronous networks
US5721904A (en) * 1993-12-20 1998-02-24 Hitachi, Ltd. Database access system and method of controlling access management to a database access system for a plurality of heterogeneous database servers using SQL
US5485455A (en) 1994-01-28 1996-01-16 Cabletron Systems, Inc. Network having secure fast packet switching and guaranteed quality of service
US5519836A (en) 1994-03-25 1996-05-21 At&T Corp. Method of on-line permanent virtual circuit routing
US5436902A (en) 1994-04-05 1995-07-25 First Pacific Networks Ethernet extender
JP2721303B2 (ja) 1994-05-12 1998-03-04 古河電気工業株式会社 接続装置の経路情報伝達方法
US5416842A (en) 1994-06-10 1995-05-16 Sun Microsystems, Inc. Method and apparatus for key-management scheme for use with internet protocols at site firewalls
US5455826A (en) 1994-06-28 1995-10-03 Oezveren; Cueneyt M. Method and apparatus for rate based flow control
US5452294A (en) 1994-07-05 1995-09-19 Motorola, Inc. Method and apparatus for adaptive route selection in communication networks
JPH0887473A (ja) 1994-09-16 1996-04-02 Toshiba Corp データ処理装置
US5548533A (en) 1994-10-07 1996-08-20 Northern Telecom Limited Overload control for a central processor in the switching network of a mobile communications system
CA2160393C (en) 1994-12-30 1999-05-04 Anwar Elwalid Method for integrated congestion control in networks
US5546452A (en) 1995-03-02 1996-08-13 Geotel Communications Corp. Communications system using a central controller to control at least one network and agent system
US5581552A (en) * 1995-05-23 1996-12-03 At&T Multimedia server
US5627971A (en) * 1995-06-01 1997-05-06 Northern Telecom Limited Machine method for determining the eligibility of links in a network
US5603029A (en) * 1995-06-07 1997-02-11 International Business Machines Corporation System of assigning work requests based on classifying into an eligible class where the criteria is goal oriented and capacity information is available
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
US5617540A (en) * 1995-07-31 1997-04-01 At&T System for binding host name of servers and address of available server in cache within client and for clearing cache prior to client establishes connection
US5878212A (en) * 1995-07-31 1999-03-02 At&T Corp. System for updating mapping or virtual host names to layer-3 address when multimedia server changes its usage state to busy or not busy
US5600794A (en) 1995-08-04 1997-02-04 Bay Networks, Inc. Method and apparatus for managing exchange of metrics in a computer network by exchanging only metrics used by a node in the network
US5572643A (en) * 1995-10-19 1996-11-05 Judson; David H. Web browser with dynamic display of information objects during linking
GB2309558A (en) * 1996-01-26 1997-07-30 Ibm Load balancing across the processors of a server computer
US5805824A (en) * 1996-02-28 1998-09-08 Hyper-G Software Forchungs-Und Entwicklungsgesellschaft M.B.H. Method of propagating data through a distributed information system
US5828847A (en) * 1996-04-19 1998-10-27 Storage Technology Corporation Dynamic server switching for maximum server availability and load balancing
US5862339A (en) * 1996-07-09 1999-01-19 Webtv Networks, Inc. Client connects to an internet access provider using algorithm downloaded from a central server based upon client's desired criteria after disconnected from the server
US5774660A (en) * 1996-08-05 1998-06-30 Resonate, Inc. World-wide-web server with delayed resource-binding for resource-based load balancing on a distributed resource multi-node network

Also Published As

Publication number Publication date
ATE297628T1 (de) 2005-06-15
AU724096B2 (en) 2000-09-14
JP2001509925A (ja) 2001-07-24
DK1016253T3 (da) 2005-09-19
US8683075B1 (en) 2014-03-25
WO1998026559A1 (en) 1998-06-18
US6185619B1 (en) 2001-02-06
DE69733498D1 (de) 2005-07-14
ES2258800T3 (es) 2006-09-01
EP1016253A1 (de) 2000-07-05
CA2274496C (en) 2007-07-03
NZ336187A (en) 2001-02-23
PT1016253E (pt) 2005-09-30
AU5692498A (en) 1998-07-03
JP4354532B2 (ja) 2009-10-28
EP1016253B1 (de) 2005-06-08
CA2274496A1 (en) 1998-06-18

Similar Documents

Publication Publication Date Title
DE69733498T2 (de) Verteiltes rechnersystem und verfahren zur aufteilung von benutzeranfragen auf duplizierte netzwerkserver
DE60002396T2 (de) Verbindungsauswahlverfahren
DE60317588T2 (de) Verfahren zur Ermittlung der peer-to-peer Servicequalität (QOS)
DE69730056T2 (de) Routen von duplikaten
EP1439663B1 (de) Verfahren für eine Klassifizierung von Netzwerk-Komponenten eines paket-orientierten Netzwerks
DE69837691T2 (de) Lastverteilung zwischen Servern in einem TCP/IP-Netz
DE69915871T2 (de) Verfahren und vorrichtung für ein tcp/ip lastausgleich und wiederherstellung eines prozesses in einem internet protocol (ip) netzwerkgruppensystem.
DE69937831T2 (de) System und Verfahren zum Verwalten von Client-Anforderungen in Client-Server-Netzen
DE60132718T2 (de) System und methode zum auffinden von informationsobjekten und informationsobjektspeichern in rechnernetzen
DE69827201T2 (de) Verfahren und system zur server-netzwerkvermittlung-mehrverbindung
DE69430276T2 (de) Socketstruktur für gleichzeitigen Mehrfach-Protokollzugriff
DE60019640T2 (de) Digitales Rechnersystem und Verfahren zur Beantwortung von über ein externes Netzwerk empfangenen Anfragen
DE69726701T2 (de) Verfahren zur Übertragung von Verbindungsverwaltungsinformationen in World Wide Web Anforderungen und Antworten
DE60102367T2 (de) Netzoptimierungsmethode
DE112020001459T5 (de) Konsistente Route-Ankündigungen zwischen redundanten Controllern im globalen Netzwerk-Access-Point
DE602004008693T2 (de) Dynamischer Lastausgleich für geschäftlichen IP-Verkehr
US8065399B2 (en) Automated network infrastructure test and diagnostic system and method therefor
DE60025129T2 (de) Verfahren und Vorrichtung zur Bereitstellung von skalierbaren Diensten unter Benutzung einer Paketverteilungstabelle
DE69913176T2 (de) Verfahren und system zum eingeben von äusserem inhalt in interaktiven netzsitzungen
US20060047792A1 (en) Dynamically configuring a server computer
DE602004005785T2 (de) Dynamische Leitweglenkung in einem inhaltbasierten verteilten Netzwerk
DE602004008415T2 (de) System und Verfahren zum Aufrechterhalten der Netzwerkverbindung
DE10205108A1 (de) System und Verfahren zum Zugreifen auf Softwarekomponenten in einer verteilten Netzwerkumgebung
DE202015009264U1 (de) Anycast-basiertes, wide-area-verteiltes kartierungs- und lastverteilungssystem
DE112008003966T5 (de) Selektives Um-Abbilden einer Netzwerktopologie

Legal Events

Date Code Title Description
8364 No opposition during term of opposition