DE69834129T2 - Verfahren und system zum vorausladen von informationen - Google Patents

Verfahren und system zum vorausladen von informationen Download PDF

Info

Publication number
DE69834129T2
DE69834129T2 DE69834129T DE69834129T DE69834129T2 DE 69834129 T2 DE69834129 T2 DE 69834129T2 DE 69834129 T DE69834129 T DE 69834129T DE 69834129 T DE69834129 T DE 69834129T DE 69834129 T2 DE69834129 T2 DE 69834129T2
Authority
DE
Germany
Prior art keywords
prefetch
data
requested
objects
server
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
DE69834129T
Other languages
English (en)
Other versions
DE69834129D1 (de
Inventor
Kenneth Peter Ardsley MALKIN
Shi-lung Philip Chappaqua YU
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE69834129D1 publication Critical patent/DE69834129D1/de
Application granted granted Critical
Publication of DE69834129T2 publication Critical patent/DE69834129T2/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/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • 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/561Adding application-functional data or data for application control, e.g. adding metadata
    • 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
    • H04L67/5681Pre-fetching or pre-delivering data based on network characteristics
    • 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
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/2885Hierarchically arranged intermediate devices, e.g. for hierarchical caching
    • 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]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • Y10S707/99945Object-oriented database structure processing

Description

  • Die vorliegende Erfindung betrifft ein Verfahren und eine Vorrichtung zum dynamischen Vorabrufen von Daten oder Objekten für Clients, wobei die Clients vorzugsweise einer Hierarchie von Proxy-Servern zugeordnet werden, beispielsweise können sie am Vorabrufen von Web-Objekten im World Wide Web beteiligt sein. BEGRIFFSGLOSSAR
    Internet: Netz von Netzwerken und Gateways, die die TCP/IP-Protokollgruppe verwenden.
    Client: Ein Client ist ein Computer, der Befehle an den Server ausgibt, der die dem Befehl zugeordnete Task ausführt.
    Server: Jeder Computer, der eine Task auf den Befehl eines anderen Computers hin ausführt, ist ein Server. Ein Web-Server unterstützt normalerweise einen oder mehrere Clients.
    World Wide Web (WWW oder Web): Die Internetanwendung, die Benutzer nach Daten in der Internetvermittlungsverbindung von Server zu Server und Datenbank zu Datenbank suchen lässt, indem hervorgehobene Wörter oder Phrasen von Interesse (bekannt als Hyperlinks) ausgewählt ("angeklickt") werden. Ein WWW-Internetserver unterstützt Clients und stellt Daten für diese bereit. Das Web, das als das Internet mit allen als URLs adressierten Ressourcen betrachtet werden kann, verwendet HTML zum Anzeigen der URLs entsprechenden Daten und stellt eine Zeige-und-Anklick-Schnittstelle (point-and-click interface) zu anderen URLs bereit.
    Universal Resource Locator (URL): Der URL dient dem Verfahren zum eindeutigen Kennzeichnen oder Adressieren von Daten im Internet und kann als Web-Dokumentenversion einer eMail-Adresse betrachtet werden. Auf URLs kann mittels eines Hyperlink zugegriffen werden. Ein Beispiel für eine URL-Kennzeichnung ist "http://www.philipyu.com:80/table.html". Der URL hat vier Komponenten. Ganz links im Beispiel gibt die erste Komponente das zu verwendende Protokoll an (in diesem Fall http), vom Rest des Locator durch einen ":" getrennt. Die nächste Komponente ist der Hostname oder die IP-Adresse des Zielhost; diese Komponente wird auf der linken Seite vom doppelten Schrägstrich "//" und auf der rechten Seite von einem einzelnen Schrägstrich "/" (oder wahlweise einem ":") begrenzt. Die Anschlussnummer ist eine zusätzliche Komponente und wird links vom Hostnamen durch einen ":" und rechts von einem einzelnen Schrägstrich "/" begrenzt. Die vierte Komponente ist der eigentliche Dateiname oder Programmname (in diesem Beispiel table.html), wobei weitere einzelne Schrägstriche verwendet werden, um Verzeichnisse und Unterverzeichnisse auf herkömmliche Weise zu trennen. In diesem Beispiel bedeutet die Erweiterung „.html", dass es sich um eine HTML-Datei handelt.
    Hypertext Markup Language (HTML): HTML ist eine Sprache, die von Web-Servern zum Erzeugen und Verbinden von Dokumenten verwendet wird, die von Web-Clients betrachtet werden. HTML erzeugt Hypertext-Dokumente.
    Hypertext Transfer Protocol (HTTP): HTTP ist ein Beispiel eines zustandslosen Protokolls, in dem jede Anforderung von einem Client an einen Server unabhängig bearbeitet wird. Der Server hat keinen Datensatz von früheren Verbindungen. Am Anfang eines URL zeigt "http:" den anfordernden Client an, und der Datenaustausch mit dem Zielserver muss unter Verwendung des HTTP-Protokolls bezüglich der angegebenen Ressource erfolgen.
    Internet-Browser oder Web-Browser: ein Hilfsprogramm einer grafischen Oberfläche, das Internetprotokolle ausführt, beispielsweise HTTP, und Ergebnisse auf dem Bildschirm des Benutzers anzeigt. Der Browser kann als ein Leitfaden durch das Internet fungieren, komplett mit bildlichen Arbeitsoberflächen, Verzeichnissen und Suchmaschinen für den Fall, dass ein Benutzer im Internet "surft". In dieser Anwendung ist der Web-Browser ein Client-Dienst, der mit dem World Wide Web Daten austauscht.
    Client-Cachespeicher: Client-Cachespeicher werden normalerweise als eine primäre Gruppe (Cachespeicher) von Objekten verwendet, auf die der Client zugreift. In der WWW-Umgebung werden Client-Cachespeicher normalerweise von Web-Browsern realisiert und können Objekte zwischenspeichern, auf die während eines aktuellen Aufrufs zugegriffen wird, d.h. im Falle eines nichtpermanenten Cachespeichers, oder sie können Objekte über Aufrufe hinweg zwischenspeichern.
    Zwischenspeicher-Proxys (caching proxies): Spezialisierte Server in einem Netz, die als Agenten im Auftrag des Client fungieren, um ein Objekt zu finden, wobei möglicherweise eine zwischengespeicherte Kopie rückübertragen wird. Zwischenspeicher-Proxys dienen normalerweise als sekundäre Cachespeicher oder Cachespeicher einer höheren Ebene, da sie infolge von Cachespeicher-Fehlschlägen von Client-Cachespeichern aufgerufen werden.
    META-Kennzeichnung (META-tagging): Die Zuordnung von Daten zu einem gegebenen Objekt. Beispielsweise können in HTTP Daten in den Feldern des HTTP-Vorsatzes sowohl Anforderungen als auch Antworten zugeordnet werden. Ein HTTP-Client kann beispielsweise den URL angeben, von dem eine rückübertragene Seite angefordert wurde.
  • Da das World Wide Web (WWW oder Web) zunehmend beliebter wird, hat der Datenverkehr über das Internet deutlich zugenommen. Das Web wurde nun zu einem der Hauptengpässe hinsichtlich der Netzleistung. Beispielsweise kann ein Webbenutzer erhebliche Verzögerungen erfahren, wenn er Dokumente oder Daten anfordert und über eine langsame Netzverbindung mit einem Server verbunden ist. Die Übertragung der Webdaten über das Netz an den Benutzer erhöht des Weiteren den Grad an Datenverkehr im Netz. Der erhöhte Datenverkehr verringert die für die Anforderungen von anderen Benutzern verfügbare Bandbreite, was zu zusätzlichen möglichen Verzögerungen beiträgt.
  • Um Latenzzeiten für Clients zu verringern, wurden nach dem Stand der Technik zwischengespeicherte Kopien von beliebten Datendokumenten in näher beim Benutzer befindlichen Netzknoten gespeichert, von denen aus die Zugriffslatenzzeiten annehmbarer sind. Die Zwischenspeicherung kann an verschiedenen Stellen im Netz ausgeführt werden. Beispielsweise kann eine große Universität oder Firma ihren eigenen lokalen Cachespeicher aufweisen, aus dem alle an diesem Netz teilnehmenden Benutzer Dokumente abrufen können. Ein lokaler Cachespeicher kann in Form eines spezialisierten Server realisiert werden.
  • Ein spezialisierter Server, der als Zwischenspeicher-Proxy bezeichnet wird, kann als ein Agent im Auftrag von Clients fungieren, um eine mögliche zwischengespeicherte Kopie von angeforderten Daten zu suchen. Zwischenspeicher-Proxys dienen normalerweise als sekundäre Cachespeicher oder Cachespeicher der höheren Ebene, da sie sich lediglich mit Fehlschlägen befassen, die von Client-Cachespeichern übrig blieben. Client-Cachespeicher sind in verschiedenen Web-Browsern integriert. Client-Cachespeicher können entweder nur die Dokumentenzugriffe während des aktuellen Aufrufs speichern (nichtpermanenter Cachespeicher, beispielsweise Mosaic) oder Dokumente über Aufrufe hinweg zwischenspeichern.
  • In der Vergangenheit fand eine Beschäftigung mit der Zwischenspeicherung von Web-Dokumenten hauptsächlich im Bereich der bedarfsorientierten Zwischenspeicherung (on-demand caching) statt. Eine bedarfsorientierte Zwischenspeicherung bedeutet, dass eine Zwischenspeicherungsentscheidung getroffen wird, nachdem ein Objekt angefordert wurde. Beispielsweise beschreiben Abrams et. al., "Caching Proxies: Limitations and Potentials", Proc. 4th International World Wide Web Conference, 1996, verschiedene bedarfsorientierte Zwischenspeicherungsmaßnahmen, die für das Web geprüft wurden.
  • "Prefetching in World Wide Web" von Wang und Cowcroft, IEEE GlobeCom 1996, beschreibt vom Client eingeleitete Vorabrufvorgänge im World Wide Web (WWW). Es wird vorgeschlagen, vom Server eingeleitete Vorabrufvorgänge zu verwenden, indem der Server veranlasst wird, Seiten für den Client vorauszuladen, dies wird jedoch aufgrund der Notwendigkeit zur Änderung sowohl des Server als auch des Client als weniger vorteilhaft als vom Client eingeleitete Vorabrufvorgänge betrachtet. "Prefetching links on the WWW" von Jiang und Kleinrock, IEEE International Conference on Communications, 1997, beschreibt die vorzugsweise im Client stattfindende Verwaltung von statistischen Daten bezüglich Datenbezugsmustern, so dass Objekte, auf die mit hoher Wahrscheinlichkeit Bezug genommen wird, vorabgerufen werden können. "An Interactive Prefetching Proxy Server for Improvement of WWW Latency" von Chinen und Yamaguchi, INET 97, beschreibt einen in einem Proxy-Server ausgeführten Vorabrufalgorithmus, der auf eigene Initiative Seiten abruft, auf die in angeforderten Seiten Bezug genommen wird.
  • In einem Internet-Service-Provider-(ISP-)Netz oder einem Firmennetz (corporate network) können verschiedene regionale Proxys oder Abteilungs-Proxys in der Proxy-Hierarchie ein unterschiedliches Bezugsverhalten beobachten oder mit unterschiedlichem Netzverkehr und Verzögerungen konfrontiert werden. Das Vorhandensein der Proxy-Hierarchie kompliziert außerdem die Vorabrufentscheidung, ob alle zwischengeschalteten Proxys, der Client oder eine Teilgruppe von diesen den Vorabrufvorgang ausführen müssen. Folglich besteht ein Bedarf an einem Vorabrufverfahren und -system, das Vorabrufaktivitäten hinsichtlich der Proxy-Serverhierarchie und den zugeordneten Clients leistungsfähig koordinieren kann.
  • Dementsprechend stellt die vorliegende Erfindung ein Verfahren bereit, wie es in den Ansprüchen definiert wird, um Daten aus einem Inhaltsserver über ein Datenübertragungsnetz vorabzurufen, wobei das Datenübertragungsnetz einen oder mehrere Proxy-Server und einen oder mehrere Clients enthält, wobei das Verfahren die folgenden Schritte umfasst: Anfordern von Daten aus dem Inhaltsserver über mindestens einen Proxy-Server in einem Client; Einrichten von Vorabrufhinweisdaten (prefetch hint information) im Server, die Daten kennzeichnen, die im Anschluss an die angeforderten Daten wahrscheinlich vom Client angefordert werden, auf der Grundlage von vorherigen Abruf- oder Zugriffsvorgängen durch die Clients; Kommentieren der angeforderten Daten im Server mit den Vorabrufhinweisdaten und Rückübertragen der angeforderten Daten zusammen mit den Vorabrufhinweisdaten über den mindestens einen Proxy-Server an den Client; und Vorabrufen von Daten im Client oder in dem mindestens einen Proxy-Server auf der Grundlage der Vorabrufhinweisdaten und der angeforderten Daten, wodurch die abgerufenen Daten problemloser zugänglich gemacht werden.
  • Normalerweise umfassen die angeforderten Daten angeforderte Objekte, und die Auswahldaten umfassen Vorabrufkandidatenobjekte (prefetch candidate objects), beispielsweise Internetdaten. In diesem Fall kann das angeforderte Objekt durch einen den Internetdaten zugeordneten Hypertext-Transfer-Protocol-(HTTP-)Link auf das Auswahlobjekt Bezug nehmen, wobei der Proxy-Server die Beziehung des Auswahlobjekts zu dem angeforderten Objekt durch den Universal Resource Locator (URL) des angeforderten Objekts kennzeichnet, der in einem Objektvorsatz des angeforderten Objekts gespeichert ist.
  • Vorzugsweise enthält der Schritt des Einrichtens von Vorabrufhinweisdaten die folgenden Schritte: Ermitteln eines Datenbezugsmusters der Clients auf der Grundlage der vergangenen Abrufvorgänge oder früheren Zugriffsvorgänge auf die angeforderten Daten; und Definieren von Vorabrufhinweisdaten aus dem Datenbezugsmuster. Dies kann durch die folgenden Schritte ausgeführt werden: Protokollieren von den Clients zugeordneten Datenbezugsmustern; Organisieren der Datenbezugsmuster in Gruppen von Objektkennzeichnern (object identifiers), wobei die Gruppen von Objektkennzeichnern gemäß Beziehungen zwischen den angeforderten Objekten und Vorabrufkandidatenobjekten organisiert werden; und Feststellen, welche der Gruppen ausreichende Beziehungen zwischen den Vorabrufkandidatenobjekten und den angeforderten Objekten aufweisen, um ein Vorabrufen der Vorabrufkandidatenobjekte als die Auswahldaten zu gewährleisten. Folglich beruht das Datenbezugsmuster der Clients vorteilhafterweise auf den vorherigen Abrufvorgängen oder früheren Zugriffen auf die angeforderten Daten, wobei das Datenbezugsmuster so ausgewählt wird, dass es alle allgemeinen Tendenzen in vergangenen Abruf- oder Zugriffsvorgängen durch verschiedene der Clients darstellt, die einem der Proxy-Server zugeordnet sind. Dies kann sodann zum Definieren der Vorabrufhinweisdaten verwendet werden.
  • Die Schritte des Protokollierens und Organisierens beinhalten vorzugsweise das Einrichten von Datenbanken zum Speichern von Datenbezugsmustern in den Proxy-Servern; das Anordnen von Feldern in jeder der Datenbanken, wobei die Felder Objektkennzeichner und Objektzählwerte enthalten, wobei die Objektkennzeichner die angeforderten Objekte voneinander unterscheiden; wobei die Objektzählwerte die Anzahl von Malen anzeigen, die die angeforderten Objekte nach Beobachtung von einem der Server angefordert werden; und Zuordnen von Zugriffslisten zu den Datenbanken, wobei jede der Zugriffslisten ein oder mehrere Vorabrufkandidatenobjekte enthält, die jedem angeforderten Objekt zugeordnet werden.
  • Eine solche Datenbank kann verwendet werden, um die Beziehung zwischen angeforderten Objekten und Vorabrufkandidatenobjekten zu definieren und eine Zugriffsstatistik bezüglich der angeforderten Objekte und der Vorabrufkandidatenobjekte zu protokollieren; wobei die Zugriffsstatistik eine Eltern-Objekt-Zugriffshäufigkeit von angeforderten Objekten und eine Kind-Objekt-Zugriffshäufigkeit der Vorabrufkandidatenobjekte enthält; wobei die Eltern-Objekt-Zugriffshäufigkeit die Anzahl von Malen darstellt, die ein bestimmtes der angeforderten Objekte von mindestens einem der Clients angefordert wird; wobei die Kind-Objekt-Zugriffshäufigkeit die Anzahl von Malen darstellt, die eines oder mehrere der Vorabrufkandidatenobjekte unmittelbar im Anschluss an den Zugriff auf das bestimmte der Objekte tatsächlich angefordert werden. Dies ermöglicht es, dass die Vorabrufliste von Vorabrufkandidatenobjekten auf der Grundlage des Verhältnisses der Kind-Objekt-Zugriffshäufigkeit zu der der Kind-Objekt-Zugriffshäufigkeit zugeordneten Eltern-Objekt-Zugriffshäufigkeit ausgewählt wird, wobei die Vorabrufliste nur Vorabrufkandidatenobjekte mit Verhältnissen enthält, die eine Schwellenwertwahrscheinlichkeit überschreiten.
  • Im Allgemeinen wird nur eine Teilmenge von Vorabrufkandidatenobjekten tatsächlich vorabgerufen und in einem der Proxy-Server oder einem der Clients empfangen, wobei die Auswahl dieser Teilmenge der Vorabrufkandidatenobjekte als Auswahldaten normalerweise auf Faktoren wie beispielsweise der verfügbaren Speichergröße in einem der Proxy-Server und/oder der Zugriffszeit in einem der Proxy-Server beruht. Folglich werden die Vorabrufkandidatenobjekte gemäß der Priorität vorabgerufen, die einem entsprechenden Vorabrufwert zugeordnet ist.
  • In der bevorzugten Ausführungsform umfasst der Schritt des Kommentierens der angeforderten Daten den Schritt des Platzierens der Vorabrufhinweisdaten in einem Vorabrufkennsatz (prefetch label) mit einem Format der Platform for Internet Content Selection (PICS) oder einem mit dem PICS-Format kompatiblen Kennsatzprotokoll. In einer bestimmten Ausführung dieses (PICS-)Formates werden eine Objektkennzeichnerkategorie und eine Bezugskennzeichnerkategorie definiert, und das Verfahren enthält außerdem den Schritt des Rückübertragens der Bezugskennzeichnerkategorie an den Inhaltsserver, um alle Vorabrufkandidatenobjekte zu kennzeichnen, auf die tatsächlich Bezug genommen wurde. Das Organisieren der Vorabrufhinweisdaten gemäß einem Protokoll der Platform for Internet Content Selection oder einem PICS-kompatbilen Protokoll verwendet ein bereits von vielen Browsern unterstütztes Format.
  • Normalerweise gibt es eine Hierarchie der Proxy-Server. Unter Definition eines Sendeknotens und eines Empfangsknotens in dieser Hierarchie werden die Vorabrufhinweisdaten vorzugsweise von einem anfänglichen Status zu einem endgültigen Status geändert, wobei der anfängliche Status vom Sendeknoten und der endgültige Status vom Empfangsknoten festgelegt wird. Die Vorabrufhinweisdaten im endgültigen Status bilden sodann die Grundlage für die letzte Vorabrufentscheidung (unter der Voraussetzung, dass das Abrufen von Auswahldaten vom Empfangsknoten eingeleitet wird).
  • Mit anderen Worten, die Vorabrufhinweisdaten können interpretiert und aktualisiert werden, wenn sie durch die Hierarchie von den Proxy-Servern an die Clients übertragen werden. Vorzugsweise aktualisiert ein Proxy-Server die Vorabrufhinweisdaten, falls lokale Bezugnahmen auf die angeforderten Daten vorliegen und falls der Zählwert des Server auf lokaler Ebene einen Mindestschwellenzählwert überschreitet (d.h., zu diesem Zweck ist daher eine zuverlässige Statistik lokal verfügbar). Außerdem können die Vorabrufhinweisdaten auf der Grundlage des Zwischenspeicherstatus in der Proxy-Hierarchie aktualisiert werden (um beispielsweise anzuzeigen, wo in der Hierarchie ein bestimmtes Vorabrufkandidatenobjekt zwischengespeichert werden kann).
  • Folglich können die Vorabrufhinweisdaten in einer Hierarchie von Proxy-Servern, die mindestens einen einen Sendeknoten darstellenden Proxy-Server und mindestens einen einen Empfangsknoten darstellenden Proxy-Server enthält, vom Sendenoten an den Empfangsknoten übertragen werden, wobei die anfänglichen Vorabrufhinweisdaten zu endgültigen Vorabrufdaten geändert werden, wobei die anfänglichen Vorabrufhinweisdaten vom Sendeknoten und die endgültigen Vorabrufhinweisdaten vom Empfangsknoten festgelegt werden. Die endgültigen Vorabrufhinweisdaten werden sodann als Grundlage für die letzte Vorabrufentscheidung verwendet. Normalerweise wird der Schritt des Vorabrufens von Daten vom Empfangsknoten eingeleitet.
  • Außerdem stellt die Erfindung ein Datenverarbeitungssystem zum Vorabrufen von Daten aus einem Inhaltsserver über ein Datenübertragungsnetz bereit, wie es in den Ansprüchen definiert wird, wobei das Datenübertragungsnetz einen oder mehrere Proxy-Server und einen oder mehrere Clients beinhaltet, wobei das System Folgendes umfasst: ein Mittel in einem Client zum Anfordern von Daten aus dem Inhaltsserver über mindestens einen Proxy-Server; ein Mittel zum Einrichten von Vorabrufhinweisdaten im Server, die auf der Grundlage von vorherigen Abrufvorgängen oder Zugriffsvorgängen durch die Clients Daten kennzeichnen, die im Anschluss an die angeforderten Daten wahrscheinlich vom Client angefordert werden; ein Mittel zum Kommentieren der angeforderten Daten im Server mit den Vorabrufhinweisdaten und zum Rückübertragen der angeforderten Daten zusammen mit den Vorabrufhinweisdaten über den mindestens einen Proxy-Server an den Client; und ein Mittel zum Vorabrufen von Daten im Client oder in dem mindestens einen Proxy-Server auf der Grundlage der Vorabrufhinweisdaten und der angeforderten Daten, wodurch die abgerufenen Daten problemloser zugänglich gemacht werden.
  • In einer bevorzugten Ausführungsform umfassen die angeforderten Daten angeforderte Objekte, und die Auswahldaten umfassen Vorabrufkandidatenobjekte, wobei jeder der Proxy- Server und mindestens einer der Clients einen Speicher mit mindestens einer logischen Trennung zwischen einem Hauptcachespeicher und einem Vorabrufcachespeicher (prefetch cache) aufweist, wobei die vorabgerufenen Auswahldaten im Vorabrufcachespeicher gespeichert werden.
  • Es wird bevorzugt, dass das Vorabrufmittel Objekte vorabruft und die vorabgerufenen Objekte auf der Grundlage eines Prioritätsschemas im Vorabrufcachespeicher speichert, wobei das Prioritätsschema Objekte mit einem höchsten Vorabrufwert bezüglich des verfügbaren Speichers des Vorabrufcachespeichers zuerst speichert, wobei der Vorabrufwert auf der Wahrscheinlichkeit einer einzelnen oder gehäuften Bezugnahme auf die Vorabrufobjekte durch einen oder mehrere Clients beruht. Insbesondere kann der Vorabrufwert auf einer geschätzten Zugriffswahrscheinlichkeit beruhen, dass auf ein Vorabrufkandidatenobjekt auf der Liste der Vorabrufhinweisdaten durch bestimmte der Clients zugegriffen wird, und auf einem Zugriffsaufwand des Objekts auf der Grundlage der erforderlichen Speichergröße zum Speichern von ausgewählten der Vorabrufkandidatenobjekte.
  • In einer bevorzugten Ausführungsform umfasst das Vorabrufmittel ein Vorabrufbedienprogramm (prefetch handler), das ein Berechnungsmittel zum Berechnen des Vorabrufwertes und ein Auswertungsmittel zum Auswerten des vom Berechnungsmittel berechneten Vorabrufwertes beinhaltet; wobei das Berechnungsmittel den Vorabrufwert für jeden Vorabrufobjektkennzeichner auf der Liste der Vorabrufhinweisdaten berechnet; wobei das Auswertungsmittel die Vorabrufwerte von mehreren Vorabrufkandidatenobjekten auswertet und Prioritäten für die Zwischenspeicherung von Vorabrufkandidatenobjekten vergibt, die den höchsten Vorabrufwerten auf der Liste der Vorabrufhinweisdaten zugeordnet werden. Das Vorabrufmittel kann ein erstes Vorabrufbedienprogramm in mindestens einem der Proxy-Server und ein zweites Vorabrufbedienprogramm in mindestens einem der Clients umfassen (d.h., der Vorabrufvorgang kann an verschiedenen/mehreren Positionen in der Hierarchie ausgeführt werden).
  • Eine bevorzugte Ausführungsform enthält außerdem ein Bedienprogramm für Client-Objektanforderungen (client object request handler), das im Speicher von einem der Clients gespeichert ist, wobei das Bedienprogramm für Client-Objektanforderungen den Hauptcachespeicher und den Vorabrufcachespeicher nach einem angeforderten Objekt durchsucht, bevor es das angeforderte Objekt aus einem Proxy-Server oder aus dem Netz anfordert, wobei das Bedienprogramm für Client-Objektanforderungen den Inhaltsserver oder den Proxy-Server benachrichtigt, falls das Objekt sich im Vorabrufcachespeicher befindet, indem eine Vorabrufbezugsnachricht (prefetch referenced message) an den Server erzeugt wird, die anzeigt, dass tatsächlich durch den Client auf das Vorabrufobjekt zugegriffen wurde. Ähnlich wird es bevorzugt, dass mindestens einer der Proxy-Server ein Bedienprogramm für Vorabrufbezugsnachrichten (prefetch referenced message handler) zum Weiterleiten einer Vorabrufbezugsnachricht nach dem Aufrufen einer Cachespeicher-Verwaltungsroutine enthält, falls ein angefordertes Objekt sich im Vorabrufcachespeicher befindet. Dadurch wird sichergestellt, dass der Server einen korrekten Datensatz der Zugriffsstatistik aufrechterhalten kann, auch wenn er nicht direkt wegen eines Kind-Objekts kontaktiert wird, da es aus einem Vorabrufcachespeicher im Client oder in einem Proxy-Server verfügbar ist.
  • Außerdem stellt die Erfindung einen Inhalts- oder Proxy-Server zur Verwendung im Datenverarbeitungssystem bereit, wie er in den Ansprüchen definiert wird, wobei die angeforderten Daten angeforderte Objekte umfassen und wobei die vorabgerufenen Daten Vorabrufkandidatenobjekte umfassen, wobei der Server Folgendes enthält: eine Statistiktabelle zum Protokollieren einer Zugriffsstatistik hinsichtlich der angeforderten Objekte und der Vorabrufkandidatenobjekte; wobei die Zugriffsstatistik eine Eltern-Objekt-Zugriffshäufigkeit von angeforderten Objekten und eine Kind-Objekt-Zugriffshäufigkeit der Vorabrufkandidatenobjekte enthält; wobei die Eltern-Objekt-Zugriffshäufigkeit die Anzahl von Malen darstellt, die ein bestimmtes der angeforderten Objekte von mindestens einem der Clients angefordert wird; wobei die Kind-Objekt-Zugriffshäufigkeit die Anzahl von Malen darstellt, die eines oder mehrere der Vorabrufkandidatenobjekte unmittelbar im Anschluss an den Zugriff auf das bestimmte der angeforderten Objekte tatsächlich angefordert werden; und ein Erzeugungsmittel zum Erzeugen der vorabrufhinweisdaten auf der Grundlage von Daten in der Statistiktabelle.
  • In einer Ausführungsform nimmt das Erzeugungsmittel Eingaben von ersten Zählwerten, zweiten Zählwerten, Kind-Objektkennzeichnern und Eltern-Objektkennzeichnern aus der Statistiktabelle entgegen, wobei das Erzeugungsmittel ein Auswertungsmittel zum Auswerten der Zugriffsbeziehung zwischen Eltern-Objekten und ihren zugeordneten Kind-Objekten enthält, wobei das Auswertungsmittel Kind-Objektkennzeichner auf eine Liste von Vorabrufhinweisdaten platziert, falls unmittelbar vor und im Anschluss an Bezugnahmen auf entsprechenden Eltern-Objekte durch die Clients mit einer ausreichenden Häufigkeit auf die Kind-Objekte Bezug genommen wird. Die ausreichende Häufigkeit kann auf dem Verhältnis von Kind-Zugriffen zu entsprechenden Eltern-Zugriffen beruhen. Normalerweise beinhaltet dies die folgenden Schritte: Berechnen eines Verhältnisses des zweiten Zählwerts zum ersten Zählwert für jeden der Eltern-Objektkennzeichner; Vergleichen des Verhältnisses mit einem Hinweisschwellenwert; und Gruppieren von Kind-Objekten und zugeordneten Elternobjekten auf der Liste von Vorabrufhinweisdaten bzw. Zuordnen zu dieser, falls das Verhältnis den Hinweisschwellenwert überschreitet.
  • Vorzugsweise umfasst der Server außerdem ein Statistikaktualisierungsmittel zum Aktualisieren der Statistiktabelle auf der Grundlage eines tatsächlich angeforderten Kind-Objekts; wobei das Statistikaktualisierungsmittel als Erstes nach einer Identität eines Bezugsobjekts der Eltern-Objekte sucht, wobei vor dem tatsächlich angeforderten Kind-Objekt auf das Bezugsobjekt Bezug genommen wird, wobei der entsprechende zweite Zählwert des tatsächlich angeforderten Kind-Objekts in der Statistiktabelle aktualisiert wird. Außerdem muss die Statistiktabelle beim Empfang einer Vorabrufbezugsnachricht von einem Bedienprogramm für Vorabrufbezugsnachrichten aktualisiert werden.
  • Falls der Server ein Proxy-Server ist, wird es bevorzugt, dass dieser außerdem ein Vorabrufaktualisierungsmittel (prefetch updating means) zum Empfangen und Aktualisieren der Liste von Vorabrufhinweisdaten umfasst. Das Vorabrufaktualisierungsmittel vergleicht die ersten Zählwerte mit ersten lokalen Schwellenzählwerten und ruft für jeden der Kind-Objektkennzeichner, bei denen die ersten Zählwerte die ersten lokalen Schwellenzählwerte überschreiten, das Erzeugungsmittel auf, wobei das Vorabrufaktualisierungsmittel die ursprüngliche Liste von Vorabrufhinweisdaten beibehält, falls die ersten Zählwerte die ersten lokalen Schwellenzählwerte nicht überschreiten. In einem komplexeren Lösungsansatz vergleicht das Vorabrufaktualisierungsmittel die ersten Zählwerte mit ersten und zweiten lokalen Schwellenzählwerten und (i) behält die ursprüngliche Liste von Vorabrufhinweisdaten bei, falls die ersten Zählwerte die ersten lokalen Schwellenzählwerte nicht überschreiten; (ii) ändert die ursprüngliche Liste von Vorabrufhinweisdaten, falls die ersten Zählwerte die ersten lokalen Schwellenzählwerte, jedoch nicht die zweiten lokalen Schwellenzählwerte überschreiten; und (iii) ersetzt die ursprüngliche Liste von Vorabrufhinweisdaten, falls die ersten Zählwerte sowohl die ersten lokalen Schwellenzählwerte als auch die zweiten lokalen Schwellenzählwerte überschreiten.
  • Vorzugsweise enthält der Server außerdem Folgendes: ein Proxy-Objektbedienprogramm (proxy objekt handler) zum Rückübertragen eines angeforderten Objekts an einen Proxy-Server der unteren Ebene oder an einen Client, der das angeforderte Objekt anforderte, wobei das Proxy-Objektbedienprogramm das angeforderte Objekt rücküberträgt und die Statistiktabelle dementsprechend aktualisiert, falls das angeforderte Objekt kein Vorabrufobjekt ist; und eine Vorabrufcachespeicher-Verwaltungseinrichtung (prefetch cache manager) zum Verwalten eines Vorabrufcachespeichers. Folglich rücküberträgt das Proxy-Objektbedienprogramm ein angefordertes Objekt aus dem Vorabrufcachespeicher an einen anfordernden Client oder Proxy- Server und markiert das Objekt als aus dem Vorabrufcachespeicher löschbar, falls das Objekt entsprechend einer Vorabrufanforderung angefordert wurde. Das Proxy-Objektbedienprogramm überträgt eine Objektanforderung an einen anderen Server, falls das angeforderte Objekt sich nicht in einem Hauptcachespeicher oder im Vorabrufcachespeicher befindet. Das Proxy-Objektbedienprogramm aktualisiert die Statistiktabelle entsprechend, falls das angeforderte Objekt keiner Vorabrufanforderung zugeordnet ist und falls das angeforderte Objekt sich im Vorabrufcachespeicher oder im Hauptcachespeicher befindet.
  • Unter einem anderen Aspekt betrachtet stellt die Erfindung ein Verfahren zum Vorabrufen von Auswahlobjekten aus einem Inhaltsserver bereit, um die Auswahlobjekte für Clients, die einem oder mehreren Proxy-Servern über ein Datenübertragungsnetz zugeordnet sind, sofort verfügbar zu machen; wobei das Verfahren die folgenden Schritte umfasst:
    • a) Anfordern von angeforderten Objekten aus mindestens einem der Proxy-Server;
    • b) Ermitteln von Datenbezugsmustern von entsprechenden Clients auf der Grundlage der vergangenen Abruf- oder Zugriffsvorgänge auf angeforderte Objekte durch die Clients;
    • c) Entwickeln von Vorabrufhinweisdaten aus den Datenbezugsmustern in eine Liste von Vorabrufhinweisdaten;
    • d) Kommentieren der angeforderten Objekte mit den Vorabrufhinweisdaten;
    • e) Vorabrufen von Auswahlobjekten aus mindestens einem der Server auf der Grundlage der Vorabrufhinweisdaten und aktuell angeforderter Objekte.
  • Folglich umfassen die vorabgerufenen Auswahldaten ein Vorabrufkandidatenobjekt; und der Schritt des Einrichtens von Vorabrufhinweisdaten umfasst außerdem das Einrichten von Vorabrufhinweisdaten in dem Sendeknoten in einer Hierarchie der Proxy-Server; wobei das Vorabrufkandidatenobjekt durch eine Hierarchie der Proxy-Server geleitet wird; und die Auswahldaten zum Vorabrufen in einem Empfangsknoten in der Hierarchie beruhen auf den Vorabrufhinweisdaten.
  • Normalerweise ist eine Proxy-Serverhierarchie mit dem Netz verbunden, wobei die Proxy-Serverhierarchie einen Server der unteren Ebene enthält, der eine engere Verbindung mit den Clients aufweist als andere Proxy-Server. In einer bevorzugten Ausführungsform werden die Vorabrufhinweisdaten durch die Proxy-Serverhierarchie aktualisiert, falls lokale Bezugnahmen auf das angeforderte Objekt vorliegen und falls der Zählwert des Server auf lokaler Ebene einen Mindestschwellenzählwert überschreitet; alternativ (oder zusätzlich) können die Vorabrufhinweisdaten aktualisiert werden, indem der Cachespeicherstatus in der Hierarchie der höheren Ebene analysiert wird, wobei die höchste Ebene der Hierarchie am engsten mit dem Netz verbunden ist.
  • Unter einem anderen Aspekt betrachtet stellt die Erfindung ein Verarbeitungssystem zum Verbessern eines Datenflusses von Servern zu Clients über ein Netz bereit, wobei das Verarbeitungssystem Folgendes umfasst:
    mit dem Netz verbundene Proxy-Server;
    einen mit dem Netz verbundenen Inhaltsserver;
    Clients, die zum Datenaustausch mit einem oder mehreren der Proxy-Server konfiguriert sind;
    eine Statistiktabelle, die in mindestens einem der Proxy-Server gespeichert wird, wobei die Statistiktabelle Eltern-Objektkennzeichner und zugeordnete Kind-Objektkennzeichner speichert, wobei die Statistiktabelle erste Zählwerte von Eltern-Objekten enthält, wobei die ersten Zählwerte die Häufigkeit darstellen, mit der durch die Clients auf Eltern-Objekte Bezug genommen wird, wobei die Statistiktabelle zweite Zählwerte von Kind-Objekten enthält, wobei die zweiten Zählwerte die Häufigkeit darstellen, mit der auf die entsprechenden Kind-Objekte Bezug genommen wird, nachdem auf ausgewählte der Eltern-Objekte Bezug genommen wurde; und
    ein Erzeugungsmittel zum Erzeugen einer Liste von Vorabrufhinweisdaten durch die Aufnahme von Eingaben der ersten Zählwerte und der entsprechenden zweiten Zählwerte, um die Liste von Vorabrufhinweisdaten abzuleiten, wobei das Erzeugungsmittel Folgendes beinhaltet:
    ein Berechnungsmittel zum Berechnen eines Verhältnisses des zweiten Zählwerts zum ersten Zählwert für jeden der Eltern-Objektkennzeichner;
    ein Vergleichsmittel zum Vergleichen des Verhältnisses mit einem Hinweisschwellenwert, wobei das Vergleichsmittel Kind-Objekte und zugeordnete Eltern-Objekte auf der Liste von Vorabrufhinweisdaten gruppiert bzw. dieser zuordnet, falls das Verhältnis den Hinweisschwellenwert überschreitet; und
    ein Vorabrufmittel zum Vorabrufen von Kind-Objekten auf der Grundlage der Vorabrufhinweisdaten und von Eltern-Objekten, die tatsächlich von den Clients angefordert wurden.
  • In einer bevorzugten Ausführungsform weist jeder der Proxy-Server einen ersten Prozessor, einen ersten Speicher und ein erstes Speichermittel zum Speichern von Daten auf; wobei der erste Speicher mindestens eine logische Trennung zwischen einem ersten Hauptcachespeicher und einem ersten Vorabrufcachespeicher aufweist; der Inhaltsserver weist einen zweiten Prozessor, einen zweiten Speicher und ein zweites Speichermittel zum Speichern von Daten auf; und mindestens einer der Clients weist einen dritten Prozessor, einen dritten Speicher und ein drittes Speichermittel zum Speichern von Daten auf, wobei der dritte Speicher mindestens eine logische Trennung zwischen einem zweiten Hauptcachespeicher und einem zweiten Vorabrufcachespeicher aufweist, wobei das Vorabrufbearbeitungsmittel Kind-Objekte im ersten Vorabrufcachespeicher oder im zweiten Vorabrufcachespeicher speichert.
  • In einer bevorzugten Ausführungsform enthält das Vorabrufmittel ein Berechnungsmittel zum Berechnen eines Vorabrufwerts und ein Auswertungsmittel zum Auswerten des vom Berechnungsmittel berechneten Vorabrufwerts; wobei das Berechnungsmittel für jeden Kind-Objektkennzeichner auf der Liste von Vorabrufhinweisdaten einen Vorabrufwert berechnet und Prioritäten für die Zwischenspeicherung von Kind-Objekten mit den höchsten Vorabrufwerten auf der Liste von Vorabrufhinweisdaten vergibt, wobei das Vorabrufbedienprogrammmittel den verfügbaren Speicherbereich im Vorabrufcachespeicher verwaltet.
  • Vorzugsweise enthält das System außerdem Folgendes: ein Vorabrufaktualisierungsmittel zum Aktualisieren der Liste von Vorabrufhinweisdaten; wobei das Vorabrufaktualisierungsmittel die ersten Zählwerte mit ersten lokalen Schwellenzählwerten und zweiten lokalen Schwellenzählwerten vergleicht, wobei die ersten lokalen Schwellenzählwerte auf der Statistik von einem Server beruhen, wobei die zweiten lokalen Schwellenzählwerte auf der Statistik von einem anderen Server beruhen, wobei das Vorabrufaktualisierungsmittel für jeden der Kind-Objektkennzeichner, für den die ersten Zählwerte sowohl die ersten lokalen Schwellenzählwerte als auch die zweiten lokalen Schwellenzählwerte überschreiten, das Erzeugungsmittel aufruft; wobei das Vorabrufaktualisierungsmittel die ursprüngliche Liste von Vorabrufhinweisdaten beibehält, falls die ersten Zählwerte die ersten lokalen Schwellenzählwerte nicht überschreiten.
  • Es wird bevorzugt, dass ein solches System außerdem Folgendes enthält:
    ein Statistikaktualisierungsmittel zum Aktualisieren der Statistiktabelle;
    ein Proxy-Objektbedienprogramm, das in einem der Proxy-Server gespeichert wird, wobei das Proxy-Objektbedienprogramm eine Routine zur Aktualisierung der Liste von Vorabrufhinweisdaten (prefetch hint information list update routine) aufruft, wobei das Proxy-Objektbedienprogramm ein angefordertes Objekt an einen Proxy-Server der unteren Ebene rücküberträgt, falls der Proxy-Server der unteren Ebene das angeforderte Objekt anforderte, wobei das Proxy-Objektbedienprogramm das angeforderte Objekt rücküberträgt und das Statistikaktualisierungsmittel aufruft, falls das angeforderte Objekt kein Vorabrufobjekt ist;
    eine Vorabrufcachespeicher-Verwaltungseinrichtung zum Verwalten eines Vorabrufcachespeichers, der einem der Proxy-Server zugeordnet ist, wobei das Proxy-Objektbedienprogramm die Vorabrufcachespeicher-Verwaltungseinrichtung aufruft, falls der Server der unteren Ebene das angeforderte Objekt nicht anforderte;
    ein Bedienprogramm für Proxy-Objektanforderungen (proxy object request handler), das in einem der Proxy-Server gespeichert wird, wobei das Bedienprogramm für Proxy-Objektanforderungen Objekte an einen anfordernden der Clients rücküberträgt und das Objekt als aus dem Vorabrufcachespeicher löschbar markiert, falls sich Objekte im Vorabrufcachespeicher befinden und falls das Objekt entsprechend einer Vorabrufanforderung angefordert wurde; wobei das Bedienprogramm für Proxy-Objektanforderungen eine Objektanforderung an einen anderen Server überträgt, falls das angeforderte Objekt sich nicht in einem Hauptcachespeicher oder im Vorabrufcachespeicher befindet, wobei das Bedienprogramm für Proxy-Objektanforderungen Daten mit dem Statistikaktualisierungsmittel austauscht, falls das angeforderte Objekt nicht der Vorabrufanforderung zugeordnet ist und falls das angeforderte Objekt sich im Vorabrufcachespeicher oder im Hauptcachespeicher befindet.
  • Des Weiteren wird es bevorzugt, dass das System außerdem Folgendes enthält:
    ein Statistikaktualisierungsmittel zum Aktualisieren der Statistiktabelle;
    und ein Bedienprogramm für Vorabrufbezugsnachrichten, das in einem der Proxy-Server gespeichert ist, wobei das Bedienprogramm für Vorabrufbezugsnachrichten das Statistikaktualisierungsmittel aufruft, wobei das Bedienprogramm für Vorabrufbezugsnachrichten eine Vorabrufbezugsnachricht nach dem Aufrufen einer Cachespeicherverwaltungsroutine weiterleitet, falls ein angefordertes Objekt sich im Vorabrufcachespeicher befindet.
  • Außerdem stellt die Erfindung ein Verarbeitungssystem zum Verbessern eines Datenflusses von Servern zu Clients über ein Netz bereit, wobei das Verarbeitungssystem Folgendes umfasst:
    mit dem Netz verbundene Proxy-Server;
    einen mit dem Netz verbundenen Inhaltsserver;
    Clients, die so konfiguriert sind, dass sie mit einem oder mehreren der Proxy-Server Daten austauschen;
    eine Statistiktabelle, die im Inhaltsserver und in mindestens einem der Proxy-Server gespeichert ist, wobei die Statistiktabelle Eltern-Objektkennzeichner und zugeordnete Kind-Objektkennzeichner speichert, wobei die Statistiktabelle erste Zählwerte von Eltern-Objekten enthält, wobei die ersten Zählwerte die Häufigkeit darstellen, mit der durch die Clients auf Eltern-Objekte Bezug genommen wird, wobei die Statistiktabelle zweite Zählwerte von Kind-Objekten enthält, wobei die zweiten Zählwerte die Häufigkeit darstellen, mit der zeitlich unmittelbar auf die entsprechenden Kind-Objekte Bezug genommen wird, nachdem auf ausgewählte der Eltern-Objekte Bezug genommen wurde;
    ein Erzeugungsmittel, das Eingaben von ersten Zählwerten, zweiten Zählwerten, Kind-Objektkennzeichnern und Eltern-Objektkennzeichnern aus der Statistiktabelle entgegennimmt, wobei das Erzeugungsmittel ein Auswertungsmittel zum Auswerten der Zugriffsbeziehung zwischen Eltern-Objekten und ihren zugeordneten Kind-Objekten beinhaltet, wobei das Auswertungsmittel Kind-Objektkennzeichner auf eine Liste von Vorabrufhinweisdaten platziert, falls unmittelbar im Anschluss an Bezugnahmen durch die Clients auf entsprechende Eltern-Objekte mit einer ausreichenden Häufigkeit auf die Kind-Objekte Bezug genommen wird; und
    ein Vorabrufmittel zum Vorabrufen von Kind-Objektkennzeichnern auf der Grundlage der Vorabrufhinweisdaten und der tatsächlich von den Clients angeforderten Eltern-Objekte.
  • In einer bevorzugten Ausführungsform umfasst das Vorabrufmittel außerdem ein Zuordnungsmittel zum Zuordnen von Speicherprioritäten zu auf der Liste von Vorabrufhinweisdaten gekennzeichneten Kind-Objekten und ein selektives Speichermittel zum Speichern von ausgewählten der Kind-Objekte gemäß den Speicherprioritäten. Das Zuordnungsmittel ordnet Speicherprioritäten vorzugsweise auf der Grundlage einer geschätzten Zugriffswahrscheinlichkeit zu, mit der durch bestimmte der Clients auf ein Kind-Objekt auf der Liste von Vorabrufhinweisdaten zugegriffen wird, und eines Zugriffsaufwands des Kind-Objekts auf der Grundlage einer erforderlichen Speichergröße zum Speichern von ausgewählten der Kind-Objekte.
  • Folglich können Daten in einer Proxy-Hierarchie vorabgerufen werden, um die Objektzugriffszeit durch das Netz (d.h. das Internet) für Clients zu verkürzen. Die Auswahldaten werden aus einem Inhaltsserver vorabgerufen, um diese für Clients, die mit einem Inhaltsserver in einem Netz verbunden sind, problemlos zugänglich zu machen. Die Clients sind vorzugsweise mit Proxy-Servern im Netz verbunden. Die Clients fordern Daten von mindestens einem der Proxy-Server an. Der Inhaltsserver erzeugt Vorabrufhinweisdaten für die Clients auf der Grundlage von vergangenen Datenzugriffsmustern der von den Clients angeforderten Daten. Der Inhaltsserver kommentiert die angeforderten Daten mit Vorabrufhinweisdaten. Einer oder mehrere Proxy-Server können die Vorabrufhinweisdaten auf der Grundlage einer dynamischen Verwendungsstatistik dynamisch aktualisieren. Die Vorabrufhinweisdaten werden aktualisiert, wenn das Objekt durch die Proxy-Hierarchie geleitet wird, um ausgeführte Vorabrufvorgänge, den Zwischenspeicherstatus auf höheren Ebenen der Proxy-Hierarchie und andere lokale Gegebenheiten widerzuspiegeln, beispielsweise lokale Bezugsmuster. Die Auswahldaten können auf der Grundlage der Vorabrufhinweisdaten und der angeforderten Daten aus dem Inhaltsserver oder einem der Proxy-Server vorabgerufen werden. Den Vorabrufhinweisdaten kann auf der Grundlage einer Bezugszugriffswahrscheinlichkeit und Speichergegebenheiten ein Vorabrufwert zugeordnet werden. Die Auswahldaten mit den höchsten Vorabrufwerten auf der Liste von Vorabrufhinweisdaten werden als Erstes zwischengespeichert und möglicherweise, bis der Vorabrufcachespeicher voll ist.
  • Nun wird eine bevorzugte Ausführungsform der Erfindung lediglich beispielhaft mit Bezugnahme auf die folgenden Zeichnungen ausführlich beschrieben:
  • 1 ist ein Blockschaltbild, das Inhaltsserver (d.h. Web-Sites), ein Netz (d.h. das Internet), eine Proxy-Serverhierarchie und Clients zeigt;
  • 2 ist ein weiteres Blockschaltbild eines Inhaltsserver, eines Client und eines Proxy-Server, das ausführlicher als 1 ist;
  • 3A ist ein Flussdiagramm, das ein Verfahren zum dynamischen Vorabrufen von Daten aus einem Inhaltsserver über eine Hierarchie von Proxy-Servern darstellt;
  • 3B ist ein veranschaulichendes Beispiel einer Statistiktabelle;
  • 4 ist ein Flussdiagramm, das die Funktionsweise des Inhaltsserver darstellt;
  • 5 ist ein Flussdiagramm, das die Statistikaktualisierung darstellt;
  • 6 ist ein Flussdiagramm, das die Erzeugung von Vorabrufhinweisdaten darstellt;
  • 7 ist ein Flussdiagramm, das die Client-Funktionsweise darstellt;
  • 8 ist ein Flussdiagramm, das einen Vorabrufvorgang darstellt;
  • 9 ist ein Flussdiagramm, das die Funktionsweise eines Bedienprogramms für Client-Objektanforderungen darstellt;
  • 10 ist ein Flussdiagramm, das die Funktionsweise des Proxy-Server darstellt;
  • 11 ist ein Flussdiagramm, das die Funktionsweise eines Bedienprogramms für Proxy-Objektanforderungen darstellt;
  • 12 ist ein Flussdiagramm, das die Funktionsweise eines Bedienprogramms für Vorabrufbezugsnachrichten darstellt;
  • 13 ist ein Flussdiagramm, das die Funktionsweise eines Proxy-Objektbedienprogramms darstellt;
  • 14 ist ein Flussdiagramm, das die Funktionsweise einer Routine zur Aktualisierung von Vorabrufhinweisdaten darstellt.
  • 1 zeigt ein Datenverarbeitungssystem, zu dem Clients 22, eine Hierarchie von Proxy-Servern 24, ein Netz 25 und Inhaltsserver 20 gehören.
  • Die Clients können Daten in Form von Eltern-Objekten, Kind-Objekten, angeforderten Objekten, Auswahlobjekten, Seiten, angeforderten Daten und Auswahldaten anfordern. Eltern-Objekte weisen eine Beziehung zu Kind-Objekten auf, so dass im Anschluss an Eltern-Objekte möglicherweise eines oder mehrere zugeordnete Kind-Objekten angefordert werden. Angeforderte Objekte sind analog zu Eltern-Objekten, während Auswahlobjekte analog zu Kind-Objekten sind. Angeforderte Objekte sind Objekte, die tatsächlich von einem oder mehreren Clients angefordert werden. Auswahlobjekte hingegen sind Objekte, die mit den angeforderten Objekten gruppiert werden oder eine Beziehung zu diesen aufweisen, so dass die Auswahlobjekte zeitlich unmittelbar nach den angeforderten Objekten angefordert werden können. Angeforderte Daten beinhalten angeforderte Objekte, Eltern-Objekte und andere Formen von Daten, die von den Clients angefordert werden. Zu Auswahldaten gehören Kind-Objekte, Auswahlobjekte und andere Formen von Daten, die vorabgerufen werden können.
  • Der Client 22 kann Daten aus dem Inhaltsserver 20 oder den Proxy-Servern 24 anfordern. Die Proxy-Server 24 fungieren normalerweise jedoch als Vermittlungsstellen (intermediaries) für die Clients 22 bezüglich des Netzes 25 und der Inhaltsserver 20. Vorteilhafterweise können die Proxy-Server 24 die Datenanforderungen der Clients erfüllen, ohne die Inhaltsserver 20 zu kontaktieren, falls die Proxy-Serverhierarchie die angeforderten Daten enthält oder die Möglichkeit hat, eine angeforderte Task auszuführen. Das Datenverarbeitungssystem von 1 kann auf das Internet angewandt werden. Beispielsweise kann der Inhaltsserver 20 eine Web-Site umfassen, während das Netz 25 das Internet umfassen kann.
  • 1 stellt die logischen Verbindungen 26 (im Gegensatz zu den physischen Verbindungen) zwischen Elementen des Datenverarbeitungssystems dar. Die logischen Verbindungen 26 stellen den Datenfluss von Objekten und Anforderungen im Datenverarbeitungssystem dar. Die logischen Verbindungen 26 stellen normalerweise keine physischen Verbindungen zwischen den Proxy-Servern 24 dar. Die logischen Verbindungen 26 können sich aufgrund der Arbeitsbelastung und/oder aufgrund von physischen Ereignissen ändern, beispielsweise aufgrund des Ausfalls eines Knotens oder einer Datenübertragungsverbindung. Verschiedene Typen von Objekten können verschiedenen logischen Übertragungspfaden folgen, um die Clients 22 zu erreichen.
  • Obwohl in der Praxis praktisch eine beliebige Anzahl von Clients 22 und Proxy-Servern 24 verwendet werden können, stellt 1 vier Clients 22 und vier hierarchische Ebenen von Proxy-Servern 24 dar. In der Praxis ist eine beliebige Anzahl von Ebenen in der Proxy-Serverhierarchie gestattet, und die Clients 22 können mit einer beliebigen Ebene der Proxy-Serverhierarchie logisch verbunden werden. Beispielsweise könnte die Hierarchie von Proxy-Servern 24 ein einziger Proxy-Server sein. Die vorliegende Erfindung kann mit lediglich einem einzigen Client 22 und einem einzigen Proxy-Server 24 ausgeführt werden.
  • Wie gezeigt wird, wird der Proxy-Server der höchsten Ebene als ein Proxy-Server 30 der Ebene null bezeichnet. "Ebene null" ist eine willkürliche Bezeichnung, die lediglich den Status des einen Proxy-Server in Bezug auf einen anderen Proxy-Server im veranschaulichenden Beispiel von 1 definiert. Der Proxy-Server der höchsten Ebene kann mit dem Netz 25 logisch verbunden werden. Die Proxy-Server 21 der höheren Ebene sind logisch enger mit dem Netz 25 verbunden als die Proxy-Server 23 der unteren Ebene. (Es wird daher verstanden, dass bei dieser Terminologie, die den Proxy-Server der Ebene null als die Spitze einer Proxy-Hierarchie betrachtet, die Ebene null "höher" als die Ebene eins ist, die ihrerseits "höher" als die Ebene zwei ist, und so weiter.)
  • Ein erster Proxy-Server 35 der Ebene eins und ein zweiter Proxy-Server 37 der Ebene eins sind mit dem Proxy-Server 30 der Ebene null logisch verbunden. Der erste Proxy-Server 35 der Ebene eins ist mit einem ersten Proxy-Server 40 der Ebene zwei und mit einem zweiten Proxy-Server 43 der Ebene zwei verbunden. Der erste Proxy-Server 40 der Ebene zwei ist mit einem ersten Proxy-Server 50 der Ebene drei und mit einem zweiten Proxy-Server 55 der Ebene drei logisch verbunden.
  • Zu den Clients 22 gehören ein erster Client 600, ein zweiter Client 603, ein dritter Client 700 und ein vierter Client 703. Der erste Client 600 und der zweite Client 603 sind mit einem ersten Proxy-Server 50 der Ebene drei logisch verbunden. Der dritte Client 700 und der vierte Client 703 sind mit dem zweiten Proxy-Server 55 der Ebene drei logisch verbunden.
  • Das Datenverarbeitungssystem wird nun vom Standpunkt des zweiten Client 603 beschrieben. Der zweite Client 603 ist mit dem Proxy seiner unmittelbar nächsthöheren Ebene verbunden. Wie dargestellt wird, ist der Proxy der nächsthöheren Ebene der erste Proxy 50 der Ebene drei. Der zweite Client 603 ist sodann mit dem ersten Proxy-Server 40 der Ebene zwei, dem ersten Proxy-Server 35 der Ebene eins bzw. dem Proxy-Server 30 der Ebene null verbunden. Der zweite Client 603 kann durch das Netz 25 auf verschiedene Inhaltsserver 20 zugreifen. Obwohl ein typischer Datenübertragungspfad für den zweiten Client 603 über den Proxy der unmittelbar nächsthöheren Ebene (d.h. den ersten Proxy-Server 50 der Ebene drei) läuft, kann der zweite Client 603 oder ein Proxy der unteren Ebene direkt mit anderen Proxy-Servern 24 oder mit dem Netz 25 Daten austauschen. Der zweite Client 603 kann sogar seinen eigenen Client-Proxy zur Cachespeicherverwaltung aufweisen.
  • Vom Standpunkt des zweiten Client 603 sind bestimmte Proxy-Server nicht Teil seiner Proxy-Hierarchie. Beispielsweise sind der zweite Proxy-Server 55 der Ebene drei, der zweite Proxy-Server 43 der Ebene zwei und der zweite Proxy-Server 37 der Ebene eins nicht Teil der Proxy-Serverhierarchie des zweiten Client.
  • Die Clients 22 können Personal Computer, Arbeitsstationen, Set-Top-Boxen oder dergleichen beinhalten, sind jedoch nicht auf diese begrenzt. Das Netz 25 kann – muss jedoch nicht – das Internet, das World Wide Web, ein Intranet, lokale Netze (LANs) oder dergleichen beinhalten.
  • Der Proxy-Server 24 und der Inhaltsserver 20 können verschiedene handelsübliche Computer umfassen. Beispielsweise kann der Proxy-Server 24 als der von IBM Corporation vertriebene Internet Connection Server (ICS) ausgeführt werden. Ähnlich kann der Inhaltsserver 20 als ein Lotus Go Web-Server, ein Lotus Domino-Server oder dergleichen ausgeführt werden (ebenfalls von IBM Corporation erhältlich). Der Proxy-Server 24 oder der Inhaltsserver 20 kann in jedem Datenverarbeitungsknoten ausgeführt werden, der Produkte wie z.B. die Arbeitsstationen S/390 SYSPLEX, SP2 oder RS6000 (ebenfalls erhältlich von IBM Corporation) enthält, ist jedoch nicht auf diese begrenzt. Kurz gesagt, der Proxy-Server 24 oder der Inhaltsserver 20 kann einen beliebigen Universalcomputer und zugeordnete Software umfassen, die Zugriffe auf Seiten des World Wide Web, Dateifernübertragungen, elektronische Post und eine Transaktionsunterstützung für die Clients 22 bereitstellt.
  • Das Datenübertragungssystem von 1 kann die Attribute einer herkömmlichen Proxy-Hierarchie verwenden, um die Leistungsfähigkeit der Datenübertragung aufrechtzuerhalten. Falls beispielsweise ein angefordertes Objekt in einem Proxy-Server der unteren Ebene lokal nicht verfügbar ist, wird eine Anforderung nach dem nichtverfügbaren Objekt an den Proxy der nächsthöheren Ebene übertragen. Falls der Proxy der höheren Ebene zuvor das Objekt in seinem Cachespeicher zwischengespeichert hat, leitet er das angeforderte Objekt über den Proxy-Server der unteren Ebene an den Client. Andernfalls versucht der Proxy-Server der höheren Ebene, das Objekt von seinem Proxy der nächsthöheren Ebene zu erhalten. Sobald das angeforderte Objekt erhalten wurde, wird es an den Proxy der unteren Ebene oder den das Objekt anfordernden Client geleitet.
  • 2 stellt ein ausführlicheres Beispiel des in 1 gezeigten Datenverarbeitungssystems dar. Das Datenverarbeitungssystem enthält den Proxy-Server 24, den Inhaltsserver 20, das Netz 25 und den Client 22. Das Datenverarbeitungssystem enthält vorzugsweise eine Vorabrufeinheit 250, Statistiktabellen 261, eine Statistikaktualisierungseinheit 252, Hauptcachespeicher 297 und Vorabrufcachespeicher 298.
  • Die Vorabrufeinheit 250 enthält vorzugsweise ein erstes Vorabrufbedienprogramm 248 im Proxy-Server 24 und zweites Vorabrufbedienprogramm 241 im Client 22. Die Statistiktabellen 261 enthalten eine dem Proxy-Server 24 zugeordnete erste Statistiktabelle 293 und eine dem Inhaltsserver 20 zugeordnete zweite Statistiktabelle 267. Die Statistikaktualisierungseinheit 252 enthält eine erste Statistikaktualisierungseinheit 264 zum Aktualisieren der ersten Statistiktabelle 293 und eine zweite Statistikaktualisierungseinheit 269 zum Aktualisieren der zweiten Statistiktabelle 267. Die Hauptcachespeicher 297 enthalten einen ersten Hauptcachespeicher 294 in jedem Proxy-Server 24 und einen zweiten Hauptcachespeicher 246 in jedem Client 22. Die Vorabrufcachespeicher 298 enthalten einen ersten Vorabrufcachespeicher 296 im Proxy-Server 24 und einen zweiten Vorabrufcachespeicher 249 im Client 22.
  • Ein Proxy-Server 24 ist ein Datenverarbeitungsknoten, der Anforderungen durch das Netz 25 bedient. Der Proxy-Server 24 enthält einen ersten Prozessor 280, einen ersten Speicher 290 und eine erste Speichereinheit 281. Der erste Speicher 290 kann beispielsweise einen Arbeitsspeicher (RAM) umfassen. Die erste Speichereinheit 281 kann beispielsweise eine Einheit mit Direktzugriffspeicher (DASD) umfassen. Der erste Speicher 290 speichert eine Proxy-Serverlogik 295, die als vom Computer ausführbarer Code ausgeführt ist. Die Proxy-Serverlogik 295 wird zur Ausführung durch den ersten Prozessor 280 aus der ersten Speichereinheit 281 in den ersten Speicher 290 geladen. Einzelheiten der Funktionsweise der Proxy-Serverlogik 295 werden in 10 gezeigt.
  • Die Proxy-Serverlogik 295 enthält ein Bedienprogramm 283 für Proxy-Objektanforderungen (proxy object request handler), ein Proxy-Objektbedienprogramm 284, das erste Vorabrufbedienprogramm 248, ein Bedienprogramm 285 für Vorabrufbezugsnachrichten, ein Vorabrufaktualisierungsmittel 291, die erste Statistikaktualisierungsroutine 264, eine erste Statistiktabelle 293, einen ersten Hauptcachespeicher 294 und einen ersten Vorabrufcachespeicher 296.
  • Einzelheiten der Funktionsweise des Bedienprogramms 283 für Proxy-Objektanforderungen werden in 11 gezeigt. Einzelheiten der Funktionsweise des Proxy-Objektbedienprogramms 284 werden in 13 gezeigt. Die Funktionsweise des Bedienprogramms 285 für Vorabrufbezugsnachrichten wird in 12 gezeigt. Einzelheiten der Funktionsweise der Statistikaktualisierungseinheit 252 (d.h. der ersten Statistikaktualisierungsroutine 264) werden in 5 gezeigt.
  • Die Funktionsweise der Vorabrufeinheit 250 (d.h. des ersten Vorabrufbedienprogramms 248) wird in 8 ausführlich gezeigt. Die Funktionsweise der Vorabrufaktualisierungseinheit 291 oder der Routine zur Aktualisierung von Vorabrufhinweisdaten wird in 14 gezeigt. Die Proxy-Serverlogik 295 verwaltet den ersten Hauptcachespeicher 294 und den ersten Vorabrufcachespeicher 296.
  • Der Inhaltsserver 20 ist ein Datenverarbeitungsknoten, der Anforderungen durch das Netz 25 bedienen kann. Der Inhaltsserver 20 enthält einen zweiten Prozessor 260, einen zweiten Speicher 263 und eine zweite Speichereinheit 265. Der zweite Speicher 263 kann beispielsweise einen Arbeitsspeicher (RAM) umfassen. Die zweite Speichereinheit 265 kann beispielsweise eine Einheit mit Direktzugriffspeicher (DASD) umfassen. Der zweite Speicher 263 speichert die Inhaltsserverlogik 268 oder Inhaltsserversoftware.
  • Die Funktionsweise der Inhaltsserverlogik 268 wird im Folgenden mit Bezugnahme auf 4 ausführlicher gezeigt. Die Inhaltsserverlogik 268 wird als ein vom Computer ausführbarer Code ausgeführt, der zur Ausführung durch den zweiten Prozessor 260 aus der zweiten Speichereinheit 265 in den zweiten Speicher 263 geladen wird. Die Inhaltsserverlogik 268 enthält eine zweite Statistiktabelle 267, eine zweite Statistikaktualisierungseinheit 269 zum Aktualisieren der zweiten Statistiktabelle 267 und eine Erzeugungseinheit 266 zum Erzeugen von Vorabrufhinweisdaten. Die zweite Statistiktabelle 267 speichert Daten zu von den Clients angeforderten Daten und mögliche Vorabrufdaten, die den angeforderten Daten zugeordnet werden. Die Statistiktabelle 261 trägt zur Erzeugung von Vorabrufhinweisdaten bei, die auf dem tatsächlichen Bezugsverhalten von Clients beruht. Einzelheiten zu den Statistiktabellen 261 werden in 3B dargestellt.
  • Die Funktionsweise der zweiten Statistikaktualisierungseinheit 269 wird mit Bezugnahme auf 5 ausführlicher gezeigt. Die Erzeugungseinheit 266 erzeugt Vorabrufhinweisdaten aus den Daten in der zweiten Statistiktabelle 267 und den angeforderten Daten. Die Erzeugungseinheit 266 kann als eine Routine zur Erzeugung von Vorabrufhinweisdaten (prefetch hint information – PHI) ausgeführt werden, wie in 6 dargestellt wird.
  • Der Client 22 enthält vorzugsweise einen dritten Prozessor 240, einen dritten Speicher 245 und eine dritte Speichereinheit 242. Der dritte Speicher 245 kann beispielsweise einen Arbeitsspeicher umfassen. Die dritte Speichereinheit 242 kann beispielsweise eine Einheit mit Direktzugriffspeicher (DASD) umfassen. Der dritte Speicher 245 speichert die Clientlogik 244 oder Clientsoftware. Die Funktionsweise der Clientlogik 244 wird im Folgenden mit Bezugnahme auf 7 ausführlicher gezeigt. Die Clientlogik 244 wird als ein vom Computer ausführbarer Code realisiert, der zur Ausführung durch den dritten Prozessor 240 aus dem dritten Speichermittel 242 in den dritten Speicher 245 geladen wird.
  • Die Clientlogik 244 enthält ein Bedienprogramm 247 für Client-Objektanforderungen, das zweite Vorabrufbedienprogramm 241, einen zweiten Hauptcachespeicher 246 und einen zweiten Vorabrufcachespeicher 249. Das Bedienprogramm 247 für Client-Objektanforderungen erhält angeforderte Objekte für den Client aus dem zweiten Hauptcachespeicher 246, dem zweiten Vorabrufcachespeicher 249, einem Proxy-Server 24 oder einem Inhaltsserver 20. Einzelheiten der Funktionsweise des Bedienprogramms 247 für Client-Objektanforderungen werden in 9 gezeigt.
  • Die Clientlogik 244 verwaltet den zweiten Hauptcachespeicher 246 und den zweiten Vorabrufcachespeicher 249. Der zweite Hauptcachespeicher 246 wird zum Speichern von Objekten verwendet, auf die häufig Bezug genommen wird, während der zweite Vorabrufcachespeicher 249 zum Speichern von Objekten verwendet wird, bevor tatsächlich auf diese Bezug genommen wird. Vorabrufobjekte sind Objekte, auf die in Verbindung mit Bezugsobjekten zuvor noch nicht Bezug genommen wurde. In der bevorzugten Ausführungsform werden die Hauptcachespeicher 297 vom herkömmlichen LRU-Algorithmus (least recently used algorithm) verwaltet. Fachleute werden außerdem verstehen, dass jede andere Ersatzstrategie zur Verwaltung der Hauptcachespeicher 297 angewandt werden kann.
  • Die Hauptcachespeicher 297 und die Vorabrufcachespeicher 298 können logisch getrennt werden. Der Grund für die logische Trennung der Vorabrufobjekte von den Objekten im Hauptcachespeicher 297, auf die tatsächlich Bezug genommen wurde, besteht darin, zu verhindern, dass die Vorabrufobjekte zu viel Speicherplatz einnehmen. Es stehen verschiedene Alternativen zur Verfügung, um dieses Ziel eines logisch getrennten Vorabrufcachespeichers und Hauptcachespeichers zu erreichen. Beispielsweise kann ein einziger Cachespeicher eine Obergrenze bezüglich der Anzahl von Vorabrufobjekten und/oder eine Obergrenze bezüglich des von den Vorabrufobjekten belegten Speicherplatzes aufweisen. Der Hauptcachespeicher 297 und der Vorabrufcachespeicher 298 sind zur Unterstützung verschiedener Ziele vorgesehen. Der Hauptcachespeicher 297 dient zum Zwischenspeichern beliebter Objekte, auf die möglicherweise wiederholt Bezug genommen wird. Der Vorabrufcachespeicher 298 wird lediglich zur Unterstützung einer bestimmten Browser-Sitzung von Vorabrufobjekten verwendet, auf die in dieser Sitzung höchstwahrscheinlich als Nächstes Bezug genommen wird. Falls ein Knoten der unteren Ebene in der Hierarchie in der bevorzugten Ausführungsform eine Vorabrufanforderung bezüglich eines Objekts im Vorabrufcachespeicher eines Knotens der höheren Ebene ausgibt, wird das Objekt zum Knoten der unteren Ebene geleitet und als aus dem Vorabrufcachespeicher 298 des Knotens der höheren Ebene löschbar markiert, da das Ziel des Vorabrufs erfüllt wurde. Wenn tatsächlich auf ein Vorabrufobjekt Bezug genommen wird, kann es in Abhängigkeit von der Verwaltungsstrategie (management policy) des Hauptcachespeichers 297 in diesen verschoben werden. In der bevorzugten Ausführungsform wird ein Vorabrufobjekt, auf das einmal Bezug genommen wurde, unter Verwendung einer LRU-Ersatzstrategie in den Hauptcachespeicher verschoben.
  • Es ist ein alternatives Kriterium vorstellbar, um ein Objekt aus dem Vorabrufcachespeicher 298 in den Hauptcachespeicher 297 zu verschieben. In Abrams et. al., "Caching Proxies: Limitations and Potentials", Proc. 4th International World Wide Web Conference, 1996, wurden einige Ersatzstrategien erläutert, die beim Entscheidungsprozess die Objektgröße berücksichtigen. Fachleuten sind noch andere Cachespeicherersatzstrategien bekannt.
  • 3A ist ein Flussdiagramm, das ein Verfahren zum dynamischen Vorabrufen von Daten für Clients aus einem Inhaltsserver 20 oder einer Proxy-Serverhierarchie darstellt. Als Erstes fordert ein Client im Block 100 Daten aus einem Proxy-Server oder einem Inhaltsserver 20 an. Als Zweites werden im Block 102 frühere Datenzugriffsvorgänge oder Datenbezugsmuster im Inhaltsserver 20 und in den Proxy-Servern ermittelt. In der Praxis kann die Reihenfolge der Ausführung der Blöcke 100 und 102 umgekehrt sein.
  • Als Drittes erzeugt der Inhaltsserver 20 im Block 104 Vorabrufhinweisdaten (PHI) bezüglich zusammenhängender Zugriffsvorgänge auf die angeforderten Daten auf der Grundlage der im Block 102 ermittelten Datenbezugsmuster. Als viertes können die Vorabrufhinweisdaten im Block 105 die angeforderten Daten kommentieren. Beispielsweise können die Vorabrufhinweisdaten als Metadaten huckepack auf den angeforderten Daten (d.h. auf dem Objekt) übertragen werden. Bezüglich des Schritts des Einrichtens oder Erzeugens von Vorabrufhinweisdaten protokollieren Inhaltsserver 20 Verwendungs-/Bezugsmuster von einer großen Anzahl gleichzeitiger Benutzer oder Clients. In der Praxis stellen die Inhaltsserver 20 fest, welche Gruppe von Objekten eine Beziehung zu den angeforderten Daten oder dem angeforderten Objekt aufweist. Die Inhaltsserver 20 erzeugen Vorabrufhinweisdaten (PHI) und stellen diese mit dem angeforderten Objekt bereit. Im Vorabrufschritt oder unmittelbar vor diesem können Proxy-Server die PHI im Hinblick auf lokale Gegebenheiten interpretieren, um zu entscheiden, welche Auswahlobjekte vorabgerufen werden müssen.
  • Als Fünftes werden die Vorabrufhinweisdaten im Block 106 aktualisiert, wenn die angeforderten Daten durch die Proxy-Serverhierarchie geleitet werden. Die Aktualisierung im Block 106 spiegelt ausgeführte Vorabrufvorgänge und den Zwischenspeicherstatus auf den höheren Ebenen der Hierarchie und andere lokale Gegebenheiten wider, beispielsweise lokale Bezugsmuster. Die Proxy-Server können den PHI ändern, so dass sie ihre Vorabrufentscheidung und verschiedene lokale Gegebenheiten widerspiegeln, bevor das Objekt an den Proxy der nächsten (unteren) Ebene oder an die Clientstation geleitet wird. Wenn ein Objekt durch die Proxy-Hierarchie geleitet wird, richtet der Sendeknoten anfängliche PHI ein, während der Empfangsknoten aus den anfänglichen PHI endgültige PHI ableiten kann. Die endgültigen PHI definieren auf der Grundlage der angeforderten Objekte, welche Auswahlobjekte vorabgerufen werden müssen. Der Vorabrufvorgang und die Vorabrufentscheidung werden vom Empfänger, nicht vom Sender eingeleitet.
  • Schließlich werden im Block 108 auf der Grundlage von Vorabrufhinweisdaten und den angeforderten Daten Auswahldaten vorabgerufen. Der Proxy-Server oder Client entscheidet, ob auf der Grundlage der PHI-Daten im empfangenen Objekt, den lokal gespeicherten Bezugsdaten (falls verfügbar) und anderen lokalen Gegebenheiten, beispielsweise der verfügbaren Speichergröße und der Zugriffszeit, eine Teilmenge von Objekten vorabgerufen wird, die in den PHI angegeben wird.
  • Bei der Erzeugung von Vorabrufhinweisdaten im Block 104 werden vorzugsweise das PICS-Protokoll oder ein PICS-kompatibles Format (siehe unten) verwendet. Im Block 104 erzeugte PHI werden mit jedem zwischengespeicherten Objekt als Teil seiner Metadaten gespeichert, so dass im Falle der Anforderung eines zwischengespeicherten Objekts die PHI-Daten des Objekts geprüft werden können, um die entsprechenden Vorabrufvorgänge einzuleiten. Die PHI-Daten können durch das PICS-Protokoll bereitgestellt werden. Das PICS-Protokoll stellt Daten zu kritischen Bedingungen (criticalicity) jedes PHI-Objekts und seiner Eigenschaften, beispielsweise der Größe und des Zwischenspeicherstatus, in der höheren Hierarchie bereit.
  • Das Aktualisieren der Vorabrufhinweisdaten kann durch die Proxy-Serverhierarchie ausgeführt werden. Die Proxy-Server können lokale Daten sammeln und die Vorabrufentscheidung in der Proxy-Hierarchie abwärts verteilen oder dezentralisieren. Außerdem haben die Daten darüber, welcher zwischengeschaltete Proxy ein Objekt vorabgerufen hat, möglicherweise Auswirkungen auf die Vorabrufentscheidung der Proxys der unteren Ebene und der Clientstation, um die Speicher- und Bandbreitennutzung zu optimieren.
  • Die Proxy-Server in der Proxy-Serverhierarchie arbeiten zusammen, um eine empfängerorientierte Vorabrufentscheidung bereitzustellen. Die Vorabrufentscheidung kann in Zusammenarbeit von jedem Proxy und Client getroffen werden. Vorabrufhinweisdaten im Format von Metadaten kommentieren angeforderte Objekte (d.h., sie werden huckepack auf diesen übertragen). Die Vorabrufhinweisdaten stellen Daten zu möglichen Vorabrufkandidaten bereit. Zwischengeschaltete Proxy-Server können die Metadaten oder Vorabrufhinweisdaten auf der Grundlage lokaler Bedingungen ändern und speichern die Metadaten mit einem Objekt bei dessen Zwischenspeicherung, folglich kann der Vorabrufvorgang bei späteren Bezugnahmen auf das Objekt gestartet werden.
  • 3B stellt ein Datenformat der Statistiktabelle 261 dar. Die Statistiktabelle 261 muss sich allgemein auf die erste Statistiktabelle 293 oder die zweite Statistiktabelle 267 beziehen. Ein oder mehrere Proxy-Server 24 verwalten die erste Statistiktabelle 293. Der Inhaltsserver 20 kann die zweite Statistiktabelle 267 verwalten. Die Formate für die erste Statistiktabelle 293 und die zweite Statistiktabelle 267 sind vorzugsweise im Wesentlichen ähnlich oder identisch, um das Aktualisieren der Statistiktabelle 261 in verschiedenen Proxy-Servern in der Proxy-Serverhierarchie zu unterstützen. Die Statistiktabelle 261 unterstützt die Bereitstellung von Vorabrufhinweisdaten (PHI) auf der Grundlage des tatsächlichen Betrachterbezugsverhaltens vom Standpunkt des Proxy-Server oder des Inhaltsserver 20, dem die Statistiktabelle 261 zugeordnet ist. Die Statistiktabelle 261 kann die Bezugnahmen aller unterhalb von ihr befindlichen, Daten austauschenden Clients in der Proxy-Serverhierarchie beobachten.
  • In 1 protokolliert die erste Statistiktabelle 293 im ersten Proxy-Server 50 der Ebene drei beispielsweise das gesamte Datenzugriffsverhalten des ersten Client 600 und des zweiten Client 603. Unterdessen protokolliert die erste Statistiktabelle 293 im zweiten Proxy-Server 55 der Ebene drei das gesamte Datenzugriffsverhalten des dritten Client 700 und des vierten Client 703. Die erste Statistiktabelle im ersten Proxy-Server 40 der Ebene zwei protokolliert das gesamte verhalten des ersten Client 600, des zweiten Client 603, des dritten Client 700 und des vierten Client 703. Obwohl der Proxy der unteren Ebene, beispielsweise der erste Proxy-Server 50 der Ebene drei, die Interessen des Client 600 möglicherweise besser protokollieren kann, ist der Proxy der unteren Ebene möglicherweise nicht in der Lage, genügend statistische Bezugsdaten aus einer ausreichend großen Gruppe von Clients zu erhalten, um Vorabrufhinweisdaten (PHI) von Bedeutung bereitzustellen.
  • In der bevorzugten Ausführungsform stellt der Inhaltsserver 20 im Falle eines aus diesem angeforderten Objektes O die anfänglichen Vorabrufhinweisdaten PHI auf der Grundlage der Daten in seiner zweiten Statistiktabelle 267 bereit. Wenn das Objekt O in der Proxy-Hierarchie abwärts weitergeleitet wird, kann jeder Proxy-Server 24 entlang des Pfades zum Client 22 die Vorabrufhinweisdaten (PHI) im Objektvorsatz ändern, um die PHI an die lokale Situation in der ersten Statistiktabelle 293 anzupassen, falls genügend lokale Bezugnahmen auf das Objekt O vorliegen. Die erste Statistiktabelle 293 kann die zweite Statistiktabelle 267 auf der Grundlage von bestimmten Faktoren, beispielsweise den indizierten Interessen oder Vorlieben eines bestimmten Client, von einem Proxy-Server der unteren Ebene ersetzen.
  • In der bevorzugten Ausführungsform verwaltet der Inhaltsserver 20 eine zweite Statistiktabelle 267, die eine Datenbank von Datenzugriffshäufigkeiten der Clients 22 bezüglich der angeforderten Daten ist. Die Datenbank könnte erweitert werden, so dass sie Datenzugriffshäufigkeiten von anfordernden Proxy-Servern 24 enthält. Ähnlich verwalten ein oder mehrere Proxy-Server 24 eine erste Statistiktabelle 293. Die Statistiktabelle 261 weist beispielsweise ein erstes Feld (array) 383 mit einer ersten Datenstruktur 304 und einer zweiten Datenstruktur 306 auf. Wie gezeigt wird, sind die erste Datenstruktur 304 und die zweite Datenstruktur 306 Datensätze. Jeder Datensatz in der Statistiktabelle 261 besteht aus mehreren Feldern, die Eltern-Objektkennzeichner 301 (d.h. Objekt-ID), erste Zählwerte 302 (d.h. TCount) und Zugriffslisten-Datenzeiger 303 (d.h. A-List) enthalten.
  • Das Feld 301 für Eltern-Objektkennzeichner enthält den Objektkennzeichner. Der Eltern-Objektkennzeichner 301 enthält beispielsweise den URL des Objekts für Internetanwendungen oder zusammenhängende Anwendungen. Das erste Zählfeld 302 enthält die Anzahl von Malen, die gemäß der Serverbeobachtung auf das dem Eltern-Objektkennzeichner zugeordnete Eltern-Objekt zugegriffen wird. Das heißt, das erste Zählfeld 302 enthält die Häufigkeiten von tatsächlichen Anforderungen nach angeforderten Objekten. Der erste Zählwert 302 stellt eine Eltern-Objekt-Zugriffshäufigkeit dar. Der Zugriffslisten-Datenzeiger 303 enthält einen Datenzeiger auf eine Zugriffsliste 370.
  • Die Statistiktabelle 261 weist eine Zugriffsliste 370 auf, die beispielsweise einen ersten Zugriffsdatensatz 340, einen zweiten Zugriffsdatensatz 350, einen dritten Zugriffsdatensatz und einen vierten Zugriffsdatensatz 380 enthält. Wie dargestellt wird, weist der der ersten Datenstruktur 304 zugeordnete Eltern-Objektkennzeichner eine Zugriffsliste 370 auf, die aus einer verbundenen Liste des ersten Zugriffsdatensatzes 340, des zweiten Zugriffsdatensatzes 350 und des dritten Zugriffsdatensatzes 360 besteht. Das Datenzeigerfeld 313 des nächsten Datensatzes enthält einen Zeiger auf den nächsten Zugriffsdatensatz auf der Zugriffsliste 370, der einem bestimmten Eltern-Objektkennzeichner 301 zugeordnet ist. Die Zugriffsliste für den der zweiten Datenstruktur 306 zugeordneten Eltern-Objektkennzeichner 301 enthält lediglich den vierten Zugriffsdatensatz 380.
  • Jeder Datensatz oder jede Datenstruktur auf der Zugriffsliste besteht aus mehreren Feldern, die einen Kind-Objektkennzeichner 310 (d.h. A-Object-ID), einen zweiten Zählwert 312 (d.h. RCount) und einen nächsten Datensatz-Datenzeiger 313 (d.h. Nxt) beinhalten. Die Datenstrukturen können im Format einer allgemeinen Datenstruktur, eines Datensatzes oder von Feldern vorliegen. Wie in 4 dargestellt wird, sind die Datenstrukturen Datensätze, die eine verbundene Liste in der Zugriffsliste 370 bilden.
  • In einer alternativen Ausführungsform kann das Datenformat der Statistiktabelle ein primäres Feld enthalten, das mit einer Vielzahl von alternativen sekundären Feldern in einer Baumstruktur in Zusammenhang steht. Das primäre Feld würde Daten enthalten, die eine Beziehung zu Eltern-Objekten aufweisen, und das sekundäre Feld würde Daten zu den Kind-Objekten von entsprechenden Eltern-Objekten enthalten.
  • Das Kind-Objektkennzeichnerfeld 310 enthält den Objektkennzeichner (URL) eines Objekts. Der Eltern-Objektkennzeichner 301 weist eine Beziehung zu einem oder mehreren Kind-Objektkennzeichnern 310 auf der Zugriffsliste auf. Die Kind-Objektkennzeichner 310 kennzeichnen die möglichen Vorabrufkandidaten, falls tatsächlich auf das Eltern-Objekt des Kind-Objekts Bezug genommen wird. Der zweite Zählwert 312 enthält die Anzahl von Malen, die durch sein Eltern-Objekt auf das Kind-Objekt Bezug genommen wird. Mit anderen Worten, der zweite Zählwert ist die Häufigkeit, mit der zeitweilig und unmittelbar im Anschluss an die frühere Bezugnahme auf ein zugeordnetes Eltern-Objekt auf das Kind-Objekt Bezug genommen wird. Der zweite Zählwert 312 stellt eine Kind-Objekt-Zugriffshäufigkeit dar.
  • Die Kind-Objektkennzeichner 310 auf der Zugriffsliste 370 können auf der Grundlage der Beobachtung des tatsächlichen Bezugsverhaltens der Clients dynamisch erhalten werden. Beispielsweise kann eine Webseite in HTML HTTP-Links zu anderen Webseiten haben. Diese durch die HTTP-Links angezeigten Webseiten sind mögliche Kind-Objekte von der die HTTP-Links enthaltenden (Eltern-)Webseite. Wenn das Eltern-Objekt betrachtet wird, falls ein im Eltern-Objekt enthaltener Bezugs-(HTTP-)Link angeklickt wird, wird auf das entsprechende Kind-Objekt Bezug genommen. Ein Kind-Objekt kann mehr als einen Elter haben, da ein Bezugs-Link zum Kind-Objekt in mehreren anderen Eltern-Objekten enthalten sein kann. Unter dem HTTP-Protokoll enthält die Anforderung nach dem Kind-Objekt den Eltern-URL als Bezugsdaten in ihrem Vorsatz. Folglich kann der Server eine nachfolgende Kind-Bezugnahme dynamisch mit dessen Elter in Zusammenhang bringen (durch die Bezugsdaten im Vorsatz des Kindes). Falls ein Client ein Kind-Objekt häufig anklickt oder auswählt, kann dieses zu einem Vorabrufkandidat oder zu Auswahldaten werden.
  • Außer dem dynamischen Protokollieren des Betrachterbezugsverhaltens kann eine statische Analyse oder Datenerhebung in Web-Protokollen periodisch ausgeführt werden, um Daten zu Gruppen von Objekten für die Statistiktabelle 261 abzuleiten. Der Datenerhebungsalgorithmus (mining algorithm) kennzeichnet Gruppen von Objekten, auf die gemeinsam Bezug genommen wird, um mögliche Vorabrufkandidaten für PHI zu erhalten. Ein Verfahren zum Abfragen von Web-Protokollen zur Ableitung eines Bezugsmusters wird in "SpeedTracer: A Web Usage Mining and Analysis Tool" von Kun-lung Wu et. al., IBM Research Report 20895, Mai 1997, beschrieben (siehe IBM Systems Journal Band 37, Nr. 1, Seiten 89 bis 105, 1998). Der Algorithmus SpeedTracer stellt Daten zu häufigen Gruppen von Seiten, auf die in einer Benutzersitzung gemeinsam Bezug genommen wird, und zum häufigen Übertragungspfad bereit. Der Algorithmus SpeedTracer ist eine in die Tiefe gehende Datenerhebung, die zusammenhängende Bezugnahmen aufdecken kann, auf die nicht gleich gemeinsam Bezug genommen wird.
  • Außerdem kann er auf der Grundlage des Übertragungspfades zu einem gegebenen Objekt bessere Vorhersagen zu dem nächsten Satz von Objekten machen, auf die Bezug genommen wird.
  • Zur Kennzeichnung von Datenzugriffsmustern für die Statistiktabelle 261 können auch andere Typen von Datenerhebungsalgorithmen verwendet werden. Beispielsweise gehören zu anderen Datenerhebungsalgorithmen die Klassifikation und die Gruppenbildung (clustering), die ebenfalls auf die Web-Protokollanalyse angewandt werden können, um Bezugsmuster zu erhalten. Außerdem können die PHI auch vom Inhaltsanbieter auf der Grundlage seiner Kenntnis der Objektbeziehungen bereitgestellt werden. Beispielsweise können PHI Korrekturroutinen (patches) und Erweiterungen für angeforderte Software-Herunterladevorgänge, Java-Klassen für das angeforderte JAVA-Applet und Objekte (z.B. GIPs) enthalten, die in den angeforderten Objekten enthalten sind, sind jedoch nicht auf diese beschränkt.
  • In der bevorzugten Ausführungsform wird bei der Sammlung statistischer Daten eine tatsächliche Bezugnahme auf ein Objekt durch eine Clientstation von einer Vorabrufanforderung zu einem Objekt unterschieden. Der erste Zählwert 302 (d.h. TCount) und der zweite Zählwert 310 (d.h. RCount) in der Statistiktabelle 261 spiegeln tatsächliche Bezugnahmen und keine Vorabrufvorgänge wider. Das heißt, ein Vorabrufvorgang führt nicht zu einer Aktualisierung der ersten Statistiktabelle 293 oder der zweiten Statistiktabelle 267, sondern lediglich tatsächliche Objektbezugnahmen.
  • Die Vorabrufhinweisdaten oder die Liste von Vorabrufhinweisdaten können verschiedene Datenstrukturen zum Kommentieren angeforderter Daten oder angeforderter Objekte verwenden. Beispielsweise können Vorabrufhinweisdaten unter Verwendung von huckepack übertragenen Metadaten zwischen Anforderer- und Serverknoten übertragen werden. In einer HTTP-Realisierung kann der Datenaustausch unter Verwendung vorliegender Web-Protokolle in Form von Metadaten in einen Objektvorsatz aufgenommen werden. PICS ("Platform for Internet Content Selection") beschreibt ein Verfahren zur Übertragung von Metadaten, die einen elektronischen Inhalt betreffen. PICS kann auf (a) die Kommentierung der angeforderten Daten, (b) das Vorabrufen von Auswahldaten und (c) die Bestätigung von Vorabrufvorgängen nach dem Vorabrufen von Daten angewandt werden.
  • PICS ist Fachleuten als eine Protokollempfehlung des Web-Konsortiums (Web Consortium Protocol Recommendation) bekannt. PICS wurde zuerst zum Übertragen von wertebasierten Bewertungsbezeichnungen (rating labels) verwendet, beispielsweise "Wie viel Nacktheit ist mit diesem Inhalt verbunden?", das Format und die Bedeutung der Metadaten sind jedoch gänzlich allgemein. In PICS werden Metadaten über den elektronischen Inhalt gemäß dem "Bewertungsdienst" ("rating service") oder dem Erzeuger und der vorgesehenen Nutzung (producer-and-intended-usage) der Daten in Gruppen zusammengefasst, und in einer solchen Gruppe kann eine beliebige Anzahl von Kategorien oder Mengen von Daten übertragen werden. Jede Kategorie hat einen Bereich von zulässigen Werten, und für ein spezifisches Inhaltselement kann eine bestimmte Kategorie einen einzigen Wert oder mehrere Werte aufweisen. Außerdem kann die Metadatengruppe (als "PICS-Kennsatz" ("PICS label") bekannt) Ablaufdaten enthalten. Außerdem gibt es Einrichtungen, die es zu ermöglichen, dass ein PICS-Kennsatz auf mehr als einen spezifischen Teil eines elektronischen Inhalts angewandt werden kann. Jeder PICS-Kennsatz für einen bestimmten Teil eines elektronischen Inhalts kann unabhängig dem Inhalt hinzugefügt oder aus diesem entfernt werden.
  • Beispielsweise kann eine Bilddatei von einem Server mit einem PICS-Kennsatz übertragen werden, dessen "Bewertungsdienst"-Feld anzeigt, dass sie wertebasierte Bewertungsbezeichnungen gemäß dem Bewertungssystem "SafeSurf" enthält. Gemäß der bevorzugten Ausführungsform der Erfindung kann die Bilddatei bei ihrer Leitung durch einen Unternehmens-Proxy einen neuen aktualisierten Kategoriewert für diesen PICS-Kennsatz erhalten, um die lokale Betrachtung des "Bewertungsdienstes" widerzuspiegeln. Folglich sieht der Clientcomputer lediglich den neuen Kategoriewert des PICS-Kennsatzes. Das HTTP-Protokoll wurde erweitert, so dass seine Anforderungsvorsätze und Antwortvorsätze PICS unterstützen. Die Techniker, die andere allgemeine Anwendungsprotokolle definieren, beispielsweise NNTP, erwägen nun ebenfalls, die PICS-Unterstützung hinzuzufügen. Als Teil dieser Protokolle kann eine Liste der Typen von gewünschten PICS-Kennsätzen in eine Anforderung aufgenommen werden. Außerdem gibt PICS ein Abfrageformat für die Anforderung von PICS-Daten von einem zentralen Kennsatzserver an.
  • Es folgt ein Beispiel für einen PICS-Kennsatz: (PICS-1.1 "http:/the.rating.service" labels for "http://the.content" exp "1997.07.09T08:15-0500" r (n 4 s 3 v 2)), wobei "n", "s" und "v" Übertragungsnamen für verschiedene Metadatentypen und die anwendbaren Werte für diesen Inhalt 4 (für n), 3 (für s) und 2 (für v) sind. Ausschließlich Software, die die Kennung "http://the.rating.service" erkennt, würde wissen, wie diese Kategorien und Werte interpretiert werden können.
  • In einer bevorzugten Ausführungsform werden drei verschiedene Arten von PICS-Kennsätzen eingeführt. Die erste, als Vorabrufkennsatz (d.h. P-Kennsatz) bezeichnete Art von PICS-Kennsatz wird vom Serverknoten zum Bereitstellen von PHI verwendet. Die zweite, als Anforderungskennsatz (d.h. R-Kennsatz) bezeichnete Art von PICS-Kennsatz wird zum Anfordern der Vorabrufkandidatenobjekte verwendet. Die dritte, als Bezugskennsatz (d.h. X-Kennsatz) bezeichnete Art von PICS-Kennsatz wird zum Bereitstellen einer Rückmeldung zur Wirksamkeit des Vorabrufs auf der Grundlage der Vorabrufobjekte verwendet, auf die tatsächlich Bezug genommen wird.
  • Der Vorabrufkennsatz kann eine beliebige Kombination der folgenden Kategorien enthalten, unter anderem eine Kennzeichnerkategorie, eine Wahrscheinlichkeitskategorie, eine Größenkategorie und eine Zwischenspeicherkategorie, ist jedoch nicht auf diese begrenzt. Die Kennzeichnerkategorie (d.h. die Kategorie ID) hat einen Wert, der den URL des Vorabrufkandidaten überträgt. Die Wahrscheinlichkeitskategorie (d.h. die Kategorie PROB) hat einen Wert, der eine Schätzung der Nützlichkeit des Vorabrufs überträgt. In der bevorzugten Ausführungsform wird eine Schätzung der Bezugswahrscheinlichkeit verwendet. Die Bezugswahrscheinlichkeit zeigt die Wahrscheinlichkeit an, mit der auf den Vorabrufkandidaten Bezug genommen wird. Die Größenkategorie hat einen Wert, der die Größe oder den Speicherbedarf des Vorabrufkandidaten überträgt. Die Zwischenspeicherkategorie hat einen Wert, der Daten zu jedem Proxy-Server der höheren Ebene überträgt, der eine Kopie des Vorabrufkandidatenobjekts in seinem ersten Hauptcachespeicher 294 oder in seinem ersten Vorabrufcachespeicher 296 aufweist. In der bevorzugten Ausführungsform wird nur der nächstgelegene Proxy der höheren Ebene gekennzeichnet.
  • Der Anforderungskennsatz kann die folgenden Kategorien enthalten, unter anderem die Kennzeichnerkategorie (d.h. die Kategorie ID), ist jedoch nicht auf diese begrenzt. Der Wert der Kennzeichnerkategorie überträgt den URL des Objekts, das vorabgerufen werden muss. Wenn ein (Proxy- oder Client-)Knoten in der bevorzugten Ausführungsform ein vorgeschlagenes Vorabrufkandidatenobjekt vorabrufen möchte, wird eine HTTP-Kopfanforderung unter Verwendung des Anforderungskennsatzes zum Übertragen des URL des vorabzurufenden Objekts durch die Proxy-Hierarchie an den Inhaltsserver 20 rückübertragen. Wenn ein Proxy-Server 24 eine Vorabrufanforderung von einem Knoten einer unteren Ebene der Hierarchie empfängt, bedient er die Anforderung, falls das Objekt sich in seinem Haupt- oder Vorabrufcachespeicher befindet. Andernfalls leitet er die Vorabrufanforderung an den Proxy der nächsthöheren Ebene weiter.
  • Der Bezugskennsatz kann die folgenden Kategorien enthalten, ist jedoch nicht auf diese begrenzt: unter anderem die Objektkennzeichnerkategorie (Kategorie Objekt-ID) und die Bezugskennzeichnerkategorie (Kategorie Bezugs-ID). Die Objektkennzeichnerkategorie hat einen Wert, der den URL des vorabgerufenen Objekts überträgt, auf das Bezug genommen wird. Die Bezugskennzeichnerkategorie hat einen Wert, der den URL des Objektes überträgt, das in seinen PHI das vom Wert der Objektkennzeichnerkategorie angezeigte Objekt enthält.
  • Wenn in der bevorzugten Ausführungsform tatsächlich auf ein Vorabrufobjekt Bezug genommen wird, wird eine HTTP-Kopfanforderung unter Verwendung des Bezugskennsatzes durch die Proxy-Hierarchie an den Inhaltsserver 20 rückübertragen, um den URL des Vorabrufkandidatenobjekts, auf das Bezug genommen wurde, und sein Bezugsobjekt zu übertragen. Dieser Typ von HTTP-Kopfanforderung wird im Folgenden als Vorabrufbezugsnachricht bezeichnet. Wenn ein Proxy-Server 24 eine Vorabrufbezugsnachricht von einem Knoten der unteren Hierarchie empfängt, aktualisiert er seine erste Statistiktabelle 293 und leitet die Anforderung an den Proxy-Server der nächsthöheren Ebene weiter.
  • 4 zeigt ein Beispiel einer Serverlogik 268, die die zweite Statistiktabelle 267 im Inhaltsserver 20 aktualisiert. Die Aktualisierung der zweiten Statistiktabelle 267 wird durch eine Objektanforderung von einem Client 22 eingeleitet. Der Inhaltsserver 20 erzeugt vorzugsweise Vorabrufhinweisdaten zum Kommentieren oder Einfügen in den Objektvorsatz des Objekts, bevor das angeforderte Objekt an den Client 22 übertragen wird.
  • Beginnend beim Bezugsblock 405 wartet der Inhaltsserver 20 auf eine Eingabe. Falls die empfangene Eingabe im Entscheidungssymbol 410 eine Objektanforderung nach dem Objekt O ist, wird im Bezugsblock 415 die Statistikaktualisierungseinheit 252 oder die zweite Statistikaktualisierungsroutine 269 aufgerufen. Im Bezugsblock 420 wird die Erzeugungseinheit 266 zum Erzeugen von Vorabrufhinweisdaten oder eine Vorabruferzeugungsroutine aufgerufen. Ein ausführliches Beispiel der Erzeugungseinheit 266 oder der PHI-Erzeugungsroutine wird an späterer Stelle mit Bezugnahme auf 6 beschrieben. Im Bezugsblock 425 werden die PHI beispielsweise in den Objektvorsatz des angeforderten Objekts eingefügt. Andernfalls können die Vorabrufhinweisdaten das angeforderte Objekt oder die angeforderten Daten im Block 425 kommentieren. In der bevorzugten Ausführungsform kann das PICS-Protokoll zum Kommentieren des angeforderten Objekts verwendet werden. Die PHI werden im P-Kennsatz gespeichert, wobei der Wert der Kennzeichnerkategorie den URL des Vorabrufkandidaten widerspiegelt. Im Block 430 wird das angeforderte Objekt an den anfordernden Client oder den anfordernden Proxy-Server rückübertragen. Falls die empfangene Eingabe im Entscheidungssymbol 435 eine Vorabrufbezugsnachricht ist (d.h. eine HTTP-Kopfanforderung mit dem X-Kennsatz, der anzeigt, dass tatsächlich auf ein Vorabrufobjekt O Bezug genommen wird), wird im Schritt 440 das Statistikaktualisierungsmittel 252 oder die zweite Statistikaktualisierungsroutine 269 aufgerufen. Für andere Typen von Eingaben, die nicht im Mittelpunkt der vorliegenden Erfindung stehen, beispielsweise eine FTP-(File Transfer Protocol-)Anforderung, kann ein entsprechendes anderes Bedienprogramm im Bezugsblock 445 aufgerufen werden.
  • 5 zeigt, wie die Statistikaktualisierungseinheit 252 eine der Statistiktabellen 261 aktualisiert. Die Statistikaktualisierungseinheit 252 nimmt Bezug auf die erste Statistikaktualisierungsroutine 264 zum Aktualisieren der ersten Statistiktabelle 293 oder auf die zweite Statistikaktualisierungsroutine 269 zum Aktualisieren der zweiten Statistiktabelle 267 oder sowohl auf die erste Statistikaktualisierungsroutine 264 als auch auf die zweite Statistikaktualisierungsroutine 269. Die Statistiktabelle 261 nimmt Bezug auf die erste Statistiktabelle 293 oder die zweite Statistiktabelle 267 oder sowohl auf die erste Statistiktabelle 293 als auch auf die zweite Statistiktabelle 267. Die Statistikaktualisierungseinheit 252 sucht zunächst nach Daten in einem Bezugsobjekt. Das angeforderte Objekt wird sodann auf eine Zugriffsliste oder eine Vorabrufliste des Bezugsobjekts platziert.
  • Beginnend beim Bezugsblock 505 wird eine Statistiktabelle 261 aktualisiert, so dass sie widerspiegelt, dass ein weiteres Mal auf das Objekt O Bezug genommen wurde, indem der erste Zählwert erhöht wird. Mit anderen Worten, im Block 505 wird TCount(O) um eins erhöht. Falls sich das Objekt O noch nicht in der Statistiktabelle 261 befindet, wird ein Eltern-Objektkennzeichner in die Statistiktabelle 261 eingefügt, wobei TCount(O) auf den Anfangswert eins gesetzt wird. Der neue Eltern-Objektkennzeichner ersetzt den Eintrag in der Statistiktabelle 261, auf den zuletzt Bezug genommen wurde, falls kein freier Platz in dieser verfügbar ist. Im Entscheidungssymbol 510 wird das angeforderte Objekt auf Bezugsdaten überprüft, indem beispielsweise der Objektvorsatz des angeforderten Objekts geprüft wird. Im HTTP-Protokoll wird das Bezugsobjekt beispielsweise im Vorsatz bereitgestellt, um anzuzeigen, welches Objekt den HTTP-Link zum angeforderten Objekt enthält. Falls ein Bezugsobjekt (R) im Vorsatz gefunden wird, wird die Statistiktabelle 261 im Schritt 520 geprüft, um festzustellen, ob das Objekt O sich bereits auf der Zugriffsliste des Objekts R befindet. Ist dies der Fall, wird der zweite Zählwert (d.h. RCount(O)) im Block 530 für das angeforderte Objekt um eins erhöht. Andernfalls wird das angeforderte Objekt (d.h. das Objekt O) im Block 525 in die Zugriffsliste des Eltern-Objekts (d.h. des Objekts R) eingefügt, wobei der zweite Zählwert (d.h. RCount(O)) auf den Anfangswert eins gesetzt wird.
  • 6 zeigt ein Beispiel der Erzeugungseinheit 266 zum Erzeugen von Vorabrufhinweisdaten in eine Liste von Vorabrufhinweisdaten. Die Liste von Vorabrufhinweisdaten enthält Kind-Objektkennzeichner von Kind-Objekten, falls das Verhältnis des zweiten Zählwerts zum ersten Zählwert einen Hinweisschwellenwert überschreitet. Die Liste von Vorabrufhinweisdaten stellt eine verbesserte oder gefilterte Zugriffsliste dar. Das heißt, die Erzeugungseinheit 266 nimmt Eingaben von der Statistiktabelle 261 entgegen und filtert diese, um die Liste von Vorabrufhinweisdaten zu erhalten.
  • Die Erzeugungseinheit 266 zum Erzeugen von Vorabrufhinweisdaten stellt eine Routine 266 zur Erzeugung von Vorabrufhinweisdaten (PHI) dar, die im Bezugsblock 610 beginnt. Im Bezugsblock 610 wird die Zugriffsliste eines Eltern-Objekts (d.h. des Objekts O) überprüft, um festzustellen, ob sie leer ist (d.h., ob A-List(O) gleich null ist). Falls die Zugriffsliste nicht leer ist, sei im Bezugsblock 620 Cj das nächste Kind-Objekt (d.h. Kind-Objektkennzeichner), das auf der Zugriffsliste des Eltern-Objekts (d.h. des Objekts O) gekennzeichnet ist.
  • Im Entscheidungssymbol 630 wird die Bezugswahrscheinlichkeit des Kind-Objekts Cj mit einem Hinweisschwellenwert (d.h. TH) verglichen, der ein zuvor angegebener Schwellenwert ist (z.B. 0,75). In der bevorzugten Ausführungsform wird die Bezugswahrscheinlichkeit von Cj als das Verhältnis des zweiten Zählwerts zum ersten Zählwert (d.h. RCount(Cj)/TCount(O)) definiert. Das Verhältnis ist eine Schätzung der Wahrscheinlichkeit, mit der nach Bezugnahme auf das Eltern-Objekt (Objekt O) auf das Kind-Objekt (Objekt Cj) Bezug genommen wird. Falls die Bezugswahrscheinlichkeit von Cj im Entscheidungssymbol 630 größer als der Hinweisschwellenwert (d.h. TH) ist, wird der Kind-Objektkennzeichner (Cj) im Bezugsblock 640 in die PHI-Liste aufgenommen. Mit anderen Worten, falls das Verhältnis den Hinweisschwellenwert überschreitet, werden der Kind-Objektkennzeichner und zugeordnete Daten auf die Liste von Vorabrufhinweisdaten platziert.
  • Die Erzeugungseinheit 266 benötigt zur Ausführung des Vergleichs im Bezugsblock 630 möglicherweise Software-Teilroutinen oder Softwarekomponenten. Insbesondere kann die Erzeugungseinheit 266 zur Erzeugung von Vorabrufhinweisdaten in eine Liste von Vorabrufhinweisdaten ein Berechnungsmittel zum Berechnen der Bezugswahrscheinlichkeit und ein Vergleichsmittel zum Vergleichen der Bezugswahrscheinlichkeit mit dem Hinweisschwellenwert enthalten.
  • In der bevorzugten Ausführungsform werden die PHI-Daten unter Verwendung eines PICS-Protokolls im P-Kennsatz gespeichert, wobei der URL des Kind-Objekts (Cj) als Kennzeichnerkategorie (d.h. Kategoriewert ID) und seine Bezugswahrscheinlichkeit und Größe als Wahrscheinlichkeitskategorie- (d.h. PROB) bzw. Größenkategoriewerte verwendet werden. Falls die Zugriffsliste des Objekts O im Entscheidungssymbol 645 noch nicht vollständig abgefragt wurde, wird der Bezugsblock 620 erneut ausgeführt.
  • Zum Auswählen der Vorabrufkandidaten aus der Statistiktabelle 261 können verschiedene alternative Kriterien verwendet werden. Beispielsweise kann ein gleitender Mittelwert der Bezugswahrscheinlichkeit über vergangene Zeitintervalle als Kriterium verwendet werden. Außerdem kann die Auswahlprozedur der Vorabrufkandidaten rekursiv gemacht werden. Falls ein Kind-Objekt (Objekt Cj) als Vorabrufkandidat eines Eltern-Objekts (Objekt O) ausgewählt wird, kann jedes Kind-Objekt (Objekt Cji) auf der Zugriffsliste des Kind-Objekts (Objekt Cj) ausgewertet werden, um festzustellen, ob es auf die Vorabrufliste des Eltern-Objekts (Objekt O) aufgenommen werden muss, falls es noch nicht darin enthalten ist. Im Entscheidungssymbol 630 kann die Vergleichseinheit oder Auswertungseinheit nun prüfen, ob das Produkt von RCount(Cj)/TCount(O) und RCount(Cji)/TCount(Cj) größer als der Hinweisschwellenwert (TH) ist.
  • 7 zeigt ein Beispiel der Funktionsweise der Clientlogik 244. 7 zeigt, dass das Bedienprogramm 247 für Client-Objektanforderungen aufgerufen wird, sobald ein Objekt angefordert wird. Andernfalls kann das Vorabrufbedienprogramm 241 Objekte bearbeiten, die nicht angefordert werden, jedoch im zweiten Vorabrufcachespeicher 249 des Client 22 gespeichert werden müssen.
  • Beginnend beim Block 710 wartet der Client 22 auf eine Eingabe. Falls die empfangene Eingabe im Entscheidungssymbol 720 ein Objekt ist, wird im Block 730 das zweite Vorabrufbedienprogramm 241 aufgerufen. Im Block 740 wird das Client-Objektbedienprogramm aufgerufen, um das Objekt an die anfordernde Anwendung im Client 22 rückzuübertragen. Falls die empfangene Eingabe im Entscheidungssymbol 750 eine Objektanforderung ist, wird im Bezugsblock 760 das Bedienprogramm 247 für Client-Objektanforderungen aufgerufen. Für andere Typen von Eingaben, die nicht im Mittelpunkt der vorliegenden Erfindung stehen (beispielsweise eine Stapelspeicheranforderung (push request)), kann im Block 770 ein entsprechendes anderes Bedienprogramm aufgerufen werden.
  • 8 zeigt ein Beispiel der Funktionsweise der Vorabrufeinheit 250, die das erste Vorabrufbedienprogramm 248 oder das zweite Vorabrufbedienprogramm 241 oder sowohl das erste Vorabrufbedienprogramm 248 als auch das zweite Vorabrufbedienprogramm 241 enthält. Kurz gesagt, die Vorabrufeinheit 250 verwendet die von der Erzeugungseinheit 266 in 6 erzeugte Vorabrufliste als Eingabe, um festzustellen, ob Kind-Objekte, auf die in der Liste von Vorabrufhinweisdaten Bezug genommen wird, die Speicherung in einem der Vorabrufcachespeicher 298 gewährleisten. Die Vorabrufeinheit 250 berechnet für jedes Vorabrufkandidatenobjekt oder jeden Kind-Objektkennzeichner auf der Liste von Vorabrufhinweisdaten einen Vorabrufwert. Der Vorabrufwert geht von der Zugriffswahrscheinlichkeit des Kind-Objekts und vom Zugriffsaufwand der Speicherung des Kind-Objekts aus. Die Kind-Objekte mit den höchsten Schwellenwerten werden zuerst zwischengespeichert, bis der verfügbare Speicherbereich in einem der Vorabrufcachespeicher 298 voll ist.
  • Beginnend beim Bezugsblock 805 sei L die PHI-Liste von Vorabrufkandidatenobjekten. Die Vorabrufkandidatenobjekte können in Form von Kind-Objektkennzeichnern auf der Liste von Vorabrufhinweisdaten ausgedrückt werden. Jeder im lokalen Cachespeicher (d.h. einem Vorabruf- oder einem Hauptcachespeicher) erscheinende Vorabrufkandidat wird aus L entfernt. Im Block 810 wird der Vorabrufwert (PV) jedes Objekts in L berechnet. In der bevorzugten Ausführungsform wird der PV-Wert als das Produkt aus Bezugswahrscheinlichkeit und Zugriffsaufwand definiert. Der Zugriffsaufwand wird auf der Grundlage des nächstgelegenen Standorts geschätzt, der das Vorabrufkandidatenobjekt oder das auf der PHI-Liste gekennzeichnete Kind-Objekt zwischenspeichert. In der Praxis werden die Kind-Objekte anstatt als Ganzes vorzugsweise durch Kind-Objektkennzeichner auf der PHI-Liste gekennzeichnet, um Speicherplatz zu sparen. Die Bezugswahrscheinlichkeit stammt optimalerweise aus dem Wert der Wahrscheinlichkeitskategorie (Kategorie PROB), und der nächstgelegene Zwischenspeicherstandort stammt aus dem Wert der Zwischenspeicherkategorie des PICS-Kennsatzes. Im Block 820 wird das Vorabrufkandidatenobjekt mit dem höchsten PV-Wert ausgewählt. Im Bezugsblock 830 wird die Kapazität des Vorabrufpufferbereichs ermittelt, die zum Aufnehmen des Vorabrufkandidatenobjekts (d.h. Oj) verfügbar ist. Dieser Speicherbereich wird gegenwärtig nicht genutzt oder von Objekten mit niedrigeren PV-Werten belegt, die nur ein Bruchteil (z.B. eine Hälfte) des PV-Werts des aktuell ausgewerteten Vorabrufkandidatenobjekts (d.h. Oj) sind. Jeder Speicherbereich, der von einem Objekt belegt wird, das in einem der Vorabrufcachespeicher 298 als löschbar markiert ist, wird als gegenwärtig nicht verwendet betrachtet. Im Entscheidungssymbol 840 wird einer der Vorabrufcachespeicher 298 überprüft, um festzustellen, ob genügend Speicherplatz für Oj vorhanden ist. Ist dies der Fall, wird das Objekt Oj im Bezugsblock 850 in einen der Vorabrufcachespeicher 298 vorabgerufen. Im Block 860 wird Oj aus der PHI-Liste (d.h. L) entfernt. Falls L nicht leer ist, wird im Bezugsblock 870 der dem Bezugsblock 820 zugeordnete Schritt erneut ausgeführt.
  • Obwohl in der bevorzugten Ausführungsform jedes Objekt einzeln vorabgerufen wird, können mehrere Objekte in einer Anforderung zusammen vorabgerufen werden. Im Bezugsblock 850 kann Oj auf eine Vorabrufliste gesetzt werden. Falls L leer ist, wird im Block 870 sodann eine Vorabrufanforderung mit der gesamten Vorabrufliste ausgegeben. Auch falls nicht genügend Speicherplatz im Vorabrufcachespeicher vorhanden ist, kann außerdem eine ausstehende Vorabrufliste verwaltet werden, so dass ein zusätzlicher Vorabrufvorgang eingeleitet werden kann, wenn Speicherbereich verfügbar wird.
  • Unter Verwendung des HTTP-Protokolls kann die Datenaustauschsitzung während des Vorabrufvorgangs offen bleiben, um den Datenaustauschaufwand zu verringern. Es besteht keine Notwendigkeit, die Sitzung für jeden Vorabrufvorgang erneut einzurichten.
  • 9 zeigt ein Beispiel der Funktionsweise des Bedienprogramms 247 für Client-Objektanforderungen. Kurz gesagt, das Bedienprogramm 247 für Client-Objektanforderungen durchsucht zuerst den zweiten Hauptcachespeicher 246 und als Zweites den zweiten Vorabrufcachespeicher 249. Falls das Objekt sich weder im zweiten Hauptcachespeicher 246 noch im zweiten Vorabrufcachespeicher 249 befindet, wird eine Objektanforderung an den Server übertragen. Falls das Objekt sich im zweiten Vorabrufcachespeicher 249 befindet, wird eine Vorabrufbezugsnachricht an einen der Server übertragen, um anzuzeigen, dass tatsächlich auf das Vorabrufobjekt Bezug genommen wurde. Anschließend werden das zweite Vorabrufbedienprogramm 241 und das Client-Objektbedienprogramm verwendet.
  • Falls das angeforderte Objekt O im Entscheidungssymbol 905 im zweiten Hauptcachespeicher 246 gefunden wird, wird im Bezugsblock 925 das zweite Vorabrufbedienprogramm 241 aufgerufen, um entsprechende Vorabrufvorgänge auf der Grundlage der dem Objekt O zugeordneten PHI einzuleiten. Im Bezugsblock 930 wird das Client-Objektbedienprogramm aufgerufen, um das angeforderte Objekt an die anfordernde Einheit im Client rückzuübertragen. Falls das angeforderte Objekt O im Entscheidungssymbol 910 im zweiten Vorabrufcachespeicher 249 gefunden wird, wird im Block 920 eine Vorabrufbezugsnachricht an den Inhaltsserver 20 übertragen, so dass seine zweite Statistiktabelle 267 aktualisiert werden kann, um die tatsächliche Bezugnahme auf das Vorabrufobjekt zu erfassen. Wenn die Vorabrufbezugsnachricht durch die Proxy-Hierarchie an den Inhaltsserver 20 weitergeleitet wird, wird in der Tat die zweite Statistiktabelle 267 in jedem zwischengeschalteten Proxy ebenfalls aktualisiert. Falls das Objekt sich im Block 910 nicht im zweiten Vorabrufcachespeicher 249 befindet, wird im Bezugsblock 915 eine Objektanforderung durch die Proxy-Hierarchie an den Inhaltsserver 20 übertragen.
  • Die Vorabrufbezugsnachrichten können stapelweise verarbeitet werden. Das heißt, es kann eine Vorabrufbezugsliste verwaltet und periodisch eine zusammengesetzte Vorabrufbezugsnachricht an den Server der höheren Ebene übertragen werden, um die Bezugnahme auf alle Objekte auf der Vorabrufbezugsliste zu bestätigen.
  • 10 zeigt ein Beispiel der Funktionsweise einer Proxy-Serverlogik 295. Kurz gesagt, die Eingabe wird gemäß der Tatsache sortiert, ob es sich dabei um eine Objektanforderung, eine Objektübertragung oder eine Vorabrufbezugsnachricht handelt. In Abhängigkeit von der Eingabe stehen drei verschiedene Bedienprogramme oder Softwareroutinen zur Verfügung: ein Bedienprogramm 283 für Proxy-Objektanforderungen, ein Proxy-Objektbedienprogramm 284 und ein Bedienprogramm 285 für Vorabrufbezugsnachrichten.
  • Beginnend beim Bezugsblock 1005 wartet der Proxy-Server 24 auf eine Eingabe. Falls die empfangene Eingabe im Entscheidungssymbol 1010 eine Objektanforderung nach einem Objekt O ist, prüft der Proxy-Server 24 im Block 1015, ob bereits eine anstehende Anforderung nach diesem Objekt O vorliegt. Der Grund für die anstehende Anforderung kann darin bestehen, dass von diesem Proxy-Server 24 eine Vorabrufanforderung nach diesem Objekt O ausgegeben oder eine frühere Anforderung nach dem Objekt O von einem anderen, in der Proxy-Hierarchie weiter unten befindlichen Proxy-Serverknoten übertragen wurde. Falls im Bezugsblock 1015 keine anstehende Anforderung nach dem Objekt O vorliegt, wird im Block 1020 das Bedienprogramm 283 für Proxy-Objektanforderungen aufgerufen. Falls die empfangene Eingabe im Entscheidungssymbol 1025 ein Objekt ist (vom Proxy der höheren Ebene), wird im Bezugsblock 1030 das Proxy-Objektbedienprogramm 284 aufgerufen. Falls die empfangene Eingabe im Block 1040 andererseits eine Vorabrufbezugsnachricht ist, wird im Block 1045 das Bedienprogramm 285 für Vorabrufbezugsnachrichten aufgerufen. Für andere Typen von Eingaben, die nicht im Mittelpunkt der vorliegenden Erfindung stehen (beispielsweise eine FTP- Anforderung), kann im Block 1060 ein entsprechendes anderes Bedienprogramm aufgerufen werden.
  • 11 zeigt ein Beispiel der Funktionsweise des Bedienprogramms 283 für Proxy-Objektanforderungen. Kurz gesagt, das Objekt wird im Falle des Vorhandenseins von Objekten im Vorabrufcachespeicher an den anfordernden Client oder den anfordernden Proxy-Server übertragen. Falls das angeforderte Objekt eine Vorabrufanforderung war, wird es anschließend als aus dem ersten Vorabrufcachespeicher 296 des Proxy-Server 24 löschbar markiert. Falls für das angeforderte Objekt keine Vorabrufanforderung bereitgestellt wurde, wird eine Vorabrufbezugsnachricht an den Inhaltsserver 20 übertragen. Die Vorabrufbezugsnachricht wird jedoch nur übertragen, wenn das angeforderte Objekt aus dem ersten Vorabrufcachespeicher 296 übertragen wurde. Falls ein angefordertes Objekt sich weder im ersten Vorabrufcachespeicher 296 noch im ersten Hauptcachespeicher 294 befindet, wird eine Objektanforderung an einen anderen Proxy-Server 24 oder einen Inhaltsserver 20 übertragen. Angeforderte Objekte, die im ersten Hauptcachespeicher 294 gefunden werden, werden an den anfordernden Client oder Proxy-Server 24 übertragen, und die erste Statistiktabelle 293 wird aktualisiert, falls die Anforderung keine Vorabrufanforderung war.
  • Falls das angeforderte Objekt O beginnend beim Entscheidungsblock 1105 im Vorabrufcachespeicher gefunden wird, wird es im Block 1130 an den anfordernden Knoten rückübertragen. Falls die Anforderung im Entscheidungssymbol 1135 eine Vorabrufanforderung ist, wird das Objekt O im Block 1150 im ersten Vorabrufcachespeicher 296 als löschbar markiert. Das Löschen von Objekten aus dem ersten Vorabrufcachespeicher 296 schafft Platz für künftige Vorabrufvorgänge, da das Vorabrufobjekt O nun von einigen Knoten in der unteren Hierarchie von Proxy-Servern 24 vorabgerufen wurde. Andernfalls wird im Bezugsblock 1140 die Cachespeicher-Verwaltungseinrichtung aufgerufen, um das Objekt O aus dem ersten Vorabrufcachespeicher 296 in den ersten Hauptcachespeicher 294 zu verschieben, da tatsächlich auf das Objekt O Bezug genommen wurde. Im Block 1160 wird eine Vorabrufbezugsnachricht durch die Proxy-Serverhierarchie an den Inhaltsserver 20 übertragen. Im Block 1170 wird die Statistikaktualisierungsroutine zum Aktualisieren der lokalen ersten Statistiktabelle 293 aufgerufen, um die tatsächliche Bezugnahme auf das Vorabrufobjekt O zu speichern. Falls das Objekt O im Entscheidungssymbol 1110 nicht im ersten Hauptcachespeicher 294 gefunden wird, wird im Bezugsblock 1125 eine Objektanforderung durch die Proxy-Serverhierarchie an den Inhaltsserver 20 übertragen. Falls die Objektanforderung im Entscheidungssymbol 1115 keine Vorabrufanforderung ist, wird im Block 1120 die erste Statistikaktualisierungsroutine 264 aufgerufen, um die lokale erste Statistiktabelle 293 zu aktualisieren, um die tatsächliche Bezugnahme auf das Objekt zu erfassen. Im Block 1180 wird das Objekt O an den anfordernden Knoten rückübertragen.
  • 12 zeigt ein Beispiel der Funktionsweise des Bedienprogramms 285 für Vorabrufbezugsnachrichten. Das Bedienprogramm 285 für Vorabrufbezugsnachrichten prüft zunächst, ob ein Objekt sich im ersten Vorabrufcachespeicher 296 befindet. Falls das Objekt sich im ersten Vorabrufcachespeicher 296 befindet, wird vor der Weiterleitung der Vorabrufbezugsnachricht die Cachespeicher- Verwaltungsroutine aufgerufen. Falls das Objekt sich nicht im ersten Vorabrufcachespeicher 296 befindet, wird die Vorabrufbezugsnachricht weitergeleitet.
  • Beginnend beim Schritt 1205 wird die erste Statistikaktualisierungsroutine 264 aufgerufen, um die lokale erste Statistiktabelle 293 zu aktualisieren, um die tatsächliche Bezugnahme auf das Vorabrufobjekt (O) zu erfassen. Falls das Objekt O sich im Entscheidungssymbol 1210 im ersten Vorabrufcachespeicher 296 befindet, wird im Bezugsblock 1215 die Cachespeicher-Verwaltungseinrichtung aufgerufen, um das Objekt O aus dem ersten Vorabrufcachespeicher 296 in den ersten Hauptcachespeicher 294 zu verschieben, da tatsächlich auf das Objekt Bezug genommen wurde. Im Block 1220 wird die Vorabrufbezugsnachricht an den Proxy der nächsthöheren Ebene weitergeleitet.
  • 13 zeigt ein Beispiel der Funktionsweise des Proxy-Objektbedienprogramms 284. Als Erstes ruft das Proxy-Objektbedienprogramm 284 einheitlich ohne Ausnahme die Vorabrufaktualisierungseinheit 291 oder eine Routine zur Aktualisierung von Vorabrufhinweisdaten auf. Vorabrufobjektanforderungen werden in Abhängigkeit davon, ob das Vorabrufobjekt von einem Server oder unteren Ebene angefordert wurde oder nicht, auf unterschiedliche Weise bearbeitet. Falls das Vorabrufobjekt von einem Server der unteren Ebene angefordert wurde, wird das Objekt an diesen rückübertragen; andernfalls wird die Vorabrufcachespeicher-Verwaltungseinrichtung aufgerufen. Falls kein Vorabrufobjekt angefordert wird, wird das Objekt an den anfordernden Proxy-Server 24 oder Client rückübertragen, und die erste Statistikaktualisierungsroutine 264 wird aufgerufen.
  • Beginnend beim Bezugsblock 1305 wird die PHI-Aktualisierungsroutine oder das Vorabrufaktualisierungsmittel 291 aufgerufen, um die PHI des Objekts O zu aktualisieren. Falls das empfangene Objekt im Bezugsblock 1310 kein Vorabrufobjekt ist, wird im Schritt 1315 das erste Vorabrufbedienprogramm 248 aufgerufen. Im Bezugsblock 1320 wird das Objekt an den anfordernden Knoten (in der unteren Hierarchie) rückübertragen. In der bevorzugten Ausführungsform wird der Zwischenspeicherkategoriewert im P-Kennsatz unter Verwendung des PICS-Protokolls aktualisiert, falls der entsprechende Vorabrufkandidat (durch den Wert der Kennzeichnerkategorie angezeigt) von diesem Proxy-Server 24 vorabgerufen wird. Im Block 1325 wird die Cachespeicher-Verwaltungseinrichtung aufgerufen, um das Objekt im Hauptcachespeicher zu speichern. Im Bezugsblock 1355 wird die Statistikaktualisierungsroutine aufgerufen. Falls das empfangene Vorabrufobjekt im Block 1330 von einem Knoten der unteren Ebene in der Hierarchie angefordert wurde, wird das Objekt im Bezugsblock 1350 an den Anforderer rückübertragen. Andernfalls wird es vom aktuellen Knoten angefordert, und im Bezugsblock 1340 wird die Vorabrufcachespeicher-Verwaltungseinrichtung aufgerufen, um das Objekt im Vorabrufcachespeicher zu speichern, indem eine notwendige Ersetzung vorgenommen wird, um Platz für das Objekt zu schaffen.
  • 14 zeigt ein Beispiel der Funktionsweise des Vorabrufaktualisierungsmittels 291 oder der PHI-Aktualisierungsroutine. Die PHI-Aktualisierungsroutine vergleicht einen lokalen Zählwert von angeforderten Objekten mit einem Schwellenzählwert. Falls die angeforderten Objekte einen ersten Mindestschwellenwert überschreiten, werden sie einer zweiten Mindestschwellenwertprüfung unterzogen. Die Schwellenwerte können auf der Grundlage experimenteller Ergebnisse gesetzt werden. Falls der lokale Zählwert kleiner als der erste Mindestschwellenwert ist, wird die ursprüngliche Liste von Vorabrufhinweisdaten beibehalten. Falls der lokale Zählwert größer als der erste Schwellenwert, jedoch nicht größer als der zweite Schwellenwert ist, wird die Liste von Vorabrufhinweisdaten geändert.
  • Falls der lokale Schwellenwert (d.h. TCount) des Objekts (O) in der lokalen ersten Statistiktabelle 293 beginnend im Entscheidungssymbol 1405 nicht größer als ein erster Mindestschwellenwert (d.h. CTM) ist, werden die ursprünglichen PHI im Vorsatz des Objekts O beibehalten. Dies beruht einfach auf der Tatsache, dass es in der unteren Hierarchie von Proxy-Servern 24 nicht genügend Bezugnahmen auf das Objekt gibt, um einen Aktualisierungsvorgang zu gewährleisten. Falls der lokale Zählwert (d.h. TCount) des Objekts (O) in der lokalen Statistiktabelle 261 im Entscheidungssymbol 1415 größer als ein zweiter Mindestschwellenwert (d.h. TCH) ist, werden die ursprünglichen PHI im Objektvorsatz ignoriert, und im Block 1420 wird die PHI-Erzeugungsroutine aufgerufen, um die PHI auf der Grundlage der lokalen ersten Statistiktabelle 293 zu erzeugen. Der Grund hierfür besteht darin, dass es in der unteren Hierarchie von Proxy-Servern 24 genügend Bezugnahmen auf das Objekt gibt, um die PHI aufgrund des lokalen Verhaltens zu erzeugen. Andernfalls wird im Bezugsblock 1425 die PHI-Änderungseinrichtung (PHI modifier) aufgerufen, um den Wert der Wahrscheinlichkeitskategorie zu ändern, indem ein Durchschnittswert der lokalen Schätzung der Bezugswahrscheinlichkeit und derjenigen im Vorsatz (von der Hierarchie der höheren Ebene gesetzt) für jedes Objekt in der PHI-Liste genommen wird.
  • Das Vorabrufschema funktioniert selbst dann, wenn einige der Proxy-Server 24 die erste Statistiktabelle 293 nicht verwalten und lokale Bezugsmuster protokollieren. Die nichtprotokollierenden Proxy-Server übernehmen einfach den Wert der Wahrscheinlichkeitskategorie (d.h. PROB) in den vom Proxy-Server der höheren Ebene oder vom Inhaltsserver 20 weitergeleiteten PHI.
  • Das Vorabrufschema funktioniert auch in einer heterogenen Proxy-Serverumgebung, in der einige der Proxy-Server herkömmliche Proxy-Server sind, die das Vorabrufprotokoll nicht verstehen und an der Zusammenarbeit nicht teilnehmen. Diese herkömmlichen Proxy-Server interpretieren weder den Objektvorsatz, um die Vorabrufvorgänge einzuleiten, noch verwalten sie die erste Statistiktabelle 293. Die herkömmlichen Proxy-Server leiten lediglich die Metadaten (z.B. die PICS-Kennsätze im Vorsatz) zusammen mit dem Objekt an den Proxy-Server der nächsten Ebene weiter oder speichern die Metadaten zusammen mit dem Objekt, falls sie entscheiden, das Objekt lokal zwischenzuspeichern.
  • Auch ohne das Vorliegen der Proxy-Hierarchie kann die aktuelle Erfindung auf jedes Netzwerk oder jede Client-Server-Umgebung angewandt werden. Der Objektsendeknoten kann Bezugsmuster protokollieren, PHI ableiten und sie in den Objektvorsatz aufnehmen. Außerdem kann der Objektempfangsknoten die PHI zusammen mit dem Objekt in seinem Cachespeicher speichern. Auf eine Bezugnahme auf das Objekt hin können Vorabrufvorgänge auf der Grundlage der gespeicherten PHI und lokaler Faktoren, beispielsweise der Cachespeichergröße und des Zugriffsaufwands, gemäß der obigen Erläuterung eingeleitet werden.
  • Das Speichern der PHI zusammen mit dem zwischengespeicherten Objekt stellt eine zusätzliche Möglichkeit für Vorabrufvorgänge bereit. Ereignisse wie beispielsweise das Verfügbarwerden von weiterem Speicherbereich, das Auftreten zusätzlicher Bezugnahmen oder der Empfang von Vorabrufobjekten können zum Einleiten eines zusätzlichen Vorabrufvorgangs verwendet werden, indem die PHI der zwischengespeicherten Objekte überprüft werden. Der Vorabrufvorgang ist nicht auf den Augenblick begrenzt, in dem ein Objekt vom Server angefordert wird, wie bei der vom Sender eingeleiteten Vorgehensweise.
  • In der bevorzugten Ausführungsform wurde eine allgemeine Vorabrufmaßnahme für Web- und Proxy-Server beschrieben, Fachleute werden jedoch verstehen, dass die vorliegende Erfindung auf jede beliebige Situation angewandt werden kann, in der die vorabzurufenden Objekte ähnliche Eigenschaften aufweisen, und nicht unbedingt auf eine Internet- oder WWW-Anwendung begrenzt ist.
  • Obwohl die bevorzugten Ausführungsform der vorliegenden Erfindung für gemeinschaftliche Vorabrufvorgänge zwischen Eltern- und Kind-Proxys in der Hierarchie vorgesehen ist, kann sie außerdem problemlos so angepasst werden, dass sie eine Zusammenarbeit zwischen Geschwister-Proxys beinhaltet. Falls beispielsweise kein Proxy in der oberen Hierarchie das angeforderte Objekt oder den Vorabrufkandidaten zwischengespeichert hat, kann ein Proxy auch Geschwister-Proxys abfragen.

