DE60316494T2 - Zeitfensterbeschränkte Mehrfachsendung unter Benutzung von Verbindungsablau ffolgeplanung - Google Patents

Zeitfensterbeschränkte Mehrfachsendung unter Benutzung von Verbindungsablau ffolgeplanung Download PDF

Info

Publication number
DE60316494T2
DE60316494T2 DE60316494T DE60316494T DE60316494T2 DE 60316494 T2 DE60316494 T2 DE 60316494T2 DE 60316494 T DE60316494 T DE 60316494T DE 60316494 T DE60316494 T DE 60316494T DE 60316494 T2 DE60316494 T2 DE 60316494T2
Authority
DE
Germany
Prior art keywords
time
latency
client
transmission
edge server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE60316494T
Other languages
English (en)
Other versions
DE60316494D1 (de
Inventor
Luis Felipe Bellevue Cabrera
Venkata N. Bellevue Padmanabhan
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Application granted granted Critical
Publication of DE60316494D1 publication Critical patent/DE60316494D1/de
Publication of DE60316494T2 publication Critical patent/DE60316494T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/101Server selection for load balancing based on network conditions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols

Description

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

Claims (26)

  1. Verfahren zum Verteilen eines Ereignisses von einem vertrauenswürdigen Edge-Server (220) an einen Client (50), wobei der vertrauenswürdige Edge-Server (220) ein Server auf einem Kommunikationspfad zwischen einem Ursprungs-Server (210) und einem verbundenen Client (50) ist, dem dahingehend vertraut werden kann, dass er Informationen nicht vor einem angemessenen Zeitpunkt freigibt, und das Verfahren umfasst: Ermitteln eines Freigabezeitpunktes, wobei der Freigabezeitpunkt ein frühester Zeitpunkt ist, zu dem beabsichtigt ist, das Ereignis dem Client (50) zuzuführen; Ermitteln eines Abschlusszeitpunktes, wobei der Abschlusszeitpunkt ein spätester Zeitpunkt ist, zu dem das Ereignis bei dem Client (50) eintreffen kann; Bestimmen einer ersten Latenz zwischen einem ersten vertrauenswürdigen Edge-Server (220) und einem ersten Client (50); Bestimmen einer Übertragungs-Latenz, die eine Latenz zwischen einem zweiten vertrauenswürdigen Edge-Server (220) und dem ersten Client (50) ist; Übertragen des ersten Client (50) zu einem zweiten vertrauenswürdigen Edge-Server (220), wenn die Übertragungs-Latenz niedriger ist als die erste Latenz; Berechnen eines ersten Sendezeitpunktes als eine Funktion der ersten Latenz, der Übertragungs-Latenz, des Freigabezeitpunktes und des Abschlusszeitpunktes; und Senden des Ereignisses von dem ersten vertrauenswürdigen Edge-Server (220) zu dem ersten Client (50) zu dem ersten Sendezeitpunkt, wenn die Übertragungs-Latenz nicht niedriger ist als die erste Latenz; Senden des Ereignisses von dem zweiten vertrauendwürdigen Edge-Server (220) zu dem ersten Client (50) zu dem ersten Sendezeitpunkt, wenn die Übertragungs-Latenz niedriger ist als die erste Latenz.
  2. Verfahren nach Anspruch 1, wobei der Schritt des Bestimmens der ersten Latenz des Weiteren umfasst: Schätzen der ersten Latenz unter Verwendung eines Verbindungsverlaufs zwischen dem ersten vertrauenswürdigen Edge-Server (220) und dem ersten Client (50).
  3. Verfahren nach Anspruch 1, wobei der Schritt des Bestimmens der ersten Latenz des Weiteren umfasst: Schätzen der ersten Latenz unter Verwendung von Netzwerkfunktionen zum Testen einer Verbindung zwischen dem ersten vertrauenswürdigen Edge-Server (220) und dem ersten Client (50).
  4. Verfahren nach Anspruch 1, wobei der Schritt des Berechnens des ersten Sendezeitpunktes des Weiteren umfasst: Schätzen eines ersten Zuführzeitpunktes unter Verwendung der ersten Latenz und Berechnen des ersten Sendezeitpunktes als den Freigabezeitpunkt abzüglich des ersten Zuführzeitpunktes.
  5. Verfahren nach Anspruch 1, wobei der Schritt des Berechnens des ersten Sendezeitpunktes des Weiteren umfasst: Schätzen eines ersten Zuführzeitpunktes unter Verwendung der ersten Latenz; und Berechnen des ersten Sendezeitpunktes, so dass er vor dem Abschlusszeitpunkt abzüglich des ersten Zuführzeitpunktes liegt.
  6. Verfahren nach Anspruch 1, wobei das Ereignis von dem ersten vertrauenswürdigen Edge-Server (220) an den zweiten Client (50) verteilt wird und der zweite Client (50) eine zweite Latenz hat, das Berechnen des ersten Sendezeitpunktes als eine Funktion der ersten Latenz Berechnen des ersten Sendezeitpunktes als eine Funktion der zweiten Latenz einschließt und das Verfahren des Weiteren umfasst: Senden des Ereignisses von dem ersten vertrauenswürdigen Edge-Server (220) zu dem zweiten Client (50) zu dem ersten Sendezeitpunkt.
  7. Verfahren nach Anspruch 6, wobei der Schritt des Berechnen des ersten Sendezeitpunktes des Weiteren umfasst: Schätzen eines ersten Zuführzeitpunktes als eine Funktion der ersten Latenz; Schätzen eines zweiten Zuführzeitpunktes als eine Funktion der zweiten Latenz; Berechnen des ersten Sendezeitpunktes, so dass er dem Freigabezeitpunkt abzüglich des ersten Zuführzeitpunktes gleich ist, wenn der zweite Sendezeitpunkt einen größeren Wert hat als der erste Zuführzeitpunkt; und Berechnen des ersten Sendezeitpunktes, so dass er dem Freigabezeitpunkt abzüglich des zweiten Zuführzeitpunktes gleich ist, wenn der erste Zuführzeitpunkt einen größeren Wert hat als der zweite Zuführzeitpunkt.
  8. Verfahren nach Anspruch 6, wobei der Schritt des Berechnens des ersten Sendezeitpunktes des Weiteren umfasst: Schätzen eines ersten Zuführzeitpunktes als eine Funktion der ersten Latenz; Schätzen eines zweiten Zuführzeitpunktes als eine Funktion der zweiten Latenz; Berechnen des ersten Sendezeitpunktes, so dass er vor dem Abschlusszeitpunkt abzüglich des ersten Zuführzeitpunktes liegt, wenn der erste Zuführzeitpunkt einen größeren Wert hat als der zweite Zuführzeitpunkt; und Berechnen des ersten Sendezeitpunktes, so dass er vor dem Abschlusszeitpunkt abzüglich des zweiten Zuführzeitpunktes liegt, wenn der zweite Zuführzeitpunkt einen größeren Wert hat als der erste Zuführzeitpunkt.
  9. Verfahren nach Anspruch, das des Weiteren umfasst: Bestimmen einer zweiten Latenz zwischen dem ersten vertrauenswürdigen Edge-Server (220) und einem zweiten Client (50); Berechnen eines zweiten Sendezeitpunktes als eine Funktion der zweiten Latenz; und Senden des Ereignisses von dem ersten vertrauenswürdigen Edge-Server (220) zu dem zweiten Client (50) zu dem zweiten Sendezeitpunkt.
  10. Verfahren nach Anspruch 9, wobei der Ursprungsserver (210) das Ereignis an den ersten vertrauenswürdigen Edge-Server (220) verteilt und das Verfahren des Weiteren umfasst: Bestimmen einer Ursprungs-Latenz zwischen dem Ursprungs-Server (210) und dem ersten vertrauenswürdigen Edge-Server (220); Berechnen eines Ursprungs-Sendezeitpunktes als eine Funktion des ersten Sendezeitpunktes, des zweiten Sendezeitpunktes und der Ursprungs-Latenz; und Senden des Ereignisses von dem Ursprungs-Server (210) zu dem ersten vertrauenswürdigen Edge-Server (220) zu dem Ursprungs-Sendezeitpunkt.
  11. Verfahren nach Anspruch 1, wobei der Ursprungs-Server (210) das Ereignis an den ersten vertrauenswürdigen Edge-Server (220) verteilt und das Verfahren des Weiteren umfasst: Bestimmen einer Ursprungs-Latenz zwischen dem Ursprungs-Server (210) und dem vertrauenswürdigen Edge-Server (220); Berechnen eines Ursprungs-Zeitpunktes als eine Funktion des ersten Sendezeitpunktes und der ersten Ursprungs-Latenz; und Senden des Ereignisses von dem Ursprungs-Server (210) zu dem ersten vertrauenswürdigen Edge-Server (220) zu dem Ursprungs-Sendezeitpunkt.
  12. Verfahren nach Anspruch 1, wobei die Übertragungs-Latenz eine minimale theoretische Latenz ist.
  13. Computerlesbares Medium, das durch Computer ausführbare Befehle zum Verteilen eines Ereignisses von einem vertrauenswürdigen Edge-Server (220) an einen Client (50) aufweist, wobei der vertrauenswürdige Edge-Server (220) ein Server auf einem Kommunikationspfad zwischen einem Ursprung-Server (210) und einem verbundenen Client (50) ist, dem dahingehend vertraut werden kann, dass er Informationen nicht vor einem angemessenen Zeitpunkt freigibt, wobei die durch Computer ausführbaren Befehle Schritte durchführen, die umfassen: Ermitteln eines Freigabezeitpunktes, wobei der Freigabezeitpunkt ein frühester Zeitpunkt ist, zu dem beabsichtigt ist, das Ereignis dem Client (50) zuzuführen; Ermitteln eines Abschlusszeitpunktes, wobei der Abschlusszeitpunkt ein spätester Zeitpunkt ist, zu dem das Ereignis bei dem Client (50) eintreffen kann; Bestimmen einer ersten Latenz zwischen einem ersten vertrauenswürdigen Edge-Server (220) und einem ersten Client (50); Bestimmen einer Übertragungs-Latenz, die eine Latenz zwischen einem zweiten vertrauenswürdigen Edge-Server (220) und dem ersten Client (50) ist; Übertragen des ersten Clients (50) zu einem zweiten vertrauenswürdigen Edge-Server (220), wenn die Übertragungs-Latenz niedriger ist als die erste Latenz; Berechnen eines ersten Sendezeitpunktes als eine Funktion der ersten Latenz, der Übertragungs-Latenz, des Freigabezeitpunktes und des Abschlusszeitpunktes; und Senden des Ereignisses von dem ersten vertrauenswürdigen Edge-Server (220) zu dem ersten Client (50) zu dem ersten Sendezeitpunkt, wenn die Übertragungs-Latenz nicht niedriger ist als die erste Latenz; Senden des Ereignisses von dem zweiten vertrauenswürdigen Edge-Server (220) zu dem ersten Client (50) zu dem ersten Sendezeitpunkt, wenn die Übertragungs-Latenz niedriger ist als die erste Latenz.
  14. Computerlesbares Medium nach Anspruch 13, wobei der Schritt des Berechnens des ersten Sendezeitpunktes des Weiteren umfasst: Schätzen eines ersten Zuführzeitpunktes unter Verwendung der ersten Latenz; und Berechnen des ersten Sendezeitpunktes so, dass er vor dem Abschlusszeitpunkt abzüglich des ersten Zuführzeitpunktes liegt.
  15. Computerlesbares Medium nach Anspruch 13, wobei das Berechnen des ersten Sendezeitpunktes als eine Funktion der ersten Latenz Berechnen der ersten Sendezeitpunktes als eine Funktion einer zweiten Latenz zwischen dem ersten vertrauenswürdigen Edge-Server (220) und einem zweiten Client (50) einschließt und das computerlesbare Medium weitere durch Computer ausführbare Befehle zum Durchführen von Schritten aufweist, die umfassen: Senden des Ereignisses von dem ersten vertrauenswürdigen Edge-Server (220) zu dem zweiten Client (50) zu dem ersten Sendezeitpunkt.
  16. Computerlesbares Medium nach Anspruch, wobei der Schritt des Berechnens des ersten Sendezeitpunktes des Weiteren umfasst: Schätzen eines ersten Zuführzeitpunktes als eine Funktion der ersten Latenz; Schätzen eines zweiten Zuführzeitpunktes als eine Funktion der zweiten Latenz; Berechnen des ersten Sendezeitpunktes so, dass er vor dem Abschluss des Zeitpunkt abzüglich des ersten Zuführzeitpunktes liegt, wenn der erste Zuführzeitpunkt einen größeren Wert hat als der zweite Zuführzeitpunkt; und Berechnen des ersten Sendezeitpunktes so, dass er vor dem Abschlusszeitpunkt abzüglich des ersten zweiten Zuführzeitpunktes liegt, wenn der zweite Zuführzeitpunkt einen größeren Wert hat als der erste Zuführzeitpunkt.
  17. Computerlesbares Medium nach Anspruch 13, das weitere durch Computer ausführbare Befehle zum Durchführen der Schritte aufweist, die umfassen: Bestimmen einer zweiten Latenz zwischen dem ersten vertrauenswürdigen Edge-Server (220) und einem zweiten Client (50); und Berechnen eines zweiten Sendezeitpunktes als eine Funktion der zweiten Latenz; und Senden des Ereignisses von dem vertrauenswürdigen Edge-Server (220) zu dem zweiten Client (50) zu dem zweiten Sendezeitpunkt.
  18. System für die effiziente Verteilung von Ereignissen, wobei das System umfasst: einen Ursprungs-Server (210); wenigstens einen ersten und einen zweiten vertrauenswürdigen Edge-Server (220), mit denen jeweils ein erster Client (50) verbunden ist, wobei ein vertrauenswürdiger Edge-Server (220) ein Server auf einem Kommunikationspfad zwischen dem Ursprungs-Server (210) und einem verbundenen Client (50) ist, dem dahingehend vertraut werden kann, dass er Informationen nicht vor einem angemessenen Zeitpunkt freigibt; und durch Computer ausführbare Befehle zum Durchführen von Schritten, die umfassen: Ermitteln eines Freigabezeitpunktes, wobei der Freigabezeitpunkt ein frühester Zeitpunkt ist, zu dem beabsichtigt ist, das Ereignis dem Client (50) zuzuführen; Ermitteln eines Abschlusszeitpunktes, wobei der Abschlusszeitpunkt ein spätester Zeitpunkt ist, zu dem das Ereignis bei dem Client (50) eintreffen kann; Bestimmen einer ersten Latenz zwischen einem ersten vertrauenswürdigen Edge-Server (220) und einem ersten Client (50); Bestimmen einer Übertragungs-Latenz, die eine Latenz zwischen einem zweiten vertrauenswürdigen Edge-Server (220) und dem ersten Client (50) ist; Übertragen des ersten Client (50) zu einem zweiten vertrauenswürdigen Edge-Server (220), wenn die Übertragungs-Latenz niedriger ist als die erste Latenz; Berechnen eines ersten Sendezeitpunktes als eine Funktion der ersten Latenz, der Übertragungs-Latenz, des Freigabezeitpunktes und des Abschlusszeitpunktes; und Senden des Ereignisses von dem ersten vertrauenswürdigen Edge-Server (220) zu dem ersten Client (50) zu dem ersten Sendezeitpunkt, wenn die Übertragungs-Latenz nicht niedriger als die erste Latenz; Senden des Ereignisses von dem zweiten vertrauenswürdigen Edge-Server (220) zu dem ersten Client (50) zu dem ersten Sendezeitpunkt, wenn die Übertragungs-Latenz niedriger ist als die erste Latenz.
  19. Systeme nach Anspruch 18, wobei der Schritt des Berechnens des ersten Sendezeitpunktes des Weiteren umfasst: Schätzen eines ersten Zuführzeitpunktes unter Verwendung der ersten Latenz; und Berechnen des ersten Sendezeitpunktes so, dass er vor dem Abschlusszeitpunkt abzüglich des ersten Zuführzeitpunktes liegt.
  20. Systeme nach Anspruch 18, wobei der Schritt des Berechnens des ersten Sendezeitpunktes als eine Funktion der ersten Latenz Berechnen des ersten Sendezeitpunktes als eine Funktion einer zweiten Latenz einschließt und das System des Weiteren durch Computer ausführbare Befehle zum Durchführen von Schritten umfasst, die umfassen: Senden des Ereignisses von dem vertrauenswürdigen Edge-Server (220) zu einem zweiten Client (50) zu dem ersten Sendezeitpunkt, wobei der zweite Client (50) eine zweite Latenz hat.
  21. Systeme nach Anspruch 20, wobei der Schritt des Berechnens des ersten Sendezeitpunktes des Weiteren umfasst: Schätzen eines ersten Zuführzeitpunktes als eine Funktion der ersten Latenz; Schätzen eines zweiten Zuführzeitpunktes als eine Funktion der zweiten Latenz; Berechnen des ersten Sendezeitpunktes so, dass er vor dem Abschlusszeitpunkt abzüglich des ersten Zuführzeitpunktes liegt, wenn der erste Zuführzeitpunkt einen größeren Wert hat als der zweite Zuführzeitpunkt; und Berechnen des ersten Sendezeitpunktes so, dass er vor dem Abschlusszeitpunkt abzüglich des zweiten Zuführzeitpunktes liegt, wenn der zweite Zuführzeitpunkt einen größeren Wert hat als der erste Zuführzeitpunkt.
  22. Systeme nach Anspruch 18, das des Weiteren umfasst: durch Computer ausführbare Befehle zum Durchführen von Schritten, die umfassen: Bestimmen einer zweiten Latenz zwischen dem ersten vertrauenswürdigen Edge-Server (220) und einem zweiten Client (50); Berechnen eines zweiten Sendezeitpunktes als eine Funktion der zweiten Latenz; und Senden des Ereignisses von dem ersten vertrauenswürdigen Edge-Server (220) zu dem zweiten Client (50) zu dem zweiten Sendezeitpunkt.
  23. Systeme nach Anspruch 21, das des Weiteren umfasst: durch Computer ausführbare Befehle zum Durchführen von Schritten, die umfassen: Bestimmen einer Ursprungs-Latenz zwischen dem Ursprungs-Server (210) und dem ersten vertrauenswürdigen Edge-Server (220); Berechnen eines Ursprungs-Sendezeitpunktes als eine Funktion des ersten Sendezeitpunktes, des zweiten Sendezeitpunktes und der Ursprungs-Latenz; und Senden des Ereignisses von dem Ursprungs-Server (210) zu dem ersten vertrauenswürdigen Edge-Server (220) zu dem Ursprungs-Sendezeitpunkt.
  24. Systeme nach Anspruch 18, das des Weiteren umfasst: durch Computer ausführbare Befehle zum Durchführen von Schritten, die umfassen: Bestimmen einer Ursprungs-Latenz zwischen dem Ursprungs-Server (210) und dem ersten vertrauenswürdigen Edge-Server (220); Berechnen eines Ursprungs-Sendezeitpunktes als eine Funktion des ersten Sendezeitpunktes und der Ursprungs-Latenz; und Senden des Ereignisses von dem Ursprungs-Server (210) zu dem vertrauenswürdigen Edge-Server (220) zu dem Ursprungs-Sendezeitpunkt.
  25. Systeme nach Anspruch 18, wobei die durch Computer ausführbaren Befehle zum Bestimmen der ersten Latenz durch Computer ausführbare Befehle zum Durchführen von Schritten umfassen, die umfassen: Bestimmen einer ersten Übertragungs-Latenz; Vergleichen der ersten Latenz mit einer Übertragungs-Latenz; und Übertragen des ersten Client (50) zu einem zweiten vertrauenswürdigen Edge-Server (220), wenn die Übertragungs-Latenz niedriger ist als die erste Latenz; wobei die durch Computer ausführbaren Befehle zum Berechnen des ersten Sendezeitpunktes durch Computer ausführbare Befehle zum Bestimmen des ersten Sendezeitpunktes als eine Funktion einer zweiten Latenz zwischen dem zweiten vertrauenswürdigen Edge-Server (220) und dem ersten Client (50) einschließen; und die durch Computer ausführbaren Befehle zum Senden des Ereignisses durch Computer ausführbare Befehle zum Senden des Ereignisses von dem zweiten vertrauenswürdigen Edge-Server (220) zu dem ersten Client (50) zu dem ersten Sendezeitpunkt einschließen, wenn die Übertragungs-Latenz niedriger ist als die erste Latenz.
  26. Systeme nach Anspruch 25, wobei die Übertragungs-Latenz eine minimale theoretische Latenz ist.
DE60316494T 2002-03-15 2003-03-14 Zeitfensterbeschränkte Mehrfachsendung unter Benutzung von Verbindungsablau ffolgeplanung Expired - Lifetime DE60316494T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/099,251 US7085848B2 (en) 2002-03-15 2002-03-15 Time-window-constrained multicast using connection scheduling
US99251 2002-03-15

Publications (2)

Publication Number Publication Date
DE60316494D1 DE60316494D1 (de) 2007-11-08
DE60316494T2 true DE60316494T2 (de) 2008-01-17

Family

ID=28039548

Family Applications (2)

Application Number Title Priority Date Filing Date
DE60333499T Expired - Lifetime DE60333499D1 (de) 2002-03-15 2003-03-14 Zeitfensterabhängiges Multicast unter Verwendung von Verbindungsplanung
DE60316494T Expired - Lifetime DE60316494T2 (de) 2002-03-15 2003-03-14 Zeitfensterbeschränkte Mehrfachsendung unter Benutzung von Verbindungsablau ffolgeplanung

Family Applications Before (1)

Application Number Title Priority Date Filing Date
DE60333499T Expired - Lifetime DE60333499D1 (de) 2002-03-15 2003-03-14 Zeitfensterabhängiges Multicast unter Verwendung von Verbindungsplanung

Country Status (4)

Country Link
US (2) US7085848B2 (de)
EP (2) EP1351469B1 (de)
AT (2) ATE374492T1 (de)
DE (2) DE60333499D1 (de)

Families Citing this family (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4359019B2 (ja) * 2002-03-13 2009-11-04 富士フイルム株式会社 動画ストリーム送信方法
US7747729B2 (en) * 2002-06-14 2010-06-29 Hanoch Levy Determining client latencies over a network
US8060643B2 (en) * 2002-08-30 2011-11-15 Hewlett-Packard Development Company, L.P. Method and apparatus for dynamically managing bandwidth for clients in a storage area network
EP1411456A3 (de) 2002-10-16 2005-07-06 Xerox Corporation Verfahren und Vorrichtung zum Ermöglichen eines verteilten Abonnementsservices
US8230066B2 (en) 2002-11-04 2012-07-24 International Business Machines Corporation Location independent backup of data from mobile and stationary computers in wide regions regarding network and server activities
US20090118019A1 (en) 2002-12-10 2009-05-07 Onlive, Inc. System for streaming databases serving real-time applications used through streaming interactive video
US8964830B2 (en) * 2002-12-10 2015-02-24 Ol2, Inc. System and method for multi-stream video compression using multiple encoding formats
US9314691B2 (en) 2002-12-10 2016-04-19 Sony Computer Entertainment America Llc System and method for compressing video frames or portions thereof based on feedback information from a client device
US9138644B2 (en) 2002-12-10 2015-09-22 Sony Computer Entertainment America Llc System and method for accelerated machine switching
US7260640B1 (en) * 2003-02-13 2007-08-21 Unisys Corproation System and method for providing an enhanced enterprise streaming media server capacity and performance
US7502847B2 (en) * 2003-10-29 2009-03-10 Cisco Technology, Inc. Method of providing views of a managed network that uses network address translation
US7441041B2 (en) * 2003-11-29 2008-10-21 Microsoft Corporation Network download regulation method and system
JP4383952B2 (ja) 2004-04-27 2009-12-16 株式会社エヌ・ティ・ティ・ドコモ データ配信装置およびデータ配信時刻の変更方法
US7422152B2 (en) 2004-05-13 2008-09-09 Cisco Technology, Inc. Methods and devices for providing scalable RFID networks
US20070133520A1 (en) * 2005-12-12 2007-06-14 Microsoft Corporation Dynamically adapting peer groups
US7613703B2 (en) * 2004-09-30 2009-11-03 Microsoft Corporation Organizing resources into collections to facilitate more efficient and reliable resource access
US8250230B2 (en) * 2004-09-30 2012-08-21 Microsoft Corporation Optimizing communication using scalable peer groups
US8549180B2 (en) 2004-10-22 2013-10-01 Microsoft Corporation Optimizing access to federation infrastructure-based resources
US8458467B2 (en) * 2005-06-21 2013-06-04 Cisco Technology, Inc. Method and apparatus for adaptive application message payload content transformation in a network infrastructure element
US7664879B2 (en) 2004-11-23 2010-02-16 Cisco Technology, Inc. Caching content and state data at a network element
US7987272B2 (en) 2004-12-06 2011-07-26 Cisco Technology, Inc. Performing message payload processing functions in a network element on behalf of an application
US7725934B2 (en) 2004-12-07 2010-05-25 Cisco Technology, Inc. Network and application attack protection based on application layer message inspection
US7606267B2 (en) * 2004-12-10 2009-10-20 Cisco Technology, Inc. Reducing the sizes of application layer messages in a network element
US8082304B2 (en) 2004-12-10 2011-12-20 Cisco Technology, Inc. Guaranteed delivery of application layer messages by a network element
GB0427292D0 (en) * 2004-12-14 2005-01-12 Ibm A system, method and computer program for use in a publish/subscribe messaging system
US7698416B2 (en) * 2005-01-25 2010-04-13 Cisco Technology, Inc. Application layer message-based server failover management by a network element
US7533109B2 (en) * 2005-04-26 2009-05-12 Hewlett-Packard Development Company, L.P. Item queue management
US8447876B2 (en) * 2005-06-02 2013-05-21 Thomson Licensing Content timing method and system
US8266327B2 (en) * 2005-06-21 2012-09-11 Cisco Technology, Inc. Identity brokering in a network element
US7345585B2 (en) 2005-08-01 2008-03-18 Cisco Technology, Inc. Network based device for providing RFID middleware functionality
US7797406B2 (en) 2006-07-27 2010-09-14 Cisco Technology, Inc. Applying quality of service to application messages in network elements based on roles and status
US7539762B2 (en) * 2006-08-15 2009-05-26 International Business Machines Corporation Method, system and program product for determining an initial number of connections for a multi-source file download
US8938765B2 (en) * 2006-12-22 2015-01-20 Time Warner Cable Enterprises Llc Methods, apparatus and user interface for providing content on demand
US8296385B2 (en) * 2007-04-23 2012-10-23 Lenovo (Singapore) Pte. Ltd. Apparatus and method for selective engagement in software distribution
US8201164B2 (en) * 2007-07-20 2012-06-12 Microsoft Corporation Dynamically regulating content downloads
US7834612B2 (en) * 2007-07-26 2010-11-16 Altronix Corporation Method and apparatus for regulating voltage in a remote device
US8606862B2 (en) * 2007-08-21 2013-12-10 Microsoft Corporation Electronic mail delay adaptation
US8909714B2 (en) * 2007-08-21 2014-12-09 Microsoft Corporation Electronic mail delay adaptation
US8706819B2 (en) * 2007-08-21 2014-04-22 Microsoft Corporation Electronic mail delay adaptation
US8854924B2 (en) * 2007-10-29 2014-10-07 Agilent Technologies, Inc. Method, a device and a system for executing an action at a predetermined time
US7817636B2 (en) 2008-01-30 2010-10-19 Cisco Technology, Inc. Obtaining information on forwarding decisions for a packet flow
US8489134B2 (en) 2008-09-02 2013-07-16 Cisco Technology, Inc. System and method for providing presence based trunking in a network environment
US8144611B2 (en) * 2009-02-10 2012-03-27 Microsoft Corporation Network coordinate systems using IP information
US9542448B2 (en) * 2010-11-03 2017-01-10 Software Ag Systems and/or methods for tailoring event processing in accordance with boundary conditions
US9065811B2 (en) 2013-04-04 2015-06-23 Ericsson Television Inc. Methods, apparatus, and computer program products for communicating content files based on destination priority
US20150032801A1 (en) * 2013-07-29 2015-01-29 Matthew Bryan Hart Simultaneous events over a network
US10375195B2 (en) * 2013-11-06 2019-08-06 Fastly, Inc. Content node selection using network performance profiles
US9544403B2 (en) * 2015-02-02 2017-01-10 Linkedin Corporation Estimating latency of an application
US10313256B2 (en) * 2015-05-21 2019-06-04 Intel Corporation Apparatus and methods for adaptive data compression
US11722393B2 (en) * 2020-12-15 2023-08-08 Caterpillar Inc. Systems and methods for managing on-site communications for latency-dependent applications

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02290506A (ja) * 1989-04-28 1990-11-30 Mitsutoyo Corp 三次元測定機
US5920701A (en) * 1995-01-19 1999-07-06 Starburst Communications Corporation Scheduling data transmission
US6223286B1 (en) * 1996-03-18 2001-04-24 Kabushiki Kaisha Toshiba Multicast message transmission device and message receiving protocol device for realizing fair message delivery time for multicast message
US5991306A (en) * 1996-08-26 1999-11-23 Microsoft Corporation Pull based, intelligent caching system and method for delivering data over a network
US6061722A (en) * 1996-12-23 2000-05-09 T E Network, Inc. Assessing network performance without interference with normal network operations
US5978381A (en) * 1997-06-06 1999-11-02 Webtv Networks, Inc. Transmitting high bandwidth network content on a low bandwidth communications channel during off peak hours
SE9702239L (sv) 1997-06-12 1998-07-06 Telia Ab Arrangemang för lastbalansering i datornät
US6314465B1 (en) 1999-03-11 2001-11-06 Lucent Technologies Inc. Method and apparatus for load sharing on a wide area network
US6370688B1 (en) * 1999-05-26 2002-04-09 Enounce, Inc. Method and apparatus for server broadcast of time-converging multi-media streams
EP1259865A2 (de) 1999-12-16 2002-11-27 Microsoft Corporation Verfahren zur vor dem verkauf veröffentlichung von verschlüsselten digitalen daten
US7093026B2 (en) * 2000-02-14 2006-08-15 Matsushita Electric Industrial, Co. Ltd Data transmission system
US6842768B1 (en) * 2000-03-01 2005-01-11 Siemens Communications, Inc. Apparatus and method for selectable compression
US7162539B2 (en) * 2000-03-16 2007-01-09 Adara Networks, Inc. System and method for discovering information objects and information object repositories in computer networks
JP4611598B2 (ja) 2000-03-17 2011-01-12 ブリティッシュ・テレコミュニケーションズ・パブリック・リミテッド・カンパニー 同期したデータ配信
WO2001080515A2 (en) * 2000-04-17 2001-10-25 Circadence Corporation System and method for data prioritization
WO2001087978A2 (en) * 2000-05-12 2001-11-22 Millennium Pharmaceuticals, Inc. Human abc transporter and its use
US6807277B1 (en) 2000-06-12 2004-10-19 Surety, Llc Secure messaging system with return receipts
JP3308966B2 (ja) 2000-06-12 2002-07-29 松下電器産業株式会社 ノード間同期装置及びノード間同期方法
US7079535B2 (en) * 2000-07-28 2006-07-18 The Regents Of The Universtiy Of California Method and apparatus for real-time fault-tolerant multicasts in computer networks
US7130824B1 (en) 2000-08-21 2006-10-31 Etp Holdings, Inc. Apparatus and method for load balancing among data communications ports in automated securities trading systems
WO2002039307A1 (en) * 2000-11-09 2002-05-16 Sri International Content based routing devices and methods
US6718539B1 (en) * 2000-12-22 2004-04-06 Lsi Logic Corporation Interrupt handling mechanism in translator from one instruction set to another
US20050021467A1 (en) * 2001-09-07 2005-01-27 Robert Franzdonk Distributed digital rights network (drn), and methods to access operate and implement the same
US7155478B2 (en) * 2001-10-03 2006-12-26 International Business Machines Corporation Selectively handling data processing requests in a computer communications network
US20030121050A1 (en) * 2002-10-01 2003-06-26 Hari Kalva System and method for scheduling interactive audiovisual presentations

Also Published As

Publication number Publication date
EP1351469B1 (de) 2007-09-26
EP1816826B1 (de) 2010-07-21
EP1816826A2 (de) 2007-08-08
US7085848B2 (en) 2006-08-01
US20030177183A1 (en) 2003-09-18
EP1816826A3 (de) 2007-10-24
DE60316494D1 (de) 2007-11-08
US20060190598A1 (en) 2006-08-24
EP1351469A3 (de) 2004-08-18
DE60333499D1 (de) 2010-09-02
ATE475252T1 (de) 2010-08-15
US7275111B2 (en) 2007-09-25
EP1351469A2 (de) 2003-10-08
ATE374492T1 (de) 2007-10-15

Similar Documents

Publication Publication Date Title
DE60316494T2 (de) Zeitfensterbeschränkte Mehrfachsendung unter Benutzung von Verbindungsablau ffolgeplanung
DE60317837T2 (de) Verfahren und System zur Messung von Last und Kapazität auf einem Kanal mit variabler Kapazität
DE602004011347T2 (de) Ablaufsteuerung und Verfahren zur Planung von Datenübertragung in einem Kommunikationsnetz
DE19983761B9 (de) Vorrichtung und Verfahren zum Sammeln und Analysieren von Kommunikationsdaten
DE60217361T2 (de) Verfahren und System zur Überlastkontrolle in einem Kommunikationsnetzwerk
DE60017622T2 (de) Auf RSVP-basiertes Tunnelprotokoll zum Bereitstellen von integrierten Diensten
DE69926477T2 (de) Verfahren und Vorrichtung zur dynamischen Steuerung der Bereitstellung von differenzierter Diensten
DE60018799T2 (de) Netzwerkvermittlung mit paketfolgesteuerung
DE602005001815T2 (de) Verfahren zur effizienten Mehrfachverbreitung von Inhalten in einem Peer-to-peer Netzwerk
DE69832002T2 (de) Übertragungssystem und Übertragungsverfahren,Empfangssystem und Empfangsverfahren
DE69733441T2 (de) Netzwerk-Daten-Verteilungssystem
DE602004008415T2 (de) System und Verfahren zum Aufrechterhalten der Netzwerkverbindung
DE102017126197A1 (de) Vorrichtung und Verfahren zur skalierbaren Verkehrsformung bei einem Empfänger mit einer zeitlich indexierten Datenstruktur
DE602005004334T2 (de) Nms zur Verarbeitung von Multi-Server Ereignissen
DE10205108A1 (de) System und Verfahren zum Zugreifen auf Softwarekomponenten in einer verteilten Netzwerkumgebung
DE112005003264T5 (de) Verfahren und Vorrichtung zum Einstellen einer relativen Einschaltdauer zum Stromsparen in einem Rechnersystem
DE60125611T2 (de) Verfahren und Vorrichtung zur Kommunikation zwischen einem ersten und einem zweiten Netz
DE60302168T2 (de) Datenratenkontroller
EP1593237B1 (de) Verfahren zur übertragungsbandbreitenzuteilung in einer pake torientierten kommunikationseinrichtung
DE60210356T2 (de) Verwalter von Dienststufenübereinkommen in einem Datennetz
DE10157101A1 (de) Verfahren und Steuergerät für ein paketorientiertes Datennetzwerk zur Übertragung von Daten in variablen Zeitschlitzen
DE102018202902B4 (de) Dynamische TCP Proxy Auswahl zur Beschleunigung von kurzen Netzwerkflüssen
DE60214399T2 (de) Endgeräte, die so ausgelegt sind, dass sie als relaisserver zum verteilen von paketen in einem client-server-netzwerk wirken
DE10138363A1 (de) Verfahren zur Gewährleistung der Dienstgüte von Internet-Anwendungen bei optimaler Ausnutzung der aktuellen Netzressourcen
DE602004003690T2 (de) Verfahren und system zur dienstqualitätsoptimierung in einem datennetzwerk

Legal Events

Date Code Title Description
8364 No opposition during term of opposition