DE69736045T2 - Verfahren zum Übertragen und Darstellen von Datenseiten in einem Datennetzwerk - Google Patents

Verfahren zum Übertragen und Darstellen von Datenseiten in einem Datennetzwerk Download PDF

Info

Publication number
DE69736045T2
DE69736045T2 DE69736045T DE69736045T DE69736045T2 DE 69736045 T2 DE69736045 T2 DE 69736045T2 DE 69736045 T DE69736045 T DE 69736045T DE 69736045 T DE69736045 T DE 69736045T DE 69736045 T2 DE69736045 T2 DE 69736045T2
Authority
DE
Germany
Prior art keywords
page
data page
version
user station
difference
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE69736045T
Other languages
English (en)
Other versions
DE69736045D1 (de
Inventor
Gaurav Houston Banga
Hosagrahar Visvesvaraya Berkeley Heights Jagadish
Michael Gillette Rabinovich
Frederick Somerset Douglis
Kiem-Phong Berkeley Heights Vo
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
AT&T Corp
Original Assignee
AT&T Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by AT&T Corp filed Critical AT&T Corp
Application granted granted Critical
Publication of DE69736045D1 publication Critical patent/DE69736045D1/de
Publication of DE69736045T2 publication Critical patent/DE69736045T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/2876Pairs of inter-processing entities at each side of the network, e.g. split proxies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9574Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Description

  • HINTERGRUND DER ERFINDUNG
  • Diese Erfindung betrifft ein Verfahren zum Übertragen und Anzeigen von Datenseiten an einer Station, die über eine langsame Verbindung mit einem Netzwerk verbunden ist. Insbesondere betrifft diese Erfindung ein Verfahren zum Reduzieren der Verzögerung zwischen der Zeit, zu der eine Datenseite angefordert wird, und der Zeit, zu der die Seite angezeigt wird.
  • In Datennetzen wie dem Internet sind Daten auf Servern gespeichert, die durch schnelle Verbindungen vernetzt sind. Derartige Netzwerke unterstützen Protokolle wie das Hypertext Transfer Protocol („HTTP"), das im populären World-Wide-Web-Bereich des Internets verwendet wird, in dem Daten zu Benutzern in einem Format, das als eine „Seite" bekannt ist, übertragen werden. Unter dem HTTP-Protokoll kann die Benutzerschnittstellen-Software (bekannt als ein „Browser") mit der Anzeige einer Seite erst beginnen, wenn ein bedeutender Anteil der Seite empfangen wurde, und kann die Seite eindeutig erst dann vollständig anzeigen, wenn die gesamte Seite empfangen wurde. Die resultierenden Verzögerungen werden als „Latenzzeit" bezeichnet.
  • Leider sind viele Internetnutzer über relativ langsame Verbindungen unter Verwendung eines Modems und einer Standard-Telefonleitung mit dem Internet verbunden. Selbst die schnellsten kommerziell erhältlichen Telefonmodems sind begrenzt auf Geschwindigkeiten von 28,8 Kilobit pro Sekunde („kbps") oder in einigen Fällen 33,6 kbps. Dies begrenzt die Geschwindigkeit, mit der eine World-Wide-Web-Seite zu einem Benutzer übertragen und vom Browser des Benutzers angezeigt werden kann. Außerdem wird die scheinbare Geschwindigkeit des World Wide Web auch durch starken Benutzerverkehr, insbesondere durch starken Zugriff von anderen Benutzern auf denselben Server, verlangsamt. Als ein Ergebnis beschwerden sich viele Benutzer über die niedrige Geschwindigkeit des Internets im Allgemeinen und des World Wide Webs im Besonderen. In der Tat ist ein Großteil der Latenzzeit, die von Benutzern wahrgenommen wird, das Ergebnis ihrer relativ langsamen Verbindung mit dem und des starken Verkehrs auf dem, was von Natur aus ein sehr schnelles Netzwerk sein sollte.
  • Gegenwärtig erhältliche Browser-Software macht einige Versuche, Verzögerungen beim Empfang von World-Wide-Web-Seiten zu beseitigen. Beispielsweise speichern die meisten Browser empfangene Seiten in einem Datenträger-Zwischenspeicher. Wenn ein Benutzer eine Seite innerhalb einer kurzen Zeit, nachdem er sie vorher angefordert hat, unfordert, gewinnt der Browser die Seite aus dem Zwischenspeicher zurück. Unter dem HTTP-Protokoll können bestimmte World-Wide-Web-Seiten jedoch nicht zwischengespeichert werden wie beispielsweise diejenigen, die dynamisch erzeugt werden. Daher sind gegenwärtige Zwischenspeicherungs-Techniken von begrenztem Nutzen bei der Lösung des Latenzzeit-Problems.
  • Es wäre wünschenswert in der Lage zu sein, die wahrgenommenen Verzögerungen zu reduzieren, die bei der Übertragung von Datenseiten von einem relativ schnellen Netzwerk zu einem Benutzer, der über eine relativ langsame Verbindung mit dem Netzwerk verbunden ist, vorkommen.
  • Es wäre außerdem wünschenswert in der Lage zu sein, die Zwischenspeicherungs-Fähigkeiten von Browsern besser zu nutzen.
  • T Ball et al. offenbaren in „An Internet Difference Engine and Its Applications" in „Proceedings of COMPCON '96, Nr. Conf. 41, S. 71-76 (1996), veröffentlicht von IEEE, ein Web-Verfolgungs-Tool, das Änderungen zwischen zwei Versionen einer Webseite feststellt und eine weitere Seite erzeugt, die diese Differenzen zusammenfasst. Die Seite, die die Differenzen zwischen den zwei Versionen zusammenfasst, kann einem Benutzer angezeigt werden, um Informationen über die Änderungen, die an der Webseite vorgenommen wurden, bereitzustellen.
  • Dieses Druckschrift befasst sich jedoch nicht mit dem Problem, dem Benutzer eine aktuelle Version einer Webseite effizient über eine langsame Datenverbindung zu präsentieren.
  • Es ist eine Aufgabe dieser Erfindung, die wahrgenommenen Verzögerungen zu reduzieren, die bei der Übertragung von Datenseiten von einem relativ schnellen Netzwerk zu einem Benutzer, der über eine relativ langsame Verbindung mit dem Netzwerk verbunden ist, vorkommen.
  • Es ist außerdem eine Aufgabe dieser Erfindung, die Zwischenspeicherungs-Fähigkeiten von Browsern besser zu nutzen.
  • In Übereinstimmung mit dieser Erfindung wird ein Verfahren zum Übertragen und Anzeigen von Datenseiten in einem Datennetz eines Typs, in dem Daten in einem Seitenformat abgerufen werden können, bereitgestellt. Das Netzwerk hat mindestens einen Server, in dem die Datenseiten gespeichert sind, ein Gateway, das mit den Servern verbunden ist, und eine Benutzerstation, das über eine Datenverbindung, die eine endliche Geschwindigkeit hat, mit dem Gateway verbunden ist. Die Benutzerstation fordert eine der Datenseiten von einem der Server an. Das Verfahren umfasst das Senden einer Anforderung von der Benutzerstation zu dem Gateway zum Abrufen der Datenseite von einem der Server. Als Reaktion auf diese Anforderung wird eine frühere Version der Datenseite abgerufen. Wenn festgestellt wird, dass die frühere Version nicht aktuell ist, wird eine Abfrage der Datenseite von dem einen der Server zu dem Gateway zur Übertragung zu der Benutzerstation initiiert. Nach Empfang einer Antwort auf die Anforderung an dem Gateway wird eine Differenz zwischen der angeforderten Datenseite und der früheren Version der Seite festgestellt, und diese Differenz wird zu der Benutzerstation übertragen. An der Benutzerstation wird die Datenseite berechnet als eine Funktion der früheren Version und der Differenz. Die berechnete Seite wird dann an der Benutzerstation angezeigt.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die obige und andere Aufgaben und Vorteile der Erfindung sind erkennbar nach Berücksichtigung der folgenden ausführlichen Beschreibung in Verbindung mit den begleitenden Zeichnungen, in denen dieselben Bezugszeichen sich durchgängig auf dieselben Teile beziehen und von denen:
  • 1 ein schematisches Blockdiagramm eines Systems zeigt, mit dem das Verfahren der vorliegenden Erfindung verwendet werden kann;
  • 2 ein Ablaufdiagramm eines Teils des Verfahrens der vorliegenden Erfindung zeigt, der von dem in 1 dargestellten lokalen Proxy ausgeführt wird;
  • 3 ein Ablaufdiagramm zeigt, das Einzelheiten eines der in 2 gezeigten Schritte darstellt;
  • 4 ein Ablaufdiagramm eines Teils des Verfahrens der vorliegenden Erfindung zeigt, der von dem in 1 dargestellten entfernten Proxy ausgeführt wird;
  • 5 ein Ablaufdiagramm zeigt, das Einzelheiten eines der in 4 gezeigten Schritte darstellt; und
  • 6 ein Ablaufdiagramm zeigt, das Einzelheiten einer alternativen Ausführungsform eines der in 4 gezeigten Schritte darstellt.
  • AUSFÜHRLICHE BESCHREIBUNG DER ERFINDUNG
  • Obwohl sie im Allgemeinen auf Netzwerk-Datenübertragungen anwendbar ist, ist die vorliegende Erfindung besonders nützlich und bietet sich an für leichte Erläuterung in Verbindung mit dem Internet und insbesondere mit dem World Wide Web. Die World-Wide-Web-Architektur setzt am Netzwerk-Gateway-Ende der Verbindung eines Benutzers eine Anwendung ein, die als ein Proxy bekannt ist. World-Wide-Web-Browser-Software ist vorgesehen zur Kommunikation mit einem Proxy, der wiederum die Anforderungen des Browsers an die Netzwerkserver weiterleitet und die angeforderten Daten in der Form von einer oder mehrere Seiten zurückleitet. In Übereinstimmung mit der vorliegenden Erfindung wird ein zweiter Proxy, im Folgenden als ein „lokaler Proxy" bezeichnet, vorzugsweise in dem Computer des Benutzers durch Software eingerichtet. Wenn die Browser-Software des Benutzers versucht, mit einem Proxy Verbindung aufzunehmen, wird sie mit dem lokalen Proxy verbunden. So weit die Browser-Software betroffen ist, ist sie mit einem Proxy verbunden, wie sie es erwartet und erfordert. Der lokale Proxy wiederum kommuniziert mit dem Proxy am Netzwerk-Ende der Verbindung (im Folgenden der „entfernte Proxy").
  • Das Vorhandensein des lokalen Proxys gestattet die Verwendung von verschiedenen Techniken, die die scheinbare Geschwindigkeit der Verbindung mit dem Netzwerk erhöhen. Man kann den lokalen Proxy zum Einsatz derartiger Techniken entwerfen, ohne die Browser-Software des Benutzers zu verändern. Schließlich können eine oder mehrere derartiger Techniken in Browser-Software eingebaut werden, wodurch der lokale Proxy effektiv in den Browser eingebaut wird. Die vorliegende Erfindung kann jedoch durch Bereitstellung von separater Software für lokale Browser mit existierenden Browsern verwendet werden.
  • Eine bevorzugte Technik, die in Verbindung mit dem lokalen Proxy zur Erhöhung der scheinbaren Verbindungsgeschwindigkeit verwendet werden kann, beruht auf der Tatsache, dass gegenwärtig Verarbeitungsgeschwindigkeit und -fähigkeit an der Benutzerstation leichter verfügbar und billiger ist als eine schnellere Verbindung. Damit beruht die Erfindung auf das Abrufen einer zwischengespeicherten Version einer angeforderten Seite und der anschließenden Übertragung nur der Differenzen zwischen der zwischengespeicherten Version und der aktuellen Version von dem entfernten Proxy zu dem lokalen Proxy. Die Benutzerstation rekonstruiert unter Verwendung ihrer relativ schnellen und billigen Verarbeitungsressourcen die aktuelle Seite aus der zwischengespeicherten Version und den empfangenen Differenzdaten.
  • Eine bevorzugte Technik zur Berechnung der Differenzdaten ist die im gleichzeitig anhängigen EP-A-0717353 beschriebene Technik. Andere Techniken, die Fachleuten bekannt sind oder von ihnen entwickelt werden, können jedoch verwendet werden.
  • Damit der entfernte Proxy imstande ist, die Differenzdaten an den lokalen Proxy zu senden, muss er die Differenzdaten berechnen, indem er die aktuelle Seite, sobald sie am entfernten Proxy empfangen wird, mit der Version der Seite vergleicht, die bereits am lokalen Proxy verfügbar ist. Dies erfordert, dass der entfernte Proxy weiß, welche Version der Seite bereits am lokalen Proxy vorhanden ist. Dies kann in mehreren Weisen erreicht werden.
  • Zuerst muss der entfernte Proxy mindestens eine Version der Seite zwischenspeichern (wenn die vom Benutzer angeforderte Seite niemals von irgendeinem Benutzer, der mit dem entfernten Proxy verbunden ist, angefordert wurde, gäbe es keine Alternative dazu, auf den Empfang der vollen aktuellen Seite am entfernten Proxy zu warten und die gesamte Seite zu übertragen, außer dass es möglich sein kann, mit der Übertragung der gesamten aktuellen Seite zu beginnen, bevor sie vollständig an dem entfernten Proxy empfangen ist).
  • In einer Ausführungsform zwischenspeichert der lokale Proxy auch die Seite (vorausgesetzt, dass er sie vorher angefordert hat) und identifiziert, als Teil seiner Anforderung der Datenseite, welche Version er bereits zwischengespeichert hat. Der entfernte Proxy würde prüfen, ob er diese bestimmte Version zwischengespeichert hat, und, falls ja, würde diese Version zur Berechnung der Differenzen nach Empfang der aktuellen Seite verwenden. Wenn der entfernte Proxy diese Version nicht zwischengespeichert hatte, würde er die aktuellste Version, die er hat, an den lokalen Proxy übertragen, während er auf die Ankunft der aktuellen Daten wartet.
  • In einer Variante dieser Ausführungsform würde der entfernte Proxy mehrere verschiedene Versionen einer Seite zwischenspeichern, um die Wahrscheinlichkeit zu erhöhen, dass er die Version hat, die vom lokalen Proxy zwischengespeichert wird. In einer anderen Variante würde der lokale Proxy auch mehr als eine Version einer Seite zwischenspeichern. Beispielsweise könnte der lokale Proxy so programmiert werden, dass er die neueste Version jeder abgefragten Seite sowie jede Seite, die für Zwischenspeicherung markiert ist, zwischenspeichert. In dieser Ausführungsform würde der entfernte Proxy vorzugsweise bestimmte Seiten für Zwischenspeicherung durch lokale Proxys markieren – z. B. kann die Mittagsversion einer populären Nachrichtenseite immer zwischengespeichert werden und kann erhalten werden, selbst wenn eine spätere Version abgefragt wird (die spätere Version würde auch zwischengespeichert werden). Vermehrte Zwischenspeicherung durch einen der Proxys würde die zu übertragende Datenmenge reduzieren, während der entfernte Proxy auf die aktuelle Seite wartet, erfordert jedoch mehr Speicherkapazität in einem oder beiden Proxys. Mehr Speicher kann einfacher sein an einem entfernten Proxy, der häufig mit einem Contentprovider oder Netzdienstprovider assoziiert ist, kann aber teuer sein in dem lokalen Proxy, der gewöhnlich in einem Heim- oder Büro-Personal-Computer ist.
  • Wenn der entfernte Proxy die aktuelle Seite von dem Contentprovider anfordert, kann er fordern, dass die Seite nur übertragen wird, wenn sie sich seit der Zeit der letzten Version, über die er verfügt, oder der Version, von der er weiß, dass der lokale Proxy sie hat oder haben sollte, verändert hat. Das HTTP-Protokoll stellt Befehle für derartige Anforderungen bereit. Wenn der entfernte Proxy eine Meldung zurückerhält, dass keine Veränderung erfolgt ist, kann er dann eine Meldung an den lokalen Proxy senden, dass die Seite, über die der lokale Proxy bereits verfügt, aktuell ist (entweder weil er die Seite vorher zwischengespeichert hatte oder weil der entfernte Proxy die Seite übertragen hat, während er auf eine Antwort vom Server des Contentproviders wartete), und der lokale Proxy kann dann die Seite, die er bereits hat, zur Anzeige an den Browser liefern.
  • Wenn andererseits der entfernte Proxy eine neue Version der Seite empfängt, muss er dann entscheiden, ob er die neue Version der Seite übertragen oder die Differenzdaten berechnen und übertragen soll. Dies ist von mehreren Faktoren abhängig.
  • Wenn der lokale Proxy die vorherige Version der Seite bereits hat (entweder weil er sie zwischengespeichert hat oder weil der entfernte Proxy sie senden konnte, während er auf die aktuelle Version wartete), ist der wichtigste Faktor bei der Entscheidung, ob die gesamte aktuelle Version zu übertragen ist oder ob die Differenz zu berechnen und zu übertragen ist, die relative Größe der neuen Version und der Differenzdaten. Daher würde der entfernte Proxy die Differenzdaten berechnen und dann die Größe der Differenzdaten mit der Größe der neuen Version vergleichen. Wenn die neue Version nicht größer ist als die Differenzdaten, würde der entfernte Proxy die neue Version mit einer Meldung, die dem lokalen Proxy mitteilt, dass es die neue Version ist und dass Rekonstruktion auf der Grundlage der alten Version nicht erforderlich ist, übertragen. Der lokale Proxy würde die neue Version dann an den Browser zur Anzeige weiterleiten.
  • Wenn die neue Version größer ist als die Differenzdaten, muss der entfernte Proxy eine Entscheidung basierend darauf wie viel größer die neue Version ist, treffen. Da eine gewisse Zeit für die Rekonstrukion durch den lokalen Proxy erforderlich ist, kann es, wenn die neue Version die gleiche Größe aufweist wie die Differenzdaten oder nur geringfügig größer ist, immer noch schneller sein (unter dem Aspekt, wann der Benutzer die angeforderte Seite sehen kann), die neue Version und nicht die Differenzdaten zu übertragen. Die Bestimmung, wie viel größer die neue Version sein kann, bis es keinen Sinn mehr macht, sie zu übertragen, kann von einer Reihe von Faktoren abhängen, die unter Umständen in Echtzeit zu messen sind, was in einer dynamischen Berechnung der Schwellenwertgröße zum Übertragen von Differenzdaten und nicht der neuen Daten resultiert. Wenn die Berechnung jedoch von Variablen abhängt, die nicht auf einfache Weise von dem entfernten Proxy bestimmt werden können, wie die Prozessorgeschwindigkeit an der Benutzerstation, besteht eine Alternative darin, dass der entfernte Proxy einfach annimmt, dass die neue Version bis zu etwa 120 % der Differenzdaten betragen und noch in ihrer Gesamtheit übertragen werden kann.
  • Wenn die angeforderte Seite bei dem entfernten Proxy eintrifft, während der entfernte Proxy noch eine ältere „überholte" Version der Seite an den lokalen Proxy überträgt, muss der entfernte Proxy eine Entscheidung treffen, ob er fortfahren soll oder nicht oder ob er abbricht und einfach die neue Version der Seite in ihrer Gesamtheit überträgt. Dies ist wieder abhängig von einem Vergleich, wie lange es dauern wird, die neue Version zu übertragen, und wie lange es dauern wird, die Übertragung der alten Version abzuschließen und die Differenzdaten zu berechnen und zu übertragen. Die Zeit, die zum Übertragen der neuen Version erforderlich ist, kann bekannt sein, wenn deren Größe bekannt ist, oder kann unter Einsatz von geeigneten statistischen Annahmen geschätzt werden. Ebenso ist die Zeit bekannt, die erforderlich ist, um die Übertragung der überholten Daten abzuschließen. Nicht bekannt ist die Größe der Differenzdaten. Wenn die Größe der neuen Version kleiner ist als die der restlichen überholten Daten, wird die neue Version übertragen. Anderenfalls erfolgt eine Annahme, dass die Differenzdaten eine durchschnittliche Größe aufweisen, die in der bevorzugten Ausführungsform 40 % der Größe der überholten Seite beträgt. Wenn daher weniger als 40 % der überholten Daten übertragen wurden (d. h. mehr als 60 % verbleiben noch), kann die Übertragung der überholten Daten abgebrochen werden, um stattdessen einfach die neue Version zu übertragen. Wenn umgekehrt mehr als 40 % der überholten Daten übertragen wurden (d. h. weniger als 60 % verbleiben noch), kann es sinnvoll sein, die Übertragung der restlichen überholten Daten plus der Differenzdaten fortzusetzen, weil die beiden letztgenannten Posten zusammen kleiner wären als die neue Version.
  • Wenn die Übertragung der überholten Daten fortgesetzt wird und die Differenzdaten berechnet werden, kann natürlich festgestellt werden, dass für diese bestimmte Anforderung die Differenzdaten größer sind als 40 %, so dass in diesem Fall die Entscheidung kontraproduktiv gewesen wäre. Oder wenn entschieden wurde, die neue Version zu übertragen, kann sich herausgestellt haben, dass die Differenzdaten kleiner waren als erwartet. Im Durchschnitt kann jedoch erwartet werden, dass es beim Fehlen anderer Daten produktiv ist, 40 % der Seitengröße als einen Standardwert für die Größe der Differenzdaten zu verwenden. Es kann beispielsweise auch möglich sein, die Größen von Differenzdaten im Verlauf der Zeit zu verfolgen, entweder global oder für individuelle Seiten (z. B. nach URL) oder Server, und diese Informationen zu verwenden, um die Standardgröße der Differenzdaten von Zeit zu Zeit anzupassen. Alternativ kann es möglich sein, die Größe der Differenzdaten inkremental („während des Vorgangs") zu schätzen oder zu berechnen, wie nachstehend diskutiert.
  • In einigen Fällen kann man feststellen, während die überholten Daten noch übertragen werden, oder danach, dass die Differenzdaten so groß sind – selbst Differenzdaten, die größer sind als die Seitengröße, sind theoretisch möglich –, dass es nicht sinnvoll wäre fortzufahren. An diesem Punkt könnte die Entscheidung, überholte Daten plus Differenzdaten zu übertragen, rückgängig gemacht werden, die Übertragung der überholten Daten, wenn sie noch erfolgt, könnte abgebrochen werden und die neue Seite könnte in ihrer Gesamtheit übertragen werden. Selbst wenn die Übertragung der überholten Daten abgeschlossen wurde, wäre es immer noch sinnvoll, die neue Seite in ihrer Gesamtheit zu übertragen, vorausgesetzt, dass die Differenzdaten größer sind als die neue Seite.
  • Die bevorzugte Ausführungsform der Differenzdaten-Berechnungstechnik, die in der oben erwähnten gleichzeitig anhängigen Patentanmeldung beschrieben wird, gibt als „Nebenwirkung" eine komprimiere Version der ursprünglichen Seitendaten aus. Dies ergibt eine komprimierte Version jeder Seite, die anstelle der nicht komprimierten Version im Zwischenspeicher gespeichert werden kann, wodurch die Zahl der Seiten erhöht wird, die für eine gegebene Zwischenspeichergröße zwischengespeichert werden können. Zudem erzeugt diese Technik Differenzdaten, die sich höchstens auf nicht mehr als einige wenige Bytes mehr als die neue Version der Datenseite belaufen. Daher muss, wenn diese bevorzugte Technik verwendet wird, es nicht erforderlich sein, die Übertragung der Differenzdaten abzubrechen, weil es kein Nachteil wäre, es nicht zu tun. Die folgende Diskussion ist jedoch allgemein für jede beliebige Differenz-Berechnungstechnik, die verwendet wird, einschließlich einer, die nicht so effizient ist wie die bevorzugte Technik.
  • Für die bisherige Diskussion wurde angenommen, dass der Benutzer eine Datenseite angefordert hat, deren Adresse dieselbe ist wie die einer Seite, die bereits zwischengespeichert wurde – im Kontext des World Wide Web eine Seite mit demselben Uniform Resource Locator („URL"). Die vorliegende Erfindung kann jedoch auch in Fällen nützlich sein, in denen Seiten ähnlich sind, obwohl ihre Adressen nicht identisch sind. Dies können Seiten sein mit dem identischen statischen Inhalt, obwohl bestimmte Variablenfelder sich unterscheiden können. Beispielsweise können in einer World-Wide-Web-Site, die mehrere Seiten enthält, die verschiedenen Seiten ein ähnliches Layout mit gemeinsamen Merkmalen haben. Ebenso werden Seiten, die die Ergebnisse einer Abfrage an eine bestimmte Suchmaschine enthalten, im Allgemeinen im Wesentlichen das gleiche grafische Layout aufweisen; nur die Textdaten unterscheiden sich von einem Abfrageergebnis zu einem anderen. Wenn daher eine Abfrage an eine bestimmte Suchmaschine von dem Benutzer initiiert wird, kann das System im Voraus aus seinem Zwischenspeicher, entweder bei dem lokalen Proxy oder dem entfernten Proxy, eine allgemeine Seite für diese Suchmaschine oder das letzte zwischengespeicherte Abfrageergebnis von dieser Suchmaschine abrufen; die benötigten Differenzdaten können von einer davon berechnet werden.
  • Das Lokalisieren eines derartigen zwischengespeicherten Abfrageergebnisses wäre im Fall des World Wide Web nicht schwierig. URLs für Suchergebnisse von einer bestimmten Suchmaschine weisen gewöhnlich einen gemeinsamen „Stamm" auf – d. h. der Anfangsteil des URL ist der gleiche, während nachfolgende Teile die jeweilige Suche spezifizieren. Vor den Suchkriterien im URL steht häufig die Zeichenfolge „cgi-bin", die gewöhnlich dem Stamm folgt. Das System könnte so entworfen werden, dass es nach dem Erkennen dieser Zeichen in einem URL eine zwischengespeicherte Version einer beliebigen Seite sucht, deren URL den gleichen Stamm hat wie der aktuelle URL. Andere Techniken, die allgemeiner in zwischengespeicherten Seiten nach ähnlichen Seiten suchen, sind diejenigen, die empfangene Daten mit jeder zwischengespeicherten Seite, die von demselben Host stammt und eine ähnliche Größe aufweist, vergleichen. In einem derartigen Fall kann es erforderlich sein, dass der entfernte Proxy besser darüber auf dem Laufenden ist, welche Seiten zu welchen lokalen Proxys übertragen wurden. Ein obligatorischer Vergleich jeder zwischengespeicherten Seite könnte auch durchgeführt werden, kann aber, außer wenn frühzeitig eine weitgehende Übereinstimmung zufällig gefunden würde, länger dauern, als einfach die neue Seite zu übertragen.
  • In der bisherigen Diskussion wurde weiter angenommen, dass die Differenzdaten erst berechnet werden, wenn der entfernte Proxy die gesamte neue Version der Seite empfangen hat. Die vorliegende Erfindung umfasst jedoch die Möglichkeit, die Differenzdaten „während des Vorgangs" zu berechnen – d. h. auf einer fortlaufenden Basis während des Empfangs der neuen Version.
  • Beispielsweise kann eine willkürliche Datengröße ausgewählt werden, und bei Empfang jeder „Einheit" von Daten dieser Größe an dem entfernten Proxy erfolgt ein Vergleich mit der zwischengespeicherten Version, um die Differenzdaten zu extrahieren. Die Größe der „Einheit" wird so ausgewählt, dass sie groß genug ist, so dass das System nicht eine Ewigkeit Differenzdaten aus winzigen Proben ausrechnet, aber klein genug, um Daten zu generieren, die häufig genug übertragen werden können, um einen Unterschied in der Leistung des Systems zu bewirken.
  • Wenn die Differenz zwischen den beiden Versionen der Seite derart ist, dass eine Einfügung von Text vorgenommen wurde, können gut bekannte Vergleichstechniken diese erkennen, und das System könnte die Einfügung zusammen mit einem „Einfügungs"-Befehl übertragen, ohne dass es eine Differenz für jede Einheit übertragen muss. In ähnlicher Weise kann, wenn die Differenz zwischen Versionen derart ist, dass eine Löschung vorgenommen wurde, das System dies in einer ähnlichen Weise handhaben (z. B. unter Verwendung eines „Löschen"-Befehls), anstatt eine Differenz für jede Einheit zu berechnen.
  • Ebenso ist ein derartiges System vorzugsweise fähig zu entscheiden, wann die Differenzdaten zu übertragen sind. Wenn die Differenzdaten für eine bestimmte Einheit klein sind, ist es eventuell nicht sinnvoll, diese Daten unmittelbar nach ihrer Generierung zu übertragen, sondern vielmehr zu warten, bis weitere Differenzdaten generiert sind. Die Menge der Differenzdaten, die zu akkumulieren sind, bevor sie an den lokalen Proxy übertragen werden, kann in einer bevorzugten Ausführungsform wie folgt quantifiziert werden:
    D sei die Gesamtzahl der nicht übertragenen Bytes von Differenzdaten, einschließlich von Differenzdaten, die generiert wurden, aber nicht übertragen wurden. Drot sei die Gesamtzahl von Bytes von Differenzdaten, die generiert wurden, unabhängig davon, ob sie übertragen wurden oder nicht. C sei die Zahl von Bytes der neuen Version, die bereits verarbeitet wurden. S sei die Größe der Originalseite. Tsmall sei ein minimaler Schwellenwert und Tlarge sei ein maximaler Schwellenwert.
  • Nach dieser Ausführungsform werden die akkumulierten Differenzdaten übertragen, wenn Tsmall<D und Dtot<F(S,C,Tlarge) ist, wobei F eine Funktion der Größe der Originalseite, der Größe der bislang verarbeiteten Daten und des Schwellenwerts Tlarge ist. F generiert einen Abbruch, wenn es nicht länger vorteilhaft ist, die Differenzdaten zu übertragen. Der Abbruch kann bei 80 % der Größe der Originaldatei (0,85) auf der Basis der empfangenen kumulierten Bytes erfolgen. Alternativ könnte S ignoriert werden und die Differenzdaten würden übertragen werden, solange Dtot<0,8C ist. Kompliziertere Funktionen können auch verwendet werden.
  • Wenn D<Tsmall ist, würden keine Differenzdaten übertragen werden. Stattdessen würden akkumulierte Differenzdaten gehalten werden, bis weitere Differenzdaten berechnet worden wären. Beispielsweise könnte Tsmall ein halb der maximalen Paketgröße betragen, eine Größe, unterhalb derer es unwirtschaftlich wäre, die Daten zu übertragen.
  • Wenn andererseits Dtot≥F(S,C,Tlarge) ist, sind die bereits berechneten Differenzdaten so groß, dass die Berechnung der Differenzdaten abgebrochen wird. Stattdessen wird die neue Seite in ihrer Gesamtheit übertragen. In Übereinstimmung mit der „während-des-Vorgangs"-Natur dieser Ausführungsform wartet das System vorzugsweise nicht auf die Ankunft der ganzen Seite, bevor es sie an den lokalen Proxy überträgt, sondern überträgt stattdessen so viel, wie es bereits empfangen hat, und fährt fort, die Daten der neuen Seite zu übertragen, wie sie eintreffen. Es ist zu beachten, dass, wenn die oben angeführte bevorzugte Differenz-Berechnungstechnik verwendet wird, es fast niemals nachteilig ist, die Übertragung der Differenzdaten fortzusetzen.
  • Außerdem kann es nützlich sein, die Gesamtmenge der Differenzdaten, die noch zu übertragen sind, einschließlich von noch nicht berechneten Differenzdaten, im Vergleich zur angenommene Größe der neuen Version zu prüfen. Die noch zu übertragene Datenmenge kann geschätzt werden als die Menge von bereits berechneten, aber noch nicht übertragenen Differenzdaten plus die Menge aller noch zu berechnenden Differenzdaten. Der letztgenannte Wert kann geschätzt werden als eine Funktion der Differenz zwischen der Gesamtgröße der früheren Version der Datenseite und der Größe des bereits verarbeiteten Teils der neuen Version.
  • Wenn, wie oben diskutiert, die Differenzdaten während des Vorgangs berechnet werden, kann der Vergleich der Menge der überholten Daten im Durchgang, die noch zu übertragen sind, plus der Menge der Differenzdaten mit der Menge der Daten, die an der Übertragung der neuen Seite in ihrer Gesamtheit beteiligt sind, auch während des Vorgangs berechnet oder zumindest geschätzt werden. In dieser Weise kann die Entscheidung, ob die Übertragung der überholten Daten fortgesetzt werden soll oder nicht, auf der Grundlage besserer Informationen getroffen werden. Dies kann wie folgt durchgeführt werden:
    A sei die Größe der originalen (überholten) Version der Seite. B sei die Größe der neuen Version der Seite (wenn B nicht bekannt ist, kann es als eine Schätzung gleich A gesetzt werden). PA sei die Größe des Teils der originalen Version der Seite, der bereits an den lokalen Proxy übertragen wurde (gleich zu A, wenn die originale Version der Seite ganz übertragen wurde). Ebenso sei PB die Größe des Teils der neuen Version der Seite, der bereits an dem entfernten Proxy empfangen wurde. Diese Variablen haben alle bekannte Werte. Zu beachten ist, dass, wenn die oben beschriebene bevorzugte Differenz-Berechnungstechnik verwendet wird, diese Variablen Quantitäten von komprimierten Daten repräsentieren können (wie oben angeführt, komprimiert die bevorzugte Ausführungsform einer Routine zum Bestimmen von Differenzdaten die Daten auch). Wenn explizit auf komprimierte Daten Bezug genommen wird, kann die Schreibweise Cx verwendet werden, um die komprimierte Version der Quantität, die durch x repräsentiert wird, zu repräsentieren.
  • ΔB,A sei die Größe der Daten, die die Differenz zwischen den originalen und neuen Versionen der Seite repräsentieren. CB sei die Größe der komprimierten Version der neuen Seite. Diese beiden Variablen sind bekannt, sobald die neue Version ganz empfangen worden ist. ΔPB,A sei die Größe der Daten, die die Differenz zwischen der originalen Version der Seite und dem Teil der neuen Version, der bereits empfangen wurde, repräsentieren. Diese Variable ist bekannt, sobald die teilweisen Daten für die neue Version empfangen worden sind.
  • Wenn PA = A ist, dann wurden die überholten Daten in ihrer Gesamtheit übertragen, und die Differenzdaten können übertragen werden, während sie berechnet werden. Wenn PA<A ist, dann werden die überholten Daten noch übertragen, und eine Entscheidung muss getroffen werden, ob diese Übertragung abgebrochen werden soll oder nicht und einfach die neue Version der Seite übertragen werden soll. Wie oben diskutiert, hängt dies, wenn die Differenzdaten erst berechnet werden, wenn die vollständige neue Version empfangen worden ist, davon ab, ob es möglich ist, die Gesamtgröße der Differenzdaten zu schätzen. Hier, wo die Differenzdaten während des Vorgangs berechnet werden, kann die Schätzung jedoch genauer sein.
  • Ausdrücklich werden die überholten Daten vorzugsweise aber noch übertragen, wenn die Menge der restlichen überholten Daten plus die geschätzte Größe der Differenzdaten kleiner ist als die geschätzte Gesamtgröße der neuen Version (oder der komprimierten neuen Version, wenn Komprimierung verfügbar ist, wie in der bevorzugten Ausführungsform): CA = PCA + ΔB,B < CB
  • Wenn man annimmt, dass die Gesamtgröße der Differenzdaten proportional ist zu der Größe der Differenzdaten für einen Teil der Seite (häufig, aber nicht immer wahr), dann kann, sobald eine teilweise Differenz berechnet wurde, die Gesamtgröße der Differenzdaten geschätzt werden: ΔB,A ≈ B*(ΔPB,A)/PB
  • Wenn beispielsweise die Größe der Differenzdaten für die erste Hälfte der neuen Version der Seite ein Viertel der Größe der Originalseite beträgt, könnte man schätzen, dass die Gesamtgröße der Differenzdaten für die neue Version der Seite das Zweifache davon oder ein halb der Größe der der Originalseite beträgt.
  • Wenn Komprimierung verwendet wird, muss auch die komprimierte Dateigröße geschätzt werden. Wenn die originale Version in komprimierter Form an den lokalen Proxy übertragen worden wäre, ist ihre Größe CA bekannt. Die Größe CB der komprimierten neuen Version kann geschätzt werden als: CB ≈ B*(CA/A)
  • Alternativ kann die Komprimierungsrate der ganzen Seite geschätzt werden aus der Größe der komprimierten Version eines Teils der Seite, sobald sie verfügbar ist: CB ≈ CPB*(B/PB)
  • Wenn diese Schätzungen gegeben sind, ist es zu jeder Zeit möglich zu bestimmen, ob die restlichen überholten Daten übertragen oder abgebrochen werden sollen. Wenn mehr von der neuen Version der Seite empfangen wird, verbessern sich die Schätzungen.
  • 1 zeigt ein schematisches Blockdiagramm eines Systems 10, mit dem das Verfahren der vorliegenden Erfindung verwendet werden kann. Die Benutzerstation 11 ist gewöhnlich ein Personal-Computer, auf dem Browser-Software 12 ausgeführt wird. Auf der Benutzerstation 11 wird außerdem Software für den lokalen Proxy 13 ausgeführt, die im Allgemeinen von dem Netzdienstprovider des Benutzers gestellt werden würde, wenn das eigene System des Netzdienstproviders fähig wäre, das Verfahren der Erfindung zu verwenden. Die Benutzerstation 11 ist verbunden mit dem Netzdienstprovider-Übergabepunkt 15 über eine „langsame" Verbindung 14 (vorzugsweise eine Modemverbindung, wie oben beschrieben). Der Netzdienstprovider-Übergabepunkt 15 ist vorzugsweise mit dem Netzwerk 16 (z. B. das Internet) über eine vorzugsweise sehr schnelle Verbindung 17 wie eine T1-Verbindung verbunden. Der Netzdienstprovider-Übergabepunkt 15 umfasst vorzugsweise einen Gateway-Server 150, der den entfernten Proxy 151 aufweist (vorzugsweise in Software existierend), der mit lokalen Proxys 13 von verschiedenen Benutzerstationen 11 (nur eine dargestellt) kommuniziert. Es ist zu beachten, dass, genauso wie die Funktion des lokalen Proxys 13 im Browser selbst inkorporiert werden kann, wie oben diskutiert, das gleiche für die Funktion des entfernten Proxys zutrifft, der in den Gateway-Server 150 inkorporiert werden kann. Das HTTP-Protokoll gestattet einem Browser (oder lokalen Proxy) zu identifizieren, über welche zwischengespeicherte Version (wenn überhaupt) einer angeforderten Seite er verfügt; ein Server mit eingebautem entfernten Proxy könnte selbst Differenzdaten generieren und übertragen, wenn er aufgrund der beteiligten relativen Datengrößen (siehe unten), die er kennen würde, weil er die neue Version hat, ermittelt, dass diese geeignet sind.
  • Das Netzwerk 16 umfasst andere Netzdienstprovider-Übergabepunkte sowie Contentprovider-Übergabepunkte, die über Contentserver verfügen, von denen Benutzer Informationen durch die Netzdienstprovider suchen.
  • Der Browser 12 des Benutzers ist zur Kommunikation mit einem Proxy vorgesehen. In bekannten Systemen ist der Proxy, mit dem der Browser 12 kommuniziert, der entfernte Proxy 151. In der vorliegenden Erfindung, in der die Benutzerstation 11 einen lokalen Proxy 13 hat und der Netzdienstprovider mit dem Verfahren der Erfindung kompatibel ist, kommuniziert der Browser 12 jedoch mit dem lokalen Proxy 13, der wiederum mit dem entfernten Proxy 151 kommuniziert. Der lokale Proxy 13 ist vorgesehen, alle Meldungen, die der Browser 12 normalerweise von einem Proxy erwarten würde, an den Browser 12 zu übertragen. Der lokale Proxy 13 ist daher für den Browser 12 transparent. Wenn der entfernte Proxy 151 jedoch mit dem Verfahren der Erfindung kompatibel ist, was fast unvermeidbar der Fall sein würde, wenn der lokale Proxy 13 existiert, weil der lokale Proxy 13 vorzugsweise durch Software von dem Netzdienstprovider erstellt wird, der diese Software vermutlich nur dann bereitstellen wird, wenn sein eigener entfernter Proxy 151 kompatibel ist, können der lokale Proxy 13 und der entfernte Proxy 151 auf Weisen kommunizieren, die vorgesehen sind, die scheinbare Geschwindigkeit der Verbindung 14 zu erhöhen. Während die Erhöhung der scheinbaren Geschwindigkeit auf verschiedene Weise erreicht werden kann, würde sie vorzugsweise mit dem oben beschriebenen Verfahren verwirklicht werden, die in den nachstehenden 2-5 dargestellt ist.
  • Die Funktionsweise einer bevorzugten Ausführungsform von Verfahren 20, das von dem lokalen Proxy 13 ausgeführt wird, ist in den 2 und 3 dargestellt.
  • In Schritt 21 empfängt der lokale Proxy 13 eine Anforderung von Browser 12 zum Abrufen einer Seite, die durch einen bestimmten URL identifiziert ist. In Prüfung 22 prüft das System, ob die angeforderte Seite lokal zwischengespeichert ist oder nicht. Falls ja, prüft das System in Prüfung 23, ob die zwischengespeicherte Version noch gültig ist oder nicht. Diese Prüfung kann ausgeführt werden durch Bezugnahme auf ein Ablaufdatum, das mit den zwischengespeicherten Daten gespeichert ist. Alternativ hat der Browser unter Umständen Befehle übertragen, dass eine zwischengespeichere Version nicht verwendet werden soll und dass die angeforderte Seite von ihrem Contentprovider erneut geladen werden soll. Wenn in Prüfung 23 festgestellt wird, dass die zwischengespeicherte Version gültig ist, leitet der lokale Proxy 13 die zwischengespeicherte Version zurück an Browser 12 in Schritt 24, und das Verfahren endet in 25.
  • Wenn in Prüfung 23 festgestellt wird, dass die zwischengespeichere Version der angeforderten Seite nicht mehr gültig ist, wird die angeforderte Seite in Schritt 28 von dem entfernten Proxy 151 angefordert. Als Teil der Anforderung wird der entfernte Proxy 151 von dem lokalen Proxy 13 informiert, dass der lokale Proxy 13 fähig ist, mit Differenzdaten umzugehen, und welche Version im lokalen Proxy 13 zwischengespeichert ist. Das System fährt dann mit Schritt 27 fort, in dem es auf den Empfang der Daten als Reaktion auf die Anforderung wartet und diese Daten verarbeitet.
  • Wenn in Prüfung 22 festgestellt wird, dass die angeforderte Seite nicht zwischengespeichert wurde, wird in Schritt 26 die angeforderte Seite von dem entfernten Proxy 151 angefordert. Als Teil der Anforderung wird der entfernte Proxy 151 von dem lokalen Proxy 13 informiert, dass der lokale Proxy 13 fähig ist, mit Differenzdaten umzugehen, und das System fährt dann mit Schritt 27 fort, in dem es auf den Empfang der Daten als Reaktion auf die Anforderung wartet und diese Daten verarbeitet.
  • Die Verarbeitung einer Antwort in Schritt 27 wird in erweiterter Form in 3 dargestellt. HTTP-Antworten werden unter einem Protokoll übertragen, das als MIME (ein Akronym für Multipart Internet Mail Extensions) bekannt ist. Unter dem MIME-Protokoll können Meldungen einteilige Meldungen oder mehrteilige Meldungen sein. Wenn die Antwort in diesem Kontext eine einteilige Meldung ist, dann ist sie eine neue Version der angeforderten Seite, während sie, wenn sie eine mehrteilige Meldung ist, entweder die neue Version der angeforderten Seite sein kann oder Differenzdaten oder eine überholte Version der Seite sein kann. Informationen, die den Inhalt der mehrteiligen Meldung identifizieren, befinden sich im ersten Teil der mehrteiligen Meldung. Daher beginnt Prozess 27 in Prüfung 30, wo das System prüft, ob die Antwort eine mehrteilige MIME-Meldung ist oder nicht. Wenn nicht, dann muss sie eine neue Seite sein, und in Schritt 31 wird die neue Seite von dem lokalen Proxy 13 zwischengespeichert und zu Browser 12 zur Anzeige zurückgeleitet.
  • Wenn in Prüfung 30 festgestellt wird, dass die Antwort eine mehrteilige MIME-Meldung ist, prüft das System in Prüfung 32, ob der erste Teil der Meldung die übertragenen Daten als eine überholte Version der angeforderten Seite identifiziert oder nicht. Wenn ja, setzt das System die Überwachung in Prüfung 33 fort, um zu erkennen, ob die Übertragung der überholten Daten abgebrochen wird (in dem Fall, dass der entfernte Proxy entscheidet, dass die neue Seite stattdessen in ihrer Gesamtheit zu übertragen ist). Wenn ja, ist der Rest der Übertragung die neue Version der angeforderten Seite, die in Schritt 31 von dem lokalen Proxy 13 zwischengespeichert und zur Anzeige an den Browser 12 zurückgeleitet wird. Wenn in Prüfung 33 die Übertragung der überholten Daten nicht abgebrochen wird, werden die überholten Daten in Schritt 34 zwischengespeichert, und das System wartet in Schritt 35 auf die Differenzdaten, die in einer ähnlichen Weise verarbeitet werden.
  • Wenn die Daten in Prüfung 32 nicht als überholt identifiziert werden, dann können sie Differenzdaten sein, und diese Möglichkeit wird in Prüfung 36 geprüft. Wenn die Daten Differenzdaten sind, werden die Differenzdaten in Schritt 37 zu der zwischengespeicherten Version der angeforderten Seite hinzugefügt, um die neue Version der Seite zu erzeugen, die in Schritt 31 von dem lokalen Proxy 13 zwischengespeichert und zur Anzeige an den Browser 12 zurückgeleitet wird. Wenn die Daten in Prüfung 36 nicht als Differenzdaten identifiziert werden, dann müssen sie die neue Seite in ihrer Gesamtheit sein (trotz der mehrteiligen Natur der Antwort), die in Schritt 31 von dem lokalen Proxy 13 zwischengespeichert und zur Anzeige an den Browser 12 zurückgeleitet wird.
  • Die Funktionsweise einer bevorzugten Ausführungsform von Prozess 40, der von dem entfernten Proxy 151 ausgeführt wird, wird in 4 und 5 dargestellt.
  • Prozess 40 beginnt in Schritt 41, in dem der entfernte Proxy 151 eine Anforderung von einer Benutzerstation 11 für eine bestimmte Seite, die durch einen spezifizierten URL identifiziert wird, empfängt. Es ist zu beachteten, dass es möglich ist, dass eine bestimmte Benutzerstation 11 die Funktion des lokalen Proxys nicht aktiviert hat, so dass Prozess 40 diese Möglichkeit vorzugsweise in Betracht ziehen kann und Anforderungen von traditionellen Browsern zulässt.
  • In Prüfung 42 prüft der entfernte Proxy, ob er die angeforderte Seite in seinem Zwischenspeicher hat oder nicht. Wenn ja, prüft der entfernte Proxy in Prüfung 43, ob die zwischengespeicherte Version gültig ist oder nicht (z. B. durch Bezugnahme auf ihre Ablaufzeit/ihr Ablaufdatum). Wenn die zwischengespeicherte Version in Prüfung 43 gültig ist, prüft der entfernte Proxy in Prüfung 44, ob beide Proxys (d. h. sowohl der lokale als auch der entfernte Proxy 13, 151) die gleiche zwischengespeicherte Version haben. Wenn ja, informiert der entfernte Proxy in Schritt 45 den lokalen Proxy, dass die Seite sich nicht geändert hat, und Prozess 40 endet in 46. Wenn in Prüfung 44 festgestellt wird, dass die beiden Proxys nicht die gleiche Version haben (dies könnte die Situation umfassen, dass kein lokaler Proxy vorhanden ist), überträgt der entfernte Proxy in Schritt 47 die neue Seite an den lokalen Proxy, und Prozess 40 endet in 46.
  • Wenn der entfernte Proxy in Prüfung 42 feststellt, dass er keine zwischengespeicherte Version der angeforderten Seite hat, fordert der entfernte Proxy in Schritt 48 die Seite von dem Contentprovider über das Netzwerk 16 an, und in Schritt 49 wartet er auf diesen Content und verarbeitet ihn.
  • Wenn der entfernte Proxy in Prüfung 43 feststellt, dass die zwischengespeicherte Version abgelaufen ist oder ansonsten nicht gültig ist, fährt der entfernte Proxy (1) mit Schritt 48 fort, in dem er die Seite von dem Contentprovider über das Netzwerk 16 anfordert und dann mit Schritt 49 fortfährt, in dem er auf diesen Content wartet und ihn verarbeitet und gleichzeitig in Prüfung 400 (2) feststellt, ob beide Proxys (vorausgesetzt, dass ein lokaler Proxy vorhanden ist) über das gleiche zwischengespeicherte Exemplar verfügen. Wenn ja, fährt der entfernte Proxy nur fort, in Schritt 49 auf den angeforderten Content zu warten und diesen zu verarbeiten. Wenn der entfernte Proxy in Prüfung 400 feststellt, dass beide Proxys nicht über die gleiche zwischengespeicherte Version verfügen (dies könnte die Situation umfassen, dass kein lokaler Proxy vorhanden ist), stellt der entfernte Proxy in Prüfung 401 fest, ob die Benutzerstation imstande ist oder nicht zur Verarbeitung von Differenzdaten und überholten Daten, um die neue Seite aufzubauen (wie in Verbindung mit den Schritten 26 und 28 von Prozess 20 dargestellt wurde, informiert der lokale Proxy selbst den entfernten Proxy, ob er Differenzdaten verarbeiten kann, und der entfernte Proxy nimmt seine Bestimmung in Prüfung 401 darauf basierend vor, ob er eine derartige Meldung von dem lokalen Proxy erhält oder nicht). Wenn ja, überträgt der entfernte Proxy in Schritt 402, nachdem bereits festgestellt wurde, dass die beiden Proxys verschiedene Versionen der Seite zwischengespeichert haben, die Version, die er zwischengespeichert hat, an den lokalen Proxy (so dass die beiden Proxys den gleichen Anfangspunkt für den Aufbau der Seite unter Verwendung von Differenzdaten haben), und wartet dann in Schritt 49 auf die angeforderte Seite und verarbeitet diese. Wenn in Prüfung 401 festgestellt wird, dass die Benutzerstation nicht imstande ist, Differenzdaten und überholte Daten zu verarbeiten, um die neue Seite aufzubauen (z. B. verfügt sie nicht über einen lokalen Proxy), dann fährt der entfernte Proxy einfach mit Schritt 49 fort, um die neue Seite zu erwarten, die er in ihrer Gesamtheit zu der fraglichen Benutzerstation zu senden hat.
  • Wie in erweiterter Form in 5 dargestellt, beginnt Prozess 49 in Schritt 50, in dem der angeforderte Content über das Netzwerk 16 von dem Contentprovider empfangen wurde. In Prüfung 51 prüft der entfernte Proxy, um festzustellen, ob die Benutzerstation 11 imstande ist oder nicht, Differenzdaten zu verarbeiten. Wenn nicht, zwischenspeichert der entfernte Proxy in Schritt 52 die aktuelle Version der neuen Seite und überträgt sie außerdem zu der Benutzerstation. Wenn der entfernte Proxy in Prüfung 51 feststellt, dass die Benutzerstation Differenzdaten verarbeiten kann (d. h. sie verfügt über einen lokalen Proxy in Übereinstimmung mit der Erfindung), stellt der entfernte Proxy in Prüfung 53 fest, ob beide Proxys die gleiche zwischengespeicherte Version haben oder nicht (auf der Grundlage von Daten, die von dem lokalen Proxy übertragen wurden). Wenn ja, fährt der entfernte Proxy mit der unten diskutierten Prüfung 58 fort. Wenn der entfernte Proxy in Prüfung 53 feststellt, dass die beiden Proxys nicht die gleichen zwischengespeicherten Daten haben, fährt der entfernte Proxy mit Prüfung 54 fort, in der er feststellt, ob überholte Daten (d. h. eine ältere Version, die im entfernten Proxy zwischenspeichert war, deren Übertragung an den lokalen Proxy begonnen wurde, bevor die neue Version in Schritt 50 eintraf) sich noch in der Übertragung zu dem lokalen Proxy befinden. Wenn nicht (d. h. die Übertragung der überholten Daten wurde bereits abgeschlossen), fährt der entfernte Proxy mit der unten diskutierten Prüfung 58 fort. Wenn in Prüfung 54 festgestellt wird, dass überholte Daten sich noch in der Übertragung befinden, stellt der entfernte Proxy in Prüfung 55 fest, ob die Menge der restlichen überholten Daten oberhalb eines Schwellenwerts liegen oder nicht (z. B. 60 % der Größe der überholten Version, wie oben diskutiert). Wenn ja, wird die Übertragung der überholten Daten in Schritt 56 abgebrochen, und der entfernte Proxy fährt mit Schritt 52 fort, in dem der entfernte Proxy die aktuelle Version der neuen Seite zwischenspeichert und sie außerdem zu der Benutzerstation überträgt. Wenn der entfernte Proxy in Prüfung 55 feststellt, dass die Menge der restlichen überholten Daten unter dem Schwellenwert liegt (d. h. die meisten der überholten Daten wurden übertragen), beendet der entfernte Proxy in Schritt 57 die Übertragung der überholten Daten und fährt mit Prüfung 58 fort.
  • In Prüfung 58 stellt der entfernte Proxy unabhängig von der Route, die der entfernte Proxy nahm, um dorthin zu gelangen, fest, ob sich die neu empfangenen Daten von den zwischengespeicherten Daten unterscheiden oder nicht. Dies könnte durch einen Vergleich der konkreten Dateien oder durch Vergleichen von Datums-/Zeitstempeln festgestellt werden. Alternativ können die neu empfangenen Daten einfach eine Meldung von dem Contentprovider sein, dass die Version, die zwischengespeichert wurde, noch aktuell ist. Wenn mittels eines dieser Verfahren festgestellt wird, dass die neuen Daten sich nicht von den zwischengespeicherten Daten unterscheiden, informiert der entfernte Proxy in Schritt 59 den lokalen Proxy, dass die zwischengespeicherte Version aktuell ist (entweder hatte der lokale Proxy diese Version bereits zwischengespeichert oder er hat sie in der Übertragung der überholten Daten empfangen). (Es ist zu beachten, dass, wenn das Verfahren zur Feststellung, dass die neuen Daten die gleichen sind wie die zwischengespeicherten Daten, Abhängigkeit von einer Meldung „Keine Änderung" von dem Contentprovider ist, die Übertragung der aktuellen Version im obigen Schritt 52 die Übertragung der zwischengespeicherten Version umfasst und in Schritt 52 eigentlich keine zusätzliche Zwischenspeicherung durch den entfernten Proxy erforderlich ist.)
  • Wenn in Prüfung 58 festgestellt wird, dass die neuen Daten sich von den zwischengespeicherten Daten unterscheiden, werden in Schritt 59 die tatsächlichen Differenzen durch einen direkten Vergleich ermittelt. Der entfernte Proxy fährt dann mit Prüfung 500 fort, um festzustellen, ob die Größe der Differenzdaten unter einem Schwellenwert liegt oder nicht. Wie oben diskutiert, ist ein Vergleich, ob die Differenzdaten kleiner sind als die neue Seite selbst, während auch andere Faktoren berücksichtigt werden, wie oben diskutiert. Wenn die Größe der Differenzdaten in Prüfung 500 unter dem Schwellenwert liegt, fährt der entfernte Proxy mit Schritt 501 fort und überträgt die Differenzdaten an den lokalen Proxy, der sie zur Rekonstruktion der neuen Seite verwendet (Schritt 37). Wenn die Größe der Differenzdaten in Prüfung 500 nicht unter dem Schwellenwert liegt, entscheidet der entfernte Proxy, dass Übertragen der Differenzdaten nicht produktiv wäre, und fährt mit Schritt 502 fort, in dem er einfach die neue Seite an den lokalen Proxy überträgt.
  • 6 zeigt einen Teil einer modifizierten Version von Prozess 49, in dem Differenzdaten „während des Vorgangs" berechnet und übertragen werden, wie oben beschrieben. Der in 6 dargestellte partielle Prozess ersetzt die Schritte/Prüfungen 59, 500, 501 und 502 von 5.
  • In Schritt 659 werden Differenzdaten für einen aktuell empfangenen Teil der neuen Seitendaten bestimmt. Anschließend wird in Prüfung 60 festgestellt, ob partielle Differenzen vorhanden sind oder nicht, die gehalten werden (beim ersten Mal wird die Antwort immer nein sein). Wenn nicht, wird in Prüfung 61 festgestellt, ob die Größe der aktuellen partiellen Differenz einen minimalen Schwellenwert für Übertragung überschreitet, wie oben diskutiert. Wenn nicht, wird in Prüfung 62 festgestellt, ob die Seite vollständig ist oder nicht. Wenn nicht, wird in Schritt 63 die partielle Differenz gehalten und mit etwaigen vorher gehaltenen partiellen Differenzen akkumuliert, und in Schritt 64 wird mit dem nächsten Teil fortgefahren, und der Prozess kehrt zu Schritt 659 zurück.
  • Wenn die Größe der aktuellen partiellen Differenz in Prüfung 61 den minimalen Schwellenwert für Übertragung überschritten hatte oder die Seite in Prüfung 62 vollständig gewesen wäre (was bedeutet, dass die aktuelle partielle Differenz übertragen werden muss, auch wenn sie ansonsten zu klein ist), würde der Prozess mit der unten diskutierten Prüfung 67 fortfahren.
  • Wenn in Prüfung 60 partielle Differenzen gehalten worden wären, würde das Verfahren mit Prüfung 65 fortfahren, um festzustellen, ob die Größen der gehaltenen und aktuellen partiellen Differenzen den minimalen Schwellenwert für Übertragung überschreiten oder nicht. Wenn nicht, wird in Prüfung 66 festgestellt, ob die Seite vollständig ist oder nicht. Wenn nicht, wird die partielle Differenz in Schritt 63 gehalten und mit etwaigen vorher gehaltenen partiellen Differenzen akkumuliert, und in Schritt 64 wird mit dem nächsten Teil fortgefahren, und der Prozess kehrt zu Schritt 659 zurück.
  • Wenn die Größen der gehaltenen und der aktuellen partiellen Differenzen in Prüfung 65 den minimalen Schwellenwert für Übertragung überschreiten oder die Seite in Prüfung 66 vollständig ist (was bedeutet, dass die aktuelle partielle Differenz übertragen werden muss, auch wenn sie ansonsten zu klein ist), würde der Prozess mit der Prüfung 67 fortfahren.
  • In Prüfung 67 wird festgestellt, ob die kumulative Größe der bereits übertragenen partiellen Differenzen und derjenigen, die gerade übertragen werden sollen, den oben diskutierten maximalen Schwellenwert überschreitet oder nicht. Wenn ja, wird in Schritt 68 der Prozess der partiellen Differenz abgebrochen und werden die Daten der neuen Seite an den lokalen Proxy übertragen. Diese Übertragung selbst kann erfolgen, nachdem der entfernten Proxy die vollständige neue Seite empfangen hat, oder in Teilen, so wie die Teile an dem entfernten Proxy empfangen werden. Es wird anerkannt, dass Abbrechen des Prozesses der partiellen Differenz bei Erreichen des maximalen Schwellenwerts kontraproduktiv sein kann, weil die zusätzliche Menge der Differenzdaten, die noch zu berechnen sind, klein sein kann, aber es gibt keine Möglichkeit, das zu wissen. Andere Techniken können entwickelt werden, um sich damit zu befassen.
  • Wenn in Prüfung 67 die kumulative Größe der bereits übertragenen partiellen Differenzen und derjenigen, die gerade übertragen werden sollen, den maximalen Schwellenwert nicht überschreitet, werden die aktuelle partielle Differenz und etwaige gehaltene partiellen Differenzen in Schritt 69 an den lokalen Proxy übertragen. In Prüfung 600 wird festgestellt, ob die Seite vollständig ist oder nicht, in welchem Fall der Prozess in 601 endet. Anderenfalls fährt der Prozess mit Schritt 64 fort, in dem der nächste Teil verarbeitet wird.
  • Es sollte beachtet werden, dass zwischengespeicherte Seiten in Übereinstimmung mit der vorliegenden Erfindung selbst nach ihren vorgegebenen Ablaufdaten behalten werden und „nicht zwischenspeicherbare" Seiten zwischengespeichert werden. Dies beruht darauf, dass in einem System, das darauf angewiesen ist, frühere Daten im Voraus zu übertragen und im Anschluss Differenzen zu übertragen, selbst eine abgelaufene Version noch besser sein kann als keine Version. Solange die Differenzen zwischen der früheren Version (abgelaufen oder nicht) und der aktuellen Version berechnet werden können, sind Ablaufdaten und „Zwischenspeicherbarkeit" belanglos. Dies ist akzeptabel, weil zwischengespeicherte Seiten nur verwendet werden, um Differenzdaten basierend auf Abrufen der aktuellen Seite zu erzeugen.
  • Damit ist ersichtlich, dass diese Erfindung die wahrnehmbaren Verzögerungen reduziert, die vorkommen bei der Übertragung von Datenseiten von einem relativ schnellen Netzwerk zu einem Benutzer, der über eine relativ langsame Verbindung mit dem Netzwerk verbunden ist, teilweise durch besseren Ausnutzung der Zwischenspeicherungsfähigkeiten des Browsers. Ein Fachmann wird erkennen, dass die vorliegende Erfindung praktisch umgesetzt werden kann durch andere als die beschriebenen Ausführungsformen, die zum Zweck der Erläuterung und nicht der Beschränkung vorgebracht werden, und die vorliegende Erfindung ist nur durch die Patentansprüche, die folgen, beschränkt.

Claims (26)

  1. Verfahren zum Übertragen und Anzeigen von Datenseiten in einem Datennetzwerk, wobei das Netzwerk von einem Typ ist, auf dem Daten als Seiten abgefragt werden können, wobei das Netzwerk (16) mindestens einen Server, in dem die Datenseiten gespeichert werden, ein Gateway (15, 150), das mit dem mindestens einen Server verbunden ist, und eine Benutzerstation (11) hat, die über eine Datenverbindung (14) mit einer endlichen Geschwindigkeit mit dem Gateway verbunden ist, wobei die Benutzerstation (11) eine der Seiten von dem mindestens einen Server anfordert, und das Verfahren die folgenden Schritte umfasst: Senden einer Anforderung von der Benutzerstation (11) zu dem Gateway (15, 150) zum Abfragen der Datenseite von einem des mindestens eines Servers; Abrufen einer Basisversion der Datenseite; Initiieren, als Antwort auf eine Bestimmung, dass die Basisversion nicht aktuell ist, einer Abfrage der Datenseite von einem des mindestens einen Servers zu dem Gateway (15, 150) zur Übertragung zur Benutzerstation; Bestimmen, nach Empfang einer Antwort auf die Anforderung an dem Gateway (15, 150), einer Differenz zwischen der angeforderten Datenseite und der Basisversion der Seite; und Übertragen der Differenz zu der Benutzerstation (11); das Verfahren dadurch gekennzeichnet ist, dass es weiter die folgenden Schritte umfasst: Berechnen der Datenseite an der Benutzerstation als eine Funktion der Basisversion und der Differenz; und Anzeigen der berechneten Seite an der Benutzerstation (11); und weiter umfassend, das Bestimmen eines Maßes an Effizienz des Differenz-Bestimmungs- und Berechnungs-Schrittes und des Differenz-Übertragungs-Schrittes; und wenn das Maß an Effizienz angibt, dass das Senden der angeforderten Datenseite in ihrer Gesamtheit von dem Gateway (15, 150) zu der Benutzerstation (11) effizient ist: Abbrechen der Abrufungs- und Übertragungs-Schritte und des Schritts der Anzeige der berechneten Seite, Senden der angeforderten Datenseite in ihrer Gesamtheit von dem Gateway (15, 150) zu der Benutzerstation (11), und Anzeigen der angeforderten Datenseite an der Benutzerstation (11).
  2. Verfahren von Anspruch 1, wobei der Gateway (150) der Server ist.
  3. Verfahren von Anspruch 1, wobei die Basisversion der Datenseite eine frühere Version der Datenseite ist.
  4. Verfahren von Anspruch 1, wobei die Basisversion der Datenseite gemeinsame Elemente mit der Datenseite teilt.
  5. Verfahren von Anspruch 1, wobei der Abrufungs-Schritt folgendes umfasst: Abrufen der Basisversion der Seite aus dem Speicher des Gateways (15, 150); und Überfragen der Basisversion der Seite von dem Gateway (15, 150) zu der Benutzerstation (11).
  6. Verfahren von Anspruch 1, wobei der Abrufungs-Schritt folgendes umfasst: Abrufen einer ersten Version der Seite an der Benutzerstation (11); Abrufen einer zweiten Version der Seite an dem Gateway (15, 150); Vergleichen der ersten Version mit der zweiten Version; und Übertragen der zweiten Version von dem Gateway (15, 150) zu der Benutzerstation (1l), wenn die zweite Version sich von der ersten Version unterscheidet.
  7. Verfahren von Anspruch 1, wobei der Schritt zum Bestimmen eines Maßes an Effizienz folgendes umfasst: Beurteilen, nach der Bestimmung der Differenz, einer zusammengesetzten Übertragungsgröße, die eine Funktion der Größe der Differenz und der Übertragungsgröße einer beliebigen verbleibenden Menge der noch zu übertragenden Basisversion darstellt; Vergleichen der zusammengesetzten Übertragungsgröße mit der Übertragungsgröße der angeforderten Datenseite; und wenn die Übertragungsgröße der angeforderten Datenseite die zusammengesetzte Übertragungsgröße überschreitet, Bestimmen, dass das Senden der angeforderten Datenseite in ihrer Gesamtheit von dem Gateway (15, 150) zu der Benutzerstation (11) ineffizient ist, andernfalls Bestimmen, dass das Senden der angeforderten Datenseite in ihrer Gesamtheit von dem Gateway (15, 150) zu der Benutzerstation (11) effizient ist.
  8. Verfahren von Anspruch 7, wobei jede der zusammengesetzten Übertragungsgröße und der Übertragungsgröße der angeforderten Datenseite auf der Grundlage der Komprimierung vor der Übertragung bestimmt wird.
  9. Verfahren von Anspruch 1, wobei der Schritt zum Bestimmen eines Maßes an Effizienz folgendes umfasst: Bestimmen, wenn die angeforderte Seite an dem Gateway (15, 150) empfangen wird, welcher Anteil der Basisversion zu der Benutzerstation (11) übertragen wurde; und Bestimmen, wenn der Anteil der Basisversion, der gesendet wurde, oberhalb eines Schwellenwert-Anteils liegt, dass das Senden der angeforderten Datenseite in ihrer Gesamtheit von dem Gateway (15, 150) zu der Benutzerstation (11) ineffizient ist, andernfalls Bestimmen, dass das Senden der angeforderten Datenseite in ihrer Gesamtheit von dem Gateway (15, 150) zu der Benutzerstation (11) effizient ist.
  10. Verfahren von Anspruch 9, wobei der Schwellenwert-Anteil dynamisch bestimmt wird.
  11. Verfahren von Anspruch 10, wobei der Schwellenwert-Anteil auf der Grundlage der der endlichen Geschwindigkeit bestimmt wird.
  12. Verfahren von Anspruch 1, wobei der Schritt zum Bestimmen eines Maßes an Effizienz folgendes umfasst: Bestimmen, wenn die angeforderte Seite an dem Gateway (15, 150) empfangen wird, welcher Anteil der Basisversion zu der Benutzerstation (11) übertragen wurde; und Bestimmen, wenn der Anteil der Basisversion, der gesendet wurde, oberhalb eines Schwellenwert-Anteils liegt, dass das Senden der angeforderten Datenseite in ihrer Gesamtheit von dem Gateway (15, 150) zu der Benutzerstation (11) ineffizient ist, andernfalls: Beurteilen, nach der Bestimmung der Differenz, einer zusammengesetzten Übertragungsgröße, die eine Funktion der Größe der Differenz und der Größe einer beliebigen verbleibenden Menge der noch zu übertragenden Basisversion darstellt; Vergleichen der zusammengesetzten Übertragungsgröße mit der Übertragungsgröße der angeforderten Datenseite; und wenn die Übertragungsgröße der angeforderten Datenseite die zusammengesetzte Übertragungsgröße überschreitet, Bestimmen, dass das Senden der angeforderten Datenseite in ihrer Gesamtheit von dem Gateway (15, 150) zu der Benutzerstation (11) ineffizient ist, andernfalls Bestimmen, dass das Senden der angeforderten Datenseite in ihrer Gesamtheit von dem Gateway (15, 150) zu der Benutzerstation (11) effizient ist.
  13. Verfahren von Anspruch 12, wobei jede der zusammengesetzten Übertragungsgröße und der Übertragungsgröße der angeforderten Datenseite auf der Grundlage der Komprimierung vor der Übertragung bestimmt wird.
  14. Verfahren von Anspruch 12, wobei der Schwellenwert-Anteil dynamisch bestimmt wird.
  15. Verfahren von Anspruch 14, wobei der Schwellenwert-Anteil auf der Grundlage der endlichen Geschwindigkeit bestimmt wird.
  16. Verfahren von Anspruch 1, weiter umfassend: Vergleichen der Größe der Differenz mit einem Schwellenwert; und wenn die Größe der Differenz den Schwellenwert überschreitet: Abbrechen der Abrufungs- und Übertragungs-Schritte und des Schritts der Anzeige der berechneten Seite, Senden der angeforderten Datenseite in ihrer Gesamtheit von dem Gateway (15, 150) zu der Benutzerstation (11), und Anzeigen der angeforderten Datenseite an der Benutzerstation (11).
  17. Verfahren von Anspruch 16, wobei der Schwellenwert dynamisch bestimmt wird.
  18. Verfahren von Anspruch 17, wobei der Schwellenwert auf der Grundlage der endlichen Geschwindigkeit bestimmt wird.
  19. Verfahren von Anspruch 1, wobei der Bestimmungs-Schritt folgendes umfasst: Warten auf Beendigung der Abfrage der Datenseite von dem einen des mindestens einen Servers; und Vergleichen der vollständigen abgefragten Datenseite mit der Basisversion der Seite.
  20. Verfahren von Anspruch 1, wobei der Bestimmungs-Schritt umfasst: Warten auf Beendigung der Abfrage eines vorbestimmten Teils der Datenseite von dem einen von dem mindestens einen Server; Vergleichen des abgefragten vorbestimmten Teils der Datenseite mit der Basisversion der Datenseite zur Erstellung einer partiellen Differenz zwischen der Datenseite und der Basisversion der Datenseite; und Wiederholen der Warten- und Vergleichs-Schritte für zusätzliche vorbestimmte Teile der Datenseite.
  21. Verfahren von Anspruch 20, weiter umfassend, nach Erstellung der partiellen Differenz: Vergleichen der Übertragungsgröße der partiellen Differenz mit einem Minimums-Schwellenwert; Übertragen der partiellen Differenz an die Benutzerstation, wenn die Übertragungsgröße der partiellen Differenz den Minimums-Schwellenwert überschreitet; und wenn die Übertragungsgröße der partiellen Differenz kleiner ist als der Minimums-Schwellenwert: Halten der partiellen Differenz, Vergleichen von mindestens einem zusätzlichen abgefragten vorbestimmten Teil der Datenseite mit einer Basisversion der Datenseite zur Erstellung von mindestens einer zusätzlichen partiellen Differenz zwischen der Datenseite und der Basisversion der Datenseite, Hinzufügen der Übertragungsgröße von der mindestens einen zusätzlichen partiellen Differenz zu der Übertragungsgröße der gehaltenen partiellen Differenz, bis eine Summe der Übertragungsgrößen den Minimums-Schwellenwert überschreitet, und Übertragen der gehaltenen partiellen Differenz und der mindestens einen zusätzlichen partiellen Differenz zu der Benutzerstation.
  22. Verfahren von Anspruch 21, wobei jede der Übertragungsgröße der partiellen Differenz und der Übertragungsgröße der mindestens einen zusätzlichen partiellen Differenz auf der Grundlage der Komprimierung vor der Übertragung bestimmt wird.
  23. Verfahren von Anspruch 20, weiter umfassend: Bestimmen einer Übertragungsgröße von jeder partiellen Differenz; nach Übertragung von jeder partiellen Differenz zu der Benutzerstation (11) Hinzufügen der Übertragungsgröße der partiellen Differenz zu einer kumulativen Übertragungsgröße von partiellen Differenzen, die zu der Benutzerstation (11) übertragen wurden; Vergleichen der kumulativen Übertragungsgröße mit einem Maximums-Schwellenwert; und wenn die kumulative Übertragungsgröße den Maximums-Schwellenwert überschreitet, Abbrechen des Bestimmungs-Schritts und Weiterleiten der Datenseite zu der Benutzerstation (11).
  24. Verfahren von Anspruch 23, wobei jede der Übertragungsgröße der partiellen Differenz und der Übertragungsgröße der mindestens einen zusätzlichen partiellen Differenz auf der Grundlage der Komprimierung vor der Übertragung bestimmt wird.
  25. Verfahren von Anspruch 1, wobei der Beurteilungs-Schritt das Schätzen, aus der Größe der partiellen Differenz, einer Gesamtgröße für Daten umfasst, die einen Unterschied zwischen der Datenseite und der Basisversion der Datenseite darstellen.
  26. Verfahren von Anspruch 1, wobei jede der zusammengesetzten Übertragungsgröße und der Übertragungsgröße der angeforderten Datenseite auf der Grundlage der Komprimierung vor der Übertragung bestimmt wird.
DE69736045T 1996-10-11 1997-10-01 Verfahren zum Übertragen und Darstellen von Datenseiten in einem Datennetzwerk Expired - Lifetime DE69736045T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/729,105 US5931904A (en) 1996-10-11 1996-10-11 Method for reducing the delay between the time a data page is requested and the time the data page is displayed
US729105 1996-10-11

Publications (2)

Publication Number Publication Date
DE69736045D1 DE69736045D1 (de) 2006-07-20
DE69736045T2 true DE69736045T2 (de) 2007-01-11

Family

ID=24929603

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69736045T Expired - Lifetime DE69736045T2 (de) 1996-10-11 1997-10-01 Verfahren zum Übertragen und Darstellen von Datenseiten in einem Datennetzwerk

Country Status (5)

Country Link
US (3) US5931904A (de)
EP (1) EP0836145B1 (de)
JP (1) JP4220000B2 (de)
CA (1) CA2217370C (de)
DE (1) DE69736045T2 (de)

Families Citing this family (159)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US5948066A (en) * 1997-03-13 1999-09-07 Motorola, Inc. System and method for delivery of information over narrow-band communications links
US6604124B1 (en) * 1997-03-13 2003-08-05 A:\Scribes Corporation Systems and methods for automatically managing work flow based on tracking job step completion status
US6253228B1 (en) * 1997-03-31 2001-06-26 Apple Computer, Inc. Method and apparatus for updating and synchronizing information between a client and a server
US6314456B1 (en) * 1997-04-02 2001-11-06 Allegro Software Development Corporation Serving data from a resource limited system
US6782427B1 (en) * 1997-04-02 2004-08-24 Allegro Software Development Corporation Serving data from a resource limited system
JPH10307818A (ja) * 1997-05-08 1998-11-17 Nec Corp 文書変換システム、文書変換方法および文書変換用プログラムを記録した記録媒体
US7103794B2 (en) 1998-06-08 2006-09-05 Cacheflow, Inc. Network object cache engine
US20030009563A1 (en) * 1997-07-31 2003-01-09 At&T Corp. Method for client-side inclusion of data elements
US6393526B1 (en) * 1997-10-28 2002-05-21 Cache Plan, Inc. Shared cache parsing and pre-fetch
US6286046B1 (en) * 1997-12-22 2001-09-04 International Business Machines Corporation Method of recording and measuring e-business sessions on the world wide web
US7010532B1 (en) * 1997-12-31 2006-03-07 International Business Machines Corporation Low overhead methods and apparatus for shared access storage devices
US6256620B1 (en) * 1998-01-16 2001-07-03 Aspect Communications Method and apparatus for monitoring information access
US6298356B1 (en) * 1998-01-16 2001-10-02 Aspect Communications Corp. Methods and apparatus for enabling dynamic resource collaboration
US6366947B1 (en) * 1998-01-20 2002-04-02 Redmond Venture, Inc. System and method for accelerating network interaction
US6185598B1 (en) 1998-02-10 2001-02-06 Digital Island, Inc. Optimized network resource location
US8296396B2 (en) 1998-02-10 2012-10-23 Level 3 Communications, Llc Delivering resources to clients in a distributed computing environment with rendezvous based on load balancing and network conditions
AUPP252798A0 (en) * 1998-03-24 1998-04-23 Griffits, John Philip Enhanced trusted systems processing
US6341339B1 (en) * 1998-03-26 2002-01-22 Compaq Computer Corporation Apparatus and method for maintaining data coherence within a cluster of symmetric multiprocessors
US6412015B1 (en) 1998-06-24 2002-06-25 New Moon Systems, Inc. System and method for virtualizing and controlling input and output of computer programs
US6427187B2 (en) 1998-07-31 2002-07-30 Cache Flow, Inc. Multiple cache communication
SE514376C2 (sv) * 1998-09-24 2001-02-19 Mirror Image Internet Inc Ett internet-cachningssystem samt ett förfarande och anordning i ett sådant system
US6230165B1 (en) * 1998-10-16 2001-05-08 Cerulean Method for encoding and transporting database objects over bandwidth constrained networks
US6279041B1 (en) * 1998-11-13 2001-08-21 International Business Machines Corporation Methods, systems and computer program products for differencing data communications using a message queue
US6178461B1 (en) * 1998-12-08 2001-01-23 Lucent Technologies Inc. Cache-based compaction technique for internet browsing using similar objects in client cache as reference objects
US6526448B1 (en) 1998-12-22 2003-02-25 At&T Corp. Pseudo proxy server providing instant overflow capacity to computer networks
US6651103B1 (en) * 1999-04-20 2003-11-18 At&T Corp. Proxy apparatus and method for streaming media information and for increasing the quality of stored media information
US6484212B1 (en) 1999-04-20 2002-11-19 At&T Corp. Proxy apparatus and method for streaming media information
EP1049028A3 (de) * 1999-04-26 2001-01-31 Sarnoff Corporation Effiziente Endgebraucherinformationsverteilung
JP3451981B2 (ja) * 1999-04-30 2003-09-29 日本電気株式会社 インターネットのホームページデータ収集方法
US6263371B1 (en) 1999-06-10 2001-07-17 Cacheflow, Inc. Method and apparatus for seaming of streaming content
US6275470B1 (en) 1999-06-18 2001-08-14 Digital Island, Inc. On-demand overlay routing for computer-based communication networks
US7188240B1 (en) * 1999-07-15 2007-03-06 International Business Machines Corporation Method and system for encryption of web browser cache
US6538667B1 (en) 1999-07-23 2003-03-25 Citrix Systems, Inc. System and method for providing immediate visual response to user input at a client system connected to a computer system by a high-latency connection
US6480211B1 (en) * 1999-07-23 2002-11-12 Denso Corporation Bi-directional update of displays in portable electronic device
US6721780B1 (en) 1999-11-09 2004-04-13 Fireclick, Inc. Predictive pre-download of network objects
DE69925170D1 (de) * 1999-11-23 2005-06-09 Peridot Invest Ltd Verfahren zur informationsverteilung zu einem netzkunden
US6374248B1 (en) * 1999-12-02 2002-04-16 Sun Microsystems, Inc. Method and apparatus for providing local path I/O in a distributed file system
AU1956101A (en) * 1999-12-10 2001-06-18 Sun Microsystems, Inc. Maintaining cache consistency for dynamic web content
KR100312426B1 (ko) * 1999-12-15 2001-11-05 오길록 실시간 운영체제 기반의 브라우저를 위한 컨텐츠 변환 및캐슁방법
JP2001184286A (ja) * 1999-12-27 2001-07-06 Nec Corp コンテンツ取得装置、コンテンツ取得方法、コンテンツサーバおよびコンテンツ取得システム
US7243136B2 (en) * 2000-01-18 2007-07-10 Inktomi Corporation Approach for managing and providing content to users
KR100366598B1 (ko) * 2000-01-25 2002-12-31 박형곤 인터넷에서 웹 서버 정보 서비스 방법
US6735623B1 (en) * 2000-02-09 2004-05-11 Mitch Prust Method and system for accessing a remote storage area
US6539406B1 (en) 2000-02-17 2003-03-25 Conectron, Inc. Method and apparatus to create virtual back space on an electronic document page, or an electronic document element contained therein, and to access, manipulate and transfer information thereon
US20040049598A1 (en) * 2000-02-24 2004-03-11 Dennis Tucker Content distribution system
AU778428B2 (en) * 2000-02-25 2004-12-02 Canon Kabushiki Kaisha Local sound and graphic feedback
BR0108797A (pt) * 2000-03-01 2003-02-18 Computer Ass Think Inc Método e sistema para atualização de um arquivo compactado de um arquivo de computador
US7509404B2 (en) * 2000-03-08 2009-03-24 Oracle International Corporation Methods and systems for partial page caching of dynamically generated content
US6684226B1 (en) * 2000-03-24 2004-01-27 Frontline Software Aps Method for storing data in one or more files so that both previous and new versions of the data are separately accessible
EP1143350A1 (de) * 2000-04-03 2001-10-10 Koninklijke KPN N.V. Verfahren und System zum Wiederauffinden von Daten auf einem Datennetzwerk
WO2001093525A2 (en) 2000-05-26 2001-12-06 Citrix Systems, Inc. Method and system for efficiently reducing graphical display data for transmission over a low bandwidth transport protocol mechanism
US6606604B1 (en) 2000-05-31 2003-08-12 International Business Machines Corporation Incremental updates of items and prices on a customer's computer to reduce download times for frequently purchased items in e-commerce transactions in a method, system and program
FI111594B (fi) 2000-06-05 2003-08-15 Nokia Corp Tilaajatietojen hallinta matkaviestinjärjestelmässä
US6675212B1 (en) 2000-06-12 2004-01-06 Gateway, Inc. Method and apparatus for efficient data browsing
US20050055426A1 (en) * 2000-06-12 2005-03-10 Kim Smith System, method and computer program product that pre-caches content to provide timely information to a user
US7058691B1 (en) 2000-06-12 2006-06-06 Trustees Of Princeton University System for wireless push and pull based services
US6742033B1 (en) 2000-06-12 2004-05-25 Gateway, Inc. System, method and computer program product that pre-caches content to provide timely information to a user
US6826626B1 (en) 2000-07-21 2004-11-30 Clear Blue Technologies Management, Inc. Method of and apparatus for rapid retrieval of data in a content distribution network
EP1323087A4 (de) * 2000-08-04 2008-04-09 Goldman Sachs & Co System zum verarbeiten von finanzrohdaten zur erzeugung validierter produktangebotsinformationen für abonennten
US7958251B2 (en) 2000-08-04 2011-06-07 Goldman Sachs & Co. Method and system for processing raw financial data streams to produce and distribute structured and validated product offering data to subscribing clients
US7139844B2 (en) 2000-08-04 2006-11-21 Goldman Sachs & Co. Method and system for processing financial data objects carried on broadcast data streams and delivering information to subscribing clients
US7958025B2 (en) 2000-08-04 2011-06-07 Goldman Sachs & Co. Method and system for processing raw financial data streams to produce and distribute structured and validated product offering objects
US6704024B2 (en) 2000-08-07 2004-03-09 Zframe, Inc. Visual content browsing using rasterized representations
US7571217B1 (en) 2000-08-16 2009-08-04 Parallel Networks, Llc Method and system for uniform resource locator transformation
US6799251B1 (en) * 2000-08-29 2004-09-28 Oracle International Corporation Performance-based caching
US6732237B1 (en) * 2000-08-29 2004-05-04 Oracle International Corporation Multi-tier caching system
EP1187016A1 (de) * 2000-09-07 2002-03-13 Matsushita Electric Industrial Co., Ltd. Verteiltes Verfahren zur Taskausführungsverarbeitung und Netzwerksystem
AU2001288820A1 (en) * 2000-09-12 2002-03-26 Citrix Systems, Inc. A system and method for accessing web pages
US6766354B1 (en) * 2000-09-28 2004-07-20 Intel Corporation Speed sensitive content delivery in a client-server network
US6968461B1 (en) * 2000-10-03 2005-11-22 Networks Associates Technology, Inc. Providing break points in a malware scanning operation
US6978281B1 (en) * 2000-11-21 2005-12-20 Microsoft Corporation Versioned project data
US7269784B1 (en) 2001-01-22 2007-09-11 Kasriel Stephane Server-originated differential caching
US20020107910A1 (en) * 2001-02-02 2002-08-08 Yan Zhao Client/server two-way communication system framework under HTTP protocol
US20020138589A1 (en) * 2001-03-21 2002-09-26 Binnur Al-Kazily System and method for service caching on-demand
US20020147849A1 (en) * 2001-04-05 2002-10-10 Chung-Kei Wong Delta encoding using canonical reference files
US7383348B2 (en) * 2001-06-13 2008-06-03 Kabushiki Kaisha Toshiba Data transfer scheme using caching technique for reducing network load
US7185063B1 (en) * 2001-06-22 2007-02-27 Digital River, Inc. Content delivery network using differential caching
EP1276292B1 (de) * 2001-07-13 2018-01-03 Hewlett-Packard Development Company, L.P. Dateiübertragungsprotokoll
US20030028673A1 (en) * 2001-08-01 2003-02-06 Intel Corporation System and method for compressing and decompressing browser cache in portable, handheld and wireless communication devices
US20040255007A1 (en) * 2001-08-03 2004-12-16 Juha Salo Method, system and terminal for data networks with distributed caches
US7103714B1 (en) 2001-08-04 2006-09-05 Oracle International Corp. System and method for serving one set of cached data for differing data requests
US6789170B1 (en) * 2001-08-04 2004-09-07 Oracle International Corporation System and method for customizing cached data
US6785769B1 (en) 2001-08-04 2004-08-31 Oracle International Corporation Multi-version data caching
US7092997B1 (en) 2001-08-06 2006-08-15 Digital River, Inc. Template identification with differential caching
US7188214B1 (en) 2001-08-07 2007-03-06 Digital River, Inc. Efficient compression using differential caching
JP4118037B2 (ja) * 2001-09-04 2008-07-16 シャープ株式会社 通信端末機器
JP2003108537A (ja) * 2001-09-13 2003-04-11 Internatl Business Mach Corp <Ibm> ネットワーク上のサーバに対するサービス要求の負荷分散の方法およびシステム
US7860964B2 (en) 2001-09-28 2010-12-28 Level 3 Communications, Llc Policy-based content delivery network selection
EP1436736B1 (de) 2001-09-28 2017-06-28 Level 3 CDN International, Inc. Konfigurierbare adaptive globlale verkehrssteuerung und -verwaltung
US20030101234A1 (en) * 2001-11-28 2003-05-29 International Business Machines Corporation System and method for indicating whether a document is cached
JP2003177992A (ja) * 2001-12-10 2003-06-27 Seiko Epson Corp 差分通信システム、差分通信装置及び差分通信プログラム、並びに差分通信方法
NL1019618C2 (nl) * 2001-12-20 2003-06-24 Koninkl Kpn Nv Werkwijze, systeem en agent voor het versturen van informatie over een communicatienetwerk.
US9167036B2 (en) 2002-02-14 2015-10-20 Level 3 Communications, Llc Managed object replication and delivery
US7296051B1 (en) 2002-02-19 2007-11-13 Digital River, Inc. Predictive predownload of templates with delta encoding
US7487261B1 (en) 2002-02-22 2009-02-03 Digital River, Inc. Delta caching service
US8671213B2 (en) 2002-03-14 2014-03-11 Citrix Systems, Inc. Methods and apparatus for generating graphical and media displays at a client
US7376695B2 (en) 2002-03-14 2008-05-20 Citrix Systems, Inc. Method and system for generating a graphical display for a remote terminal session
JP4020676B2 (ja) * 2002-03-26 2007-12-12 株式会社東芝 Webシステム及びWebシステムの制御方法
US7516194B1 (en) * 2002-05-21 2009-04-07 Microsoft Corporation Method for downloading high-volumes of content from the internet without adversely effecting the source of the content or being detected
JP3848209B2 (ja) * 2002-05-23 2006-11-22 株式会社東芝 データ転送装置、データ転送方法及びプログラム
US7565399B1 (en) * 2002-08-26 2009-07-21 Netapp, Inc. Caching web objects transformed by a pipeline of adaptation services
US20040205165A1 (en) * 2003-01-21 2004-10-14 Eplication Networks Ltd. Method for improving quality of service from an Internet server employing heuristic optimization of downloading
US7571391B2 (en) * 2003-10-17 2009-08-04 Sap Ag Selective rendering of user interface of computer program
US7251649B2 (en) * 2003-10-31 2007-07-31 Hewlett-Packard Development Company, L.P. Method for prioritizing content
US20050144278A1 (en) * 2003-12-12 2005-06-30 Valeri Atamaniouk System and method for multipart response optimization
US8010670B2 (en) * 2003-12-23 2011-08-30 Slipstream Data Inc. Meta-data based method for local cache utilization
US7840557B1 (en) * 2004-05-12 2010-11-23 Google Inc. Search engine cache control
US7853676B1 (en) * 2004-06-10 2010-12-14 Cisco Technology, Inc. Protocol for efficient exchange of XML documents with a network device
US7437364B1 (en) * 2004-06-30 2008-10-14 Google Inc. System and method of accessing a document efficiently through multi-tier web caching
US8676922B1 (en) 2004-06-30 2014-03-18 Google Inc. Automatic proxy setting modification
US8224964B1 (en) 2004-06-30 2012-07-17 Google Inc. System and method of accessing a document efficiently through multi-tier web caching
US7577749B1 (en) 2004-12-03 2009-08-18 Ux Ltd. Emulation of persistent HTTP connections between network devices
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
US8126990B2 (en) 2005-04-21 2012-02-28 Fiducci Thomas E Data backup and transfer system, method and computer program product
US7849165B2 (en) 2005-04-21 2010-12-07 Fiducci Thomas E Data backup, storage, transfer, and retrieval system, method and computer program product
US8583827B2 (en) * 2005-05-26 2013-11-12 Citrix Systems, Inc. Dynamic data optimization in data network
US20070055957A1 (en) * 2005-09-07 2007-03-08 Richard Birenheide Remote debugging proxy
US7596720B2 (en) * 2005-09-27 2009-09-29 Microsoft Corporation Application health checks
US7603669B2 (en) * 2005-09-27 2009-10-13 Microsoft Corporation Upgrade and downgrade of data resource components
US7676806B2 (en) * 2005-09-27 2010-03-09 Microsoft Corporation Deployment, maintenance and configuration of complex hardware and software systems
US20070101061A1 (en) * 2005-10-27 2007-05-03 Guruprasad Baskaran Customized content loading mechanism for portions of a web page in real time environments
US7830388B1 (en) * 2006-02-07 2010-11-09 Vitie Inc. Methods and apparatus of sharing graphics data of multiple instances of interactive application
US7996495B2 (en) 2006-04-06 2011-08-09 General Electric Company Adaptive selection of image streaming mode
TW200743000A (en) * 2006-05-11 2007-11-16 Ming-Ta Hsu Report retrieval and presentation methods and systems
CN101193113A (zh) * 2006-11-29 2008-06-04 国际商业机器公司 内容响应和内容请求方法及内容响应器和内容请求器
US8499044B2 (en) * 2006-12-07 2013-07-30 Microsoft Corporation Formatted message processing utilizing a message map
US8812651B1 (en) 2007-02-15 2014-08-19 Google Inc. Systems and methods for client cache awareness
US8065275B2 (en) * 2007-02-15 2011-11-22 Google Inc. Systems and methods for cache optimization
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
US20080228864A1 (en) * 2007-03-12 2008-09-18 Robert Plamondon Systems and methods for prefetching non-cacheable content for compression history
US8701010B2 (en) 2007-03-12 2014-04-15 Citrix Systems, Inc. Systems and methods of using the refresh button to determine freshness policy
US7783757B2 (en) 2007-03-12 2010-08-24 Citrix Systems, Inc. Systems and methods of revalidating cached objects in parallel with request for object
US7584294B2 (en) 2007-03-12 2009-09-01 Citrix Systems, Inc. Systems and methods for prefetching objects for caching using QOS
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
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
US20090049243A1 (en) * 2007-08-13 2009-02-19 Microsoft Corporation Caching Dynamic Content
US10924573B2 (en) 2008-04-04 2021-02-16 Level 3 Communications, Llc Handling long-tail content in a content delivery network (CDN)
US8930538B2 (en) 2008-04-04 2015-01-06 Level 3 Communications, Llc Handling long-tail content in a content delivery network (CDN)
US9762692B2 (en) 2008-04-04 2017-09-12 Level 3 Communications, Llc Handling long-tail content in a content delivery network (CDN)
US8205643B2 (en) * 2008-10-16 2012-06-26 Woodward, Inc. Multi-tubular fluid transfer conduit
JP5280908B2 (ja) * 2009-03-25 2013-09-04 公益財団法人鉄道総合技術研究所 車上通信装置、データ配信方法、及びプログラム
US8539160B2 (en) * 2009-09-10 2013-09-17 Red Hat, Inc. Asynchronous cache refresh for systems with a heavy load
US8825018B2 (en) * 2010-06-01 2014-09-02 Blackberry Limited Methods and apparatus for increasing voice call performance through controlled interruption of data transfer in a relay network
US8495019B2 (en) 2011-03-08 2013-07-23 Ca, Inc. System and method for providing assured recovery and replication
US8732571B2 (en) * 2011-03-31 2014-05-20 Google Inc. Methods and systems for generating and displaying a preview image of a content area
CA2738290C (en) * 2011-04-28 2019-03-05 Ibm Canada Limited-Ibm Canada Limitee Exclusion of irrelevant data from a dom equivalence
US8909888B2 (en) * 2011-04-29 2014-12-09 Seagate Technology Llc Secure erasure of data from a non-volatile memory
US8984166B2 (en) 2012-04-05 2015-03-17 Cloudflare, Inc. Method and apparatus for reducing network resource transmission size using delta compression
US8832288B1 (en) * 2012-07-13 2014-09-09 Google Inc. Transitions between remotely cached and live versions of a webpage
US9110939B2 (en) * 2012-10-05 2015-08-18 Here Global B.V. Method and apparatus for providing incremental database updates based on delta pages
KR101432990B1 (ko) * 2012-12-12 2014-08-22 에스케이플래닛 주식회사 사용자의 입력에 즉각적인 결과를 제공할 수 있는 서비스 제공 방법, 이를 위한 시스템 및 장치
US9519433B2 (en) 2015-05-13 2016-12-13 VSector Security Technologies, LLC Secure virtual sector erasure method and system
WO2017064586A1 (en) * 2015-10-15 2017-04-20 Tensera Networks Ltd. Freshness-aware presentation of content in communication terminals
US10044826B2 (en) 2016-08-10 2018-08-07 Cloudflare, Inc. Method and apparatus for reducing network resource transmission size using delta compression
JP2018195039A (ja) * 2017-05-17 2018-12-06 コニカミノルタ株式会社 データ通信システム及びデータ処理装置
WO2018234967A1 (en) 2017-06-19 2018-12-27 Tensera Networks Ltd. SILENT CONTENT UPDATE IN USER DEVICES

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4992954A (en) * 1987-08-05 1991-02-12 Hitachi, Ltd. Method of storing character patterns and character pattern utilization system
US5210865A (en) * 1989-06-30 1993-05-11 Digital Equipment Corporation Transferring data between storage media while maintaining host processor access for I/O operations
US5155484A (en) * 1991-09-13 1992-10-13 Salient Software, Inc. Fast data compressor with direct lookup table indexing into history buffer
EP0537397B1 (de) * 1991-10-17 1997-02-05 International Business Machines Corporation Adaptive FIFO-Speichersteuerung
US5235419A (en) * 1991-10-24 1993-08-10 General Instrument Corporation Adaptive motion compensation using a plurality of motion compensators
WO1994006099A1 (en) * 1992-09-01 1994-03-17 Apple Computer, Inc. Improved vector quantization
GB2278973B (en) * 1993-06-11 1997-10-29 Quantel Ltd Video image processing systems
US5561688A (en) * 1993-12-29 1996-10-01 International Business Machines Corporation Real-time digital audio compression/decompression system
JPH07234810A (ja) * 1994-02-24 1995-09-05 Fujitsu Ltd 共有文書管理方式
US5619685A (en) * 1994-11-04 1997-04-08 Ball Corporation Run-time dynamically adaptive computer process for facilitating communication between computer programs
US5686912A (en) * 1995-05-08 1997-11-11 Hewlett-Packard Company Data compression method and apparatus with optimized transitions between compressed and uncompressed modes
US5754774A (en) * 1996-02-15 1998-05-19 International Business Machine Corp. Client/server communication system
US5878213A (en) * 1996-02-15 1999-03-02 International Business Machines Corporation Methods, systems and computer program products for the synchronization of time coherent caching system
US5867661A (en) * 1996-02-15 1999-02-02 International Business Machines Corporation Method and apparatus of using virtual sockets for reducing data transmitted over a wireless communication link between a client web browser and a host web server using a standard TCP protocol
US5859971A (en) * 1996-02-15 1999-01-12 International Business Machines Corp. Differencing client/server communication system for use with CGI forms
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

Also Published As

Publication number Publication date
US6910073B2 (en) 2005-06-21
JP4220000B2 (ja) 2009-02-04
EP0836145A3 (de) 1999-04-07
EP0836145A2 (de) 1998-04-15
EP0836145B1 (de) 2006-06-07
DE69736045D1 (de) 2006-07-20
US6240447B1 (en) 2001-05-29
CA2217370A1 (en) 1998-04-11
CA2217370C (en) 2001-05-08
US5931904A (en) 1999-08-03
JPH10214239A (ja) 1998-08-11
US20010020248A1 (en) 2001-09-06

Similar Documents

Publication Publication Date Title
DE69736045T2 (de) Verfahren zum Übertragen und Darstellen von Datenseiten in einem Datennetzwerk
DE602004002783T2 (de) Verfahren, system und programmprodukt zum asynchronen verarbeiten von anforderungen
DE69727438T2 (de) Zwischenspeicher-Protokoll für verbesserte Webleistung
DE69926940T2 (de) Verfahren und System zum Auslagern der Konversionen von Nachrichtenanhängen
DE69732605T2 (de) Dynamisches Cachespeicher-Vorladen über lose gekoppelte administrative Bereiche
DE69832057T2 (de) Datendienst in einem mobilen kommunikationsnetz
DE69909839T3 (de) Optimierte Lokalisierung von Netzwerkbetriebsmittel
DE60130011T2 (de) Http-multiplexer/demultiplexer
EP1559038B1 (de) Verfahren zum vorabübertragen strukturierter datenmengen zwischen einer clienteinrichtung und einer servereinrichtung
DE60110614T2 (de) Verfahren und vorrichtung zur prüfung eines inhaltservers
DE60125599T2 (de) Verfahren und system zum transparenten zugreifen auf ferngespeicherte dateien
DE60015423T2 (de) Verfahren und Vorrichtung zur Objektwiedergabe in einem Netzwerk
DE60011069T2 (de) Behandlung einer anfrage nach informationen, die von einem dienstleisters angeboten werden
DE112006000650B4 (de) Webbasiertes Verwaltungsverfahren und Vorrichtung zum Durchführen desselben
DE69821050T2 (de) Datenstromdifferenzierungssystem für Endgerätemulator
DE69834129T2 (de) Verfahren und system zum vorausladen von informationen
DE10356724B3 (de) Verfahren zum Verringern des Transportvolumens von Daten in Datennetzen
DE60313567T2 (de) Zugriffsrelayvorrichtung
DE602005003449T2 (de) Verbesserte benutzerschnittstelle
DE60130633T2 (de) Gesicherte Internet-Zwischenablage
DE60204528T2 (de) Auflösen von virtuellen Netzwerknamen
DE69723432T2 (de) Informationsauffindungssystem mit einer cachedatenbank
DE19747583B4 (de) Kommunikationssystem und Verfahren
DE202008013034U1 (de) System zum Beschleunigen von Browsing-Sitzungen
DE60002442T2 (de) Addressieren im internet

Legal Events

Date Code Title Description
8364 No opposition during term of opposition