-
QUERBEZUG ZU VERWANDTER ANMELDUNG
-
Diese
Anmeldung ist mit der Anmeldung in der Vereinigten Staaten mit der
Veröffentlichungsnummer
US 2003/188188 A1 vom
02.10.2003 und dem Titel "Time-Window-Constrained
Multicast For Future Delivery Multicast"verwandt, die gleichzeitig mit der vorliegenden
Anmeldung eingereicht wurde.
-
TECHNISCHES GEBIET
-
Diese
Erfindung bezieht sich allgemein auf die Inhaltsabgabe über ein
Netzwerk und insbesondere bezieht sie sich auf die Abgabe von Inhalt
an mehrere Klienten innerhalb eines gewissen Zeitrahmens.
-
HINTERGRUND DER ERFINDUNG
-
Im
Verlaufe der letzten 30 Jahre ist das Internet von einigen wenigen
Servern, die durch die Regierung kontrolliert wurden, und einigen
wenigen Ausbildungsinstitutionen zu einem ausgedehnten, heterogenen
Netzwerk aus Servern und Klienten gewachsen. Die Server auf dem
Internet liefern mehr Funktionalität als je zuvor, die von der
Werbung für und
den Verkauf von Automobilen bis zu Lehrveranstaltungen über die
Alten Griechen reicht. Dieser Bereich hat sich auf Grund wenigstens
dreier miteinander zusammenhängender
Faktoren erweitert: Vergrößerung der
Rechnerleistung, Vergrößerung der Bandbreite
und Vergrößerung der
Benutzeranzahl. Während
in den meisten Fällen
die Rechnerleistung größer als
die Anforderungen durch ihre Benutzer blieb, kann die langsam zunehmende
Bandbreite, über
die die meisten Übertragungen
vollzogen werden, durch die geometrische Zunahme der Internetzbenutzer überfordert
werden und ist es manchmal auch.
-
Während dieses
Problem in kleineren Intranetzen und Ortsbereichsnetzen vorherrschend
sein kann, ist es auf dem Internet noch vergrößert. Beispielsweise können wichtige
Neuigkeiten dazu führen,
dass mehr als 3 Millionen Zugriffe pro Minute auf populäre Webseiten
erfolgen, die sich auf Nachrichten beziehen. Aufgrund der notwendigerweise
endlichen Bandbreite von Serviceprovidern und Webservern kann eine
solche große
Nachfrage eine Seite überrollen,
und ein Download, das gewöhnlich
Sekunden benötigt,
kann Minuten brauchen. Da die Übertragungsgeschwindigkeiten
von Benutzern gesteigert wurden und sich die Benutzer an schnellere Downloads
gewöhnt
haben, hat diese Serviceverzögerung
eine zunehmende Bedeutung erlangt.
-
Eine
der Lösungen
für dieses
Problem ist das Multicasting. Multicasting ist ein Internetprotokoll,
das es erlaubt, an viele unterschiedliche Benutzer gleichzeitig
zu sendenden Inhalt zu streamen, indem ein Server nur einen Datenstrom
sendet. Für das
Multicasting wird ein spezifischer Port verwendet. Der Server sendet
seine Streaming-Daten an diesen Port, und Klienten, die das Multicast
zu empfangen wünschen "lauschen" an dem spezifischen Port.
Unter Verwendung dieses Verfahrens können einige der Bandbreitenprobleme
des normalen "Unicasting" überwunden werden, und Benutzer
können die
Daten in einer zeitgerechteren und wirksameren Weise empfangen.
Leider kann selbst dieses robustere Verfahren erdrückt werden,
wenn eine ausreichende Anzahl an Benutzern versucht, gleichzeitig der
Multicasting-Adresse zu "lauschen", und es ist für Benutzer
heterogener Verbindungsgeschwindigkeiten schwierig, in gleichem
Umfang aus dem Multicasting-Protokoll Vorteile zu ziehen.
-
Einige
Information, die vom Internet geliefert wird, hat eine weitere Komplikation
dahingehend, dass es nicht lediglich wichtig ist, dass viele Benutzer Inhalt
so schnell wie möglich
herunterladen; es ist auch wichtig, dass sie den Inhalt innerhalb
einer gewissen Zeitdauer empfangen. Das Problem ist daher, wie ein
Ereignis an alle interessierten Klienten innerhalb einer gewissen
Zeitdauer, wie beispielsweise innerhalb eines gegebenen Zeitfensters,
geliefert wird. Ein Beispiel einer Situation, in der das Timing
des Informationsempfangs wichtig sein kann, ist die Bekanntgabe
von Regierungsdaten, die Finanzmärkte beeinflussen
können.
In einer solchen Situation sind jene, die die Information als Erste
empfangen, in einer Position, von Anderen Profit zu ziehen, die
die Information noch nicht empfangen haben. Weiterhin gibt es im
Allgemeinen eine Anfangszeit, in der eine solche Information herausgegeben
wird. Das Problem wird daher, wie ein Ereignis an eine Gruppe von Klienten
so dicht wie möglich
zur Anfangs- (oder Freigabe-)Zeit, jedoch nicht nach einer gewissen
späteren
Zeit gesendet wird, zu der die Information nutzlos oder überholt
ist. Dieses Problem ist sowohl unter dem Standpunkt der Effizienz
als auch der Fairness relevant.
-
Eine
Schwierigkeit, diese Aufgabe zu lösen, ist das Problem der Verschiebung
der oben beschriebenen Netzwerkbandbreite. Wenn viele Klienten auf einen
einzelnen Server eingeloggt sind, kann der Informationsfluss vom
Server zu jedem der Klienten sehr langsam sein. In einer vergleichbaren
Situation kann der Pfad zwischen Zwischenservern ebenso verlangsamt
sein, so dass jeder Abwärtsstrom
von dem überlasteten
Server die Information zu spät empfängt.
-
Eine
weitere Schwierigkeit liegt in der Heterogenität der Klientenkonnektivität. Während die meisten
Firmennetzwerke nun über
Hochgeschwindigkeitsanlagen mit dem Internet verbunden sind, gibt
es noch immer viele Benutzer, die sich mit dem Internet unter Verwendung
analoger Modems verbinden. Wenn ein mit dem Internet über eine
Breitbandverbindung, wie beispielsweise über eine digitale Teilnehmerleitung,
verbundener Benutzer in der Lage wäre, zu der Information zum
gleichen Zeitpunkt zuzugreifen zu beginnen, wie ein Benutzer, der über eine
Einwählverbindung
von 56 Kbps angeschlossen ist, dann würde der Benutzer mit der Breitbandverbindung
den Empfang der Information lange vor dem Zeitpunkt beenden, zu
dem dies der Benutzer auf der langsameren Verbindung tut. Wenn beispielsweise das
herunterzuladende Ereignis 10 MB hat, dann würde eine 56 Kbps-Verbindung
etwa 24 Minuten benötigen,
um das Ereignis herunterzuladen, und eine digitale Teilnehmerleitung,
die mit 1 Mbps arbeitet würde
gerade einmal 80 Sekunden benötigen.
-
Gegenwärtige Verfahren
der Inhaltverteilung bieten wenige Werkzeuge zur Vereinfachung des Sendens
eines Ereignisses innerhalb eines gegebenen Zeitrahmens so fair
wie möglich
an so viele heterogene Klienten wie notwendig an. Inhalt- und Service-Provider
achten gewöhnlich
nicht auf Fairness der Verteilung oder des Zugangs zu einem speziellen Zeitpunkt.
Somit wird nur der schnellste, glücklichste Benutzer den Inhalt
zu einem frühen
Zeitpunkt empfangen, was es ihm häufig erlaubt, in unfairer Weise von
den anderen Benutzern zu profitieren, die die Information entsprechend
der Netzwerkbandbreite und ihrer eigenen Verbindungsgeschwindigkeit
zu einem späteren
Zeitpunkt empfangen.
-
ÜBERSICHT ÜBER DIE ERFINDUNG
-
Die
vorliegende Erfindung ist gerichtet auf ein Verfahren, auf ein Rechner-lesbares
Medium und auf ein System zum Verteilen eines Ereignisses von einem
vertrauenswürdigen
Edge-Server an einen Klienten, wobei der vertrauenswürdige Edge-Server
ein Server auf einem Kommunikationspfad zwischen einem Ursprungs-Server
und einem verbundenen Klienten ist, dem dahingehend vertraut werden
kann, dass er Information nicht vor einem angemessenen Zeitpunkt
freigibt, wobei das Verfahren umfasst:
Erhalten eines Freigabezeitpunktes,
wobei der Freigabezeitpunkt ein frühester Zeitpunkt ist, zu dem
beabsichtigt ist, das Ereignis dem Klienten zuzuführen;
Erhalten
eines Abschlusszeitpunktes, wobei der Abschlusszeitpunkt ein spätester Zeitpunkt
ist, zu dem das Ereignis bei dem Klienten eintreffen kann;
Bestimmen
einer ersten Latenz zwischen einem ersten vertrauenswürdigen Edge-Server
und einem ersten Klienten;
Bestimmen einer Übertragungs-Latenz, die eine
Latenz zwischen einem zweiten vertrauenswürdigen Edge-Server und dem
ersten Klienten ist;
Übertragen
des ersten Klienten auf einen zweiten vertrauenswürdigen Edge-Server,
wenn die Übertragungs-Latenz
niedriger als die erste Latenz ist;
Berechnen eines ersten
Sendezeitpunktes als eine Funktion der ersten Latenz, der Übertragungslatenz, des
Freigabezeitpunktes und des Abschlusszeitpunktes; und
Senden
des Ereignisses von dem ersten vertrauenswürdigen Edge-Server an den ersten
Klienten zu dem ersten Sendezeitpunkt, wenn die Übertragungs-Latenz nicht niedriger
als die erste Latenz ist;
Senden des Ereignisses von dem zweiten
vertrauenswürdigen
Edge-Server an den ersten Klienten zu dem ersten Sendezeitpunkt,
wenn die Übertragungs-Latenz
niedriger als die erste Latenz ist.
-
Die
vorliegende Erfindung ist weiterhin gerichtet auf ein Verfahren,
ein Rechner-lesbares Medium und ein System zum Einbeziehen der Latenz
der Klient-Server-Kommunikation in eine Schätzung von Download-Zeiten,
um die Abgabe eines Ereignisses an interessierte Klienten innerhalb
eines Zeitfensters zu erleichtern.
-
Die
vorliegende Erfindung gibt Mechanismen an, die die Bandbreite und
die heterogenen Klientenbeschränkungen
in einem Netzwerk vermindern und die Ereignisse an einen Satz von
interessierten Klienten innerhalb einer vorbestimmten Zeitdauer
so schnell und so fair wie möglich
senden. Ein durch die vorliegende Erfindung vorgeschlagenes Verfahren sieht
die Aufteilung von Klienten auf Server vor, so dass die Verzögerung aufgrund
einer Serverüberlastung
minimiert wird und Klienten mit geringeren Verbindungsgeschwindigkeiten
ein Ereignis relativ dicht beim theoretischen Minimum herunterladen
können (angesichts
ihrer Verbindungsgeschwindigkeit und anderer relativ unveränderlicher
Verbindungseigenschaften). In einer Ausführungsform kann ein Ursprungs-Server,
bei dem die Ereignisinformation anfänglich gespeichert ist, mit
mehreren vertrauenswürdigen
Edge-Servern verbunden sein, die Inhalt an ihre angeschlossenen
Klienten liefern. Ein vertrauenswürdiger Edge-Server ist ein
Server, dem man vertrauen kann, dass er Information nicht vorzeitig freigibt,
und der eine Verbindung zu seinen Klienten entweder direkt oder
indirekt aufrechterhält.
Mit anderen Worten, ein vertrauenswürdiger Edge-Server findet sich am "Rand" eines Abgabenetzwerks,
das vertrauenswürdige
Server enthält.
-
In
dieser vernetzten Umgebung werden die Klienten unter den vertrauenswürdigen Edge-Servern auf der Grundlage
von empirischen und theoretischen Schätzungen der Netzwerkbandbreite
und Latenz verteilt. Dann wird eine gewisse Zeit vor dem Zeitpunkt,
zu welchem das Ereignis an nicht vertrauenswürdige Server und Klienten freizugeben
ist, das Ereignis vom Ursprungs-Server an die vertrauenswürdigen Edge-Server
abgegeben. Schließlich
geben auf Empfang des Ereignisses die vertrauenswürdigen Edge-Server
das Ereignis an ihre entsprechenden Klienten ab. Wie unten beschrieben
wird, können die
vertrauenswürdigen
Edge-Server das Ereignis an ihre entsprechenden Klienten ggf. nicht
abgeben. Durch Senden des Ereignisses an die vertrauenswürdigen Edge-Server
vor dem Zeitpunkt, zu welchem das Ereignis abzugeben ist, hat das
Ereignis eine kürzere
Netzwerkdistanz vom vertrauenswürdigen
Edge-Server zu den
Klienten zu durchlaufen und kann daher schneller ankommen. Eine
Netzverkverstopfung zwischen dem Ursprungs-Server und den vertrauenswürdigen Edge-Servern
braucht die Zeit nach der Abgabezeit, zu welcher die Klienten schließlich das
Ereignis empfangen, nicht beeinträchtigen, weil eine solche Netzverstopfung
vor der Abgabezeit, zu welcher das Ereignis vom Ursprungs-Server
an die vertrauenswürdigen Edge-Server
gesendet wird, angetroffen und übersprungen
wird. Außerdem
hat die kürzere
Netzwerkdistanz zwischen dem vertrauenswürdigen Edge-Server und den
angeschlossenen Klienten wahrscheinlich eine besser vorhersehbare
Leistung. Eine solche Vorhersehbarkeit kann speziell nützlich sein,
wenn abgeschätzt
wird, wie lange das Ereignis braucht, um vom vertrauenswürdigen Edge-Server an
den Klienten gesendet zu werden, wie später noch in größerem Detail
beschrieben wird.
-
Ein
anderes Verfahren, das von der vorliegenden Erfindung geschaffen
wurde, sieht die gestaffelte Abgabe eines Ereignisses an unterschiedliche Server
und/oder Klienten vor, so dass die Abgabe fairer ist und die Klienten
das Ereignis sehr viel wahrscheinlicher gleichzeitig empfangen.
Eine Ausführungsform
dieses Verfahrens nimmt die Existenz eines Ursprungs-Servers an,
der an eine gewisse Anzahl vertrauenswürdiger Edge-Server angeschlossen
ist, die logisch mit Klientenmaschinen verbunden sind. Auf der Grundlage
empirischer und theoretischer Schätzwerte von Netzwerkbandbreiten
und Latenzen können
diese vertrauenswürdigen
Edge-Server eine Datenbank von Zeitpunkten für die Versorgung für jeden
Klienten zusammenstellen. Jeder vertrauenswürdige Edge-Server kann das
Maximum aller Abgabezeiten zwischen sich selbst und seinen Klienten
bestimmen und verlangt dann, dass der Ursprungs-Server das Ereignis
an den vertrauenswürdigen
Edge-Server wenigstens zu der maximalen Zeitdauer vor dem Zeitpunkt
sendet, zu welchem das Ereignis freizugeben ist. Auf Empfang des
Ereignisses kann jeder vertrauenswürdige Edge-Server die Sendung
des Ereignisses an seine interessierten Klien ten zu einem Zeitpunkt
vor dem Zeitpunkt einleiten, zum welchem das Ereignis freizugeben
ist. Beispielsweise könnte
ein vertrauenswürdiger Edge-Server
die Sendung an all seine Klienten zu einem Zeitpunkt einleiten,
der durch Subtrahieren der minimalen Sendezeit all der Klienten
von dem Zeitpunkt berechnet wird, zu welchem das Ereignis freizugeben
ist. Alternativ könnte
der vertrauenswürdige Edge-Server
die Aussendung des Ereignisses an jeden Klienten zu einem Zeitpunkt
einleiten, der durch Subtrahieren der Sendezeitdauer zu diesem speziellen
Klienten von dem Zeitpunkt berechnet wird, zu welchem das Ereignis
freizugeben ist, um somit die Netzwerkbandbreite und Latenz der
einzelnen Verbindungen zu berücksichtigen.
Wenn der Server den letztgenannten Betrieb ausführt, empfangen die interessierten
Klienten das Ereignis jeweils in seiner Gesamtheit etwa zu dem Zeitpunkt,
zu welchem das Ereignis freizugeben ist, während der zuvor beschriebene
Betrieb zu einer mehr variablen Ankunftszeit führen kann. Um die Fairness
und die Effizienz weiter zu steigern, können die Klienten zunächst unter
den Servern umverteilt werden, um die Effekte einiger Latenzquellen
zu reduzieren und um in manchen Situationen Klienten mit ähnlichen
Verbindungsgeschwindigkeiten an die gleichen Server anzuschließen (so dass
die gestaffelte Abgabe effektiver gemacht wird). Dieses kann einen
nahezu gleichzeitigen Bezug eines Ereignisses durch mehrere unterschiedlich
gelegene und angeschlossene Klienten entsprechend einer Abschätzung ihrer
einzelnen Klient-Server-Übertragungszeiten
ermöglichen.
-
Zusätzliche
Merkmale und Vorteile der Erfindung gehen aus der folgenden detaillierten
Beschreibung beispielhafter Ausführungsformen
hervor, die unter Bezugnahme auf die begleitenden Zeichnungen gegeben
wird.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
Während die
beigefügten
Ansprüche
die Merkmale der vorliegenden Erfindung im Besonderen beschreiben,
kann die Erfindung zusammen mit ihren Zielen und Vorteilen am Besten
aus der folgenden detaillierten Beschreibung verstanden werden, die
im Zusammenhang mit den begleitenden Zeichnungen gegeben wird.
-
1 ist
ein Blockschaltbild, das einen beispielhaften Rechner-Server zeigt,
auf dem die vorliegende Erfindung beruht;
-
2 ist
ein Blockschaltbild, das allgemein ein beispielhaftes Netzwerk zeigt, über das
die vorliegende Erfindung arbeiten kann;
-
3 ist
eine graphische Darstellung, in der das erste Verfahren dieser Erfindung
mit der Netzwerkabgabe im Stand der Technik verglichen wird;
-
4a und 4b sind
eine graphische Darstellung, die das zweite Verfahren dieser Erfindung
mit der Netzwerkabgabe im Stand der Technik vergleicht;
-
5 ist
ein Flussdiagramm, das allgemein den Ablauf des ersten Verfahrens
dieser Erfindung zeigt, und
-
6 ist
ein Flussdiagramm, das allgemein den Ablauf des zweiten Verfahrens
dieser Erfindung zeigt.
-
DETAILLIERTE BESCHREIBUNG
DER ERFINDUNG
-
Die
vorliegende Erfindung ist gerichtet auf ein Verfahren, auf ein Rechner-lesbares
Medium und ein System zum Aufteilen von interessierten Klienten auf
Server in einem Netzwerk, um die Abgabe eines Ereignisses an diese
Klienten innerhalb eines Zeitfensters zu erleichtern. Die vorliegende
Erfindung ist weiterhin gerichtet auf ein Verfahren, ein Rechner-lesbares
Medium und ein System zum Einbeziehen der Netzwerkbandbreite und
Latenz von Klient-Server-Kommunikation in eine Abschätzung von Download-Zeiten,
um die Abgabe eines Ereignisses an interessierten Klienten innerhalb
eines Zeitfensters zu erleichtern. Die vorliegende Erfindung sieht vor,
Klienten zwischen Servern zu übertragen,
um die Zeit für
die Versorgung für
jede Klient-Server-Verbindung
zu minimieren und um entweder mathematisch oder empirisch eine abgeschätzte Sendezeit
zu einem Klienten oder Satz von Klienten zu bestimmen und um die
Sendung eines Ereignisses zu einem Zeitpunkt zu beginnen, der früher als
der Zeitpunkt liegt, zu dem das Ereignis zu verteilen ist, um der
abgeschätzten
Sendezeit Rechnung zu tragen.
-
Unter
Bezugnahme auf die Zeichnungen, in denen gleiche Bezugszeichen sich
auf gleiche Elemente beziehen, wird die Erfindung nachfolgend im Kontext
einer Rechnerumgebung beschrieben. Obgleich es für die Ausführung der Erfindung nicht erforderlich
ist, wird die Erfindung beschrieben, wie sie durch Rechner-ausführbare Befehle,
wie beispielsweise Programmmodule, implementiert wird, die durch
einen Server ausgeführt
werden. Im Allgemeinen enthalten Programmmodule Routinen, Programme,
Objekte, Komponenten, Datenstrukturen und dgl., die spezielle Aufgaben
ausführen
oder spezielle abstrakte Datentypen anwenden.
-
Die
Erfindung kann in Rechnersystemkonfigurationen ausgeführt werden,
die keine Server sind. Beispielsweise kann die Erfindung in Routern,
Multi-Prozessor-Systemen, PCs, Endverbrau cherelektronik, Minicomputern,
Großrechnern
und dgl. realisiert werden. Die Erfindung kann auch in verteilten Rechnerumgebungen
praktiziert werden, in denen Aufgaben durch entfernte Prozessorvorrichtungen ausgeführt werden,
die durch ein Übertragungsnetzwerk
miteinander verbunden sind. In einer verteilten Rechnerumgebung
können
Programmmodule sowohl in örtlichen
als auch in entfernten Speichervorrichtungen gelegen sein.
-
Obgleich
die Erfindung in viele Arten von Rechnerumgebungen eingebaut werden
kann, wie oben vorgeschlagen, wird die folgende detaillierte Beschreibung
der Erfindung im Kontext einer beispielhaften Allzweckrechnervorrichtung
in Form eines konventionellen Servers 20 erläutert.
-
Vor
der Beschreibung der Erfindung im Detail, wird die Rechnerumgebung,
in der die Erfindung arbeitet, im Zusammenhang mit 1 beschrieben.
-
Der
Server 20 enthält
eine Prozessoreinheit 21, einen Systemspeicher 22 und
einen Systembus 23, der zahlreiche Systemkomponenten, einschließlich des
Systemspeichers, mit der Prozessoreinheit verbindet. Der Systembus 23 kann
irgendeiner von mehreren Typen Busstrukturen sein, einschließlich eines
Speicherbus oder Speichersteuerers, eines Peripheriebus und eines örtlichen
Bus, der irgendeine einer Vielzahl von Busarchitekturen verwendet. Der
Systemspeicher enthält
einen Festspeicher (ROM) 24 und einen Arbeitsspeicher (RAM) 25.
Ein Basis-Eingabe/Ausgabe-System
(BIOS) 26, das die Basisroutinen enthält, die helfen, Information
zwischen Elementen innerhalb des Servers 20 zu übertragen,
wie beispielsweise während
des Hochlaufens, ist im ROM 24 gespeichert. Der Server 20 enthält weiterhin
ein Festplattenlaufwerk 27 zum Lesen aus einer und Schreiben
in eine Festplatte 60, ein Magnetplattenlaufwerk 28 zum
Lesen aus einer oder Schreiben in eine entnehmbare Magnetplatte 29 und ein
optisches Plattenlaufwerk 30 zum Lesen aus einer oder Schreiben
in eine entnehmbare optische Platte 21, wie beispielsweise
eine CD-ROM oder ein anderes optisches Medium.
-
Das
Festplattenlaufwerk 27, das Magnetplattenlaufwerk 28 und
das optische Plattenlaufwerk 30 sind mit dem Systembus 23 durch
eine Festplattenlaufwerksschnittstelle 32, eine Magnetplattenlaufwerksschnittstelle 33 bzw.
eine Optikplattenlaufwerksschnittstelle 34 verbunden. Die
Laufwerke und zugehörigen
Rechner-lesbaren Medien schaffen einen nichtflüchtigen Speicher für Rechner-lesbare
Befehle, Datenstrukturen, Programmmodule und andere Daten für den Server 20.
Obgleich die hier beschriebene beispielhafte Umgebung eine Festplatte 60,
eine entnehmbare Magnetplatte 29 und eine entnehmbare optische
Platte 31 verwendet, erkennt der Fachmann doch, dass andere
Arten Rechner-lesbarer Medien, die Daten speichern können, die
durch einen Rechner zugänglich
sind, wie beispielsweise Magnetkassetten, Flash- Speicherkarten, digitale Videoplatten,
Bernoulli-Kassetten, Arbeitsspeicher, Festspeicher oder dgl., in
der beispielhaften Betriebsumgebung ebenfalls verwendet werden können.
-
Auf
der Festplatte 60, der Magnetplatte 29, der optischen
Platte 21, dem ROM 24 oder RAM 25 können mehrere
Programmmodule gespeichert sein, einschließlich eines Betriebssystems 35,
eines oder mehrerer Serverprogramme 36, anderer Programmmodule 37 und
Programmdaten 38. Ein Benutzer kann Befehle und Informationen
in den Server 20 durch Eingabevorrichtungen eingeben, wie
beispielsweise eine Tastatur 40 und eine Zeigervorrichtung 42.
Andere (nicht gezeigte) Eingabevorrichtungen können umfassen: ein Mikrofon,
einen Joystick, ein Spielpad, eine Satellitenschüssel, einen Scanner oder dgl..
Diese und andere Eingabevorrichtungen werden häufig mit der Prozessoreinheit 21 über eine serielle
Schnittstelle 46 verbunden, die mit dem Systembus gekoppelt
ist, können
jedoch auch durch andere Schnittstellen, wie beispielsweise einen
Paralleleingang, einen Spieleingang oder einen universalen Seriellbus
(USB) angeschlossen werden. Ein Monitor oder andere Art Anzeigevorrichtung
kann ebenfalls mit dem Systembus 23 über eine Schnittstelle, wie beispielsweise
einen Videoadapter 48, verbunden sein.
-
Der
Server 20 arbeitet in einer vernetzten Umgebung unter Verwendung
logischer Verbindungen mit einem oder mehreren entfernten Klienten 50 oder
entfernten Servern 52 über
Netzwerkrouter 49. Die entfernten Klienten 50 können ein
Personalcomputer (PC), ein Netzwerk-PC, eine Gruppenvorrichtung
oder ein anderer gemeinsamer Netzwerkknoten sein und enthält typischerweise
viele der oben in Bezug auf den Server 20 beschriebenen
Elemente. Der entfernte Server 52 kann ein Postserver,
ein Spiegelserver, ein Webserver oder ein anderer gemeinsamer Netzwerkknoten
sein und enthält
typischerweise viele oder alle der oben in Bezug auf den Server 20 beschriebenen
Elemente. Der Netzwerkrouter 49 kann ein einarmiger Router,
ein Edge-Router, ein Multicast-Router, eine Softwareanwendung oder
ein anderer gemeinsamer Netzwerkknoten sein und bestimmt typischerweise
den nächsten
Punkt im Netzwerk, an den ein Paket geliefert werden sollte. Die
in 1 gezeigte logische Verbindung 51 kann
ein Ortsbereichsnetzwerk (LAN) und/oder ein Weitbereichsnetzwerk
(WAN) sein. Solche vernetzenden Umgebungen sind in Büros, unternehmensweiten Rechnernetzen,
Intranetzen und dem Internet allgemein üblich.
-
Wenn
in einer LAN- oder WAN-vernetzten Umgebung verwendet, ist der Server 20 mit
dem Netzwerk 51 über
eine Netzwerkschnittstelle oder Adapter 53 angeschlossen.
In einer vernetzten Umgebung können
Programmmodule, die in Bezug auf den Server 20 beschrieben
wurden, oder Teile davon in einer entfernten Speichervorrichtung
gespeichert sein, und zu ihnen kann über den Netzwerkrouter 49 zugegriffen
werden. Es ist anzumerken, dass die gezeigten Netz- Werkverbindungen
beispielhaft sind und andere Einrichtungen zum Einrichten einer Übertragungsverbindung
zwischen den Rechnern verwendet werden können.
-
In
der folgenden Beschreibung wird die Erfindung unter Bezugnahme auf
Handlungen und symbolische Darstellungen von Abläufen beschrieben, die durch
einen oder mehrere Rechner ausgeführt werden, soweit nicht anders
angegeben. Als solches versteht sich, dass solche Handlungen und
Abläufe, die
gelegentlich als vom Rechner ausgeführt bezeichnet werden, die
Manipulation von elektrischen Signalen durch die Prozessoreinheit
des Rechners enthalten, die Daten in einer strukturierten Form darstellen.
Diese Manipulation transformiert die Daten oder bewahrt sie an Orten
im Speichersystem des Rechners, der den Betrieb des Rechners in
einer Weise umkonfiguriert oder in anderer Weise ändert, die
der Fachmann gut versteht. Die Datenstrukturen, wo Daten bewahrt
werden, sind physikalische Orte des Speichers, die spezielle Eigenschaften
haben, die durch das Format der Daten bestimmt sind. Während diese
Erfindung im vorangehenden Kontext beschrieben worden ist, soll
damit jedoch nicht gemeint sein, dass sie einschränkend ist,
da der Fachmann erkennt, dass zahlreiche der Handlungen und Vorgänge, die
nachfolgend beschrieben werden, auch in Hardware ausgeführt werden
können.
-
Gemäß einem
Aspekt der Erfindung werden die Klienten in einem Satz S, die ein
Ereignis E zu empfangen wünschen,
unter vertrauenswürdigen Edge-Servern
so verteilt, dass jede Klient-Server-Verbindung
annähernd
die gleiche Klienten-Verbindungsabhängigkeitslatenz hat und somit
eine Zeit β für die Abgabe
hat, die nahe an einem verbindungabhängigen theoretischen Minimum
ist. Weiterhin ist beabsichtigt, das Ereignis S nicht vor einer
Anfangs- oder Freigabezeit t abzugeben, und nicht nach einem gewissen
späteren
Zeitpunkt t+d, nachdem das Ereignis E irrelevant wird oder die in
e enthaltene Information veraltet oder nicht mehr nützlich ist.
Wenn eine Netzwerkverstopfung Latenz einführt, kann dieser Aspekt der
Erfindung Abgabezeiten verbessern, was es sogar Klienten mit relativ
niedriger Verbindungsgeschwindigkeit ermöglicht, das Ereignis E vor t+d
zu empfangen. Da dieses dem Fachmann bekannt ist, ist Latenz als
die Zeit definiert, die ein Datenpaket benötigt, um von einem bezeichneten
Punkt zu einem anderen zu gelangen. Latenz oder Verzögerung ist
abhängig
von mehreren Variablen, einschließlich: Ausbreitung, Sendung,
Routing und andere Rechner- und Speicherverzögerungen. Ausbreitung spiegelt
die Geschwindigkeit wieder, mit der optische oder elektrische Signale
vom Ursprung zum Bestimmungspunkt laufen können; und Routing spiegelt
die Verzögerungen
wieder, die eingeführt
werden, wenn Gateway-Knoten Zeit benötigen, um die Paket- und Header-Information zu prüfen. Sowohl Ausbreitung
als auch Routing sind normalerweise kleine Latenzquellen, obgleich
in manchen Situationen Routingverzögerungen signifikant werden
können. Üblichere
Latenzquellen sind jene, die durch das Medium selbst eingeführt werden,
wie beispielsweise die theoretische Maximal-Sendegeschwindigkeit.
Die Sendegeschwindigkeit kann von der Geschwindigkeit abhängen, mit
der Server und Klienten Daten empfangen können. Beispielsweise können Einwählmodems
im Allgemeinen mit Geschwindigkeiten bis zu 56 Kbps übertragen,
während
Breitbandverbindungen mit Geschwindigkeiten kommunizieren können, die
1 Mbps übersteigen.
Die Sendegeschwindigkeit kann auch von dem Ausmaß abhängen, in dem ein Medium dadurch "verstopft" ist, dass viele
Benutzer die verfügbare
Bandbreite verbrauchen. Während
die Geschwindigkeit, mit der ein Klient Daten empfangen kann, relativ
unveränderbar sein
kann, weil sie von der Netzwerk-Hardware des Klienten und der Natur
der Endverbindung zwischen dem Klienten und seinem Serviceprovider
abhängt, können Bandbreitenprobleme,
Server-Verbindungs-Probleme sowie spezielle Routingprobleme häufig durch
Umverteilung der Klienten unter den verfügbaren vertrauenswürdigen Edge-Servern
beseitigt werden.
-
Nach
der Verteilung der Klienten derart, dass jedes Klienten-β eng am theoretischen
Minimum für diese
Klient-Server-Verbindung ist, wird E gleichzeitig an die Klienten
zu einem gewissen Zeitpunkt t oder sogar danach gesandt, so dass
es in seiner Gesamtheit vor dem Zeitpunkt t+d ankommt. 2 zeigt die
Umgebung für
eine exemplarische Ausführungsform
dieser Erfindung. Diese Ausführungsform
sieht ein Netzwerk 200 vor, das einen Ursprungs-Server 210,
in dem das Ereignis E ursprünglich
gespeichert ist, und mehrere vertrauenswürdige Edge-Server 220a,
b, c und d umfasst, die Inhalt an ihre logisch angeschlossenen Klienten 50 liefern.
Ein vertrauenswürdiger
Edge-Server 220 ist ein Server, von dem man vertrauen kann,
dass er Information nicht vorzeitig abgibt, und der logisch mit
Klienten 50 verbunden ist. Ein vertrauenswürdiger Edge-Server 220 ist
also die letzte Stufe vor dem Verlassen des Satzes Server, der das
vertrauenswürdige
Abgabenetz bildet. Das vertrauenswürdige Abgabenetz ist einfach
ein Overlay-Netz,
das vorhandene Netzwerkverbindungen und Server bei der Verteilung
eines Ereignisses an Klienten ausnutzen kann. Während diese Netzwerkverbindungen
und Server gleichzeitig ungleichartige Funktionalität liefern
können,
ermöglicht
das vertrauenswürdige
Abgabe-Netzwerkprogramm die Kommunikation zwischen vertrauenswürdigen Edge-Servern,
Ursprungs-Servern
und Klienten. Das Netz aus vertrauenswürdigen Edge-Servern 220 ist daher
nicht auf irgendeinen speziellen Satz von Servern beschränkt. Vielmehr
können
vertrauenswürdige
Edge-Server 220 von externen Servern 230 in Anspruch
genommen werden, wenn es notwendig ist. Wenn diese Server in Anspruch
genommen werden, können
sie authentifiziert werden, um sicherzustellen, dass man ihnen vertrauen
kann, dass sie das Ereignis E nicht vorzeitig freigeben und ihre
Takte mit dem Rest des Netzwerks synchronisiert werden können. Diese
Taktsynchronisierung kann unter Verwendung allgemein bekannter Techniken
durchgeführt werden,
wie beispielsweise durch das Network Time Protocol (NTP) oder andere
Werkzeuge, die gegenwärtig
in vielen Betriebssystemen eingeschlossen sind. Die vertrauenswürdigen Edge-Server 220b können auch
mit anderen vertrauenswürdigen Edge-Servern 200d über logische Verbindungen 238 verbunden
sein, um somit an Klienten 50 und an andere vertrauenswürdige Edge-Server 220d zu
verteilen. Wie der Fachmann versteht, können die logischen Verbindungen 218 zwischen
dem Ursprungs-Server 210 und vertrauenswürdigen Edge-Servern 220,
die logischen Verbindungen 228 zwischen den vertrauenswürdigen Edge-Servern 220 und
Klienten 50, und die logischen Verbindungen 238 zwischen
vertrauenswürdigen
Edge-Servern viele verschiedene Verbindungen über andere Server und Router
umfassen, die in 2 nicht dargestellt sind, einschließlich des
Internetserviceproviders (ISP) des speziellen Klienten 50 oder
anderer Netzwerkserviceprovider.
-
Innerhalb
dieser vernetzten Umgebung werden die Klienten 50 unter
den vertrauenswürdigen Edge-Servern 220 auf
der Grundlage von empirischen und theoretischen Schätzwerten
der Zeit β zur Abgabe
verteilt. Dann wird zu einem gewissen Zeitpunkt vor dem Zeitpunkt
t das Ereignis E von dem Ursprungsserver 210 zu den vertrauenswürdigen Edge-Servern 220 verteilt.
Um den Netzwerkverkehr minimal zu halten, kann der Ursprungsserver 210 das Ereignis
E zu unterschiedlichen Zeitpunkten an unterschiedliche vertrauenswürdige Edge-Server 220 verteilen,
oder der Ursprungsserver 210 kann das Ereignis E an alle
vertrauenswürdigen
Edge-Server 220 gleichzeitig abgeben. Schließlich können zu
dem Zeitpunkt t oder sogar danach die vertrauenswürdigen Edge-Server 220 den
Inhalt E an ihre entsprechenden Klienten 50 abgeben, so
dass es in seiner Gesamtheit nach t ankommt.
-
Gemäß einem
weiteren, komplementären Aspekt
der vorliegenden Erfindung kann das Ereignis E an unterschiedliche
Klienten und/oder vertrauenswürdige
Edge-Server zu unterschiedlichen Zeiten abgegeben werden, so dass
mehr Klienten das Ereignis E innerhalb des Zeitfensters [t, t+d]
empfangen. In solchen Situationen, in denen das Zeitfenster für die Abgabe
relativ klein im Vergleich zu der zeitlichen Variation ist, kann
eine Staffelung von Abgabezeiten es mehr Klienten ermöglichen,
die Sendung innerhalb des Zeitfensters zu empfangen. Dies gilt speziell, wenn
die zeitliche Variation für
die Abgabe durch die oben allgemein beschriebenen Umverteilungsmechanismen
nicht beseitigt werden können.
Generell kann eine ungefähre
Abgabezeit ? für
jede Klient-Server-Verbindung abgeschätzt oder abgeleitet werden.
Jeder vertrauenswürdige
Edge-Server kann dann die maximale Abgabezeit ?Max und
die minimale Abgabezeit ?Min für seinen
Klientensatz bestimmen. Unter Verwendung der maximalen Abgabezeit
kann dann das Ereignis E an jeden entsprechenden vertrauenswürdigen Edge-Server
vor t~?Max gesendet werden. In Abhängigkeit
von den speziellen Fähigkeiten
des Netzwerks und den besonderen Anwendungsnotwendigkeiten kann
der vertrauenswürdige Edge-Server
dann die Abgabe von E an seine Klienten bei t-?Min einleiten
oder kann die Abgabe zu unterschiedlichen Zeiten t-? für jeden
Klienten einleiten, wobei die Abgabezeit für jede Klient-Server-Verbindung
eingestellt wird. Jeder Klient kann daher E in seiner Gesamtheit
ungefähr
zum Zeitpunkt t und vor dem Zeitpunkt t+d empfangen. Alternativ
kann der vertrauenswürdige
Edge-Server die Abgabe von E an seine Klienten zu einer gewissen
Zeit nach t-?Min aber vor t+d-?Min einleiten.
In einer solchen Situation kann jeder Klient das Ereignis E in seiner
Gesamtheit zu ungefähr
dem gleichen Zeitpunkt innerhalb des Zeitfensters [t, t+d] empfangen.
-
Durch
Senden des Ereignisses an den Rand des vertrauenswürdigen Netzwerks,
die vertrauenswürdigen
Edge-Server, ist die Zeit, die notwendig ist, das Ereignis zwischen
dem Ursprungs-Server und dem vertrauenswürdigen Edge-Server zu senden, ausgewiesen
als vor der Zeit liegend, zu welchem das Ereignis an die Klienten
freizugeben ist. Auf diese Weise werden die Komplexitäten und
Möglichkeiten
einer Netzverstopfung in der Verbindung zwischen dem Ursprungsserver
und den vertrauenswürdigen
Edge-Servern aus den Latenzberechnungen entfernt, was einfachere
und genauere Berechnungen liefert, die nur den letzten Satz Verbindungen zwischen
den vertrauenswürdigen
Edge-Servern und ihren Klienten einbezieht. Weil die vertrauenswürdigen Edge-Server
physikalisch enger bei den Klienten angeordnet sind, ist ferner
die Möglichkeit
einer physikalischen Netzunterbrechung, wie beispielsweise durch
ein beschädigtes
Kabel oder einen Stromausfall, der die Verteilung des Ereignisses
an die Klienten verhindert, herabgesetzt.
-
Zurückkommend
auf 2 können
die vertrauenswürdigen
Edge-Server 220 eine Datenbank aus abgeschätzten Abgabezeiten
? für jeden
ihrer Klienten 50 erarbeiten. Jeder vertrauenswürdige Edge-Server 220 kann
das Maximum-?, ?Max und das Minimum-?, ?Min aller der ? für seinen Satz Klienten 50 bestimmen
und kann dann eine Anforderung an den Ursprungs-Server 210 senden,
das Ereignis E an den vertrauenswürdigen Edge-Server 220 vor
t-?Max zu übertragen. Nach dem Empfang
von E kann jeder vertrauenswürdige
Edge-Server 220 entweder gleichzeitig die Sendung E zu
einem Zeitpunkt t-?Min oder später an die
Klienten 50 einleiten oder die Sendung von E an jeden seiner
Klienten 50 zu einem Zeitpunkt t-? oder später einleiten,
so dass die abgeschätzte
Abgabezeit ? in Betracht gezogen wird. Wenn die Server 220 diesen
letztgenannten Betrieb ausführen,
kann jeder der interessierten Klienten 50 das Ereignis
sehr nahe an t empfangen, während
der erstgenannte Ablauf zu einer mehr variablen Ankunftszeit führt. Dieses
Verfahren kann es mehreren unterschiedlich gelegenen und angeschlossenen
Klienten 50 ermöglichen,
ein Ereignis E in seiner Gesamtheit etwa zum Zeitpunkt t zu empfangen,
wobei eine Abschätzung
ihrer entsprechenden Abgabezeiten eingesetzt wird.
-
Um
sich an der Erfindung zu halten, die Netzwerkumgebung von 2 zeigt
eine beispielhafte vernetzte Umgebung, in der die vorliegende Erfindung
ausgeführt
werden kann. Die vorliegende Erfindung soll jedoch nicht auf irgendwelche
speziellen vernetzenden Protokolle oder Layouts beschränkt verstanden
werden. Sie kann ausgeführt
werden unter Verwendung von TCP/IP- Protokollen, AppleTalk-Protokollen,
Novell-Protokollen sowie, u.a., auf einem Content Delivery Network.
Diese Protokolle liefern selbstverständlich unterschiedliche Grade
an Funktionalität.
Beispielsweise kann in einigen Netzwerken die Server-Software eine
gegebene Funktion ausführen,
während
in anderen Netzwerken die Server-Software von dem unterliegenden
Protokoll abhängig
sein können,
um diese Funktionalität
zu bieten. Wenn die beispielhaften Ausführungsformen der vorliegenden
Erfindung beschrieben werden, kann die besondere Information oder
Funktionalität
durch die unterliegenden Protokolle geliefert werden oder sie kann
durch Software in einer dem Fachmann bekannten Art geliefert werden.
Die zugrunde liegenden Verfahren bleiben unverändert und können einfach vorhandene Funktionen
einschließen,
um die erforderlichen Aufgaben zu erfüllen.
-
Wir
wenden uns nun der 3 zu. In ihr ist eine graphische
Darstellung der Wirkung des Verteilungsverfahrens der vorliegenden
Erfindung gezeigt. Das Balkendiagramm 310 stellt eine spezielle
Klientengruppe eines vertrauenswürdigen
Edge-Servers dar. So kann dieses beispielsweise einen Server 220a mit
hunderten von mit ihm logisch verbundenen Klienten 50 darstellen.
Die Abgabezeit β für jeden
Klienten wird durch unten beschriebene Verfahren abgeschätzt. In
diesem Balkendiagramm sind die Abgabezeiten (die normalerweise eine
kontinuierliche Funktion sein würden)
so abgeschätzt
worden, dass sie in bequeme logarithmische Bereiche unter 200 Sekunden
und in lineare Bereiche oberhalb fallen. So hat die erste Klientengruppe 311 Abgabezeiten
innerhalb des Zeitbereichs von 0 s bis 1,99 s, die zweite 312 hat
Abgabezeiten innerhalb des Zeitbereichs von 2 s bis 9,99 s usw..
Wie man sehen kann, hat dieser spezielle vertrauenswürdige Edge-Server
einen ziemlich breiten Bereich von Latenzen.
-
Latenz
kann mehreren unterschiedlichen Quellen zuzuschreiben sein, wie
oben im Detail beschrieben wurde. 3 zeigt
einige Latenzquellen. Zwischen 0 und 20 Sekunden empfangen nur Breitbandklienten
das Ereignis, wobei keine anderen Latenzen angenommen werden. Während einige
Breitbandklienten das Ereignis nach 20 Sekunden wegen Netzwerkverstopfung
und anderer Netzwerkausfälle empfangen
mögen,
können
nur Klienten, die über eine
Breitbandverbindung angeschlossen sind, eine Abgabezeit von weniger
als 20 Sekunden haben. Von 20 Sekunden bis etwa 200 Sekunden kann
der Bereich für "normale" Abgabezeiten zur
Einwahl von Klienten sein. Die untere Grenze, 20 Sekunden, stellt das
theoretische Minimum für
die Abgabezeit dar. Da es jedoch praktisch schwierig ist, diesen
Standard zu erzielen, und da es eine Vielzahl unterschiedlicher Einwahlverbindungsgeschwindigkeiten
gibt, ist ein Zeitbereich gegeben, innerhalb dessen es für einen Einwahlbenutzer
zufrieden stellend ist, das Ereignis zu empfangen. Selbstverständlich können auch Breitbandbenutzer
vorhanden sein, die das Ereignis aufgrund anderer Latenzen zwischen
20 und 200 Sekunden empfangen. Obgleich zwei Klienten in 313 fallen
können,
kann einer ein Hochgeschwindigkeitsbenutzer sein, der über ein mäßig verstopftes
Netzwerk angeschlossen ist, das die für Downloads verfügbare Bandbreite
begrenzt, und der andere kann ein einfach an einen Internetserviceprovider über ein 56
Kbps-Modem Angeschlossener
sein. Für
die Klienten im 315-317-Bereich ist die größere Verzögerung hauptsächlich durch
Netzwerk- und Serververstopfung verursacht und kann die Abgabezeiten
sowohl für
Breitband- als auch für
Einwahlklienten beeinträchtigen.
Die Abgabezeiten für
diese Gruppe verzögerter,
heterogener Klienten können
durch Umverteilung derselben unter den verschiedenen vertrauenswürdigen Edge-Servern
vermindert werden, von denen sie das Ereignis über einen weniger verstopften
Pfad empfangen können.
Wenn somit beispielsweise ein Netzwerk verstopft ist oder ein besonders
langsamer Netzwerkrouter zwischen dem Server 220a und einem
seiner Klienten 50 vorhanden ist, dann kann ein anderer
vertrauenswürdiger Edge-Server 220b mit
einer wirksameren Route zum Klienten vorhanden sein, der diesen
Flaschenhals überbrückt. Auf
diese Weise kann eine lange Latenz, die mit einer Klient-Server-Verbindung einhergeht, durch
Wechsel der Server beseitigt werden. Der Bereich von Abgabezeiten
kann somit viel enger und besser beherrschbar gemacht werden, Indern
einfach die Klienten unter den verfügbaren vertrauenswürdigen Edge-Servern
umverteilt werden, insbesondere jene Klienten, mit Abgabezeiten,
die sehr viel länger
als 200 Sekunden sind, wie in 3 gezeigt.
-
Durch
Verschieben von Klienten zwischen unterschiedlichen Servern in dem
vertrauenswürdigen
Abgabenetzwerk können
die vom Klientenanschluss unabhängigen
Latenzen einer jeden Klient-Server-Verbindung vermindert werden,
so dass die Abgabezeiten β sich
ihren theoretischen Minima annähern.
Dieses ist graphisch im Balkendiagramm 320 gezeigt. Der
gezeigte vertrauenswürdige Edge-Server
hatte ungefähr
450 Klienten, bevor die Umverteilung stattfand. Diesen Klienten
mochte zu Anfang dieser spezielle Server aus mehreren unterschiedlichen
Gründen
zugewiesen worden sein (beispielsweise könnte der Server durch den Klienten ohne
Kenntnis, wie verstopft der Weg ist, gewählt worden sein). Sobald jedoch
die Umverteilung stattfindet, hat dieser spezielle Server nur 370
Klienten, ein Nettoverlust von 70 Klienten, was weniger Verstopfung
und eine Vergrößerung der
Geschwindigkeit ergibt, mit der die verbliebenen Klienten das Ereignis
empfangen können.
-
Vor
der Verteilung würden
andere vertrauenswürdige
Edge-Server unterschiedliche Verteilungen von Klienten-Abgabezeiten
haben, einige gleiche und viele unterschiedliche gegenüber diesem gezeigten
Balkendiagramm 310. Nach der Umverteilung können die
vertrauenswürdigen
Edge-Server jedoch Verteilungen von Klienten-Abgabezeiten haben,
die ähnlicher
jener sind, die im Balkendiagramm 320 gezeigt sind, die
nur leicht entsprechend der Anzahl und den Typ von Klienten unterschiedlich
sind, die mit dem speziellen Server verbunden sind. Der Ursprungs-Server
kann dann die Aussendungen an verschiedene Server und verschiedene
Klien ten zu unterschiedlichen Zeiten entsprechend dem Verfahren
organisieren, das graphisch in 4 dargestellt und
unten beschrieben ist, oder die Aussendung kann gleichzeitig erfolgen.
Je nach den Notwendigkeiten der speziellen Anwendung und unter Verwendung
des obigen Beispiels kann die Aussendung vor dem Zeitpunkt t beginnen,
wie beispielsweise zum Zeitpunkt t-200 s oder t-2 s. Alternativ könnte die Aussendung
zum Zeitpunkt t oder auch sogar nach t beginnen. In einigen Situationen
kann es wünschenswert
sein, dass das Ereignis bei allen Klienten zum Zeitpunkt t eintrifft,
ohne Besorgnis, falls einige Klienten es zuvor empfangen. Unter
Verwendung des Beispiels von 3 könnte die
Aussendung dann bei t-200 s eingeleitet werden, und viele Klienten
empfangen dann das Ereignis vor dem Zeitpunkt t. In solchen Situationen,
in denen es unerwünscht ist,
dass ein Klient das Ereignis in seiner Gesamtheit vor t empfängt, könnte die
Aussendung bei t-2 s unter Verwendung des in 3 gezeigten
Beispiels eingeleitet werden. Das Ereignis könnte dann bei den Klienten
zwischen t und t+198 s eintreffen. Schließlich, in solchen Situationen,
in denen es äußerst wichtig ist,
dass ein Klient das Ereignis in seiner Gesamtheit nicht vor t empfängt oder
wo die wichtigere Forderung ist, dass keine Klienten das Ereignis
in seiner Gesamtheit vor t+d empfangen, kann die Aussendung zu einem
Zeitpunkt nach t bis hin zu t+d-200 s eingeleitet werden (unter
der Annahme, dass d größer als
200 Sekunden ist). Die Zeit zum Einleiten der Übertragung kann sich entsprechend
der Anwendung ändern
und wird häufig
die unten unter Bezugnahme auf die 4a und 4b beschriebenen Verfahren
verwendet, um genauere Ergebnisse zu erzielen. Die vorliegende Erfindung
kann somit das ursprüngliche
Problem lösen,
dass ein Klient ein Ereignis E innerhalb eines Zeitfensters [t,
t+d] empfängt.
Um einem kleineren Zeitfenster entgegenzukommen, kann das folgende
Verfahren auch zusammen mit der oben beschriebenen Umverteilung
von Klienten verwendet werden.
-
Die 4a und 4b sind
graphische Darstellung der Wirkung des gestaffelten Abgabeverfahrens
der vorliegenden Erfindung. Das Balkendiagramm von 4a kann
eine Klientengruppe eines speziellen vertrauenswürdigen Edge-Servers darstellen.
In einer weiteren Ausführungsform,
wie in 4b gezeigt, kann das Balkendiagramm 430 die Klienten
eines vertrauenswürdigen
Servers darstellen, während
das Balkendiagramm 450 die Klienten eines weiteren vertrauenswürdigen Edge-Servers darstellt.
Somit können
beispielsweise die Balkendiagramme 430 und 450 in 4b die
Server 220a bzw. 220b darstellen, wobei die Klienten
des Servers 220a großteils
Abgabezeiten unter 200 Sekunden haben und die Klienten des Servers 220b großteils Abgabezeiten
oberhalb von 450 Sekunden haben. In beiden Realisierungen wird die
Abgabezeit β für jeden
Klienten durch unten beschriebene Verfahren abgeschätzt. In
den 4a und 4b sind
die Abgabezeiten (die normalerweise eine zusammenhängende Funktion
sein würden)
so angenähert
worden, dass sie in bequeme logarithmische Bereiche unter 200 Sekunden
und lineare Bereiche oberhalb davon fallen. So hat die erste Gruppe
Klienten 431 und 417 Abgabezeiten im Zeitbereich
von 0 s bis 1,99 s, die zweite Gruppe 432 und 416 hat
Abgabezeiten im Zeitbereich von 2 s bis 9,99 s usw..
-
Nach
der Abschätzung
der Abgabezeiten können
die vertrauenswürdigen
Edge-Server die Abgabe an jeden Klienten auf der Grundlage ihrer
individuellen Abgabezeiten staffeln, oder jeder vertrauenswürdige Edge-Server
kann das Ereignis gleichzeitig an seine Klienten auf der Grundlage
ihrer Abgabezeiten senden. Das erstgenannte Verfahren zur Abgabe
kann sicherstellen, dass jeder Klient das Ereignis in seiner Gesamtheit
zu einem Zeitpunkt sehr dicht an t empfängt, jedoch auf Kosten eines
Ressourcen-intensiveren Verfahrens. Während das erstgenannte Verfahren
augenscheinlich unter gewissen Umständen vorzuziehen ist, ist es
in manchen Protokollen und Anwendungseinstellungen nicht ausführbar.
-
Zurückkommend
auf 4a ist die Abgabe für jeden Klienten auf der Grundlage
seiner individuellen Abgabezeit gestaffelt. Dieses kann vorsehen, dass
jeder Klienten das Ereignis ungefähr zur Zeit t empfängt. Dieses
ist graphisch im Balkendiagramm 410 von 4a gezeigt.
Der vertrauenswürdige Edge-Server
hat etwa 450 Klienten in den Bereichen 411 bis 417,
die auf den Empfang des Ereignisses E warten, mit unterschiedlichen
Latenzen und entsprechenden Abgabezeiten. Der vertrauenswürdige Edge-Server
schätzt
diese Abgabezeiten für
jeden Klienten ab und leitet die Abgabe an jeden Klienten auf der
Grundlage dieser geschätzten
Abgabezeiten ein. Das Balkendiagramm 410 stellt eine Zeitlinie
jener Zeiten dar, zu denen die Abgabe eingeleitet wird, was wiederum
auf den Abgabezeiten für
jene entsprechenden Klienten basiert. Somit wird für jene Klienten
mit längeren
Abgabezeiten, wie beispielsweise die Klienten in 411, die
Abgabe früher
eingeleitet, um der Extralatenz Rechnung zu tragen. Wenn zwanzig Klienten
in 411 vorhanden sind, die einen Bereich von Abgabezeiten
von 650 bis 749 Sekunden haben, leitet der Server die Abgabe an
diese Klienten zwischen t-749 und t-650 Sekunden ein, je nach eines jeden
Klienten Abgabezeit. Die abgeschätzten
Abgabezeiten werden somit in die Abgezeitentscheidungen für jeden
Klienten einbezogen.
-
Theoretisch
sollte jeder Klient das Ereignis E in seiner Gesamtheit zum exakten
Zeitpunkt t empfangen. Die einzigen praktischen Fehler werden durch
Abschätzungsungenauigkeiten
und Schwankungen der Latenz eingeführt, die von nicht in Betracht
gezogenen Faktoren herrühren.
Die Quellen dieser Ungenauigkeiten werden klar, wenn der Abschätzvorgang
weiter unten vollständiger
erläutert wird.
-
Es
wird wieder auf 4b Bezug genommen. Jeder vertrauenswürdige Edge-Server
kann das Ereignis E an alle seiner Klienten gleichzeitig senden,
obgleich andere vertrauenswürdige Edge-Server
das Ereignis zum gleichen Zeitpunkt senden mögen, oder auch nicht. In dieser Situation kann
ein einzelner Breitbandklient an einem Server mit mehreren Einwählklienten
verursachen, dass die Einwählklienten
das Ereignis in seiner Gesamtheit lange nach t empfangen. Es kann
daher vorteilhaft sein, zunächst
die Klienten unter den verschiedenen vertrauenswürdigen Edge-Servern wenigstens
annähernd
entsprechend ihrer Abgabezeiten zu organisieren.
-
Dieses
kann gemäß der vorliegenden
Erfindung ausgeführt
werden, oder durch angenähertes Abteilen
der Hochgeschwindigkeitsverbindungsklienten von den Niedriggeschwindigkeitsverbindungsklienten
auf unterschiedliche vertrauenswürdige Edge-Server.
In 4b beispielsweise sind die Klienten auf die Server 220a und 220b so
aufgeteilt, dass die Klienten 431 bis 434 höherer Geschwindigkeit
auf dem Server 220a sind und die Klienten 451 bis 453 niedrigerer
Geschwindigkeit auf dem Server 220b sind. Gemäß dem in 4b gezeigten
Beispiel kann daher der Server 220a die Sendung zum Zeitpunkt
t einleiten, und der Server 220b kann die Sendung 450 Sekunden
davor, bei t-450 Sekunden einleiten (unter der Annahme, dass die
kürzeste
Abgabezeit für
einen Klienten 450 auf dem Server 220b größer oder
gleich 450 Sekunden ist). Unter Verwendung dieser Sendezeiten sollten
die Klienten des Servers 220a das Ereignis in seiner Gesamtheit
zum Zeitpunkt t+199 s empfangen, und die Klienten des Servers 220b sollten
das Ereignis in seiner Gesamtheit zum Zeitpunkt t+299 s empfangen.
Während
dieses Verfahren in dem Ausmaße
unvollkommen ist, wie anomale Klienten an jedem Server vorhanden sind,
kann es doch eine signifikante Verbesserung gegenüber dem
unterschiedlosen Senden an alle Klienten zum Zeitpunkt t sein.
-
Es
wird nun auf die 5 und 6 Bezug genommen,
in denen Flussdiagramme dargestellt sind, die beispielhafte Ausführungsformen
der zwei beanspruchten Verfahren zeigen, die von der vorliegenden
Erfindung angegeben werden.
-
In
den 5 und 6 ist nicht explizit gezeigt,
dass das von der vorliegenden Erfindung behandelte Ereignis E als
eine Anzahl von Datenpaketen klassifiziert werden kann. Beispielsweise
kann E eine einfache Textdatei, eine Gruppe von Bits sein, die den
Schlüssel
eines kryptographischen Kodes darstellen, oder sogar ein langer
Spielfilm sein. Das Ereignis E sollte bei den interessierten Klienten
nicht früher
als zum Zeitpunkt t und nicht später
als zum Zeitpunkt t+d ankommen. In manchen Situationen kann t die
mehr einschränkende
Bedingung sein (beispielsweise wenn die Zeit t relativ dicht bei
der Augenblickszeit liegt), und in anderen kann die Größe des Zeitfenster
d mehr einschränkend
sein (beispielsweise wenn alle Klienten das Ereignis E zu etwa dem
gleichen Zeitpunkt empfangen sollten). Es gibt zahlreiche Beispiele
dafür,
wann Information, die über
das Internet ausgesendet wird, diese Anforderungen erfüllen sollte.
Ein Beispiel sind die Wirtschaftsberichte des Handelsministeriums.
Wenn wenige Klienten in der Lage wären, diese Wirtschaftsberichte
vor anderen Klienten zu empfangen und zu verarbeiten, dann wären sie
in der Lage, mit dieser Information zu arbeiten (beispielsweise
um Aktien zu kaufen oder zu verkaufen), und würden einen unfairen Vorteil
daraus beziehen. Ein weiteres Beispiel kann Wetterinformation sein,
die auf einer Wetterseite geliefert wird. Alle interessierten Klienten
sollten diese Information zeitgerecht empfangen, wenn die Wetterinformation
alle fünf
Minuten aktualisiert wird, sollten Klienten die alte Information
nach t+5 Minuten nicht mehr empfangen. In diesem Beispiel ist es wichtig,
dass alle Klienten die Wetterinformation innerhalb des Fünf-Minuten-Fensters
empfangen.
-
Es
wird nochmals auf 5 Bezug genommen. Die Größe des Ereignisses
kann im Schritt 510 bestimmt werden. Während Schritt 510 als
der Anfangsschritt gezeigt ist, kann er an jedem Punkt vor Schritt 540 eingefügt werden,
wenn die Größe dazu verwendet
wird, die Abgabezeit zu bestimmen. Die Bestimmung der Größe eines
Ereignisses ist eine Aufgabe, die der Fachmann gut versteht, und
sie kann durch den Ursprungs-Server ausgeführt werden. Die meisten Betriebssysteme
haben eine integrierte Funktionalität, die die Größe einer
speziellen Datei sehr schnell bestimmen kann, obgleich diese Funktionalität durch
Anwendungssoftware dupliziert werden kann. Sobald die Größe des Ereignisses
bestimmt worden ist, kann sie auf dem Ursprungs-Server für den späteren Gebrauch
gespeichert werden.
-
Im
Schritt 515 kann der Satz S interessierter Klienten bestimmt
werden. D.h., der Satz S Klienten, die das Ereignis E empfangen
sollten, kann zusammengestellt werden. In Abhängigkeit von dem speziellen
Ereignis E und den verwendeten Einrichtungen kann S auf mehrere
unterschiedliche Weisen zusammengestellt werden. Beispielsweise
sollte ein Satz S Klienten, die ständig Ereignisse von einem speziellen Ursprungs-Server
benötigen,
zentral verwaltet werden (vielleicht mit einem Verwalter, der Klienten
manuell hinzufügt
und abzieht), und würde
sich sehr selten ändern.
In einer Ausweitung des oben beschriebenen Wetterbeispiels kann
der Ursprungs-Server das Ereignis an alle Klienten senden, die es
anfordern. Diese Klienten könnten
eine geeignet gebildete Anfrage senden, um das Ereignis E zu empfangen, und
der Server könnte
unterschiedslos diese Klienten dem Satz S hinzufügen. In einem noch weiteren Beispiel
könnte
ein Ereignis E vorhanden sein, das für einige Rechner verfügbar sein
sollte, und für
andere nicht. Solche Benutzer, die E zu empfangen wünschen,
könnten
eine geeignet gebildete Anforderung für den Empfang des Ereignisses
E senden, wie oben, jedoch könnte
der Server dann nur solche Klienten hinzufügen, die in geeigneter Weise
authentifiziert sind. Unter Verwendung dieser und anderer nicht
beschriebener Verfahren kann im Schritt 515 ein Satz S
zulässiger,
interessierter Klienten gebildet werden. Die Information, die den
Satz S bestimmt, kann am Ursprungs-Server 210, an den vertrauenswürdigen Edge-Servern 220a,
b und c oder an gesondert gelegenen Servern (beispielsweise im Falle von
Multicast-Ereignisse) gespeichert sein. So lange Information über die
Klienten im Satz S durch das gesamte Netzwerk geleitet werden kann,
sieht die vorliegende Erfindung keinen speziellen Speicherbereich
für die
Information über
den Satz S vor.
-
Wie
in 5 gezeigt, fragt das durch die vorliegende Erfindung
beanspruchte Verfahren als nächstes
jede Klient-Server-Verbindung ab, um seine Latenz zu schätzen. Wie
durch den in
-
5 umrissenen
Algorithmus breit dargestellt ist, gibt es zwei Einrichtungen zum
Schätzen der
Latenz: empirische und theroretisch/mathematische. Die meisten Verfahren
zum Abschätzen
von Latenz können
diese zwei Einrichtungen verschmelzen, um die genaueste Abschätzung der
Latenz zu liefern. In einer bevorzugten Ausführungsform kann jede Klient-Server-Verbindung zunächst auf
eine Verbindungsgeschichte im Schritt 525 geprüft werden. Wenn
zuvor eine Ereignis-Übertragung
zwischen diesen zwei Rechnern stattgefunden hatte, kann diese Geschichte
beim Latenzschätzprozess
verwendet werden. In einer weiteren Ausführungsform kann die historische
Verbindung zwischen dem vertrauenswürdigen Edge-Server und einem
Rechner "nahe" dem Klienten (d.h.
mit demselben ISP verbunden) auch beim Latenzschätzvorgang verwendet werden. In
einer noch weiteren Ausführungsform
kann die historische Verbindung zwischen einem anderen vertrauenswürdigen Edge-Server
und dem speziellen Klienten in dem Latenzschätzvorgang verwendet werden.
Eine noch weitere Ausführungsform
kann eine historische Verbindung zwischen einem anderen vertrauenswürdigen Edge-Server
und einem Rechner im Latenzschätzvorgang
verwenden, der logisch "eng" am Klienten liegt.
-
Wenn
eine relevante Verbindungsgeschichte für die spezielle Klient-vertrauenswürdiger-Edge-Server-Paarung vorhanden
ist, kann diese Geschichte dazu verwendet werden, im Schritt 530 die
Latenz zu schätzen.
In der in 5 gezeigten Ausführungsform
kann die Verbindungsgeschichte eine historische Latenz ergeben,
die als der Schätzwert
für die
vorliegende Latenz verwendet werden kann. Daten bezüglich Zeit,
Datum, Durchschnittsverkehr, der die Sendung umgibt, Ereignistyp,
Ereignisgröße, Anzahl
der Klienten und andere Eigenschaften der Verbindungsgeschichte
können
ebenfalls dazu verwendet werden, die vorliegende Latenz genauer
zu schätzen.
In Abhängigkeit
von der Netzwerk-Infrastruktur, der verfügbaren Information und den
Notwendigkeiten der speziellen Anwendung kann die Schätzung der
vorliegenden Latenz unter Verwendung historischer Daten mehr oder
weniger genau sein.
-
Wenn
keine Verbindungsgeschichte vorhanden ist, können Netzwerkfunktionen dazu
verwendet werden, die vorliegende Latenz zu schätzen, Schritt 535.
Unter Verwendung eines relativ unkomplizierten Satzes von Protokollen,
wie TCP/IP, können
viele Daten, die durch die Protokollfunktionen geliefert werden,
durch eine Anwendung interpretiert werden, um die Latenz zu schätzen. Wenn
andererseits in einem komplizierten Netzwerk ausgeführt, wie
beispielsweise einem Content Delivery Network, können Netzwerkfunktionen zum
Schätzen
der Latenz vorbe stimmt sein. In diesen Netzwerken kann eine Anwendung
einfach diese zugrunde liegende Funktionalität verwenden, um die Latenz
zu schätzen.
In einer Ausführungsform
der vorliegenden Erfindung kann ein relativ unkomplizierter Satz
an Protokollen, wie TCP/IP, verwendet werden. Unter Verwendung dieser
Protokolle kann der vertrauenswürdige Edge-Server
viele grundlegende Netzwerkfunktionen ausführen, wie beispielsweise das
Anklopfen beim Klienten, um die Ansprechzeit zu bestimmen, das Messen
des Anteils verloren gegangener Pakete, das Messen der Warteschleifenlänge an der
Klientenmaschine, das Erhalten von Information von den Routern im
Netzwerkverkehr zwischen dem Klienten und sich selbst, das Senden
von Musterereignissen, zum Ermitteln der ausgelösten Hin- und Rück-Zeit, das
Bestimmen von Kanälen,
die relativ schwach sind zwischen sich selbst und dem Klienten über die Langzeit,
das Bestimmen von Kurzzeitverstopfung auf der Grundlage der Verkehrsmetrik,
die Daten von dieser Batterie Tests können dazu verwendet werden,
die vorliegende Latenz zu schätzen.
Die speziellen Verfahren zum Schätzen
von Latenz hängen selbstverständlich von
den Notwendigkeiten der Anwendung und den speziellen Ausführungseinrichtungen
ab.
-
In
der bevorzugten Ausführungsform
der vorliegenden Erfindung, die in 5 umrissen
ist, kann die historische Schätztechnik 530 eine
Alternative zur Netzwerkschätztechnik 535 sein.
In anderen Anwendungen können
diese Techniken jedoch einander ergänzen. Die vorliegenden Netzwerkdaten
und die Langzeit-Netzwerkstatistiken können dazu verwendet werden,
die historische Analyse zu verbessern. Mit verbesserter Hardware
und verbesserter Softwarealgorithmen kann selbstverständlich die
Genauigkeit jeder Technik verbessert werden.
-
Nach
Schätzung
der Latenz können
die Größe des Ereignisses
und die geschätzte
Latenz dazu verwendet werden, die Abgabezeit für diese Klient-Server-Verbindung
im Schritt 540 zu schätzen. Dieser
Schritt kann dann für
jeden Klienten im Satz S wiederholt werden, Schritt 550,
bis jede Klient-Server-Verbindung eine zugehörige Abgabezeit hat, Schritt 545.
-
Nach
dem Schätzen
der Abgabezeit für
jede Klient-Server-Verbindung können
die Ursprungs- oder
vertrauenswürdigen
Edge-Server diese Abgabezeiten mit theoretischen Minima vergleichen, Schritt 555.
Wie oben beschrieben, hängt
das theoretische Minimum einer Klient-Server-Verbindung primär von der Klienten-Verbindungsgeschwindigkeit und
seiner Verbindung mit einem Serviceprovider ab. Wenn die Abgabezeiten
durch Umverteilung verbessert werden können (d.h. das theoretische
Minimum näher
erreichen), können
der Ursprungs-Server im Zusammenwirken mit den vertrauenswürdigen Edge-Servern
die Klienten unter den Servern umverteilen, um Lasten und Abgabezeiten
zu vergleichmäßigen, Schritt 560.
Wenn beispielsweise die Anzahl der Klienten an einem speziellen
vertrauenswürdigen Edge-Server
einen Flaschenhals verursacht, können einige
dieser Klienten auf andere vertrauenswürdige Edge-Servern umverteilt
werden. In gleicher Weise, wenn wenige Klienten geographisch fern
von einem speziellen vertrauenswürdigen
Server sind, können sie
umverteilt werden, um eine näher
benachbarte, daher schnellere vertrauenswürdige Edge-Server-Verbindung
zu finden. Wie im Abschätzungsprozess
kann dieser Prozess der Umverteilung entweder durch eine Serveranwendung
ausgeführt
werden, die Klienten unter den Servern umverteilt, oder durch eine
komplizierte Sendestufe, wie beispielsweise das Inhaltsabgabenetzwerk,
das dazu verwendet werden kann, Klienten unter den vertrauenswürdigen Edge-Servern
zu übertragen.
In einem typischen Umverteilungsvorgang kann ein vertrauenswürdiger Edge-Server
finden, dass seine Klient-Server-Abgabezeiten
sehr viel größer sind,
als ihre theoretischen Minima. Er kann dann Anforderungen an andere
vertrauenswürdige
Edge-Server senden und sie fragen, ob sie die Bandbreite haben,
um zusätzliche
Klienten aufzunehmen. Wenn ein anderer vertrauenswürdiger Edge-Server
diese zusätzlichen
Klienten übernehmen
kann, dann kann er auf den ersten vertrauenswürdigen Edge-Server ansprechen, die
Klientendaten können
vom ersten vertrauenswürdigen
Edge-Server übergeben
werden, und der Klient kann übertragen
werden. Es kann selbstverständlich
Fälle geben,
in denen ein Klient eine besonders lange Latenz hat, die durch irgendeine
Umverteilung nicht beseitigt werden kann (beispielsweise wenn der
geographische Ort eines Klienten sehr fern von selbst dem nächstliegenden
vertrauenswürdigen Edge-Server
liegt). In vielen Fällen
kann dieses Verfahren jedoch Abgabezeiten ergeben, die ihre theoretischen
Minima weitestgehend erreichen.
-
Sobald
die Klienten Abgabezeiten haben, die sich ihren theoretischen Minima
nähern,
kann der Sendevorgang beginnen. Unter Verwendung der Latenzen vom
Ursprungs-Server zum vertrauenswürdigen
Edge-Server kann das Ereignis E an die vertrauenswürdigen Edge-Server
zu gewissen Zeitpunkten vor dem Zeitpunkt t verteilt werden, wie
im Schritt 565 angegeben. Die Abgabe kann dann gleichzeitig
zu einem gewissen Zeitpunkt vor oder zum Zeitpunkt t von den vertrauenswürdigen Edge-Servern
an die Klienten im Satz eingeleitet werden, Schritt 570.
Wie oben beschrieben, kann in Abhängigkeit von den speziellen
Bedürfnissen
der Anwendung die Abgabe zu unterschiedlichen Zeiten vor dem Zeitpunkt
t eingeleitet werden. Alternativ könnte die Sendung auch zum Zeitpunkt
t oder sogar danach beginnen, wenn die Latenz nicht so groß ist, dass
die Verteilung nicht vor dem Zeitpunkt t+d abgeschlossen ist. In
manchen Situationen kann es wünschenswert
sein, dass das Ereignis bei allen Klienten zum Zeitpunkt t ankommt, ohne
Rücksicht
darauf, dass einige Klienten es vorher empfangen. Die Sendung kann
dann zum Zeitpunkt t – (größte Abgabezeit)
eingeleitet werden und viele Klienten werden das Ereignis in seiner
Gesamtheit vor t empfangen. In solchen Situationen, in denen es
unerwünscht
ist, dass ein Klient das Ereignis vor t empfängt, könnte die Sendung zum Zeitpunkt
t – (kürzeste Abgabezeit)
eingeleitet werden. In jenen Situationen, in denen es kritisch ist,
dass ein Klient das Ereignis nicht vor t empfängt, oder wenn der Ursprungs-Server
das Ereignis nicht empfängt oder
erstellt bis nach t – (kürzeste Abgabezeit),
kann die Sendung einfach zum Zeitpunkt t eingeleitet werden. Schließlich kann
in solchen Situationen, wo die wichtigste Forderung ist, dass das
Ereignis nicht in seiner Gesamtheit bei den Klienten nach dem Zeitpunkt
t+d ankommt, die Sendung manchmal zum Zeitpunkt t und zu jedem Zeitpunkt
bis t – (größte Abgabezeit) eingeleitet
werden.
-
Es
wird nun auf 6 Bezug genommen. Sobald ein
Ereignis E zum Senden ausgewählt
ist, kann die Größe des Ereignisses
bestimmt werden, Schritt 610. Während der Schritt 610 als
der Anfangsschritt gezeigt ist, kann er, wie oben, an jedem Punkt vor
Schritt 645 eingefügt
werden, wenn die Größe dazu
verwendet wird, die Abgabezeit zu bestimmen. Sobald die Größe des Ereignisses
bestimmt worden ist, kann sie für
den späteren
Gebrauch gespeichert werden.
-
Für jeden
vertrauenswürdigen
Edge-Server kann der Satz S interessierter Klienten im Schritt 620 bestimmt
werden. In Abhängigkeit
vom speziellen Ereignis E und der verwendeten Einrichtung kann S
auf eine Anzahl unterschiedlicher Wege zusammengestellt werden,
wie oben beschrieben. Unter Verwendung dieser und anderer, nicht
beschriebener Verfahren, kann im Schritt 620 ein Satz zulässiger,
interessierter Klienten für
einen speziellen vertrauenswürdigen
Edge-Server zusammengestellt werden. Die Information, die jeden
Satz S bestimmt, kann am Ursprungs-Server, am entsprechenden vertrauenswürdigen Edge-Server
oder an getrennt gelegenen Servern gespeichert werden. So lange
die Information über
die Klienten in einem jeden Satz schnell genug nur das Netzwerk
geleitet werden kann, ist von der vorliegenden Erfindung kein spezieller
Speicherbereich für
Information über
den Satz S vorgesehen.
-
Wie
in 6 gezeigt, kann dann jede Klient-Server-Verbindung
aufgefordert werden, ihre Latenz zu schätzen. Wie breit durch den in 6 umrissenen
Algorithmus dargestellt ist, gibt es zwei Einrichtungen zum Schätzen von
Latenz: empirische und theoretisch/mathematische. Die meisten Verfahren
zum Schätzen
von Latenz können
diese zwei Einrichtungen verschmelzen, um die genaueste Latenzschätzung zu
ergeben. In der bevorzugten Ausführungsform
kann jede Klient-Server-Verbindung auf eine Verbindungsgeschichte
geprüft
werden, Schritt 630. Wenn zuvor eine Ereignisübertragung
zwischen diesen beiden Rechnern stattgefunden hat, kann diese Geschichte
beim Latenzschätzvorgang
verwendet werden. Andere Ausführungsformen
sind ebenfalls möglich,
wie im Detail oben beschrieben.
-
Wenn
eine relevante Verbindungsgeschichte für die spezielle Klient-vertrauenswürdiger-Server-Paarung vorhanden
ist, dann kann diese Geschichte dazu verwendet werden, die Latenz
zu schätzen,
Schritt 635. Bei der in 6 gezeigten Ausführungsform
kann diese Verbindungsgeschichte eine historische Latenz ergeben,
die dann als Schätzwert
der vorliegenden Latenz verwendet werden kann. Daten bezüglich der
Zeit, des Datums, des mittleren Verkehrs, der die Sendung umgibt,
Ereignistyp, Ereignisgröße, Anzahl
der Klienten und andere Eigenschaften der Verbindungsgeschichte,
können ebenfalls
dazu verwendet werden, die vorliegende Latenz genauer anzunähern. In
Abhängigkeit
von der Netzwerk-Infrastruktur, der verfügbaren Information und den
Notwendigkeiten der speziellen Anwendung kann die Schätzung der
vorliegenden Latenz unter Verwendung historischer Daten mehr oder
weniger genau sein.
-
Wenn
keine Verbindungsgeschichte vorhanden ist, können Netzwerkfunktionen dazu
verwendet werden, die vorliegende Latenz im Schritt 640 unter Verwendung
der oben im Detail beschriebenen Mechanismen zu schätzen.
-
In
einer bevorzugten Ausführungsform
der vorliegenden Erfindung, die in 6 umrissen
ist, ist die historische Schätztechnik 635 als
eine Alternative zur Netzwerkschätztechnik 640 gezeigt.
In anderen Anwendungen können
diese Techniken jedoch einander ergänzen. Die vorliegenden Netzwerkdaten und
Langzeit-Netzwerkstatistik können
dazu verwendet werden, die historische Analyse zu verbessern. Mit
verbesserter Hardware und verbesserten Softwarealgorithmen kann
selbstverständlich
die Genauigkeit jeder Technik verbessert werden.
-
Nachdem
die Latenz geschätzt
ist, können die
Größe des Ereignisses
und die geschätzte
Latenz dazu verwendet werden, die Abgabezeit ?i für eine spezielle
Klient-Server-Verbindung zu schätzen, Schritt 645.
Dieser Schritt kann dann für
jeden Klienten in jedem vertrauenswürdigen Edge-Server-Satz wiederholt
werden, Schritt 655, bis jede Klient-Server-Verbindung
eine zugehörige
Abgabezeit hat, Schritt 650.
-
Nach
dem Schätzen
der Abgabezeit ?i für jede Klient-Server-Verbindung
sendet jeder vertrauenswürdige
Edge-Server das Maximum all seiner Abgabezeiten ?max an
den Ursprungs-Server, Schritt 670. Der Ursprungs-Server
speichert diese Abgabezeiten für
jeden entsprechenden Server. Dieser Bestimmung des Maximums aller
Abgabezeiten ?max verwendeten Algorithmen
sind dem Fachmann gut bekannt. Beispielsweise besteht ein Algorithmus
darin, durch die Liste der Abgabezeiten zu gehen und die erste mit
der zweiten Zeit zu vergleichen. Der Rechner speichert dann die
größere dieser
zwei Zeiten und vergleicht diese Zeit mit der dritten Zeit, speichert
die größere dieser
zwei Zeiten und vergleicht diese Zeit mit der vierten Zeit, usw..
Diese Aufgabe kann auch durch Ausführung eines ähnlichen
Algorithmus erfüllt
werden, wie die Abgabezeiten im Schritt 645 geschätzt werden.
-
Sobald
der Ursprungs-Server das ?max von den vertrauenswürdigen Edge-Servern
empfangen hat, kann der Sendevorgang beginnen. Unter Verwendung
von Information über
die Latenzen zwischen dem Ursprungs-Server und dem vertrauenswürdigen Edge-Server
kann das Ereignis E an jeden vertrauenswürdigen Edge-Server auf der
Grundlage des ?max für diesen Server zu einem gewissen
Zeitpunkt vor den Zeitpunt t-?max verteilt
werden, Schritt 675. In Abhängigkeit von den speziellen
Fähigkeiten des
Netzwerkes und den speziellen Notwendigkeiten der Anwendung kann
jeder vertrauenswürdige Edge-Server
dann die Abgabe von E an seinen Klienten zum Zeitpunkt t-?min einleiten oder kann die Abgabe zu unterschiedlichen
Zeiten t-?i für jeden Klienten einleiten,
wobei die Abgabezeit für
jede Klient-Server-Verbindung eingestellt wird, Schritt 680.
Wenn die vertrauenswürdigen
Edge-Server das Ereignis an jeden Klienten zu unterschiedlichen
Zeiten senden, leitet die Anwendung die Abgabe an jeden Klienten bei
t-?i ein, Schritt 685. Wenn beispielsweise
ein vertrauenswürdiger
Edge-Server vier Klienten hat mit den folgenden Zeiten für die Abgabe:
Klient 1: 1s, Klient 2: 2s, Klient 3: 3s, Klient 4: 4s, dann sollte
die Abgabe für
den Klienten 1 bei t-1s, für
den Klienten 2 bis t-2s, für
den Klienten 3 bei t-3s und für
den Klienten 4 bei t-4s eingeleitet werden. Der vertrauenwürdige Edge-Server
kann das Ereignis auch zu einem gewissen Zeitpunkt vor t-4s empfangen,
so dass er die Abgabe an den "weitesten" Klienten zu diesem
Zeitpunkt einleiten könnte.
Wenn andererseits jeder vertrauenswürdige Edge-Server das Ereignis
an seine Klienten gleichzeitig sendet, Schritt 690, dann
kann jeder vertrauenswürdige
Edge-Server die Abgabe zum Zeitpunkt t-(Minimum-Abgabezeit) oder
t-?min einleiten. Unter Verwendung des obigen
Beispiels würde
ein vertrauenswürdiger
Edge-Server mit
vier Klienten die Abgabe an alle vier Klienten zum Zeitpunkt t-1s
einleiten. In einer anderen Ausführungsform
können
die vertrauenswürdigen
Edge-Server die Abgabe an Klienten zu jeder Zeit vor oder nach t einleiten,
so lange das Ereignis in seiner Gesamtheit bei den Klienten vor
t–d ankommt.
Mit anderen Worten, ein vertrauenswürdiger Edge-Server kann die Abgabe
zu jedem Zeitpunkt vor t+d-?max einleiten. Dieses
kann Flexibilität
des Timing in solchen Situationen bieten, in denen es wichtiger
ist, dass das Ereignis vor t–d
ankommt oder dass das Ereignis in seiner Gesamtheit bei allen Klienten
etwa zum gleichen Zeitpunkt ankommt, anstatt dass das Ereignis zu
einem Zeitpunkt dicht beim Zeitpunkt t ankommt.
-
In
der vorliegenden Erfindung kann das Verfahren von 5,
das oben zum Eingrenzen des Abgabezeitbereichs beschrieben wurde,
dadurch verbessert werden, dass auch das oben unter Bezugnahme auf 6 beschriebene
Verfahren ausgeführt wird.
Durch Ersetzen der Schritte 565 und 570 durch die
Schritte 615 bis 690 kann die vorliegende Erfindung
häufig
genauere Abgabezeiten bieten.
-
Im
Hinblick auf die vielen möglichen
Ausführungsformen,
bei denen die Prinzipien dieser Erfindung angewendet werden können, sollte
erkannt werden, dass die hier unter Bezugnahme auf die Zeichnungsfiguren
beschriebenen Ausführungsformen
nur illustrativ gemeint sind und nicht als den Umfang der Erfindung
einschränkend
verstanden werden sollen. Beispielsweise erkennt der Fachmann, dass
die Element der in Software dargestellten Ausführungsformen auch in Hardware
ausgeführt
sein können,
und umgekehrt, und dass die dargestellten Ausführungsformen in Anordnung und
Detail modifiziert werden können,
ohne vom Geist der Erfindung abzuweichen. Die Erfindung, wie sie
hier beschrieben ist, umfasst daher alle solche Ausführungsformen,
wie sie in den Umfang der folgenden Ansprüche und deren Äquivalente
fallen.
-
Es
folgt nun eine Liste bevorzugter Ausführungsformen der Erfindung.
-
Ausführungsform
1:
-
Ein
Verfahren zum Verteilen eines Klienten unter einem ersten vertrauenswürdigen Edge-Server und einem
zweiten vertrauenswürdigen
Edge-Server, wobei ein vertrauenswürdiger Edge-Server ein Server
im Übertragungsweg
zwischen einem Ursprungs-Server und einem angeschlossenen Klienten
ist, von dem man vertrauen kann, dass er Information nicht vor einem
geeigneten Zeitpunkt freigibt, wobei das Verfahren umfasst: Bestimmen
einer ersten Latenz zwischen dem ersten vertrauenswürdigen Edge-Server
und dem Klienten; Vergleichen der ersten Latenz mit einer zweiten
Latenz; und Übertragen des
Klienten auf den zweiten vertrauenswürdigen Edge-Server, wenn die
zweite Latenz geringer als die erste Latenz ist.
-
Ausführungsform
2:
-
Das
Verfahren nach Ausführungsform
1, wobei der Schritt des Bestimmens der ersten Latenz weiterhin
umfasst: Schätzen
der ersten Latenz unter Verwendung einer Verbindungsgeschichte zwischen dem
ersten vertrauenswürdigen
Edge-Server und dem Klienten.
-
Ausführungsform
3:
-
Das
Verfahren nach Ausführungsform
1, wobei der Schritt des Bestimmens der ersten Latenz weiterhin
umfasst: Schätzen
der ersten Latenz unter Verwendung von Netzwerkfunktionen, um eine
erste Verbindung zwischen dem ersten vertrauenswürdigen Edge-Server und dem
Klienten zu testen.
-
Ausführungsform
4:
-
Das
Verfahren von Ausführungsform
1, wobei die zweite Latenz eine Latenz zwischen dem zweiten vertrauenswürdigen Edge-Server
und dem Klienten ist.
-
Ausführungsform
5:
-
Das
Verfahren von Ausführungsform
1, wobei die zweite Latenz eine minimale theoretische Latenz ist.
-
Ausführungsform
6:
-
Das
Verfahren von Ausführungsform
1, weiterhin enthaltend: Erhalten einer Freigabezeit, wobei die
Freigabezeit ein frühester
Zeitpunkt ist, zu welchem ein Ereignis an den Klienten abgegeben
werden soll; Erhalten einer Abschlusszeit, wobei die Abschlusszeit
ein spätester
Zeitpunkt ist, zu welchem das Ereignis beim Klienten ankommen kann;
Berechnen einer Sendezeit als eine Funktion der ersten Latenz und
der zweiten Latenz; und Senden des Ereignisses an den Klienten zum
Sendezeitpunkt.
-
Ausführungsform
7:
-
Ein
Verfahren zum Verteilen eines Ereignisses von einem vertrauenswürdigen Edge-Server
an einen Klienten, wobei der vertrauenswürdige Edge-Server ein Server
ist, der sich im Übertragungsweg
zwischen einem Ursprungs-Server und einem angeschlossenen Klienten
befindet und von dem man vertrauen kann, dass er Information nicht vor
einem geeigneten Zeitpunkt freigibt, wobei das Verfahren umfasst:
Erhalten einer Freigabezeit, wobei die Freigabezeit ein frühester Zeitpunkt
ist, zu welchem das Ereignis an den Klienten abgegeben werden soll;
Erhalten einer Abschlusszeit, wobei die Abschlusszeit ein spätester Zeitpunkt
ist, zu welchem ein Ereignis bei dem Klienten ankommen kann; Bestimmen
einer ersten Latenz zwischen einem ersten vertrauenswürdigen Edge-Server
und einem ersten Klienten, der mit dem ersten vertrauenswürdigen Edge-Server
in Verbindung ist; Vergleichen der ersten Latenz mit einer ersten Übertragungslatenz; Übertragen
des ersten Klienten, wenn die erste Übertragungslatenz geringer
als die erste Latenz ist; Berechnen einer ersten Sendezeit als eine
Funktion der ersten Latenz und der ersten Übertragungslatenz; und Senden
des Ereignisses an den ersten Klienten zur ersten Sendezeit.
-
Ausführungsform
8:
-
Das
Verfahren von Ausführungsform
7, wobei die erste Übertragungslatenz
eine Latenz zwischen einem zweiten vertrauenswürdigen Edge-Server und dem
ersten Klienten ist; und wobei das Übertragen des ersten Klienten,
wenn die erste Übertragungslatenz
geringer als die erste Latenz ist, das Übertragen des ersten Klienten
an den zweiten vertrauenswürdigen
Edge-Server beinhaltet.
-
Ausführungsform
9:
-
Das
Verfahren von Ausführungsform
7, wobei das Ereignis von einem zweiten vertrauenswürdigen Edge-Server
an einen zweiten Klienten verteilt wird und wobei das Berechnen
der ersten Sendezeit als eine Funktion der ersten Latenz und der
ersten Übertragungslatenz
das Berechnen der ersten Sendezeit als eine Funktion einer zweiten
Latenz und einer zweiten Übertragungslatenz
beinhaltet, wobei das Verfahren weiterhin umfasst: Bestimmen der zweiten
Latenz zwischen dem zweiten vertrauenswürdigen Edge-Server und dem
zweiten Klienten; Vergleichen der zweiten Latenz mit der zweiten Übertragungslatenz; Übertragen
des zweiten Klienten, wenn die zweite Übertragungslatenz geringer
als die zweite Latenz ist; und Senden des Ereignisses an den zweiten
Klienten zur ersten Sendezeit.
-
Ausführungsform
10:
-
Das
Verfahren von Ausführungsform
9, wobei der zweite vertrauenswürdige
Edge-Server der erste vertrauenswürdige Edge-Server ist.
-
Ausführungsform
11:
-
Das
Verfahren von Ausführungsform
9, wobei der Schritt des Berechnens der ersten Sendezeit weiter
umfasst: Schätzen
einer ersten Abgabezeit als eine Funktion der ersten Latenz und
der ersten Übertragungslatenz;
Schätzen
einer zweiten Abgabezeit als eine Funktion der zweiten Latenz und
der zweiten Übertragungslatenz;
Berechnen der ersten Sendezeit, so dass sie vor der Abschlusszeit
minus der ersten Abgabezeit liegt, wenn die erste Abgabezeit größer als
die zweite Abgabezeit ist; und Berechnen der ersten Sendezeit, dass
sie vor der Abschlusszeit minus der zweiten Abgabezeit liegt, wenn
die zweite Abgabezeit größer als
die erste Abgabezeit ist.
-
Ausführungsform
12:
-
Das
Verfahren von Ausführungsform
7, wobei das Ereignis von einem zweiten vertrauenswürdigen Edge-Server
zu einem zweiten Klienten verteilt wird, wobei das Verfahren weiter
umfasst: Bestimmen einer zweiten Latenz zwischen dem zweiten vertrauenswürdigen Edge-Server
und dem zweiten Klienten; Vergleichen der zweiten Latenz mit einer
zweiten Übertragungslatenz; Übertragen
des zweiten Klienten, wenn die zweite Übertragungslatenz geringer als
die zweite Latenz ist; Berechnen einer zweiten Sendezeit als eine
Funktion der zweiten Latenz und der zweiten Übertragungslatenz; und Senden
des Ereignisses an den zweiten Klienten zur zweiten Sendetzeit.
-
Ausführungsform
13:
-
Ein
Rechner-lesbares Medium mit von einem Rechner ausführbaren
Befehlen zum Verteilen eines Klienten unter einem ersten vertrauenswürdigen Edge-Server
und einem zweiten vertrauenswürdigen Edge-Server,
wobei ein vertrauenswürdiger Edge-Server
ein Server ist, der sich im Übertragungsweg
zwischen einem Ursprungs-Server und einem angeschlossenen Klienten
befindet und dem man vertrauen kann, dass er Information nicht vor
einem geeigneten Zeitpunkt freigibt, wobei die von einem Rechner
ausführbaren
Befehle Schritte ausführen,
die umfassen: Bestimmen einer ersten Latenz zwischen dem ersten
vertrauenswürdigen
Edge-Server und dem Klienten; Vergleichen der ersten Latenz mit
einer zweiten Latenz; und Übertragen
des Klienten auf den zweiten vertrauenswürdigen Edge-Server, wenn die
zweite Latenz geringer als die erste Latenz ist.
-
Ausführungsform
14:
-
Das
Rechner-lesbare Medium von Ausführungsform
13, wobei die zweite Latenz eine Latenz zwischen dem zweiten vertrauenswürdigen Edge-Server
und dem Klienten ist.
-
Ausführungsform
15:
-
Das
Rechner-lesbare Medium von Ausführungsform
13, wobei die zweite Latenz eine minimale theoretische Latenz ist.
-
Ausführungsform
16:
-
Ein
Rechner-lesbares Medium mit von einem Rechner ausführbaren
Befehlen zum Verteilen eines Ereignisses von einem vertrauenswürdigen Edge-Server
zu einem Klienten, wobei der vertrauenswürdige Edge-Server ein Server
ist, der sich im Übertragungsweg
zwischen einem Ursprungs-Server und einem angeschlossenen Klienten
befindet, und dem man vertrauen kann, dass er Information nicht vor
einem geeigneten Zeitpunkt freigibt, wobei die von einem Rechner
ausführbaren
Befehle Schritte ausführen,
die umfassen: Erhalten einer Freigabezeit, wobei die Freigabezeit
ein frühester
Zeitpunkt ist, zu welchem das Ereignis an den Klienten abgegeben
werden soll; Erhalten einer Abschlusszeit, wobei die Abschlusszeit
ein letzter Zeitpunkt ist, zu welchem das Ereignis beim Klienten
ankommen kann; Bestimmen einer ersten Latenz zwischen einem ersten
vertrauenswürdigen
Edge-Server und einem ersten Klienten, der mit ersten vertrauenswürdigen Edge-Server
kommuniziert; Vergleichen der ersten Latenz mit einer ersten Übertragungslatenz; Übertragen
des ersten Klienten, wenn die erste Übertragungslatenz geringer
ist, als die erste Latenz; Berechnen einer ersten Sendezeit als
eine Funktion der ersten Latenz und der ersten Übertragungslatenz; und Senden
des Ereignisses an den ersten Klienten zur ersten Sendezeit.
-
Ausführungsform
17:
-
Das
Rechner-lesbare Medium von Ausführungsform
16 mit weiteren von einem Rechner ausführbaren Befehlen zum Verteilen
des Ereignisses von einem zweiten vertrauenswürdigen Edge-Server an einen
zweiten Klienten, wobei das Berechnen der ersten Sendezeit als eine
Funktion der ersten Latenz und der ersten Übertragungslatenz das Berechnen der
ersten Sendezeit als eine Funktion einer zweiten Latenz und einer
zweiten Übertragungslatenz
beinhaltet, wobei die weiteren, von einem Rechner ausführbaren
Befehle Schritte ausführen,
die umfassen: Bestimmen der zweiten Latenz zwischen einem zweiten
vertrauenswürdigen
Edge-Server und einem zweiten Klienten; Vergleichen der zweiten
Latenz mit einer zweiten Übertragungslatenz; Übertragen
des zweiten Klienten, wenn die zweite Übertragungslatenz länger als
die zweite Latenz ist; und Senden des Ereignisses an den zweiten
Klienten zur ersten Sendezeit.
-
Ausführungsform
18:
-
Das
Rechner-lesbare Medium von Ausführungsform
16, wobei das Ereignis von einem zweiten vertrauenswürdigen Edge-Server
auf einen zweiten Klienten verteilt wird, der eine zweite Latenz
hat, wobei die von einem Rechner ausführbaren Befehle Schritte ausführen, die
weiter umfassen: Vergleichen der zweiten Latenz mit einer zweiten Übertragungslatenz; Übertragen
des zweiten Klienten, wenn die zweite Übertragungslatenz geringer
als die zweite Latenz ist; Berechnen einer zweiten Sendezeit als eine
Funktion der zweiten Latenz und der zweiten Übertragungslatenz; und Senden
des Ereignisses an den zweiten Klienten zur zweiten Sendezeit.
-
Ausführungsform
19:
-
Ein
System zur Netzwerkverteilung für
die Minimierung von Latenzen, wobei das System umfasst: einen Ursprungs-Server,
einen ersten vertrauenswürdigen
Edge-Server, an den ein Klient angeschlossen ist; einen zweiten
vertrauenswürdigen Edge-Server,
wobei ein vertrauenswürdi ger Edge-Server
ein Server ist, der sich im Übertragungsweg
zwischen dem Ursprungs-Server und einem angeschlossenen Klienten
befindet und von dem man vertrauen kann, dass der Information nicht vor
einem geeigneten Zeitpunkt freigibt; und von einem Rechner ausführbare Befehle
zum Ausführen von
Schritten, umfassend: Bestimmen einer ersten Latenz zwischen dem
ersten vertrauenswürdigen Edge-Server
und dem Klienten; Vergleichen der ersten Latenz mit einer zweiten
Latenz; und Übertragen des
Klienten auf den zweiten vertrauenswürdigen Edge-Server, wenn die
zweite Latenz geringer als die erste Latenz ist.
-
Ausführungsform
20:
-
Das
System von Ausführungsform
19, wobei die zweite Latenz eine Latenz zwischen dem zweiten vertrauenswürdigen Edge-Server
und dem Klienten ist.
-
Ausführungsform
21:
-
Das
System von Ausführungsform
19, wobei die zweite Latenz eine minimale theoretische Latenz ist.
-
Ausführungsform
22:
-
Das
System von Ausführungsform
19, wobei die von einem Rechner ausführbaren Befehle weitere Schritte
ausführen,
umfassend: Erhalten einer Freigabezeit, wobei die Freigabezeit ein
frühester
Zeitpunkt ist, zu welchem ein Ereignis an den Klienten abgegeben
werden soll; Erhalten einer Abschlusszeit, wobei die Abschlusszeit
ein spätester
Zeitpunkt ist, zu welchem das Ereignis beidem Klienten ankommen
kann; Berechnen einer Sendezeit als eine Funktion der ersten Latenz
und der zweiten Latenz; und Senden des Ereignisses an den Klienten
zur Sendezeit.
-
Ausführungsform
23:
-
Ein
System zur wirksamen Ereignisverteilung, wobei das System umfasst:
einen ersten vertrauenswürdigen
Edge-Server, an den ein erster Klient angeschlossen ist; ein zweiter
vertrauenswürdiger
Edge-Server, wobei ein vertrauenswürdiger Edge-Server ein Server
ist, der sich im Übertragungsweg
zwischen einem Ursprungs-Server und einem angeschlossenen Klienten
befindet und von dem man vertrauen kann, dass er Information nicht vor
einem geeigneten Zeitpunkt freigibt; und von einem Rechner ausführbare Befehle
zur Durchführung von
Schritten, die umfassen: Erhalten einer Freigabezeit, wobei die
Freigabezeit ein frühester
Zeitpunkt ist, zu welchem das Ereignis an den ersten Klienten abgegeben
werden soll; Erhalten einer Abfluss zeit, wobei die Abflusszeit ein
spätester
Zeitpunkt ist, zu welchem das Ereignis beim ersten Klienten ankommen
kann; Bestimmen einer ersten Latenz zwischen dem ersten vertrauenswürdigen Edge-Server
und dem ersten Klienten; Vergleichen der ersten Latenz mit einer
ersten Übertragungslatenz; Übertragen
des ersten Klienten, wenn die erste Übertragungslatenz geringer
als die erste Latenz ist; Berechnen einer ersten Sendezeit als eine
Funktion der ersten Latenz und der ersten Übertragungslatenz; und Senden
des Ereignisses an den ersten Klienten zur ersten Sendezeit.
-
Ausführungsform
24:
-
Das
System von Ausführungsform
23, wobei die erste Übertragungslatenz
eine Latenz zwischen dem zweiten vertrauenswürdigen Edge-Server und dem
ersten Klienten ist, und wobei die von einem Rechner ausführbaren
Befehle zum Übertragen
des ersten Klienten, wenn die erste Übertragungslatenz geringer
als die erste Latenz ist, von einem Rechner ausführbare Befehle zum Übertragen
des ersten Klienten an den zweiten vertrauenswürdigen Edge-Server beinhalten.
-
Ausführungsform
25:
-
Das
System von Ausführungsform
23, wobei die von einem Rechner ausführbaren Befehle zum Berechnen
der ersten Sendezeit als eine Funktion der ersten Latenz und der
ersten Übertragungslatenz von
einem Rechner ausführbare
Befehle zum Berechnen der ersten Sendezeit als eine Funktion einer zweiten
Latenz und einer zweiten Übertragungslatenz
beinhalten, wobei das System weiterhin umfasst: von einem Rechner
ausführbare
Befehle zum Ausführen
von Schritten, die umfassen: Bestimmen der zweiten Latenz zwischen
dem zweiten vertrauenswürdigen
Edge-Server und einem zweiten Klienten; Vergleichen der zweiten
Latenz mit der zweiten Übertragungslatenz; Übertragen
des zweiten Klienten, wenn die zweite Übertragungslatenz geringer
als die zweite Latenz ist; und Senden des Ereignisses an den zweiten
Klienten zur ersten Sendezeit.
-
Ausführungsform
26:
-
Das
System von Ausführungsform
25, wobei der zweite vertrauenswürdige
Edge-Server der erste vertrauenswürdige Edge-Server ist.
-
Ausführungsform
27:
-
Das
System von Ausführungsform
25, wobei die von einem Rechner ausführbaren Befehle zum Berechnen
der ersten Sendezeit weiterhin von einem Rechner ausführbare Befehle
zum Ausführen
schon Schritten beinhalten, umfassend: Schätzen einer ersten Abgabezeit
als eine Funktion der ersten Latenz und der ersten Übertragungslatenz;
Schätzen
einer zweiten Abgabezeit als eine Funktion der zweiten Latenz und
der zweiten Übertragungslatenz;
Berechnen der ersten Sendezeit, dass sie vor der Abschlusszeit minus
der ersten Abgabezeit liegt, wenn die erste Abgabezeit größer als
die zweite Abgabezeit ist; und Berechnen der zweiten Sendezeit,
dass sie vor der Abschlusszeit minus der zweiten Abgabezeit liegt,
wenn die zweite Abgabezeit größer als
die erste Abgabezeit ist.
-
Ausführungsform
28:
-
Das
System von Ausführungsform
23, weiterhin enthaltend: von einem Rechner ausführbare Befehle zum Durchführen von
Schritten, umfassend: Bestimmen einer zweiten Latenz zwischen dem zweiten
vertrauenswürdigen
Edge-Server und einem zweiten Klienten; Vergleichen der zweiten
Latenz mit einer zweiten Übertragungslatenz; Übertragen
des zweiten Klienten, wenn die zweite Übertragungslatenz geringer
als die zweite Latenz ist; Berechnen einer zweiten Sendezeit als
eine Funktion der zweiten Latenz und der zweiten Übertragungslatenz;
und Senden des Ereignisses an den zweiten Klienten zur zweiten Sendezeit.
-
Ausführungsform
29:
-
Ein
Verfahren zum Verteilen eines Klienten unter einem ersten vertrauenswürdigen Edge-Server und einem
zweiten vertrauenswürdigen
Edge-Server, wobei ein vertrauenswürdiger Edge-Server ein Server
ist, der sich im Übertragungsweg
zwischen einem Ursprungs-Server und einem angeschlossenen Klienten
befindet und dem man vertrauen kann, dass er Information nicht vor
einem geeigneten Zeitpunkt freigibt, wobei das Verfahren umfasst:
einen Schritt zum Bestimmen einer ersten Latenz zwischen dem ersten
vertrauenswürdigen
Edge-Server und dem Klienten; einen Schritt zum Vergleichen der
ersten Latenz mit einer zweiten Latenz; und einen Schritt zum Übertragen
des Klienten auf den zweiten vertrauenswürdigen Edge-Server, wenn die zweite Latenz geringer
als die erste Latenz ist.
-
Ausführungsform
30:
-
Ein
Verfahren zum Verteilen eines Ereignisses von einem vertrauenswürdigen Edge-Server
an einen Klienten, wobei der vertrauenswürdige Edge-Server ein Server
ist, der sich im Übertragungsweg
zwischen einem Ursprungsserver und einem angeschlossenen Klienten
befindet und von dem man vertrauen kann, dass er Information nicht vor
einem geeigneten Zeitpunkt freigibt, wobei das Verfahren umfasst:
einen Schritt zum Erhalten einer Freigabezeit, wobei die Freigabezeit
ein frühester Zeitpunkt
ist, zu welchem das Ereignis an den Klienten abgegeben werden soll;
einen Schritt zum Erhalten einer Abschlusszeit, wobei die Abschlusszeit
ein spätester
Zeitpunkt ist, zu welchem das Ereignis bei dem Klienten ankommen
kann; einen Schritt zum Bestimmen einer ersten Latenz zwischen dem
vertrauenswürdigen
Edge-Server und einem ersten Klienten; einen Schritt zum Berechnen
einer ersten Sendezeit als eine Funktion der ersten Latenz; und
einen Schritt zum Senden des Ereignisses von dem vertrauenswürdigen Edge-Server
an den ersten Klienten zur ersten Sendezeit.
-
Ausführungsform
31:
-
Das
Verfahren von Ausführungsform
30, wobei der Schritt zum Berechnen der ersten Sendezeit weiter
umfasst: einen Schritt zum Schätzen
einer ersten Abgabezeit unter Verwendung der ersten Latenz; und
einen Schritt zum Berechnen der ersten Sendezeit, dass sie vor der
Abschlusszeit minus der ersten Abgabezeit liegt.
-
Ausführungsform
32:
-
Das
Verfahren von Ausführungsform
30, weiterhin umfassend: einen Schritt zum Bestimmen einer zweiten
Latenz zwischen dem vertrauenswürdigen
Edge-Server und einem zweiten Klienten; einen Schritt zum Berechnen
einer zweiten Sendezeit als eine Funktion der zweiten Latenz; und
einen Schritt zum Senden des Ereignisses von dem vertrauenswürdigen Edge-Server
an den zweiten Klienten zur zweiten Sendezeit.
-
Ausführungsform
33:
-
Das
Verfahren von Ausführungsform
30, wobei der Schritt zum Bestimmen der ersten Latenz enthält: einen
Schritt zum Bestimmen einer Übertragungslatenz;
einen Schritt zum Vergleichen der ersten Latenz mit der Übertragungslatenz;
und einen Schritt zum Übertragen
des ersten Klienten an einen zweiten vertrauenswürdigen Edge-Server, wenn die Übertragungslatenz
geringer als die erste Latenz ist; wobei der Schritt zum Berechnen
der ersten Sendezeit einen Schritt zum Bestimmen der ersten Sendezeit
als eine Funktion einer zweiten Latenz zwischen dem zweiten vertrauenswürdigen Edge-Server
und dem ersten Klienten umfasst; und der Schritt zum Senden des
Ereignisses einen Schritt zum Senden des Ereignisses von dem zweiten
vertrauenswürdigen
Edge-Server an den ersten Klienten zur ersten Sendezeit umfasst,
wenn die Übertragungslatenz
geringer als die erste Latenz ist.
-
Ausführungsform
34:
-
Ein
vertrauenswürdiger
Edge-Server enthaltend: eine Einrichtung zum Erhalten einer Freigabezeit
und einer Abschlusszeit, wobei die Freigabezeit ein frühester Zeitpunkt
ist, zu welchem das Ereignis an einen Klienten abgegeben ist, und
die Abschlusszeit ein spätester
Zeitpunkt ist, zu welchem das Ereignis bei dem Klienten ankommen
kann; eine Einrichtung zum Bestimmen einer ersten Latenz zwischen
dem vertrauenswürdigen
Edge-Server und einem ersten Klienten; eine Einrichtung zum Berechnen
einer ersten Sendezeit als eine Funktion der ersten Latenz; und
eine Einrichtung zum Enden des Ereignisses von dem vertrauenswürdigen Edge-Server an
den Klienten zur ersten Sendezeit.
-
Ausführungsform
35:
-
Der
vertrauenswürdige
Edge-Server von Ausführungsform
34, wobei die Einrichtung zum Berechnen der ersten Sendezeit als
eine Funktion der ersten Latenz eine Einrichtung zum Berechnen der ersten
Sendezeit als eine Funktion einer zweiten Latenz zwischen dem vertrauenswürdigen Edge-Server und
einem zweiten Klienten beinhaltet, und wobei die Einrichtung zum
Senden des Ereignisses von dem vertrauenswürdigen Edge-Server zu dem ersten
Klienten zur ersten Sendezeit eine Einrichtung zum Senden des Ereignisses
von dem vertrauenswürdigen
Edge-Server an den zweiten Klienten zur ersten Sendezeit umfasst.
-
Ausführungsform
36:
-
Der
vertrauenswürdige
Edge-Server von Ausführungsform
35, wobei die Einrichtung zum Berechnen der ersten Sendezeit weiterhin
enthält:
eine Einrichtung zum Schätzen
einer ersten Abgabezeit als eine Funktion der ersten Latenz, und
einer zweiten Abgabezeit als einer Funktion der zweiten Latenz;
eine Einrichtung zum Berechnen der ersten Sendezeit, dass sie vor
der Abschlusszeit minus der ersten Abgabezeit liegt, wenn die erste
Abgabezeit größer als
die zweite Abgabezeit ist; eine Einrichtung zum Berechnen der ersten
Sendezeit, dass sie vor der Abschlusszeit minus der zweiten Abgabezeit liegt,
wenn die zweite Abgabezeit größer als
die erste Abgabezeit ist.
-
Ausführungsform
37:
-
Ein
vertrauenswürdiger
Edge-Server, enthaltend: eine Einrichtung zum Erhalten einer Freigabezeit
und einer Abschlusszeit, wobei die Freigabezeit ein frühester Zeitpunkt
ist, zu welchem das Ereignis an einen Klienten abgegeben werden
soll, und die Abschlusszeit ein spätester Zeitpunkt ist, zu welchem das
Ereignis bei dem Klienten ankommen kann; eine Einrichtung zum Bestimmen
einer ersten Latenz zwischen einem ersten vertrauenswürdigen Edge-Server
und einem ersten Klienten, der mit dem ersten vertrauenswürdigen Edge-Server
kommuniziert; eine Einrichtung zum Vergleichen der ersten Latenz
mit einer Übertragungslatenz;
eine Einrichtung zum Übertragen
des ersten Klienten, wenn die erste Übertragungslatenz geringer
als die erste Latenz ist; eine Einrichtung zum Berechnen einer ersten
Sendezeit als eine Funktion der ersten Latenz und ersten Übertragungslatenz;
und eine Einrichtung zum Enden des Ereignisses an den ersten Klienten
zur ersten Sendezeit.