-
Die
Erfindung betrifft ein Datenkommunikationssystem, insbesondere ein
Datenkommunikationssystem mit mindestens einem, insbesondere mehreren
Clients, insbesondere Client-Rechnern,
und mit mindestens einem Server, insbesondere Server-Rechner.
-
Insbesondere
betrifft die Erfindung ein System zur Reduzierung des Datenverkehrsvolumens und
zur Reduzierung von Verzögerungszeiten
für Applikationen,
die auf einem Client-Rechner
genutzt werden, der für
die Applikationen als Ein- und
Ausgabegerät
dient und direkt oder indirekt über
ein Mobilfunknetzwerk und/oder ein leitungsbasiertes Netzwerk, das
sich dadurch auszeichnet, dass es insgesamt eine hohe Signallaufzeit
(von z.B. > 50 ms)
aufweist, mit einem Applikationsserver verbunden ist, der die eigentliche
Applikation ausführt
und den via Netzwerk angebundenen Client Rechner (Terminal) zur
Ein- und Ausgabe, sowie Darstellung von Programmsteuerelementen
(z.B. Auswahlmenüs),
Daten und Grafiken nutzt.
-
Die Übertragungskapazitäten der
Mobilfunknetze und terrestrischen Weitverkehrsnetze werden ständig erweitert
und ausgebaut. Dies ermöglicht
neben Sprach- oder Messagediensten nun auch immer mehr, die Nutzung
mobiler Datenübertragungen
für Anwendungen
im Privat- und Geschäftskundenbereich.
-
Durch
die hohe Abdeckung und mobile Verfügbarkeit der Anbindung an Netzwerke,
ergeben sich auch neue Möglichkeiten
für Lösungen im
Client/Server Anwendungs-Bereich. Ein Beispiel dafür sind Applikationsserver,
bei denen ein Server die Applikationen für mehrere via Netzwerk angebundene Clients
in einem zentralen Rechenzentrum ausführt. Die Clients dienen lediglich
als Eingabe- (Maus, Tastatur usw.) bzw. Ausgabegerät (Bildschirm/Drucker usw.).
Als Beispiel wäre
hier die Architektur Microsoft Application Server zu nennen.
-
Der
Vorteil einer Client Server Lösung,
liegt darin, dass man den Administrations- und Investitionsaufwand
einer Software-Lösung zentralisieren und
somit Kosten sparen kann. Außerdem
können kostspielige
HW-Investitionen von vielen gemeinsam genutzt werden, und das Security
Level steigt bei einer zentralisierten Administration.
-
Die
Kommunikation zwischen einem Applikations-Client und einem Applikations-Server
Rechner ist durch einen ständigen
Datenaustausch zwischen den beiden Geräten gekennzeichnet. Dabei werden
die Eingaben des Nutzers der den Client benutzt (z.B. Tastatureingabe
oder eine Mausbewegung) zum Server übertragen. Daten, Grafiken
oder Steuerungssignale, die zur Anzeige der Applikation genutzt
werden überträgt der Server über das
Netzwerk zum Applikations-Client.
-
Die
bisher verfügbaren
Lösungen
gingen dabei davon aus, dass die Signallaufzeit des Netzes gering
ist, der Nutzer also nach Eingabe eines Zeichens, das vom Client
zum Server übertragen
wird, relativ schnell eine aktualisierte Darstellung des Bildschirms
bekommt, die der Server über
das Netzwerk zum Client Rechner überträgt.
-
Bei
Netzen mit hoher Verzögerungszeit
führen
die bisherigen Systeme zu Problemen. Durch die hohen Signallaufzeiten
bekommt der Nutzer erst verzögert
die Reaktionen auf seine Eingaben angezeigt. So kann z.B. beim Anklicken
eines Pull Down Menüs, was
mehrere Interaktionen zwischen dem Client und dem Server notwendig
macht, ggf. erst mehrer Sekunden später durch das Öffnen des
Menüs die
Reaktion auf dem Client dargestellt werden. Dies führt bisweilen
dazu, dass ein effektives Arbeiten mit der Applikation unmöglich wird.
Ein weiteres Problem ist es, dass bei Netzen mit hohen Kosten für Datenvolumen,
sehr hohe Kosten für
die Anbindung der Remote Ein-Ausgabeeinheiten (Terminals) anfallen.
-
Demgemäß ist es
eine Aufgabe der vorliegenden Erfindung, ein System zu schaffen,
mit denen sich die Auswirkungen der Latenzzeit eines Mobilfunknetzwerkes
und/oder eines terrestrischen Netzwerkes auf eine Applikation, die
auf einem zentralen Server ausgeführt wird und für Ein- und
Ausgaben mit einem via Mobilfunk- und/oder terrestrischem Netzwerk
verbundenen Client Terminal kommuniziert, eliminiert bzw. weitestgehend
reduziert werden, so dass ein für
den Benutzer komfortables Arbeiten mit der Applikation ermöglicht wird,
sowie die Datenvolumenübertragungskosten
für den
Benutzer deutlich gesenkt werden können.
-
Diese
Aufgabe und/oder weitere Aufgaben wird bzw. werden gemäß der Erfindung
durch den Gegenstand des Anspruchs 1 gelöst.
-
Weitere,
vorteilhafte Ausgestaltungen der Erfindung sind in den Unteransprüchen angegeben.
-
Nach
dem erfindungsgemäßen System
zur Eliminierung bzw. zur Reduktion der Auswirkungen der Latenzzeit
eines Mobilfunknetzwerkes und/oder eines terrestrischen Netzwerkes
auf eine Applikation und zur Einsparung von Datenvolumen bei der
für die Ausführung einer
Applikation notwendigen Kommunikation ist ein Client Rechner mit
einem Server Rechner über
ein Mobilfunknetzwerk und/oder einem terr. Netzwerk verbunden, wobei
der Client Rechner (Terminal) lediglich zur Ein- und Ausgabe von
Daten und Informationen (z.B. über
eine Tastatur, eine Maus, einen Bildschirm oder Drucker) genutzt
wird. Der Programmcode, der von einem Nutzer am Client Rechner benutzten
Anwendung, wird auf dem via Netzwerk erreichbaren Server Rechner
ausgeführt.
-
Die
hier beschriebene erfindungsgemäße Client
Server Architektur, kann aber muss nicht dadurch gekennzeichnet
sein, dass bereits bekannte und allgemein bei der Datenkommunikation
im Satellitenbereich eingesetzte Systeme zur Optimierung des Datenflusses
zwischen einem Client und einem Server über ein zeitverzögertes Satellitennetzwerk nun
auch über
ein Mobifunknetzwerk und/oder ein terrestrisches Netzwerk eingesetzt
werden. Zu den bereits bekannten und bisher allgemein im Satellitenbereich
eingesetzten Systemen zählen
insbesondere Software oder Hardware basierte Lösungen zur Vermeidung von Rückbestätigungsmeldungen
von empfangenen/gesendeten Datenpaketen (Vermeidung von Acknowledgements
(ACKs), beispielsweise durch den Einsatz von Enhanced TCP), zur
Umwandlung von TCP in UDP-Übertragungen
(UDP Tunneling), Optimierungen der MTU (Maximum Transfer Unit eines
Datenpackets), Entfernung von Redundanzen in einer Datensequenz
(beispielsweise durch Kompression), Vermeidung von wiederholten Übertragungen
von häufig
zu übertragenden
Informationen (beispielsweise durch lokale Vorhaltung der Daten
im Speicher, automatische Erkennung und Caching).
-
In 1 ist – beispielhaft – eine Netzwerkarchitektur
gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung gezeigt, wobei entsprechende Client Rechner 1 – über entsprechende
Mobilfunk- und/oder territrische Netzwerke 3 – an einen
(oder mehrere) Anwendungsserver 2 angeschlossen sind.
-
Bei
der erfindungsgemäßen Netzwerkarchitektur
kann sich an der Lokation eines Client Rechners 1 eine
zusätzliche
geeignete Software oder eine Hardware befinden (im Folgenden S1
genannt), die die Bildschirmdarstellung oder Teile der Bildschirmdarstellung
des Client Rechners 1 in gleicher Art und Weise wie bei
einem Anwendungsserver 2 berechnen und durch Signale steuern
kann.
-
An
der Lokation des Client Rechners 1 kann sich eine Objektdatenbank
befinden, die in der Lage ist Teile von Bildschirmdarstellungen
(Objekte), wie beispielsweise Pixel, Linien, Grafiken, Menüs usw, sowie
Korrelationen von Eingabesequenzen zu den Objekten zu speichern.
Auf die Objektdatenbank hat S1 Zugriff.
-
An
der Lokation des Server Rechners 2 kann sich eine zusätzliche
geeignete Software oder eine Hardware befinden (im Folgenden S2
genannt), die die vom Server Rechner 2 zum Client Rechner 1 gesendeten
Daten dahingehend untersucht, ob sie Signalisierungsdaten enthalten,
die eine Änderung
der Bildschirmdarstellung bewirken sollen, die bereits durch S1
gesteuert worden ist. In diesem Fall hat S2 von den bereits durch
S1 bearbeiteten Änderungen durch
eine Mitteilung von S1, die über
das Netzwerk 3 zu S2 übertragen
worden ist, Kenntnis bekommen.
-
Die
Datenkommunikation zwischen dem Client Rechner 1 und dem
Server Rechner 2 kann zusätzlich wie folgt optimiert
werden Die Eingaben für das
Anwendungsprogramm (z.B. Tastaturanschläge, Mausbewegungen oder Clicks)
werden bereits durch S1 dahingehend untersucht, ob sie zu einer
Veränderung
der Bildschirmdarstellung am Client Rechner 1 führen.
-
Ist
dies der Fall, untersucht S1, welche für die zur Veränderung
der Bildschirmdarstellung erforderlichen Daten und Objekte, wie
beispielsweise:
- • Grafiken/Bitmaps
- • Icons
- • diverse
Fenstertypen
- • Linien
- • Rahmen
- • Hintergründe
- • Schattierungen
- • Pull
Down Menüs
- • Menü Auswahl
Boxen und deren mögliche
Einträge
- • Häkchen, Punkte,
Auswahlelemente
- • Zeichenelemente
oder Buchstaben in Form verschiedener Fonts
- • Und
beliebig viele weitere frei durch ein Customizing definierbare Grafikelemente
in
der lokalen Objekt-Datenbank vorhanden sind, um die Veränderung
oder Teile der Veränderung
der Bildschirmdarstellung auch ohne Informationen des zentralen
Server Rechners 2 unter Berücksichtigung der aktuellen
Eingaben durch S1 lokal berechnen zu können. Dabei kann auch die Größe oder
die Position von einzelnen Bildschirmelementen durch S1 neu berechnet
werden. Die lokal möglichen Änderungen, also Änderungen
der Bildschirmdarstellungen, die so keine Datenübertragung oder eine Steuerung
durch den zentralen Server 2 erfordern, werden von S1 lokal
dem Client Rechner 1 signalisiert, der diese Änderungen
der Bildschirmdarstellung dann quasi ohne zeitliche Verzögerung darstellt.
Diese Signalisierung erfolgt in der gleichen Art und Weise, wie
sie normalerweise der zentrale Server Rechner 2 gegenüber dem
Client Rechner 1 über
das Netzwerk 3 durchführt.
Somit kann beispielsweise, die Veränderte Position des Mauszeigers
durch eine Bewegungseingabe der Maus, oder die Anzeige eines Menüs nach dem
Anklicken oder die Bewegung eines Fensters usw. sofort angezeigt
werden.
-
Erfindungsgemäß werden
parallel zu diesem Prozess die Eingaben des Client Rechners 1,
wie sonst auch, über
das Netzwerk 3 an den zentralen Server Rechner 2 weitergeleitet.
Zusätzlich
wird S2 durch S1 über
das Netzwerk 3 mitgeteilt, welche Änderungen der Bildschirmdarstellung
am Client Rechner 1 bereits durch S1 vorgenommen wurden.
Die Antworten des Servers Rechners 2 auf die Eingaben am
Client Rechner 1 werden dann dahingehend untersucht, ob
sie Steuerdaten- oder Signalisierungsinformationen enthalten, die Änderungen
der Bildschirmdarstellung am Client Rechner 1 bewirken
sollen, die bereits durch S1 gesteuert worden sind. Um doppelte
Signalisierungen zu vermeiden, werden diese Daten und Signale bereits
durch S1 herausgefiltert und nicht über das Netzwerk 3 zum
Client Rechner 1 übertragen.
Dadurch wird eine erhebliche Reduzierung des normalerweise von der
Applikation verursachten Datentransportvolumens erreicht.
-
In
einer weiteren Ausgestaltung des Systems, wird die erfindungsgemäße Client
Server Architektur (ergänzt
durch S1 und S2) dahingehend erweitert, dass eine zusätzliche
geeignete Software oder Hardware (im folgenden S3 genannt), zum
automatischen Erstellen der Objektdatenbank eingesetzt wird. S3
untersucht dabei den vom Client Rechner 1 gesendeten Datenstrom
auf sich häufig
wiederholende Eingabekombinationen sowie die kurz darauf via Netzwerk
empfangenen Reaktionen des Servers Rechners 2 auf Bildschirmsignalisierungen.
Aus diesen Untersuchungen werden Korrelationen abgeleitet und in
der Objekt-Datenbank abgespeichert. Somit wird die Objektdatenbank
automatisch mit Informationen gefüllt (trainiert), die es S1
ermöglichen, Veränderungen
der Bildschirmdarstellungen automatisch zu berechnen und die Bildschirmdarstellung oder
Teile der Darstellung des Client Rechner 1 entsprechend
lokal zu steuern.
-
Bei
der in 1 gezeigten Netzwerkarchitektur können bei
der Kommunikation zwischen Client Rechner 1 und Server
Rechner 2 (und umgekehrt) vom jeweiligen Client Rechner 1 (oder
Server Rechner 2) zur Kommunikation mit dem Server Rechner 2 (oder
Client Rechner 1) zunächst
erzeugte Daten-Pakete – z.B. TCP-Daten-Pakete
(TCP = Transmission Control Protocol) – in entsprechende Daten-Pakete
eines hiervon unterschiedlichen Protokolls, z.B. in entsprechende
UDP-Pakete umgewandelt,
und diese – über das
o.g. Netzwerk 3 – an
den Server Rechner 2 (oder den Client Rechner 1) übertragen
werden.
-
Entsprechend
umgekehrt können – vom jeweiligen
Server Rechner 2 (oder Client Rechner 1) – die vom
Client Rechner 1 (oder vom Server Rechner 2) empfangenen
Daten-Pakete – z.B.
die o.g. UDP-Daten-Pakete – in
entsprechende Daten-Pakete eines hiervon unterschiedlichen Protokolls,
z.B. – zurück – in entsprechende
TCP-Daten-Pakete umgewandelt werden.
-
Gemäß TCP-Protokoll
ist vorgesehen, dass der (korrekte) Empfang jedes einzelnen Daten-Pakets
durch den jeweiligen Empfänger
an den jeweiligen Sender (rück-)bestätigt wird – das UDP-Protokoll sieht
demgegenüber
keine entsprechenden (Rück-)Bestätigungs-Mechanismen
vor.
-
Beim
vorliegenden Ausführungsbeispiel kann
stattdessen z.B. jeweils vor bzw. nach einer vorbestimmten Anzahl
an – zwischen
dem Client Rechner 1 und Server Rechner 2 ausgetauschten – UDP-Paketen
die Anzahl der übermittelten
bzw. im folgenden zu übermittelten
Pakete (d.h. die Anzahl an Paketen einer „Paket-Serie") übertragen
werden. Mit jedem Paket können
Daten übermittelt
werden, die kennzeichnen, um das wievielte Paket innerhalb der jeweiligen
Paket-Serie es sich jeweils handelt. Hierdurch kann vom jeweiligen
Empfänger
(d.h. vom Client Rechner 1, oder vom Server Rechner 2)
ermittelt werden, ob ein Paket – und
wenn ja, welches – nicht
bzw. nicht korrekt angekommen ist. Dieses Paket kann dann – einzeln – angefordert
werden. Hierdurch ist – ohne
aufwändigen
(Rück-)Bestätigungs-Mechanismus – sichergestellt,
dass innerhalb der Netzwerkarchitektur keine Daten verloren gehen.
-
Zusätzlich zu
den obigen Ausführungen
können – um in
gewissen, im folgenden erläuterten
Fällen
einen unnötigen
Daten-Verkehr zum und vom Server Rechner 2 einzuschränken – in diesen
Fällen nur
bzw. ein möglichst
großer
Anteil an Nutzdaten übertragen
werden. Hierzu können
vom Server Rechner 2 zum Client Rechner 1 zu übertragende Bildschirminhalte
auf dem Server Rechner 2 untersucht werden, ob sie nicht
durch eine geeignete Codierung ersetzt werden können. Die Bildschirminhalte
sind in der Regel als Objekte dargestellt, z.B. Comboboxen, oder
Felder zum Ausfüllen,
denen dann eindeutige, an den Client Rechner 1 zu übertragende Codes
zugeordnet werden. Die Objekte sind im Betriebssystem des Client
Rechners 1 vorhanden, sofern es sich nicht um applikationsspezifische
Objekte handelt, die dem jeweiligen Client Rechner 1 (genauer:
S1) per Customizing durch S3 zur Verfügung gestellt werden müssen. Beim
vorliegenden Ausführungsbeispiel
werden dem Client Rechner 1 vorteilhaft durch den Server
Rechner 2 nicht mehr der „Bildschirm" bzw. die gesamten
eine entsprechenden Anzeige am Bildschirm veranlassende Daten der
zentralen Anwendung zur Verfügung
gestellt; stattdessen wird dem Client Rechner 1 lediglich
mitgeteilt, wo welche Objekte auf dem Bildschirm zu plazieren sind, und
welche Merkmale diese Objekte aufweisen sollen. Das Ausfüllen der
Objekte erfolgt dann lokal am Client Rechner 1, und es
werden dem Server Rechner 2 lediglich die eingetippten
neuen Daten mitgeteilt. Hierdurch ergeben sich zwei Vorteile:
- a) Die übertragene
Datenmenge wird – im
wesentlichen – auf
die eigentlichen Nutzdaten reduziert; und
- b) die Verzögerung
zwischen einer Eingabe und der Reaktion des Server Rechners 2 wird
reduziert.
-
- 1
- Client
Rechner
- 2
- Server
Rechner
- 3
- Mobilfunk-
und/oder terrestrisches Netzwerk
- 11
- Optional
Optimierung durch: ACK-Unterbindung, Redundanzfilter (z.B. Kompression), Caching,
Umsetzung TCP/UDP, MTU Optimierung
- 12
- Objektdatenbank
(Grafiken, Bitmaps, Eingabesequenzen, Icons, Linien, Menüs, Korrelationen)
- 13
- Optional
Optimierung durch: ACK-Unterbindung, Redundanzfilter (z.B. Kompression), Caching,
Umsetzung TCP/UDP, MTU Optimierung
- 14
- Analysemessungen
- S1
- Input
erfordert Daten des Servers? Falls nein: lokale Berechnung, Signalisierung
zum Terminal und Information an S2, dass eine lokale Signalisierung
erfolg ist
- S2
- Filterung
von Signalisierungen, die bereits durch S1 gesteuert worden sind
- S3
- Untersucht
den Input/Output des Client Rechners auf Korrelationen zur Bildschirmdarstellung
(Trainiert die Datenbank automatisch)