[go: up one dir, main page]

DE60033286T2 - System und verfahren zur bereitstellung einer unmittelbaren visuellen antwort auf eine benutzereingabe in einem anwendersystem - Google Patents

System und verfahren zur bereitstellung einer unmittelbaren visuellen antwort auf eine benutzereingabe in einem anwendersystem Download PDF

Info

Publication number
DE60033286T2
DE60033286T2 DE60033286T DE60033286T DE60033286T2 DE 60033286 T2 DE60033286 T2 DE 60033286T2 DE 60033286 T DE60033286 T DE 60033286T DE 60033286 T DE60033286 T DE 60033286T DE 60033286 T2 DE60033286 T2 DE 60033286T2
Authority
DE
Germany
Prior art keywords
server
response
node
client
user input
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE60033286T
Other languages
English (en)
Other versions
DE60033286D1 (de
Inventor
Martin West Pennant Hills DUURSMA
Anatoliy Thornleigh PANASYUK
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Citrix Systems Inc
Original Assignee
Citrix Systems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Citrix Systems Inc filed Critical Citrix Systems Inc
Application granted granted Critical
Publication of DE60033286D1 publication Critical patent/DE60033286D1/de
Publication of DE60033286T2 publication Critical patent/DE60033286T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • H04L67/025Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • User Interface Of Digital Computer (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Description

  • Technisches Gebiet
  • Die vorliegende Erfindung betrifft allgemein Client-Server-Computernetzwerke und insbesondere ein System und ein Verfahren zur Bereitstellung von Rückmeldungen auf eine Benutzereingabe in einem Client-System.
  • Allgemeiner Stand der Technik
  • Typische Computernetzwerke enthalten Client-Systeme, die über Kommunikationsstrecken mit Server-Systemen kommunizieren. Oft formuliert ein Benutzer des Client-Systems durch eine auf dem Client-System operierende Benutzeroberfläche Anfragen und führt diese dem Server-System zu. Das Server-System wertet die Anfragen aus und gibt dem Client-System Antworten zur Anzeige auf der Client-Benutzeroberfläche.
  • In den letzten zehn Jahren haben vielfältige Computernetzwerke, wie zum Beispiel lokale Netzwerke (LAN), großflächige Netzwerke (WAN), Intranets und das Internet Fernanwendungsverarbeitung verwendet. Bei einem Fernanwendungs-Prozesssystem findet die gesamte Anwendungsprogrammausführung auf dem Server-System statt, und nur die Steuerinformationen für die Client-Benutzeroberfläche, Tastenbetätigungen und Mausbewegungen überqueren das Netzwerk. Folglich sind weniger Betriebsmittel der Client-Systeme notwendig, um Anwendungen auszuführen.
  • Eine Unzulänglichkeit der Fernanwendungsverarbeitung besteht jedoch darin, dass es in dem Client-System zu einer unannehmbaren Laufzeitverzögerung (d.h. Latenz) vom Senden einer Eingabe zu dem Server-System durch das Client-System, bis das Client-System eine Antwort empfängt, kommen kann. Solche Verzögerungen können sich in Ferndatenverarbeitungsumgebungen, wie zum Beispiel denen im Internet angetroffenen, WAN oder Satellitenstrecken oder bei Mehrbenutzer-Server-Systemen manifestieren. Im Bezug auf Ferndatenverarbeitungsumgebungen produziert die geographische Trennung des Client-Systems von dem Server-System die Verzögerung. Dies kann zum Beispiel besonders für einen Benutzer problematisch sein, der auf dem Client-System tippt. Die Zeit, die es dauert, bis sich die Client-Eingabe zu dem Server-System ausbreitet und bis die Server-Antwort zu dem Client-System zurückkehrt, verursacht eine augenfällige Verzögerung, die den Benutzer beunruhigen und Tippfehler einführen kann. Bei Mehrbenutzer-Server-Systemen kann die Laufzeitverzögerung mehr von der Fähigkeit eines stark ausgelasteten Server-Systems abhängen, das gleichzeitig Benutzeroberflächendaten von mehreren aktiven Clients verarbeitet, um auf von einem bestimmten Client-System empfangene Eingaben zu reagieren.
  • Folglich werden die Vorteile der derzeitigen Ferndatenverarbeitungs- und Mehrbenutzertechnologien bei Implementierungen, bei denen die Laufzeit-Ansprechzeit größer als die akzeptable Benutzeroberflächenansprechzeit ist, gemindert. Somit werden ein System und ein Verfahren benötigt, die die von dem Benutzer eines Client-Systems in Ferndatenverarbeitungs- und Mehrbenutzer-Computersystemnetzwerken wahrgenommen wird, minimieren.
  • Die Europäische Patentanmeldung Nr. 836145 beschreibt ein System zum effizienten Abrufen von Webseiten, bei dem ein sich in einem Server befindliches Fern-Proxy eine Kopie einer Webseite zu einem Client sendet, während es überprüft, ob es eine neuere Version der angeforderten Webseite gibt. Wenn dies der Fall ist, bestimmt der Server bzw. das Proxy die Unterschiede zwi schen der aktuellen Version der angeforderten Webseite und der gesendeten Version der angeforderten Webseite und sendet nur diese Unterschiede zu dem Client.
  • Kurzfassung
  • Die Erfindung beschreibt ein Verfahren und eine Vorrichtung zum Reduzieren der wahrgenommenen visuellen Antwort auf eine Benutzereingabe an einem Client-Knoten, der ein Anwendungsprogramm auf einem Server-Knoten fernausführt, wobei die Ausführung des Anwendungsprogramms auf dem Server-Knoten stattfindet. Der Client-Knoten sendet die Benutzereingabe zu dem Server-Knoten, und die Benutzereingabe ruft eine Antwort von dem Server-Knoten hervor, die zur Anzeige zu dem Client-Knoten zurückgesendet wird.
  • Gemäß der Erfindung wird ein Verfahren, ein Client-Knoten und ein Computernetzwerk zum Reduzieren der wahrgenommenen Ansprechzeit auf vom Benutzer gegebene Eingaben gemäß den angefügten Ansprüchen bereitgestellt.
  • Kurze Beschreibung der Zeichnungen
  • Die Erfindung wird in den angefügten Ansprüchen im Einzelnen definiert. Die obigen und weitere Vorteile der Erfindung werden durch Bezugnahme auf die folgende Beschreibung in Verbindung mit den beigefügten Zeichnungen besser verständlich. Es zeigen:
  • 1 ein Diagramm einer Ausführungsform eines Client-Systems in Kommunikation mit einem Server-Knoten über ein Netzwerk;
  • 2 ein Blockschaltbild eines Client-Servers, wobei die Kommunikationswege zwischen Client und Server bei der Durchführung der Verfahren der vorliegenden Erfindung gezeigt sind;
  • 3 ein beispielhaftes Flussdiagramm eines beispielhaften Prozesses, durch den der Client-Knoten eine Antwort auf Tastatureingaben erzeugt; und
  • 4 ein beispielhaftes Flussdiagramm eines beispielhaften Prozesses, durch den der Client-Knoten eine Antwort auf Benutzereingaben erzeugt, die durch das Zeigegerät bereitgestellt werden.
  • Beschreibung der Erfindung
  • 1 zeigt ein erstes Datenverarbeitungssystem (Client-Knoten) 10 in Kommunikation mit einem zweiten Datenverarbeitungssystem (Server-Knoten) 14 über ein Kommunikationsnetzwerk 18 zur Fernausführung eines Anwendungsprogramms auf dem Server-Knoten 14 gemäß den Prinzipien der Erfindung. Das Netzwerk 18, über das der Client- und der Server-Knoten 10, 14 kommunizieren, kann ein lokales Netzwerk (LAN) oder ein großflächiges Netzwerk (WAN) wie etwa das Internet sein.
  • Der Client- und der Server-Knoten 10, 14 können sich durch vielfältige Verbindungen mit dem Netzwerk 18 verbinden, darunter Standard-Telefonleitungen, LAN- oder WAN-Strecken (z.B. T1, T3, 56 kB, X.25), Breitbandverbindungen (ISDN, Frame Relay, ATM) und drahtlose Verbindungen. Verbindungen können unter Verwendung vielfältiger Kommunikationsprotokolle hergestellt werden (z.B. TCP/IP, IPX, SPX, NetBIOS, Ethernet, RS232 und direkte asynchrone Verbindungen). Außerdem können andere (nicht gezeigte) Client-Knoten und Server-Knoten mit dem Netzwerk 18 verbunden sein.
  • Bei einer Ausführungsform kommuniziert der Client-Knoten 10 unter Verwendung eines Protokolls der unabhängigen Datenverarbeitungsarchitektur (ICA – Independant Computing Architecture), das von Citrix Systems, Inc. in Ft. Lauderdale, Florida, entwickelt wurde, mit dem Server-Knoten 14. ICA ist ein Vielzweck-Präsentationsdiensteprotokoll, das die Eingabe/Ausgabe zwischen dem Client-Knoten 10 und dem Server-Knoten 14 steuert. Der Entwurf von ICA gilt für die Präsentationsdienste zum Ablauf über Industriestandard-Netzwerk-Protokolle, wie zum Beispiel TCP/IP, IPX/SPX oder Net-BEUI unter Verwendung von Industriestandard-Transportprotokollen, darunter, aber ohne Einschränkung, ISDN, Frame Relay und der asynchrone Transfermodus (ATM).
  • Mit dem ICA-Protokoll verbleibt die gesamte Anwendungsausführung auf dem Server-Knoten 14 und es werden nur Benutzeroberflächeninformationen wie etwa Fensteranwendungs-Schirmpräsentation, Vollbildschirm-Textpräsentation und Tastatur- und Zeigegerät-Aktualisierungen zu dem Client-Knoten 10 gesendet. Die Technik der Erfindung operiert als ein Merkmal, das Standard-ICA-Tastatur-Verarbeitung beschleunigt. Wenn ein bestimmtes Anwendungsprogramm oder ein Eingabesteuerelement die Technik nicht unterstützen kann, wird die Standard-ICA-Tastaturverarbeitung benutzt. Andere Ausführungsformen können andere Fernsteuerprotokolle verwenden, wie zum Beispiel Microsoft RDP (Remote Desktop Protocol), um die Prinzipien der Erfindung auszuüben.
  • Der Client-Knoten 10 kann ein beliebiger Personal Computer (z.B. 286, 386, 486, Pentium, Pentium II, Macintosh-Computer), eine Thin-Client-Einrichtung, ein Terminal auf der Basis von Windows und nicht von Windows, ein Netzwerkcomputer, eine drahtlose Einrichtung, eine Informationsanwendung, ein RISC-Power-PC, eine X-Einrichtung, eine Workstation, ein Minicomputer, ein Zentralrechner oder eine beliebige prozessorgestützte Einrichtung mit der Fähigkeit zum Anzeigen von Anwendungsdaten und zum Betrieb gemäß einem Protokoll, das Eingangsdaten zu einem fern auf dem Server-Knoten 14 ausgeführten Anwendungsprogramm operiert, sein.
  • Die an dem Client-Knoten 10 angezeigte Benutzeroberfläche kann textgesteuert sein (z.B. das von der Microsoft Corporation in Redmond, Washington, hergestellte Betriebssystem DOS) oder kann graphisch gesteuert sein (z.B. das von der Microsoft Corporation in Redmond, Washington, hergestellte Betriebssystem WINDOWS). Das Betriebssystem des Client-Knoten 10 kann eine von vielfältigen Plattformen sein, darunter, aber ohne Einschränkung, WINDOWS 3.x, WINDOWS 95, WINDOWS 98, WINDOWS NT 3.51, WINDOWS NT 4.0, Macintosh, Java und Unix, DOS, Linux und WINDOWS CE für auf Windows basierende Terminals. Der Client-Knoten 10 enthält einen Anzeigeschirm 22, eine Tastatur 24, ein Zeigegerät (z.B. eine Maus, ein Trackball, ein Touchpad, einen Berührungsschirm usw.) 28, einen (nicht gezeigten) Prozessor und (nicht gezeigte) persistente Speicherung.
  • Der Server-Knoten 14 kann eine beliebige Datenverarbeitungseinrichtung sein, die den Zugang zu anderen Teilen des Netzwerks (z.B. Workstation, Druckern usw.) kontrolliert und als Reaktion auf von dem Client-Knoten 10 empfangene Eingaben Anwendungen ausführt. Wie der Client-Knoten 10 kann der Server-Knoten 14 vielfältige Betriebssystemplattformen unterstützen, darunter zum Beispiel WINDOWS 3.x, WINDOWS 95, WINDOWS 98, WINDOWS NT 3.51, WINDOWS NT 4.0, WINDOWS CE für auf Windows basierende Terminals, Macintosh, Java und Unix. Der Server-Knoten 14 kann eine Gruppe von Serversystemen umfassen, die logisch als ein einziges Serversystem wirken, was als Server-Farm bezeichnet wird. Bei einer Ausführungsform ist der Server-Knoten 14 ein Mehrbenutzer-Server-System, das mehrere gleichzeitig aktive Client-Knoten unterstützt.
  • Der Server-Knoten 14 ist Host für eines oder mehrere Anwendungsprogramme, auf die der Client-Knoten 10 zugreifen kann. Beispiele für solche Anwendungen wären Browser-Software, z.B. MICROSOFT INTERNET EXPLORERTM; Textverarbeitungsprogramme wie etwa MICROSOFT WORD® und MICROSOFT NOTEPAD®, Datenbankprogramme wie etwa MICROSOFT ACCESS® und Tabellenkalkulationsprogramme wie etwa MICROSOFT EXCEL®, die alle von der Microsoft Corporation in Redmond, Washington, hergestellt werden.
  • Solche Anwendungsprogramme rufen Routinen der Anwendungsprogrammschnittstelle (API) auf, um die Leistung des auf dem Server-Knoten 14 ablaufenden Betriebssystems zu lenken. Serverseitige Unterstützung kann die von der Microsoft Corporation in Redmond, Washington, entwickelte Active Accessibility API benutzen oder äquivalente proprietäre API, die das Extrahieren von Informationen über den Inhalt eines Fensters aus der Anwendung, die die Kontrolle über dieses Fenster hat, ermöglichen. Zum Beispiel modelliert Active Accessibility API Benutzeroberflächenelemente als Objekte des Componant Object Model (COM). Ein Client kann die Eigenschaften eines Objekts unter Verwendung bereitgestellter Informationen, wie etwa laccessible::accLocation und IAccessible::get_accName, untersuchen. Die obigen Beispiele sollen veranschaulichen, aber nicht erschöpfen.
  • Als kurze Übersicht kommuniziert der Client-Knoten 10 mit dem Server-Knoten 14, um ein Anwendungsprogramm auf dem Server-Knoten 14 aus der Ferne auszuführen. An den Client-Knoten 10 gegebene Benutzereingaben dienen als Eingabe für das Anwendungsprogramm. Die gesamte Ausführung des Anwendungsprogramms geschieht auf dem Server-Knoten 14 gemäß diesen zu dem Server-Knoten 14 aus dem Client-Knoten 10 weitergeleiteten Benutzereingaben. Beispiele für Benutzereingaben, die typischerweise von einem Benutzer des Client-Knotens 10 eingegeben werden, wären Zeichen, die durch Verwendung der Tastatur 24 eingegeben werden, oder unter Verwendung des Zeigegeräts 28 angegebene Cursorbewegungen.
  • Als Reaktion auf die Benutzereingaben produziert der Server-Knoten 14 eine Server-Antwort, die Inhalt und Aussehen der Schirmanzeige des Client-Knotens 10 steuert, wenn sie danach zu dem Client-Knoten 10 gesendet und dort empfangen werden. Die Art der Serverantwort richtet sich nach dem Typ der empfangenen Benutzereingaben und dem Anwendungsprogramm, das die Benutzereingaben verarbeitet. Wenn das Anwendungsprogramm zum Beispiel ein Textverarbeitungsprogramm ist und das Eingangsereignis eine Tastatureingabe des Zeichens „T" ist, produziert die Antwort von dem Server-Knoten 14 an den Client-Knoten 10 das Zeichen „T", wenn sie auf dem Client-Knoten 10 angezeigt wird. Die Antwort kann Informationen umfassen, die die Anzeige des Zeichens „T" auf dem Bildschirm des Client-Knotens 10 definieren, darunter Informationen über die aktuelle Eingabeposition und Fontinformationen. Wenn die Benutzereingabe stattdessen zum Beispiel eine Betätigung eines Zeigegeräts (z.B. eine Cursorbewegung) ist, die ein Toolbar-Symbol auswählt, kann die Serverantwort ähnlich ein Dropdown-Menu, das mit diesem Symbol assoziiert ist, auf dem Schirm 22 des Client-Knotens 10 anzeigen.
  • Wie lange es dauert, bis die Benutzereingabe das Netzwerk 18 zu dem Server-Knoten 14 überquert und bis die Server-Antwort zu dem Client-Knoten 10 zurückkehrt, ist die Latenz der Verbindung zwischen den Knoten 10, 14. Wenn der Client-Knoten 10 und der Server-Knoten 14 über eine Verbindung mit großer Latenz kommunizieren, kann der Benutzer vom Zeitpunkt des Eingebens der Eingabe bis zu Empfangen einer Server-Antwort eine augenfällige Verzögerung erfahren. Solche Verbindungen mit großer Latenz sind in einer WAN- oder Internet-Umgebung häufig anzutreffen und können in Mehrbenutzer-Computersystemen auftreten, die stark mit dem Antworten auf Anfragen von mehreren aktiven Clients ausgelastet sind.
  • Um die Effekte von solcher Latenz zu vermindern, produziert der Client-Knoten 10 sogar in Erwartung der Server-Antwort eine Antwort auf die Eingabe und zeigt diese an. Gemäß den Prinzipien der Erfindung versucht die Antwort des Client-Knotens 10 die Server-Antwort zu antizipieren, die im Wesentlichen in Bezug auf Inhalt und Aussehen der nachfolgenden Anzeige der erwarteten Serverantwort gleicht. Inhalt wäre zum Beispiel der spezifische Text und das graphische Bild, die die Server-Antwort erwartungsgemäß anzeigen wird, wie zum Beispiel den Großbuchstaben „T" und das Dropdown-Menu der oben beschriebenen Beispiele. Mit dem Aussehen assoziierte Attribute wären zum Beispiel die Farbe des angezeigten Zeichens (z.B: blau), die Fontgröße (z.B. 12), der Fonttyp (z.B. Times New Roman), der Fontstil (z.B. kursiv) und die aktuelle Eingabeposition (d.h. (x, y)-Koordinate) auf dem Anzeigeschirm 22.
  • Erzeugen einer Client-Antwort
  • 2 zeigt ein beispielhaftes Blockschaltbild, das die Informationen darstellt, die ein Client-Antwort-Generator 30 verwendet, um eine Client-Antwort 32 auf eine vom Benutzer gegebene Eingabe zu produzieren. Der Client-Antwort-Generator 30 enthält den Prozessor des Client-Knotens 10 und die bestimmten API-Routinen, die die vom Client erzeugte Antwort 32 bilden und anzeigen. Von dem Server 14 zu dem Client 10 gesendete Daten 35 umfassen Daten 36 und Daten 37. Die Daten 36 umfassen vom Server gelieferte Informationen, die Daten 37 sind die Server-Antwort auf die vom Benutzer gegebenen Eingaben. In der Regel bildet der Client-Antwort-Generator 30 die vom Client erzeugte Antwort 32 auf der Basis dieser vom Benutzer gegebenen Eingaben 34 und der vom Benutzer gelieferten Informationen 36, wenn aber bestimmte vom Server gelieferte Informationen, die nachfolgend beschrieben werden, nicht verfügbar sind, kann der Client-Antwort-Generator 30 stattdessen Vorgabeinformationen 38 benutzen.
  • Die vom Benutzer gegebene Eingabe 34 weist einen von mindestens zwei Typen auf: (1) Tastatureingabe oder (2) Zeigegeräteingabe. Der Benutzer des Client-Knotens 10 hat Tastatureingaben gegeben, indem er die Zeichen unter Verwendung der Tastatur tippt, und Zeigegeräteingaben, indem er mit dem Zeigegerät klickt oder doppelklickt. Eine andere Art von Zeigegeräteingabe wäre die Position des Cursors auf dem Anzeigeschirm 22 des Client-Knotens 10. Vom Benutzer gegebene Eingaben werden über einen clientseitigen Transportmechanismus 33 zu dem Server 14 übertragen. Bei der in 2 abgebildeten Ausführungsform umfasst der clientseitige Transportmechanismus 33 einen Transportreiber, der Netzwerkkommunikation auf niedriger Ebene abwickelt (z.B. physische Schicht), einen Protokolltreiber, der Netzwerkkommunikation auf höherer Ebene abwickelt (z.B. auf der Datenstreckenschicht), und einen ICA-Treiber, der die Formatierung von Daten, um dem ICA-Protokoll zu genügen, abwickelt.
  • Die Art der vom Server gelieferten Informationen 36 hängt von der Art der Benutzereingabe ab. Wie oben beschrieben, umfassen die Eingabetypen Tastatureingaben und Zeigegeräteingaben. Für Tastatureingaben umfassen die vom Server gelieferten Informationen 36 eine aktuelle Eingabeposition und aktuelle Fontinformationen. Die aktuelle Eingabeposition wird durch die aktuelle Cursorposition bestimmt. Die Fontinformationen definieren das Aussehen (z.B. Fontgröße, Stil, Farbe, Typ usw.) der vom Client erzeugten Antwort, wenn sie auf dem Anzeigeschirm angezeigt wird.
  • Für Zeigegeräteingaben umfassen die vom Server gelieferten Informationen 36 Informationen über die aktuelle Eingabeposition, wie oben beschrieben, und Informationen über das aktuelle Bildschirmobjekt. Wenn das aktuelle Bildschirmobjekt zum Beispiel ein Menü ist, umfassen die Bildschirmobjektinformationen Informationen wie etwa Menügröße und Schirmposition, Anzahl der Menüelemente und Größe der Menüelemente. Hierbei entsprechen die Informationen über die aktuelle Eingabeposition der durch das Zeigeeingabegerät bestimmten Cursorposition.
  • Der Server-Knoten 14 erhält die Informationen über aktuelle Eingabepositionen, Font und Bildschirmobjekt von dem auf dem Server-Knoten 14 ausgeführten Anwendungsprogramm 40. Um eine aktuelle Eingabeposition bereitzustellen, kann das Anwendungsprogramm eine Standard-Betriebssystem-Cursor-Handhabungsroutine verwenden oder eine bestimmte Abfrage-API unterstützen, die die Cursorinformationen erhält, wie zum Beispiel die API 41 „Fontinfo" oder die API 42 „Karree" (siehe 2). Die Verwendung der Standard-Betriebssystem-Routine kann eine gewisse Modifikation an dieser Routine erfordern, um die Cursorinformationen zu erhalten. Zum Beispiel können Implementierungen, die MICROSOFT WINDOWS verwenden, dies durch Installation einer Hook-Prozedur in der Standard-Dynamic-Link-Library-Datei User32.dll erzielen.
  • Um die Fontinformationen bereitzustellen, verwendet das Anwendungsprogramm 40 entweder Textausgabefunktionen zum Zeichnen des Text als Reaktion auf die Tastatureingabe oder unterstützt eine bestimmte Abfrage-API zum Erhalten der Fontinformationen. Sollte das Anwendungsprogramm keine API unterstützen, die Fontinformationen bereitstellen kann, kann der Client-Antwortgenerator 30 Vorgabeinformationen 38 verwenden, um die vom Client erzeugte Antwort 32 bereitzustellen. Zum Beispiel können die Vorgabeinformationen 38 oder der Font vorbestimmt sein oder der letzten vorherigen, durch das Anwendungsprogramm erzeugten Textausgabe entnommen werden.
  • Das Anwendungsprogramm 40 liefert Bildschirmobjektinformationen auf eine Weise, die der Bereitstellung der aktuellen Eingabeposition ähnlich ist, das heißt durch Verwenden einer systemunterstützten Routine zum Zugreifen auf solche Informationen oder durch Unterstützen einer weiteren besonderen Abfrage-API, wie zum Beispiel das oben erwähnte laccessible::accLocation. Solche Ab frage-API können Standard-API sein, wie zum Beispiel API in der von Microsoft entwickelten Active Accessibility Interface, oder proprietäre API.
  • Die Art der vom Server gelieferten Informationen 36 hängt auch von dem Betriebszustand des gerade auf dem Server-Knoten 14 ausgeführten Anwendungsprogramms ab. Wenn der Server-Knoten 14 zum Beispiel ein Textverarbeitungs-Anwendungsprogramm ausführt und das Programm zur Zeit unter Verwendung von Editiersteuerung die Eingabe verarbeitet, kann der Client-Antwortgenerator 30 antizipieren, wie der Server-Knoten 14 Tastatureingaben verarbeitet, während er gemäß dieser Menge von Steuerelementen operiert. Bei Ausführungsformen, die unter Verwendung des Betriebssystems Windows implementiert werden, ist die Editiersteuerung Standard und gut dokumentiert. Das Verhalten der Editiersteuerung wird im Allgemeinen durch eine Menge von Flags bestimmt, die mit der Editiersteuerung assoziiert sind, wie etwa: ES_MULTILINE, wodurch angezeigt wird, dass das Steuerelement mehrere Textzeilen enthält; ES_NUMBER, wodurch angezeigt wird, dass das Steuerelement nur das Eingeben von Ziffern erlaubt; ES_CENTER, wodurch angegeben wird, dass der eingegebene Text zentriert wird, oder ES_LOWER CASE, wodurch angegeben wird, dass der eingegebene Text in Kleinbuchstaben umgesetzt wird. Es können andere Informationen durch Abfragen der Editiersteuerung erhalten werden, wie zum Beispiel aktuelle Größe des Ausgaberechtecks, derzeit ausgewählter Font, aktuelle Zeile oder aktuelle Textauswahl in der Editiersteuerung. Somit kann der Client-Antwortgenerator 30 eine Anzahl von damit assoziierten Eigenschaften antizipieren, wie zum Beispiel Text, der gerade editiert wird, um die Serverantwort zu schätzen. Bei einer Ausführungsform überwacht der Client-Antwortgenerator 30 das Steuerelement durch Verwendung einer Hooking-Steuerprozedur. Wenn die Editiersteuerung als Folge der Benutzereingabe oder Anwendungsanforderung ihren Zustand ändert, erkennt die installierte Hook-Prozedur die Änderung und die aktua lisierten Informationen werden zu dem Client übermittelt.
  • Es versteht sich, dass die Technik des Schätzens nicht auf die Editiersteuerung oder eine bestimmte Menge von Steuerelementen beschränkt ist, sondern dass die Technik für jede beliebige Art von Eingabesteuerung gelten kann, solange Cursor-(Karree-)Informationen dem Client-Antwortgenerator 30 verfügbar sind. Wahlweise kann die Technik erfordern, dass auch Fontinformationen dem Client-Antwortgenerator 30 zur Verfügung gestellt werden.
  • Der Server-Knoten 14 kann die vom Server gelieferten Informationen an verschiedenen Punkten während der Ausführung des Anwendungsprogramms abhängig von der Art des Anwendungsprogramms zu dem Client-Knoten 10 senden. Bei bestimmten Ausführungsformen sendet der Server-Knoten 14 periodisch Informationen zu dem Client 10. Bei diesen Ausführungsformen kann der Server 14 einen unter Verwendung des ICA-Protokolls eingerichteten virtuellen Kanal zum Senden der Informationen verwenden. Bei anderen Ausführungsformen fordert der Client 10 Informationen von dem Server 14 an, wenn dazu Gelegenheit ist, wie zum Beispiel in Perioden niedriger Netzwerkbandbreitenauslastung oder niedriger Prozessorlast. Ein Punkt, an dem der Client 10 Informationen anfordern kann, ist, wenn der Server-Knoten 14 mit der Ausführung des Anwendungsprogramms 40 beginnt. Die Latenz der Verbindung zwischen dem Server 14 und dem Client-Knoten 10 hat hierbei eine minimale Auswirkung auf das Client-Benutzer-Verhalten, weil der Client-Benutzer noch nicht damit begonnen hat, Eingaben zu dem Anwendungsprogramm 40 zu senden. Während der Ausführung des Anwendungsprogramms 40 können weitere Punkte auftreten, wie zum Beispiel, wenn der Server-Knoten 14 eine Server-Antwort zu dem Client-Knoten 14 sendet. Weitere Punkte können vorliegen, wenn bestimmte Triggerereignisse während der Ausführung des Anwendungsprogramms 40 auftre ten, wie zum Beispiel, wenn der Client-Benutzer bei der Eingabe von Daten in einen Datenbank-Datensatz von einem Eingabefeld zu einem anderen übergeht. Jedes Mal, wenn der Client-Benutzer zu einem neuen Eingabefeld voranschreitet, kann hierbei der Server-Knoten 14 die für dieses Eingabefeld entsprechenden Informationen 36 zu den Client-Knoten senden.
  • 3 zeigt einen beispielhaften Prozess der Erfindung, durch den der Client-Knoten 10 und der Server-Knoten 14 zusammen arbeiten, um einem Client-Benutzer eine unmittelbare visuelle Antwort für jedes durch den Client-Benutzer an der Tastatur 24 eingetippte Zeichen zu geben. Die Antworten erscheinen zeichenweise. Zum Beispiel sollte der Benutzer visuell keinerlei Verzögerung zwischen dem Moment des Vornehmens einer Eingabe bis zu dem Moment des Beobachtens einer Antwort wahrnehmen.
  • Kurz gefasst, startet der Client-Knoten 10 ein Anwendungsprogramm (Schritt 40) und der Server-Knoten 14 beginnt (Schritt 44) mit der Ausführung dieser Anwendung. Bildlich zur Veranschaulichung ist das Anwendungsprogramm MICROSOFT NOTEPAD, das eine Mehrzeilen-Editierbox verwendet, in der vom Benutzer eingetippte Zeichen erscheinen. Nach dem Starten der Ausführung der Anwendung sendet der Server-Knoten 14 (Schritt 48) anwendungsspezifische Informationen zu dem Client-Knoten 10. Diese Informationen umfassen mindestens Fontinformationen und Informationen über die aktuelle Eingabeposition.
  • An der Tastatur tippt der Client-Benutzer den Großbuchstaben „T" ein. Der Client-Knoten 10 empfängt (Schritt 52) diese Tastatureingabe und erzeugt dann wie oben beschrieben eine visuelle Antwort, die versucht, die Server-Antwort zu antizipieren, und zeigt diese an (Schritt 56). Die vom Client erzeugte Antwort ist mehr als ein einfaches Echo des Großbuchstaben „T", weil die vom Client erzeugte Antwort auch die visuellen Attribu te des Zeichens antizipieren kann, wie zum Beispiel Fonttyp, Größe, Farbe und aktuelle Eingabeposition auf dem Anzeigeschirm. Alle diese visuellen Attribute sind aus den durch den Server in Schritt 48 gegebenen Informationen erhaltbar. Der Client-Knoten 10 kann für etwaige visuelle Attribute, die nicht mit solchen anwendungsspezifischen Informationen durch den Server-Knoten 14 bereitgestellt werden, Vorgabeinformationen benutzen.
  • Der Client-Knoten 10 sendet (Schritt 60) das eingegebene Zeichen „T" zu dem Server-Knoten 14. Obwohl es hier als nach der Erzeugung und Anzeige der von dem Client erzeugten Antwort auftretend gezeigt ist, kann die Übertragung des Zeichens zu dem Server-Knoten 14 vor dieser Erzeugung und Anzeige stattfinden. Der Client-Knoten empfängt (Schritt 64) ein zweites vom Client-Benutzer eingetipptes Zeichen, hier das Zeichen „e". Auf ähnliche Weise wie bei der vom Client erzeugten Antwort für den Buchstaben „T" erzeugt der Client-Knoten 10 eine Antwort für das Zeichen „e" und zeigt diese (Schritt 68) auf dem Client-Anzeigeschirm an. In Schritt 72 sendet der Client-Knoten 10 die Benutzereingabe des Zeichens „e" zu dem Server-Knoten 14.
  • Nach dem Senden des eingegebenen Zeichens zu dem Server-Knoten 14 überwacht der Client-Knoten 10 auf eine Server-Antwort. Der Server-Knoten 14 produziert (Schritt 76) die Antwort 37 auf das eingegebene Zeichen „T" und sendet die Antwort 37 über das Netzwerk 18 zu dem Client-Knoten 10. Im Allgemeinen ist die Latenz der Verbindung zwischen Client- und Server-Knoten 10, 14 größer als die Zeit, die der Client-Knoten 10 benötigt, um die vom Client erzeugte Antwort zu produzieren und anzuzeigen. Somit kann die vom Client erzeugte Antwort auf dem Bildschirm erscheinen, bevor der Server-Knoten 14 die Server-Antwort 37 erzeugt oder die Benutzereingabe empfängt. Typischerweise ist die Latenz der Kommunikationsstrecke zwischen Server- und Client- Knoten dergestalt, dass Antworten 37 von dem Server-Knoten 14 den Antworten, die durch den Client-Knoten 10 angezeigt werden, um mehrere Zeichen nacheilen, wie durch dieses Beispiel veranschaulicht wird.
  • Der Client-Knoten 10 empfängt die Server-Antwort 37 für den Buchstaben „T" und aktualisiert (Schritt 80) die Anzeige durch Überschreiben der vom Client erzeugten Antwort mit der Server-Antwort. Da die Server-Antworten 37 die Client-Antwort überschreiben, muss die Server-Antwort 37 nicht genau mit der vom Client erzeugten Antwort übereinstimmen. Geringfügige Unterschiede beim Aussehen zwischen der vom Client erzeugten Antwort und der Server-Antwort sind gewöhnlich vom Client-Benutzer nicht wahrnehmbar. Bei einer anderen Ausführungsform kann der Client-Knoten 10 die vom Client erzeugte Antwort mit der Server-Antwort vergleichen und die vom Client erzeugte Antwort überschreiben, wenn die Server-Antwort verschieden ist.
  • Der Server-Knoten 14 (Schritt 84) eine Antwort 37 auf das eingegebene Zeichen „e" und gibt die Antwort 37 zu dem Client-Knoten 10 zurück, der den Anzeigeschirm mit dieser Server-Antwort aktualisiert (Schritt 88). Bei bestimmten Ausführungsformen aktualisiert der Client-Knoten 10 den Anzeigeschirm, ob die vom Server gelieferte Antwort 37 von der vom Client erzeugten Antwort abweicht oder nicht. Bei anderen Ausführungsformen aktualisiert der Client-Knoten 10 die Anzeige mit der vom Server gelieferten Antwort 37 nur dann, wenn die vom Client erzeugte Antwort falsch war. Wie bereits erwähnt, kann der Server-Knoten 14 zusammen mit jeder Übertragung einer Server-Antwort 37 aus dem Server-Knoten 14 zu dem Client-Knoten 10 neue Font- und Informationen über die aktuelle Eingabeposition zur Verwendung durch den Client-Knoten 10 zur Aktualisierung nachfolgend erzeugter vom Client erzeugter Antworten bereitstellen.
  • 4 gibt ein weiteres beispielhaftes Flussdiagramm des Prozesses, mit dem der Client-Knoten 10 Antworten auf eine durch das Zeigegerät 28 bereitgestellte Benutzereingabe erzeugt. Wie oben für 3 beschrieben, startet der Client-Knoten 10 (Schritt 100) ein Anwendungsprogramm, das beginnt, auf dem Server-Knoten 14 ausgeführt zu werden (Schritt 104). In diesem Beispiel führt der Server-Knoten 14 das Anwendungsprogramm MICROSOFT WORD aus.
  • Wie in 3 beschrieben, liefert der Server-Knoten (Schritt 208) anwendungsspezifische Informationen. Hierbei beschreiben die anwendungsspezifischen Informationen Bildschirmobjekte, wie zum Beispiel die Befehle und Toolbar-Symbole, die oben in dem Fenster von MICROSOFT WORD angezeigt werden, und die mit jedem solchen Bildschirmobjekt assoziierte Menüstruktur. Die Bildschirmobjektinformationen umfassen die Bildschirmposition und die von jedem Befehl und Symbol abgedeckte Bildschirmfläche, so dass der Client-Knoten 10 unter Verwendung der aktuellen Cursorposition den Befehl oder das Symbol erzeugen kann, der bzw. das ausgewählt wird, wenn der Client-Benutzer das Zeigegerät 28 klickt. Eine typische Anzeige von Befehlen oben in dem Fenster von MICROSOFT WORD wäre zum Beispiel: Datei Bearbeiten Ansicht Einfügen Format Extras Tabelle Fenster Hilfe.
  • Zum Beispiel erfolgt die Aktivierung des Befehls Bearbeiten durch klicken des Zeigegeräts 28, während die Cursorposition in die Grenzen des durch den Befehl Bearbeiten abgedeckten rechteckigen Bildschirmbereichs fällt. In Schritt 112 empfängt der Client-Knoten 10 diese Zeigegeräteingabe. Als Vorwegnahme dieser Server-Antwort erzeugt der Client-Knoten 10 eine Antwort, und zwar hier ein mit dem Befehl Bearbeiten assoziiertes Dropdown-Menu aus den vom Server gelieferten anwendungsspezifischen Informationen und der aktuellen Cursorposition und zeigt diese an (Schritt 116). Der Client-Knoten 10 sendet (Schritt 120) die Benutzerein gabe zu dem Server-Knoten 14. Bei einer Ausführungsform verfolgt der Client-Knoten 10 (Schritt 124) die Cursorbewegung in dem Dropdown-Menü und hebt das Menüelement hervor, in das die aktuelle Cursorposition fällt. In Schritt 128 produziert der Server-Knoten 14 die tatsächliche Antwort auf die Zeigegeräteingabe und gibt die Antwort an den Client-Knoten 10 zurück. Der Client-Knoten 10 aktualisiert (Schritt 132) die Anzeige mit der Server-Antwort.
  • Die vorliegende Erfindung kann als eines oder mehrere computerlesbare Softwareprogramme implementiert werden, die auf oder in einem oder mehreren Herstellungsartikeln realisiert werden. Der Herstellungsartikel kann zum Beispiel einzeln oder als Kombination aus der folgenden Gruppe ausgewählt werden: Diskette, Festplatte, Festplattenlaufwerk, CD-ROM, DVD-ROM, Flash-Speicherkarte, EE-POM, EPROM, PROM, RAM, ROM oder Magnetband. Im Allgemeinen kann eine beliebige standardmäßige oder proprietäre Programmier- oder Interpretiersprache verwendet werden, um die computerlesbaren Softwareprogramme zu produzieren. Beispiele für solche Sprachen wären C, C++, Pascal, Java, Basic, Visual Basic und Visual C++. Die Softwareprogramme können auf oder in einem oder mehreren Herstellungsartikeln als Quellcode, Objektcode, Interpretationscode oder ausführbarer Code gespeichert werden.
  • Obwohl die Erfindung mit Bezug auf spezifische bevorzugte Ausführungsformen gezeigt und beschrieben wurde, ist für Fachleute erkennbar, dass verschiedene Änderungen von Form und Detail daran vorgenommen werden können, ohne von den durch die folgenden Ansprüche definierten Schutzumfang der Erfindung abzuweichen.

Claims (18)

  1. Verfahren zur Verringerung der wahrgenommenen Ansprechzeit auf eine vom Benutzer gegebene Eingabe zur Verwendung in einem Client-Server-System mit einem Client-Knoten (10), der vom Benutzer gegebene Eingaben (34) zu einem Server-Knoten (14) sendet, der ein Anwendungsprogramm (40) ausführt, wobei die vom Benutzer gegebene Eingabe (34) eine Antwort (37) von dem Server-Knoten (14) hervorruft, die zur Anzeige zu dem Client-Knoten (10) zurückgesendet wird, wobei das Verfahren die folgenden Schritte umfasst (a) in dem Client-Knoten (10) wird eine Benutzereingabe (34) von einer Eingabeeinrichtung (24, 28) zur nachfolgenden Übertragung (60) zu einem auf einem Server-Knoten (14) ausgeführten Anwendungsprogramm (40) empfangen (52); dadurch gekennzeichnet, dass das Verfahren die folgenden Schritte umfasst: (b) in dem Client-Knoten wird als Reaktion auf die Benutzereingabe (34) eine Vorhersage (32) einer Serverantwort des Server-Knotens (14) auf die Benutzereingabe (34) erzeugt (56); c) in dem Client-Knoten (10) wird die durch den Client-Knoten erzeugte Vorhersage (32) angezeigt; und (d) die auf dem Anzeigeschirm (22) angezeigte erzeugte Vorhersage (32) der Server-Knoten-Antwort wird durch eine von dem Server-Knoten (14) empfangene Serverantwort (37) ersetzt.
  2. Verfahren nach Anspruch 1, ferner mit den folgenden Schritten: (e) Senden (6) der Benutzereingabe (34) zu dem auf dem Server-Knoten (14) ausgeführten Anwendungsprogramm (40) über eine Kommunikationsverbindung (18); und (f) Empfangen einer Serverantwort (37) auf die Benutzereingabe (34) von dem Server-Knoten (14).
  3. Verfahren nach Anspruch 1 oder Anspruch 2, wobei Schritt (d) umfasst, die erzeugte Vorhersage (32) der Serverantwort auf dem Anzeigeschirm (22) mit der Serverantwort (37) zu überschreiben.
  4. Verfahren nach einem der vorhergehenden Ansprüche, wobei die Benutzereingabe (34) eine erste Benutzereingabe ist, und wobei das Verfahren ferner die folgenden Schritte umfasst: (g) Empfangen (64) einer zu dem Server-Knoten zu sendenden zusätzlichen Benutzereingabe; (h) Erzeugen (68) einer zweiten Vorhersage der Serverantwort auf die zusätzliche Benutzereingabe; und (i) Anzeigen (68) der zweiten Vorhersage der Serverantwort an dem Client-Knoten (10) vor dem Empfangen der Serverantwort (37) auf die erste Benutzereingabe.
  5. Verfahren nach einem der vorhergehenden Ansprüche, ferner mit dem Schritt des Empfangens (48) von aktuellen Eingabepositionsinformationen (36) von dem Server-Knoten (14), und wobei Schritt (b) umfasst, die Vorhersage (32) der Serverantwort als Reaktion auf die aktuellen Eingabepositionsinformationen (36) zu bestimmen.
  6. Verfahren nach einem der vorhergehenden Ansprüche, ferner mit dem Schritt des Bereitstellens von Fontinformationen zum Definieren einer visuellen Eigenschaft der Vorhersage der Serverantwort, und wobei Schritt (b) ferner umfasst, die Vorhersage (32) der Serverantwort als Reaktion auf die Fontinformationen zu bestimmen.
  7. Verfahren nach Anspruch 6, ferner mit dem Schritt des Erhaltens der Fontinformationen von dem Server-Knoten (14).
  8. Verfahren nach Anspruch 6, wobei der Schritt des Bereitstellens der Fontinformationen den Schritt des Erhaltens von Vorgabe-Fontinformationen umfasst.
  9. Verfahren nach einem der vorhergehenden Ansprüche, ferner mit dem Schritt des Empfangens von Informationen (36) über ein Schirmobjekt, das gerade durch den Client-Knoten (10) manipuliert wird; und des Ausführens einer heuristischen Prozedur als Reaktion auf die Benutzereingabe (34) und die Schirmobjektinformationen (36), um die Vorhersage (32) der Serverantwort zu erzeugen.
  10. Client-Knoten (10) mit verringerter wahrgenommener Ansprechzeit auf eine Benutzereingabe (34) zur Verwendung in einem Client-Server-System mit einem Server-Knoten (14), der ein Anwendungsprogramm (40) gemäß der durch einen Client-Knoten zugeführten Benutzereingabe (34) ausführt, wobei die Benutzereingabe (34) eine Antwort (37) von dem Server-Knoten (14) hervorruft, die nachfolgend zur Anzeige zu dem Client-Knoten (10) gesendet wird, wobei der Client- Knoten folgendes umfasst: (a) eine Eingabeeinrichtung (24, 28), die dem Client-Knoten eine zu dem auf dem Server-Knoten (14) ausgeführten Anwendungsprogramm (40) zu übertragende Benutzereingabe (34) zuführt; Dadurch gekennzeichnet, dass der Client-Knoten ferner folgendes umfasst: (b) einen mit der Eingabeeinrichtung (24, 28) kommunizierenden Antwortgenerator (30), wobei der Antwortgenerator (30) in dem Client-Knoten (10) und als Reaktion auf die Benutzereingabe (34) eine Vorhersage (32) einer Serverantwort des Server-Knotens (14) auf die Benutzereingabe (34) erzeugt; (c) eine mit dem Antwortgenerator (30) kommunizierende Anzeigeeinrichtung (22) zum Anzeigen der durch den Client-Knoten (10) erzeugten Vorhersage (32), bevor der Client-Knoten die Antwort (36) des Server-Knotens (14) anzeigt; (d) einen Empfänger, der eine Serverantwort (37) auf die Benutzereingabe von dem Server-Knoten empfängt; und (e) ein Ersetzungsmodul, das die auf dem Anzeigeschirm angezeigte erzeugte Vorhersage (32) der Server-Knoten-Antwort durch die von dem Server-Knoten (14) empfangene Serverantwort (37) ersetzt.
  11. Computernetzwerk, umfassend: einen Server-Knoten (14), der ein Anwendungsprogramm (40) aus führt; und einen Client-Knoten (10) nach Anspruch 10, der über eine Kommunikationsverbindung (18) mit dem Server- Knoten (14) kommuniziert.
  12. Computernetzwerk nach Anspruch 11, wobei der Server-Knoten (14) dafür ausgelegt ist, im Betrieb vom Server gelieferte Informationen (36) zu erzeugen, die aktuelle Eingabepositionsinformationen umfassen.
  13. Computernetzwerk nach Anspruch 12, wobei der Antwortgenerator (30) dafür ausgelegt ist, im Betrieb die Vorhersage (32) als Reaktion auf die aktuellen Eingabepositionsinformationen zu erzeugen.
  14. Computernetzwerk nach Anspruch 11, wobei der Server-Knoten (14) dafür ausgelegt ist, im Betrieb vom Server gelieferte Informationen (36) zu erzeugen, die Fontinformationen zum Definieren einer visuellen Eigenschaft der Vorhersage der Client-Antwort umfassen.
  15. Computernetzwerk nach Anspruch 14, wobei der Antwortgenerator (30) dafür ausgelegt ist, im Betrieb die Vorhersage (32) als Reaktion auf die Fontinformationen zu erzeugen.
  16. Computernetzwerk nach Anspruch 11, wobei der Server-Knoten (14) dafür ausgelegt ist, im Betrieb vom Server gelieferte Informationen (36) zu erzeugen, die Informationen über ein Schirmobjekt umfassen, das gerade durch den Client-Knoten manipuliert wird.
  17. Computernetzwerk nach Anspruch 16, wobei der Antwortgenerator (30) dafür ausgelegt ist, im Betrieb als Reaktion auf die Benutzereingabe (34) und die Schirmobjektinformationen eine heuristische Prozedur auszuführen, um die Vorhersage (32) zu erzeugen.
  18. Computernetzwerk nach Anspruch 11, wobei die Anzeigeeinrichtung (22) dafür ausgelegt ist, im Betrieb eine zweite Vorhersage (32) an dem Client-Knoten (10) anzuzeigen, bevor die Serverantwort (37) auf die erste Benutzereingabe (34) empfangen wird.
DE60033286T 1999-07-23 2000-07-20 System und verfahren zur bereitstellung einer unmittelbaren visuellen antwort auf eine benutzereingabe in einem anwendersystem Expired - Lifetime DE60033286T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US360876 1999-07-23
US09/360,876 US6538667B1 (en) 1999-07-23 1999-07-23 System and method for providing immediate visual response to user input at a client system connected to a computer system by a high-latency connection
PCT/US2000/019749 WO2001008378A1 (en) 1999-07-23 2000-07-20 A system and method for providing immediate visual response to user input at a client system

Publications (2)

Publication Number Publication Date
DE60033286D1 DE60033286D1 (de) 2007-03-22
DE60033286T2 true DE60033286T2 (de) 2007-11-08

Family

ID=23419752

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60033286T Expired - Lifetime DE60033286T2 (de) 1999-07-23 2000-07-20 System und verfahren zur bereitstellung einer unmittelbaren visuellen antwort auf eine benutzereingabe in einem anwendersystem

Country Status (11)

Country Link
US (1) US6538667B1 (de)
EP (1) EP1197055B1 (de)
JP (1) JP2003505781A (de)
KR (1) KR100798963B1 (de)
AU (1) AU775740B2 (de)
CA (1) CA2380768C (de)
DE (1) DE60033286T2 (de)
ES (1) ES2281349T3 (de)
HK (1) HK1045617B (de)
IL (2) IL147754A0 (de)
WO (1) WO2001008378A1 (de)

Families Citing this family (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6721786B1 (en) * 2000-01-06 2004-04-13 International Business Machines Corporation Method and apparatus for balancing bandwidth usage in a browser
AU778428B2 (en) * 2000-02-25 2004-12-02 Canon Kabushiki Kaisha Local sound and graphic feedback
US7010503B1 (en) * 2000-03-10 2006-03-07 Ams Services, Inc. Traffic reduction in networked data collection
US6763501B1 (en) * 2000-06-09 2004-07-13 Webex Communications, Inc. Remote document serving
US7117239B1 (en) 2000-07-28 2006-10-03 Axeda Corporation Reporting the state of an apparatus to a remote computer
US7047281B1 (en) 2000-08-08 2006-05-16 Fineground Networks Method and system for accelerating the delivery of content in a networked environment
WO2002012997A1 (en) * 2000-08-08 2002-02-14 Fineground Networks Method and system for parameterized web documents
US7185014B1 (en) 2000-09-22 2007-02-27 Axeda Corporation Retrieving data from a server
US8108543B2 (en) 2000-09-22 2012-01-31 Axeda Corporation Retrieving data from a server
US7310687B2 (en) * 2001-03-23 2007-12-18 Cisco Technology, Inc. Methods and systems for managing class-based condensation
US7171444B2 (en) * 2001-11-14 2007-01-30 Sharp Laboratories Of America, Inc. Remote desktop protocol compression system
US20030105879A1 (en) * 2001-11-30 2003-06-05 Erlend Olson Wireless network architecture and method
US7254601B2 (en) 2001-12-20 2007-08-07 Questra Corporation Method and apparatus for managing intelligent assets in a distributed environment
US7178149B2 (en) 2002-04-17 2007-02-13 Axeda Corporation XML scripting of soap commands
US7966418B2 (en) 2003-02-21 2011-06-21 Axeda Corporation Establishing a virtual tunnel between two computer programs
DE10315111A1 (de) * 2003-04-02 2004-10-14 Klaus Rock Verfahren zur Reduzierung der Latenzzeit bei der interaktiven Datenkommunikation zwischen einem Terminal Server und einem Terminal-Server Client in einem geostationären Satellitennetzwerk
US8250034B2 (en) * 2004-04-14 2012-08-21 Verisign, Inc. Method and apparatus to provide visual editing
US20050234838A1 (en) * 2004-04-14 2005-10-20 Manousos Nicholas H Method and apparatus for providing in place editing within static documents
US20050257196A1 (en) * 2004-05-17 2005-11-17 Gideon Hollander System and method for developing new services from legacy computer applications
DE102004043868B4 (de) * 2004-09-10 2007-01-11 Kai Lauterjung Datenkommunikationssystem, sowie Datenkommunikationsverfahren
DE102004048343B4 (de) 2004-10-01 2022-09-22 Satcloud Ip Holding Llc Verfahren zur Reduzierung der Latenzzeit bei der interaktiven Datenkommunikation zwischen einem Terminal Server und einem Terminal-Server Client in einem Telekommunikationsnetzwerk, insbesondere einem GSM oder einem UMTS Netzwerk
US7450128B2 (en) * 2004-11-15 2008-11-11 Hewlett-Packard Development Company, L.P. Systems and methods of providing image copy and modify commands to a receiver with an associated display
US7577749B1 (en) 2004-12-03 2009-08-18 Ux Ltd. Emulation of persistent HTTP connections between network devices
CA2490645A1 (en) * 2004-12-16 2006-06-16 Ibm Canada Limited - Ibm Canada Limitee Data-centric distributed computing
US7817849B2 (en) * 2005-08-18 2010-10-19 Hewlett-Packard Development Company, L.P. Method and apparatus for graphical data compression
WO2007120773A2 (en) * 2006-04-14 2007-10-25 Advanced Solutions, Inc. Method, system, and computer-readable medium to uniformly render document annotations across multiple computer platforms
US8370479B2 (en) 2006-10-03 2013-02-05 Axeda Acquisition Corporation System and method for dynamically grouping devices based on present device conditions
US8065397B2 (en) 2006-12-26 2011-11-22 Axeda Acquisition Corporation Managing configurations of distributed devices
US8214367B2 (en) * 2007-02-27 2012-07-03 The Trustees Of Columbia University In The City Of New York Systems, methods, means, and media for recording, searching, and outputting display information
JP2009009330A (ja) * 2007-06-27 2009-01-15 Fujitsu Ltd 情報処理装置、情報処理システム及び情報処理装置の制御方法
CA2607537A1 (en) 2007-10-22 2009-04-22 Ibm Canada Limited - Ibm Canada Limitee Software engineering system and method for self-adaptive dynamic software components
JP5012716B2 (ja) * 2008-07-29 2012-08-29 富士通株式会社 リモートファイル操作方法
JP4827950B2 (ja) * 2008-07-31 2011-11-30 富士通株式会社 サーバ装置
JP2010091724A (ja) * 2008-10-07 2010-04-22 Canon Inc 画像処理システム
US8195692B2 (en) 2008-12-11 2012-06-05 International Business Machines Corporation System and method for managing semantic and syntactic metadata
CN102301359B (zh) * 2009-01-29 2015-07-01 惠普开发有限公司 通过计算机之间的网络提供用户接口装置处的变化的指示
WO2011018827A1 (ja) 2009-08-13 2011-02-17 株式会社日立製作所 実行環境におけるアプリケーションの適性を評価するシステム及び方法
US9063932B2 (en) * 2009-12-18 2015-06-23 Vertafore, Inc. Apparatus, method and article to manage electronic or digital documents in a networked environment
US8700682B2 (en) * 2009-12-24 2014-04-15 Vertafore, Inc. Systems, methods and articles for template based generation of markup documents to access back office systems
US8555187B2 (en) 2010-02-16 2013-10-08 Google Inc. Server-based data sharing in computer applications using a clipboard
EP2625591A4 (de) * 2010-10-05 2014-04-30 Citrix Systems Inc Berührungsunterstützung für entfernte anwendungen
US9384198B2 (en) 2010-12-10 2016-07-05 Vertafore, Inc. Agency management system and content management system integration
US9274746B2 (en) * 2011-02-18 2016-03-01 Nuance Communications, Inc. Latency hiding techniques for multi-modal user interfaces
US8731973B2 (en) 2011-04-19 2014-05-20 Vertafore, Inc. Overlaying images in automated insurance policy form generation
US9794735B2 (en) 2012-02-15 2017-10-17 Dropbox Inc. Context determination for mobile devices when accessing remote resources
US9307009B2 (en) * 2012-02-15 2016-04-05 Mobilespan Inc. Presenting execution of a remote application in a mobile device native format
KR20130101864A (ko) * 2012-03-06 2013-09-16 삼성전자주식회사 클라이언트 장치, 클라이언트의 제어 방법, 서버 및 서버의 영상 제공 방법
US9927959B2 (en) * 2012-10-05 2018-03-27 Tactual Labs Co. Hybrid systems and methods for low-latency user input processing and feedback
KR101430929B1 (ko) * 2012-12-12 2014-08-18 에스케이플래닛 주식회사 사용자의 입력에 즉각적인 결과를 제공할 수 있는 서비스 제공 방법, 이를 위한 시스템 및 장치
KR101432990B1 (ko) * 2012-12-12 2014-08-22 에스케이플래닛 주식회사 사용자의 입력에 즉각적인 결과를 제공할 수 있는 서비스 제공 방법, 이를 위한 시스템 및 장치
CN104823179B (zh) 2012-12-12 2018-08-07 Sk 普兰尼特有限公司 用于提供用户输入的即时结果的方法及其系统和设备
JP6205749B2 (ja) * 2013-02-26 2017-10-04 日本電気株式会社 サーバ装置、仮想デスクトップシステム、入力情報処理方法、およびそのプログラム
US9122366B2 (en) * 2013-03-15 2015-09-01 Navico Holding As Residue indicators
US20150089203A1 (en) * 2013-09-23 2015-03-26 Mitch Kline Latency reduction in distributed computing environments
US9507814B2 (en) 2013-12-10 2016-11-29 Vertafore, Inc. Bit level comparator systems and methods
US9367435B2 (en) 2013-12-12 2016-06-14 Vertafore, Inc. Integration testing method and system for web services
US9747556B2 (en) 2014-08-20 2017-08-29 Vertafore, Inc. Automated customized web portal template generation systems and methods
US10437938B2 (en) 2015-02-25 2019-10-08 Onshape Inc. Multi-user cloud parametric feature-based 3D CAD system
EP3292677B1 (de) 2015-05-05 2023-11-01 Penguin Computing, Inc. Anwendungsfernzugriff mit ultraniedriger latenz
US9600400B1 (en) 2015-10-29 2017-03-21 Vertafore, Inc. Performance testing of web application components using image differentiation
US11263028B2 (en) 2019-03-27 2022-03-01 Citrix Systems, Inc. Providing user interface (UI) elements in virtual machine sessions at reduced latency
US11281478B2 (en) 2019-03-27 2022-03-22 Citrix Systems, Inc. Providing user interface (UI) elements having an ordered hierarchy of graphical control elements in virtual machine sessions at reduced latency and related methods
US11263029B2 (en) 2019-03-27 2022-03-01 Citrix Systems, Inc. Providing user interface (UI) elements having scrollable content in virtual machine sessions at reduced latency and related methods

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
USRE32632E (en) 1982-07-19 1988-03-29 Apple Computer, Inc. Display system
JPS62282328A (ja) 1986-02-21 1987-12-08 Hitachi Ltd 多重画面制御方式
US4937036A (en) 1986-04-28 1990-06-26 Xerox Corporation Concurrent display of data from two different display processors and user interface therefore
US5072412A (en) 1987-03-25 1991-12-10 Xerox Corporation User interface with multiple workspaces for sharing display system objects
US4949281A (en) 1987-04-23 1990-08-14 H. Berthold Ag Method and apparatus for generating and producing two-dimensional graphic object by polynominal parametric curves
US4903218A (en) 1987-08-13 1990-02-20 Digital Equipment Corporation Console emulation for a graphics workstation
US5103303A (en) 1988-04-19 1992-04-07 Konica Corporation Multicolor imaging forming apparatus
US4958303A (en) 1988-05-12 1990-09-18 Digital Equipment Corporation Apparatus for exchanging pixel data among pixel processors
KR930003126B1 (ko) 1989-04-20 1993-04-19 가부시기가이샤 도시바 곡선정합에 있어서 형상을 표시하는 직선쇼트벡터의 접속상태를 판정하는 방법 및 시스템
US5119319A (en) 1989-12-14 1992-06-02 Options Unlimited Research Corp. Full-duplex video communication system
US5309555A (en) 1990-05-15 1994-05-03 International Business Machines Corporation Realtime communication of hand drawn images in a multiprogramming window environment
EP0493084B1 (de) 1990-12-26 1997-06-04 Canon Kabushiki Kaisha Multimedia-Kommunikationsapparat
CA2069355C (en) 1991-06-07 1998-10-06 Robert C. Pike Global user interface
US5351129A (en) 1992-03-24 1994-09-27 Rgb Technology D/B/A Rgb Spectrum Video multiplexor-encoder and decoder-converter
JP3390033B2 (ja) 1992-10-14 2003-03-24 株式会社日立製作所 パケット通信方式
US5469540A (en) 1993-01-27 1995-11-21 Apple Computer, Inc. Method and apparatus for generating and displaying multiple simultaneously-active windows
US5583763A (en) * 1993-09-09 1996-12-10 Mni Interactive Method and apparatus for recommending selections based on preferences in a multi-user system
US5802292A (en) * 1995-04-28 1998-09-01 Digital Equipment Corporation Method for predictive prefetching of information over a communications network
US5874960A (en) 1995-07-05 1999-02-23 Microsoft Corporation Method and system for sharing applications between computer systems
US5805815A (en) * 1995-12-18 1998-09-08 At&T Corp. Method and apparatus for providing interim data displays while awaiting of retrieval linked information
IL116804A (en) 1996-01-17 1998-12-06 R N S Remote Networking Soluti Application user interface redirector
US5757925A (en) 1996-07-23 1998-05-26 Faybishenko; Yaroslav Secure platform independent cross-platform remote execution computer system and method
US6108493A (en) * 1996-10-08 2000-08-22 Regents Of The University Of Minnesota System, method, and article of manufacture for utilizing implicit ratings in collaborative filters
US5931904A (en) 1996-10-11 1999-08-03 At&T Corp. Method for reducing the delay between the time a data page is requested and the time the data page is displayed
US6078740A (en) * 1996-11-04 2000-06-20 Digital Equipment Corporation Item selection by prediction and refinement
JP3774807B2 (ja) * 1997-08-06 2006-05-17 タキオン インコーポレイテッド 分散型システムとオブジェクトをプレフェッチする方法
US5982351A (en) * 1997-09-30 1999-11-09 Motorola, Inc. Method and apparatus for supplementing a keyboard and for helping a user operate an electronic device
JP3272281B2 (ja) * 1997-10-20 2002-04-08 インターナショナル・ビジネス・マシーンズ・コーポレーション データアイテム表示方法及び表示装置、データアイテムの表示を制御するプログラムを格納した記憶媒体
US6243761B1 (en) * 1998-03-26 2001-06-05 Digital Equipment Corporation Method for dynamically adjusting multimedia content of a web page by a server in accordance to network path characteristics between client and server
US6182125B1 (en) * 1998-10-13 2001-01-30 3Com Corporation Methods for determining sendable information content based on a determined network latency
US6178461B1 (en) * 1998-12-08 2001-01-23 Lucent Technologies Inc. Cache-based compaction technique for internet browsing using similar objects in client cache as reference objects
US6304909B1 (en) * 1998-12-18 2001-10-16 International Business Machines Corporation Client-controlled link processing in computer network

Also Published As

Publication number Publication date
CA2380768A1 (en) 2001-02-01
EP1197055B1 (de) 2007-02-07
AU6114200A (en) 2001-02-13
KR20020038700A (ko) 2002-05-23
WO2001008378A1 (en) 2001-02-01
HK1045617A1 (en) 2002-11-29
DE60033286D1 (de) 2007-03-22
EP1197055A1 (de) 2002-04-17
WO2001008378A9 (en) 2002-08-29
IL147754A (en) 2007-05-15
KR100798963B1 (ko) 2008-01-28
HK1045617B (en) 2007-12-14
JP2003505781A (ja) 2003-02-12
US6538667B1 (en) 2003-03-25
IL147754A0 (en) 2002-08-14
AU775740B2 (en) 2004-08-12
CA2380768C (en) 2006-12-19
ES2281349T3 (es) 2007-10-01

Similar Documents

Publication Publication Date Title
DE60033286T2 (de) System und verfahren zur bereitstellung einer unmittelbaren visuellen antwort auf eine benutzereingabe in einem anwendersystem
DE60125913T2 (de) Datenübertragungsverfahren und vorrichtung
DE60008555T2 (de) Verfahren und vorrichtung zur effizienten übertragung von daten einer interaktiven anwendung zwischen klienten und server mit hilfe einer markup-sprache
DE69523593T2 (de) Vorrichtung und verfahren zur aufteilung der anwendung in einer graphischen benutzerschnittstelle
DE69232255T2 (de) Verfahren und System zum Steuern des Ablaufs eines Anwenderprogramms
DE69801816T2 (de) Vorrichtung und verfahren zur aktualisierung und zur synchronisierung von informationen zwischen einem klient und einem server
DE69526634T2 (de) Verschiebungs- und Entladungsoperation in einer graphischen Benutzerschnittstelle
DE60112103T2 (de) Verfahren und Vorrichtung zur effizientes Verringerung von graphischen Anzeigedaten für ihre Übertragung mittels eines Übertragungsprotokolls für niedrige Bandbreiten
DE69130442T2 (de) System und Verfahren zur Kommunikation zwischen Fensterumgebungen
DE3788748T2 (de) Verfahren zur Steuerung graphischer interaktiver Operationen von einer Anwendungs-Software.
DE69838257T2 (de) Verfahren zum erweitern der hypertext markup sprache (html) zur unterstützung von unternehmungsanwendungsdatenbindung
DE3586273T2 (de) Implizite erzeugung einer superblockstruktur in einem vieldaten-edierungsgeraet.
DE69132012T2 (de) Objektorientierte architektur für fabrikverwaltung
DE60308489T2 (de) Anwendungsfensterschließung als Reaktion auf ein Ereignis in einem Parent-Fenster
DE19522185A1 (de) Ein Verfahren und System zur dynamischen Übersetzung zwischen verschiedenen grafischen Benutzeroberflächen-Systemen
DE4417588A1 (de) Verfahren und Vorrichtung zum Erfassen und Weiterleiten von Fensterereignissen zu einer Mehrzahl von bestehenden Anwendungen zur gleichzeitigen Ausführung
EP1369790A2 (de) Verfahren zur dynamischen Generierung strukturierter Dokumente
DE19936314A1 (de) Verfahren und System zur Inhaltskonvertierung von elektronischen Daten unter Verwendung von Konvertierungspräferenzen
DE10218536A1 (de) Gerätekonfiguration in einer verteilten Umgebung
DE10135445A1 (de) Integriertes Verfahren für das Schaffen einer aktualisierbaren Netzabfrage
DE19842688A1 (de) Standard-Benutzerschnittstellen-Steuerung für einen Datenanbieter
DE69328452T2 (de) System zur Entwicklung von Software aus einer Spezifikation in natürlicher Sprache mittels Objektnetzwerken
DE10212634A1 (de) Seitenbeschreibungssprache, die für ein direktes Drucken von Mehr-Datei-Formaten ausgelegt ist
DE69121113T2 (de) Verfahren zur bestimmung von benutzerschnittstellen und programmiersystem fur einen rechner mit mehreren benutzerschnittstellen
DE10028842A1 (de) Verfahren zur Erzeugung einer Bedienoberfläche für eine Standard-Applikation in einem Browser eines Computernetzwerkes

Legal Events

Date Code Title Description
8364 No opposition during term of opposition