-
TECHNISCHES GEBIET
-
Die
vorliegende Erfindung betrifft im Allgemeinen Datenübertragungen
in vernetzten Datenverarbeitungssystemen und im Besonderen die Übertragung
von Datenblöcken über das
Internet oder ähnliche
Netze. Ganz besonders betrifft die vorliegende Erfindung die Verknüpfung mehrerer
Datenströme von
mehreren Quellen, die an einen einzelnen Client im Netz gerichtet
sind.
-
HINTERGRUND DER ERFINDUNG
-
Netze
sorgen für
die Übertragung
von Daten von einer Quelle über
eine bestimmte Route an ein Ziel. Die Daten werden gemäß einem
bestimmten Protokoll entlang der Route durch Router (Leitwegrechner) übertragen.
Das Internet hat sich zu einem besonders wichtigen Netz für die Übertragung
und Verteilung von Daten (Texte, Codes, Bilder, Videos, Audiodateien
oder ein Gemisch derselben) und Software entwickelt. Benutzer sind
mit der Hochgeschwindigkeitsleitung des Internet und anderen Netzen
mit sehr unterschiedlicher Übertragungsrate
verbunden, die von 14,4 Kbit/s bis zu über 45 Mbit/s reicht.
-
Es
gibt Anwendungen, bei denen Clients innerhalb des Netzes verschiedenartige
Daten von verschiedenen Quellen in Echtzeit als Eingabedaten für eine Anwendung
empfangen, die einem Benutzer in einem Bild auf einer grafischen
Benutzeroberfläche dargeboten
wird. Das wird dadurch erreicht, dass die in Echtzeit ankommenden
Daten an einem gemeinsamen Punkt wie beispielsweise einem Anwendungsserver
miteinander verknüpft
und dann als verknüpfte
Daten direkt zur Client-Station weitergeleitet werden. In dem Artikel „SCTP multistraming:
preferential treatment among streams" von S. Samtani et al., Milcom 2003,
Boston, Massachusetts, 13. bis 16. Oktober 2003, IEEE Military Communications
Conference, New York, USA, Band 2 von 2, 13. Oktober 2003, S. 966
bis 970,
XP 010698618 ,
ISBN 0-7803-8140-8,
wird ein Verfahren zur Übertragung mehrerer
Datenströme
innerhalb einer Anwendung an einen Client vorgestellt, bei dem die
verschiedenen Datenströme
unter Verwendung des SCTP (Stream Control Transmission Protocol,
Protokoll zur Steuerung von Datenströmen) durch das Netz unterschiedlich
behandelt werden. Bei der Übertragung mehrerer
Datenströme
(Multistreaming) wird ein Verknüpfungsmechanismus
zum Übertragen
unterschiedlicher, zu ein und derselben logischen Anwendungssitzung
gehörender
Objekte bereitgestellt, indem für
die Vielzahl von Datenströmen
eine Teilverknüpfung
erzeugt wird.
-
Ein
Beispiel für
ein vernetztes System, das einem Client verknüpfte Videodaten von mehreren Quellen
zur Verfügung
stellt, ist in 6 dargestellt. Der Videoserver
empfängt über die
Leitung 1 Aktieninformationen vom Aktienserver und über die
Leitung 2 Nachrichtendaten vom Nachrichtenserver. Dann verknüpft der
Videoserver die aktuellen Aktienkurse mit der Nachrichtenleiste
zu einem zusammengesetzten Videobild, der über die Leitung 3 zum Client übertragen
wird.
-
Es
ist klar, dass durch das Verknüpfen
der Nachrichteninformationen mit den Aktieninformationen im Videoserver
und das anschließende
Weiterleiten zum Client die Bereitstellung der Echtzeitdaten beim
Client weiter verzögert
wird. Ungeachtet dessen wurde die zusätzliche Verzögerung durch
die Videobearbeitung bisher als notwendig angesehen, um die Videobilder
im Videoserver zu erstellen und den Client nicht noch mehr mit Aufgaben
zur Verknüpfung von
Daten von mehreren Quellen und zum Erstellen des Videobildes aus
den Quellen zu belasten. Für den
Client wäre
es jedoch von Vorteil, die Videoanweisungen zum Erstellen des Videobildes
direkt vom Videoserver, die Nachrichten- und Aktiendaten hingegen
direkt vom Nachrichtenserver und vom Aktienserver zu empfangen,
um so die Verzögerung
beim Empfang der Echtzeitdaten zu verringern.
-
ZUSAMMENFASSUNG DER ERFINDUNG
-
Die
Ausführungsarten
gemäß der Erfindung sind
in den Hauptansprüchen
1, 10 und 11 definiert.
-
Gemäß der vorliegenden
Erfindung werden verbesserte Verfahren, Systeme und Fertigungsartikel
in einem lokalen Datenverarbeitungssystem (lokales System) zum Verwalten
der Beförderung
eines Datenstroms über
eine Datenübertragungsleitung von
einem fernen Datenverarbeitungssystem (fernes System) an ein Client-Datenverarbeitungssystem (Client)
innerhalb eines Netzes beschrieben. Ein bevorzugtes Verfahren gemäß der vorliegenden
Erfindung umfasst die Schritte des Erzeugens einer Verknüpfung zwischen
dem Client und dem lokalen System zum Übertragen einer Vielzahl von
Datenströmen
zwischen dem Client und dem lokalen System als Funktion einer Vielzahl
von Adressen des lokalen und des fernen Systems sowie des Anweisens
des fernen Systems, einen fernen Datenstrom unter Verwendung einer
oder mehrerer aus der Vielzahl von Adressen des fernen Systems an
den Client zu übertragen,
die zum Erzeugen der Verknüpfung
verwendet werden, sodass der Client den fernen Datenstrom innerhalb
der Verknüpfung
empfängt.
-
Alle
Aufgaben, Merkmale und Vorteile der vorliegenden Erfindung werden
aus der folgenden detaillierten schriftlichen Beschreibung klar.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
Diese
Erfindung wird in der folgenden Beschreibung in einer bevorzugten
Ausführungsart
unter Bezug auf die Zeichnungen beschrieben, in denen gleiche Bezugsnummern
dieselben oder ähnliche Elemente
darstellen, wobei:
-
1 ein
vernetztes Datenverarbeitungssystem zeigt, in dem eine bevorzugte
Ausführungsart der
vorliegenden Erfindung realisiert werden kann.
-
2A das
Format des Befehls zur Datenstromverknüpfung (Stream Aggregation,
SA) gemäß einer
bevorzugten Ausführungsart
der vorliegenden Erfindung zeigt.
-
2B das
Format des Befehls für
den Bereich der Übertragungssequenznummern
(Transmission Sequence Number Range, TSNR) gemäß einer bevorzugten Ausführungsart
der vorliegenden Erfindung zeigt.
-
3 eine
im Speicher des lokalen Server gespeicherte Tabelle der Übertragungssequenznummern
(Transmission Sequence Number, TSN) gemäß einer bevorzugten Ausführungsart
der vorliegenden Erfindung zeigt.
-
4A eine
Darstellung einer typischen Softwarearchitektur für ein Server-Client-System
ist, das in einer bevorzugten Ausführungsart der vorliegenden
Erfindung genutzt werden kann.
-
4B eine
Darstellung einer vierschichtigen Datenübertragungsarchitektur für ein Netz
ist, die in einer bevorzugten Ausführungsart der vorliegenden
Erfindung genutzt werden kann.
-
5 ein
Ablaufschaubild des Prozesses für die
dynamische Datenstromverknüpfung
in Echtzeit für
Clients gemäß einer
bevorzugten Ausführungsart der
vorliegenden Erfindung zeigt.
-
6 ein
Blockschaubild eines Netzsystems gemäß dem Stand der Technik ist,
das einem Client verknüpfte
Videodaten von mehreren Quellen zur Verfügung stellt.
-
DETAILLIERTE BESCHREIBUNG BEVORZUGTER AUSFÜHRUNGSARTEN
-
Bei
einer bevorzugten Ausführungsart
steuert ein lokaler Server in Echtzeit die Verknüpfung mehrerer Datenströme von mehreren
fernen Servern an der Netzschnittstelle eines Netz-Client zur Nutzung
durch eine Client-Anwendung. Zwischen dem lokalen Server und dem
Client wird durch Angeben mehrerer gültiger Quellen-IP-Adressen
gemäß der SCTP-Funktion
für verteilte
Server eine SCTP-Verknüpfung
erzeugt, indem mindestens eine oder mehrere der an den Client gesendeten Quellen-IP-Adressen
einer Vielzahl ferner Server und dem lokalen Server zugeordnet werden.
Der lokale Server tauscht unter Verwendung von UDP-Paketen mit den
fernen Servern Daten aus, um die fernen Server anzuweisen, die angeforderten
Echtzeitdaten an den angegebenen IP-Adressen direkt an den Client
zu senden. Dann erzeugt jeder ferne Server einen lokalen Endpunkt
für eine
SCTP-Verbindung mit dem Client, ohne dass die standardmäßige Initialisierungsprozedur
zum Erzeugen einer SCTP-Verknüpfung
erforderlich ist (d.h., es werden keine INIT- und INIT ACK-Nachrichten übertragen).
Anschließend
liefern der lokale Server und die fernen Server Echtzeitdaten für dieselbe
Verknüpfungsanwendung über eine Leitung
auf einer zweiten IP-Adresse, die in der Liste der Mehrfachnutzungsadressen
im Client angegeben ist, während
der Client davon ausgeht, dass die Daten von einer einzigen Quelle
im lokalen Server stammen.
-
In
den Figuren und insbesondere in 1 werden
nun ein vernetztes Datenverarbeitungssystem dargestellt, in dem
eine bevorzugte Ausführungsart
gemäß der vorliegenden
Erfindung realisiert werden kann. Das vernetzte Datenverarbeitungssystem 102 beinhaltet
zumindest ein lokales Server-System 104, das über mindestens
ein Netz 108, zum Beispiel über das Internet, mit mindestens
einem Client-System 106 verbunden ist. Das vernetzte Datenverarbeitungssystem 102 beinhaltet
ferner zwei oder mehrere ferne Server-Systeme 110, 112,
die über das
Netz 108 mit dem Client-System 106 und dem lokalen
Server 104 verbunden sind. Obwohl nur ein einziges lokales
Server-System 104, zwei ferne Server 110, 112 und
ein einziges Client-System 106 dargestellt sind, ist klar,
dass das vernetzte Datenverarbeitungssystem 102 eine (nicht
gezeigte) beliebige Anzahl von lokalen Servern, fernen Servern und
Client-Systemen beinhalten können,
die über
eine oder mehrere Verbindungen und Netze, z.B. über das Netz 108,
miteinander verbunden sind.
-
Bei
der in 1 gezeigten bevorzugten Ausführungsart läuft im Client 106 eine
Anwendung, die einen Datenstrom von Echtzeitdaten von mehreren fernen
Quellen benötigt,
die durch den lokalen Server 104 gesteuert werden. Gemäß der bevorzugten
Ausführungsart
steuert der lokale Server 104 in Echtzeit die Verknüpfung mehrerer
Datenströme
von mehreren fernen Servern 110, 112 an der Netzschnittstelle des
Client 106 zur Verwendung durch eine Client-Anwendung.
Durch das Bereitstellen der Funktionalität gemäß der vorliegenden Erfindung
durch den lokalen Server 104 und die fernen Server 110, 112 braucht der
Client 106 selbst nicht über die Fähigkeit zum Verknüpfen der
mehreren Datenströme
zu verfügen. Bei
einer Ausführungsart
handelt es sich bei dem lokalen Server 104 um einen Videoserver,
der Echtzeitdaten zur Darstellung auf einem Benutzerbildschirm beim
Client 106 liefert.
-
Für die Übertragung
von Daten über
ein Netz muss eine Reihe von Regeln eingehalten werden, damit jeder
Teil der Übertragungssequenz
richtig ausgeführt
wird. Jede dieser Regeln wird als Protokoll bezeichnet, und eine
Reihe von Regeln wird als Protokollgruppe bezeichnet. Datenübertragungen zwischen
dem lokalen Server-System 104, den fernen Servern 110, 112 und
dem Client-System 106 erfolgen gemäß einer Vielfalt von Protokollen,
darunter die SCTP/IP-Spezifikation (RFC 2960), die TCP/IP-Spezifikation
(RFC 793), die UDP/IP-Spezifikation
(RFC 768) sowie das Dateiübertragungsprotokoll (File
Transfer Protocol, FTP), das Hypertextübertragungsprotokoll (Hypertext
Transfer Protocol, HTTP) oder einige ähnliche Datenübertragungsprotokolle.
Obwohl die meisten Netzprotokolle ursprünglich von unabhängigen Forschungsgruppen
entwickelt wurden, stellen sie jetzt offene (frei verfügbare) Standards
dar, von denen viele in Form einer Reihe von durchnummerierten RFC-Blättern (Request
for Comment-Kommentaraufruf) veröffentlicht
sind. Das IP-Protokoll beispielsweise trägt die Bezeichnung RFC 791.
Die RFC-Blätter
und andere detaillierte Beschreibungen dieser Protokolle sind im
Internet oder in diversen Bibliotheken frei verfügbar.
-
Das
Protokoll für
die Übertragungskontrolle/Internetprotokoll
(TCP/IP) hat sich zum weithin verwendeten Standard-Übertragungsprotokoll im Internet
und in der -Intranettechnologie entwickelt, mit dessen Hilfe eine
breite Vielfalt unterschiedlichster Clients, Server und Datenübertragungssysteme
miteinander verbunden werden kann. Das Internetprotokoll (IP) ist
das Protokoll der Netz- oder Vermittlungsschicht, und das Protokoll
für die Übertragungskontrolle
(TCP) ist das Protokoll der Transportschicht. Auf der Netzebene
bietet das IP einen Dienst für
die „Datenpaket"-Lieferung. Das TCP
bietet einen Dienst auf der Transportebene oberhalb des Datenpaketdienstes,
um eine sequenzielle Lieferung eines Bytestroms zwischen zwei IP-Hosts zu garantieren.
-
Andere
verbreitete Übertragungsprotokolle sind
das Benutzer-Datenpaketprotokoll
(User Datagram Protocol, UDP), das einen verbindungsfreien Datenpaketdienst
definiert, und das Übertragungsprotokoll
für die
Datenstromsteuerung (Stream Control Transmission Protocol, SCTP),
das einen verbindungsorientierten Transportdienst bietet, der eine Funktionalität für das Multistreaming
von mehreren lokalen Systemen ermöglicht. Obwohl sich diese Netzprotokollgruppen
voneinander unterscheiden, weisen sie eine ähnliche Struktur auf und umfassen eine
Gruppe von Schichten, wobei jede Schicht für einen anderen Aspekt der
Datenübertragung
zuständig ist.
Zur einfacheren Darstellung bezieht sich die folgende Erörterung
in erster Linie auf die Verwendung der Erfindung in Verbindung mit
den Protokollen SCTP/IP und UDP/IP. Dem Fachmann sollte jedoch klar
sein, dass die Erfindung genauso gut auf andere Netzprotokolle angewendet
werden kann.
-
Bei
einer bevorzugten Ausführungsart
verwendet der lokale Server 104 SCTP-Befehle, um den Client 106 für den Empfang
der verknüpften
Datenströme
vom lokalen Server 104 und den fernen Servern 110, 112 zu
konfigurieren. Das SCTP gewährleistet
die vollständige
parallele Übertragung
mehrerer Datenströme
(in Form von Einheiten, die als Nachricht bezeichnet werden) zwischen
verbundenen Endpunkten. Die durch das SCTP bereitgestellte Multistreaming-Funktion
gestattet die Aufteilung der Daten in mehrere Datenströme, die
unabhängig
voneinander übertragen
werden können,
sodass sich Datenverluste in einem der Datenströme nur auf diesen einen Datenstrom
auswirken, nicht aber auf andere Datenströme. Das SCTP unterstützt auch
den Empfang von mehreren lokalen Systemen, was bedeutet, dass einem
verbundenen Endpunkt alternative IP-Adressen zugewiesen sein können, damit
dieser veränderte
Bedingungen infolge Netzstörungen umgehen
kann. Gemäß der bevorzugten
Ausführungsart
startet der Client 106 über
die Verbindungsleitung 114 eine SCTP-Verknüpfung zum
lokalen Server 104, indem er einen Startbefehl (INIT) an
den lokalen Server 104 ausgibt. Durch eine an den lokalen
Server 104 übermittelte
vordefinierte Beziehung, spezielle Anwendung oder spezielle Option
erkennt der lokale Server 104, dass die Verknüpfung einen Echtzeitdatenstrom
verknüpfter
Daten von einem oder mehreren fernen Servern im Netz erfordert.
-
Als
Reaktion auf den Empfang einer INIT-Nachricht, welche das Starten
einer SCTP-Verknüpfung
verlangt, sendet der lokale Server 104 als Reaktion eine
Startbestätigungsnachricht
(INIT ACK) an den Client 106 mit der im INIT-Befehl angegebenen
Quellenadresse. Wenn die Client-Anwendung verknüpfte Daten von fernen Servern
verarbeitet, sendet der lokale Server 104 über die
Leitung 114 eine INIT ACK-Nachricht an den Client 106,
die gemäß der SCTP-Funktion
für verteilte
Server mehrere gültige
IP-Quellenadressen angibt, wobei mindestens eine oder mehrere der
an den Client gesendeten IP-Quellenadressen jedem fernen Server 110, 112 und
dem lokalen Server 104 zugeordnet sind. Der Client 106 speichert
diese IP-Adressen in seiner Adressliste für verteilte Server, um Echtzeitdatenströme empfangen
zu können.
-
Der
lokale Server 104 steht unter Verwendung von UDP-Pakten über die
Leitungen 116 und 118 mit den fernen Servern 110, 112 in
Verbindung, um die fernen Server 110 und 112 zur
Lieferung der angeforderten Echtzeitdaten auf den angegebenen IP-Adressen direkt an
den Client 106 aufzufordern. Ein erster Satz an die fernen
Server 110, 112 gesendeter UDP-Pakete enthält Nutzdaten
in Form eines Befehls Datenstromverknüpfung (Stream Aggregation,
SA), der gemäß der bevorzugten
Ausführungsart durch
das Betriebssystem des fernen Server interpretiert und ausgeführt wird. 2A zeigt
das Format des SA-Befehls. Der SA-Befehl 202 enthalt einen Befehlstyp 204,
der die UDP-Nutzdaten als SA-Befehl kennzeichnet, einen Client-Adresstyp 204,
der zum Beispiel das IPv4 oder IPv6 angibt, eine Clientadresse 208,
welche die IP-Adresse des Client 106 zum Empfangen der
Streaming-Daten angibt, eine Datenstrom-ID 210, welche
die ID des zur Verknüpfung
mit dem Client 106 vorgesehenen Datenstroms des fernen
Server angibt, und einen Datentyp 212, der die Anwendungsdaten
angibt, welche durch die verarbeitende Anwendung im Client 106 angefordert werden.
Der SA-Befehl teilt den fernen Servern die Verknüpfung der Daten von mehreren
Quellen mit und weist die fernen Server an, die angeforderten Echtzeitdaten
direkt an den Client zu übertragen.
Als Reaktion auf den SA-Befehl erzeugt dann jeder ferne Server 110, 112 einen
lokalen Endpunkt für
eine SCTP-Verbindung
mit dem Client 106, ohne dass die standardmäßige Initialisierungsprozedur
zum Erzeugen einer SCTP-Verknüpfung
erforderlich ist (d.h., es werden keine INIT- und INIT ACK-Nachrichten übertragen).
-
Anschließend sendet
der lokale Server 104 einen zweiten Satz UDP-Pakte an jeden
fernen Server 110, 112 mit Nutzdaten, die einen
Befehl TSN-Bereich (TSNR) gemäß der vorliegenden
Erfindung enthalten. 2B zeigt das Format des TSNR-Befehls. Der TSNR-Befehl 220 enthält einen
Befehlstyp 222, der die UDP-Nutzdaten als TSNR-Befehl kennzeichnet,
eine Datenstrom-ID 224, welche die ID des zur Verknüpfung mit
dem Client 106 vorgesehenen Datenstroms des fernen Server
angibt, eine TSN-Startnummer 226, welche die TSN-Startnummer
für die Nachrichtenfolge
angibt, und die TSN-Endnummer 228, welche die letzte Nummer
der Übertragungsfolge
in dem für
die Übertragung
durch diesen fernen Server zulässigen
Bereich angibt. Der TSNR-Befehl teilt dem empfangenden fernen Server
den Bereich der Übertragungssequenznummern
(TSN) mit, die dieser zur Übertragung
der Streamingdaten an den Client 106 verwenden soll. Es
ist klar, dass die Befehle SA und TSNR bei alternativen Ausführungsarten zu
einem einzigen Befehl oder zu einer UDP-Nutzdateneinheit zusammengefasst
werden können.
-
Anschließend überträgt der lokale
Server 104 über
die einer ersten IP-Adresse zugewiesene Leitung 114 Daten
zur Verknüpfungsanwendung
im Client 106. Der ferne Server 112 liefert über die
Leitung 120 mit einer in der Mehrfachquellen-Adressliste im Client 106 zugewiesenen
zweiten IP-Adresse Echtzeitdaten an dieselbe Verknüpfungsanwendung. Außerdem liefert
der ferne Server 110 über
die Leitung 122 Echtzeitdaten mit einer in der Mehrfachquellen-Adressliste
im Client 106 zugewiesenen zweiten IP-Adresse an dieselbe
Verknüpfungsanwendung.
-
Der
Datenaustausch im SCTP erfolgt nach der TCP-Prozedur mit selektiver
Bestätigung
(Selective Acknowledgement, SACK), wobei der Empfang von DATA-Nachrichten
durch das Senden einer SACK-Nachricht bestätigt wird, die nicht nur den empfangenen
zusammenhängenden
TSN-Bereich, sondern auch alle einzelnen TSNs anzeigt, welche die
Lücken
in der empfangenen TSN-Folge darstellen. Die über die Leitungen 120 und 122 übertragenen
SCTP-Nachrichten liefern die Datenströme, die durch das Paar aus
Datenstrom-ID/Datenstromsequenznummer in den IP-Adressen gekennzeichnet sind,
die für
die aktuelle Verknüpfung
zwischen dem Client 106 und dem lokalen Server 104 gelten.
Auf diese Weise können
alle fernen Datenquellen ihre Echtzeitdaten direkt an den Client
senden, während der
Client seine Arbeit in dem Glauben abwickelt, dass die Daten von
einer einzigen Quelle im lokalen Server 104 stammen. Nach
dem Empfangen jeder Datennachricht (DATA) von jeder der Datenleitungen 114, 120 und 122 antwortet
der Client 106 mit einer selektiven Bestätigung (SACK)
an die in der empfangenen Datennachricht enthaltene Quellenadresse.
-
Der
lokale Server 104 verwaltet in seinem Speicher eine Tabelle,
um alle zugeteilten TSN-Bereiche für jeden der fernen Server nachzuverfolgen, die
Echtzeitdatenströme
in Verbindung mit dem Client 106 übertragen. 3 zeigt
zum Beispiel eine TSN-Tabelle 300, die im Speicher des
lokalen Server 104 gespeichert ist. Die TSN-Tabelle 300 beinhaltet einen
Eintrag, der die Datenstrom-ID und den jedem einzelnen Server, dem
lokalen Server, dem fernen Server 1 und dem fernen Server 2 (siehe 1) kennzeichnet.
Bei dem in 3 gezeigten Beispiel hat der
lokale Server 104 sich selbst den Bereich 10000 bis 12999
in der TSN-Tabelle zugeteilt. Ferner zeigt die Tabelle einen TSN-Bereich
von 13000 bis 15999 für
den fernen Server 1 und einen TSN-Bereich von 16000 bis 19999 für den fernen
Server 2 an. Jeder dieser Bereiche wird durch einen TSNR-Befehl 220 für jeden
einzelnen der fernen Server 110, 112 mitgeteilt.
-
Da
der Client mit einer selektiven Bestätigung SACK auf die in den
SCTP-Kopfdaten angegebene Quellenadresse des Server antwortet, empfängt der
sendende ferne Server die SACK und leitet die Bestätigung über die
Leitungen 116, 118 an den lokalen Server weiter,
sodass der lokale Server 104 seine TSN-Tabelle 300 in seinem Speicher
aktualisieren und die zugewiesenen TSN-Bereiche ausweisen kann.
Wenn die durch einen bestimmten fernen Server verwendete kumulative
TSN den in der TSN-Tabelle des lokalen Server gespeicherten und dem
Server zugewiesenen TSN-Bereich überschritten
hat, weist der lokale Server 104 diesem fernen Server auf
der Grundlage des nächsten
verfügbaren Satzes
von Übertragungsfolgenummern
einen neuen Bereich von TSN-Nummern zu. Nach der Aktualisierung
der TSN-Tabelle 300 mit
dem neuen Bereich der Übertragungsfolgenummern
für den
betreffenden fernen Server gibt der lokale Server 104 einen
TSNR-Befehl 220 an den fernen Server aus, der den neuen
TSN-Bereich für
diesen fernen Server angibt.
-
Bei
einem Beispiel einer bevorzugten Ausführungsart beinhaltet ein auf
der grafischen Benutzeroberfläche
des Client (106) gezeigter kompletter Bildschirm ein Laufband
mit aktuellen Aktienkursen von einem Aktienserver (110)
und eine Nachrichtenleiste von einer Presseagentur auf einem Nachrichtenserver
(112) über
die IP-Adressen, die dem Client (106) in seiner Liste der
verteilten Serveradressen vom Videoserver (104) mitgeteilt
wurden. Der Client übernimmt
die Daten vom Börsenserver
und vom Server der Presseagentur auf den IP-Adressen für verteilte
Server, die in der Verknüpfung
mit dem Videoserver (104) festgelegt sind, ohne zu wissen,
dass die Daten von einer anderen Quelle als dem Videoserver stammen.
Die Echtzeitdatenströme
vom Video-, Aktien- und Nachrichtenserver werden im Client (106)
schneller miteinander verknüpft,
da die Datenströme
nicht vom Videoserver kommen, sondern direkt zum Client gelangen.
Da der Client unter Verwendung eines Standard-SCTP arbeitet, ist
klar, dass das Client-System in keiner Weise verändert werden muss, um die vorliegende
Erfindung zu nutzen. Die Betriebssysteme des lokalen Server und
der fernen Server nutzen das SCTP und spezielle Befehle, um die
bevorzugte Ausführungsart
zur beschleunigten Verknüpfung
von Echtzeitdaten zu realisieren, die an die Netz-Clients übertragen
werden.
-
4A zeigt
eine Darstellung einer typischen Softwarearchitektur für ein Server-Client-System,
das in einer bevorzugten Ausführungsart
gemäß der vorliegenden
Erfindung genutzt werden kann. Sowohl der Server 104 als
auch der Client 106 sind entsprechend der Softwarearchitektur 400 aufgebaut.
Auf der untersten Ebene dient ein Betriebssystem 405 dazu,
dem Benutzer sowie der anderen Software eine übergeordnete Funktionalität zur Verfügung zu
stellen. Ein solches Betriebssystem beinhaltet üblicherweise ein BIOS (Basic
Input Output System, grundlegendes Eingabe-/Ausgabesystem). Eine Datenübertragungssoftware 410 sorgt
durch einen externen Anschluss für
die Datenübertragung
an ein Netz wie beispielsweise das Internet über eine physische Datenübertragungsleitung,
entweder direkt, indem die Funktionalität des Betriebssystems aufgerufen
wird, oder indirekt, indem unter Umgehung des Betriebssystems auf
die Hardware für
die Datenübertragung über das
Netz zugegriffen wird. Die Schnittstelle für die Programmierung von Anwendungsprogrammen 415 ermöglicht dem
Benutzer des Systems, bei dem es sich um eine Person oder eine Softwareroutine
handeln kann, ohne Rücksicht
auf die Art und Weise der Realisierung der betreffenden Funktionalität unter
Verwendung einer Standardschnittstelle Systemfunktionen aufzurufen.
Die Internetsoftware 420 stellt ein beliebiges von verschiedenen
handelsüblichen
Standardsoftwarepaketen dar, die zur Ausrüstung eines Computers mit der
Internetfunktionalität
zur Verfügung
stehen. Die Anwendungssoftware 425 stellt eine beliebige
Anzahl von Softwareanwendungen dar, mit deren Hilfe auf die über den
Datenübertragungsanschluss
kommenden Daten reagiert werden kann, um für den Benutzer die gewünschte Funktionalität zu schaffen.
Auf dieser Ebene kann es sich um Anwendungen handeln, die zur Verarbeitung von
Daten, Videos, Grafiken, Fotos oder Text erforderlich sind, auf
die Benutzer des Internet zugreifen können.
-
4B zeigt
die Nutzung des SCTP/IP und anderer Protokolle durch eine vierschichtige
Datenübertragungsarchitektur 401 für das Netz,
welche eine Verarbeitungsschicht 411, eine Transportschicht 412, eine
Netz- oder Vermittlungsschicht 414 und eine Sicherungsschicht 416 umfasst.
Jede Schicht ist für
die Verarbeitung verschiedener Datenübertragungsaufgaben wie folgt
zuständig.
Die Sicherungsschicht 416 (die auch als Datenverbindungsschicht
oder als Netzschnittstellenschicht bezeichnet wird) beinhaltet normalerweise
den Einheitentreiber im Betriebssystem und die entsprechende Netzschnittstellenkarte im
Computer. Diese steuern gemeinsam sämtliche Hardwareeinheiten beim
Herstellen der physischen Verbindung zu den genutzten Netzmedien,
z.B. das Ethernetkabel usw. Die Netz- oder Vermittlungsschicht 414 (die
auch als Internetschicht bezeichnet wird) steuert die Beförderung
der Datenpakete durch das Netz. Zum Beispiel steuert die Netzschicht
die Leitwege der verschiedenen Datenpakete, die über das Netz übertragen
werden. Die Vermittlungsschicht im SCTP/IP-Paket besteht aus mehreren
Protokollen, darunter das IP (Internetprotokoll), das ICMP (Internetprotokoll
zur Nachrichtensteuerung) und das IGMP (Internetprotokoll zur Gruppenverwaltung).
Die Transportschicht 412 bietet eine Schnittstelle zwischen
der Vermittlungsschicht 414 und der Verarbeitungsschicht 411,
welche die Datenübertragung
zwischen zwei Hostrechnern ermöglicht.
Die Transportschicht ist zum Beispiel für Aufgaben wie das Aufteilen
der von der Anwendung empfangenen Daten für die darunter liegende Netzschicht
in Blöcke
geeigneter Größe, das
Bestätigen
empfangener Pakete, das Festlegen von Zeitlimits, um sicherzustellen,
dass die Gegenseite die gesendeten Pakete bestätigt usw. zuständig. Die
Verarbeitungsschicht 410 ist für die Einzelheiten der betreffenden
Anwendung zuständig. Wenn
eine Anwendung Daten unter Verwendung des SCTP/IP sendet, werden
die Daten über
einen Protokollstapel abwärts
durch jede Schicht gesendet, bis sie als Bitstrom durch das Netz
gesendet werden.
-
5 zeigt
ein Ablaufschaubild des Prozesses zur dynamischen Echtzeitverknüpfung von
Datenströmen
für Clients
gemäß einer
bevorzugten Ausführungsart
der vorliegenden Erfindung. Der Prozess 500 startet mit
dem Schritt 502, in dem ein Client eine INIT-Nachricht
an den lokalen Server sendet und von diesem das Einrichten einer
SCTP-Verknüpfung
für die Übertragung
von Echtzeitdaten von mehreren Quellen fordert, die sich fern vom
lokalen Server befinden. In Schritt 504 antwortet der lokale
Server auf die INIT-Nachricht mit einer INIT ACK-Bestätigung,
in der mehrere lokale IP-Adressen für eine SCTP-Verknüpfung für verteilte
Server angegeben werden, wobei die IP-Adressen die IP-Adressen für die fernen
Server beinhalten. In Schritt 506 sendet der lokale Server
einen Befehl Datenstromverknüpfung
(SAN) an die fernen Server und fordert damit die Einrichtung einer
Multistreaming-Verknüpfung
mit dem Client in den fernen Servern an. In Schritt 508 sendet
dann der ferner Server einen Befehl Übertragungssequenznummernbereich
(TSNR) an jeden der fernen Server und legt so für jeden Server den TSN-Bereich
für die Übertragung
von Datennachrichten an den Client fest.
-
In
Schritt 510 beginnen der lokale und der ferne Server gleichzeitig
mit der Übertragung
von Echtzeitdatenströmen
an den Client, wobei sie die in der TSN-Tabelle im lokalen Server
für jeden
Server festgelegten und zugeteilten Datenstrom-IDs und TSN-Sequenzen
verwenden, die im SA-Befehl und im TSNR-Befehl jedem der fernen Server mitgeteilt wurden.
Der Client empfängt
jeden der Datenströme von
den IP-Adressen, die in der Tabelle der verteilten Adressen des
lokalen Server enthalten sind, sodass jeder Datenstrom scheinbar
vom lokalen Server als Teil der Datenströme kommt, die durch die Anwendung
im Client verarbeitet werden. In Schritt 512 sendet der
Client als Reaktion auf den Empfang der im Rahmen der Datenströme von den
fernen Servern und dem lokalen Server empfangenen DATA-Nachrichten SACKS
an jeden der fernen Server und an den lokalen Server. Im Entscheidungskasten 514 wird
ermittelt, ob die empfangenen SACKs empfangene Nachrichten mit TSNs
am Ende eines dem fernen Server zugeteilten TSN-Bereichs erkannt
haben. Wenn dies nicht der Fall ist, springt der Prozess zurück zu Schritt 510,
wo der lokale Server und die fernen Server im Rahmen der ihnen zugeteilten TSN-Bereiche
mit der Übertragung
der Echtzeitdatenströme
an den Client fortfahren. Wenn in Schritt 514 ermittelt
wird, dass der ferne Server das Ende des ihm zugeteilten TSN-Bereichs
erreicht hat, geht der Prozess weiter zu Schritt 516, wo
der lokale Server einen TSNR-Befehl an den fernen Server sendet, durch
den er dem fernen Server zur weiteren Übertragung der Echtzeitdatenströme einen
neuen TSN-Bereich zuteilt. Dann springt der Prozess zurück zu Schritt 510,
damit der ferne Server mit der Übertragung
des Echtzeitdatenstroms an den Client fortfährt.
-
Obwohl
die Erfindung insbesondere unter Bezug auf eine bevorzugte Ausführungsart
gezeigt und beschrieben wurde, ist dem Fachmann klar, dass daran
diverse Änderungen
in Form und Detail vorgenommen werden können, ohne vom Geltungsbereich der
Erfindung abzuweichen. Zum Beispiel kann die vorliegende Erfindung
unter Verwendung einer beliebigen Kombination aus Software, Firmware
oder Hardware zur Computerprogrammierung realisiert werden. In einem
ersten Schritt zur Ausführung
der Erfindung oder zum Bau einer Vorrichtung gemäß der Erfindung wird üblicherweise
der Computerprogrammcode (entweder in Form von Software oder Firmware)
gemäß der Erfindung
in einem oder mehreren maschinenlesbaren Speichermedien wie beispielsweise
Festplattenlaufwerken, Disketten, optischen Speicherplatten, Magnetband,
Halbleiterspeichern wie zum Beispiel ROMs, PROMs usw. gespeichert,
um auf diese Weise einen Fertigungsartikel gemäß der Erfindung herzustellen.
Der den Computerprogrammcode enthaltende Fertigungsartikel wird entweder
dadurch genutzt, dass der Code direkt von der Speichereinheit ausgeführt wird,
indem der Code von der Speichereinheit auf eine andere Speichereinheit
wie beispielsweise eine Festplatte, einen Arbeitsspeicher usw. kopiert
wird, oder indem der Code übertragen
und an einem fernen Standort ausgeführt wird. Das Verfahren gemäß der Erfindung
kann durch eine Kombination aus einer oder mehreren maschinenlesbaren
Speichereinheiten, welche den Code gemäß der vorliegenden Erfindung
enthalten, und einer geeigneten Standard-Computerhardware durchgeführt werden,
die den darin enthaltenen Code ausführt. Eine Vorrichtung zum Ausführen der
Erfindung kann aus einem oder mehreren Computern und Speichersystemen
bestehen, welche die gemäß der vorliegenden
Erfindung codierten Computerprogramme enthalten oder über ein
Netz auf diese zugreifen können.