VERFAHREN ZUR REDUZIERUNG DER LATENZZEIT BEI DER INTERAKIVEN DATENKOMMUNIKATION ZWISCHEN EINEM TERMINAL SERVER UND EINEM TERMINAL-SERVER CLIENT IN EINEM DRAHTLOSEN TELEKOMMUNIKATIONSNETZWERK
Die Erfindung betrifft ein Verfahren zur Reduzierung der sichtbaren Latenzzeit bei der interaktiven Datenkommunikation zwischen einem Terminal Server und einem mit diesem über ein drahtloses Telekommunikationsnetzwerk, insbesondere ein GSM, GPRS, UMTS- Netzwerk oder ein sonstiges Funkdatennetzwerk, verbundenen Terminal-Server Client, gemäß dem Oberbegriff von Anspruch 1.
Hintergründe
Drahtlose Netzwerke (Mobilfunk- sowie satellitengestützte Datennetze) unterscheiden sich von verdrahteten Netzwerken in vielerlei Hinsicht. Dies führt dazu, dass Computer Anwendungen und Protokolle welche in einem fest verdrahteten Netzwerk ohne Probleme funktionieren in einem drahtlosen Netzwerk nicht so effizient arbeiten wie man eigentlich annimmt oder schlicht gar nicht funktionieren. Die Konsequenz ist, das Computer Anwendungen die für ein verdrahtetes Netzwerk entwickelt und getestet wurden, in einem drahtlosen Netzwerk nicht oder nur mit hohem Aufwand betrieben werden können.
Ferner werden Computer Anwendungen und Protokolle zum Einsatz auf Standard Arbeitsplätzen entwickelt, die über ein lokales Netzwerk mit einem Server verbunden sind. Ein Problem hierbei besteht darin, dass die dabei zur Datenübertragung oftmals eingesetzten drahtlosen Netzwerke ein komplett anderes physikalisches Verhalten als z.B. lokale Ethernet Netzwerke aufweisen.
Die häufig verbreitete Vorstellung, dass sich die bei der Datenübertragung eingesetzten Protokolle genau so in einem drahtlosen wie in einem Ehternet Netzwerk verhalten ist jedoch nicht richtig.
Demgemäß führen bekannte Standard Protokolle wie insbesondere TCP (Transmission Control Protocol) z.B. bei der Übertragung von TCP/IP Datenpaketen häufig zu schwerwiegenden Problemen in einem GSM-, GPRS-, VSAT-, DVB-RCS- oder einem sonstigen drahtlosen Netzwerk mit einer hohen Laufzeit.
Allgemein bekannte Probleme in drahtlosen Datennetzen:
Schwankende Kapazitäten
Die gemachten Annahmen im Zusammenhang mit verdrahteten Netzwerken unterscheiden sich erheblich von denen in einem drahtlosen Netzwerk. So ist es z.B. richtig anzunehmen, dass verlorene Datenpakete in einem verdrahteten Netzwerk durch eine Überlastung verursacht worden sind, so dass dieses Problem mit einem speziellen Überlastungs- Kontrol-Algorithmus, welcher die Geschwindigkeit entsprechend reduziert, gelöst werden kann. In einem drahtlosen Netzwerk kommt es demgegenüber zu unterschiedlichen Kapazitätsverlusten, weshalb diese ein viel größeres Problem darstellen.
So kann z.B. die Verbindung dadurch unterbrochen werden dass ein Mobil Telefon sich in einer Position bewegt in der Radio Wellen nicht abgestrahlt werden können oder in der Wellen von verschiedenen Objekten reflektiert werden und sich dadurch gegenseitig auslöschen. Ein Beispiel hierfür kann eine Durchfahrt durch einen Tunnel sein. Auch kann das Netzwerk selbst Ursache solcher schwankender Kapazitäten sein wie z.B. die Aktualisierung einer GPRS Zelle, die verursacht wird, wenn ein Teilnehmer von einer Basis Station zu einer anderen Basis Station wechselt. Das Ergebnis ist sehr oft der Verlust an Kapazität, welcher sich zwischen ein paar Mikrosekunden und mehreren Sekunden bewegen kann.
Die meisten implementieren Protokolle verwenden Überlastungskontroll-Methoden mit Überlastungs-Vermeidungs-Algorithmen welche das Netzwerk oftmals fälschlicherweise als Überlastet ansehen und daher einfach die Übertragungsgeschwindigkeit reduzieren. Als Konsequenz wird die Übertragungsgeschwindigkeit nicht wieder heraufgesetzt, wenn das Netzwerk nach einiger Zeit seinen ordnungsgemäßen Zustand erneut angenommen hat. In der Praxis bedeutet dies, dass z.B. GPRS nicht die gewünschte, bzw. angeforderte Kapazität von z.B. 20 Kbits/Sec bereitstellen kann.
Lange und heftig schwankende Laufzeiten
Die Latenzzeit ist die Zeit die ein Datenpaket benötigt um von der Absender- zur Empfängerquelle und wieder zurück zu gelangen.
In einem verdrahteten Netzwerk, wie z.B. einer DSL Verbindung, ist diese Laufzeit gewöhnlich sehr gering und eine Schwankung der Laufzeit in der Regel nicht vorhanden. Die Ursache einer Änderung dieser Laufzeit kann mit Sicherheit auf die Überlastung oder andere Probleme im Netzwerk zurückgeführt werden, so dass die implementierten Protokolle defensiv handeln und die Übertragungsgeschwindigkeit reduzieren können um einer solchen Überlastung entgegenzuwirken.
In einem drahtlosen Netzwerk sind jedoch lange und heftig schwankende Laufzeiten die Regel. In einem Mobilfunkdatennetz, wie z.B. in einem GPRS Netzwerk, schwanken diese Laufzeiten sehr heftig und können bis zu mehrere Sekunden betragen. Protokolle die für fest verdrahteten Netzwerke entwickelt wurden interpretieren daher diese Situation völlig falsch.
Fehlerhafte Datenübertragung
In einem verdrahteten Datennetzwerk gibt es selten fehlerhafte Datenübertragungen, wohingegen diese in drahtlosen Datennetzen - abhängig von den jeweiligen Kommunikationsparametern - vergleichsweise oft vorkommen können. In einem GPRS
Datennetzwerk definiert z.B. ein als „QoS" bezeichneter Parameter den Teil des Gesamtsystems welcher für den Datenfunk selber für das wiederholte Senden fehlerhafter Datenpakete zuständig ist oder nicht.
Dies ist von Bedeutung, da bessere QoS Parameter nicht für alle Benutzer verfügbar sind. Obgleich die bekannten TCP und UDP Protokoll prüfen ob fehlerhafte Datenpakete vorhanden sind oder nicht, können sie nicht den exakten Teil des fehlerhaften Datenpaketes ermitteln, so dass häufig ganze Blöcke von Datenpaketen verworfen und noch einmal erneut übertragen werden. Das bedeutet, dass auch wenn nur ein kleiner Teil eines grossen Datenpaketes fehlerhaft ist, das Datenpaket als ganzes verworfen wird. Es werden daher auch fehlerfreie Datenpakete noch einmal als ganzes übertragen.
Zeitweilige Unterbrechungen
In einem fest verdrahteten Netzwerk ist der totale Verlust eines Dienstes selten und der Benutzer kann erwarten, dass er nach einem erneuten Start des Dienstes oder einer Anwendung an der Stelle weiter arbeiten kann an der er zuletzt unterbrochen wurde.
In einem drahtlosen Netzwerk wird der Benutzer hingegen mit ständigen Unterbrechungen seines Dienstes konfrontiert, wobei eine zusätzliche Schwierigkeit darin besteht, dass sein
System automatisch wieder verbunden wird, da in einem solchen Falle jedes mal eine andere IP Adresse zugeordnet wird (dies ist typisch für eine GPRS -Verbindung). Die
Konsequenz daraus ist, dass der Benutzer sehr oft aufgefordert wird seine gesamt
Anwendung komplett neu zu starten inklusive der gesamten Anmeldeprozedur des entsprechenden Dienstes.
Unberechenbarkeit
Das Hauptproblem in drahtlosen Netzwerken ist die Tatsache das es nicht möglich ist im
Voraus zu erkennen, was ein Netzwerk als nächstes tut. Wenn beispielsweise eine GPRS Anwendung in einem realen Netzwerk in einem Büro getestet wird, kann nur davon ausgegangen werden, dass die Anwendung in diesem Netzwerk und nur in diesem Büro ordnungsgemäß arbeitet. Wenn hingegen die in diesem Netzwerk herrschenden
Bedingungen einfach auf ein anderes Netzwerk übertragen werden, ändert sich das
Verhalten des Netzwerks unter Umständen ganz erheblich, so dass ein ordnungsgemäßer Betrieb der Anwendung z.B. überhaupt nicht mehr möglich ist.
Wechselt beispielsweise ein Benutzer einer mobilen Anwendung oder eines Spiels in ein mobiles Datenfunknetzwerk, wie z.B. ein GPRS oder WLAN-Netzwerk, so kann es vorkommen, dass plötzlich auch eine Mobilfunk-Zelle gewechselt wird. Jede Mobüfunk- Zelle wiederum ändert vorübergehend ihren zugeordneten Service. Zusätzlich verursacht Bewegung eine Erhöhung der Laufzeit sowie eine Änderung der verfügbaren Bandbreite, was beim Betreiben von insbesondere serverbasierenden interaktiven Anwendungen zu weiteren Problemen führt.
Besonderheiten satellitengestützter Datennetze
Bei der Datenkommunikation über Satellitennetzwerke werden bevorzugter Weise geostationäre Satelliten eingesetzt, die in einer Entfernung von ca. 36 000 km über der Erdoberfläche positioniert werden und sich mit der Erde unter Beibehaltung einer im Wesentlichen festen Position gegenüber der Erdoberfläche mitbewegen. Hierdurch erscheint es von der Erde aus betrachtet so, als wenn der Satellit stationär über dem unterhalb des Satelliten gelegenen Gebiet der Erdoberfläche stehen würde, in welchem die Kommunikation mit dem Satelliten möglich ist. Dieses Gebiet wird häufig auch als „Footprint" bezeichnet.
Es gibt mittlerweile zahlreiche Satelliten, die sich praktisch wie Perlen auf einer Schnur in einem Abstand von ca. 36 000 km über dem Äquator aufreihen.
Satellitenverbindungen eignen sich aufgrund ihrer hohen Bandbreite und Übertragungs- Sicherheit bestens zur Übertragung von Massendaten, wie beispielsweise analogen und digitalen Fernsehsendungen, Videos sowie Internet-Downloads, was darauf zurückzu¬ führen ist, dass hierbei keine interaktiven Abfragen und Rückbestätigungen über den Satelliten übertragen werden müssen.
Diese Massendaten werden über sogenannte Satelliten-HUBS (Uplinks) und mit diesen verbundene zentrale Server-Rechner als fortlaufender Datenstrom an den geostationären Satelliten gesendet, und von diesem im Bereich des Footprints des Satelliten an eine Vielzahl von Satelliten-Empfangsanlagen verteilt.
Aufgrund dieses großen Abstandes und der endlichen Ausbreitungsgeschwindigkeit von elektromagnetischen Signalen tritt bei der Datenkommunikation über geostationäre Satelliten das Problem auf, dass die Laufzeit eines elektromagnetischen Signals von einem Sender auf der Erde zum Satelliten und von dort aus zum Empfänger ca. 0,24 Sekunden beträgt, so dass eine vom Empfänger ohne Zeitverzögerung abgesandte Antwort den Sender infolge der sich zusätzlich ergebenden elektronischen Zeitverluste bei der Signalwandlung frühestens erst nach ca. 0,7 bis 2 Sekunden erreicht.
Bekannte Probleme zentralisierter Terminal Server Anwendungen in einem hochlatenten drahtlosen Funkdatennetzwerk
Für die interaktive Datenkommunikation zwischen einer Terminal-Server Anwendung und einem Terminal-Server-Client, bei der auf dem Terminal-Server die eigentliche Datenverarbeitung und Logik ausgeführt wird, und der Terminal-Server-Client lediglich die Funktion eines intelligenten Terminals übernimmt, welches aus den über ein hochlatentes drahtloses Funkdatennetzwerk vom Terminal-Server übertragenen Daten eine interaktive Bildschirmdarstellung für den Benutzer des Terminal-Server-Clients erzeugt, führt diese häufig auch als Latenzzeit bezeichnete Zeitverzögerung zwangsweise dazu, dass
ein vom Benutzer des Terminal-Server-Clients z.B. über eine Tastatur eingegebenes Zeichen oder eine Mausbewegung frühestens nach 1 bis 2 Sekunden durch ein entsprechendes Echo des Terminal-Servers auf dem Bildschirm des Terminal-Server- Clients bestätigt wird. Obgleich das erfindungsgemäße Verfahren prinzipiell bei allen bekannten Telekommunikationsnetzwerken angewandt werden kann, wird dieses bevorzugt bei hochlatenten drahtlosen Funkdatennetzwerken eingesetzt und demgemäß nachfolgend auch anhand von solchen beschrieben.
Aufgrund dieser bei der interaktiven Datenkommunikation nicht hinnehmbaren Zeitverzögerung von ca. 0,7 bis zu mehreren Sekunden, die bei jeder Eingabe des Benutzers über die Tastatur, Maus oder sonstige Dateneingabeeinrichtung des Terminal- Server-Clients auftritt, sind interaktive Client-Server-Anwendungen, wie z.B. ERP- Software mit datengetriebenen Anwendungen, die z.B. bei terrestrischen Verbindungen bei einer großen Anzahl von Benutzern in vorteilhafter Weise mit Hilfe von Betriebssystemen wie UNIX oder Windows 2000 Server etc., durchgeführt werden können, über hochlatente drathlose Funkdatennetzwerke in der Praxis in der Regel nicht ohne weiteres realisierbar.
Hierbei ist es insbesondere störend, dass bei Datenbankanwendungen, die auf dem Terminal-Server ausgeführt werden, und bei denen die Dateneingabe in entsprechende Datenfelder oder Dateneingabefelder erfolgt, die auf dem Terminal-Server-Client in Form eines interaktiven Anwenderprogramms dargestellt und nacheinander in einer vorgege¬ benen Reihenfolge durchlaufen werden, bei der Eingabe von Zahlen und Buchstaben in die einzelnen Felder oder auch beim Wechsel von einem Datenfeld zum nächsten Datenfeld sehr große Zeitverzögerungen entstehen, die ein Arbeiten in der Praxis sehr mühsam, wenn gar unmöglich machen.
Aus der nicht vorveröffentlichten DE-A- 102 00 165 des Anmelders ist es bekannt, die Latenzzeit bei der interaktiven Datenkommunikation zwischen einem Terminal-Server- Client und einem Terminal-Server, die über ein einen geostationären Satelliten enthal- tendes Satellitennetzwerk miteinander verbunden sind, zur beschleunigten Ausführung eines auf dem Terminal-Server-Client ablaufenden interaktiven Anwenderprogramms dadurch zu reduzieren, dass die Übertragung der Datenpakete vom Terminal-Server-Client zum Terminal-Server und/oder zurück im Wesentlichen ohne Rückbestätigungen erfolgt.
Weiterhin wird in der WO 01/08378 Al vorgeschlagen, bei Client-Server Systemen, die über ein terrestrisches Netzwerk betrieben werden, das visuelle Antwortverhalten eines Client-Rechners dadurch zu beschleunigen, dass der Client-Rechner auf eine Eingabe hin eine voraussichtliche Darstellung des Bildschirminhalts errechnet, die auf dem Bildschirm des Client-Rechners ausgegeben wird, bevor die anhand der eingegebenen Daten vom Server erzeugte tatsächliche Bildschirmdarstellung vom Server an den Client zur Darstel¬ lung auf dem Bildschirm übertragen wird.
Abgesehen davon, dass die Schrift keine konkreten Angaben darüber enthält, wie und anhand von welchen Größen die Vorausberechnung oder Vorhersage der voraussichtlichen Darstellung des Bildschirminhalts erfolgt, gibt die Schrift ebenfalls keinen Hinweis darauf, das dort beschriebene Verfahren bei einem Netzwerk einzusetzen, bei dem die Daten über einen geostationären Satelliten im Wesentlichen ohne Rückbestätigungen übertragen wer¬ den, um die physikalisch durch die Signallaufzeiten bedingte Latenzzeit - die verglichen mit der durch die Auslastung des Servers bedingten zeitlichen Verzögerung erheblich größer ist - bei der Eingabe von Daten in Datenfelder am Client-Rechner weiter zu verringern.
Demgemäß ist es eine Aufgabe der vorliegenden Erfindung, ein Verfahren zu schaffen, mit dem sich die Arbeitsgeschwindigkeit von durch einen Terminal-Server über ein Telekommunikationsnetzwerk auf dem Anzeigemedium eines Terminal-Server-Clients bereitgestellten interaktiven Anwenderprogrammen, bei denen eine Eingabe von Daten in vorgegebene Datenfelder erfolgt, weiter erhöhen lässt.
Diese Aufgabe wird gemäß der Erfindung durch die Merkmale von Anspruch 1 gelöst.
Weitere Merkmale der Erfindung sind in den Unteransprüchen enthalten.
Gemäß der Erfindung sind ein Terminal-Server mit einer laufenden Terminal Server Anwendung und ein Terminal-Server-Client über ein Telekommunikationsnetzwerk, insbesondere ein hochlatentes drahtloses Funkdatennetzwerk , zum Datenaustausch miteinander gekoppelt. Auf dem Terminal-Server wird ein Datenverarbeitungsprogramm, insbesondere in Form eines Datenbankprogramms mit Dateneingabeformular (GUI), eines Tabellenkalkulationsprogramms, eines Textverarbeitungsprogramms oder auch eines Programms zur Erstellung von E-mails, ausgeführt, bei dem von einem Benutzer des Terminal-Server-Client Rechners Daten über ein mit dem Terminal-Server-Client verbundenes Eingabemedium eingegebenen werden.
Die Eingabe der Daten erfolgt hierbei insbesondere formularbasiert in Datenfelder eines Formulars (GUI), wobei die Position, an der die Daten, z.B. Zahlen, Buchstaben oder sonstige Zeichen innerhalb eines Datenfeldes eingegeben werden, durch eine Eingabeaufforderung, z.B. eine Cursormarke, auf dem Bildschirm des Terminal-Server- Clients angezeigt wird. Im Falle einer Datenbankanwendung oder eines Tabellenkalkulationsprogramm stimmen die Datenfelder vorzugsweise mit den am Bildschirm dargestellten Eingabefeldern der Dateneingabemaske, bzw. der Tabelle überein, wohingegen die Datenfelder im Falle einer Textverarbeitung oder eines E-mail-Programms beispielsweise einer vollständigen Textzeile entsprechen können.
Wie bei derartigen Programmen üblich, werden die Datenfelder nach einer durch Parameter vorgegebenen Bearbeitungsreihenfolge durchlaufen, indem der Benutzer die Eingabe der Daten innerhalb eines Datenfeldes durch Eingabe eines Befehls abschließt. Ein solcher Befehl kann z.B. durch Drücken der „RETURN"-Taste, der „TAB"-Taste oder einer der Pfeiltasten etc. auf einer Tastatur eingegeben werden, und führt dazu, dass eine Eingab¬ eaufforderung, z.B. eine Cursormarke in einem gerade bearbeiteten Datenfeld in ein vorhergehendes oder nachfolgendes Datenfeld gesetzt wird.
Die Dateneingabefelder werden vom Terminal-Server in der bei derartigen Client-Server Verbindungen - bei denen die Ausführung und grafische Darstellung des Datenverar¬ beitungsprogramms allein durch den Server erfolgt, und der Client lediglich die Funktion eines intelligenten Terminals übernimmt, über welches die grafischen Darstellungen in Form eines interaktiven Anwenderprogramms lediglich dem Benutzer angezeigt werden - üblichen Weise als Datenpakete über das Netzwerk an den Terminal-Server-Client übertragen, und von diesem mit Hilfe eines eignen Prozessors sowie einer entsprechenden Grafikkarte auf einem Bildschirm oder einem sonstigen Anzeigemedium dargestellt. Dabei wird die Eingabe von weiteren Daten in ein zugehöriges Datenfeld durch die Eingabe¬ aufforderung signalisiert, die sich an der jeweiligen Position innerhalb eines Datenfeldes befindet, an der weitere Daten eingegeben werden sollen.
Die über das Eingabemedium am Terminal-Server-Client eingegebenen Daten und/oder Befehle werden in erfindungsgemäßer Weise in Form von weiteren Datenpaketen ohne oder zumindest im Wesentlichen ohne Rückbestätigungen durch den Terminal-Server über das hochlatente Funkdatennetzwerk (Mobilfunk oder satellitengestützt) an den Terminal-Server übertragen, der die eingegebenen neuen Daten nach der Übertragung bei der Ausführung des Datenverarbeitungsprogramms dazu heranzieht, eine neue Bildschirmdarstellung zu erzeugen, die wiederum in Form von Datenpaketen an den Terminal-Server-Client übertragen wird, der die zugehörige neue Bildschirmdarstellung mit Hilfe seiner Grafikkarte aus den Datenpaketen errechnet und zur Anzeige auf dem Anzeigemedium bringt. Im Wesentlichen ohne Rückbestätigungen bedeutet hierbei, dass eine Rückbestätigung z.B. nur zum Verbindungsaufbau, oder zum Initialisieren oder Starten und/oder zum Beenden des interaktiven Anwenderprogramms übersandt wird, wohingegen während der Ausführung des interaktiven Anwenderprogramms bevorzugt keine Rückbestätigungen des Empfangs der übertragenen Datenpakete übersandt werden. Jedoch ist ebenfalls eine Übersendung von Rückbestätigungen z.B. nach 50, 100 oder mehr Datenpaketen denkbar, ohne dass das erfindungsgemäße Grundprinzip verlassen wird.
Das erfindungsgemäße Verfahren zeichnet sich dadurch aus, dass die Objekt-Parameter für die GUI-Darstellung und Bearbeitungsreihenfolge der Datenfelder sowie bevorzugt auch
für allen anderen sichtbaren Objekte eines Dateneingabeformulars ebenfalls mit über das hochlatente Funkdatennetzwerk an den Terminal-Server-Client übertragen werden, und dass auf dem Terminal-Server-Client eine eigenständige Programmroutine abläuft, die bei der Eingabe vorgegebener Befehle über das Eingabemedium die Bildschirmdarstellung in Abhängigkeit von den Parametern für die Bearbeitungsreihenfolge in der Weise selbständig verändert, dass die Eingabeaufforderung innerhalb eines Datenfeldes in das nach der Bearbeitungsreihenfolge nächste oder vorhergehende Datenfeld bewegt wird.
Damit die in der Terminal Server Anwendung eingesetzte Logik auf Ereignisse reagieren kann, sendet der Terminal-Server-Client gemäß einem weiteren der Erfindung zugrunde liegenden Gedanken bevorzugt alle Standard-Betriebssystem Meldungen zurück an den Terminal Server.
Durch das erfindungsgemäße Verfahren ergibt sich der Vorteil, dass die Dateneingabe von einer großen Anzahl von Terminal-Server-Client-Rechnern, die z.B. praktisch über den gesamten Footprint eines geostationären Satelliten oder aber in einem mobilen
Funkdatennetzwerk über eine große Fläche verteilt angeordnet sein können, zentral mit einer Geschwindigkeit erfolgen kann, die sonst nur bei der interaktiven Dateneingabe über ein terrestrisches Datennetzwerk erreicht wird, bei welchem die physikalischen Verzögerungszeiten oder Latenzzeiten um Größenordnungen viel kleiner sind, als dies bei hochlatenten Funkdatennetzwerken der Fall ist.
Durch den Einsatz von intelligenten Terminals, die über den geostationären Satelliten oder allgemein ein Telekommunikationsnetzwerk mit einer hohen Latenzzeit mit dem Terminal- Server-Rechner verbunden sind, ergibt sich neben niedrigen Anschaffungs-, Betriebs- und Wartungskosten zudem der Vorteil, dass von den Terminal-Server-Client-Rechnern aus keine oder nur in sehr aufwendiger Weise größere Datenmanipulationen an den Daten des Terminal-Servers vorgenommen werden können, wenn die Terminal-Server-Client konstruktionsbedingt keine weiteren Einrichtungen zur Datenübertragung, wie beispielsweise Schnittstellen für Massenspeichermedien oder Netzwerkschnittstellen, besitzen.
Weiterhin ergibt sich durch die Übertragung der Daten über ein hochlatentes Funkdatennetzwerk in Verbindung mit einer sonst nur bei terrestrischen Netzwerken eingesetzten Server-basierenden Datenverarbeitung, bei der das Datenverarbeitungsprogramm als solches ausschließlich auf dem Server abläuft, und nur die Bilddarstellungen an den Client zur Darstellung übertragen werden, der Vorteil, dass die Datenpakete vom Server zum Client und auch in umgekehrter Richtung im Wesentlichen ohne Rückbestätigungen oder Acknowledgements versandt werden können, ohne dass ein Fehler, der bei der Übersendung der Datenpakete oder weiteren Datenpakete auftritt, zu einem Absturz des Datenverarbeitungsprogramms auf dem Server führt.
Dies ist beispielsweise bei HTML-basierenden Anwendungen, bei denen die HTML-Seiten von einem Webserver heruntergeladen, und dann durch eine auf dem Client ablaufende komplexe Browsersoftware dargestellt werden, in der Regel nicht der Fall, da der HTML- Code von der Browsersoftware interpretiert oder kompiliert wird, wodurch bei Fehlern in den übertragenen Daten bekanntlich leicht Abstürze der Browsersoftware auftreten.
Bei dem erfindungsgemäßen Verfahren führt ein solcher Datenverlust hingegen lediglich zu einer unpräzisen Darstellung des gerade bearbeiteten Datenfeldes, da vorzugsweise lediglich die geänderten Bereiche der Bildschirmdarstellung übertragen werden, die jedoch nach der Eingabe eines nächsten Zeichens oder Befehls wieder korrigiert werden, wenn der Server die nächste Bildschirmdarstellung nach beispielsweise 2 Sekunden errechnet und an den Client zur Darstellung übersendet.
Gemäß der bevorzugten Ausführungsform der Erfindung wird der Terminal Server unter einem fenster-orientierten Betriebssystem betrieben wird, wobei die an den Terminal- Server-Client übertragenen Bildschirmdarstellungen vor der Übersendung an den Terminal-Server-Client auf dem Terminal-Server durch eine Fenster-Programmroutine des Betriebssystems des Terminal- Servers auf der Basis von Fenster- und Objektparametern erzeugt werden. Das fenster-orientierte Betriebssystem ist vorzugsweise das von der Fa. Microsoft Corporation vertrieben Windows 2000, 2003 oder 200X Server, bei dem die Datenverarbeitungsprogrammen für jeden der mit dem Terminal-Server verbundenen Client-Rechner auf einem virtuellen Desktop im Arbeitsspeicher des Servers ablaufen. Die
Darstellung der von einem jeweiligen Datenverarbeitungsprogramm erzeugten Fenster- Darstellungen wird hierbei durch den sogenannten Window-Manager gesteuert, wobei jedes Objekt, welches von einem Datenverarbeitungsprogramm auf dem Bildschirm des Terminal-Server-Client Rechners dargestellt werden soll, auf dem virtuellen Desktop angelegt, und durch den Window-Manager verwaltet wird. Jedes Objekt, welches z..B. die Datenfelder, Rollbalken, Schaltflächen sowie auch die Fenster und Rahmen derselben selbst sein können, wird hierbei durch den Window-Manager anhand von zugehörigen Parametern beschrieben, wobei die Parameter zur Darstellung der Datenfelder beispiels¬ weise neben einer Nummerierung, welche die Bearbeitungsreihenfolge direkt oder indirekt festlegt, auch die Position des Datenfeldes auf dem Bildschirm, die Schriftart, die Schriftgröße sowie die Position des Cursors etc. mit beinhalten.
Bei dem erfindungsgemäßen Verfahren werden die Parameter für die Bearbeitungs¬ reihenfolge der Datenfelder innerhalb des Window-Managers von der eigenständigen Programmroutine dazu verwendet, die Bildschirmdarstellung auf dem Terminal-Server- Client Rechner bei der Eingabe von Daten in die Datenfelder zu beschleunigen.
Hierzu wird durch eine z.B. auf dem Terminal-Server ablaufende weitere Programmroutine oder ein Dienstprogramm bevorzugt durch Eingriff in das Betriebssystem eine Kopie oder zumindest eine Teilkopie der Fenster- und Objektparameter erstellt, die die Fenster- Programmroutine des Betriebssystems des Terminal-Servers - im Falle von Windows 200X Server der Window-Manager - zur Erzeugung der aktiven Bildschirmdarstellung des gerade ablaufenden Datenverarbeitungsprogramms verwendet. Diese Kopie oder Teilkopie des Window-Managers, die aufgrund der objektorientierten Beschreibung eine verglichen mit reinen Pixelgrafiken geringe Größe aufweist wird dann über das hochlatente Funkdatennetzwerk an den Terminal-Server-Client übersandt, und von der eigenständigen Programmroutine gelesen.
Die eigenständige Programmroutine analysiert die über das Eingabemedium eingegebenen Befehle und/oder Daten vor dem Übersenden an den Terminal-Server z.B. durch bekannte
„IF - THEN"- Abfragen, und ändert die aktive Bildschirmdarstellung auf dem Bildschirm des Terminal-Server-Clients durch Eingriff in den Grafikspeicher des Clients in Abhängig-
keit von der Bearbeitungsreihenfolge sowie den Fenster- und Objektparametern in der Kopie des Window-Managers selbständig dahingehend, dass z.B. die Eingabeaufforderung an den Anfang des Datenfeldes mit der nächsten Ordnungsnummer gesetzt wird, wenn die „ENTER" Taste oder die "PFEIL nach unten " Taste gedrückt wird. Hierbei wird in vorteil- hafter Weise immer nur dasjenige Datenfeld geändert, welches gerade angesprungen wurde, ohne dass die gesamte Bildschirmdarstellung durch den Client neu berechnet wird.
In entsprechender Weise ändert die eigenständige Programmroutine die aktive Bildschirm¬ darstellung in Abhängigkeit von der Bearbeitungsreihenfolge sowie den Fenster- und Objektparametern in der Weise selbständig dahingehend, dass die Eingabeaufforderung beim Auftreten eines vorgegebenen Befehls, z.B. " PFEIL aufwärts", der einem Rück¬ sprung in ein vorhergehendes Datenfeld zugeordnet ist, an den Anfang des vorhergehenden Datenfeldes gesetzt wird.
Durch die lokale Änderung des jeweiligen Datenfeldes, welches gemäß der vom Window- Manager bestimmten Reihenfolge als nächstes angesprungen wird, ergibt sich trotz der vergleichsweise großen physikalischen Latenzzeit von 0,7 bis 2 Sekunden eine flüssige interaktive Darstellung am Bildschirm.
Wie der Anmelder gefunden hat, ist dies in überraschender Weise auch darauf zurück zu führen, dass die bei den beschriebenen Betriebssystemen im Falle von Datenübertragungen über terrestrische Datennetze aufgrund der hohen Störanfälligkeit sowie des Routing erforderlichen Rückbestätigungen für den sicheren Erhalt der übersandten Daten, im Wesentlichen entfallen, oder zumindest auf ein absolutes Mindestmaß reduziert werden können, da die Übertragung der Daten über hochlatente Funkdatennetzwerke in der Regel mit einer kalkulierbaren Störanfälligkeit verbunden ist.
Sollte es aufgrund der fehlenden Rückbestätigungen bei der Übersendung der Befehle und Daten doch einmal passieren, dass ein Datenpaket bei der Übersendung vom Server zum Client verloren geht, so führt dies nur kurzzeitig zu einer fehlerhaften Grafikdarstellung, die jedoch auf dem Bildschirm des Clients nach sehr kurzer Zeit automatisch korrigiert wird, wenn der Server eine aktualisierte Darstellung übersendet.
Gemäß einer Weiterbildung des der Erfindung zugrundeliegenden Gedankens kann es weiterhin vorgesehen sein, dass die eigenständige Programmroutine die Position einer dem Eingabemedium zugeordneten Datenzeigeeinrichtung, insbesondere eines Mauszeigers, analysiert, und die Ansicht des zugehörigen Objekts in der aktiven Bildschirmdarstellung in einer vorbestimmten Weise selbständig ändert, wenn die Position der Datenzeigeein¬ richtung einer vorgegebenen Position oder einem Bereich in der aktiven Bildschirmdar¬ stellung entspricht. Das Objekt ist hierbei vorzugsweise eine Schaltflächen die z.B. erhellt oder in sonstiger Weise grafisch verändert wird, wenn der Mauszeiger sich im Bereich der Schaltfläche befindet, um dem Benutzer zu signalisieren, dass bei der Eingabe eines Befehls die Schaltfläche aktiviert wird.
Hierbei lässt sich eine weitere Steigerung der Ausführungsgeschwindigkeit des interaktiven Anwenderprogramms auf dem Client-Bildschirm dadurch erreichen, dass die eigenständige Programmroutine gleichzeitig überwacht, ob ein Befehl, insbesondere ein Mausklick, eingegeben wird. Ein solches Objekt ist beispielsweise ein bekannter Rollbalken, der durch Anklicken des mit der Datenzeigeeinrichtung sowohl seine Darstellung in einer vorgegebenen Weise ändert, als auch zumindest einen Teil des Inhalts der aktiven Bild¬ schirmdarstellung verschiebt. Das Verschieben der Bildschirmdarstellung geschieht hierbei vorzugsweise dadurch, dass der gesamte, durch die Kopie des Window-Managers im Terminal-Server-Client definierte Inhalt der Bildschirmdarstellung in bekannter Weise insgesamt im Speicher der Grafikkarte des Clients verschoben wird, bevor die Bildschirm¬ darstellung durch den Terminal-Server neu berechnet und an den Client übertragen wird. Aufgrund der Verwendung der Parameter aus der Kopie des Window-Managers auf dem Terminal-Server-Client stimmt die lokal erzeugte Bildschirmdarstellung bei derartigen Operationen, die keine durch das Datenverarbeitungsprogramm auf dem Server hervorge¬ rufene Änderung der Bildschirmdarstellung erzeugten, in hohem Maße mit der vom Server berechneten, und z.B. 0,7 bis mehreren Sekunden später an den Client über das hochlatente Funkdatennetzwerk übersandten Bildschirmdarstellung überein, die jedoch letztendlich die maßgebliche Darstellung ist, die die lokal erzeugte Darstellung überschreibt.
Die Bildschirmdarstellungen werden vorzugsweise durch ein eigenes entsprechend ausgestaltetes und optimiertes Protokoll übertragen, und können ebenfalls unkomprimierte oder komprimierte Bitmap-Dateien umfassen, die an den Terminal-Server-Client über¬ tragen werden. Gemäß der bevorzugten Ausführungsform der Erfindung wird vorzugs- weise jedoch lediglich derjenige Teil der Bildschirmdarstellung über den geostationären Satelliten übertragen, der sich gegenüber der vorhergehenden Darstellung geändert hat.
Hierdurch können die über ein hochlatentes Funkdatennetzwerk übertragenen Datenmengen sowie die Anzahl der Übertragungen - die häufig auch als Traffic bezeichnet wird - insbesondere in Kombination mit einer Übertragung ohne oder im wesentlichen ohne Rückbestätigungen, in vorteilhafter Weise sehr stark reduziert werden.
Gemäß einer weiteren Ausführungsform der Erfindung erfolgt hierbei zusätzlich auch die Übertragung der weiteren Datenpakete vom Terminal-Server-Client an den Terminal- Server im Wesentlichen ohne eine Rückbestätigung des Empfangs der übersandten weite¬ ren Datenpakete durch den Terminal-Server, wodurch sich der Traffic nochmals beträcht¬ lich reduzieren, und die Arbeitsgeschwindigkeit, mit der das interaktive Anwendungspro¬ gramm für den Benutzer auf dem Bildschirm des Terminal-Server-Clients abläuft, steigern lassen. So kann es beispielsweise sein, dass eine Rückbestätigung nur im Falle von Befeh- len, die eine größere Rechenoperation auf dem Server, z.B. eine umfangreiche Neusor¬ tierung des Datenbestandes bewirken, mit einer Rückbestätigung versehen werden, um sicher zu gehen, dass keine unnötigen Wartezeiten erzeugt werden.
Wie der Anmelder weiterhin erkannt hat, entstehen durch das Fortlassen von Rückbe- stätigungen nicht nur bei der Übersendung der Datenpakete vom Server an den Client große Geschwindigkeitsvorteile, sondern es wurde auch beobachtet, dass selbst eine Redu¬ zierung der Rückbestätigungen beim Übersenden der weiteren Datenpakete vom Terminal- Server-Client an den Terminal-Server bei den oben beschriebenen Datenverarbeitungs¬ programmen keine nennenswerten Beeinträchtigungen für den Benutzer der Programme mit sich bringt.
Eine weitere Reduzierung der über ein hochlatentes Funkdatennetzwerk übertragenen Datenmengen lässt sich in erfindungsgemäßer Weise dadurch erreichen, dass die weiteren Datenpakete vor dem Versenden an den Terminal-Server auf redundante Daten hin untersucht, und ermittelte redundante Daten aus den weiteren Datenpaketen entfernt oder durch bereits eingegeben Daten ersetzt werden.
In entsprechender Weise können auch die vom Terminal-Server erzeugten Datenpakete vor dem Versenden an den Terminal-Server-Client auf redundante Daten hin untersucht und ermittelte redundante Daten aus den Datenpaketen entfernt oder durch im Terminal-Server vorgehaltene Daten ersetzt werden.
Gemäß einer weiteren Ausführungsform der Erfindung, bei der die zur Verfügung stehend Bandbreite des hochlatenten Funkdatennetzwerkes in optimaler Weise ausgenutzt wird, können mehrere der zwischen dem Terminal-Server und dem Terminal-Server-Client über das Funkdatennetzwerk zu übertragenden Datenpakete und/oder weiteren Datenpakete zur größeren Datenpaketen und/oder größeren weiteren Datenpaketen zusammengefasst wer¬ den, wobei die zusammengefassten größeren Datenpakete und/oder die zusammengefassten größeren weiteren Datenpakete eine optimierte Größe aufweisen, derart, dass eine Übertra¬ gung über das hochlatente Funkdatennetzwerk ohne eine Fragmentierung der Datenpakete und/oder weiteren Datenpakete erfolgt.
Die optimierte Größe der größeren Datenpakete und/oder der größeren weiteren Daten¬ pakete wird hierbei vorzugsweise durch den Terminal-Server bei der Einrichtung eines hochlatenten Funkdatennetzwerkes für die jeweilige Verbindung zum Terminal-Server- Client auf der Basis von verbindungsspezifischen Parametern bestimmt.
Hierdurch lässt sich die Latenzzeit bei der Arbeit mit zentralisierten interaktiven Anwendungen in den beschriebenen hochlatenten Funkdatennetzwerken in vorteilhafter Weise weiter verkürzen.
Die Erfindung wird nachfolgend mit Bezug auf die Zeichnung anhand einer bevorzugten Ausführungsform beschrieben.
In der Zeichnung zeigt
Fig. 1 eine schematische Übersichtsdarstellung eines erfindungsgemäßen hochlatenten Funkdatennetzwerkes mit den zugehörigen Rechnerkomponenten und Programmroutinen zur Verdeutlichung der Arbeitsweise des erfindungsgemäßen Verfahrens.
Wie in Fig. 1 dargestellt ist, ist ein Terminal-Server-Client Rechner 2 über ein hochlatentes Funkdatennetzwerk 4 mit einem Terminal-Server 6 verbunden, der in der Figur aus darstellungstechnischen Gründen lediglich in gestrichelten Linien angedeutet ist.
Das hochlatente Funkdatennetzwerk 4 umfasst eine erste clientseitige Sende- und Empfangsstation 8 sowie eine serverseitige Sende- und Empfangsstation 10, die über eine Mobilfunkstation oder einen geostationären Satelliten 12 zum Datenaustausch miteinander gekoppelt sind.
Auf dem Terminal-Server 6 werden je nach Anzahl der mit diesem verbundenen Terminal- Server-Client Rechner 2 ein, zwei oder mehrere Datenverarbeitungsprogramme 14 ausgeführt, die in zugehörigen abgeschlossenen Sitzungen oder Sessions 16 getrennt auf einem virtuellen Desktop des Terminal-Servers 6 ablaufen.
Im vorliegenden Falle ist zur besseren Übersichtlichkeit lediglich eine einziges Datenverarbeitungsprogramm 14 gezeigt, welches der Eingabe von Kundenstammdaten dient, die anhand einer vorgegebenen Bearbeitungsreihenfolge mit Hilfe einer Eingabeaufforderung 7 mit den entsprechenden Daten ausgefüllt werden, wie dies von Formularbearbeitungsprogrammen, Textverarbeitungsprogrammen oder auch Tabellenkalkulationsprogrammen her bekannt ist. Die Bearbeitungsreihenfolge der Datenfelder 18, deren Position, Breite, Höhe sowie auch die Art der darin verwendeten Schrift wird hierbei durch eine Fenster-Programmroutine 20 des auf dem Terminal-Server 6 ablaufenden Betriebssystems gesteuert.
Die Fenster-Programmroutine 20 enthält dabei vorzugsweise in tabellarischer Form sämtliche Fenster- und Objektparameter, die zur Erzeugung der Bildschirmdarstellung des Datenverarbeitungsprogramms 14 auf dem virtuellen Desktop des Terminal-Servers 6 benötigt werden.
Wie der Fig. 1 weiterhin entnommen werden kann, ist jedem Datenfeld 18 eine zugehörige Ordnungsziffer #1, #2, #3 etc. zugeordnet, welche den Parameter für die Bearbeitungs¬ reihenfolge der Datenfelder 18 angibt.
Auf dem Terminal-Server-Client 2 läuft eine eigenständige Programmroutine 22 ab, die von einer weiteren Programmroutine 24 auf dem Terminal-Server 6 über das hochlatente Funkdatennetzwerk 4 eine Kopie oder Teilkopie der Fenster-Programmroutine 20, bzw. der darin verwendeten Fenster- und Objektparameter zur Darstellung der Fenster und Objekte erhält, welch letztere beispielsweise Schaltflächen 36 oder Rollbalken 38 wie auch die Datenfelder 18 selbst umfassen können. Die Übertragung der Kopie oder Teilkopie 34 der Fenster- und Objektparameter der Fenster-Programmroutine 20 erfolgt dabei vorzugsweise beim Start des Datenverarbeitungsprogramms 14 auf dem Terminal-Server 6 sowie bei einem Wechsel zu einer vollständig neuen Bildschirmdarstellung, nachdem diese vom Datenverarbeitungsprogramm 14 erzeugt wurde.
Die auf dem Terminal-Server 6 mit Hilfe der Fenster-Programmroutine 20 erzeugte Bildschirmdarstellung des Datenverarbeitungsprogramms wird anschließend über das hochlatente Funkdatennetzwerk 4 an den Terminal-Server-Client 2 in Form von Datenpaketen im Wesentlichen ohne Rückbestätigungen übertragen, und auf dem Bildschirm 26 des Clients 2 in Form eines interaktiven Anwenderprogramms dargestellt, wie dies schematisch durch den Pfeil 28 angedeutet ist. Der Terminal-Server-Client 2 ist weiterhin mit einem Daten-Eingabemedium in Form einer Tastatur 30 sowie einer Datenzeigeeinrichtung in Form einer Maus 32 verbunden, über die vom Benutzer Daten und Befehle eingegeben werden, die vom Terminal-Server-Client 2 über das hochlatente Funkdatennetzwerk 4 als weitere Datenpakete an den Terminal-Server 6 übersendet werden. Das Datenverarbeitungsprogramm 14 erzeugt in Abhängigkeit von den weiteren Datenpaketen eine neue aktualisierte Büdschirmdarstellung des interaktiven Anwenderpro-
gramms, die anschließend wieder in Form von Datenpaketen bevorzugt nach einem eigenen optimierten Protokoll über das hochlatente Funkdatennetzwerk 4 an den Terminal- Server-Client 2 übersendet werden, um diejenigen Teile der Bildschirmdarstellung des interaktiven Anwenderprogramms auf dem Bildschirm 26 zu aktualisieren, die vom Datenverarbeitungsprogramm 14 als letztes geändert wurden.
Um Verzögerungen bei der Dateneingabe in die Datenfelder 18 aufgrund der physikalisch bedingten großen Latenzzeit von in der Regel mehr als 0,7 Sekunden zu verringern, werden die über die Tastatur 30 oder die Maus 32 eingegebenen Befehle und Daten - deren Eingabe in der Regel als ASCII-Zeichen erfolgt - von der auf dem Terminal-Server-Client 2 ablaufenden eigenständigen Programmroutine 22 analysiert, und die Eingabeaufforderung 7 in Abhängigkeit von dem jeweiligen Befehl oder Zeichen lokal weiterbewegt, während die Befehle und/oder Zeichen verzögert über das hochlatente Funkdatennetzwerk 4 an den Terminal-Server 6 übertragen und von diesem verrechnet werden, und die aktualisierte Bildschirmdarstellung an den Client 2 zurückgesandt wird.
Befindet sich die Eingabeaufforderung 7 beispielsweise im Datenfeld 18 mit der Ordnungsziffer #3, so erkennt die eigenständige Programmroutine 22 dies anhand der Kopie oder Teilkopie 34 der Fenster- und Objektparameter. Wird nun z.B. vom Benutzer auf der Tastatur 30 der Befehl " PFEIL aufwärts " durch Drücken der entsprechenden Taste eingegeben, so wird dies von der eigenständigen Programmroutine 22 anhand einer entsprechenden Abfrage erkannt, und in der Kopie 34 der Fenster- und Objektparameter die zugehörigen Parameter für das vorhergehende Datenfeld 18 mit der Ordnungsziffer #2 gelesen.
Ohne auf die vom Terminal-Server 6 aufgrund des Befehls aktualisierte neue Bild¬ schirmdarstellung des aktiven Anwenderprogramms zu warten, werden über die eigenständige Programmroutine 22 die dem Datenfeld 18 mit der Ordnungsziffer #2 zugeordneten Objektparameter für die Position, Breite, Höhe und Schriftart etc. an das Betriebssystem des Terminal-Server-Clients 2 übergeben, welches die Grafikkarte des Terminal-Server-Clients wiederum in bekannter Weise mit entsprechenden Befehlen ansteuert, um die Darstellung des mit der Ordnungsziffer #2 versehenen zweiten
Datenfelds 18 auf dem Bildschirm 26 dahingehend zu ändern, dass die Eingabeauf¬ forderung 7 an den linken Rand des Datenfeldes gesetzt wird, um über die Tastatur 30 weitere Daten in das Datenfeld eingeben zu können.
Wenn nach einer gewissen Verzögerungszeit von beispielsweise 1 Sekunde oder mehr die aktualisierte Bildschirmdarstellung des interaktiven Anwenderprogramms vom Terminal- Server 6 errechnet und über das hochlatente Funkdatennetzwerk 4 an den Terminal- Server-Client 2 übersandt wurde, wird die lokal erzeugte Bildschirmdarstellung des interaktiven Anwenderprogramms auf dem Bildschirm 26 durch die vom Terminal-Server 6 berechnete Bildschirmdarstellung ersetzt. Hierbei werden wie bereits zuvor ausgeführt, vorzugsweise nur die geänderten Teile der Bildschirmdarstellung überschrieben.
In entsprechender Weise setzt die eigenständige Programmroutine 22 die Eingabeauffor¬ derung 7 bei der Eingabe eines weiteren Befehls, z.B. beim Drücken der "ENTER" oder "TAB" - Taste in der zuvor beschriebenen Weise durch Abfrage der Kopie oder Teilkopie 34 der Fenster- und Objektparameter an den Anfang des Datenfeldes 18 mit der nächst höheren Ordnungsziffer #4.
Weiterhin kann es vorgesehen sein, dass die Fenster-Programmroutine 22 auf dem Terminal-Server 6 ebenfalls Objekte der Bildschirmdarstellung enthält (Controls), die in Fig. 1 beispielsweise als mit der Maus 32 aktivierbare Schaltflächen 36 oder Rollbalken 38 ausgebildet sein können, und die vorzugsweise ebenfalls im Wege der Kopie oder Teilkopie 34 der Fenster- und Objektparameter mit über das hochlatente Funkdatennetzwerk 4 auf den Terminal-Server-Client 2 übertragen werden.
Die eigenständige Programmroutine 22 überwacht bei der bevorzugten Ausführungsform der Erfindung ebenfalls die Position des Mauszeigers, und ändert beispielsweise den Stil oder die Darstellungsart der Schaltfläche 36, wenn die Position des Mauszeigers dem Bereich auf dem Bildschirm 26 entspricht, in dem sich die Schaltfläche 36 befindet. Hierzu kann es vorgesehen sein, dass die eigenständige Programmrouten 22 die x- und y- Koordi¬ naten eines jeden Objekts in der Kopie 34 der Fenster- und Objektparameter mit der aktu¬ ellen Mausposition vergleicht, und bei einer Übereinstimmung die weiteren Objektpara-
meter aus der Kopie 34 der Fenster- und Objektparameter heraussucht, z.B. indem die zugehörige Zeile einer zugeordneten Tabelle ausgelesen wird.
Wenn das Objekt 36 durch Anklicken mit der Maus 32 aktiviert werden soll, um z.B. die Eingabemaske zu verlassen, so kann dies durch die Erzeugung eines durch die weitere Programmroutine 22 lokal erzeugten akustischen Signals signalisiert werden. In gleicher Weise ist es möglich, zur weiteren Beschleunigung der Darstellung des interaktiven Anwenderprogramms eine Kopie der Fenster- und Objektparameter der vorhergehenden Bildschirmdarstellung des interaktiven Anwenderprogramms im Speicher des Clients 2 vorzuhalten, die beim Anklicken der Schaltfläche 36 oder der Eingabe eines entsprechen¬ den Befehls über die Tastatur 30 von der eigenständigen Programmroutine ausgelesen wird, um z.B. die Bildschirmdarstellung einer übergeordneten Ebene des Datenverar¬ beitungsprogramms 14, von der aus in die in Fig. 1 gezeigte Maskendarstellung gewechselt wurde, lokal anzuzeigen, bevor diese Darstellung vom Terminal-Server 6 berechnet und verzögert über das hochlatente Funkdatennetzwerk 4 an den Terminal-Server-Client 2 zur Darstellung auf dem Bildschirm 26 übersandt wird.
Schließlich kann beim Anklicken des Rollbalkens 38 mit dem Mauszeiger eine im Betriebssystem des Terminal-Server-Clients 2 laufende Unterprogrammroutine aufgerufen werden, die die gesamte Bildschirmdarstellung anhand der Vorgaben der Kopie 34 der Fenster- und Objektparameter verschiebt, indem der Inhalt des Speichers der Grafikkarte des Clients 2 in bekannter Weise manipuliert wird.
Wie die Anmelder gefunden haben, lässt sich das erfindungsgemäße Verfahren auch sehr vorteilhaft bei bestehenden Mobilfunknetzen, insbesondere bei GSM- Netzen mit Frequenzen im Bereich von 900, bzw. 1800 Mhz einsetzen, bzw. auch bei UMTS- Netzwerken. Gleiches gilt für ähnliche bekannte Funknetz werke.
Hierbei ergibt sich gegenüber bekannten Lösungen der besondere Vorteil, dass trotz der sehr geringen Übertragungsraten von z.B. lediglich 9600 Baud bei der Ausführung einer interaktiven Datenbankanwendung über ein GSM-Mobilfunknetz, - z.B. auf einem Mobilfunktelefon, einem PDA ( Personal Digital Assistent) oder einem Laptop, der über
ein GSM-Modem auf einen Terminal-Server-Rechner zugreift - Antwortzeiten von weniger als 1 Sekunde erzielt werden, wohingegen dieselbe Anwendung beim Einsatz von Verfahren nach dem Stand der Technik erheblich länger benötigen, da in der Regel Tastatur- oder Mausbewegungen zu einer Datenübertragung vom Terminal-Server Client zum Terminal-Server-Rechner führen, die infolge der Addition der einzelnen Antwortzeiten bereits bei der Eingabe von einzelnen Worten zu Reaktionszeiten führen, die im Bereich von mehreren Sekunden liegen.
Ein weiterer Vorteil des erfindungsgemäßen Verfahrens, der insbesondere beim Einsatz von GSM-Mobilfunkgeräten zur Datenübertragung hervortritt, besteht darin, dass die übertragene Datenmenge - verglichen mit Verfahren nach dem Stand der Technik - erheblich reduziert wird. So konnte z.B. in einer Datenbankanwendung, die über einen Laptop und ein angeschlossenes GSM-Mobilfunkmodem auf dem Terminal-Server gestartet wurde, und bei der lediglich eine Suchanfrage und ein Ändern eines Artikels sowie ein Abspeichern eines kurzen Textes durchgeführt wurden, die Anzahl der zwischen Client und Server ausgetauschten Datenpakete von mehr als 1300 auf weniger als 100 Datenpakete reduziert werden, wodurch sich die Antwortzeiten bei der interaktiven Arbeit mit der Datenbankanwendung in entsprechendem Maße verringerten.
Durch den Einsatz des erfindungsgemäßen Verfahrens können somit die sonst üblichen Verzögerungen bei der Dateneingabe, die durch die in der Regel unvermeidbaren langen Laufzeiten/RTT (Round Trip Time), die im Mobilfunkbereich z.B. 700 - 4000 ms betragen, bedingt werden, in vorteilhafter Weise auf ein solches Maß reduziert werden, dass sie vom Bediener der Datenbankanwendung nicht mehr als störend wahrgenommen werden.
Gemäß einem weiteren der Erfindung zugrunde liegenden Gedanken werden die Datenpakete mit einer Kodierung versehen, die bevorzugt als eine fortlaufende Identifikationsnummer ausgestaltet ist. Unmittelbar nach dem Empfang eines übertragenen Datenpakets überprüft der Terminal-Server-Client anhand der aktuellen Identifikationsnummer des gerade empfangenen Datenpakets, ob diese mit der erwarteten Nummer der laufenden Nummerierung übereinstimmt oder nicht, die aus den
Identifikationsnummern der zuvor empfangenen Datenpakete bestimmt wird. Sofern die Identifikationsnummer nach einer gewissen Wartezeit nicht der erwarteten fortlaufenden Nummer entspricht, da z.B. ein Datenpaket zwischenzeitlich nicht ordnungsgemäß übertragen wurde, übersendet der Terminal-Server-Client eine entsprechende Auforderung über einen speziellen hierfür vorgesehen Retransmission-Kanal (Resend) an den Terminal Server, das fehlende Datenpaket erneut zu übersenden. Wurden beispielsweise zuvor Datenpakete mit den Identifikationsnummern 1000, 1001, 1002 und 1003 empfangen, und besitzt das aktuell empfangene Datenpaket nach einer gewissen Wartezeit von z.B. 10 Sekunden die Identifikationsnummer 1005, so erkennt der Terminal-Server-Client z.B. mittels einer entsprechenden Programmroutine, dass das Datenpaket 1004 nicht übertragen wurde, und fordert dieses vom Terminal-Server zur erneuten Übertragung an.
Das zuvor gesagte gilt entsprechend bevorzugt auch in der umgekehrten Richtung bei den vom Terminal-Server-Client an den Terminal Server übersandten weiteren Datenpakten.
Liste der Bezugszeichen
2 Terminal-Server-Client
4 Hochlatentes Funkdatennetzwerk
6 Terminal-Server
7 Eingabeaufforderung
8 Clientseitige Bodenstation 10 Serverseitige Bodenstation
12 Mobilfunkstation/geostationärer Satellit
14 Datenverarbeitungsprogramm
16 Sitzung/Session auf Terminal-Server
18 Datenfeld
20 Fenster-Programmroutine
22 eigenständige Programmroutine
24 weitere Programmroutine
26 Bildschirm
28 Pfeil
30 Tastatur
32 Maus
34 Kopie/Teilkopie der Fenster- und Objektparameter auf Terminal-Server-Client
36 Schaltfläche
38 Rollbalken
#1, #2, #3 Ordnungsziffern
Ansprüche
1. Verfahren zur Reduzierung der Latenzzeit bei der interaktiven Datenkommunikation zwischen einem Terminal-Server (6) und einem Terminal-Server-Client (2), die über ein Telekommunikationsnetzwerk, insbesondere ein GSM, UMTS -Netzwerk oder ein sonstiges Funknetzwerk, miteinander verbunden sind, wobei auf dem Terminal- Server (6) ein Datenverarbeitungsprogramm (14), insbesondere ein
Datenbankprogramm, ausgeführt wird, welches in Abhängigkeit von Befehlen und Daten, die über ein mit dem Terminal-Server-Client (2) verbundenes Eingabemedium (30) eingegebenen werden, Bildschirmdarstellungen eines interaktiven Anwender¬ programms mit mehreren, nach einer durch Parameter (#1, #2, #3) vorgegebenen Bearbeitungsreihenfolge durchlaufenen Datenfeldern (18) erzeugt, die in Form von
Datenpaketen im wesentlichen ohne Rückbestätigungen auf den Terminal-Server- Client (2) übertragen und von diesem auf einem Anzeigemedium (26) dargestellt werden, wobei auf dem Anzeigemedium (26) durch eine Eingabeaufforderung (7) die Eingabe von weiteren Daten in ein zugehöriges Datenfeld (18) über das Eingabe- medium signalisiert wird, die in Form von weiteren Datenpaketen über das
Telekommunikationsnetzwerk (4) an den Terminal-Server (6) übertragen werden, d a d u r c h g e k e n n z e i c h n e t, dass die Parameter (#1, #2, #3) für die Bearbeitungsreihenfolge der Datenfelder (18) über das Telekommunikationsnetzwerk (4) an den Terminal-Server-Client (2) übertragen werden, und dass auf dem Terminal-Server-Client (2) eine eigenständige Programm¬ routine (22) abläuft, die bei der Eingabe vorgegebener Befehle über das Eingabe¬ medium (30, 32) die Bildschirmdarstellung in Abhängigkeit von den Parametern (#1, #2, #3) für die Bearbeitungsreihenfolge in der Weise selbständig verändert, dass die Eingabeaufforderung (7) innerhalb eines Datenfeldes (18) in das nach der Bearbeitungsreihenfolge nächste oder vorhergehende Datenfeld bewegt wird.