Claims (15)

  1. Verfahren zum Vorabrufen von Daten aus einem Inhaltsserver (20) über ein Datenübertragungsnetz (25), wobei das Datenübertragungsnetz einen oder mehrere Proxy-Server (24) und einen oder mehrere Clients (22) enthält, wobei das Verfahren die folgenden Schritte umfasst: Anfordern (100) von Daten aus dem Inhaltsserver von einem Client über mindestens einen Proxy-Server; gekennzeichnet durch Einrichten (102, 104) von Vorabrufhinweisdaten im Server, die Daten kennzeichnen, die im Anschluss an die angeforderten Daten wahrscheinlich vom Client angefordert werden, auf der Grundlage von vergangenen Abruf- oder Zugriffsvorgängen durch die Clients; Kommentieren (105) der angeforderten Daten im Server mit den Vorabrufhinweisdaten und Rückübertragen der angeforderten Daten zusammen mit den Vorabrufhinweisdaten über den mindestens einen Proxy-Server an den Client; und Vorabrufen (108) von Daten im Client oder in dem mindestens einen Proxy-Server auf der Grundlage der Vorabrufhinweisdaten und der angeforderten Daten, wodurch die abgerufenen Daten problemloser zugänglich gemacht werden.
  2. Verfahren nach Anspruch 1, wobei die angeforderten Daten angeforderte Objekte umfassen und wobei die vorabgerufenen Daten Vorabrufkandidatenobjekte umfassen.
  3. Verfahren nach Anspruch 2, wobei der Schritt des Einrichtens von Vorabrufhinweisdaten die folgenden Schritte beinhaltet: Protokollieren von Datenbezugsmustern von angeforderten Daten, die den Clients zugeordnet werden; Organisieren der Datenbezugsmuster in Gruppen von Objektkennzeichnern, wobei die Gruppen von Objektkennzeichnern gemäß Beziehungen zwischen den angeforderten Objekten und Vorabrufkandidatenobjekten organisiert werden; Feststellen, welche der Gruppen ausreichende Beziehungen zwischen den Vorabrufkandidatenobjekten und den angeforderten Objekten aufweisen, um ein Vorabrufen der Vorabrufkandidatenobjekte als die vorabgerufenen Daten zu gewährleisten.
  4. Verfahren nach Anspruch 3, wobei die Schritte des Protokollierens und Organisierens der Datenbezugsmuster außerdem die folgenden Schritte umfassen: Einrichten einer Datenbank (383, 385), die eine Beziehung zwischen angeforderten Objekten und Vorabrufkandidatenobjekten definiert; und Protokollieren einer Zugriffsstatistik bezüglich der angeforderten Objekte und der Vorabrufkandidatenobjekte in der Datenbank; wobei die Zugriffsstatistik eine Eltern-Objekt-Zugriffshäufigkeit von angeforderten Objekten und eine Kind-Objekt-Zugriffshäufigkeit der Vorabrufkandidatenobjekte enthält; wobei die Eltern-Objekt-Zugriffshäufigkeit (302) die Anzahl von Malen darstellt, die ein bestimmtes der angeforderten Objekte von mindestens einem der Clients angefordert wird; wobei die Kind-Objekt-Zugriffshäufigkeit (312) die Anzahl von Malen darstellt, die eines oder mehrere der Vorabrufkandidatenobjekte unmittelbar im Anschluss an den Zugriff auf das bestimmte der angeforderten Objekte tatsächlich angefordert werden.
  5. Verfahren nach Anspruch 4, das außerdem den Schritt des Auswählens einer Vorabrufliste von Vorabrufkandidatenobjekten auf der Grundlage des Verhältnisses der Kind-Objekt-Zugriffshäufigkeit zu der der Kind-Objekt-Zugriffshäufigkeit zugeordneten Eltern-Objekt-Zugriffshäufigkeit umfasst, wobei die Vorabrufliste nur Vorabrufkandidatenobjekte mit Verhältnissen enthält, die eine Schwellenwertwahrscheinlichkeit überschreiten.
  6. Verfahren nach einem der Ansprüche 2 bis 5, wobei der Schritt des Vorabrufens von Daten die folgenden Schritte umfasst: Vorabrufen einer Teilmenge von Vorabrufkandidatenobjekten, die in einem der Proxy-Server oder einem der Clients empfangen wurden; wobei die Teilmenge der Vorabrufkandidatenobjekte auf der Grundlage der verfügbaren Speichergröße in einem der Proxy-Server ausgewählt werden.
  7. Verfahren nach einem der Ansprüche 2 bis 6, wobei der Schritt des Vorabrufens von Daten die folgenden Schritte umfasst: Vorabrufen einer Teilmenge von Vorabrufkandidatenobjekten, die in einem der Proxy-Server oder einem der Clients empfangen wurden; wobei die Teilmenge der Vorabrufkandidatenobjekte auf der Grundlage der Zugriffszeit in einem der Proxy-Server ausgewählt werden.
  8. Verfahren nach einem der Ansprüche 2 bis 7, wobei das vorabgerufene Objekt und das angeforderte Objekt Internetdaten umfassen und wobei sich das angeforderte Objekt durch einen den Internetdaten zugeordneten Hypertext-Transfer-Protocol-(HTTP-)Link auf das vorabgerufene Objekt bezieht, wobei der Server die Beziehung des vorabgerufenen Objektes zu dem angeforderten Objekt durch das HTTP-Protokoll des Universal Resource Locator (URL) des angeforderten Objektes ermittelt, der in einem Objektvorsatz des angeforderten Objektes gespeichert ist.
  9. Verfahren nach einem der Ansprüche 2 bis 8, wobei der Schritt des Kommentierens der angeforderten Daten den Schritt des Platzierens der Vorabrufhinweisdaten in einem Vorabrufkennsatz mit dem Format einer Platform for Internet Content Selection (PICS-) oder einem mit dem PICS-Format kompatiblen Kennsatzprotokoll umfasst.
  10. Verfahren nach Anspruch 9, wobei das Format der Platform for Internet Content Selection eine Objektkennzeichner-Kategorie zum Speichern der Identität eines vorabgerufenen Objektes, auf das anschließend Bezug genommen wird, und eine Bezugskennzeichner-Kategorie zum Speichern des dem vorabgerufenen Objekt zugeordneten angeforderten Objekt enthält, und wobei das Verfahren außerdem den Schritt des Rückübertragens (160) der Bezugskennzeichner-Kategorie an den Inhaltsserver beinhaltet, um alle Vorabrufkandidatenobjekte zu kennzeichnen, auf die tatsächlich Bezug genommen wurde.
  11. Verfahren nach einem der Ansprüche 1 bis 10, das außerdem die folgenden Schritte umfasst: Organisieren der Proxy-Server in eine Hierarchie von Servern, wobei die Hierarchie mehrere Ebenen der Proxy-Server aufweist, wobei die mehreren Ebenen auf der Grundlage der Nähe von jedem der Proxy-Server zum Netz festgelegt werden, wobei die höchste Ebene sich am nächsten beim Netz befindet; und Interpretieren und Aktualisieren der Vorabrufhinweisdaten, die von den Proxy-Servern durch die Hierarchie an die Clients übertragen werden.
  12. Verfahren nach Anspruch 11, wobei ein Proxy-Server die Vorabrufhinweisdaten aktualisiert, falls lokale Bezugnahmen auf die angeforderten Daten vorliegen und falls der Zählwert des Server auf der lokalen Ebene einen Mindestschwellenzählwert überschreitet.
  13. Verfahren nach Anspruch 11 oder 12, wobei die Vorabrufhinweisdaten auf der Grundlage des Zwischenspeicherstatus in der Proxy-Hierarchie aktualisiert werden.
  14. System zum Vorabrufen von Daten aus einem Inhaltsserver (20) über ein Datenübertragungsnetz (25), wobei das Datenübertragungsnetz einen oder mehrere Proxy-Server (24) und einen oder mehrere Clients (22) beinhaltet, wobei das System Folgendes umfasst: ein Mittel zum Anfordern (100) von Daten aus dem Inhaltsserver in einem Client über mindestens einen Proxy-Server; gekennzeichnet durch ein Mittel zum Einrichten (102, 104) von Vorabrufhinweisdaten im Server, die auf der Grundlage von vergangenen Abrufvorgängen oder Zugriffsvorgängen durch die Clients Daten kennzeichnen, die im Anschluss an die angeforderten Daten wahrscheinlich vom Client angefordert werden; ein Mittel zum Kommentieren (105) der angeforderten Daten im Server mit den Vorabrufhinweisdaten und zum Rückübertragen der angeforderten Daten zusammen mit den Vorabrufhinweisdaten über den mindestens einen Proxy-Server an den Client; und ein Mittel zum Vorabrufen (108) von Daten im Client oder in dem mindestens einen Proxy-Server auf der Grundlage der Vorabrufhinweisdaten und der angeforderten Daten, wodurch die abgerufenen Daten problemloser zugänglich gemacht werden.
  15. Verarbeitungssystem nach Anspruch 14, wobei die angeforderten Daten angeforderte Objekte umfassen und wobei die Auswahldaten Vorabrufkandidatenobjekte umfassen und wobei jeder der Proxy-Server und mindestens einer der Clients einen Speicher mit einer logischen und/oder physischen Trennung zwischen einem Hauptcachespeicher und einem Vorabrufcachespeicher aufweisen, wobei die vorabgerufenen Auswahldaten im Vorabrufcachespeicher gespeichert werden.
