DE60109631T2 - Verfahren und Vorrichtung zur effizienten Verringerung von graphischen Anzeigedaten für ihre Übertragung mittels eines Übertragungsprotokolls für niedrige Bandbreiten - Google Patents
Verfahren und Vorrichtung zur effizienten Verringerung von graphischen Anzeigedaten für ihre Übertragung mittels eines Übertragungsprotokolls für niedrige Bandbreiten Download PDFInfo
- Publication number
- DE60109631T2 DE60109631T2 DE60109631T DE60109631T DE60109631T2 DE 60109631 T2 DE60109631 T2 DE 60109631T2 DE 60109631 T DE60109631 T DE 60109631T DE 60109631 T DE60109631 T DE 60109631T DE 60109631 T2 DE60109631 T2 DE 60109631T2
- Authority
- DE
- Germany
- Prior art keywords
- client
- server
- agent
- data
- graphical data
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
- G06F3/1454—Digital output to display device ; Cooperation and interconnection of the display device with other functional units involving copying of the display data of a local workstation or window to a remote workstation or window so that an actual copy of the data is displayed simultaneously on two or more displays, e.g. teledisplay
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9577—Optimising the visualization of content, e.g. distillation of HTML documents
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/131—Protocols for games, networked simulations or virtual reality
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/565—Conversion or adaptation of application format or content
- H04L67/5651—Reducing the amount or size of exchanged application data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/75—Indicating network or usage conditions on the user display
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/04—Protocols for data compression, e.g. ROHC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/329—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/2876—Pairs of inter-processing entities at each side of the network, e.g. split proxies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/289—Intermediate processing functionally located close to the data consumer application, e.g. in same machine, in same home or in same sub-network
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99932—Access augmentation or optimizing
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99933—Query processing, i.e. searching
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99944—Object-oriented database structure
- Y10S707/99945—Object-oriented database structure processing
Description
- ERFINDUNGSGEBIET
- Die vorliegende Erfindung betrifft allgemein die Kommunikation zwischen einem Applikationsserver und einem dünnen Client in einem verteilten System und insbesondere die Reduzierung der Menge graphischer Displaydaten, die über einen Transportprotokollmechanismus mit niedriger Bandbreite übertragen wird.
- ALLGEMEINER STAND DER TECHNIK
- Verteilte Computersysteme verwenden die Technik des Verteilens der Applikationsausführung. Insbesondere führt ein Applikationsserver lokal ein Applikationsprogramm aus und liefert die Applikationsausgangsdaten an Clients/Netzbenutzer, die dann die Ergebnisse auf einem an ihrem lokalen Computer angekoppelten Displayschirm anzeigen. Durch Durchführen der Applikationsverarbeitungsfunktionen beim Server und Anzeigen der Applikationsausgabe am Client nützen diese verteilten Systeme die Server- und Clientressourcen am besten, d.h., der leistungsfähigere Server führt die rechen- und speicherintensiven Applikationsverarbeitungsfunktionen aus, während der Client, mit potentiell größerer Videoleistung, die Ausgabe anzeigt. Während der Ausführung des Applikationsprogramms betrachtet ein Benutzer des Client die Applikationsausgabedaten auf dem Clientdisplay und interagiert mit dem Applikationsprogramm über Tastatur- oder Mauseingaben. Die Eingaben des Clientbenutzers entsprechen Anforderungen an den Applikationsserver, bestimmte Aktionen auszuführen, die den Betrieb des Applikationsprogramms beeinflussen. Der Applikationsserver leitet diese Anforderungen zur weiteren Verarbeitung an die Applikation weiter. Der Applikationsserver fängt auch die Applikationsausgabedaten ab, die von dem Applikationsprogramm erzeugt wurden und in der Regel auf das Betriebssystem des Applikationsservers abzielen, und überträgt die Daten ganz oder teilweise an den Client, um dort angezeigt zu werden. Aus der Perspektive des Benutzers scheint das Applikationsprogramm lokal auszuführen, obwohl es tatsächlich auf einem abgesetzten Server ausgeführt und lediglich lokal angezeigt wird.
- Die Leistung von verteilten Systemen hängt zu einem großen Grad von der Fähigkeit des Netzes ab, das den Client und den Server koppelt, und deshalb von der Menge graphischer Daten (entsprechend den Applikationsausgabedaten), die über das Netz übertragen werden. Da der Applikationsserver und die Client-Workstation im allgemeinen nur durch einen Transportmechanismus verbunden sind (wie etwa serielle Leitungen, Telefonleitungen, lokale Netze und Fernnetze), die eine niedrigere Bandbreite besitzen, als ansonsten zur Verfügung stehen würde, wenn das Applikationsprogramm lokal ausgeführt würde, kann die wahrgenommene Leistung des verteilten Systems leiden. Dementsprechend streben Hersteller von verteilten Systemen/Software ständig danach, die Leistung derartiger Systeme zu verbessern.
- US-Patent 5,864,711 beschreibt ein System zum Fernsteuern durch einen Server, in einem über ein Kommunikationsnetz an den Server angekoppelten Client einer Außerschirm-Oberfläche.
- KURZE DARSTELLUNG DER ERFINDUNG
- Gemäß der Erfindung wird folgendes bereitgestellt: ein Verfahren zum Fernsteuern durch einen Server, in einem über ein Kommunikationsnetz an den Server angekoppelten Client eine Außerschirm-Oberfläche zu bilden, wobei das Verfahren im Server durchgeführt wird und die folgenden Schritte umfaßt: Anweisen des Client, eine erste Speicherregion für eine Zuteilung zu der Außerschirm-Oberfläche zu wählen, wobei die erste Speicherregion einem an den Client angekoppelten Speicher entspricht; Senden von Indicia der graphischen Daten zu dem Client; und Anweisen des Client, die den Indicia zugeordneten graphischen Daten zu einer bestimmten Speicherstelle in der ersten Speicherregion zu kopieren.
- Gemäß einem weiteren Aspekt der Erfindung wird auch folgendes bereitgestellt: ein System zum Fernsteuern durch einen Server, in einem über ein Kommunikationsnetz an den Server angekoppelten Client eine Außerschirm-Oberfläche zu bilden, wobei das System folgendes umfaßt: einen auf dem Client ausgeführten Client-Agent; eine an den Client-Agent angekoppelte erste Speicherregion; eine in der ersten Speicherregion gespeicherte Außerschirm-Oberfläche; einen auf dem Server ausgeführten und an den Client-Agent angekoppelten Server-Agent; und graphische Daten, wobei die graphischen Daten zugeordnete Indicia aufweisen und durch den Client gespeichert werden, und wobei der Server-Agent im Betrieb für folgendes ausgelegt ist: Senden von Indicia der graphischen Daten zu dem Client-Agent; und Anweisen des Client, die erste Speicherregion für eine Zuteilung zu der Außerschirm-Oberfläche zu wählen und die den Indicia zugeordneten graphischen Daten zu einer bestimmten Speicherstelle in der ersten Speicherregion zu kopieren.
- KURZE BESCHREIBUNG DER ZEICHNUNGEN
- Die vorausgegangene Erörterung läßt sich anhand der folgenden ausführlichen Beschreibung der Erfindung in Verbindung mit den beiliegenden Zeichnungen besser verstehen. Es zeigen:
-
1 schematisch einen Client-Knoten, der über ein Kommunikationsnetz an einen Server-Knoten angekoppelt ist, wobei der Client- und Server-Knoten jeweils Client- und Server-Agents aufweisen, die gemäß einer Ausführungsform der vorliegenden Erfindung arbeiten; -
2 auf hoher Ebene ein Flußdiagramm der von dem Server-Agent von1 ausgeführten Schritte gemäß einer Ausführungsform der vorliegenden Erfindung; -
3 ein ausführlicheres Flußdiagramm für das Diagramm von2 gemäß einer Ausführungsform der vorliegenden Erfindung; -
4 schematisch den Inhalt des flüchtigen und persistenten Speichers des Client und Servers, beeinflußt durch Operationen der Client- und Server-Agents von1 , gemäß einer Ausführungsform der vorliegenden Erfindung; -
5 ein Flußdiagramm der Schritte, die unternommen werden, um die von dem Client übertragene Datenmenge zu minimieren, indem Caching-Techniken verwendet werden mit einer Fuzzy-Datenbank und Fuzzy-Schlüsseln gemäß einer Ausführungsform der vorliegenden Erfindung; -
6 schematisch eine Menge von Prozeduren, die dazu verwendet werden, von einem Applikationsprogramm auf einem Server erzeugte Textinformationen zu einem Display eines verschobenen Client zu bewegen, gemäß einer Ausführungsform der vorliegenden Erfindung; -
7A ein Liniendiagramm, das mehrere einen bestimmten Weg bildende Segmente darstellt; -
7B auf Pixelebene eine Darstellung des Liniendiagramms von7A , die darstellt, wie der Weg auf einem Computerdisplay tatsächlich approximiert wird; -
8 ein Flußdiagramm der Schritte, die unternommen werden, wenn Segment- und Streifendaten gemäß einer Ausführungsform der vorliegenden Erfindung verarbeitet und codiert werden; -
8B ein Koordinatensystem, das in eine Menge von 16 Regionen organisiert ist, das dazu verwendet wird, Winkelinformationen hinsichtlich Streifen zu quantisieren, und das die Kompressionseffizienz gemäß einer Ausführungsform der vorliegenden Erfindung verbessert. -
9 eine Überlagerung des Koordinatensystems von8B auf die Darstellung von7B auf Pixelebene, um eine Ausführungsform einer Streifenverarbeitungstechnik gemäß der vorliegenden Erfindung zu veranschaulichen; -
10 eine Tabelle, die darstellt, wie man den nächsten Streifen aus dem Endpunkt des vorausgegangenen Streifens erhält, und zwar für Streifen in jedem der quantisierten Segmente von8B gemäß einer Ausführungsform der vorliegenden Erfindung; und -
11 ein Flußdiagramm der Schritte, die von dem Server-Agent als Reaktion auf eine Fehlerbedingung ausgeführt werden, was die Ausbildung einer Außerschirm-Oberfläche des Client beinhaltet. - AUSFÜHRLICHE BESCHREIBUNG DER ERFINDUNG
- Die vorliegende Erfindung reduziert die Menge graphischer Daten, die zwischen einem Applikationsserver, der ein Applikationsprogramm ausführt, und einem abonnierenden Client, der die Ausgabedaten des Applikationsprogramms örtlich anzeigt, übertragen werden, durch Codieren der Daten in relativ kleine Darstellungen, die sich innerhalb des zwischen dem Client und dem Server übertragenen Protokollstroms wiederholen. Auf diese Weise minimiert die Erfindung die Größe jedes diskreten Datenelements, das übertragen werden muß, und erhöht die Wiederholbarkeit der Daten innerhalb des Protokollstroms, so daß mit Kompressionsalgorithmen, die an wiederholten codierten Daten effizienter arbeiten, ein größerer Grad an Kompressionseffizienz realisiert werden kann. Die Erfindung verwendet eine Reihe von Techniken, um diese verbesserte Kompression zu realisieren, einschließlich der folgenden: Scannen einer Befehlsschlange für später ausgegebene Befehle, die an die Stelle von früher ausgegebenen Befehlen treten; Disc-Caching-Techniken, die die Kompression von Daten verbessern, die zuvor während einer Client-Server-Sitzung angetroffen wurden; Übertragung relativer Koordinaten unter Verwendung quantisierter Regionen, um zu vermeiden, daß beide Endpunkte und/oder der Winkel eines zugeordneten Streifens gesendet werden; und Manipulation von Außerschirm-Oberflächen, um die Leistung während der Client-Server-Sitzung zu verbessern. Die Erfindung reduziert auch die Häufigkeit von Overscroll-Problemen, die angetroffen werden, wenn eine Leistungsfehlanpassung zwischen einem schnellen Server und einem relativ langsamen Netz oder Client vorliegt.
- Unter Bezugnahme auf
1 stehen ein oder mehrere Client-Knoten110' ,110'' (im folgenden wird jeder Client-Knoten oder mehrere Client-Knoten allgemein als110 bezeichnet) über ein Kommunikationsnetz140 mit einem oder mehreren Server-Knoten150' ,150'' (im folgenden wird jeder Server-Knoten oder werden mehrere Server-Knoten allgemein als150 bezeichnet) in Kommunikation. Bei dem Netz140 kann es sich um ein lokales Netz (LAN), ein Mittelnetz (MAN – medium-area network), oder ein Fernnetz (WAN) wie etwa das Internet oder das World Wide Web handeln. Benutzer des Client-Knoten110 können über eine Vielzahl von Verbindungen mit dem Netz140 verbunden sein, einschließlich standardmäßiger Telefonleitungen, LAN- oder WAN-Strecken (z.B. T1, T3, 56kb, X.25), Breitbandverbindungen (ISDN, Frame Relay, ATM) und Funkverbindungen. Die Verbindungen können unter Verwendung einer Vielzahl von Kommunikationsprotokollen hergestellt werden (z.B. TCP/IP, IPX, SPX, NetBIOS und direkte asynchrone Verbindungen). Bei einigen besonders vorteilhaften Ausführungsformen kann das verwendete Protokoll das Independent Computing Architecture-Protokoll sein, das von der Firma Citrix Systems, Inc., in Fort Lauderdale, Florida, USA hergestellt wird, oder das Remote Display Protocol, das von der Firma Microsoft Corporation in Redmond, Washington, USA, hergestellt wird. - Bei dem Client-Knoten
110 kann sich um einen beliebigen PC (z.B. 286, 386, 486, Pentium, Pentium II, Macintosh-Computer), ein Terminal auf Windows-Basis, ein Network-Computer, eine Funkeinrichtung, ein Informationsgerät, ein RISC Power-PC, eine X-Einrichtung, eine Workstation, einen Minicomputer, einen Mainframe-Computer oder irgendeine andere Recheneinrichtung handeln, die einen Desktop auf Windows-Basis und ausreichend Speicher zum Ausführen eines kleinen Displaypräsentationsprogramms aufweist. Das Displaypräsentationsprogramm verwendet Befehle und Daten, die über das Netz140 von dem Applikationsserver150 gesendet wurden, um ein graphisches Display wiederzugeben. Bei einem Systemmodell mit verteilten Computern tritt die Ausführung von Applikationsprogrammen in erster Linie in dem Applikationsserver150 und der Benutzerschnittstelle auf, Tastenanschläge und Mausbewegungen, die von Eingaben auf der Client-Seite erzeugt werden, werden über das Netz140 zu und von dem Client-Knoten110 übertragen. - Der Client-Knoten
110 enthält in der Regel einen Prozessor112 , einen flüchtigen Speicher114 (z.B. RAM-Cache), ein Betriebssystem116 , einen Client-Agent118 , einen persistenten Speicherungsspeicher120 , eine Netzschnittstelle122 (z.B. eine Netzschnittstellenkarte), eine Tastatur124 , eine Maus126 und ein Display128 . Zu den von dem Client-Knoten110 unterstützten Windows-orientierten Plattformen können unter anderem zählen: WINDOWS 3.x, WINDOWS 95, WINDOWS 98, WINDOWS NT 3.51, WINDOWS NT 4.0, WINDOWS 2000, WINDOWS CE, MAC/OS Java und Unix. Der Client-Agent118 entspricht einem Softwareprogramm, das Befehle und Daten von dem Server-Knoten150 und von einem nicht gezeigten Benutzer des Client-Knoten110 empfängt. Der Client-Agent118 verwendet die empfangenen Informationen, wenn er mit anderen Komponenten des Client-Knoten110 interagiert (z.B. wenn das Betriebssystem116 angewiesen wird, Daten auf dem Display128 auszugeben). Der Client-Agent118 überträgt auch Anforderungen und Daten an den Server-Knoten150 als Reaktion auf vom Server erteilte Befehle oder Benutzeraktionen am Client-Knoten110 . - Analog enthält der Server-Knoten
150 einen Prozessor152 , einen flüchtigen Speicher154 , ein Betriebssystem156 , ein Applikationsprogramm158 , einen Server-Agent160 , einen persistenten Speicherungsspeicher162 und eine Netzschnittstelle164 . Der Server-Agent160 entspricht einem Softwareprogramm, das mit dem Client-Agent118 und anderen Komponenten des Server-Knotens150 gekoppelt ist, um das entfernte Display und die Betätigbarkeit des Applikationsprogramms158 zu unterstützen. Auf jedem Applikationsserver150 befinden sich ein oder mehrere Applikationsprogramme158 , auf die durch die Client-Knoten110 zugegriffen werden kann. Zu Beispielen für solche Applikationen zählen Textverarbeitungsprogramme wie etwa MICROSOFT WORD und Tabellenkalkulationsprogramme wie etwa MICROSOFT EXCEL, beide von Microsoft Corporation in Redmond, Washington, USA hergestellt, Finanzberichtserstellungsprogramme, Kundenregistrierprogramme, Programme, die technische Support-Informationen liefern, Kundendatenbankapplikationen oder Applikationssetmanager. Während der Ausführung des Applikationsprogramms158 kommuniziert ein Server150 mit dem Client-Knoten110 über einen Transportmechanismus (Teil des Server-Agent160 ). Bei einer Ausführungsform liefert der Transportmechanismus mehrere virtuelle Kanäle, und einer der virtuellen Kanäle liefert ein Protokoll für die Übertragung von graphischen Schirmdaten von dem Server-Knoten150 zum Client-Knoten110 . Der Server150 führt einen Protokolltreiber aus (Teil des Server-Agent160 ), der Graphikdisplayschnittstellenbefehle (von dem Applikationsprogramm158 erzeugt und auf das Betriebssystem156 des Servers abzielend) abfängt und sie in ein Protokollpaket übersetzt, das sich zur Übertragung über den Transportmechanismus eignet. - Bei einer Ausführungsform und unter Bezugnahme auf
2 fängt der Server-Agent160 einen von dem Applikationsprogramm158 erteilten und auf das Betriebssystem156 abzielenden Graphikdisplayschnittstellenbefehl ab (Schritt202 ), codiert den Befehl und dem Applikationsprogramm158 zugeordnete Graphikdaten (Schritt204 ), komprimiert die codierten Graphikdaten (Schritt206 ) erzeugt ein Transportprotokollpaket, das den abgefangenen Befehl und komprimierte codierte Daten enthält (Schritt208 ) und überträgt das Transportprotokollpaket an den Client-Zielknoten110 (Schritt210 ). Graphische Daten beziehen sich auf eine beliebige Art von Daten, die auf dem Display128 angezeigt werden können, wie etwa mit Bitmaps, Glyphen, Koordinaten, Liste von Linien, Streifen usw. Im folgenden können Beschreibungen von Techniken, die auf bestimmte Arten graphischer Daten oder graphischer Objekte angewendet werden, so ausgelegt werden, daß sie für alle Arten graphischer Daten gelten. - Insbesondere fängt ein Protokolltreiber des Server-Agent
160 die Graphikdisplayschnittstellenbefehle ab (Schritt202 ). Bei einer Ausführungsform fängt der Protokolltreiber von dem Applikationsprogramm158 gemachte High-Level-Applikationsprogrammierungsschnittstellenanrufe ab. Bei einer Ausführungsform fängt der Protokolltreiber von WINDOWS-basierten Betriebssystemen gelieferte GDI-Befehle ab. Bei einer weiteren Ausführungsform fängt der Protokolltreiber von MAC/OS-basierten Betriebssystemen gelieferte QUICKDRAW-Befehle ab. Bei noch weiteren Ausführungsformen fängt der Protokolltreiber Befehle auf niedrigerer Ebene ab, wie etwa Schnittstellenanrufe an den Gerätetreiber, der dem Graphikdisplay des Server-Knotens150 zugeordnet ist. Bei noch weiteren Ausführungsformen kann der Graphikdisplayschnittstellenbefehl dupliziert werden anstatt abgefangen zu werden. Bei diesen Ausführungsformen ist das Display der Applikationsprogrammausgabedaten auf dem Server150 und dem Client110 im wesentlichen ähnlich, wenn nicht identisch. Der Protokolltreiber erzeugt ein Transportprotokollpaket auf der Basis des abgefangenen Graphikdisplaybefehls (Schritt208 ). Der Protokolltreiber kann einen Protokollbefehlsatz verwenden, der einen analogen Befehl für jeden möglichen abgefangenen Displayschnittstellenbefehl enthält. Alternativ kann der Protokolltreiber einen Befehlssatz verwenden, der ein Teilsatz der abgefangenen Displayschnittstellenbefehle ist. Bei anderen Ausführungsformen kann der Protokollbefehlssatz eine Obermenge der möglichen abgefangenen Displayschnittstellenbefehle sein. - Für jeden abgefangenen GDI-Befehl und betroffene Graphikdaten, die zu dem Client-Agent
118 übertragen werden müssen, um die Ausgabe des Applikationsprogramms158 auf dem Client-Display128 anzuzeigen, stellt der Server-Agent160 den verwandten Protokollbefehl zusammen mit einem eindeutigen Schlüssel412 (4 ), der den betroffenen Graphikdaten zugeordnet ist, in eine Schlange. Der eindeutige Schlüssel412 beschreibt und identifiziert eindeutig die Graphikdaten. Bei einer Ausführungsform wird der eindeutige Schlüssel erzeugt durch Ausführen einer zyklischen 64 Bit-Blockprüfung (CRC) an den Graphikdaten. Bei einer weiteren Ausführungsform wird die 64-Bit-CRC als zwei 32-Bit-CRCs erzeugt und sequentiell und in entgegengesetzten Richtungen an den Graphikdaten vorgenommen. Weitere Verfahren zum Erzeugen eines Graphikdaten zugeordneten eindeutigen Schlüssels, wie einem Fachmann bekannt, können ebenfalls verwendet werden. Der Protokollbefehl und der eindeutige Schlüssel412 werden am Server150 zusammen mit anderen Mengen aus Befehlen oder eindeutigen Schlüsseln in eine Schlange gestellt. Die aufgereihten Befehle werden dann gescannt, um festzustellen, ob die später erteilten Befehle (d.h. jene näher am hinteren Ende der Schlange) an die Stelle von früher erteilten Befehlen treten (d.h. jenen näher an der Vorderseite der Schlange). Wenn die früher erteilten Befehle ersetzt werden, dann entfernt sie der Server-Agent160 aus der Schlange und vermeidet dadurch, daß unnötige Daten zu dem Client-Agent118 übertragen werden müssen. - Beispielsweise muß eine Reihe von Befehlen zum Anzeigen der nächsten Datenseite, die in schneller Reihenfolge erteilt werden, nicht am Client
110 individuell angezeigt werden. Alles was angezeigt werden muß, ist die zuletzt ausgegebene Displayseite, da diese letzte Seite von Daten alle vorausgegangenen Seiten von Daten überschreibt. Indem die unnötigen Befehle und eindeutigen Schlüssel entsprechend den früheren Seiten aus der Schlange des Servers entfernt werden, reduziert der Server-Agent160 im wesentlichen die Datenmenge, die verarbeitet und übertragen werden muß. - Bei einer veranschaulichenden Ausführungsform werden aus der Schlange des Servers nur unnötige Befehle und verwandte Daten hinsichtlich undurchsichtiger Operationen entfernt. Wenn beispielsweise ein zuvor in die Schlange gestellter Befehl, der die Erzeugung einer rechteckigen Region mit Koordinaten 10,10,50,50 beinhaltet, von einem zu einem jüngeren Zeitpunkt in die Schlange gestellten Befehl gefolgt wird, der die Erzeugung einer größeren/abdeckenden rechteckigen Region mit Koordinaten 0,0,100,100 beinhaltet, dann wird der zuvor in die Schlange gestellte Befehl und die verwandten Daten als unnötig erachtet und aus der Schlange entfernt.
- Die nachfolgende Tabelle 1 führt eine beispielhafte Menge von in einer Ausführungsform der Erfindung bereitgestellten Protokollbefehlen auf.
- Bei einer Ausführungsform werden die Protokollbefehle und assoziierte Graphikdaten so konfiguriert, daß die Wiederholung von Informationen in dem von dem Protokolltreiber erzeugten Protokollpaketstrom maximiert wird. Bei einem Aspekt der Erfindung werden die Graphikdaten zuerst codiert (Schritt
204 ), bevor die Graphikdaten und/oder Protokollbefehle einen Kompressionsalgorithmus unterzogen werden (Schritt206 ), die die wiederholende Art des Protokollstroms nutzt (z.B. kann ein Lempel-Ziv-Kompressionsprotokoll verwendet werden). Bei einer Ausführungsform und bei dem ersten Auftreten der Graphikdaten in der Client-Server-Sitzung wird eine Indicia der Graphikdaten zusammen mit den entsprechenden codierten Daten in dem Protokollstrom übertragen, um die über das Netz140 übertragene Datenmenge für zukünftige Fälle, daß die Graphikdaten während der gleichen Client-Server-Sitzung auftreten, zu reduzieren. Die komprimierten Daten werden danach in das Transportprotokollpaket gebündelt und zur Dekompression und Interpretation an den Client-Knoten110 übertragen (Schritt208 ). Bei einer veranschaulichenden Ausführungsform führt das Applikationsprogramm158 einen GDI-Befehl aus, der das Server-Betriebssystem156 anweist, eine Bitmap zu zeichnen. Der Server-Agent160 fängt diesen GDI-Befehl ab (Schritt202 ) und erteilt dem Client-Agent118 einen BITBLT-Befehl, der den Client-Agent118 anweist, die Ausgangsdaten des Applikationsprogramms auf dem Client-Display128 anzuzeigen. Vor der Erteilung des BITBLT-Befehls codiert der Server-Agent160 die ausgegebenen Daten (Schritt204 ) und nimmt die codierten Daten zusammen mit dem BITBLT-Befehl in den dem Client-Agent118 übertragenen komprimierten Protokollpaketstrom auf. Bei einer Ausführungsform werden die die Bitmap410 beschreibenden Daten (4 ) codiert und komprimiert (Schritte204 und206 ), um einige der in der Bitmap410 vorliegenden Redundanzen auszunutzen. Beispielsweise kann die Bitmap410 derart sein, daß aufeinanderfolgende Rasterlinien oder benachbarte Pixel redundant sind. - Zusätzlich zu der Codierung von Bitmaps oder anderen diskreten Graphikdatenelementen auf der Basis ihrer internen Datenredundanzen enthält die Erfindung auch Caching-Techniken, die die Codierung und Kompression von Graphikdaten, die zuvor während einer bestimmten Client-Server-Sitzung angetroffen wurden, weiter verbessert. Wenn beispielsweise eine bestimmte Bitmap zuerst während einer Client-Server-Sitzung angetroffen wird, wird sie wie oben beschrieben codiert. Für nachfolgende Übertragungen der Bitmap während der gleichen Client-Server-Sitzung können Indicia der Bitmap anstelle der relativ größeren codierten Bitmap übertragen werden. Bei einer Ausführungsform entsprechen die Indicia einer Speicherstelle innerhalb des flüchtigen Speichers des Client, der die zuvor übertragene Bitmap enthält.
- Insbesondere und unter Bezugnahme auf
3 und4 erzeugt der Server-Agent den eindeutigen Schlüssel412 (Schritt330 ) wie oben beschrieben und assoziiert den eindeutigen Schlüssel412 mit den Graphikdaten (z.B. Bitmap410 ). Diese Assoziation definiert im wesentlichen die Bitmap410 und ihre verwandten Daten als ein Graphikobjekt, das danach zusammen mit seinem eindeutigen Schlüssel412 und codierten Daten414 in einer Datenstruktur411 (z.B. einer Tabelle) registriert wird (Schritt340 ), die in dem flüchtigen Speicher154 des Servers gespeichert ist (z.B. dem Server-Cache-Teilsystem). Bei anderen Ausführungsformen können die die Bitmap betreffenden Daten in die persistente Speicherung162 des Servers geschrieben werden. - Unter der Annahme, daß der Protokollbefehl (z.B. BITBLT) und assoziierte Graphikdaten nicht durch später erteilte Befehle ersetzt werden (wie zuvor beschrieben), entfernt der Server-Agent
160 (Schritt360 ) den BITBLT-Befehl und den eindeutigen Schlüssel412 aus der Warteschlange und durchsucht die im flüchtigen Speicher154 des Servers gespeicherte Tabelle411 , um zu bestimmen, ob der eindeutige Schlüssel412 zuvor darin gespeichert wurde. Falls sich der eindeutige Schlüssel412 innerhalb der Tabelle411 befindet, dann bestimmt der Server-Agent160 , daß die codierten Daten414 zuvor von dem Server150 verarbeitet wurden. Der Server-Agent160 durchsucht die Tabelle411 dann nach einem Index oder einem Handle416 , der bzw. das mit der codierten Bitmap414 assoziiert ist. Falls der Index416 gefunden wird, dann bestimmt der Server-Agent160 , daß die codierte Bitmap414 nicht nur von dem Server150 verarbeitet worden ist, sondern daß sie auch zuvor zu dem Client-Agent118 übertragen worden ist. Wenn sich der Index416 nicht in der Tabelle411 befindet, dann bestimmt der Server-Agent160 , daß die codierte Bitmap414 nicht zuvor übertragen worden ist. - Bei einer Ausführungsform identifiziert der Index
416 eine bestimmte Speicherstelle innerhalb des flüchtigen Speichers114 des Client, die die zuvor übertragene codierte Bitmap414 speichert. Bei einer Ausführungsform liefert der Client-Agent118 einen Schnappschuß seines verfügbaren flüchtigen Speichers114 an den Server-Agent160 bei Initiierung einer Client-Server-Sitzung mit dem Server-Agent160 . Nachdem die Sitzung hergestellt worden ist, steuert der Server-Agent160 danach die Zuweisung des verfügbaren flüchtigen Speichers114 des Client. Auf diese Weise kann der Server-Agent160 den flüchtigen Speicher114 des Client der codierten Bitmap114 zuweisen und den Index416 als einen Zeiger oder eine Referenz auf den zugewiesenen Speicher und als einen Identifizierer der zuvor übertragenen codierten Bitmap414 beibehalten. - Falls sich der Index
416 in der Tabelle411 des Servers befindet, erhält der Server-Agent160 den Index416 (Schritt370 ), komprimiert den Index416 zusammen mit dem verwandten Protokollbefehl (Schritt380 ) und überträgt die komprimierten Daten über das Netz140 in einem an den Client-Agent118 adressierten Paket. Bei einer Ausführungsform weist der Index416 eine geringere Länge (z.B. 16 Bits) als der eindeutige Schlüssel412 (z.B. 64 Bits) auf und verbraucht deshalb bei der Übertragung weniger Bandbreite. Bei Empfang und Dekompression des komprimierten Pakets greift der Client-Agent118 auf die jeweilige Speicherstelle in dem flüchtigen Speicher114 des Client zu, die von dem Index416 spezifiziert wird, um die entsprechenden Graphikdaten410 zu erhalten. Der Client-Agent118 verarbeitet danach die erhaltenen Graphikdaten410 gemäß dem Befehl, der den Index416 in dem komprimierten Paket begleitet. Auf diese Weise wird mit der Erfindung vermieden, daß eine relativ große Bitmap oder andere Graphikdaten wieder übertragen werden müssen, die während einer bestimmten Client-Server-Sitzung bereits schon einmal angetroffen worden sind. - Falls sich der Index
416 nicht innerhalb der Tabelle411 des Servers befindet (und somit nicht zuvor zu dem Client-Agent118 übertragen worden ist), weist der Server-Agent160 einen Teil des flüchtigen Speichers114 des Client für die Bitmap410 zu und bildet den die Speicherstelle identifizierenden Index416 . Der Server-Agent160 speichert dann die codierte Bitmap414 (entsprechend der Bitmap410 ), den neu gebildeten Index416 und den mit der codierten Bitmap414 assoziierten eindeutigen Schlüssel412 in der Tabelle411 des Servers. Der Server-Agent160 komprimiert danach die codierte Bitmap414 , den Index416 und den verwandten Befehl und überträgt die komprimierten Daten in einem an den Client-Agent118 adressierten Paket. Nach Empfang und Dekompression decodiert der Client-Agent118 die codierten Daten414 und speichert die resultierende Bitmap410 in der durch den Index416 identifizierten Speicherstelle und verarbeitet die resultierende Bitmap410 gemäß dem begleitenden Befehl. Alternativ speichert der Client-Agent118 die codierten Daten414 in der durch den Index416 identifizierten Speicherstelle und decodiert die codierten Daten414 nur, wenn dies erforderlich ist, um die resultierende Bitmap410 weiter zu bearbeiten. Auf diese Weise wird Client-Speicher effizienter verwendet. - Obwohl die Erfindung bisher so beschrieben worden ist, daß der Server-Agent
160 die Speicherzuweisung und die Indexbildung des Client steuert, ist es auch möglich, daß der Client-Agent118 diese Funktionen ausführt. Wenn beispielsweise während einer Client-Server-Sitzung zuerst eine Bitmap angetroffen und codiert, komprimiert und zu dem Client-Agent118 (mit dem begleitenden Befehl, aber ohne den Index416 ) übertragen wird, kann der Client-Agent118 die bestimmte Speicherstelle innerhalb seines flüchtigen Speichers114 zum Speichern der Bitmap410 bestimmen. Bei dieser Ausführungsform bildet der Client-Agent118 einen nicht gezeigten Index, der die codierte Bitmap und ihre entsprechende Speicherstelle eindeutig identifiziert und den Index an den Server-Agent160 überträgt, der den Index in der entsprechenden Speicherstelle in der Tabelle411 des Servers speichert. - Mit der Ausführungsform fortfahrend, bei der der Server-Agent
160 die Zuweisung des flüchtigen Speichers114 des Client steuert, pflegt der Client-Agent118 eine kreisförmige Warteschlange421 aller von dem Server-Agent160 spezifizierten Indizes gemäß Warteschlangenpflegeanweisungen, die ebenfalls von dort erhalten wurden. Beispielsweise kann der Server-Agent160 den Client-Agent118 anweisen, einen vorbestimmten Block von Indizes417 (z.B. entsprechend 128 K an Speicher) von ihren jeweiligen Graphikdaten zu disassoziieren, um neu angetroffene Graphikobjekte zu berücksichtigen, wenn der flüchtige Speicher114 des Client ansonsten vollständig belegt ist. Folglich eignet sich ein nachfolgendes neues Graphikobjekt einen zuvor verwendeten Index an. - Der Server-Agent
160 bestimmt außerdem gemäß vorbestimmter Kriterien, ob jedes von der Neuzuordnung der Indizes beeinflußte Graphikobjekt gelöscht oder gesichert werden soll. Der Server-Agent160 übermittelt diese Entscheidung an den Client-Agent118 . Wenn beispielsweise der Server-Agent160 die Indizes 0, 1, 2 und 3 neu zuordnet und bestimmt, daß die mit den Handles 0 und 2 assoziierten Graphikobjekte gelöscht oder in die persistente Speicherung120 des Client bewegt und die mit den Handles 1 und 3 assoziierten Objekte gesichert werden sollen, weist der Server-Agent160 somit den Client-Agent118 an, 0 und 2 zu löschen (oder zu bewegen) und 1 und 3 zu sichern. Der Client- Agent118 bewegt dann den Index jedes gesicherten Objekts zum Ende der kreisförmigen Warteschlange. Mindestens ein Index bleibt an dem Warteschlangenende zur Zuordnung zu dem bewegten Objekt verfügbar; d.h., bei einer Ausführungsform zeigen der Kopf und das Ende der Warteschlange nicht auf den gleichen Index in der kreisförmigen Warteschlange. Folglich wird ein bewegtes Objekt sowohl an einer anderen physischen Speicherstelle gespeichert als auch mit einem anderen Index assoziiert. - Die in der kreisförmigen Warteschlange
421 des Client ausgeführten Pflegeaktionen werden in der Regel bei Fortsetzung der Client-Server-Sitzung häufiger, und der begrenzte flüchtige Speicher114 des Client110 wird mit zuvor übertragenen Bitmaps410 oder anderen Graphikobjekten gefüllt. Dementsprechend steigt die Anzahl zuvor übertragener Graphikobjekte422 , die von dem flüchtigen Speicher114 in die persistente Speicherung120 des Client bewegt werden. Die vorliegende Erfindung verbessert weiterhin die oben beschriebene Caching-Technik zur Suche nach Indicia (siehe „Fuzzy-Schlüssel" unten) von zuvor übertragenen Graphikobjekten422 , die in der persistenten Speicherung120 des Client gespeichert werden können, wenn sich in der Tabelle411 des Servers kein Index zu diesem Graphikobjekt422 findet. Wenn solche Indicia gefunden wird, dann besteht eine starke Wahrscheinlichkeit, daß das zuvor übertragene Graphikobjekt422 immer noch örtlich resident und für den Client-Agent118 zugänglich ist und daß das Graphikobjekt422 deshalb möglicherweise nicht wieder von dem Server-Agent150 zum Client-Agent110 übertragen werden muß. Es ist wichtig, anzumerken, daß man durch das Finden solcher Indicia eine starke Wahrscheinlichkeit, aber keine Gewißheit, darüber erhält, daß das Graphikobjekt420 örtlich resident ist, weil möglicherweise andere Programme oder Client-Agents, die sich möglicherweise die gleiche persistente Speicherung120 teilen, das Graphikobjekt422 aus der persistenten Speicherung120 gelöscht haben können (um z.B. in der persistenten Speicherung für ein neues Objekt Platz zu machen). - Insbesondere und unter Bezugnahme auf
4 und5 : Wenn der Server-Agent160 nicht in der Lage ist, einen Index für eine bestimmte Bitmap422 in der Indextabelle411 des Servers zu finden, durchsucht der Server-Agent118 eine zweite Tabelle418 (im weiteren „Fuzzy-Datenbank") nach einem Eintrag419 (im weiteren „Fuzzy-Schlüssel"), der mit der Bitmap422 assoziiert ist (Schritt520 ). Bei einer Ausführungsform ist jeder Fuzzy-Schlüssel419 eine Kombination aus dem eindeutigen Schlüssel412 in der Tabelle411 des Servers und der Länge/Größe der assoziierten Bitmap422 . Der Fuzzy-Schlüssel kann beispielsweise über eine XOR-Verknüpfung (exclusive OR) beider 32-Bit-CRCs, die zum Berechnen des eindeutigen 64-Bit-Schlüssels412 in der Tabelle411 des Servers verwendet werden, und der Länge der mit dem eindeutigen Schlüssel412 assoziierten Bitmap422 gebildet werden. Die Fuzzy-Datenbank418 liefert im wesentlichen eine anfängliche Vorhersage darüber, ob in der persistenten Speicherung120 des Client110 eine Kopie der Bitmap422 gespeichert ist. Wenn die Fuzzy-Datenbank418 nicht den mit der Bitmap422 assoziierten Fuzzy-Schlüssel419 enthält, dann weist die persistente Speicherung120 des Client wahrscheinlich keine gespeichert Kopie der Bitmap422 auf, weshalb der Server-Agent160 deshalb eine codierte Version der Bitmap422 wie bereits beschrieben an den Client-Agent118 übertragen muß. Wenn andererseits die Fuzzy-Datenbank418 den Fuzzy-Schlüssel419 für die Bitmap422 enthält, dann besteht eine starke Wahrscheinlichkeit dafür, daß die Bitmap422 in der persistenten Speicherung120 des Client gespeichert ist. - Wenn genauer gesagt der Server-Agent
160 in der Fuzzy-Datenbank418 keinen Fuzzy-Schlüssel419 findet, der mit der Bitmap422 assoziiert ist, sendet der Server-Agent160 eine (der Bitmap422 entsprechende) codierte Bitmap an den Client-Agent118 mit einem Befehl, der anfordert, daß der Client-Agent118 die Bitmap422 (oder die entsprechende codierte Bitmap) in dem flüchtigen Speicher114 speichern soll (Schritt530 ). Außerdem, und wie oben beschrieben, fügt der Server-Agent160 den mit der Bitmap422 assoziierten Fuzzy-Schlüssel zu der Fuzzy-Datenbank418 hinzu (Schritt540 ). Man beachte, daß die Reihenfolge der Schritte530 und540 umgekehrt werden kann, so daß die Fuzzy-Datenbank418 vor der Übertragung des Befehls und der codierten Version der Bitmap422 aktualisiert wird. Der Client-Agent118 kopiert danach die Bitmap422 an eine bestimmte Speicherstelle innerhalb des flüchtigen Speichers114 des Client, wie durch den Server-Agent160 spezifiziert (Schritt560 ). - Bei einer Ausführungsform wartet der Server-Agent
160 nicht auf eine Quittung von dem Client-Agent118 , daß die mit der Bitmap422 assoziierte codierte Bitmap erfolgreich empfangen und verarbeitet worden ist. Vielmehr nimmt der Server-Agent160 an, daß die codierte Bitmap ordnungsgemäß verarbeitet worden ist, und schickt weiterhin einen Strom von Protokollbefehlen, ohne auf die Rückkehr einer Quittungsmeldung von dem Client-Agent118 zu warten. Der Server-Agent160 verfolgt jedoch die seit der letzten gelesenen Quittung ausgegebenen Protokollbefehle. Der Server-Agent160 blockiert die weitere Übertragung von Protokollbefehlen, wenn die Anzahl einen vorbestimmten Schwellwert erreicht. Der Schwellwert ermöglicht dem Client-Agent118 , eine Obergrenze hinsichtlich der Speichermenge festzulegen, die benötigt wird, um ankommende Protokollbefehle während einer Wiederherstellungsmodusoperation in eine Warteschlange aufzunehmen, wie unten ausführlicher beschrieben. - Wenn sich in der Fuzzy-Datenbank
420 ein Fuzzy-Schlüssel419 findet, sendet der Server-Agent160 einen Befehl an den Client110 , der den Client-Agent118 anweist, die mit dem Fuzzy-Schlüssel419 assoziierte Bitmap422 aus der persistenten Speicherung des Client in den flüchtigen Speicher114 des Client zu kopieren (Schritt550 ). Dieser Befehl wird nicht nur von dem Fuzzy-Schlüssel419 begleitet, der die relevante Bitmap422 eindeutig identifiziert, sondern auch von dem von dem Server-Agent160 (wie oben beschrieben) erzeugten assoziierten Index zum Identifizieren der spezifischen Speicherstelle innerhalb des flüchtigen Speichers114 des Client, die die kopierte Bitmap422 erhalten und speichern wird. Durch Kopieren der Bitmap422 in den flüchtigen Speicher114 anstatt einfach ihre Speicherstelle in der persistenten Speicherung120 beizubehalten, kann die Erfindung schnell auf mehrere Anforderungen zum Zeichnen der Bitmap422 reagieren, die in schneller Reihenfolge erhalten werden, oder ohne viel eingreifende Cache-Aktivität durch Kopieren der Bitmap422 bei dem Eintreten der ersten Anforderung. - Falls die Bitmap
422 trotz des Vorliegens des entsprechenden Fuzzy-Schlüssels419 in der Fuzzy-Datenbank418 nicht gegenwärtig in der persistenten Speicherung120 gespeichert wird, dann gibt der Client-Agent118 (als Reaktion auf den zuvor von dem Server-Agent160 erteilten „CACHE_READ_DISK_OBJECT"-Befehl) eine Nachricht an den Server-Agent160 zurück, die anzeigt, daß die Bitmap422 fehlt. Bei Empfang dieser Nachricht überträgt der Server-Agent160 wieder die mit der Bitmap422 assoziierten codierten Bitmapdaten zu dem Client-Agent118 (Schritt530 ). Man beachte, daß der Server-Agent160 eine sequentielle Liste aller derartigen, zu dem Client-Agent118 gesendeten CACHE_READ_DISK_OBJECT-Befehle pflegt, für die der Server-Agent160 noch keine Quittung erhalten hat, so daß der Server-Agent160 eine empfangene Quittung ordnungsgemäß mit einer bestimmten Bitmap422 assozi ieren kann (um die codierte Bitmap, die übertragen werden muß, ordnungsgemäß zu identifizieren). - In der Zwischenzeit tritt der Client-Agent
118 in einen Wiederherstellungsmodus ein, in dem der Client-Agent118 weiterhin den ankommenden Protokollstrom liest, ihn aber nicht verarbeitet. Statt dessen baut der Client-Agent118 eine Warteschlange für den Empfang des Stroms von Befehlen auf, die weiterhin von dem Server150 zu dem Befehl strömen, der die Bitmap420 nicht in der persistenten Speicherung120 gefunden hat. Der Client-Agent118 speichert weiterhin diese Befehle in dieser Warteschlange auf FIFO-Weise (first in, first out), bis die codierte Bitmap erhalten und erfolgreich decodiert wird, um die Bitmap422 herzustellen. Um in dem ankommenden Strom von Befehlen die fehlende Bitmap422 zu erkennen, hält der Client-Agent118 Ausschau nach Daten, die in dem Protokollstrom einen Wiederherstellungsmarker begleiten. Bei einer Ausführungsform ist der Wiederherstellungsmarker eine bestimmte Pseudozufallszahl, die über XOR mit dem eindeutigen Schlüssel der Bitmap422 (d.h. der 64-Bit-CRC und 32 Bit Länge) verknüpft wird. Der Server-Agent160 erzeugt den Wiederherstellungsmarker bei Erhalt einer nicht-Quittung-Nachricht von dem Client-Agent118 . Wenn die Bitmap422 ankommt, speichert der Client-Agent118 sie in seinen flüchtigen Speicher114 (Schritt560 ) (d.h., wo die Bitmap422 gespeichert worden wäre, wenn das Objekt anfänglich in der persistenten Speicherung120 vorgelegen hätte) und beginnt mit der Verarbeitung der Befehle in der Warteschlange. Nach der Verarbeitung aller Befehle in der Warteschlange nimmt der Client-Agent118 die Verarbeitung des ankommenden Stroms von Protokollbefehlen auf, die über das Netz140 vom Server150 kommen. - Ein Vorteil des oben beschriebenen Wiederherstellungsprozesses besteht darin, daß durch ihn die Zeitverzögerungseinbuße vermieden wird, die sich solche Cache-Systeme aufladen, die bei Auftreten eines Cache-Miss die Befehle in der Pipeline löschen. Außerdem bewirkt der Wiederherstellungsprozeß keine Unterbrechung beim Strom von Protokollbefehlen und auch keine Zunahme bei dem Verkehr auf dem Kanal um mehr als einige wenige Byte über das hinaus, was der Server
150 an den Client110 gesendet hätte, hätte der Server-Agent160 zu Anfang gewußt, daß die Bitmap422 nicht in der persistenten Speicherung120 vorlag. - Bei einer Ausführungsform erleichtert die vorliegende Erfindung das Finden der Bitmap
422 in der persistenten Speicherung120 des Client durch Speichern der Bitmap422 in einer Datei, deren Dateiname durch Codieren des Fuzzy-Schlüssels419 zusammen mit den mit der Bitmap422 assoziierten, am wenigsten jüngst verwendeten und/oder am wenigsten häufig verwendeten Informationen gebildet wird. Auf diese Weise liefert der Dateiname selbst die gewünschten Informationen, und so wird vermieden, daß die Datei geöffnet und gelesen werden muß. Das Codieren des Fuzzy-Schlüssels419 als Teil des Dateinamens der Bitmap ermöglicht auch dem Client-Agent118 , die Fuzzy-Schlüssel-Informationen schnell aus dem Dateinamen zu extrahieren und sie während eines anfänglichen Bootvorgangs des Client110 oder bei Start der Client-Server-Sitzung an den Server-Agent160 zu senden. Die extrahierten Fuzzy-Schlüssel können an den Server150 in einer Reihenfolge übertragen werden, die beispielsweise auf den am wenigsten jüngst verwendeten und/oder am wenigsten häufig verwendeten Informationen basiert, die ebenfalls Teil des Dateinamens bilden. - Bei einer Ausführungsform werden Fuzzy-Schlüssel
419 auf eine von drei Weisen zu der Fuzzy-Datenbank418 hinzugefügt oder aus dieser gelöscht. Zuerst sendet beim Hochfahren des Client-Agent118 oder bei der Herstellung einer Client-Server-Sitzung mit dem Server-Agent160 der Client-Agent118 Befehle an den Server-Agent160 , zu der Fuzzy-Datenbank418 für jede entsprechende Bitmap422 in der persistenten Speicherung120 des Client einen Fuzzy-Schlüssel419 hinzuzufügen (die Fuzzy-Schlüssel begleiten die Befehle des Client-Agent). Der Client-Agent118 kann eine Sendeliste pflegen, die (z.B. auf der Basis der anhand von vorausgegangenen Client-Server-Sitzungen bestimmten, zu allerletzt verwendeten oder am häufigsten verwendeten Informationen) eine Reihenfolge spezifiziert, um beim Hochfahren Fuzzy-Schlüssel an den Server150 zu senden. Die Sendeliste kann von dem Client-Agent118 bei Lesen des Verzeichnisses seiner persistenten Speicherung120 und Aufheben einer Darstellung des Verzeichnisses im flüchtigen Speicher114 gebildet werden. Bei einem Aspekt der Erfindung extrahiert der Client-Agent118 Fuzzy-Schlüssel-Informationen aus dem Dateinamen der Datei, die die Bitmap422 enthält, wenn die Darstellung des Verzeichnisses hergestellt wird. Zweitens fragt der Client-Agent118 in vorbestimmten Abfrageintervallen seine persistente Speicherung120 ab, um jene Bitmaps zu bestimmen, die sich gegenwärtig in seiner persistenten Speicherung120 befinden (z.B. durch Suche nach Dateinamen, die eine Struktur wie ein Fuzzy-Schlüssel enthalten), und sendet dann Hinzufüge- und/oder Lösch-Befehle an den Server-Agent160 , wie dies erforderlich ist, um die Fuzzy-Datenbank418 des Servers zu aktualisieren. Wenn drittens der Server-Agent160 einen Befehl an den Client-Agent118 sendet, eine Bitmap in die persistente Speicherung120 des Client zu schreiben, erzeugt der Server-Agent160 einen entsprechenden Fuzzy-Schlüssel419 und speichert ihn in der Fuzzy-Datenbank418 . - Die Übertragung von Bitmapdaten vom Server
150 zum Client110 kann insbesondere dann einen relativ langen Zeitraum erfordern, wenn die Netzverbindung zwischen Client und Server relativ langsam ist. Bei einer Ausführungsform adaptiert die Erfindung den Serverbetrieb an sich ändernde Netzbedingungen durch Bestimmen der relativen Geschwindigkeit des Netzes140 . - Beispielsweise kann der Server-Agent
160 durch dynamisches Beurteilen der Bandbreite des Netzes140 die zum Verarbeiten von Bitmapdaten verwendeten Codier- und Kompressionstechniken modifizieren, um die Bandbreitenanforderungen zu reduzieren, wenn über ein langsames Netz übertragen wird. Die Erfindung verarbeitet Spalten von Bitmapdaten von links nach rechts und bereitet den Client-Cache114 entsprechend vor. Während die codierte Bitmap414 übertragen wird, kann die Übertragungszeit überwacht werden, um die Leistung des Netzes140 zu bestimmen. Wenn die Übertragungszeit einen Schwellwert übersteigt, kann der Client-Agent118 alle Bitmapdaten zeichnen, die bereits in seinem Cache114 gespeichert worden sind, und die verbleibenden Teile der Bitmapdaten entweder in Echtzeit, während sie im Cache114 empfangen werden, oder zu vorbestimmten Intervallen anzeigen. Auf diese Weise erkennt ein Benutzer des Client, daß der Client110 immer noch an den Bitmapdaten arbeitet, und kann erkennen, daß sich der Client110 nicht in einem aufgehängten oder abgestürzten bzw. Fehlerzustand befindet. Durch Approximieren der effektiven Netzbandbreite an den Client110 und entsprechendes Adaptieren des Verhaltens des Servers150 kann der Server-Agent160 beispielsweise den Client-Agent118 anweisen, eine ganze Bitmap zu verwenden, gegenüber der Verwendung eines Ganzspaltenmodus der Anzeige für eine bestimmte Bitmap. - Insbesondere sendet der Server-Agent
160 einen Start_StopWatch-Befehl, gefolgt von codierten Bitmapdaten414 , und einen Stop_StopWatch-Befehl an den Client-Agent118 . Der Client-Agent118 reagiert auf den Start_Stopwatch-Befehl, indem er das aktuelle Uhrsignal liest und es in ein erstes Arrayelement schreibt. Nach dem Empfang der codierten Bitmap414 reagiert der Client-Agent118 auf den Stop_StopWatch-Befehl, indem er das aktuelle Uhrsignal liest und es in ein zweites Arrayelement schreibt. Durch Vergleich der Differenz bei den Uhrsignalen zwischen den Befehlen Start_StopWatch und Stop_StopWatch erhält man einen Schätzwert der Zeit, die zum Empfangen der codierten Bitmapdaten aufgewendet wurde. Die resultierende Zeitdifferenz wird dann zurück zum Server-Agent160 übertragen. Dieser Vorgang kann wiederholt werden, um einen geglätteten beweglichen Mittelwert zu berechnen, aus dem ein sinnvoller Schätzwert für den effektiven Durchsatz codierter Bitmapdaten bestimmt werden kann. Die Erfindung verwendet den Durchsatzschätzwert angesichts der Größe der codierten Daten für eine bestimmte Bitmap, um zu entscheiden, ob der ganze Bitmapmodus (z.B. wenn es wahrscheinlich ist, daß es weniger als 5 Sekunden benötigt) oder zunehmend ganze Spalten (wenn es wahrscheinlich ist, daß es mehr als 5 Sekunden benötigt) verwendet werden sollen. Man beachte, daß dieser Vorgang zwar nicht zu einem 100%ig genauen Durchsatzschätzwert führt, der aber ausreichend Granularität liefert, um schnelle oder langsame Netzverbindungen zu detektieren, anhand derer verschiedene Displaymodi bestimmt werden können. Eine ähnliche Technik kann dazu verwendet werden, große Schirm-zu-Schirm-Kopien am Clientende zeitlich zu planen und einen ähnlich beweglichen mittleren Schätzwert der Client-Leistung während dieser Operationen aufzubauen, mit denen dann ein Producer-Thread am Server150 verlangsamt und ein Überlauf an der Quelle verhindert werden kann, wenn der Server150 Daten schneller erzeugt, als der Client110 sie verarbeiten kann. - Bei einer Ausführungsform bildet die Erfindung Objekte, die ausreichend groß sind, um die Daten einer ganzen Cache-Spalte zu enthalten. Beispielsweise können die maximale Objektgröße und die Größe des Cache von dem Server-Agent
160 bei Beginn der Client-Server-Sitzung als Funktion der Größe des Verbindungsfensters und seiner Farbtiefe ausgewählt werden, wobei größere Größen für größere Schirme und Tiefen zugeordnet werden. Zudem können gegenwärtige Techniken zum Aufbrechen einer Bitmap in Spalten an einem oder beiden Enden der Bitmap zu Spalten führen, die geringer sind als die Standardbreite. Wenn diese vom Standard abweichenden Spalten zu schmal sind, dann sind sie möglicherweise nicht groß genug, um in der persistenten Speicherung120 des Client zurückbehalten zu werden, und sie werden deshalb während nachfolgender Client-Server-Sitzungen nicht beim Client110 vorliegen. Durch die Erfindung wird dieses Problem vermieden, indem die schmalen Spalten mit benachbarten Spalten vereinigt werden, so daß nur breite Spalten verwendet werden, und somit sind alle Teile eines Splash-Schirms beispielsweise in der persistenten Speicherung120 enthalten. Bei einer Ausführungsform werden dann ganze Spalten in zwei Phasen angezeigt. Die erste Phase bereitet den Cache114 mit etwaigen fehlenden Daten vor, und die zweite Phase zieht die Spalte aus dem Cache114 , was die Verwendung von mehr als einem Cache-gespeicherten Objekt beinhalten kann. Die Spalte wird deshalb auf dem Displayschirm128 in atomarer Weise angezeigt. Wie zuvor erörtert können die Spalten, wenn die Netzverbinung langsam ist, auf atomare Weise jeweils einzeln angezeigt werden, um den Benutzer beim Client110 zu beruhigen, daß das System weiterhin arbeitet. Alternativ kann die ganze Bitmap unter Verwendung einer ähnlichen Technik atomar angezeigt werden, wenn eine schnelle Netzverbindung detektiert wird. - Die oben erörterte Technik des beweglichen mittleren Schätzwerts kann auch dazu verwendet werden, seit langem bestehende Overscroll-Probleme bei einer Applikation zu mildern, die auf einem schnellen Server ausgeführt und auf einem relativ langsamen Client angezeigt wird. Das Overscroll-Problem tritt beispielsweise dann auf, wenn ein Benutzer des Client
110 etwa durch mehrfaches Anklicken des Scroll-Balkens (oder Ziehen des Scroll-Balkens) mit einer Maus126 mehrere Scroll-Befehle initiiert. Wenn die Scroll-Befehle zu dem schnellen Server gesendet werden, führt der Server150 die Scroll-Operationen aus und schickt die assoziierten Daten schneller zurück, als der langsame Client110 (oder das langsame Netz140 ) die Ergebnisse auf seinem Anzeigeschirm128 anzeigt. Wenn der Benutzer beim Client110 schließlich die gewünschte Schirmposition sieht und das Scrollen stoppen möchte (durch Stoppen der Mausklicks und/oder das Ziehen des Scroll-Balkens), läuft die Anzeige folglich über die gewünschte Schirmposition weiter. Dieser Overscroll-Zustand tritt auf, weil der schnelle Server150 die Scroll-Befehle bereits verarbeitet und die entsprechenden Daten zurück zum Client110 übertragen hat, aber die Daten bei dem langsamen Client in die Warteschlange eingereiht und noch nicht ganz verarbeitet worden sind. - Durch die Erfindung wird dieses Overscroll-Problem gemildert, indem die Häufigkeit seines Auftretens reduziert wird. Insbesondere taktet die Erfindung periodisch ausgewählte Scroll-Ereignisse beim Server
150 (durch Scrollen des Rahmenpuffers) und beim Client110 (über die oben erörterten Stopwatch-Befehle), um einen sich bewegenden mittleren Schätzwert ihre jeweiligen Geschwindigkeiten zu berechnen. Auf diese Weise schätzt der Server-Agent160 , wie lang ein bestimmtes Scroll-Ereignis zur Verarbeitung am Server150 benötigt (Geschwindigkeit mal die Anzahl der involvierten Pixel) und was erwartet wird, wie lange der Client110 benötigt, und wenn die erwartete Verarbeitungszeit beim Client110 größer ist als die des Servers150 , dann wird die Serververarbeitung um das entsprechende Zeitdifferential unterbrochen, um den Client110 und den Server150 im wesentlichen synchron zu halten. Dieser Ansatz führt zu viel weniger Overscrolls aufgrund der Zeitverzögerung zwischen dem Client110 und dem Server150 im Vergleich zu der Anzahl der Overscrolls, die auftreten, wenn dieser Ansatz nicht implementiert wird. - Zusätzlich zu der Verarbeitung von Bitdaten kann die vorliegende Erfindung auch eine Textkette, die auf dem Server
150 erzeugt wird, zu dem Display128 des entfernten Client110 verschieben. Unter Bezugnahme auf6 führt der Server150 das Applikationsprogramm158 aus, das eine Textfolge erzeugt, die zu dem Client110 verschoben werden muß. Der Server-Agent160 fängt die von dem Applikationsprogramm158 zu dem Server-Betriebssystem156 gesendeten Befehle ab, die sich auf die Textfolge beziehen, und bewirkt, daß ein Displaytreiber612 des Server-Agent160 textbezogene Informationen verarbeitet und eine Reihe von Protokollbefehlen614 zu dem Client-Agent118 überträgt zur Anzeige einer Textfolge416 auf dem Client-Display128 . Beispielsweise führt die Applikation158 Prozeduraufrufe aus, die die Textfarbe und die Hintergrundfarbe einstellen (hier „Hello!"). Die Ausführung der TextOut-Prozedur618 durch die Applikation158 löst eine Ausführung der DrvTextOut-Prozedur620 auf dem Displaytreiber612 aus. Wie gezeigt definiert die DrvTextOut-Prozedur620 die Beschneidungsregion, das begrenzende Rechteck und den Textmodus (einschließlich Hintergrund und Textfarbe) durch Ausführen einer Sequenz entsprechender Prozeduren. - Das Ausführen solcher Prozeduren bewirkt, daß der Displaytreiber
612 die entsprechenden Daten- und Protokollbefehle (wie etwa eine Teilmenge jener in Tabelle 1 bereitgestellten) zu dem Client-Agent118 sendet. Die Protokollbefehle werden von dem Client-Agent118 empfangen und verarbeitet, der Prozeduren614 ausführt, die die Beschneidungsregion, das begrenzende Rechteck, den Textmodus und die mit jedem anzuzeigenden Textzeichen assoziierte Glyphe spezifizieren. Man beachte, daß das mit einem Glyphenobjekt assoziierte Protokoll nicht nur die Glyphenbitmap selbst codiert, sondern auch ihre relativen Positionierungsinformationen. Der Server150 kann auch andere Protokollbefehle an den Client-Agent118 senden, die den Client-Agent118 anweisen, die assoziierten Glyphen im flüchtigen Speicher114 und/oder in der persistenten Speicherung120 zu speichern, wie oben beschrieben. Der Client-Agent118 erzeugt eine Bitmap, die der Größe des begrenzenden Rechtecks entspricht, das die Textfolge umgibt, und setzt die relativen Positionen jeder Glyphe an ihre ordnungsgemäße Position innerhalb des begrenzenden Rechtecks. Nachdem die letzte Glyphe empfangen und ihre Position gesetzt worden ist, weist der Client-Agent118 das Client-Betriebssystem116 an, die Bitmap auf dem Displayschirm128 des Client110 zu zeichnen bzw. wiederzugeben. - Die vorliegende Erfindung unterstützt außerdem mehrere verschiedene Beschreibungen von Wegen (eine Menge von Linien oder Kurven, die als Teil der Beschreibung eine Linienzeichenoperation oder im Fall eines geschlossenen Wegs zum Beschreiben einer Region verwendet werden) einschließlich Ellipsen, Bezier-Kurven, Segmente, Streifen und Stile. Segmente beziehen sich auf Liniensegmente, die bei Kombinierung einen Weg bilden. Analog können Segmente weiterhin in Streifen zerlegt werden, die Teile des Linien-Segments sind (entsprechend einer Reihe von aufeinanderfolgenden Pixeln), die die gleichen Winkelcharakteristiken aufweisen. Die zum Darstellen von beispielsweise Streifen verwendete Codiertechnik verwendet relative Ortsinformationen und quantisierte Winkel, um aufeinanderfolgende Streifen zu charakterisieren, insbesondere Liniensegmente, was nicht nur die Menge graphischer Liniendaten minimiert, die codiert werden muß, sondern auch zu einer wiederholbareren Sequenz von Daten führt, die effizienter komprimiert werden kann. Die Zunahme bei der Wiederholbarkeit wird insbesondere dann verbessert, wenn Streifen dargestellt werden, die eine Gestalt wie etwa ein Rechteck oder einen Kreis bilden. Das für Streifen verwendete Protokoll ermöglicht es dem Client-Agent
118 auch, einen Weg unabhängig und ohne Kenntnis des Algorithmus präzise zu reproduzieren, der von dem Server-Agent160 zum Konvertieren des Wegs in eine Sequenz von Pixeln verwendet wird. - Unter Bezugnahme auf das nichteinschränkende Beispiel in
7A umfaßt ein Weg700 zwei Liniensegmente710 ,720 , die perfekt linear erscheinen. Der Fachmann erkennt jedoch, daß Liniensegmente, die nicht perfekt horizontal, vertikal oder unter einer 45°-Diagonalen verlaufen, durch eine entsprechende Serie von Streifen approximiert werden müssen, wenn der Weg700 auf einem Displayschirm128 angezeigt wird (1 ). Diese Approximierung ist notwendig, weil die individuellen Pixel auf dem Displayschirm128 von höchstens 8 anderen Pixeln umgeben sind, die entweder perfekt horizontal, vertikal oder unter einer 45°-Diagonalen relativ zueinander verlaufen, und deshalb müssen alle Liniensegmente710 ,720 , die in einem anderen Gesamtwinkel liegen, durch eine Reihe von Streifen approximiert werden. Dementsprechend und unter Bezugnahme auf den beispielhaften Weg700 von7B umfaßt das Segment710 vier Streifen712 ,714 ,716 ,718 , wobei die (durch quadratische Blöcke dargestellten) individuellen Pixel jedes Streifens712 ,714 ,716 ,718 unter 45°-Diagonalen relativ zueinander organisiert sind, und Segment720 besteht aus fünf Streifen722 ,724 ,726 ,728 ,730 , wobei die individuellen Pixel jedes Streifens722 ,724 ,726 ,728 ,730 relativ zueinander horizontal organisiert sind. - Bei einer Ausführungsform und unter Bezugnahme auf
7B und8A zerlegt der Server-Agent160 den Weg700 in Liniensegmente710 ,720 mit jeweils einer bestimmten Länge und einem bestimmten Winkel (Schritt810 ). Dann wird ein Array von Liniensegmenten gebildet, um quantisierte Segmentinformationen (hier im weiteren als ein quantisierter Winkel oder „QA" bezeichnet) für jedes Liniensegment710 ,720 zu speichern (Schritt820 ). Unter Bezugnahme auch auf8B bestimmt der Server-Agent160 , anstatt den mit einem bestimmten Segment710 ,720 assoziierten absoluten Winkel zu berechnen, statt dessen, in welchem der 16 quantisierten Winkel880 der absolute Winkel liegt. Diese Quantisierungstechnik bestimmt, in welchem 16tel des Umfangs der Endpunkt für ein Liniensegment liegt, das in der Mitte eines Kreises beginnt (ein Radius). Diese Informationen können als der ohne mit einem Vorzeichen versehene Deltawert von dem letzten in diesem Kontext spezifizierten Segment ausgedrückt werden (mod 16, initialisiert auf 0). Diese Technik führt zu einer wiederholbareren Sequenz (als wenn der absolute Winkel verwendet wurde), insbesondere wenn die Segmente eine Gestalt wie etwa ein Rechteck oder einen Kreis bilden. - Der Server-Agent
160 zerlegt dann jedes Liniensegment710 ,720 in Streifen (712 ,714 ,716 ,718 ;722 ,724 ,726 ,728 bzw.730 ) (Schritt830 ). Die Länge jedes Streifens eines bestimmten Segments710 ,720 wird danach in einem Streifenlängenarray zur weiteren Verarbeitung gespeichert (Schritt840 ). Bei einer Ausführungsform wird zum Aufbrechen des Wegs700 in ein Array von Streifen der Windows-NT-Algorithmus bLine verwendet. Der NT-Algorithmus bestimmt den quantisierten Winkel jedes Streifens und Segments, so daß hinsichtlich Segmenten oder Streifen, die auf einer Grenze zwischen quantisierten Winkelregionen liegen, keine Doppeldeutigkeit besteht. Der NT-Algorithmus dreht eine nach oben verlaufende Linie, so daß die Linie immer nach unten verläuft (der y-Wert nimmt immer zu) und setzt das Flag_FL_FLIP_V. Analog wird eine nach links verlaufende Linie horizontal gedreht, so daß sie immer nach rechts verläuft (der x-Wert nimmt immer zu), und setzt das Flag FL_FLIP_H. Dadurch fällt das von diesem Algorithmus ausgegebene Array von Streifen in einen einzigen Quadranten. Bei dieser besonderen Ausführungsform hebt der Server-Agent160 die Drehoperation des NT-Algorithmus auf, so daß das Array von Streifen in ihre vorherigen/ursprünglichen quantisierten Winkel zurückgedreht werden, um sicherzustellen, daß der Endpunkt eines vorhergehenden Streifens und der Startpunkt des nächsten nachfolgenden Streifens zusammenfallen, um zu vermeiden, daß die Startkoordinate des nächsten nachfolgenden Streifens gesendet werden muß. - Der Server-Agent
160 codiert dann die Beginnkoordinate des Wegs700 zusammen mit den quantisierten Winkeldaten in dem Liniensegmentarray und Pixellängendaten in dem Streifenlängenarray, um einen Protokollstrom zu bilden (Schritt850 ). Die codierten Daten werden dann einem Kompressionsalgorithmus unterzogen, um die Datenredundanzen in dem Protokollstrom auszunutzen (Schritt860 ), und danach werden die komprimierten Graphikliniendaten zur Codierung und weiteren Verarbeitung zum Client-Agent118 übertragen (Schritt870 ). - Unter Bezugnahme auf die veranschaulichende Darstellung in
9 und die quantisierten Winkelinformationen von10 umfaßt das Liniensegment710 vier innerhalb eines quantisierten Winkels 1 positionierte Streifen712 ,714 ,716 ,718 . Die Beginnkoordinate des Wegs700 , die als Teil der komprimierten Graphikliniendaten vom Server-Agent160 zum Client-Agent118 übertragen wird, entspricht dem ersten Pixel im Streifen712 (am Ursprung von880 positioniert). Die Graphikliniendaten enthalten weiterhin die Pixellänge jedes Streifens712 ,714 ,716 ,718 im Segment710 . Da das Segment710 keiner perfekten Horizontalen, Vertikalen oder 45°-Diagonalen entspricht, wird jeder nachfolgende Streifen714 ,716 und718 im Segment710 um einen bestimmten Deltawert justiert, wie in10 angedeutet, um den Gesamtwinkel des Segments710 ordnungsgemäß zu approximieren. Bei dem vorliegenden Beispiel zeigt der Client-Agent118 den Streifen714 mit im wesentlichen dem gleichen x-Wert und einem zunehmenden y-Wert an, um von dem letzten Punkt in dem vorausgegangenen Streifen712 zu dem Beginnpunkt in dem nächsten nachfolgenden Streifen714 zu kommen. Dieser Prozeß wird für jeden Streifen im Segment710 sowie für die Streifen in Segment720 , die innerhalb von QA 15 positioniert sind, wiederholt. - Dementsprechend und bei einer Ausführungsform umfaßt der von der vorliegenden Erfindung erzeugte Protokollstrom bei der Verarbeitung von Streifen die Startposition des Wegs, (gegebenenfalls) einen Index entsprechend einer Speicherstelle im flüchtigen Speicher
114 des Client (1 ), der möglicherweise bereits einen zu einem gewissen früheren Zeitpunkt in der Client-Server-Sitzung übertragenen bestimmten Streifen speichert, die Anzahl der Segmente in dem Weg, den quantisierten Winkel jedes Segments (anhand dessen die in10 reflektierten Deltawerte bestimmt werden), die Länge jedes Streifens zusammen mit bestimmten Steuerinformationen und quantisierte Winkel-Delta-Informationen, die zu dem quantisierten Winkel eines ersten oder vorausgegangenen Segments addiert werden, um den Client-Agent118 über den quantisierten Winkel der nachfolgenden Segmente zu informieren. Auf diese Weise wird durch die Erfindung vermieden, daß Koordinaten und Absolutwinkelinformationen für jeden Streifen in dem Weg gesendet werden müssen. Weiterhin erleichtert die oben erörterte Streifenverarbeitungstechnik die effiziente Kompression von Graphikliniendaten durch wirksames Einsetzen der Wiederholungshäufigkeit der Daten in dem unkomprimierten Protokollstrom. - Die vorliegende Erfindung kann auch auf Bitmaps angewendet werden, die in einer Auf-Schirm-Oberfläche angezeigt werden, sowie auf Bitmaps in einer Außerschirm-Oberfläche (z.B., die im Speicher eines Videodisplayadapters und/oder in einem zuvor zugewiesenen Abschnitt des flüchtigen Speichers
114 des Client gespeichert sind, die von einer Graphikkonvertierungssammlung bearbeitet werden). Außerschirm-Oberflächen werden häufig durch Applikationen wie etwa Microsoft Word gebildet, die Bitmaps auf die Außerschirm-Oberfläche schreiben, bis die Oberfläche vollständig ist, wobei dann die Außerschirm-Oberfläche auf dem Displayschirm128 des Client110 in endgültiger Form als eine Auf-Schirm-Oberfläche angezeigt wird. Deshalb bilden oftmals die Außerschirm-Oberflächen die Quelle für Auf-Schirm-Oberflächen. - Bei einer Ausführungsform und unter Bezugnahme auf Außerschirm-Oberflächen informiert der Client-Agent
118 den Server-Agent160 über die für Außerschirm-Oberflächen verfügbare Menge an lokalem flüchtigem Speicher114 , so daß der Server-Agent160 keine Außerschirm-Oberfläche bildet, die größer ist als der verfügbare Speicher des Client. Der Server-Agent160 bildet danach eine Außerschirm-Oberfläche und überträgt sie an den Client-Agent118 mit Anweisungen, die Oberfläche in seinem flüchtigen Speicher114 zu speichern. Der Client-Agent118 wählt einen bestimmten Abschnitt seines flüchtigen Speichers114 aus und weist ihn der Oberfläche zu und speichert die Oberfläche darin. Jede Außerschirm-Oberfläche weist eine Menge assoziierte Attribute auf, wie etwa einen Identifizierer, der die Oberfläche, das Pixelformat, die Abmessungen, die Zeichenattribute, den Protokollzustand usw. eindeutig identifiziert. - Bei einer Ausführungsform kann der Server-Agent
160 , damit der flüchtige Speicher114 des Client effizienter genutzt wird, Befehle an den Client-Agent118 ausgeben, die anweisen, daß bestimmte Operationen nur auf die Außerschirm-Oberfläche ausgeführt werden, wenn die Außerschirm-Oberfläche mit der Auf-Schirm-Oberfläche interagiert (wenn z.B. die Auf-Schirm-Oberfläche mit Bitmapdaten von der Außerschirm-Oberfläche aktualisiert wird). Wenn die einzige Interaktion zwischen der Auf-Schirm-Oberfläche und der Außerschirm-Oberfläche eine letzte Kopie auf dem Schirm ist, dann können die Operationen auf die Auf-Schirm-Oberfläche ausgerichtet werden und somit die Menge an Bitmapdaten reduzieren, die über das Netz140 übertragen werden müssen. Alternativ kann die Quelle der Auf-Schirm-Oberfläche eingeschränkt werden, so daß sie entweder einer entfernt beim Server150 gespeicherten Außerschirm-Oberfläche oder einer lokal beim Client110 gespeicherten Außerschirm-Oberfläche entspricht. Zu typischen Operationen auf die Außerschirm-Oberfläche, die von dem Server-Agent160 angefordert werden, zählen das Aktualisieren der Bitmap in der Außerschirm-Oberfläche mit aktualisiertem Text, einer aktualisierten Linie oder anderen aktualisierten Daten. - Bei einer Ausführungsform und unter Bezugnahme auf
11 fängt der Server-Agent160 alle zu dem Server-Betriebssystem156 hergestellten Anrufe ab, die die Erzeugung einer Außerschirm-Oberfläche betreffen, und der Server-Agent160 bildet eine Duplikatkopie der Oberfläche und speichert sie zusammen mit ihren Attributen in dem lokalen Speicher des Servers. Der Server-Agent160 gibt dann einen Befehl an den Client-Agent118 aus, die Außerschirm-Oberfläche im flüchtigen Speicher114 des Client zu bilden (Schritt1102 ). Der Befehl wird von einer codierten Darstellung der Außerschirm-Oberfläche begleitet, wenn dies der erste Fall der Außerschirm-Oberfläche ist, oder von einem Index oder einem Fuzzy-Schlüssel, wenn die Außerschirm-Oberfläche zuvor während der Client-Server-Sitzung übertragen worden ist (Schritt1104 ). Der Server-Agent160 weist den Client-Agent118 an, die von den Index-/Fuzzy-Schlüssel-Indicia oder codierten Oberfläche identifizierten Graphikdaten in die Außerschirm-Oberfläche des Client zu integrieren (Schritt1106 ). Der Client-Agent118 reagiert auf die Anweisungen des Server-Agent durch Kopieren der identifizierten Oberfläche/Bitmap auf die Außerschirm-Oberfläche des Client (Schritt1108 ). Wenn ein von dem Server-Agent160 ausgegebener BITBLT-Befehl beispielsweise keine Bitmap in der Außerschirm-Oberfläche des Client bildet, wie etwa wenn ein Speicherzuweisungsfehler auftritt, sendet der Client-Agent118 einen C2S_OSS_Error-Befehl an den Server-Agent160 , der den Fehlerzustand anzeigt (Schritt1110 ). Als Reaktion auf den Fehlerzustand verwendet der Server-Agent160 seine lokale Kopie der Außerschirm-Oberfläche als die Quelle zum Aktualisieren der Außerschirm-Oberfläche des Client. Der Client-Agent118 aktualisiert mit den von der lokalen Kopie des Servers empfangenen Informationen die Außerschirm-Oberfläche auf dem Client110 und korrigiert etwaige korrumpierte/schmutzige Regionen der Außerschirm-Oberfläche. Wenn ein Fehlerzustand angetroffen wird, überträgt alternativ der Server-Agent160 seine lokale/Duplikatkopie der Außerschirm-Oberfläche (Schritt1112 ) zum Client-Agent118 und weist den Client-Agent118 an, die Duplikatoberfläche als die Quelle zum Aktualisieren der Auf-Schirm-Oberfläche zu verwenden und die korrumpierte Außerschirm-Oberfläche beim Client zu verwerfen (Schritt1114 ). - Wenngleich die vorliegende Erfindung unter Bezugnahme auf spezifische Details beschrieben worden ist, ist nicht beabsichtigt, daß solche Details als Beschränkungen hinsichtlich des Schutzbereichs der Erfindung angesehen werden sollten, mit Ausnahme dessen und in dem Ausmaß, daß sie in den beiliegenden Ansprüchen enthalten sind.
Claims (20)
- Verfahren zum Fernsteuern durch einen Server (
150 ), in einem über ein Kommunikationsnetz (140 ) an den Server angekoppelten Client (110 ) eine Außerschirm-Oberfläche zu bilden, wobei das Verfahren im Server (150 ) durchgeführt wird und die folgenden Schritte umfaßt: Anweisen (1102 ) des Client, eine erste Speicherregion für eine Zuteilung zu der Außerschirm-Oberfläche zu wählen, wobei die erste Speicherregion einem an den Client (110 ) angekoppelten Speicher (114 ) entspricht; Senden (1104 ) von Indicia der graphischen Daten zu dem Client; und Anweisen (1106 ) des Client, die den Indicia zugeordneten graphischen Daten zu einer bestimmten Speicherstelle in der ersten Speicherregion zu kopieren. - Verfahren nach Anspruch 1, weiterhin mit dem folgenden Schritt: Spezifizieren mehrerer, der Außerschirm-Oberfläche zugeordneter Attribute.
- Verfahren nach Anspruch 1 oder Anspruch 2, wobei die Indicia der graphischen Daten einem Fuzzy-Schlüssel (
419 ) entsprechen, wobei der Fuzzy-Schlüssel (419 ) eine Speicherstelle der graphischen Daten in einem an den Client (1100 ) angekoppelten persistenten Speicher (120 ) identifiziert. - Verfahren nach Anspruch 1 oder Anspruch 2, wobei die Indicia der graphischen Daten einem Index (
416 ) entsprechen, wobei der Index (416 ) eine Speicherstelle der graphischen Daten in einem an den Client (1100 ) angekoppelten Cache-Speicher identifiziert. - Verfahren nach einem der vorhergehenden Ansprüche, weiterhin mit dem folgenden Schritt: Anweisen (
1108 ) des Client (110 ), eine dem Client zugeordnete Auf-Schirm-Oberfläche unter Verwendung der kopierten graphischen Daten in der Außerschirm-Oberfläche zu aktualisieren. - Verfahren nach einem der vorhergehenden Ansprüche, weiterhin mit dem folgenden Schritt: Speichern eines Duplikats der Außerschirm-Oberfläche in einem an den Server angekoppelten Speicher.
- Verfahren nach Anspruch 6, weiterhin mit den folgenden Schritten: nach Empfang einer Anzeige einer Fehlerbedingung, Senden (
1112 ) mindestens eines Teils der Duplikat-Außerschirm-Oberfläche zu dem Client; und Anweisen des Client, den mindestens einen Teil der Duplikat-Außerschirm-Oberfläche zu einer dem Client zugeordneten Auf-Schirm-Oberfläche zu kopieren. - Verfahren nach einem der vorhergehenden Ansprüche, weiterhin mit den folgenden Schritten: a) Anweisen des Client, eine zweite Speicherregion zu wählen; und b) Anweisen des Client, die graphischen Daten zu einer bestimmten Speicherstelle in der zweiten Speicherregion zu kopieren, wobei Schritt a) als Reaktion auf den Empfang einer Anzeige einer Fehlerbedingung durchgeführt wird.
- Verfahren nach einem der vorhergehenden Ansprüche, wobei die graphischen Daten einer Bitmap entsprechen.
- Verfahren nach einem der Ansprüche 1 bis 8, wobei die graphischen Daten einer Glyphe entsprechen.
- Verfahren nach einem der Ansprüche 1 bis 8, wobei die graphischen Daten einem Streifen entsprechen.
- System zum Fernsteuern durch einen Server (
150 ), in einem über ein Kommunikationsnetz (140 ) an den Server angekoppelten Client (110 ) eine Außerschirm-Oberfläche zu bilden, wobei das System folgendes umfaßt: einen auf dem Client ausgeführten Client-Agent (118 ); eine an den Client-Agent angekoppelte erste Speicherregion; eine in der ersten Speicherregion gespeicherte Außerschirm-Oberfläche; einen auf dem Server (150 ) ausgeführten und an den Client-Agent (118 ) angekoppelten Server-Agent (160 ); und graphische Daten, wobei die graphischen Daten zugeordnete Indicia aufweisen und durch den Client gespeichert werden, und wobei der Server-Agent im Betrieb für folgendes ausgelegt ist: Senden von Indicia der graphischen Daten zu dem Client-Agent; und Anweisen des Client, die erste Speicherregion für eine Zuteilung zu der Außerschirm-Oberfläche zu wählen und die den Indicia zugeordneten graphischen Daten zu einer bestimmten Speicherstelle in der ersten Speicherregion zu kopieren. - System nach Anspruch 12, wobei die Indicia der graphischen Daten einem Fuzzy-Schlüssel (
419 ) entsprechen, wobei der Fuzzy-Schlüssel (419 ) eine Speicherstelle der graphischen Daten in einem an den Client angekoppelten persistenten Speicher (120 ) identifiziert. - System nach Anspruch 12, wobei die Indicia der graphischen Daten einem Index (
416 ) entsprechen, wobei der Index (416 ) eine Speicherstelle der graphischen Daten in einem an den Client angekoppelten Cache-Speicher identifiziert. - System nach Anspruch 12, 13 oder 14, wobei der Server-Agent im Betrieb dafür ausgelegt ist, Attribute der Außerschirm-Oberfläche zu spezifizieren.
- System nach einem der Ansprüche 12 bis 15, weiterhin mit einem in einem an den Server-Agent angekoppelten Speicher gespeicherten Duplikat der Außerschirm-Oberfläche.
- System nach Anspruch 16, weiterhin umfassend: eine an den Client-Agent angekoppelte Auf-Schirm-Oberfläche, wobei der Client-Agent im Betrieb für folgendes ausgelegt ist: Aktualisieren der Auf-Schirm-Oberfläche unter Verwendung der Außerschirm-Oberfläche und Verwerfen der in der ersten Speicherregion gespeicherten Außerschirm-Oberfläche bei Auftreten einer Fehlerbedingung.
- System nach einem der Ansprüche 12 bis 17, wobei die graphischen Daten einer Bitmap entsprechen.
- System nach einem der Ansprüche 12 bis 17, wobei die graphischen Daten einer Glyphe entsprechen.
- System nach einem der Ansprüche 12 bis 17, wobei die graphischen Daten einem Streifen entsprechen.
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US20753200P | 2000-05-26 | 2000-05-26 | |
US207532P | 2000-05-26 | ||
US22521700P | 2000-08-14 | 2000-08-14 | |
US225217P | 2000-08-14 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE60109631D1 DE60109631D1 (de) | 2005-04-28 |
DE60109631T2 true DE60109631T2 (de) | 2006-01-19 |
Family
ID=26902328
Family Applications (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE60109631T Expired - Lifetime DE60109631T2 (de) | 2000-05-26 | 2001-05-29 | Verfahren und Vorrichtung zur effizienten Verringerung von graphischen Anzeigedaten für ihre Übertragung mittels eines Übertragungsprotokolls für niedrige Bandbreiten |
DE60112103T Expired - Lifetime DE60112103T2 (de) | 2000-05-26 | 2001-05-29 | Verfahren und Vorrichtung zur effizientes Verringerung von graphischen Anzeigedaten für ihre Übertragung mittels eines Übertragungsprotokolls für niedrige Bandbreiten |
DE60109602T Expired - Lifetime DE60109602T2 (de) | 2000-05-26 | 2001-05-29 | Verfahren und vorrichtung zur effizienten verringerung von graphischen anzeigedaten für ihre übertragung mittels eines übertragungsprotokolls für niedrige bandbreiten |
DE60112107T Expired - Lifetime DE60112107T2 (de) | 2000-05-26 | 2001-05-29 | Verfahren und Vorrichtung zur effizientes Verringerung von graphischen Anzeigedaten für ihre Übertragung mittels eines Übertragungsprotokolls für niedrige Bandbreiten |
Family Applications After (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE60112103T Expired - Lifetime DE60112103T2 (de) | 2000-05-26 | 2001-05-29 | Verfahren und Vorrichtung zur effizientes Verringerung von graphischen Anzeigedaten für ihre Übertragung mittels eines Übertragungsprotokolls für niedrige Bandbreiten |
DE60109602T Expired - Lifetime DE60109602T2 (de) | 2000-05-26 | 2001-05-29 | Verfahren und vorrichtung zur effizienten verringerung von graphischen anzeigedaten für ihre übertragung mittels eines übertragungsprotokolls für niedrige bandbreiten |
DE60112107T Expired - Lifetime DE60112107T2 (de) | 2000-05-26 | 2001-05-29 | Verfahren und Vorrichtung zur effizientes Verringerung von graphischen Anzeigedaten für ihre Übertragung mittels eines Übertragungsprotokolls für niedrige Bandbreiten |
Country Status (11)
Country | Link |
---|---|
US (7) | US20020029285A1 (de) |
EP (1) | EP1285517B1 (de) |
JP (1) | JP2004501445A (de) |
KR (4) | KR100783217B1 (de) |
AU (3) | AU2001274972A1 (de) |
CA (1) | CA2408924A1 (de) |
DE (4) | DE60109631T2 (de) |
ES (4) | ES2246433T3 (de) |
HK (1) | HK1049415B (de) |
IL (3) | IL152797A0 (de) |
WO (2) | WO2001093525A2 (de) |
Families Citing this family (204)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8352400B2 (en) | 1991-12-23 | 2013-01-08 | Hoffberg Steven M | Adaptive pattern recognition based controller apparatus and method and human-factored interface therefore |
US7555529B2 (en) | 1995-11-13 | 2009-06-30 | Citrix Systems, Inc. | Interacting with software applications displayed in a web page |
US6928469B1 (en) * | 1998-12-29 | 2005-08-09 | Citrix Systems, Inc. | Apparatus and method for determining a program neighborhood for a client node in a client-server network using markup language techniques |
US7904187B2 (en) | 1999-02-01 | 2011-03-08 | Hoffberg Steven M | Internet appliance system and method |
US7127425B1 (en) * | 2000-01-14 | 2006-10-24 | H & R Block Tax Services, Inc. | System and method for providing a loan to a taxpayer based on a pre year-end tax refund |
US20020029285A1 (en) * | 2000-05-26 | 2002-03-07 | Henry Collins | Adapting graphical data, processing activity to changing network conditions |
US7117239B1 (en) | 2000-07-28 | 2006-10-03 | Axeda Corporation | Reporting the state of an apparatus to a remote computer |
US7603407B2 (en) * | 2000-08-17 | 2009-10-13 | Sun Microsystems, Inc. | Method and system for registering binary data |
US8108543B2 (en) | 2000-09-22 | 2012-01-31 | Axeda Corporation | Retrieving data from a server |
US7185014B1 (en) | 2000-09-22 | 2007-02-27 | Axeda Corporation | Retrieving data from a server |
US20030017846A1 (en) * | 2001-06-12 | 2003-01-23 | Estevez Leonardo W. | Wireless display |
JP2005501355A (ja) * | 2001-08-27 | 2005-01-13 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | キャッシュ方法 |
US7589737B2 (en) * | 2001-10-31 | 2009-09-15 | Hewlett-Packard Development Company, L.P. | System and method for communicating graphics image data over a communication network |
US7171444B2 (en) * | 2001-11-14 | 2007-01-30 | Sharp Laboratories Of America, Inc. | Remote desktop protocol compression system |
US7499030B2 (en) * | 2001-11-30 | 2009-03-03 | Texas Instruments Incorporated | Graphics initialization for wireless display devices |
US7254601B2 (en) | 2001-12-20 | 2007-08-07 | Questra Corporation | Method and apparatus for managing intelligent assets in a distributed environment |
FR2834104B1 (fr) * | 2001-12-20 | 2004-10-15 | France Telecom | Procede de transmission d'objets entre un serveur et un terminal client mettant en oeuvre une gestion de cache, systeme de transmission, serveur et terminal correspondants |
KR20030060713A (ko) * | 2002-01-11 | 2003-07-16 | (주) 씨네티아 정보통신 | 씬 클라이언트/서버시스템의 폰트캐쉬 제어방법 |
US7035091B2 (en) * | 2002-02-28 | 2006-04-25 | Accenture Global Services Gmbh | Wearable computer system and modes of operating the system |
JP4409956B2 (ja) | 2002-03-01 | 2010-02-03 | ティーファイヴ ラブズ リミテッド | 集中型対話グラフィカルアプリケーションサーバ |
US7376695B2 (en) * | 2002-03-14 | 2008-05-20 | Citrix Systems, Inc. | Method and system for generating a graphical display for a remote terminal session |
US8671213B2 (en) | 2002-03-14 | 2014-03-11 | Citrix Systems, Inc. | Methods and apparatus for generating graphical and media displays at a client |
US8135843B2 (en) * | 2002-03-22 | 2012-03-13 | Citrix Systems, Inc. | Methods and systems for providing access to an application |
KR100490401B1 (ko) * | 2002-03-26 | 2005-05-17 | 삼성전자주식회사 | TC(Thin-Client)환경에서 영상 처리 장치 및 방법 |
US20030195922A1 (en) * | 2002-04-10 | 2003-10-16 | Alcatel | SNMP trap and inform shaping mechanism |
US7178149B2 (en) | 2002-04-17 | 2007-02-13 | Axeda Corporation | XML scripting of soap commands |
CA2483601C (en) * | 2002-04-30 | 2013-10-15 | General Dynamics Advanced Information Systems, Inc. | Method and apparatus for in-line serial data encryption |
US7245665B2 (en) * | 2002-05-30 | 2007-07-17 | Matsushita Electric Industrial Co., Ltd. | Wireless remote operation system |
US20040006633A1 (en) * | 2002-07-03 | 2004-01-08 | Intel Corporation | High-speed multi-processor, multi-thread queue implementation |
US7046250B1 (en) | 2002-07-11 | 2006-05-16 | Sun Microsystems, Inc. | Caching fonts for improved bandwidth of transmitted text |
US8370420B1 (en) * | 2002-07-11 | 2013-02-05 | Citrix Systems, Inc. | Web-integrated display of locally stored content objects |
US20040008214A1 (en) * | 2002-07-11 | 2004-01-15 | Sun Microsystems, Inc., A Delaware Corporation | Tagging repeating images for improved compression |
US20040008205A1 (en) * | 2002-07-11 | 2004-01-15 | Sun Microsystems, Inc., A Delaware Corporation | Tagging single-color images for improved compression |
US20040008213A1 (en) * | 2002-07-11 | 2004-01-15 | Sun Microsystems, Inc., A Delaware Corporation | Tagging multicolor images for improved compression |
US20050102352A1 (en) * | 2002-09-24 | 2005-05-12 | Junbiao Zhang | Constrained user interface in a communications network |
US7966418B2 (en) | 2003-02-21 | 2011-06-21 | Axeda Corporation | Establishing a virtual tunnel between two computer programs |
JP2006524368A (ja) * | 2003-04-23 | 2006-10-26 | テレコム・イタリア・エッセ・ピー・アー | マルチメディア及び双方向サービスを移動端末に提供するためのクライアント・サーバー・システム及びその方法 |
US7760729B2 (en) * | 2003-05-28 | 2010-07-20 | Citrix Systems, Inc. | Policy based network address translation |
JP2007505580A (ja) * | 2003-09-12 | 2007-03-08 | サイトリックス システムズ, インコーポレイテッド | シンクライアントにおいてグラフィカルおよびメディア表示を生成するための方法および装置 |
US7877390B2 (en) * | 2003-10-20 | 2011-01-25 | International Business Machines Corporation | Systems and methods for providing autonomous persistent storage systems |
US7978716B2 (en) | 2003-11-24 | 2011-07-12 | Citrix Systems, Inc. | Systems and methods for providing a VPN solution |
US8868716B2 (en) * | 2003-11-26 | 2014-10-21 | General Electric Company | Method and apparatus for dynamically adapting image updates based on network performance |
JP2005184165A (ja) * | 2003-12-17 | 2005-07-07 | Hitachi Ltd | トラフィック制御装置およびそれを用いたサービスシステム |
US7631071B2 (en) * | 2004-01-23 | 2009-12-08 | Microsoft Corporation | Mechanism for ensuring processing of messages received while in recovery mode |
KR100574502B1 (ko) * | 2004-02-06 | 2006-04-27 | 삼성전자주식회사 | 클라이언트에 실행된 윈도우의 상태에 따라데이터전송률을 조정하는 홈네트워크 시스템 및데이터전송률 조정방법 |
US7757074B2 (en) | 2004-06-30 | 2010-07-13 | Citrix Application Networking, Llc | System and method for establishing a virtual private network |
US8739274B2 (en) | 2004-06-30 | 2014-05-27 | Citrix Systems, Inc. | Method and device for performing integrated caching in a data communication network |
US8495305B2 (en) | 2004-06-30 | 2013-07-23 | Citrix Systems, Inc. | Method and device for performing caching of dynamically generated objects in a data communication network |
WO2006017198A2 (en) * | 2004-07-08 | 2006-02-16 | Actuality Systems, Inc. | Architecture for rendering graphics on output devices |
US7287139B2 (en) * | 2004-07-23 | 2007-10-23 | International Business Machines Corporation | Maintenance of persistent data using bitmaps |
US7724657B2 (en) | 2004-07-23 | 2010-05-25 | Citrix Systems, Inc. | Systems and methods for communicating a lossy protocol via a lossless protocol |
ATE535078T1 (de) * | 2004-07-23 | 2011-12-15 | Citrix Systems Inc | Verfahren und system zur sicherung von zugriff aus der ferne auf private netze |
CN101076992A (zh) * | 2004-08-13 | 2007-11-21 | 塞特里克斯系统公司 | 在多个远程访问服务器之间维持事务完整性的方法 |
US7483963B2 (en) * | 2004-08-20 | 2009-01-27 | Research In Motion Limited | Method and system for configuring a client on host devices by utilizing an interface between a configuration application and host device drivers on a configuring device |
US7774789B1 (en) | 2004-10-28 | 2010-08-10 | Wheeler Thomas T | Creating a proxy object and providing information related to a proxy object |
US7823169B1 (en) | 2004-10-28 | 2010-10-26 | Wheeler Thomas T | Performing operations by a first functionality within a second functionality in a same or in a different programming language |
US8266631B1 (en) | 2004-10-28 | 2012-09-11 | Curen Software Enterprises, L.L.C. | Calling a second functionality by a first functionality |
US20070055386A1 (en) * | 2004-11-03 | 2007-03-08 | Rockwell Automation Technologies, Inc. | Abstracted display building method and system |
US7589731B2 (en) * | 2004-11-15 | 2009-09-15 | Hewlett-Packard Development Company, L.P. | Graphics systems and methods |
US7716683B2 (en) | 2004-12-30 | 2010-05-11 | Graphics Properties Holdings, Inc. | Distributed graphics processing apparatus and method |
US8549149B2 (en) | 2004-12-30 | 2013-10-01 | Citrix Systems, Inc. | Systems and methods for providing client-side accelerated access to remote applications via TCP multiplexing |
US8706877B2 (en) | 2004-12-30 | 2014-04-22 | Citrix Systems, Inc. | Systems and methods for providing client-side dynamic redirection to bypass an intermediary |
US8954595B2 (en) | 2004-12-30 | 2015-02-10 | Citrix Systems, Inc. | Systems and methods for providing client-side accelerated access to remote applications via TCP buffering |
US7810089B2 (en) | 2004-12-30 | 2010-10-05 | Citrix Systems, Inc. | Systems and methods for automatic installation and execution of a client-side acceleration program |
US8700695B2 (en) | 2004-12-30 | 2014-04-15 | Citrix Systems, Inc. | Systems and methods for providing client-side accelerated access to remote applications via TCP pooling |
US8145777B2 (en) | 2005-01-14 | 2012-03-27 | Citrix Systems, Inc. | Method and system for real-time seeking during playback of remote presentation protocols |
US20060159432A1 (en) * | 2005-01-14 | 2006-07-20 | Citrix Systems, Inc. | System and methods for automatic time-warped playback in rendering a recorded computer session |
US8230096B2 (en) * | 2005-01-14 | 2012-07-24 | Citrix Systems, Inc. | Methods and systems for generating playback instructions for playback of a recorded computer session |
US8340130B2 (en) * | 2005-01-14 | 2012-12-25 | Citrix Systems, Inc. | Methods and systems for generating playback instructions for rendering of a recorded computer session |
US8200828B2 (en) * | 2005-01-14 | 2012-06-12 | Citrix Systems, Inc. | Systems and methods for single stack shadowing |
US8296441B2 (en) | 2005-01-14 | 2012-10-23 | Citrix Systems, Inc. | Methods and systems for joining a real-time session of presentation layer protocol data |
US8935316B2 (en) | 2005-01-14 | 2015-01-13 | Citrix Systems, Inc. | Methods and systems for in-session playback on a local machine of remotely-stored and real time presentation layer protocol data |
US7831728B2 (en) * | 2005-01-14 | 2010-11-09 | Citrix Systems, Inc. | Methods and systems for real-time seeking during real-time playback of a presentation layer protocol data stream |
US7711695B2 (en) * | 2005-01-18 | 2010-05-04 | Oracle International Corporation | Reducing memory used by metadata for duplicate user defined types |
CN102123178B (zh) | 2005-01-24 | 2014-04-09 | 茨特里克斯系统公司 | 在网络中对动态产生的对象执行缓存的系统和方法 |
US8255456B2 (en) | 2005-12-30 | 2012-08-28 | Citrix Systems, Inc. | System and method for performing flash caching of dynamically generated objects in a data communication network |
US8423673B2 (en) * | 2005-03-14 | 2013-04-16 | Citrix Systems, Inc. | Method and apparatus for updating a graphical display in a distributed processing environment using compression |
US8171169B2 (en) * | 2005-03-14 | 2012-05-01 | Citrix Systems, Inc. | Method and apparatus for updating a graphical display in a distributed processing environment |
US7861212B1 (en) | 2005-03-22 | 2010-12-28 | Dubagunta Saikumar V | System, method, and computer readable medium for integrating an original application with a remote application |
US8578349B1 (en) | 2005-03-23 | 2013-11-05 | Curen Software Enterprises, L.L.C. | System, method, and computer readable medium for integrating an original language application with a target language application |
US11733958B2 (en) | 2005-05-05 | 2023-08-22 | Iii Holdings 1, Llc | Wireless mesh-enabled system, host device, and method for use therewith |
US8200796B1 (en) | 2005-05-05 | 2012-06-12 | Digital Display Innovations, Llc | Graphics display system for multiple remote terminals |
US8019883B1 (en) | 2005-05-05 | 2011-09-13 | Digital Display Innovations, Llc | WiFi peripheral mode display system |
US7847755B1 (en) | 2005-05-23 | 2010-12-07 | Glance Networks | Method and apparatus for the identification and selective encoding of changed host display information |
US8074248B2 (en) | 2005-07-26 | 2011-12-06 | Activevideo Networks, Inc. | System and method for providing video content associated with a source image to a television in a communication network |
US7844442B2 (en) * | 2005-08-16 | 2010-11-30 | Exent Technologies, Ltd. | System and method for providing a remote user interface for an application executing on a computing device |
US20110157196A1 (en) * | 2005-08-16 | 2011-06-30 | Exent Technologies, Ltd. | Remote gaming features |
US8527563B2 (en) | 2005-09-12 | 2013-09-03 | Microsoft Corporation | Remoting redirection layer for graphics device interface |
US8191008B2 (en) | 2005-10-03 | 2012-05-29 | Citrix Systems, Inc. | Simulating multi-monitor functionality in a single monitor environment |
US7924884B2 (en) * | 2005-12-20 | 2011-04-12 | Citrix Systems, Inc. | Performance logging using relative differentials and skip recording |
US7921184B2 (en) * | 2005-12-30 | 2011-04-05 | Citrix Systems, Inc. | System and method for performing flash crowd caching of dynamically generated objects in a data communication network |
US8301839B2 (en) | 2005-12-30 | 2012-10-30 | Citrix Systems, Inc. | System and method for performing granular invalidation of cached dynamically generated objects in a data communication network |
US7783985B2 (en) | 2006-01-04 | 2010-08-24 | Citrix Systems, Inc. | Systems and methods for transferring data between computing devices |
JP4742888B2 (ja) * | 2006-01-27 | 2011-08-10 | カシオ計算機株式会社 | サーバー装置、クライアント装置およびプログラム |
US8284759B2 (en) * | 2006-01-31 | 2012-10-09 | Alcatel Lucent | System and method for compressing voice over IP headers |
BRPI0708569B1 (pt) | 2006-03-07 | 2019-08-20 | Thomson Licensing | Dispositivo de comunicação portátil e base adaptada para comunicar-se com um dispositivo de comunicação portátil |
US7958501B2 (en) * | 2006-03-31 | 2011-06-07 | Sap Ag | System to disclose the internal structure of persistent database objects |
US8677252B2 (en) * | 2006-04-14 | 2014-03-18 | Citrix Online Llc | Systems and methods for displaying to a presenter visual feedback corresponding to visual changes received by viewers |
JP4577267B2 (ja) * | 2006-05-17 | 2010-11-10 | 株式会社日立製作所 | シンクライアントシステム |
US7810140B1 (en) | 2006-05-23 | 2010-10-05 | Lipari Paul A | System, method, and computer readable medium for processing a message in a transport |
JP4916227B2 (ja) * | 2006-06-14 | 2012-04-11 | キヤノン株式会社 | デバイスの管理装置及びその管理装置の制御方法 |
US7747953B2 (en) | 2006-06-15 | 2010-06-29 | Citrix Online, Llc | Methods and systems for receiving feedback from a scalable number of participants of an on-line presentation |
US7844759B1 (en) | 2006-07-28 | 2010-11-30 | Cowin Gregory L | System, method, and computer readable medium for processing a message queue |
US8484718B2 (en) * | 2006-08-03 | 2013-07-09 | Citrix System, Inc. | Systems and methods for enabling assured records using fine grained auditing of virtual private network traffic |
US8493858B2 (en) | 2006-08-22 | 2013-07-23 | Citrix Systems, Inc | Systems and methods for providing dynamic connection spillover among virtual servers |
US8312120B2 (en) * | 2006-08-22 | 2012-11-13 | Citrix Systems, Inc. | Systems and methods for providing dynamic spillover of virtual servers based on bandwidth |
US7974478B2 (en) * | 2006-08-24 | 2011-07-05 | Dell Products L.P. | Methods and apparatus for reducing storage size |
US7885988B2 (en) * | 2006-08-24 | 2011-02-08 | Dell Products L.P. | Methods and apparatus for reducing storage size |
US7791559B2 (en) | 2006-09-14 | 2010-09-07 | Citrix Systems, Inc. | System and method for multiple display support in remote access software |
US8054241B2 (en) | 2006-09-14 | 2011-11-08 | Citrix Systems, Inc. | Systems and methods for multiple display support in remote access software |
US20100146139A1 (en) * | 2006-09-29 | 2010-06-10 | Avinity Systems B.V. | Method for streaming parallel user sessions, system and computer software |
US8370479B2 (en) | 2006-10-03 | 2013-02-05 | Axeda Acquisition Corporation | System and method for dynamically grouping devices based on present device conditions |
US7660780B1 (en) | 2006-12-22 | 2010-02-09 | Patoskie John P | Moving an agent from a first execution environment to a second execution environment |
US7949626B1 (en) | 2006-12-22 | 2011-05-24 | Curen Software Enterprises, L.L.C. | Movement of an agent that utilizes a compiled set of canonical rules |
US7860517B1 (en) | 2006-12-22 | 2010-12-28 | Patoskie John P | Mobile device tracking using mobile agent location breadcrumbs |
US7970724B1 (en) | 2006-12-22 | 2011-06-28 | Curen Software Enterprises, L.L.C. | Execution of a canonical rules based agent |
US7702603B1 (en) * | 2006-12-22 | 2010-04-20 | Hauser Robert R | Constructing an agent that utilizes a compiled set of canonical rules |
US7702602B1 (en) | 2006-12-22 | 2010-04-20 | Hauser Robert R | Moving and agent with a canonical rule from one device to a second device |
US8200603B1 (en) | 2006-12-22 | 2012-06-12 | Curen Software Enterprises, L.L.C. | Construction of an agent that utilizes as-needed canonical rules |
US7698243B1 (en) * | 2006-12-22 | 2010-04-13 | Hauser Robert R | Constructing an agent in a first execution environment using canonical rules |
US8423496B1 (en) | 2006-12-22 | 2013-04-16 | Curen Software Enterprises, L.L.C. | Dynamic determination of needed agent rules |
US7702604B1 (en) * | 2006-12-22 | 2010-04-20 | Hauser Robert R | Constructing an agent that utilizes supplied rules and rules resident in an execution environment |
US8132179B1 (en) | 2006-12-22 | 2012-03-06 | Curen Software Enterprises, L.L.C. | Web service interface for mobile agents |
US9311141B2 (en) | 2006-12-22 | 2016-04-12 | Callahan Cellular L.L.C. | Survival rule usage by software agents |
US7660777B1 (en) * | 2006-12-22 | 2010-02-09 | Hauser Robert R | Using data narrowing rule for data packaging requirement of an agent |
US7664721B1 (en) * | 2006-12-22 | 2010-02-16 | Hauser Robert R | Moving an agent from a first execution environment to a second execution environment using supplied and resident rules |
US8065397B2 (en) | 2006-12-26 | 2011-11-22 | Axeda Acquisition Corporation | Managing configurations of distributed devices |
US8155202B2 (en) | 2007-01-12 | 2012-04-10 | Activevideo Networks, Inc. | System and method for encoding scrolling raster images |
US9826197B2 (en) | 2007-01-12 | 2017-11-21 | Activevideo Networks, Inc. | Providing television broadcasts over a managed network and interactive content over an unmanaged network to a client device |
US7584294B2 (en) * | 2007-03-12 | 2009-09-01 | Citrix Systems, Inc. | Systems and methods for prefetching objects for caching using QOS |
US20080228715A1 (en) * | 2007-03-12 | 2008-09-18 | Terabyte Media, Llc | Apparatus and method for distributed information retrieval and processing |
US8074028B2 (en) | 2007-03-12 | 2011-12-06 | Citrix Systems, Inc. | Systems and methods of providing a multi-tier cache |
US7809818B2 (en) * | 2007-03-12 | 2010-10-05 | Citrix Systems, Inc. | Systems and method of using HTTP head command for prefetching |
US8504775B2 (en) | 2007-03-12 | 2013-08-06 | Citrix Systems, Inc | Systems and methods of prefreshening cached objects based on user's current web page |
US7783757B2 (en) * | 2007-03-12 | 2010-08-24 | Citrix Systems, Inc. | Systems and methods of revalidating cached objects in parallel with request for object |
US8037126B2 (en) * | 2007-03-12 | 2011-10-11 | Citrix Systems, Inc. | Systems and methods of dynamically checking freshness of cached objects based on link status |
US8103783B2 (en) | 2007-03-12 | 2012-01-24 | Citrix Systems, Inc. | Systems and methods of providing security and reliability to proxy caches |
US7720936B2 (en) | 2007-03-12 | 2010-05-18 | Citrix Systems, Inc. | Systems and methods of freshening and prefreshening a DNS cache |
US8701010B2 (en) | 2007-03-12 | 2014-04-15 | Citrix Systems, Inc. | Systems and methods of using the refresh button to determine freshness policy |
US9264483B2 (en) | 2007-07-18 | 2016-02-16 | Hammond Development International, Inc. | Method and system for enabling a communication device to remotely execute an application |
US8044955B1 (en) | 2007-08-31 | 2011-10-25 | Adobe Systems Incorporated | Dynamic tessellation spreading for resolution-independent GPU anti-aliasing and rendering |
US7952580B1 (en) | 2007-08-31 | 2011-05-31 | Adobe Systems Incorporated | Classification of exterior and interior triangles for artwork rendering |
US7928984B1 (en) | 2007-08-31 | 2011-04-19 | Adobe Systems Incorporated | Efficient data packaging for rendering bézier curves on a GPU |
US8068106B1 (en) | 2007-08-31 | 2011-11-29 | Adobe Systems Incorporated | Rendering cubic Bézier curves as quadratic curves using a GPU |
US20090067629A1 (en) * | 2007-09-06 | 2009-03-12 | Paltronics, Inc. | Table-based encryption/decryption techniques for gaming networks, and gaming networks incorporating the same |
US8819288B2 (en) * | 2007-09-14 | 2014-08-26 | Microsoft Corporation | Optimized data stream compression using data-dependent chunking |
US8904044B2 (en) * | 2007-09-28 | 2014-12-02 | International Business Machines Corporation | Adapting compression techniques over data based on context |
US20090094263A1 (en) * | 2007-10-04 | 2009-04-09 | Microsoft Corporation | Enhanced utilization of network bandwidth for transmission of structured data |
US7868887B1 (en) | 2007-10-18 | 2011-01-11 | Adobe Systems Incorporated | Rendering rational quadratic Bézier curves on a GPU |
US8190707B2 (en) | 2007-10-20 | 2012-05-29 | Citrix Systems, Inc. | System and method for transferring data among computing environments |
CN101464785B (zh) * | 2007-12-17 | 2010-12-08 | 联想(北京)有限公司 | 基于wddm的屏幕获取方法及带多显示器的计算机系统 |
EP2293192B1 (de) | 2008-01-27 | 2021-03-31 | Citrix Systems, Inc. | Verfahren und systeme zur löschung dreidimensionaler graphiken |
US9161063B2 (en) * | 2008-02-27 | 2015-10-13 | Ncomputing, Inc. | System and method for low bandwidth display information transport |
US8484291B1 (en) | 2008-04-02 | 2013-07-09 | Glance Networks, Inc. | Method and apparatus for selecting commands for transmission from an updated queue |
EP2277317B1 (de) * | 2008-05-19 | 2021-01-27 | Citrix Systems, Inc. | Systeme und verfahren für erweiterte bildcodierung |
JP5315862B2 (ja) * | 2008-08-29 | 2013-10-16 | カシオ計算機株式会社 | サーバ装置、クライアント装置、およびプログラム |
US8386443B2 (en) * | 2008-10-06 | 2013-02-26 | Dell Products L.P. | Representing and storing an optimized file system using a system of symlinks, hardlinks and file archives |
US8589579B2 (en) | 2008-10-08 | 2013-11-19 | Citrix Systems, Inc. | Systems and methods for real-time endpoint application flow control with network structure component |
US8260926B2 (en) * | 2008-11-25 | 2012-09-04 | Citrix Systems, Inc. | Systems and methods for GSLB site persistence |
US8352561B1 (en) | 2009-07-24 | 2013-01-08 | Google Inc. | Electronic communication reminder technology |
US8751844B2 (en) * | 2009-09-24 | 2014-06-10 | Citrix Systems, Inc. | Systems and methods for attributing an amount of power consumption to a workload |
US8171154B2 (en) * | 2009-09-29 | 2012-05-01 | Net Power And Light, Inc. | Method and system for low-latency transfer protocol |
US8489725B2 (en) * | 2010-07-16 | 2013-07-16 | Research In Motion Limited | Persisting file system information on mobile devices |
GB2483166B (en) | 2010-08-27 | 2013-10-23 | Fxi Technologies As | Electronic devices |
WO2012037504A1 (en) * | 2010-09-18 | 2012-03-22 | Ciinow, Inc. | A method and mechanism for delivering applications over a wan |
JP5866125B2 (ja) | 2010-10-14 | 2016-02-17 | アクティブビデオ ネットワークス, インコーポレイテッド | ケーブルテレビシステムを使用したビデオ装置間のデジタルビデオストリーミング |
US8907987B2 (en) | 2010-10-20 | 2014-12-09 | Ncomputing Inc. | System and method for downsizing video data for memory bandwidth optimization |
KR101401380B1 (ko) * | 2010-11-04 | 2014-05-30 | 한국전자통신연구원 | 원격 렌더링 기반의 3d 응용프로그램 실행 장치 및 그 방법 |
US9204203B2 (en) | 2011-04-07 | 2015-12-01 | Activevideo Networks, Inc. | Reduction of latency in video distribution networks using adaptive bit rates |
US8863136B2 (en) * | 2011-05-19 | 2014-10-14 | International Business Machines Corporation | Lock control in multiple processor systems |
US9351028B2 (en) * | 2011-07-14 | 2016-05-24 | Qualcomm Incorporated | Wireless 3D streaming server |
US9032467B2 (en) | 2011-08-02 | 2015-05-12 | Google Inc. | Method and mechanism for efficiently delivering visual data across a network |
US8615159B2 (en) | 2011-09-20 | 2013-12-24 | Citrix Systems, Inc. | Methods and systems for cataloging text in a recorded session |
US9747334B2 (en) * | 2011-09-30 | 2017-08-29 | Teradata Us, Inc. | Managing excess capacity of database systems in a capacity controlled computing environment |
US10042674B2 (en) * | 2011-09-30 | 2018-08-07 | Teradata Us, Inc. | Regulating capacity and managing services of computing environments and systems that include a database |
US8681813B2 (en) | 2011-11-29 | 2014-03-25 | Wyse Technology L.L.C. | Bandwidth optimization for remote desktop protocol |
EP2815582B1 (de) | 2012-01-09 | 2019-09-04 | ActiveVideo Networks, Inc. | Wiedergabe einer interaktiven vereinfachten benutzerschnittstelle auf einem fernsehgerät |
US9123084B2 (en) | 2012-04-12 | 2015-09-01 | Activevideo Networks, Inc. | Graphical application integration with MPEG objects |
US20130297725A1 (en) * | 2012-05-02 | 2013-11-07 | Elwha Llc | Control of Transmission to a Target Device with a Cloud-Based Architecture |
US10250638B2 (en) | 2012-05-02 | 2019-04-02 | Elwha Llc | Control of transmission to a target device with a cloud-based architecture |
US9148331B2 (en) * | 2012-05-02 | 2015-09-29 | Elwha Llc | Control of transmission to a target device with a cloud-based architecture |
WO2014145921A1 (en) | 2013-03-15 | 2014-09-18 | Activevideo Networks, Inc. | A multiple-mode system and method for providing user selectable video content |
US9219922B2 (en) | 2013-06-06 | 2015-12-22 | Activevideo Networks, Inc. | System and method for exploiting scene graph information in construction of an encoded video sequence |
WO2014197879A1 (en) | 2013-06-06 | 2014-12-11 | Activevideo Networks, Inc. | Overlay rendering of user interface onto source video |
US9294785B2 (en) | 2013-06-06 | 2016-03-22 | Activevideo Networks, Inc. | System and method for exploiting scene graph information in construction of an encoded video sequence |
US10075630B2 (en) | 2013-07-03 | 2018-09-11 | HJ Laboratories, LLC | Providing real-time, personal services by accessing components on a mobile device |
EP3084622A4 (de) * | 2013-12-20 | 2018-02-28 | Intel Corporation | Ausführung von abladung |
US10410312B2 (en) * | 2014-01-21 | 2019-09-10 | Elektraglide Ltd | Method and system for interactive graphics streaming |
US10915984B2 (en) * | 2014-01-21 | 2021-02-09 | Elektraglide Ltd | Method and system for interactive graphics streaming |
US20150207742A1 (en) * | 2014-01-22 | 2015-07-23 | Wipro Limited | Methods for optimizing data for transmission and devices thereof |
CN104135452B (zh) * | 2014-08-08 | 2018-05-01 | 福建三元达网络技术有限公司 | 一种iq数据同步压缩还原算法及装置 |
JP6293627B2 (ja) * | 2014-09-19 | 2018-03-14 | アンリツ株式会社 | 画像表示装置及び画像表示方法 |
US9785332B1 (en) * | 2014-12-05 | 2017-10-10 | Amazon Technologies, Inc. | Conserving processing resources by controlling updates to damaged tiles of a content page |
US10546038B2 (en) | 2014-12-08 | 2020-01-28 | Amazon Technologies, Inc. | Intelligent browser-based display tiling |
KR102287948B1 (ko) * | 2015-02-09 | 2021-08-09 | 삼성전자주식회사 | 애니메이션 처리 장치 및 방법 |
US10083096B1 (en) * | 2015-12-15 | 2018-09-25 | Workday, Inc. | Managing data with restoring from purging |
CN111708533B (zh) * | 2016-08-31 | 2023-01-06 | 华为云计算技术有限公司 | 在应用瘦客户端中设置鼠标显示状态的方法及装置 |
US10701176B1 (en) * | 2016-09-23 | 2020-06-30 | Amazon Technologies, Inc. | Messaging using a hash ring with host groups |
US10657599B2 (en) | 2016-10-14 | 2020-05-19 | Allstate Insurance Company | Virtual collaboration |
US11463654B1 (en) * | 2016-10-14 | 2022-10-04 | Allstate Insurance Company | Bilateral communication in a login-free environment |
US10742812B1 (en) | 2016-10-14 | 2020-08-11 | Allstate Insurance Company | Bilateral communication in a login-free environment |
US11271828B2 (en) | 2018-11-15 | 2022-03-08 | Citrix Systems, Inc. | Real-time scalable virtual session and network analytics |
US11489779B2 (en) * | 2019-05-20 | 2022-11-01 | Citrix Systems, Inc. | Systems and methods for managing streams of packets via intermediary devices |
CN111031007A (zh) * | 2019-11-22 | 2020-04-17 | 珠海豹趣科技有限公司 | 电子白板间的通信控制方法、装置及服务器 |
Family Cites Families (169)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US32632A (en) * | 1861-06-25 | Water-elevator | ||
US73061A (en) * | 1868-01-07 | Improvement in harrows | ||
US35596A (en) * | 1862-06-17 | Improvement in envelopes for sewing-needles | ||
US29285A (en) * | 1860-07-24 | A M Karr | Improvement in mole-plows | |
US3596257A (en) * | 1969-09-17 | 1971-07-27 | Burroughs Corp | Method and apparatus for allocating small memory spaces to a computer program |
US4013828A (en) | 1976-02-20 | 1977-03-22 | Bell Telephone Laboratories, Incorporated | Method and arrangement for reducing the bandwidth and/or time required to transmit a dithered image |
US4410916A (en) | 1979-08-24 | 1983-10-18 | Compression Labs, Inc. | Dual mode facsimile coding system and method |
DE2939411C2 (de) * | 1979-09-28 | 1982-09-02 | Siemens AG, 1000 Berlin und 8000 München | Datenverarbeitungsanlage mit virtueller Speicheradressierung |
US4322795A (en) * | 1980-01-24 | 1982-03-30 | Honeywell Information Systems Inc. | Cache memory utilizing selective clearing and least recently used updating |
US4394732A (en) * | 1980-11-14 | 1983-07-19 | Sperry Corporation | Cache/disk subsystem trickle |
US4463424A (en) * | 1981-02-19 | 1984-07-31 | International Business Machines Corporation | Method for dynamically allocating LRU/MRU managed memory among concurrent sequential processes |
US4562423A (en) | 1981-10-15 | 1985-12-31 | Codex Corporation | Data compression |
US4430712A (en) * | 1981-11-27 | 1984-02-07 | Storage Technology Corporation | Adaptive domain partitioning of cache memory space |
US4503501A (en) * | 1981-11-27 | 1985-03-05 | Storage Technology Corporation | Adaptive domain partitioning of cache memory space |
USRE32632E (en) * | 1982-07-19 | 1988-03-29 | Apple Computer, Inc. | Display system |
JPS5949071A (ja) * | 1982-09-13 | 1984-03-21 | Dainippon Screen Mfg Co Ltd | 図形輪郭デ−タ圧縮方法 |
US4499499A (en) | 1982-12-29 | 1985-02-12 | International Business Machines Corporation | Method for identification and compression of facsimile symbols in text processing systems |
US4545016A (en) | 1983-01-07 | 1985-10-01 | Tandy Corporation | Memory management system |
DE3483489D1 (de) * | 1983-04-13 | 1990-12-06 | Nec Corp | Speicherzugriffseinrichtung in einem datenverarbeitungssystem. |
JP2785821B2 (ja) | 1983-10-07 | 1998-08-13 | ソニー株式会社 | デイジタル信号発生回路 |
US4796003A (en) * | 1984-06-28 | 1989-01-03 | American Telephone And Telegraph Company | Data compaction |
GB2172127B (en) | 1985-03-06 | 1988-10-12 | Ferranti Plc | Data compression system |
JPS62282328A (ja) * | 1986-02-21 | 1987-12-08 | Hitachi Ltd | 多重画面制御方式 |
US4899149A (en) | 1986-02-28 | 1990-02-06 | Gary Kahan | Method of and apparatus for decoding Huffman or variable-length coees |
US4862392A (en) * | 1986-03-07 | 1989-08-29 | Star Technologies, Inc. | Geometry processor for graphics display system |
US4937036A (en) * | 1986-04-28 | 1990-06-26 | Xerox Corporation | Concurrent display of data from two different display processors and user interface therefore |
JP2608400B2 (ja) * | 1986-06-16 | 1997-05-07 | 富士写真フイルム株式会社 | 圧縮処理を経た画像データからの画像再構成方法 |
US4862167A (en) | 1987-02-24 | 1989-08-29 | Hayes Microcomputer Products, Inc. | Adaptive data compression method and apparatus |
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 |
US4992954A (en) * | 1987-08-05 | 1991-02-12 | Hitachi, Ltd. | Method of storing character patterns and character pattern utilization system |
US4928247A (en) * | 1987-08-13 | 1990-05-22 | Digital Equipment Corporation | Method and apparatus for the continuous and asynchronous traversal and processing of graphics data structures |
US4903218A (en) * | 1987-08-13 | 1990-02-20 | Digital Equipment Corporation | Console emulation for a graphics workstation |
US4870662A (en) | 1987-12-01 | 1989-09-26 | Concord Data Systems, Inc. | System and method for compressing transmitted or stored data |
JPH01246656A (ja) | 1988-03-29 | 1989-10-02 | Nec Corp | プロセッサ間共有メモリ管理方式 |
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 |
CA1337132C (en) * | 1988-07-15 | 1995-09-26 | Robert Filepp | Reception system for an interactive computer network and method of operation |
JP2790815B2 (ja) * | 1988-08-10 | 1998-08-27 | 株式会社リコー | 画像データ圧縮方法 |
US4905141A (en) * | 1988-10-25 | 1990-02-27 | International Business Machines Corporation | Partitioned cache memory with partition look-aside table (PLAT) for early partition assignment identification |
US5126739A (en) * | 1989-01-13 | 1992-06-30 | Stac Electronics | Data compression apparatus and method |
US5016009A (en) * | 1989-01-13 | 1991-05-14 | Stac, Inc. | Data compression apparatus and method |
EP0389151A3 (de) * | 1989-03-22 | 1992-06-03 | International Business Machines Corporation | System und Verfahren für die Verwaltung eines verteilten Cache-Speichers |
US5394531A (en) * | 1989-04-03 | 1995-02-28 | International Business Machines Corporation | Dynamic storage allocation system for a prioritized cache |
KR930003126B1 (ko) * | 1989-04-20 | 1993-04-19 | 가부시기가이샤 도시바 | 곡선정합에 있어서 형상을 표시하는 직선쇼트벡터의 접속상태를 판정하는 방법 및 시스템 |
US5305440A (en) * | 1989-05-15 | 1994-04-19 | International Business Machines Corporation | File extension by clients in a distributed data processing system |
JP2858795B2 (ja) * | 1989-07-14 | 1999-02-17 | 株式会社日立製作所 | 実記憶割り当て方法 |
ATE167582T1 (de) | 1989-09-08 | 1998-07-15 | Digital Equipment Corp | Privatspeicher für fäden in einem multifaden digitalen datenverarbeitungssystem |
JP2805096B2 (ja) * | 1989-10-31 | 1998-09-30 | ソニー株式会社 | ディジタル変調方法及び復調方法 |
US5119319A (en) * | 1989-12-14 | 1992-06-02 | Options Unlimited Research Corp. | Full-duplex video communication system |
US5077669A (en) * | 1989-12-27 | 1991-12-31 | International Business Machines Corporation | Method for quasi-key search within a national language support (nls) data processing system |
US5001478A (en) * | 1989-12-28 | 1991-03-19 | International Business Machines Corporation | Method of encoding compressed data |
US5309555A (en) * | 1990-05-15 | 1994-05-03 | International Business Machines Corporation | Realtime communication of hand drawn images in a multiprogramming window environment |
US5269003A (en) | 1990-05-24 | 1993-12-07 | Apple Computer, Inc. | Memory architecture for storing twisted pixels |
US5049881A (en) * | 1990-06-18 | 1991-09-17 | Intersecting Concepts, Inc. | Apparatus and method for very high data rate-compression incorporating lossless data compression and expansion utilizing a hashing technique |
EP0463874A2 (de) * | 1990-06-29 | 1992-01-02 | Digital Equipment Corporation | Cache-Anordnung für ein Dateisystem in einem digitalen Datenverarbeitungssystem |
US5051745A (en) * | 1990-08-21 | 1991-09-24 | Pkware, Inc. | String searcher, and compressor using same |
JP3189276B2 (ja) * | 1990-09-12 | 2001-07-16 | ブラザー工業株式会社 | データ変換装置 |
JPH0799508B2 (ja) | 1990-10-15 | 1995-10-25 | インターナショナル・ビジネス・マシーンズ・コーポレイション | キャッシュ記憶機構を動的に区分する方法およびキャッシュ記憶機構システム |
US5544317A (en) * | 1990-11-20 | 1996-08-06 | Berg; David A. | Method for continuing transmission of commands for interactive graphics presentation in a computer network |
US5241625A (en) * | 1990-11-27 | 1993-08-31 | Farallon Computing, Inc. | Screen image sharing among heterogeneous computers |
US5339411A (en) | 1990-12-21 | 1994-08-16 | Pitney Bowes Inc. | Method for managing allocation of memory space |
DE69126414T2 (de) * | 1990-12-26 | 1997-10-30 | Canon Kk | Multimedia-Kommunikationsapparat |
US5161015A (en) | 1990-12-31 | 1992-11-03 | Zenith Electronics Corporation | System for peaking a video signal with a control signal representative of the perceptual nature of blocks of video pixels |
US5164727A (en) | 1991-04-30 | 1992-11-17 | Regents Of The Unversity Of California | Optimal decoding method and apparatus for data acquisition applications of sigma delta modulators |
CA2069355C (en) | 1991-06-07 | 1998-10-06 | Robert C. Pike | Global user interface |
US6643656B2 (en) * | 1991-07-31 | 2003-11-04 | Richard Esty Peterson | Computerized information retrieval system |
US5315698A (en) * | 1991-08-21 | 1994-05-24 | Digital Equipment Corporation | Method and apparatus for varying command length in a computer graphics system |
US5321806A (en) * | 1991-08-21 | 1994-06-14 | Digital Equipment Corporation | Method and apparatus for transmitting graphics command in a computer graphics system |
US5140321A (en) * | 1991-09-04 | 1992-08-18 | Prime Computer, Inc. | Data compression/decompression method and apparatus |
CA2083634C (en) * | 1991-12-30 | 1999-01-19 | Hung Ping Wong | Method and apparatus for mapping page table trees into virtual address space for address translation |
GB9205774D0 (en) | 1992-03-17 | 1992-04-29 | Int Computers Ltd | Computer security system |
US5351129A (en) | 1992-03-24 | 1994-09-27 | Rgb Technology D/B/A Rgb Spectrum | Video multiplexor-encoder and decoder-converter |
JPH06511582A (ja) | 1992-07-24 | 1994-12-22 | マイクロソフト コーポレイション | メモリを割り当てそして解放するコンピュータ方法及びシステム |
JPH0659982A (ja) | 1992-08-10 | 1994-03-04 | Hitachi Ltd | 仮想記憶制御方法および装置 |
US5406279A (en) * | 1992-09-02 | 1995-04-11 | Cirrus Logic, Inc. | General purpose, hash-based technique for single-pass lossless data compression |
US5434992A (en) * | 1992-09-04 | 1995-07-18 | International Business Machines Corporation | Method and means for dynamically partitioning cache into a global and data type subcache hierarchy from a real time reference trace |
US5491808A (en) * | 1992-09-30 | 1996-02-13 | Conner Peripherals, Inc. | Method for tracking memory allocation in network file server |
DE69324204T2 (de) * | 1992-10-22 | 1999-12-23 | Cabletron Systems Inc | Aufsuchen von Adressen bei Paketübertragung mittels Hashing und eines inhaltsadressierten Speichers |
US5537551A (en) * | 1992-11-18 | 1996-07-16 | Denenberg; Jeffrey N. | Data compression method for use in a computerized informational and transactional network |
US5455576A (en) | 1992-12-23 | 1995-10-03 | Hewlett Packard Corporation | Apparatus and methods for Lempel Ziv data compression with improved management of multiple dictionaries in content addressable memory |
US5469540A (en) | 1993-01-27 | 1995-11-21 | Apple Computer, Inc. | Method and apparatus for generating and displaying multiple simultaneously-active windows |
IL104568A (en) * | 1993-01-31 | 1995-12-31 | Age Computational Graphics Ltd | Method and system for generating amplified output signals |
CA2127053C (en) * | 1993-07-02 | 2005-01-04 | Makoto Furuhashi | Method and apparatus for time-sharing cpu system bus in image generation system |
US5521597A (en) * | 1993-08-02 | 1996-05-28 | Mircosoft Corporation | Data compression for network transport |
WO1995012165A1 (en) | 1993-10-22 | 1995-05-04 | Gestalt Technologies, Incorporated | Distributed management in a partitioned memory system |
US5384568A (en) * | 1993-12-02 | 1995-01-24 | Bell Communications Research, Inc. | Data compression |
US5515508A (en) * | 1993-12-17 | 1996-05-07 | Taligent, Inc. | Client server system and method of operation including a dynamically configurable protocol stack |
US5473742A (en) | 1994-02-22 | 1995-12-05 | Paragraph International | Method and apparatus for representing image data using polynomial approximation method and iterative transformation-reparametrization technique |
US5537635A (en) * | 1994-04-04 | 1996-07-16 | International Business Machines Corporation | Method and system for assignment of reclaim vectors in a partitioned cache with a virtual minimum partition size |
US5754187A (en) | 1994-05-16 | 1998-05-19 | Agfa Division, Bayer Corporation | Method for data compression of digital data to produce a scaleable font database |
US5734388A (en) | 1994-05-16 | 1998-03-31 | Agfa Division, Bayer Corporation | Method and apparatus for data compression of digital data to produce a scaleable font database |
US5729710A (en) * | 1994-06-22 | 1998-03-17 | International Business Machines Corporation | Method and apparatus for management of mapped and unmapped regions of memory in a microkernel data processing system |
US5572206A (en) | 1994-07-06 | 1996-11-05 | Microsoft Corporation | Data compression method and system |
JP2000511363A (ja) * | 1994-07-14 | 2000-08-29 | ジョンソン、グレイス、カンパニー | 画像を圧縮するための方法及び装置 |
US5485460A (en) * | 1994-08-19 | 1996-01-16 | Microsoft Corporation | System and method for running multiple incompatible network protocol stacks |
US5566288A (en) | 1994-09-02 | 1996-10-15 | Caterpillar Inc. | System and method for automatically fitting a B-spline curve to a set of data points |
US5802281A (en) * | 1994-09-07 | 1998-09-01 | Rsi Systems, Inc. | Peripheral audio/video communication system that interfaces with a host computer and determines format of coded audio/video signals |
US5771383A (en) * | 1994-12-27 | 1998-06-23 | International Business Machines Corp. | Shared memory support method and apparatus for a microkernel data processing system |
US5771034A (en) * | 1995-01-23 | 1998-06-23 | Microsoft Corporation | Font format |
US5682486A (en) | 1995-03-14 | 1997-10-28 | International Business Machines Corporation | Video display and control of multiple graphical interfaces |
EP0734144A3 (de) | 1995-03-20 | 1999-08-18 | Siemens Aktiengesellschaft | Verfahren und Anordnung zum Ermitteln der Benutzergebühr in einer Teilnehmereinrichtung |
US5682488A (en) | 1995-04-03 | 1997-10-28 | International Business Machine Corp. | Variable computer icon for single control of complex software functions executed on a data processing system |
US5621660A (en) | 1995-04-18 | 1997-04-15 | Sun Microsystems, Inc. | Software-based encoder for a software-implemented end-to-end scalable video delivery system |
US5651136A (en) * | 1995-06-06 | 1997-07-22 | International Business Machines Corporation | System and method for increasing cache efficiency through optimized data allocation |
US5501478A (en) * | 1995-06-07 | 1996-03-26 | Robert L. Doan | Occupant propelled three wheeled vehicle |
US5930493A (en) * | 1995-06-07 | 1999-07-27 | International Business Machines Corporation | Multimedia server system and method for communicating multimedia information |
US5864711A (en) * | 1995-07-05 | 1999-01-26 | Microsoft Corporation | System for determining more accurate translation between first and second translator, and providing translated data to second computer if first translator is more accurate |
US5874960A (en) * | 1995-07-05 | 1999-02-23 | Microsoft Corporation | Method and system for sharing applications between computer systems |
US5793371A (en) * | 1995-08-04 | 1998-08-11 | Sun Microsystems, Inc. | Method and apparatus for geometric compression of three-dimensional graphics data |
US5742797A (en) * | 1995-08-11 | 1998-04-21 | International Business Machines Corporation | Dynamic off-screen display memory manager |
US5767849A (en) * | 1995-08-18 | 1998-06-16 | International Business Machines Corporation | Personality neutral window management subsystem |
US5835959A (en) | 1995-12-01 | 1998-11-10 | Sand Technology Systems International, Inc. | Memory management system and method using dual indexing structures |
US5850632A (en) | 1995-09-08 | 1998-12-15 | Texas Instruments Incorporated | Memory access controller utilizing cache memory to store configuration information |
US6081623A (en) | 1995-10-11 | 2000-06-27 | Citrix Systems, Inc. | Method for lossless bandwidth compression of a series of glyphs |
US5826027A (en) | 1995-10-11 | 1998-10-20 | Citrix Systems, Inc. | Method for supporting an extensible and dynamically bindable protocol stack in a distrubited process system |
US6016535A (en) | 1995-10-11 | 2000-01-18 | Citrix Systems, Inc. | Method for dynamically and efficiently caching objects by subdividing cache memory blocks into equally-sized sub-blocks |
US6161126A (en) | 1995-12-13 | 2000-12-12 | Immersion Corporation | Implementing force feedback over the World Wide Web and other computer networks |
JPH09233467A (ja) * | 1996-02-21 | 1997-09-05 | Fujitsu Ltd | 画像データ通信装置及び画像データ通信システムにおける通信データ量調整方法 |
US5961588A (en) | 1996-02-22 | 1999-10-05 | Alcatel Usa Sourcing, L.P. | Handling of commands passed between the server and client stations of a telecommunications system |
US6553410B2 (en) * | 1996-02-27 | 2003-04-22 | Inpro Licensing Sarl | Tailoring data and transmission protocol for efficient interactive data transactions over wide-area networks |
US5740171A (en) * | 1996-03-28 | 1998-04-14 | Cisco Systems, Inc. | Address translation mechanism for a high-performance network switch |
US5923654A (en) * | 1996-04-25 | 1999-07-13 | Compaq Computer Corp. | Network switch that includes a plurality of shared packet buffers |
US5864678A (en) * | 1996-05-08 | 1999-01-26 | Apple Computer, Inc. | System for detecting and reporting data flow imbalance between computers using grab rate outflow rate arrival rate and play rate |
US6034689A (en) * | 1996-06-03 | 2000-03-07 | Webtv Networks, Inc. | Web browser allowing navigation between hypertext objects using remote control |
US6057857A (en) | 1996-06-12 | 2000-05-02 | Citrix Systems, Inc. | Method for the lossless compression of lines in a distributed computer system |
US6014133A (en) * | 1996-06-14 | 2000-01-11 | Seiko Epson Corporation | Data transmitter/receiver apparatus, data transmitter, data receiver, and data compression method |
KR100203266B1 (ko) * | 1996-07-09 | 1999-06-15 | 윤종용 | 윤곽선복호화장치 |
US5757925A (en) * | 1996-07-23 | 1998-05-26 | Faybishenko; Yaroslav | Secure platform independent cross-platform remote execution computer system and method |
US5918019A (en) | 1996-07-29 | 1999-06-29 | Cisco Technology, Inc. | Virtual dial-up protocol for network communication |
JP3853877B2 (ja) * | 1996-08-06 | 2006-12-06 | 紀伊産業株式会社 | コンパクト容器 |
US5761734A (en) | 1996-08-13 | 1998-06-02 | International Business Machines Corporation | Token-based serialisation of instructions in a multiprocessor system |
US5883640A (en) | 1996-08-15 | 1999-03-16 | Hsieh; Paul | Computing apparatus and operating method using string caching to improve graphics performance |
US5936940A (en) | 1996-08-22 | 1999-08-10 | International Business Machines Corporation | Adaptive rate-based congestion control in packet networks |
US6052120A (en) * | 1996-10-01 | 2000-04-18 | Diamond Multimedia Systems, Inc. | Method of operating a portable interactive graphics display tablet and communications systems |
US5944791A (en) * | 1996-10-04 | 1999-08-31 | Contigo Software Llc | Collaborative web browser |
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 |
US5864811A (en) * | 1996-11-13 | 1999-01-26 | Compaq Computer Corporation | Audio circuit for use with synthesized audio signals and signals from a modem |
US5913230A (en) | 1997-01-07 | 1999-06-15 | Richardson; John J. | Object and method for providing efficient multi-user access to shared operating system kernal code using instancing |
US5949975A (en) * | 1997-03-12 | 1999-09-07 | Microsoft Corp. | Method and system for negotiating capabilities when sharing an application program with multiple computer systems |
GB2323946B (en) * | 1997-04-04 | 2002-04-17 | Sony Uk Ltd | Database accessing method and apparatus |
US5907678A (en) * | 1997-05-07 | 1999-05-25 | International Business Machines Corporation | Client/server system in which protocol caches for multiple sessions are selectively copied into a common checkpoint cache upon receiving a checkpoint request |
US6061714A (en) | 1997-05-07 | 2000-05-09 | International Business Machines Corporation | Persistent cache synchronization and start up system |
US5983190A (en) * | 1997-05-19 | 1999-11-09 | Microsoft Corporation | Client server animation system for managing interactive user interface characters |
US5877757A (en) * | 1997-05-23 | 1999-03-02 | International Business Machines Corporation | Method and system for providing user help information in network applications |
US6181711B1 (en) * | 1997-06-26 | 2001-01-30 | Cisco Systems, Inc. | System and method for transporting a compressed video and data bit stream over a communication channel |
US5999950A (en) | 1997-08-11 | 1999-12-07 | Webtv Networks, Inc. | Japanese text input method using a keyboard with only base kana characters |
US5999179A (en) | 1997-11-17 | 1999-12-07 | Fujitsu Limited | Platform independent computer network management client |
US6489956B1 (en) * | 1998-02-17 | 2002-12-03 | Sun Microsystems, Inc. | Graphics system having a super-sampled sample buffer with generation of output pixels using selective adjustment of filtering for implementation of display effects |
US6408029B1 (en) | 1998-04-02 | 2002-06-18 | Intel Corporation | Method and apparatus for simplifying real-time data encoding |
US6061715A (en) * | 1998-04-30 | 2000-05-09 | Xerox Corporation | Apparatus and method for loading and reloading HTML pages having cacheable and non-cacheable portions |
US6163773A (en) * | 1998-05-05 | 2000-12-19 | International Business Machines Corporation | Data storage system with trained predictive cache management engine |
KR20010043446A (ko) * | 1998-05-08 | 2001-05-25 | 지오워크스 코포레이션 | 풍부한 콘텐츠와 직접 사용자 응답 메카니즘을 가진 무선통신 장치에 대한 통합된 광고 |
US6397259B1 (en) * | 1998-05-29 | 2002-05-28 | Palm, Inc. | Method, system and apparatus for packet minimized communications |
US6639593B1 (en) * | 1998-07-31 | 2003-10-28 | Adobe Systems, Incorporated | Converting bitmap objects to polygons |
US6563517B1 (en) * | 1998-10-02 | 2003-05-13 | International Business Machines Corp. | Automatic data quality adjustment to reduce response time in browsing |
US6233606B1 (en) * | 1998-12-01 | 2001-05-15 | Microsoft Corporation | Automatic cache synchronization |
US6449639B1 (en) * | 1998-12-23 | 2002-09-10 | Doxio, Inc. | Method and system for client-less viewing of scalable documents displayed using internet imaging protocol commands |
US6731600B1 (en) * | 1999-02-08 | 2004-05-04 | Realnetworks, Inc. | System and method for determining network conditions |
US6657954B1 (en) | 1999-03-31 | 2003-12-02 | International Business Machines Corporation | Adapting receiver thresholds to improve rate-based flow control |
US6483515B1 (en) * | 1999-04-09 | 2002-11-19 | Sun Microsystems, Inc. | Method and apparatus for displaying data patterns in information systems |
US6801499B1 (en) | 1999-08-10 | 2004-10-05 | Texas Instruments Incorporated | Diversity schemes for packet communications |
US6314452B1 (en) * | 1999-08-31 | 2001-11-06 | Rtimage, Ltd. | System and method for transmitting a digital image over a communication network |
AU2001253563A1 (en) | 2000-04-18 | 2001-10-30 | Rtimage Inc. | System and method for the lossless progressive streaming of images over a communication network |
US20020029285A1 (en) * | 2000-05-26 | 2002-03-07 | Henry Collins | Adapting graphical data, processing activity to changing network conditions |
US7092740B1 (en) | 2001-04-20 | 2006-08-15 | Trilogy Development Group, Inc. | High density information presentation using space-constrained display device |
JP2007099007A (ja) * | 2005-09-30 | 2007-04-19 | Auto Network Gijutsu Kenkyusho:Kk | ワイヤハーネスの配索構造 |
JP2008002007A (ja) * | 2006-06-21 | 2008-01-10 | Daiwabo Co Ltd | ナノ粒子担持材料およびその製造方法 |
JP4873139B2 (ja) * | 2006-06-23 | 2012-02-08 | Nok株式会社 | ガスケットの製造方法 |
-
2001
- 2001-05-25 US US09/866,374 patent/US20020029285A1/en not_active Abandoned
- 2001-05-25 US US09/866,375 patent/US7490166B2/en active Active
- 2001-05-25 US US09/866,520 patent/US7127525B2/en not_active Expired - Lifetime
- 2001-05-25 AU AU2001274972A patent/AU2001274972A1/en not_active Abandoned
- 2001-05-25 US US09/866,531 patent/US7028025B2/en not_active Expired - Lifetime
- 2001-05-25 WO PCT/US2001/017059 patent/WO2001093525A2/en active Application Filing
- 2001-05-29 CA CA002408924A patent/CA2408924A1/en not_active Abandoned
- 2001-05-29 ES ES03005806T patent/ES2246433T3/es not_active Expired - Lifetime
- 2001-05-29 ES ES01937791T patent/ES2240461T3/es not_active Expired - Lifetime
- 2001-05-29 EP EP01937791A patent/EP1285517B1/de not_active Expired - Lifetime
- 2001-05-29 DE DE60109631T patent/DE60109631T2/de not_active Expired - Lifetime
- 2001-05-29 DE DE60112103T patent/DE60112103T2/de not_active Expired - Lifetime
- 2001-05-29 DE DE60109602T patent/DE60109602T2/de not_active Expired - Lifetime
- 2001-05-29 KR KR1020077013942A patent/KR100783217B1/ko active IP Right Grant
- 2001-05-29 AU AU6349001A patent/AU6349001A/xx active Pending
- 2001-05-29 ES ES03005803T patent/ES2246432T3/es not_active Expired - Lifetime
- 2001-05-29 KR KR1020077013943A patent/KR100824121B1/ko active IP Right Grant
- 2001-05-29 WO PCT/US2001/017323 patent/WO2001092973A2/en active Application Filing
- 2001-05-29 KR KR1020077013944A patent/KR100824120B1/ko active IP Right Grant
- 2001-05-29 KR KR1020027016060A patent/KR100783216B1/ko active IP Right Grant
- 2001-05-29 JP JP2002501120A patent/JP2004501445A/ja not_active Withdrawn
- 2001-05-29 DE DE60112107T patent/DE60112107T2/de not_active Expired - Lifetime
- 2001-05-29 ES ES03005805T patent/ES2240872T3/es not_active Expired - Lifetime
- 2001-05-29 IL IL15279701A patent/IL152797A0/xx active IP Right Grant
- 2001-05-29 AU AU2001263490A patent/AU2001263490B2/en not_active Expired
-
2002
- 2002-11-12 IL IL152797A patent/IL152797A/en unknown
-
2003
- 2003-02-27 HK HK03101450.8A patent/HK1049415B/zh not_active IP Right Cessation
-
2006
- 2006-03-03 US US11/368,235 patent/US7502784B2/en not_active Expired - Fee Related
-
2007
- 2007-07-29 IL IL184891A patent/IL184891A/en active IP Right Grant
-
2009
- 2009-02-06 US US12/366,861 patent/US8099389B2/en not_active Expired - Fee Related
-
2010
- 2010-02-19 US US12/709,179 patent/US8290907B2/en not_active Expired - Lifetime
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE60109631T2 (de) | Verfahren und Vorrichtung zur effizienten Verringerung von graphischen Anzeigedaten für ihre Übertragung mittels eines Übertragungsprotokolls für niedrige Bandbreiten | |
AU2001263490A1 (en) | Method and system for efficiently reducing graphical display data for transmission over a low bandwidth transport protocol mechanism | |
DE60038703T2 (de) | Asynchrone Datenübertragung | |
EP1326406B1 (de) | Verfahren und Vorrichtung zur effizientes Verringerung von graphischen Anzeigedaten für ihre Übertragung mittels eines Übertragungsprotokolls für niedrige Bandbreiten | |
AU2006202299B2 (en) | Method and system for efficiently reducing graphical display data for transmission over a low bandwidth transport protocol mechanism | |
DE602004002104T2 (de) | Ultraleicht browser | |
AU2006202292B2 (en) | Method and system for efficiently reducing graphical display data for transmission over a low bandwidth transport protocol mechanism | |
DE102004048343B4 (de) | 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 | |
EP1623342A2 (de) | Verfahren zur reduzierung der latenzzeit bei der interaktiven datenkommunikation zwischen einem terminal server und einem terminal-server client in einem geostationären satelitennetzwerk |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition |