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 PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation 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/505—Allocation 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/101—Server 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 bis5C 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 Server20 und zahlreiche Clienten enthält, von denen einer als Teilnehmer25 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 Server20 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 Prozessoren30 , die mit mehreren Peripheriegeräten über ein Bus-Untersystem32 kommunizieren. Diese Peripheriegeräte enthalten typischerweise ein Speicher-Untersystem35 , das aus einem Speicher-Untersystem35a und einem Datenspeicher-Untersystem35b besteht, die Rechnerprogramme (z. B. Kode oder Befehle) und Daten enthalten, einen Satz Benutzerschnittstellen-Eingabe- und -Ausgabevorrichtungen37 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"-Block40 gezeigt. Sie ist mit entsprechenden Verschachtelungsvorrichtungen in Clientenrechnern über eine Netzverbindung45 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 Vorrichtungen37 in einem Einzelsystem) zusammen. Beispielsweise werden Clientenanfragen über eine Tastatur eingegeben, dem Clientenprozessor30' übermittelt und dann über das Bus-Untersystem32' zu einer Netzschnittstelle40' geleitet. Die Anfrage wird dann über die Netzverbindung45 an den Server20 übermittelt. In gleicher Weise werden die Ergebnisse der Anfrage vom Server an den Clienten über die Netzverbindung45 zur Ausgabe auf einer der Vorrichtungen37' (beispielsweise eine Anzeige oder ein Drucker) übermittelt, oder können in einem Speicher-Untersystem35' gespeichert werden. -
1B ist ein Funktionsdiagramm des Rechnersystems von1A .1B zeigt einen Server20 und einen repräsentativen Clienten aus mehreren Clienten, die mit dem Server20 über das Internet45 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 Block35a in1A gezeigt ist. Ein TCP/IP-"Stapel"44 arbeitet mit dem Betriebssystem42 zusammen, um mit Prozessen über ein Netz oder eine serielle Verbindung zu kommunizieren, die den Server20 an das Internet45 anschließt. Webserversoftware46 läuft gleichzeitig und in Zusammenarbeit mit anderen Prozessen im Server20 ab, um Datenobjekte50 und51 den anfordernden Clienten verfügbar zu machen. Ein Common Gateway Interface (CGI)-Skript51 ermöglicht es Information von Benutzern vom Webserver46 oder anderen Prozessen im Server20 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 Internet45 zum Benutzer übertragen werden. - Der Teilnehmer
25 in1b besitzt Software, die Funktionsprozesse ausführt, die operativ in ihrem Programm- und Datenspeicher angeordnet ist, wie durch den Block35a' in1A angegeben ist. Der TCP/IP-Stapel44' arbeitet zusammen mit dem Betriebssystem42' , um mit Prozessen über ein Netz oder eine Serienverbindung, die den Clienten25 an das Internet45 anschließt, zu kommunizieren. Software, die die Funktion eines Webbrowsers46' ausführt, läuft gleichzeitig und in Zusammenarbeit mit anderen Prozessen beim Clienten25 ab, um Anfragen des Servers20 nach Datenobjekten50 und51 zu machen. Der Benutzer des Clienten kann über den Webbrowser46' interagieren, um solche Anfragen des Servers20 über Internet45 zu machen und die Antworten vom Server20 über das Internet45 am Webbrowser46' zu betrachten. - 1.2 Netzübersicht
-
1C zeigt den Internetverkehr mehrerer Clienten, wie Teilnehmer25 der1A und1B und mehrerer Server, wie Server20 der1A und1B , wie oben beschrieben. In1C ist ein Netz70 beispielsweise ein Tokenring oder rahmenorientiertes Netz. Das Netz70 verbindet einen Host71 , wie beispielsweise eine Workstation IBM RS6000 R1SC, in der das AIX-Betriebssystem laufen kann, mit einem Host72 , der ein PC ist und mit Windows 95, IBM OS/2 oder 1)05 als Betriebssystem läuft, mit einem Host73 , der ein Rechner IBM AS/400 sein kann und mit OS/400 als Betriebssystem läuft. Das Netz70 ist über Internet mit einem Netz60 über ein Systemgateway verbunden, das hier als Router75 dargestellt ist, das aber auch ein Gateway sein kann, das eine Firewall oder eine Netzbrücke hat. Das Netz60 ist ein Beispiel eines Ethernet-Netzes, das einen Host81 , der eine SPARC Workstation ist und mit SUNOS als Betriebssystem läuft, mit einem Host62 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 Netzes70 und des Netzes60 . Der Router75 verwendet einen Tokenring-Adapter und einen Ethernet-Adapter. Dieses ermöglicht es dem Router75 , mit den zwei heterogenen Netzen verbunden zu werden. Der Router75 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 Ebene80 , die die mechanischen, elektrischen funktionalen und Prozedurstandards für die physikalische Datenaussendung über Kommunikationsmedien, wie beispielsweise die Netzverbindung45 von1A 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. In2A verbindet ein Netz200 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 und208 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 Router222 ,224 ,226 und228 , 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-Server212 ,214 ,216 und218 , 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 und238 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 von2B unterscheidet sich von der Ausführungsform von2A vor allem darin, dass die Ausführungsform von2B keinen getrennten Direktorserver hat. Vielmehr sind in der alternativen Ausführungsform von2B die Prozesse, die am Direktorserver250 in2A abliefen, unter den Frontende-Servern212 ,214 ,216 und218 in2B 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 Direktorkomponenten362 , 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-Komponenten360 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-Manager364 und dem Last-Manager366 , 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-Komponente366 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 von3B mit dem der Ausführungsform von3A vergleicht, dann besteht der Hauptunterschied zwischen zwei Ausführungsformen darin, dass in der alternativen Ausführungsform von3B der Direktorprozess362 auf zahlreiche Server verteilt ist. In3B ist der Direktorprozess363 daher als drei separate Direktorprozessinstanzen gezeigt. In3A hingegen ist der Direktorprozess362 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 von3B mit dem der Ausführungsform von3C besteht der Hauptunterschied zwischen den zwei Ausführungsformen darin, dass in der Ausführungsform von3C der Frontende-Prozess360 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 der3A und3B erbittet das Frontende zunächst "Rat" von den Direktorkomponenten362 , 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 der3A und3B 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 Schritt402 aktualisiert ein Last-Daemon-Prozess, der sich bei einem Inhaltsserver befindet, wie232 von2A , periodisch Information direkt an einem Lastmanagerprozess366 , der an einem Direktorserver250 wirkt. Anschließend aktualisiert im Schritt404 der Lastmanagerprozess Lastinformation, die von allen Inhaltsservern gewonnen wurde, die Last-Daemon-Prozesse haben. Dieses ermöglicht es dem Direktorprozess362 , die am geringsten belastete Inhaltsservermaschine auszuwählen, in Abhängigkeit von einer einlaufenden Anforderung, wie in den Schritten410 und412 . - 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-Komponente360 in Übereinstimmung mit der Leitwegtabelle übermittelt, die einem an diesem Netzzugangspunkt gelegenen Router zugeordnet ist. Im Schritt412 betätigt im Ansprechen auf den Empfang der Clientenanwendungsanforderung die Frontende-Komponente eine Anforderung an die Direktorkomponente362 nach einem bevorzugten Server. Der Direktor, der die Frontende-Anforderung nach Information über Clientenanforderung im Schritt412 empfangen hat, fordert Information, wie beispielsweise den zweckmäßigsten Pfad zwischen Servern und Clienten, von einer Kollektorkomponente an, beispielsweise einen Ping-Manager364 , in einem Schritt413 . In der Ausführungsform von4A ist der zweckmäßigste Pfad jeder mit der schnellsten ICMP-Echoantwort (Ping), der durch eine Ping-Mangager-Kollektorkomponente364 bestimmt wird, die zusammen mit einer oder mehreren Ping-Daemon-Komponenten wirkt, die zusammen an den zahlreichen Netzzugangspunkten im Systemnetz angeordnet sind, in einem Schritt414 . 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 Schritt415 gezeigt. Jeder Ping-Daemon überträgt von Zeit zu Zeit die Zeit zu einem Clienten über seinen speziellen Netzzugangspunkt zum Ping-Manager in einem Schritt416 . Die Ping-Manager-Komponente liefert Rückkehrwerte für den Netzzugangspunkten des Systems zugeordnete Pfade im Schritt417 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 Schritt418 . Die Frontende-Komponente leitet den Clienten zum richtigen Inhaltsserver unter Verwendung eines Anwendungsebenenprotokolls, vorzugsweise einer HTTP-Leitantwort in einem Schritt419 . 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 Schritt420 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 in4B gezeigten Ausführungsform mit jenen der Ausführungsform von4A , wird klar, dass die besonderen Schritte identisch sind. Es ist jedoch anzumerken, dass die Schritt412 ,414 ,416 und418 keine Netztransaktionen sind, wie es in4A 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 in4B gezeigten Ausführungsform mit jenen der Ausführungsform von4C , wird klar, dass der Hauptunterschied darin besteht, dass die Schritte419 und420 von4B , die Weitersendeantwort und die nachfolgenden HTTP-Umwandlungschritte durch einen neuen Schritt422 ersetzt worden sind. Wir im Schritt422 wird der IP-Verkehr vom Clienten entsprechend der Bestimmung durch den Direktor zum "besten Server" weitergeleitet. Dieses nimmt den Platz des Weitersendeantwortschritt419 , der durch den Frontende-Prozess getan wird, zum Clienten ein, wie in4B gezeigt. Es ist anzumerken, dass die Schritte402 ,402 ,410 ,412 ,413 ,414 ,415 ,416 ,417 und418 in der bevorzugten Ausführungsform von4C die gleichen bleiben, wie bei den Ausführungsformen der4A und4B . -
4C zeigt die Verarbeitungsschritte in der bevorzugten Ausführungsform. In einem Schritt410 nimmt ein Frontende-Relais360 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 Schritt412 das Frontende-Relais den Direktor362 auf, die Leitwegentscheidung zum "besten Server" zu treffen. In den Schritten413 ,414 ,415 ,416 ,417 und418 bestimmt der Direktor im Zusammenwirken mit dem Lastmanager366 , dem Ping-Mananger364 , 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 der4A und4B . In einem Schritt422 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 Flussdiagramm500 der Prozessschritte, die von einem Direktor in einer speziellen Ausführungsform der Erfindung unternommen werden. In einem Schritt501 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 Schritt501 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 Schritt502 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 Flussdiagramm510 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 Schritt512 des Flussdiagramms510 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. - 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 Verarbeitungsschritt514 : - 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): - Als nächstes berechnet im Schritt
518 der Direktor Pfadmaße für alle Platz- und Grenzkombinationen entsprechend dem folgenden Pseudokode in Zeilen (11) - 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: - 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 Flussdiagramm521 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 in5C 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: - Wie in
5C gezeigt, führen ein Entscheidungsschritt522 , ein Prozessschritt524 , ein Entscheidungsschritt526 und ein Prozessschritt528 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: - Sobald diese Schleife alle Glieder der @sorted_list verarbeitet hat, nimmt der Entscheidungschritt
522 den "ja"-Pfad, und die Verarbeitung wird mit einem Entscheidungsschritt530 fortgesetzt, der zusammen mit den Prozessschritten532 und534 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: - Sobald diese Schleife alle Glieder der @sorted_list verarbeitet hat, nimmt der Entscheidungsschritt
530 von5C den ja"-Pfad, und die Verarbeitung wird mit einem Prozessschritt536 fortgesetzt, der eine beliebige Zahl zwischen 1 und der Gesamtserverlast bestimmt. Als nächstes vollzieht sich die Verarbeitung in der Schleife, die von den Entscheidungsschritten538 und544 und den Verarbeitungsschritten540 ,542 und546 gebildet wird. Diese Schleife wandert durch die Server @server_list, summiert deren Lasten bis dieses laufende Gesamtergebnis die beliebige Zahl überschreitet, die im Prozessschritt536 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: - Sobald der Direktor einen "besten" Server gewählt hat, wird die Verarbeitung fortgesetzt, wie im Schritt
504 von5A beschrieben, und es gilt der folgende Pseudokode: - 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)
- 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. - 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. - 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. - System nach einem der Ansprüche 1 bis 3, bei dem die Weitersendungsantwort eine HTTP-Weitersendungsantwort ist.
- 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. - 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. - 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. - 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. - 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. - 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.
- 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.
- Verfahren nach einem Ansprüche 9 bis 11, bei dem Weitersendungsantwort eine HTTP-Weitersendungsantwort ist.
- 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.
- 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.
- 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.
- 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.
- 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. - 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.
- 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.
- 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.
- 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.
- 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.
- 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.
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)
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)
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 |
-
1997
- 1997-11-07 US US08/965,848 patent/US6185619B1/en not_active Expired - Lifetime
- 1997-12-09 NZ NZ336187A patent/NZ336187A/en not_active IP Right Cessation
- 1997-12-09 DK DK97953118T patent/DK1016253T3/da active
- 1997-12-09 EP EP97953118A patent/EP1016253B1/de not_active Expired - Lifetime
- 1997-12-09 CA CA002274496A patent/CA2274496C/en not_active Expired - Fee Related
- 1997-12-09 DE DE69733498T patent/DE69733498T2/de not_active Expired - Lifetime
- 1997-12-09 ES ES97953118T patent/ES2258800T3/es not_active Expired - Lifetime
- 1997-12-09 PT PT97953118T patent/PT1016253E/pt unknown
- 1997-12-09 JP JP52688698A patent/JP4354532B2/ja not_active Expired - Fee Related
- 1997-12-09 AU AU56924/98A patent/AU724096B2/en not_active Ceased
- 1997-12-09 WO PCT/US1997/022542 patent/WO1998026559A1/en active IP Right Grant
- 1997-12-09 AT AT97953118T patent/ATE297628T1/de active
-
2000
- 2000-11-16 US US09/714,150 patent/US8683075B1/en active Active
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 |