DE69834129T 1997-09-29 1998-09-28 Verfahren und system zum vorausladen von informationen Expired - Lifetime DE69834129T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/939,277 US6085193A (en) 1997-09-29 1997-09-29 Method and system for dynamically prefetching information via a server hierarchy
US939277 1997-09-29
PCT/GB1998/002920 WO1999017227A1 (en) 1997-09-29 1998-09-28 Method and system for prefetching information

Publications (2)

Publication Number Publication Date
DE69834129D1 DE69834129D1 (de) 2006-05-18
DE69834129T2 true DE69834129T2 (de) 2006-10-12

Family

ID=25472873

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69834129T Expired - Lifetime DE69834129T2 (de) 1997-09-29 1998-09-28 Verfahren und system zum vorausladen von informationen

Country Status (11)

Country Link
US (1) US6085193A (de)
EP (1) EP1018085B1 (de)
JP (1) JP3526442B2 (de)
KR (1) KR100377715B1 (de)
CN (1) CN1200378C (de)
CA (1) CA2302254C (de)
DE (1) DE69834129T2 (de)
HU (1) HU224089B1 (de)
IL (1) IL133251A0 (de)
PL (1) PL192676B1 (de)
WO (1) WO1999017227A1 (de)

Families Citing this family (312)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7363291B1 (en) * 2002-03-29 2008-04-22 Google Inc. Methods and apparatus for increasing efficiency of electronic document delivery to users
US7103794B2 (en) 1998-06-08 2006-09-05 Cacheflow, Inc. Network object cache engine
US6453334B1 (en) 1997-06-16 2002-09-17 Streamtheory, Inc. Method and apparatus to allow remotely located computer programs and/or data to be accessed on a local computer in a secure, time-limited manner, with persistent caching
EP1002410B1 (de) * 1997-08-06 2004-11-17 Tachyon, Inc. Verteiltes system und verfahren zum objektvorabholen
US6304894B1 (en) * 1997-09-22 2001-10-16 Hitachi, Ltd. Proxy server and recording medium storing a proxy server program
US6393526B1 (en) * 1997-10-28 2002-05-21 Cache Plan, Inc. Shared cache parsing and pre-fetch
JP3561139B2 (ja) * 1998-01-27 2004-09-02 シャープ株式会社 ファイルオブジェクト中継方法、ファイルオブジェクト中継方法のプログラムを記録したコンピュータで読取り可能な記録媒体、およびゲートウェイ計算機
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
US7007072B1 (en) * 1999-07-27 2006-02-28 Storage Technology Corporation Method and system for efficiently storing web pages for quick downloading at a remote device
US6430618B1 (en) * 1998-03-13 2002-08-06 Massachusetts Institute Of Technology Method and apparatus for distributing requests among a plurality of resources
JP3522527B2 (ja) * 1998-03-27 2004-04-26 富士通株式会社 入出力制御装置および入出力制御方法
US6385699B1 (en) * 1998-04-10 2002-05-07 International Business Machines Corporation Managing an object store based on object replacement penalties and reference probabilities
US7089331B1 (en) 1998-05-29 2006-08-08 Oracle International Corporation Method and mechanism for reducing client-side memory footprint of transmitted data
US6330561B1 (en) * 1998-06-26 2001-12-11 At&T Corp. Method and apparatus for improving end to end performance of a data network
US7197570B2 (en) * 1998-07-22 2007-03-27 Appstream Inc. System and method to send predicted application streamlets to a client device
US20020138640A1 (en) * 1998-07-22 2002-09-26 Uri Raz Apparatus and method for improving the delivery of software applications and associated data in web-based systems
US6311221B1 (en) * 1998-07-22 2001-10-30 Appstream Inc. Streaming modules
US20010044850A1 (en) 1998-07-22 2001-11-22 Uri Raz Method and apparatus for determining the order of streaming modules
US6195696B1 (en) * 1998-10-01 2001-02-27 International Business Machines Corporation Systems, methods and computer program products for assigning, generating and delivering content to intranet users
EP1018689A3 (de) * 1999-01-08 2001-01-24 Lucent Technologies Inc. Verfahren und Vorrichtung zur geteilten web-basierten interaktionen in servers mit dynamischen Zustanden
DE60041732D1 (de) * 1999-01-27 2009-04-23 Hitachi Ltd Verfahren, Gerät und Speichermedium zum Anwenden in einem hierarchischen System
US6418413B2 (en) * 1999-02-04 2002-07-09 Ita Software, Inc. Method and apparatus for providing availability of airline seats
JP3764291B2 (ja) * 1999-03-02 2006-04-05 株式会社東芝 情報配信システム、移動計算機、情報サーバ装置、キャッシュサーバ装置及び先読みキャッシュ処理方法
US6502174B1 (en) * 1999-03-03 2002-12-31 International Business Machines Corporation Method and system for managing meta data
US6631496B1 (en) * 1999-03-22 2003-10-07 Nec Corporation System for personalizing, organizing and managing web information
US7526481B1 (en) 1999-04-19 2009-04-28 Oracle International Corporation Web servers with queryable dynamic caches
US6513062B1 (en) * 1999-05-25 2003-01-28 Grischa Corporation Method, apparatus, and computer program product for efficient server response generation using intermediate state caching
US6952578B1 (en) * 1999-06-07 2005-10-04 Nokia Corporation Cellular communication terminal, a method and a system for accessing servers
US6658463B1 (en) * 1999-06-10 2003-12-02 Hughes Electronics Corporation Satellite multicast performance enhancing multicast HTTP proxy system and method
US7099914B1 (en) * 1999-06-24 2006-08-29 International Business Machines Corporation System and method for variable size retrieval of webpage data
US6779119B1 (en) * 1999-06-30 2004-08-17 Koninklijke Philips Electronics N.V. Actual and perceived response time, user interface, and security via usage patterns
US6622167B1 (en) 1999-06-30 2003-09-16 International Business Machines Corporation Document shadowing intranet server, memory medium and method
SE521181C2 (sv) * 1999-07-01 2003-10-07 Telia Ab Förfarande och system för policystyrd distribution av strömmande media i ett IP-nät
US6463508B1 (en) * 1999-07-19 2002-10-08 International Business Machines Corporation Method and apparatus for caching a media stream
US6427172B1 (en) * 1999-07-20 2002-07-30 Cyberstar, L.P. Method and apparatus for internet cache content delivery via a data distribution system
US6615235B1 (en) * 1999-07-22 2003-09-02 International Business Machines Corporation Method and apparatus for cache coordination for multiple address spaces
US7028096B1 (en) * 1999-09-14 2006-04-11 Streaming21, Inc. Method and apparatus for caching for streaming data
GB2362003A (en) * 1999-10-13 2001-11-07 Enjoyweb Inc Distributing information objects in a networked computer environment
US7024465B1 (en) * 1999-10-18 2006-04-04 Rose Blush Software Llc Method for queued overlap transfer of files
EP1096755A1 (de) * 1999-10-28 2001-05-02 Alcatel Verfahren zur Informationslieferung in einem Internet- Telekommunikationsnetz
WO2001033472A2 (en) * 1999-11-01 2001-05-10 Ita Software, Inc. Method and apparatus for providing availability of airline seats
US7562027B1 (en) * 1999-11-01 2009-07-14 Ita Software, Inc. Availability processing in a travel planning system
US6721780B1 (en) * 1999-11-09 2004-04-13 Fireclick, Inc. Predictive pre-download of network objects
JP3534027B2 (ja) * 1999-12-01 2004-06-07 日本電気株式会社 コンテンツ提供装置及びプログラムを記録した機械読み取り可能な記録媒体
US6553461B1 (en) * 1999-12-10 2003-04-22 Sun Microsystems, Inc. Client controlled pre-fetching of resources
US6742023B1 (en) * 2000-04-28 2004-05-25 Roxio, Inc. Use-sensitive distribution of data files between users
US6751657B1 (en) * 1999-12-21 2004-06-15 Worldcom, Inc. System and method for notification subscription filtering based on user role
US6415368B1 (en) 1999-12-22 2002-07-02 Xerox Corporation System and method for caching
AU2001234628A1 (en) * 2000-01-28 2001-08-07 Ibeam Broadcasting Corporation Method and system for real-time distributed data mining and analysis for networks
US7441014B1 (en) * 2000-02-09 2008-10-21 Tvworks, Llc Broadcast distribution using low-level objects and locator tables
US6947440B2 (en) 2000-02-15 2005-09-20 Gilat Satellite Networks, Ltd. System and method for internet page acceleration including multicast transmissions
US7389284B1 (en) 2000-02-29 2008-06-17 Oracle International Corporation Method and mechanism for efficient processing of remote-mapped queries
WO2001065863A2 (en) * 2000-03-01 2001-09-07 Kagan Michael L Wireless communications system and method
WO2001069860A2 (en) * 2000-03-10 2001-09-20 Aether Systems, Inc. System and method for providing information based on user histories
US6622168B1 (en) 2000-04-10 2003-09-16 Chutney Technologies, Inc. Dynamic page generation acceleration using component-level caching
US7523114B2 (en) 2000-04-24 2009-04-21 Ebay Inc. Method and system for categorizing items in both actual and virtual categories
US7475404B2 (en) 2000-05-18 2009-01-06 Maquis Techtrix Llc System and method for implementing click-through for browser executed software including ad proxy and proxy cookie caching
US8086697B2 (en) 2005-06-28 2011-12-27 Claria Innovations, Llc Techniques for displaying impressions in documents delivered over a computer network
US7058691B1 (en) * 2000-06-12 2006-06-06 Trustees Of Princeton University System for wireless push and pull based services
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
US7020709B1 (en) 2000-06-30 2006-03-28 Intel Corporation System and method for fault tolerant stream splitting
US7318107B1 (en) 2000-06-30 2008-01-08 Intel Corporation System and method for automatic stream fail-over
US7313588B1 (en) 2000-07-13 2007-12-25 Biap Systems, Inc. Locally executing software agent for retrieving remote content and method for creation and use of the agent
US7216085B1 (en) * 2000-07-13 2007-05-08 Ita Software, Inc. Competitive availability tools
US7152058B2 (en) 2000-07-13 2006-12-19 Biap Systems, Inc. Apparatus for and method of selectively retrieving information and enabling its subsequent display
US7613790B2 (en) * 2000-07-13 2009-11-03 Biap Systems, Inc. Apparatus for and method of executing customized interactive computing services in a broadband network environment
JP3674471B2 (ja) * 2000-07-25 2005-07-20 日本電気株式会社 コンテンツ転送方法及びネットワークシステム並びにプログラムを記録した機械読み取り可能な記録媒体
US7039683B1 (en) * 2000-09-25 2006-05-02 America Online, Inc. Electronic information caching
US7051315B2 (en) 2000-09-26 2006-05-23 Appstream, Inc. Network streaming of multi-application program code
US8799463B1 (en) * 2000-10-19 2014-08-05 Ariba, Inc. Method and apparatus for processing information related to interactive web sites
US20020083183A1 (en) * 2000-11-06 2002-06-27 Sanjay Pujare Conventionally coded application conversion system for streamed delivery and execution
US6959320B2 (en) * 2000-11-06 2005-10-25 Endeavors Technology, Inc. Client-side performance optimization system for streamed applications
US7043524B2 (en) * 2000-11-06 2006-05-09 Omnishift Technologies, Inc. Network caching system for streamed applications
US8831995B2 (en) 2000-11-06 2014-09-09 Numecent Holdings, Inc. Optimized server for streamed applications
US7062567B2 (en) 2000-11-06 2006-06-13 Endeavors Technology, Inc. Intelligent network streaming and execution system for conventionally coded applications
US20020087883A1 (en) * 2000-11-06 2002-07-04 Curt Wohlgemuth Anti-piracy system for remotely served computer applications
US20020087798A1 (en) * 2000-11-15 2002-07-04 Vijayakumar Perincherry System and method for adaptive data caching
JP2002169831A (ja) * 2000-12-04 2002-06-14 Sharp Corp データベースサーバ及びプログラムを記録した記録媒体
US7113935B2 (en) * 2000-12-06 2006-09-26 Epicrealm Operating Inc. Method and system for adaptive prefetching
US7451196B1 (en) 2000-12-15 2008-11-11 Stream Theory, Inc. Method and system for executing a software application in a virtual environment
US20050273514A1 (en) * 2000-12-22 2005-12-08 Ray Milkey System and method for automated and optimized file transfers among devices in a network
US7142508B2 (en) * 2000-12-22 2006-11-28 Radiance Technologies, Inc. System and method for controlling data transfer rates on a network
US7269784B1 (en) 2001-01-22 2007-09-11 Kasriel Stephane Server-originated differential caching
US6606690B2 (en) 2001-02-20 2003-08-12 Hewlett-Packard Development Company, L.P. System and method for accessing a storage area network as network attached storage
US6721847B2 (en) * 2001-02-20 2004-04-13 Networks Associates Technology, Inc. Cache hints for computer file access
US8214501B1 (en) 2001-03-02 2012-07-03 At&T Intellectual Property I, L.P. Methods and systems for electronic data exchange utilizing centralized management technology
EP1244016A1 (de) * 2001-03-23 2002-09-25 Hewlett-Packard Company Verfolgung des Gebrauchersdatenzugriffs auf Rechnerbetriebsmittel
US20020147770A1 (en) * 2001-04-09 2002-10-10 Timothy Tang Multicast enabled caching service
US7899911B2 (en) * 2001-06-07 2011-03-01 Intel Corporation Method and apparatus to retrieve information in a network
US7076560B1 (en) 2001-06-12 2006-07-11 Network Appliance, Inc. Methods and apparatus for storing and serving streaming media data
US7054911B1 (en) 2001-06-12 2006-05-30 Network Appliance, Inc. Streaming media bitrate switching methods and apparatus
US6742082B1 (en) * 2001-06-12 2004-05-25 Network Appliance Pre-computing streaming media payload method and apparatus
US7945688B1 (en) 2001-06-12 2011-05-17 Netapp, Inc. Methods and apparatus for reducing streaming media data traffic bursts
US7155531B1 (en) 2001-06-12 2006-12-26 Network Appliance Inc. Storage methods and apparatus for streaming media data
US6813690B1 (en) * 2001-06-12 2004-11-02 Network Appliance, Inc. Caching media data using content-sensitive identifiers
US7716332B1 (en) * 2001-06-20 2010-05-11 At&T Intellectual Property I, L.P. System and method for server-based predictive caching of back-end system data
US7509671B1 (en) 2001-06-20 2009-03-24 Microstrategy Incorporated Systems and methods for assigning priority to jobs in a reporting system
US7836178B1 (en) 2001-06-20 2010-11-16 Microstrategy Incorporated Technique for limiting access to the resources of a system
US7185063B1 (en) 2001-06-22 2007-02-27 Digital River, Inc. Content delivery network using differential caching
US20030004998A1 (en) * 2001-06-29 2003-01-02 Chutney Technologies, Inc. Proxy-based acceleration of dynamically generated content
EP1563389A4 (de) * 2001-08-01 2008-06-25 Actona Technologies Ltd Virtuelles datenteilungsnetzwerk
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
KR20010088742A (ko) * 2001-08-28 2001-09-28 문의선 분산처리 및 피어 대 피어 통신을 이용한 네트워크 상의정보전송 병렬화 방법
US6766422B2 (en) * 2001-09-27 2004-07-20 Siemens Information And Communication Networks, Inc. Method and system for web caching based on predictive usage
US6687792B2 (en) * 2001-09-27 2004-02-03 Siemens Information & Communication Networks, Inc. Method and system for selectively caching web elements
WO2003032200A1 (en) * 2001-10-09 2003-04-17 Wildblue Communications, Inc. System and method for managing an exchange between a gateway server and a client-side module
US7797376B1 (en) * 2001-11-13 2010-09-14 Cisco Technology, Inc. Arrangement for providing content operation identifiers with a specified HTTP object for acceleration of relevant content operations
US20030115421A1 (en) * 2001-12-13 2003-06-19 Mchenry Stephen T. Centralized bounded domain caching control system for network edge servers
US20030115281A1 (en) * 2001-12-13 2003-06-19 Mchenry Stephen T. Content distribution network server management system architecture
FR2834104B1 (fr) * 2001-12-20 2004-10-15 France Telecom Procede de transmission d'objets entre un serveur et un terminal client mettant en oeuvre une gestion de cache, systeme de transmission, serveur et terminal correspondants
US7437438B2 (en) * 2001-12-27 2008-10-14 Hewlett-Packard Development Company, L.P. System and method for energy efficient data prefetching
JP2003216460A (ja) * 2002-01-21 2003-07-31 Hitachi Ltd 階層ストレージ装置及びその制御装置
US7689225B2 (en) * 2002-01-28 2010-03-30 Ntt Docomo, Inc. Method and apparatus for dormant mode support with paging
US7412531B1 (en) 2002-01-29 2008-08-12 Blue Coat Systems, Inc. Live stream archiving method and apparatus
US7386627B1 (en) 2002-01-29 2008-06-10 Network Appliance, Inc. Methods and apparatus for precomputing checksums for streaming media
CN1625731A (zh) * 2002-01-31 2005-06-08 Arc国际公司 具有多种长度指令集体系结构的可配置数据处理器
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
EP1393155A2 (de) * 2002-03-06 2004-03-03 Freecom Technologies GmbH Verfahren zur überwachung und zum datenaustausch einer externen datenträgereinheit
US7096249B2 (en) * 2002-03-29 2006-08-22 Intel Corporation Method and system for distributing applications
ES2317348T3 (es) * 2002-04-05 2009-04-16 Telefonaktiebolaget Lm Ericsson (Publ) Prioridades de transferencia de objeto en una red de comunicaciones.
US7657644B1 (en) 2002-05-10 2010-02-02 Netapp, Inc. Methods and apparatus for streaming media multicast
US7610351B1 (en) * 2002-05-10 2009-10-27 Oracle International Corporation Method and mechanism for pipelined prefetching
US6751709B2 (en) * 2002-05-15 2004-06-15 Sun Microsystems, Inc. Method and apparatus for prefetching objects into an object cache
US9218409B2 (en) * 2002-06-04 2015-12-22 Sap Se Method for generating and using a reusable custom-defined nestable compound data type as database qualifiers
US7822658B2 (en) * 2002-06-04 2010-10-26 Hewlett-Packard Development Company, L.P. Dynamic prioritization of activities
US7120751B1 (en) 2002-08-09 2006-10-10 Networks Appliance, Inc. Dynamic streaming buffer cache algorithm selection
AU2003265847A1 (en) 2002-09-03 2004-03-29 X1 Technologies, Llc Apparatus and methods for locating data
US8856093B2 (en) 2002-09-03 2014-10-07 William Gross Methods and systems for search indexing
US7130890B1 (en) * 2002-09-04 2006-10-31 Hewlett-Packard Development Company, L.P. Method and system for adaptively prefetching objects from a network
US7284030B2 (en) * 2002-09-16 2007-10-16 Network Appliance, Inc. Apparatus and method for processing data in a network
US7171469B2 (en) * 2002-09-16 2007-01-30 Network Appliance, Inc. Apparatus and method for storing data in a proxy cache in a network
US7552223B1 (en) 2002-09-16 2009-06-23 Netapp, Inc. Apparatus and method for data consistency in a proxy cache
US7417971B2 (en) * 2002-10-04 2008-08-26 Ntt Docomo, Inc. Method and apparatus for dormant mode support with paging
KR100485974B1 (ko) * 2002-10-10 2005-05-03 엔에이치엔(주) 컨텐츠 제공 방법 및 시스템
US20040088375A1 (en) * 2002-11-01 2004-05-06 Sethi Bhupinder S. Method for prefetching Web pages to improve response time networking
US7603341B2 (en) 2002-11-05 2009-10-13 Claria Corporation Updating the content of a presentation vehicle in a computer network
DE10257773B4 (de) * 2002-12-10 2005-06-02 Deutsches Zentrum für Luft- und Raumfahrt e.V. Verfahren zum Verbessern des Zugangs zu Daten- und Informationsdiensten und Einrichtung zur Durchführung des Verfahrens
US7299467B2 (en) * 2002-12-23 2007-11-20 Hewlett-Packard Development Company, L.P. Method and system for minimizing memory access latency in a computer system
GB0301034D0 (en) * 2003-01-16 2003-02-19 Dupont Teijin Films Us Ltd Polymeric film and coating
US20040267384A1 (en) * 2003-02-07 2004-12-30 Broadon Communications, Inc. Integrated console and controller
US20100017627A1 (en) 2003-02-07 2010-01-21 Broadon Communications Corp. Ensuring authenticity in a closed content distribution system
US7322042B2 (en) * 2003-02-07 2008-01-22 Broadon Communications Corp. Secure and backward-compatible processor and secure software execution thereon
US8131649B2 (en) 2003-02-07 2012-03-06 Igware, Inc. Static-or-dynamic and limited-or-unlimited content rights
US7779482B1 (en) 2003-02-07 2010-08-17 iGware Inc Delivery of license information using a short messaging system protocol in a closed content distribution system
US7991905B1 (en) 2003-02-12 2011-08-02 Netapp, Inc. Adaptively selecting timeouts for streaming media
JP5068996B2 (ja) * 2003-04-04 2012-11-07 ヤフー! インコーポレイテッド サブドメインヒントによる検索及びサブドメイン単位のスポンサー付き結果提供を組み込んだ検索結果生成のシステム
US7331038B1 (en) * 2003-07-02 2008-02-12 Amazon.Com, Inc. Predictive prefetching to improve parallelization of document generation subtasks
US7165147B2 (en) * 2003-07-22 2007-01-16 International Business Machines Corporation Isolated ordered regions (IOR) prefetching and page replacement
US7853699B2 (en) 2005-03-15 2010-12-14 Riverbed Technology, Inc. Rules-based transaction prefetching using connection end-point proxies
JP4039488B2 (ja) * 2003-08-18 2008-01-30 インターナショナル・ビジネス・マシーンズ・コーポレーション 多頻度パターン抽出装置、多頻度パターン抽出方法、及びそのプログラムと記録媒体
US8250093B2 (en) 2003-08-25 2012-08-21 International Business Machines Corporation Method and system for utilizing a cache for path-level access control to structured documents stored in a database
US7519574B2 (en) * 2003-08-25 2009-04-14 International Business Machines Corporation Associating information related to components in structured documents stored in their native format in a database
US8150818B2 (en) * 2003-08-25 2012-04-03 International Business Machines Corporation Method and system for storing structured documents in their native format in a database
US7792866B2 (en) * 2003-08-25 2010-09-07 International Business Machines Corporation Method and system for querying structured documents stored in their native format in a database
US7721289B2 (en) * 2003-08-29 2010-05-18 Microsoft Corporation System and method for dynamic allocation of computers in response to requests
US8775468B2 (en) 2003-08-29 2014-07-08 International Business Machines Corporation Method and system for providing path-level access control for structured documents stored in a database
US7231496B2 (en) * 2003-09-15 2007-06-12 International Business Machines Corporation Method, system and program product for caching data objects
US7596554B2 (en) * 2003-12-09 2009-09-29 International Business Machines Corporation System and method for generating a unique, file system independent key from a URI (universal resource indentifier) for use in an index-less voicexml browser caching mechanism
WO2005060575A2 (en) * 2003-12-10 2005-07-07 X1 Technologies, Inc. Performing operations in response to detecting a computer idle condition
US20050138198A1 (en) * 2003-12-18 2005-06-23 It Works Methods, apparatuses, systems, and articles for determining and implementing an efficient computer network architecture
US8010670B2 (en) 2003-12-23 2011-08-30 Slipstream Data Inc. Meta-data based method for local cache utilization
KR100600862B1 (ko) * 2004-01-30 2006-07-14 김선권 인터넷상의 정보자원에 대한 접근 경로를 체계적으로수집하고 검색하는 방법, 및 이 방법을 실행할 수 있는컴퓨터 프로그램을 수록한 기록매체
US20050240574A1 (en) * 2004-04-27 2005-10-27 International Business Machines Corporation Pre-fetching resources based on a resource lookup query
JP2007536634A (ja) * 2004-05-04 2007-12-13 フィッシャー−ローズマウント・システムズ・インコーポレーテッド プロセス制御システムのためのサービス指向型アーキテクチャ
US20050261962A1 (en) * 2004-05-18 2005-11-24 Khai Gan Chuah Anonymous page recognition
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
US7472133B2 (en) * 2004-07-30 2008-12-30 Microsoft Corporation System and method for improved prefetching
US8078602B2 (en) 2004-12-17 2011-12-13 Claria Innovations, Llc Search engine for a computer network
US8255413B2 (en) 2004-08-19 2012-08-28 Carhamm Ltd., Llc Method and apparatus for responding to request for information-personalization
US20060048136A1 (en) * 2004-08-25 2006-03-02 Vries Jeff D Interception-based resource detection system
US7694311B2 (en) * 2004-09-29 2010-04-06 International Business Machines Corporation Grammar-based task analysis of web logs
US7831612B2 (en) * 2004-09-29 2010-11-09 Business Objects Software Ltd. Apparatus and method for generating reports from shared objects
US7664751B2 (en) 2004-09-30 2010-02-16 Google Inc. Variable user interface based on document access privileges
US7603355B2 (en) 2004-10-01 2009-10-13 Google Inc. Variably controlling access to content
US7240162B2 (en) 2004-10-22 2007-07-03 Stream Theory, Inc. System and method for predictive streaming
US7752325B1 (en) 2004-10-26 2010-07-06 Netapp, Inc. Method and apparatus to efficiently transmit streaming media
JP2008527468A (ja) * 2004-11-13 2008-07-24 ストリーム セオリー,インコーポレイテッド ハイブリッド・ローカル/リモート・ストリーミング
US7664879B2 (en) * 2004-11-23 2010-02-16 Cisco Technology, Inc. Caching content and state data at a network element
US7693863B2 (en) 2004-12-20 2010-04-06 Claria Corporation Method and device for publishing cross-network user behavioral data
US7313656B1 (en) * 2004-12-27 2007-12-25 Emc Corporation Pre-fetch prediction method for disk drives
US20060168151A1 (en) * 2005-01-04 2006-07-27 Umberto Caselli Method, system and computer program for retrieving information with reduced age in a periodic process
US20060200503A1 (en) * 2005-03-03 2006-09-07 Nokia Corporation Modifying back-end web server documents at an intermediary server using directives
US8073866B2 (en) 2005-03-17 2011-12-06 Claria Innovations, Llc Method for providing content to an internet user based on the user's demonstrated content preferences
US20060248194A1 (en) 2005-03-18 2006-11-02 Riverbed Technology, Inc. Connection forwarding
US8024523B2 (en) 2007-11-07 2011-09-20 Endeavors Technologies, Inc. Opportunistic block transmission with time constraints
US20060218165A1 (en) * 2005-03-23 2006-09-28 Vries Jeffrey De Explicit overlay integration rules
EP1875364A2 (de) 2005-03-23 2008-01-09 Stream Theory, Inc. System und verfahren zur verfolgung von änderungen and dateien in streaming-anwendungen
US7694008B2 (en) 2005-05-04 2010-04-06 Venturi Wireless Method and apparatus for increasing performance of HTTP over long-latency links
US7496678B2 (en) * 2005-05-11 2009-02-24 Netapp, Inc. Method and system for unified caching of media content
CA2513018A1 (en) 2005-07-22 2007-01-22 Research In Motion Limited Method for training a proxy server for content delivery based on communication of state information from a mobile device browser
CA2513022A1 (en) 2005-07-22 2007-01-22 Research In Motion Limited System and method for communicating state management between a browser user-agent and a mobile data server
CA2513016A1 (en) 2005-07-22 2007-01-22 Research In Motion Limited A secure method of synchronizing cache contents of a mobile browser with a proxy server
US20070143255A1 (en) * 2005-11-28 2007-06-21 Webaroo, Inc. Method and system for delivering internet content to mobile devices
US7725658B2 (en) * 2005-11-29 2010-05-25 Siemens Aktiengesellschaft Self-optimizing caching system and method for data records
US8447837B2 (en) * 2005-12-30 2013-05-21 Akamai Technologies, Inc. Site acceleration with content prefetching enabled through customer-specific configurations
US7659905B2 (en) 2006-02-22 2010-02-09 Ebay Inc. Method and system to pre-fetch data in a network
US20070239747A1 (en) * 2006-03-29 2007-10-11 International Business Machines Corporation Methods, systems, and computer program products for providing read ahead and caching in an information lifecycle management system
US20070255676A1 (en) * 2006-04-27 2007-11-01 Brown David A Methods and apparatus for performing tree-based processing using multi-level memory storage
US20070276862A1 (en) * 2006-04-27 2007-11-29 Toutonghi Michael J Organizing and sharing digital content
US20070255659A1 (en) * 2006-05-01 2007-11-01 Wei Yen System and method for DRM translation
US10664575B2 (en) 2006-05-02 2020-05-26 Acer Cloud Technology, Inc. Virtual vault of licensed content
US7747749B1 (en) * 2006-05-05 2010-06-29 Google Inc. Systems and methods of efficiently preloading documents to client devices
US20080216142A1 (en) * 2006-08-17 2008-09-04 Goldberg Brett M System and method of digital media distribution
US8255457B2 (en) * 2006-09-01 2012-08-28 Microsoft Corporation Adaptive content load balancing
US7624276B2 (en) * 2006-10-16 2009-11-24 Broadon Communications Corp. Secure device authentication system and method
US8261345B2 (en) 2006-10-23 2012-09-04 Endeavors Technologies, Inc. Rule-based application access management
US7613915B2 (en) 2006-11-09 2009-11-03 BroadOn Communications Corp Method for programming on-chip non-volatile memory in a secure processor, and a device so programmed
US20080114738A1 (en) * 2006-11-13 2008-05-15 Gerald Chao System for improving document interlinking via linguistic analysis and searching
US8200961B2 (en) * 2006-11-19 2012-06-12 Igware, Inc. Securing a flash memory block in a secure device system and method
JP4872650B2 (ja) * 2006-12-18 2012-02-08 ソニー株式会社 配信装置、配信方法及びコンピュータプログラム
US8065275B2 (en) * 2007-02-15 2011-11-22 Google Inc. Systems and methods for cache optimization
US8812651B1 (en) 2007-02-15 2014-08-19 Google Inc. Systems and methods for client cache awareness
US20080244080A1 (en) * 2007-03-29 2008-10-02 James Thomas H Prefetching Based on Streaming Hints
US7853759B2 (en) * 2007-04-23 2010-12-14 Microsoft Corporation Hints model for optimization of storage devices connected to host and write optimization schema for storage devices
US7849156B2 (en) * 2007-06-04 2010-12-07 International Business Machines Corporation Method, apparatus and computer program product for discovering and prioritizing patterns of component usage in a virtual application container for enhancing prefetching
US8549099B2 (en) * 2007-07-12 2013-10-01 Viasat, Inc. Methods and systems for javascript parsing
US8171135B2 (en) * 2007-07-12 2012-05-01 Viasat, Inc. Accumulator for prefetch abort
US8966053B2 (en) * 2007-07-12 2015-02-24 Viasat, Inc. Methods and systems for performing a prefetch abort operation for network acceleration
US9654328B2 (en) 2007-10-15 2017-05-16 Viasat, Inc. Methods and systems for implementing a cache model in a prefetching system
US9460229B2 (en) * 2007-10-15 2016-10-04 Viasat, Inc. Methods and systems for implementing a cache model in a prefetching system
US8892738B2 (en) 2007-11-07 2014-11-18 Numecent Holdings, Inc. Deriving component statistics for a stream enabled application
US8849838B2 (en) 2008-01-15 2014-09-30 Google Inc. Bloom filter for storing file access history
US20090193147A1 (en) * 2008-01-30 2009-07-30 Viasat, Inc. Methods and Systems for the Use of Effective Latency to Make Dynamic Routing Decisions for Optimizing Network Applications
US9762692B2 (en) 2008-04-04 2017-09-12 Level 3 Communications, Llc Handling long-tail content in a content delivery network (CDN)
US10924573B2 (en) 2008-04-04 2021-02-16 Level 3 Communications, Llc Handling long-tail content in a content delivery network (CDN)
CN102047244B (zh) 2008-04-04 2013-02-27 第三雷沃通讯有限责任公司 在内容分发网络(cdn)中处理长尾内容
US20090300208A1 (en) * 2008-06-02 2009-12-03 Viasat, Inc. Methods and systems for acceleration of mesh network configurations
US20100180005A1 (en) * 2009-01-12 2010-07-15 Viasat, Inc. Cache cycling
EP2436168A2 (de) * 2009-05-29 2012-04-04 France Telecom Technik zum verteilen von inhalt an einen benutzer
US20130103556A1 (en) 2009-06-25 2013-04-25 3Crowd Technologies, Inc. Crowd based content delivery
US8560604B2 (en) 2009-10-08 2013-10-15 Hola Networks Ltd. System and method for providing faster and more efficient data communication
US8230172B2 (en) * 2009-12-03 2012-07-24 Intel Corporation Gather and scatter operations in multi-level memory hierarchy
US9307003B1 (en) 2010-04-18 2016-04-05 Viasat, Inc. Web hierarchy modeling
US9854055B2 (en) * 2011-02-28 2017-12-26 Nokia Technologies Oy Method and apparatus for providing proxy-based content discovery and delivery
US8775775B1 (en) * 2011-03-31 2014-07-08 Emc Corporation Dynamic prefetch throttling for multi-controller systems
US9037638B1 (en) * 2011-04-11 2015-05-19 Viasat, Inc. Assisted browsing using hinting functionality
US9106607B1 (en) 2011-04-11 2015-08-11 Viasat, Inc. Browser based feedback for optimized web browsing
US9456050B1 (en) 2011-04-11 2016-09-27 Viasat, Inc. Browser optimization through user history analysis
US9912718B1 (en) 2011-04-11 2018-03-06 Viasat, Inc. Progressive prefetching
US9680791B2 (en) 2011-07-29 2017-06-13 Fortinet, Inc. Facilitating content accessibility via different communication formats
US20130103853A1 (en) 2011-07-29 2013-04-25 3Crowd Technologies, Inc. Directing clients based on communication format
EP2555128A1 (de) * 2011-08-02 2013-02-06 Alcatel Lucent Speichercache-Inhaltsmanager und Anordnung
WO2013041922A1 (en) 2011-09-23 2013-03-28 Gilat Satellite Networks, Ltd. Decentralized caching system
US10681394B2 (en) 2011-11-28 2020-06-09 Comcast Cable Communications, Llc Cache eviction during off-peak transaction time period
US8843758B2 (en) 2011-11-30 2014-09-23 Microsoft Corporation Migrating authenticated content towards content consumer
US9167049B2 (en) * 2012-02-02 2015-10-20 Comcast Cable Communications, Llc Content distribution network supporting popularity-based caching
US8627097B2 (en) 2012-03-27 2014-01-07 Igt System and method enabling parallel processing of hash functions using authentication checkpoint hashes
US9239862B2 (en) 2012-05-01 2016-01-19 Qualcomm Incorporated Web acceleration based on hints derived from crowd sourcing
US9152220B2 (en) 2012-06-29 2015-10-06 International Business Machines Corporation Incremental preparation of videos for delivery
JP6021487B2 (ja) * 2012-07-18 2016-11-09 キヤノン株式会社 情報処理システム、制御方法、サーバ、情報処理装置およびコンピュータプログラム
US9747386B1 (en) * 2012-08-10 2017-08-29 Amazon Technologies, Inc. User-perceived performance through browser hints
US9298719B2 (en) * 2012-09-04 2016-03-29 International Business Machines Corporation On-demand caching in a WAN separated distributed file system or clustered file system cache
US9560127B2 (en) 2013-01-18 2017-01-31 International Business Machines Corporation Systems, methods and algorithms for logical movement of data objects
US10375192B1 (en) 2013-03-15 2019-08-06 Viasat, Inc. Faster web browsing using HTTP over an aggregated TCP transport
US9659058B2 (en) 2013-03-22 2017-05-23 X1 Discovery, Inc. Methods and systems for federation of results from search indexing
CN104077296B (zh) * 2013-03-27 2017-12-29 联想(北京)有限公司 处理信息的方法和服务器
US9880983B2 (en) 2013-06-04 2018-01-30 X1 Discovery, Inc. Methods and systems for uniquely identifying digital content for eDiscovery
US10075741B2 (en) * 2013-07-03 2018-09-11 Avago Technologies General Ip (Singapore) Pte. Ltd. System and control protocol of layered local caching for adaptive bit rate services
US10063450B2 (en) 2013-07-26 2018-08-28 Opentv, Inc. Measuring response trends in a digital television network
US9241044B2 (en) 2013-08-28 2016-01-19 Hola Networks, Ltd. System and method for improving internet communication by using intermediate nodes
US20160255535A1 (en) * 2013-10-30 2016-09-01 Interdigital Patent Holdings, Inc. Enabling information centric networks specialization
US9819721B2 (en) 2013-10-31 2017-11-14 Akamai Technologies, Inc. Dynamically populated manifests and manifest-based prefetching
US20150142874A1 (en) * 2013-11-18 2015-05-21 Qualcomm Incorporated Prioritized one-shot browsing to reduce http page download delay
CN104683387A (zh) * 2013-11-27 2015-06-03 英业达科技有限公司 预先读取执行目标功能所需目标数据的系统及其方法
CN106462611B (zh) * 2014-05-13 2020-03-27 Opera软件公司 网络访问性能增强
US9613158B1 (en) * 2014-05-13 2017-04-04 Viasat, Inc. Cache hinting systems
US10855797B2 (en) * 2014-06-03 2020-12-01 Viasat, Inc. Server-machine-driven hint generation for improved web page loading using client-machine-driven feedback
US10346550B1 (en) 2014-08-28 2019-07-09 X1 Discovery, Inc. Methods and systems for searching and indexing virtual environments
EP3186935A1 (de) * 2014-08-28 2017-07-05 Interdigital Patent Holdings, Inc. Verfahren und vorrichtung zur erfassungszwischenspeicherung
US10362125B2 (en) * 2014-09-18 2019-07-23 Intel Corporation Technologies for pre-action execution
EP3018580A1 (de) * 2014-11-06 2016-05-11 Alcatel Lucent Cache-Server und Verfahren zur Lieferung und Zwischenspeicherung von Web-Ressourcen
US9948709B2 (en) 2015-01-30 2018-04-17 Akamai Technologies, Inc. Using resource timing data for server push in multiple web page transactions
US10313463B2 (en) 2015-02-19 2019-06-04 Akamai Technologies, Inc. Systems and methods for avoiding server push of objects already cached at a client
US11057446B2 (en) 2015-05-14 2021-07-06 Bright Data Ltd. System and method for streaming content from multiple servers
US11070608B2 (en) * 2015-06-17 2021-07-20 Fastly, Inc. Expedited sub-resource loading
US10320934B1 (en) * 2015-08-25 2019-06-11 Instart Logic, Inc. One-time cache
CA2996710C (en) 2015-08-28 2023-04-18 Viasat, Inc. Systems and methods for prefetching dynamic urls
US10769695B2 (en) * 2015-09-02 2020-09-08 Ebay Inc. Generating titles for a structured browse page
AU2015409179B2 (en) 2015-09-14 2018-05-24 Viasat, Inc. Machine-driven crowd-disambiguation of data resources
MX2018003580A (es) 2015-09-23 2018-08-24 Viasat Inc Aceleracion de la verificacion del estado de un certificado en linea con un servicio de sugerencias de internet.
US10157240B2 (en) 2015-10-01 2018-12-18 Ebay Inc. Systems and methods to generate a concept graph
US10248114B2 (en) * 2015-10-11 2019-04-02 Computational Systems, Inc. Plant process management system with normalized asset health
MX2018004856A (es) 2015-10-20 2018-11-09 Viasat Inc Actualizacion de modelo de optimizacion por medio de agrupamientos de navegacion automatica.
AU2015413329B2 (en) 2015-10-28 2020-02-06 Viasat, Inc. Time-dependent machine-generated hinting
US10021220B2 (en) * 2015-11-02 2018-07-10 Adobe Systems Incorporated Object amalgamation based on categorization and protocol granularization
AU2016364922B2 (en) 2015-12-04 2019-10-10 Viasat, Inc. Accelerating connections to a host server
JP6258992B2 (ja) * 2016-02-26 2018-01-10 ヤフー株式会社 情報提供システム、情報提供方法および情報処理装置
CA3027756C (en) 2016-06-28 2021-04-13 Solano Labs, Inc. Systems and methods for efficient distribution of stored data objects
US10880396B2 (en) 2016-12-02 2020-12-29 Viasat, Inc. Pre-fetching random-value resource locators
US10936593B2 (en) * 2017-03-27 2021-03-02 Liberation Distribution, Inc. Resolving a query to a database by transmitting identifiers of objects satisfying the query
US10574777B2 (en) * 2017-06-06 2020-02-25 International Business Machines Corporation Edge caching for cognitive applications
LT3767494T (lt) 2017-08-28 2023-03-10 Bright Data Ltd. Būdas pagerinti turinio parsisiuntimą, pasirenkant tunelinius įrenginius
US10684950B2 (en) 2018-03-15 2020-06-16 Bank Of America Corporation System for triggering cross channel data caching
CN108804514A (zh) * 2018-04-25 2018-11-13 网宿科技股份有限公司 一种网页加载方法、服务器和网页加载系统
CN110750498B (zh) * 2018-07-19 2023-01-06 成都华为技术有限公司 对象访问方法、装置及存储介质
EP3780557B1 (de) 2019-02-25 2023-02-15 Bright Data Ltd. System und verfahren für url-abrufneuversuchsmechanismus
EP4030318A1 (de) 2019-04-02 2022-07-20 Bright Data Ltd. System und verfahren zur verwaltung eines nichtdirekten url-abrufdienstes
US11893062B2 (en) * 2019-05-14 2024-02-06 Sap Se Bulk lazy loading of structured data
US11201939B1 (en) * 2019-06-28 2021-12-14 Amazon Technologies, Inc. Content and compute delivery platform using satellites
US11171720B1 (en) * 2019-06-28 2021-11-09 Amazon Technologies, Inc. Content and compute delivery platform using satellites
US11080283B1 (en) * 2020-09-29 2021-08-03 Atlassian Pty Ltd. Systems and methods for selectively prefetching data
US11265396B1 (en) 2020-10-01 2022-03-01 Bank Of America Corporation System for cross channel data caching for performing electronic activities
US11366749B2 (en) * 2020-11-10 2022-06-21 Western Digital Technologies, Inc. Storage system and method for performing random read
US11921872B2 (en) * 2020-12-16 2024-03-05 International Business Machines Corporation Access control for a data object including data with different access requirements
US11778067B2 (en) 2021-06-16 2023-10-03 Bank Of America Corporation System for triggering cross channel data caching on network nodes
US11880307B2 (en) 2022-06-25 2024-01-23 Bank Of America Corporation Systems and methods for dynamic management of stored cache data based on predictive usage information

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5228859A (en) * 1990-09-17 1993-07-20 Interactive Training Technologies Interactive educational and training system with concurrent digitized sound and video output
US5305389A (en) * 1991-08-30 1994-04-19 Digital Equipment Corporation Predictive cache system
US5511208A (en) * 1993-03-23 1996-04-23 International Business Machines Corporation Locating resources in computer networks having cache server nodes
US5485609A (en) * 1994-05-20 1996-01-16 Brown University Research Foundation Online background predictors and prefetchers for locality management
US5652858A (en) * 1994-06-06 1997-07-29 Hitachi, Ltd. Method for prefetching pointer-type data structure and information processing apparatus therefor
JPH10504919A (ja) * 1994-06-30 1998-05-12 インテル コーポレイシヨン スクリプト・ベースのマルチメディア・システム用のデータ先取り
US5812996A (en) * 1994-07-12 1998-09-22 Sybase, Inc. Database system with methods for optimizing query performance with a buffer manager
US5822749A (en) * 1994-07-12 1998-10-13 Sybase, Inc. Database system with methods for improving query performance with cache optimization strategies
US5603025A (en) * 1994-07-29 1997-02-11 Borland International, Inc. Methods for hypertext reporting in a relational database management system
US5768577A (en) * 1994-09-29 1998-06-16 International Business Machines Corporation Performance optimization in a heterogeneous, distributed database environment
US6381595B1 (en) * 1994-09-29 2002-04-30 International Business Machines Corporation System and method for compensation of functional differences between heterogeneous database management systems
US5758257A (en) * 1994-11-29 1998-05-26 Herz; Frederick System and method for scheduling broadcast of and access to video programs and other data using customer profiles
US5799309A (en) * 1994-12-29 1998-08-25 International Business Machines Corporation Generating an optimized set of relational queries fetching data in an object-relational database
US5848413A (en) * 1995-01-13 1998-12-08 Ricoh Company, Ltd. Method and apparatus for accessing and publishing electronic documents
JP3377880B2 (ja) * 1995-04-19 2003-02-17 富士通株式会社 自動情報取得装置および方法
US5805809A (en) * 1995-04-26 1998-09-08 Shiva Corporation Installable performance accelerator for maintaining a local cache storing data residing on a server computer
US5802292A (en) * 1995-04-28 1998-09-01 Digital Equipment Corporation Method for predictive prefetching of information over a communications network
US5742762A (en) * 1995-05-19 1998-04-21 Telogy Networks, Inc. Network management gateway
US5706507A (en) * 1995-07-05 1998-01-06 International Business Machines Corporation System and method for controlling access to data located on a content server
JPH0981455A (ja) * 1995-09-11 1997-03-28 Toshiba Corp クライアント装置、サーバ装置及び記憶装置制御方法
JP3386964B2 (ja) * 1995-11-20 2003-03-17 シャープ株式会社 ゲートウェイ装置
US5781909A (en) * 1996-02-13 1998-07-14 Microtouch Systems, Inc. Supervised satellite kiosk management system with combined local and remote data storage
US5859971A (en) * 1996-02-15 1999-01-12 International Business Machines Corp. Differencing client/server communication system for use with CGI forms
US5862325A (en) * 1996-02-29 1999-01-19 Intermind Corporation Computer-based communication system and method using metadata defining a control structure
US5835718A (en) * 1996-04-10 1998-11-10 At&T Corp URL rewriting pseudo proxy server
US5828851A (en) * 1996-04-12 1998-10-27 Fisher-Rosemount Systems, Inc. Process control system using standard protocol control of standard devices and nonstandard devices
US5748897A (en) * 1996-07-02 1998-05-05 Sun Microsystems, Inc. Apparatus and method for operating an aggregation of server computers using a dual-role proxy server computer
US5818448A (en) * 1996-07-02 1998-10-06 Sun Microsystems, Inc. Apparatus and method for identifying server computer aggregation topologies
US5926179A (en) * 1996-09-30 1999-07-20 Sony Corporation Three-dimensional virtual reality space display processing apparatus, a three-dimensional virtual reality space display processing method, and an information providing medium
US6065058A (en) * 1997-05-09 2000-05-16 International Business Machines Corp. Dynamic push filtering based on information exchanged among nodes in a proxy hierarchy

