-
Gebiet der
Erfindung
-
Die
vorliegende Erfindung betrifft Verbesserungen an Datennetzwerken
und Systemen, Verfahren und Geräten,
die in solchen Netzen verwendet werden.
-
Allgemeiner
Stand der Technik
-
Bei
herkömmlichen
Client-/Server-Datennetzwerken, wie zum Beispiel TCP/IP oder anderen geleiteten
Netzen, bedient ein Hauptserver alle Terminals über ein einziges Serversocket.
Das ergibt extreme Spitzen in der Netzauslastung, insbesondere wenn
Daten zu einer großen
Anzahl von Clients gleichzeitig übertragen
werden müssen,
was Verzögerungen
in der Datenübertragung
verursacht.
-
Die
vorliegende Erfindung soll verbesserte Netzsysteme, Verfahren und
Geräte
bereitstellen, die die Netzleistung verbessern.
-
EP-A-0726
663 betrifft Daten-Multicasting, bei dem Information von einem „sendenden" Computer zu einem
einer Vielzahl anderer Computer, und von dem empfangenden Computer
zu anderen einer Vielzahl von Computern übertragen wird.
-
WO-A-00/65776
offenbart ein „Chaincast"-System zum Verteilen
von Inhalten, wie zum Beispiel Audio, Video, TV, Daten usw. über das
Internet, bei dem eine Sendequelle Inhalt zu einer ersten Gruppe
von Geräten überträgt, welche
den Inhalt zu weiteren Geräten
oder Gruppen weiter überträgt.
-
Kurzdarstellung
der Erfindung
-
Die
Erfindung stellt verbesserte Datenkommunikationsnetze, Verfahren
für das
Betreiben von Datenkommunikationsnetzen, Netzservern, Netzterminals
und Computerprogrammen, wie sie in den anliegenden Ansprüchen definiert
sind, bereit.
-
Kurzbeschreibung
der Zeichnungen
-
Ausführungsformen
der Erfindung werden unten ausschließlich beispielhaft unter Bezugnahme auf
die begleitenden Zeichnungen beschrieben, in welchen:
-
1 ein
Diagramm ist, das das Betriebsmodell eines Datenkommunikationsnetzes
veranschaulicht, das eine Ausführungsform
der vorliegenden Erfindung ist,
-
2A, 2B und 2C Diagramme sind,
die den Betriebsaufbau eines Hauptservers und von Terminals, die
in dem Netz der 1 verwendet werden, veranschaulichen,
-
3A und 3B Transaktionsdiagramme sind,
die das Routen und Datentransferprozesse veranschaulichen, die in
dem Netz der 1 verwendet werden, und
-
4 ein
Diagramm ist, das ein Beispiel eines Systems zum Verteilen von Daten
von einem Hauptserver zu einer Anzahl von Zielterminals gemäß der Erfindung
veranschaulicht.
-
Detaillierte
Beschreibung der bevorzugten Ausführungsformen
-
Unter
Bezugnahme auf die Zeichnungen veranschaulicht 1 ein
Betriebsmodell einer vereinfachten beispielhaften Ausführungsform
eines Datenkommunikationsnetzwerkes gemäß der Erfindung. Das Netz umfasst
ein Datenspeichersystem 10, das bei dieser Ausführungsform
ein Medienspeichersystem 18 für Daten (das heißt „Media" oder „Inhalt") aufweist, die selektiv über das
Netz zu verteilen sind, sowie eine Überwachungsdatenbank 20,
die zum Verwalten des Betriebs des Netzes wie unten ausführlicher
beschrieben, verwendet wird. Aus praktischen Gründen werden Daten, die von
dem Medienspeichersystem 18 zu verteilen sind, hier „Inhalt" genannt, worunter
verstanden wird, dass sie jeden Typ von Daten enthalten, die für Endbenutzer
von Interesse sind, darunter aber nicht eingeschränkt Text, Grafiken,
Video, Audio, ausführbarer
Code usw. Der Inhalt besteht im Allgemeinen aus einer Datendatei irgendeines
Typs.
-
Für den Zweck
der vorliegenden Erfindung versteht man unter „Inhalt" Dateien oder Teile von Dateien oder
Gleichwertiges, die auf einem Server gespeichert sind, von dem Server
durch einen Client heruntergeladen und von dem Client für den darauf folgenden
Gebrauch gespeichert werden, anders als bei digitalen Sendemedien,
bei welchen ein Datenstrom von einem Sendeserver übertragen
und vorübergehend
von Clients gepuffert wird, in manchen Fällen durch eingreifende Relay-Einheiten.
-
Ferner
weist das Netz einen Hauptserver 12 auf, der mit dem Medienspeichersystem 18 und
der Überwachungsdatenbank 20 kommuniziert
und das Verteilen des Inhalts aus dem Medienspeichersystem 18 steuert.
Das Netz weist ferner eine Vielzahl von Terminals 14 und 16 auf,
zu welchen Inhalt zu verteilen ist. Erfindungsgemäß und wenn
der gleiche Inhalt an eine Anzahl von Terminals zu verteilen ist, wirken
zumindest einige der Terminals 14 auch als „Relay-Server" beim Verteilen des
Inhalts an die restlichen Terminals 16 (das heißt einige
oder alle der Terminals können
auch als Relay-Server wirken).
-
Alle
Transaktionen zwischen dem Medienspeichersystem 18 und
den Terminals 14, 16 werden von dem Hauptserver 12 gesteuert.
Insbesondere werden alle Datendownloads zu den Terminals von dem
Medienspeichersystem 18 vom Hauptserver 12 verwaltet.
Im Allgemeinen wird Inhalt aus dem Speichersystem von dem Hauptserver
wiedergewonnen und zu den Terminals 14, 16 über den
Hauptserver weitergeleitet. In manchen Fällen gewinnt der Hauptserver
jedoch nicht selbst den Inhalt wieder und leitet ihn nicht selbst
weiter, sondern verwaltet das Wiedergewinnen und Weiterleiten des
Inhalts durch andere Server.
-
Der
Begriff „Zielterminal", der hier verwendet wird,
bedeutet ein Terminal, das der beabsichtigte Empfänger des
Inhalts (einer Datendatei) von dem Medienspeicher 18 ist.
Jedes Terminal 14, 16 kann das Ziel für eine Datendatei
sein. Bei dieser Ausführungsform
kann jedes des ersten Satzes von Terminals 14 auch als
Relay-Server betrieben werden, indem Daten zu einem oder mehreren
des zweiten Satzes von Terminals 16 wie unten beschrieben
weitergeleitet werden. Die Terminals 16 können auch
als Relay-Server zum Weitergeben von Daten zu zusätzlichen
Terminals (nicht gezeigt) stromabwärts wirken. Es ist klar, dass
nicht alle der Terminals, die in dem Netz enthalten sind, als Relay-Server
zu wirken brauchen, und das Netz kann Endgeräte enthalten, die nicht für den Betrieb
als Relay-Server geeignet sind.
-
Die Überwachungsdatenbank 20 registriert Aufzeichnungen
der Transaktionen zwischen dem Hauptserver 12 und den verschiedenen Terminals 14, 16.
Insbesondere überwacht
die Überwachungsdatenbank
die Leistung (Kommunikationsgeschwindigkeit und/oder andere Parameter,
wie zum Beispiel Zuverlässigkeit)
aller Terminals, die in dem Netz als Relay-Server wirken können. Diese
Information steht dem Hauptserver zur Verfügung. Insbesondere kann die Überwachungsdatenbank 12 dem
Hauptserver Listen von Terminaladressen bereitstellen, die gemäß ihrer
relativen Leistung geordnet sind.
-
Beim
Betrieb des Netzes und wenn eine Inhaltdatendatei zu bestimmten
Zielterminals zu verteilen ist, löst der Hauptserver 12 eine
Datentransportoperation aus, indem er eine Transportanforderung
an den ersten Satz von Terminals 14 sendet, die als die besten
Terminals aus der Liste der Zielterminals auf der Grundlage der
aktuellen Leistungsdaten ausgewählt
werden. Die Transportanforderung umfasst:
- – Details
zu der zu transportierenden Datei. Diese enthalten allgemein zum
Beispiel den Dateityp und die Dateigröße, Zeitstempel für das Aktivieren und
Deaktivieren des Inhalts, Verschlüsselung und Kompressionsdetails
usw.
- – Die
Adressen von Relay-Servern und Terminals, die an dem Verteilen der
Datei beteiligt sein sollen.
-
Die
Transportanforderung, die von dem Hauptserver 12 zu dem
ersten Satz von Terminals 14 gesendet wird, weist diese
Terminals an, Daten von dem Hauptserver 12 (oder von einer
anderen Serveradresse, die in der Transportanforderung enthalten ist)
wiederzugewinnen. Die Liste der restlichen Zielterminaladressen
wird auf die ersten Terminals 14 aufgeteilt, so dass jedes
der ersten Terminals 14 als ein Relay-Server zum Verteilen
der Daten an einen Untersatz der restlichen Zielterminals wirkt.
-
Als
Reaktion auf die Transportanforderung von dem Hauptserver 12 beginnt
jedes der ersten Terminals 14, die Datei von dem Hauptserver 12 herunterzuladen.
Wenn eines der ersten Terminals 14 eine vorbestimmte Anzahl
von Bytes der Datei empfangen hat, sendet das Terminal 14 eine
modifizierte Version der Originaltransportanforderung an seinen Untersatz
von Zielterminals 16. Die modifizierte Transportanforderung
identifiziert das relevante erste Terminal 14 als die Serveradresse,
von welcher sein Untersatz von Zielterminals 16 die Daten
wiedergewinnen soll. Je nach der Anzahl von Zielterminals kann die
Liste von Zielterminals mehrmals weiter unterteilt sein. Jedes des
zweiten Satzes von Terminals 16 kann daher eine Liste weiterer
Zielterminals empfangen, für
die es als ein Relay-Server wirken soll. In jedem Schritt wird vorgezogen,
dass die „besten" Terminals aus der
Liste der restlichen Zielterminals ausgewählt werden, um für den Rest
als Relay-Server zu wirken.
-
Wenn
jedes Terminal 14 oder 16 die ganze Datei heruntergeladen
hat, sendet es eine Bekanntgabemitteilung, wie durch 22 in 1 angezeigt,
direkt an den Hauptserver 12.
-
Der
Hauptserver 12 kann Datenanforderungen von dem ersten Satz
von Terminals 14 verarbeiten. Wenn das Terminal in dem
zweiten Satz von Terminals 16 das Terminal in dem ersten
Satz von Terminals 14 nicht erreichen kann, sendet es die
Datenanfrage zu dem Hauptserver 12.
-
Im
Allgemeinen bearbeiten der Hauptserver und jedes stromabwärtige Terminal,
das als Relay-Server wirkt, nur eine kleine Anzahl (zum Beispiel 2
bis 5) stromabwärtiger
Terminals. Ist die Anzahl von Zielterminals kleiner oder gleich
dieser Zahl, können die
Zielterminals alle die Daten direkt aus dem Hauptserver wiedergewinnen,
oder der Hauptserver kann das beste der Zielterminals auffordern,
für das/die anderen
als Relay-Server
zu wirken.
-
Es
ist klar, dass das Netz viele weitere Terminals als die in 1 veranschaulichten
enthalten kann, die in einer Baumstruktur angeordnet sind, in der
jedes Terminal entweder ein Knoten ist (und sowohl als Relay-Server als auch als
Zielterminal funktioniert), oder ein Blatt (und nur als Zielterminal
funktioniert); das heißt,
es kann vielfache Knotenterminals in dem Stromabwärts-Datenübertragungspfad zwischen
dem Hauptserver und jedem Zielterminal geben. Vorzugsweise besteht
auch ein Aufwärts-Kommunikationspfad 22 von
jedem Terminal 14, 16 direkt zu dem Hauptserver 12.
Der Aufwärtspfad 22 wird
von Zielterminals verwendet, um den Empfang von Daten zu bestätigen. Diese
Bestätigungen
werden direkt von den Zielterminals zu dem Hauptserver 12 wie
veranschaulicht gesendet. Der Aufwärtspfad 22 zwischen
den Terminals 14 und dem Hauptserver 12 wurde
zur Klarheit der Veranschaulichung aus 1 weggelassen.
-
Es
ist klar, dass das in 1 veranschaulichte Betriebsmodell
anhand einer existierenden, herkömmlichen
Netzinfrastruktur ausgeführt
werden kann (wie zum Beispiel das Internet oder Gleichwertiges)
und kein neues physisches Netz erfordert. Server und Terminals können mit
dem Netz-Backbone durch
synchrone Festnetzleitungen verbunden werden, wie zum Beispiel ISDN,
HSDL, T1 oder T3, und das Netz kann Vermittlungsverbindungen, drahtlose Verbindungen
usw. enthalten. 1 veranschaulicht daher logische
Verbindungen zwischen dem Server und Terminals, und keine physikalischen
Verbindungen. Ferner variieren die logischen Verbindungen zwischen
dem Hauptserver und den Terminals dynamisch beim Gebrauch des Netzes,
wie unten ausführlicher
beschrieben.
-
Die
Erfindung ist insbesondere für
den Gebrauch geeignet, bei dem alle Terminals wie beschrieben auch
als Relay-Server wirken können
und wenn sie als ständig
online angenommen werden können.
Es ist jedoch klar, dass die Erfindung an Terminals angepasst werden
kann, die nicht gleichzeitig als Relay-Server wirken (solche Terminals
wären immer „Blätter" an dem Ende von
Zielterminallisten).
-
Das
Zielterminal fordert, dass jedes Paket getrennt übertragen wird. Das zu übertragende
Paket enthält
die Information über
den Typ der zu übertragenden
Daten, die Größe, die
Kompressionsrate und die Prüfsummen,
die zum Bestätigen
des übertragenen
Datenpakets erforderlich sind.
-
2A der
Zeichnungen veranschaulicht den Betriebsaufbau des Hauptservers 12,
der eine Netzdatenbank 23 zum Speichern von Netzinformation
aufweist, inklusive der Adressen usw. von Netzterminals (diese Datenbank
kann die ganze oder einen Teil der Funktionalität der Überwachungsdatenbank 20 der 1 implementieren;
diese Datenbankfunktionen können
von einem oder mehreren Datenbanksystemen auf einen oder mehreren
Computern/Servern ausgeführt
werden), Datenbankschnittstellenmodule 24, 26 und
ein Terminalmodul 28. Das Terminalmodul 28, das
in dem Hauptserver 12 enthalten ist, wird auch in jedem
der Netzterminals/Relay-Server 14 und 16 verwendet
und weist ein geleitetes Netzprotokollmodul 30 (vorzugsweise
ein TCP/IP-Modul, andere geleitete Protokolle können jedoch ebenfalls verwendet
werden) und ein Hauptanwendungsmodul 32 auf. Wie in 2B gezeigt, stellen
die Datenbankschnittstellenmodule 24, 26 E-A (Eingangs-/Ausgangs)-Steuerfunktionen 34 bereit,
die die erforderliche Serverniveaufunktionalität für den Kern der Hauptanwendung 32 für die Datentransfersteuerung
und Anmeldedatensummierung bereitstellen, sowie Datenbankschnittstellenfunktionen,
die Zugang zu der Netzdatenbank 23 bereitstellen. Das kann
zum Beispiel entweder über
eine ODBC (open database connectivity)-Schnittstelle oder eine Datenbankschnittstelle,
die zu dem Netzdatenbanksystem 23 gehört, erfolgen.
-
Wie
in 2C gezeigt, weist die Hauptanwendung 32,
wie sie sowohl im Hauptserver als auch in den Terminals verwendet
wird, die auch als Relay-Server dienen, die folgenden Funktionsmodule auf:
Ein Kernmodul 38 legt empfangene Pakete aus und speichert
Daten.
-
Ein
Datenempfangsmodul 40 empfängt einzelne Pakete.
-
Ein
Datenvorbereitungsmodul 42 bereitet Daten, die weiterzuleiten
sind, vor.
-
Ein
Datenübertragungsmodul 44 sendet
Daten, die von dem Vorbereitungsmodul 42 vorbereitet wurden
und sendet Bestätigungen
zu relevanten Clients.
-
Ein
Routingsteuermodul 46 erhält optimale Datentransferraten
aufrecht.
-
Ein
Socketsteuermodul 48 verwaltet Socketobjekte.
-
Ein
Serversocket 50 überwacht
Daten, die über
das TCP/IP-Modul (oder jedes andere geleitete Netzprotokollmodul) 30 empfangen
werden.
-
Die
Clientsockets 52 übertragen
Daten über das
Modul 30. Die Anzahl von Clientsockets variiert dynamisch
in Abhängigkeit
von der Anzahl von Serveranschlüssen,
die zu jedem bestimmten Zeitpunkt erforderlich sind.
-
Bei
einem herkömmlichen
System hat ein Server eine serverorientierte Verbindung für Clients, die
ein Serversocket aufweist, das verwendet wird, um den Anschluss
mit dem Serversocket des Clients zu erstellen.
-
Bei
der vorliegenden Erfindung enthält
die Hauptanwendung, die in dem Hauptserver 12 und in jedem
Terminal, das auch als ein Relay-Server dient, verwendet wird, ein
Standard-Serversocket 50 zum Empfangen von Daten von seinen
Clients. Zusätzlich dazu
hat die Hauptanwendung Clientsockets 52 für stromabwärtige Kommunikationen
zu den stromabwärtigen
Terminals. Die tatsächlichen
zu den Zielterminals zu übertragenden
Daten werden über
diese Clientsockets gesendet, und Bestätigungen werden von den Terminals über das
Serversocket empfangen. Sobald die erforderlichen Daten von dem
Server gesendet wurden, kann das Clientsocket, das für den Zweck
des Sendens der Daten angelegt wurde, zerstört werden, um nicht unnütz Netzressourcen
zu verbrauchen. Anhand dieses Verfahrens verursachen empfangene
Bestätigungen
keine Unterbrechungen in dem ausgehenden Datenstrom. Jedes Terminal/ jeder
Server hat zwei „hart
codierte" Sockets,
ein Clientsocket 52 zum Verarbeiten anderer Terminals/Server,
und ein Serversocket 50 allein für den Hauptserver-Verbindungsgebrauch.
Zusätzliche
Sockets können
angelegt und dynamisch nach Bedarf verwendet werden. Jedes Socket
hat einen unabhängigen
Prozessor-Thread,
der es steuert, so dass Sockets ohne Unterbrechungen und Verzögerungen verwaltet
und gesteuert werden können.
-
Das Öffnen und
der Betrieb der Sockets wird dynamisch anhand einer C++-Klasse-Anwendung gehandhabt,
die ein neues Socket erzeugt, wenn eine neue Instanz dieser Klasse
erforderlich ist. Derart können
Sockets dynamisch verwaltet werden und ihre Anzahl kann nach Bedarf
variiert werden. Jeder Thread besitzt und steuert seine eigenen
Sockets. Wenn ein Socket nicht mehr gebraucht wird, zerstört der steuernde
Thread das Socket und danach sich selbst.
-
Der
Betrieb des Netzes wird unten beschrieben.
-
3A veranschaulicht
den Routingprozess.
-
Der
Hauptserver wählt
einen ersten Satz einiger (zwei oder drei) Terminals aus und sendet
die Transportanforderung (die die Adressen der relevanten Zielterminals
enthält)
zu jedem von ihnen. Jedes dieses ersten Satzes von Terminals bestätigt seine Verbindung
in der dynamischen Route, indem es eine Mitteilung direkt zu dem
Hauptserver sendet. Die Geschwindigkeit dieser Bestätigung kann
verwendet werden, um die Terminaldaten zu aktualisieren, die zum Überwachen
der Terminalleistung verwendet werden. Dieser erste Satz von Terminals
wird als die „besten" („schnellsten") Terminals für den Gebrauch zum
Datentransfer zu dem speziellen Zielterminal auf der Grundlage von
Leistungsdaten ausgewählt,
die vorab beim Betrieb des Netzes erfasst und in der Netzdatenbank
gespeichert wurden.
-
Wenn
der Datentransfer läuft,
werden die Daten an bekannte Terminals übertragen, die bereits als
Teil des Netzes registriert sind. Wenn ein neues Terminal beim Hauptserver
während
des Transfers registriert wird, wird es in den nächsten Datentransfer aufgenommen.
-
Wie
oben beschrieben, wählt
der Hauptserver die Terminals mit den kürzesten Reaktionszeiten aus.
Diese Information wird wie folgt erzielt: Der Hauptempfänger von
Routingbestätigungen
von bestimmten Terminals ist die Anwendung mit der „Serverrolle", die die Transportanforderungen
an diese Terminals gesendet hat. Wenn die Transferkette vervollständigt ist,
wird die Information natürlich
automatisch an den Hauptserver weitergeleitet. Die Leistung verschiedener
Terminals (Netzadressen) wird einfach durch Messen der Reaktionszeit
zwischen verschiedenen Terminals und durch Auswählen der Terminals mit den
kürzesten
Reaktionszeiten gemessen.
-
Die
Terminals brauchen nicht den gesamten Netzadressenraum des Netzes
zu kennen, da die Zielterminaladressen in den Transportanforderungen enthalten
sind.
-
Als
Teil der Transportanforderung sendet der Hauptserver die Adressen
anderer Zielterminals an den ersten Satz von Terminals/Relay-Servern.
Jedes Terminal wählt
seine eigenen stromabwärtigen
Terminals/Relay-Server
aus und sendet den Rest der Zielnetzadressen an die Terminals/Relay-Server
als Teil der modifizierten Transportanforderung. Jedes des ersten
Satzes der Terminals wählt
daher weitere zwei oder drei „beste" Terminals/Relay-Server
aus den Adressen aus, die ihm vom Hauptserver weitergereicht werden
und gibt die modifizierte Transportanforderung an diese Terminals
weiter, darunter auch die Details der anderen restlichen Zielterminals. Aufgrund
dieses dynamischen Routens braucht der Hauptserver nicht explizit
zu wissen, welche Terminals Daten liefern und welche Terminals sie
empfangen. Es reicht, dass sichergestellt wird, dass jedes Terminal
auf der Route zugänglich
ist. Wenn das Liefern für
eines der Terminals aus irgendeinem Grund scheitert, wird das in
der Datenbank registriert, und gescheiterte Lieferungen werden während des nächsten Transfers
wiederholt.
-
Sobald
die Route zu einem bestimmten Zielterminal erstellt wurde, werden
die Pakete der Datendatei entlang der definierten Route über die
ausgewählten
Relay-Server auf der Grundlage der Zielterminaladresse in dem Handle/Kopfteil
jedes Pakets weitergegeben.
-
Automatisches
Routen verteilt die Last gleichmäßig über einen
größeren Netzbereich
und verringert das Zeitfenster, das für irgendeine bestimmte Datentransferoperation
erforderlich ist.
-
Der
Datentransferprozess ist in 3B veranschaulicht.
-
Wie
in 3B gezeigt, fordert jedes Zielterminal als Reaktion
auf die Transportanforderung die Daten von dem Hauptserver oder
dem stromaufwärtigen
Terminal, das als Server wirkt (wie in der Transportanfrage spezifiziert)
als Pakete an, fügt
die Datei wieder zusammen und gibt die Pakete bei Bedarf an stromabwärtige Zielterminals
weiter. Wenn das Zielterminal das letzte Paket der Datei empfangen
hat, sendet es eine Bestätigung
an den Hauptserver zurück.
-
Vorzugsweise
werden alle Daten verschlüsselt
und im Binärformat
komprimiert übertragen.
Auf diese Art wird die Datensicherheit im Vergleich zum Übertragen
einfachen Texts verbessert, und der Datentransfer erfordert weniger
Zeit. Binärformatdaten erfordern
weniger „Intelligenz" von der jeweiligen
Anwendung, da kein Bedarf am Auslegen der empfangenen Daten besteht.
Sie können
direkt neu strukturiert werden, um eine geeignete Datenstruktur
zu bilden. Alle empfangenen Daten werden hauptsächlich zu einem Basistyp neu
strukturiert (der in dem Paketkopfteil identifiziert ist), wonach
die Information, die in dem Basistyp enthalten ist, den orientierten
Datentyp angibt. Dieser Mechanismus sorgt auch für die Datenprüfung: die
Größe jedes
Datentyps ist vorbestimmt, und die Menge an empfangenen Daten muss der
Größe des Datentyps
entsprechen.
-
Da
die gelieferten Daten nur binär
sind und da die Größe der Pakete
recht klein und die Anzahl der Pakete relativ groß sein kann,
besteht keine Gefahr, dass der Zweck der gelieferten Daten in dem Fall
bestimmt werden kann, in dem eine zu der Lieferung nicht zugelassene
Partei auf die Pakete zugreift. Es ist sehr schwierig, den Inhalt
von Binärdaten
abzuleiten, ohne ihre Struktur zu kennen. Das verbessert daher die
Datensicherheit beim Gebrauch eines öffentlichen Netzes.
-
Zum
besseren Verstehen der Erfindung werden unten Beispiele von Datenübertragungen
unter Bezugnahme auf eine bevorzugte Ausführungsform eines erfindungsgemäßen Netzes
beschrieben. Wie oben beschrieben, weist der Hauptserver eine Netzdatenbank
auf oder hat zu einer solchen Zugang, die alle der aktuell aktiven/registrierten
Terminals/Relay-Server des Netzes in der Reihenfolge ihrer Leistung
(Geschwindigkeit) auflistet. Es wird davon ausgegangen, dass die
von dem Hauptserver zu einem oder mehreren Zielterminals zu übertragenden
Daten eine einzige Datendatei enthalten.
-
Wie
oben beschrieben, enthält
die Transportanforderung die Adresse(n) des/jedes Zielterminals und
weitere Informationen über
die Daten, die zu übertragen
sind, darunter die Anzahl der Pakete usw.
-
Als
ein erstes Beispiel wird davon ausgegangen, dass die Daten zu einem
einzigen Zielterminal zu übertragen
sind. Der Hauptserver sendet die Transportanforderung direkt an
das Zielterminal. Das Zielterminal bestätigt die Anforderung und fordert dann
den Hauptserver auf, jedes Paket einzeln zu senden. Jedes dieser
Pakete wird einzeln komprimiert und verschlüsselt. Das Zielterminal bestätigt jedes
Paket. Wenn ein bestimmtes Paket scheitert, ist es nur erforderlich,
dieses Paket nochmals zu übertragen,
und nicht wieder mit dem gesamten Downloaden von vorn zu beginnen.
Unter bestimmten Umständen
sind Datenübertragungen
zu einem einzelnen Zielterminal unter Einsatz der Erfindung eventuell
nicht signifikant schneller als herkömmliche Downloadverfahren.
Das an die Pakete angewandte Komprimieren und die Tatsache, dass
gescheiterte Pakete kein Neustarten des Downloadens erfordern, bedeuten,
dass Einzelzieldownloads im Allgemeinen schneller und zuverlässiger sind
als herkömmliche Verfahren,
insbesondere für
sehr große
Dateien.
-
Als
zweites Beispiel und unter Bezugnahme auf 4 wird davon
ausgegangen, dass die Daten zu neununddreißig Zielterminals T1-T39 zu übertragen
sind, die in der Reihenfolge ihrer Leistung geordnet sind. Es wird
angenommen, dass der Hauptserver, M.S., und jedes Terminal, das
als ein Server wirkt, direkt stromabwärts nur mit einer vorbestimmten
Anzahl N stromabwärtiger
Terminals kommuniziert, und dass N = 3. Der Hauptserver sendet eine erste
Transportanforderung an das Terminal T1, eine zweite Transportanforderung
an das Terminal T2 und eine dritte Transportanforderung an das Terminal
T3, wobei jede ein Drittel der kompletten Liste der Zieladressen
enthält.
Da die Terminaladressen der Leistung nach geordnet sind und zum
gleichförmigen
Verteilen der Last über
das Netz, umfasst die Anforderung, die zu T1 gesendet wird, jede
1+N. Adresse (T1, 4, 7, 10, 13, 16, 19, 22, 25, 28, 31, 34, 37),
die an T2 gesendete Anforderung umfasst jede 2+N. Adresse (T2, 5,
8, 11, 14, 17, 20, 23, 26, 29, 32, 35, 38), und die an T3 gesendete
Anforderung umfasst jede 3+N. Adresse (T3, 6, 9, 12, 15, 18, 21,
24, 27, 30, 33, 36, 39). Es ist klar, wie dieser Ansatz für jeden Wert
von N und jede beliebige Anzahl von Terminals angewandt werden kann.
-
Unter
Bezugnahme auf T1 und seine dazugehörenden stromabwärtigen Adressen
bestätigt
T1 den Empfang der Anforderung von dem Hauptserver und kann dann
unverzüglich
mit dem Downloaden von Paketen von dem Hauptserver beginnen. T1
gibt die modifizierte Anforderung an den nächsten Satz der N-schnellsten
Terminals (T4, T7 und T10) der Liste der an T1 gesendeten Zieladressen
weiter. Die jeweils an T4, T7 und T10 weitergegebene Anforderung
enthält
1/N (1/3) der restlichen Adressen, die ursprünglich an T1 gesendet wurden,
in ähnlicher
Art verteilt wie die komplette Zielliste ursprünglich auf T1, T2 und T3 verteilt
wurde (das heißt,
dass T4 die Adressen von T13, T22 und T31 erhält, T7 Adressen von T16, T25
und T34, und T10 Adressen von T19, T28 und T37). Jedes der Terminals
T4, T7 und T10 bestätigt
die Anforderung beim Hauptserver, beginnt mit dem Downloaden von
Paketen von T1 (dieser Prozess kann starten, bevor das Downloaden
von dem Hauptserver zu T1 abgeschlossen ist) und gibt die weiter
modifizierte Anforderung an die restlichen Terminals in seiner eigenen
Adressliste weiter, von welchen jede die Anforderung beim Hauptserver
bestätigt
und mit dem Downloaden von Paketen von seinem jeweiligen Relay-Terminal
beginnt. Bei diesem Beispiel sind diese die abschließenden „Blatt"-Terminals, es ist jedoch klar, wie dieser
Prozess auf jede beliebige Anzahl von Terminals durch eine beliebige
Anzahl von Relay-Stufen erweitert werden könnte. Es ist auch klar, dass
das gleiche System für
die Zieladresslisten für
T2 und T3 gilt.
-
Es
ist klar, dass das genaue Verteilungssystem von dem in 4 veranschaulichten
abgeändert werden
könnte.
Wichtig ist, dass relativ schnellere Terminals zu Beginn der Routen
verwendet werden, und dass die relativ langsamsten Terminals die
Enden der Routen bilden.
-
Wenn
ein Transfer zu einem bestimmten Terminal scheitert, wird dieses
Terminal in der Zielliste weiter nach unten verlegt, so dass das
nächst schnellste
Terminal in dem relevanten Untersatz der Verteilungsliste in der
Baumstruktur „befördert" wird. Sollte zum
Beispiel in 4 die Verbindung von T2 zu T8
scheitern, wird T8 mit T17 ausgetauscht. Sollte die neue Verbindung
ebenfalls scheitern, könnten
andere Optionen probiert werden. Wenn alle verfügbaren Optionen scheitern,
wird das beim Hauptserver gemeldet.
-
Es
ist ferner klar, dass das erfindungsgemäße Verteilungssystem unter
Einsatz unterschiedlicher Netzarchitekturen umgesetzt werden könnte. Die Netzdatenbank
braucht nicht auf dem gleichen Server/Computer zu sein wie das Verteilungsmanagementsystem
(das die Transportanforderungen erzeugt), muss für diesen jedoch zugänglich sein.
Die zu übertragenden
Daten brauchen nicht auf dem gleichen Server/Computer wie das Verteilungsmanagementsystem
resident oder zugänglich
zu sein. Die an den ersten Satz von Terminals (T1, T2, T3 in 4) gesendete
Transportanforderung könnte
eine weitere Adresse eines anderen Servers (eines „Verteilungsservers") enthalten, von
dem Daten zu holen sind. Der Verteilungsserver könnte im Wesentlichen die gleiche
Funktionalität
wie oben für
den Hauptserver und die Relay-Server beschrieben haben.
-
Das
Terminal, das die Daten herunterlädt, bestätigt die Pakete beim Server,
von dem es herunterlädt.
Wenn das Download abgeschlossen ist, sendet es die Bestätigung zu
dem Hauptserver.
-
Die
Erfindung stellt daher Datenkommunikationssysteme, Verfahren und
Geräte
mit verbesserter Leistung bereit, bei welchen einige oder alle Terminals
nach Bedarf auch als Relay-Server wirken, dynamisches Routen und
verteilter Datentransfer stellen optimale oder nahezu optimale Datentransferraten
für jedes
Terminal in dem gesamten Terminalnetz sicher, und dynamisches Routen
stellt Datenlieferung sicher, auch wenn ein Teil des Netzes versagt.
-
Verbesserungen
und Änderungen
können eingegliedert
werden, ohne den Geltungsbereich der Erfindung, wie er in den anliegenden
Patentansprüchen
definiert ist, zu verlassen