Also Published As

Publication number Publication date
PL339377A1 (en) 2000-12-18
CN1200378C (zh) 2005-05-04
HU224089B1 (hu) 2005-05-30
CA2302254A1 (en) 1999-04-08
KR100377715B1 (ko) 2003-03-26
DE69834129D1 (de) 2006-05-18
HUP0003680A3 (en) 2003-02-28
EP1018085B1 (de) 2006-04-05
EP1018085A1 (de) 2000-07-12
JP3526442B2 (ja) 2004-05-17
JP2001518668A (ja) 2001-10-16
KR20010023599A (ko) 2001-03-26
WO1999017227A1 (en) 1999-04-08
CN1272189A (zh) 2000-11-01
CA2302254C (en) 2006-10-24
PL192676B1 (pl) 2006-11-30
US6085193A (en) 2000-07-04
HUP0003680A2 (hu) 2001-02-28
IL133251A0 (en) 2001-04-30

Similar Documents

Publication Publication Date Title
DE69834129T2 (de) Verfahren und system zum vorausladen von informationen
DE69831904T2 (de) Dynamische Erstellung von Internetseiten
DE19747583B4 (de) Kommunikationssystem und Verfahren
US6065058A (en) Dynamic push filtering based on information exchanged among nodes in a proxy hierarchy
DE60009309T2 (de) System und verfahren zum presentieren von kanalisierten daten
DE602005003449T2 (de) Verbesserte benutzerschnittstelle
DE60015423T2 (de) Verfahren und Vorrichtung zur Objektwiedergabe in einem Netzwerk
DE69907631T2 (de) Netzzugang zu inhaltsadressierbaren daten
DE60311116T2 (de) Verfahren, system und programm zur verwaltung von daten in verteilten cachespeichern
DE602004011952T2 (de) Verfahren und System zum Verbessern der Präsentation von HTML-Seiten in einem Internet-Zugriffsgerät
DE69931256T2 (de) Verfahren und system zum zurückholen einer elektronischen akte
DE69723432T2 (de) Informationsauffindungssystem mit einer cachedatenbank
DE60003278T2 (de) Hierarchische Auflösung von Adressen in einem Datennetzwerk
DE10003907A1 (de) Browser für die Anwendung beim Zugriff auf Hypertext-Dokumente in einer Mehrnutzer-Computerumgebung
DE69832168T2 (de) System und verfahren zur verbindungsverwaltung zwischen einem server und einem klientknoten
DE19813884B4 (de) System und Verfahren zur Ermittlung und Darstellung von verbindungsbezogenen Leistungsdaten in Netzwerken
EP1755049B1 (de) Verfahren zur Übermittlung von Informationen von einem Informationsserver an einen Client
DE10320711A1 (de) Verfahren und Anordnung zur Einrichtung und Aktualisierung einer Benutzeroberfläche zum Zugriff auf Informationsseiten in einem Datennetz
DE10303070A1 (de) Erzeugen einer Liste von Adressen in einem Server
DE19813883B4 (de) Verfahren, Computerprogrammprodukt und Dokumentenmanagementsystem zum Zugriff auf Internet-Informationen für geschlossene Benutzergruppen
DE10118064A1 (de) Erweiterung Browser-Bezogener Internetseiteninhaltskennzeichen und Kennwortüberprüfung auf Kommunikationsprotokolle
DE10303066A1 (de) Unterstütztes Eingeben von Adressen
DE602004001619T2 (de) Verfahren und Vorrichtung zum Zugang zu Mehrfachauflösungsbilder in einem gleichrangigen Kommunikationsnetz
DE10303067A1 (de) Erzeugen einer Liste von Adressen in einer Indexseite
DE60108176T2 (de) Verfahren und system zum abliefern von informationen in einem telekommunikationsnetz

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8320 Willingness to grant licences declared (paragraph 23)
R082 Change of representative

Ref document number: 1018085

Country of ref document: EP

Representative=s name: PFENNING MEINIG & PARTNER GBR, DE