JP2001518668A - Method and system for pre-retrieving information - Google Patents

Method and system for pre-retrieving information

Info

Publication number
JP2001518668A
JP2001518668A JP2000514222A JP2000514222A JP2001518668A JP 2001518668 A JP2001518668 A JP 2001518668A JP 2000514222 A JP2000514222 A JP 2000514222A JP 2000514222 A JP2000514222 A JP 2000514222A JP 2001518668 A JP2001518668 A JP 2001518668A
Authority
JP
Japan
Prior art keywords
prefetch
request
server
information
proxy
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.)
Granted
Application number
JP2000514222A
Other languages
Japanese (ja)
Other versions
JP3526442B2 (en
Inventor
マルキン、ピーター、ケネス
ユー、フィリップ、シーラング
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 JP2001518668A publication Critical patent/JP2001518668A/en
Application granted granted Critical
Publication of JP3526442B2 publication Critical patent/JP3526442B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related 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/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/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/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

Abstract

(57)【要約】 【課題】 プロキシ・サーバ階層および強化コンテンツ・サーバによるクライアントへのデータ転送に関連付けられたクライアントのためにデータを事前に取り出すための方法およびシステムを提供する。 【解決手段】 データを事前に取り出すための方法はデータ・アクセス・パターンを識別し、データ・アクセス・パターンの動的解釈に基づいて選択情報を事前に取り出す。コンテンツ・サーバまたはプロキシ・サーバは、コンテンツ・サーバまたはプロキシ・サーバ階層に関連付けられたクライアントのデータ・アクセス参照パターンを識別する。データ・アクセス・パターンは、統計テーブルに格納することが好ましい。コンテンツ・サーバは、統計テーブルからの入力に基づいて、事前取出しヒント情報を生成する。事前取出しヒント情報は、クライアントによって要求された要求情報またはオブジェクトを注釈する。要求情報がプロキシ・サーバ階層内を通過すると、事前取出しヒント情報を更新することが最適である。事前取出しヒント情報は、クライアントによって要求された要求情報を注釈する。クライアントのための選択情報を事前に取り出す最終決定は、事前取出しヒント情報および事前取出しヒント値に基づいて行われる。事前取出しヒント値は、記憶場所の制約およびアクセス時間などの局所ノード特定的な要素に基づいて計算される。 A method and system for pre-fetching data for a client associated with a proxy server hierarchy and data transfer to the client by an enhanced content server. A method for prefetching data identifies a data access pattern and prefetches selection information based on a dynamic interpretation of the data access pattern. The content server or proxy server identifies a client data access reference pattern associated with the content server or proxy server hierarchy. The data access pattern is preferably stored in a statistics table. The content server generates prefetch hint information based on the input from the statistics table. The prefetch hint information annotates the requested information or object requested by the client. As the request information passes through the proxy server hierarchy, it is best to update the prefetch hint information. The pre-fetch hint information annotates the request information requested by the client. The final decision to pre-fetch selection information for the client is based on pre-fetch hint information and pre-fetch hint values. The prefetch hint value is calculated based on local node specific factors such as storage location constraints and access times.

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】TECHNICAL FIELD OF THE INVENTION

本発明は、クライアントのために情報またはオブジェクトを動的に事前に取り
出すための方法および装置に関し、クライアントは、例えばワールド・ワイド・
ウェブにおけるウェブ・オブジェクトの事前取出しに関与することができるなど
、プロキシ・サーバの階層に関連付けられていることが好ましい。
The present invention relates to a method and apparatus for dynamically prefetching information or objects for a client, the client comprising, for example, a world wide
It is preferably associated with a hierarchy of proxy servers, such as being able to participate in pre-fetching web objects on the web.

【0002】 用語集 インターネット:TCP/IPのプロトコルの組を使用するネットワークおよ
びゲートウェイのネットワーク。
Glossary Internet: A network of networks and gateways that use the TCP / IP set of protocols.

【0003】 クライアント:クライアントとは、命令を、この命令に関連付けられたタスク
を実行するサーバに出すコンピュータである。
[0003] Client: A client is a computer that issues instructions to a server that performs tasks associated with the instructions.

【0004】 サーバ:別のコンピュータの命令でタスクを実行するコンピュータがサーバで
ある。ウェブ・サーバは一般的に1つまたは複数のクライアントをサポートする
Server: A computer is a server that executes a task according to instructions from another computer. A web server typically supports one or more clients.

【0005】 ワールド・ワイド・ウェブ(WWWまたはウェブ):ハイライトされた関心の
ある語または語句を選択(クリック)することによって、インターネットで情報
を捜すユーザにサーバからサーバへおよびデータベースからデータベースへ接続
を切換えさせるインターネット・アプリケーション。インターネットWWWサー
バはクライアントをサポートし、情報をクライアントに提供する。全ての資源を
URLとしてアドレス指定したインターネットと考えることができるウェブは、
HTMLを使用してURLに対応する情報を表示し、かつ他のURLへのポイン
ト−アンド−クリックを提供する。
World Wide Web (WWW or Web): Connecting (clicking) a highlighted word or phrase of interest to users searching for information on the Internet, connecting from server to server and from database to database Internet application to switch between. The Internet WWW server supports the client and provides information to the client. The web, which can be thought of as the Internet, where all resources are addressed as URLs,
Use HTML to display information corresponding to a URL and provide point-and-click to other URLs.

【0006】 ユニバーサル・リソース・ロケータ(URL):URLは、インターネット上
の情報を一意に識別またはアドレス指定するための方法であり、eメール・アド
レスのウェブ文書バージョンと考えることができる。URLはハイパーリンクで
アクセスすることができる。URL識別の一例は「http://www.philipyu.com:80
/table.html」である。URLは4つの構成要素を持つ。この例の左側から見て いくと、最初の構成要素は使用するプロトコル(この場合http)を指定し、
このロケータの残部から「:」によって区切られる。次の構成要素は目標ホスト
のホスト名またはIPアドレスであり、この構成要素は、左側を二重斜線「//
」によって、かつ右側を単斜線「/」(または任意選択的に「:」)によって区
切られる。ポート番号は任意の構成要素であり、左側を「:」によって、かつ右
側を単斜線「/」によってホスト名から区切られる。4番目の構成要素は実ファ
イル名またはプログラム名であり(この例ではtable.html)、さらに
単斜線を使用してディレクトリとサブディレクトリを従来の方法で分離する。こ
の例では、拡張部「.html」は、これがHTMLファイルであることを意味
する。
[0006] Universal Resource Locator (URL): A URL is a method for uniquely identifying or addressing information on the Internet and can be thought of as a web document version of an email address. The URL can be accessed by a hyperlink. An example of URL identification is "http://www.philipyu.com:80
/table.html ". The URL has four components. Looking at the left side of this example, the first component specifies the protocol to use (http in this case),
It is separated from the rest of this locator by a ":". The next component is the host name or IP address of the target host, and this component has a double slash "//
, And the right side is delimited by a single oblique line “/” (or optionally “:”). The port number is an optional component, and is separated from the host name by “:” on the left side and by a single oblique line “/” on the right side. The fourth component is the actual file name or program name (table.html in this example) and further separates directories and subdirectories using single diagonal lines in a conventional manner. In this example, the extension ".html" means that this is an HTML file.

【0007】 ハイパーテキスト・マークアップ言語(HTML):HTMLは、ウェブ・ク
ライアントが見る文書をウェブ・サーバが作成し接続するために使用する言語で
ある。HTMLはハイパーテキスト文書を生成する。
Hypertext Markup Language (HTML): HTML is the language used by web servers to create and connect to documents viewed by web clients. HTML generates hypertext documents.

【0008】 ハイパーテキスト転送プロトコル(HTTP):HTTPは、クライアントか
らサーバへの各要求が独立して処理されるステートレス・プロトコルの一例であ
る。サーバは、以前の接続の記録を持たない。URLの最初にある「http:
」は、要求クライアントと目標サーバが、指定の資源に関してHTTPプロトコ
ルを用いて通信することを示す。
[0008] Hypertext Transfer Protocol (HTTP): HTTP is an example of a stateless protocol in which each request from a client to a server is processed independently. The server has no record of previous connections. "Http:" at the beginning of the URL
Indicates that the requesting client and the target server communicate using the HTTP protocol for the specified resource.

【0009】 インターネット・ブラウザまたはウェブ・ブラウザ:HTTPなどのインター
ネット・プロトコルを実行し、結果をユーザの画面上に表示するグラフィカル・
インタフェース・ツール。ブラウザは、ユーザがインターネット・「サーフィン
」を行うときのために画像デスクトップ、ディレクトリ、およびサーチ・ツール
を完備した、インターネットのツアー・ガイドとして作動することができる。本
願では、ウェブ・ブラウザはワールド・ワイド・ウェブと通信するクライアント
・サーバである。
Internet Browser or Web Browser: A graphical browser that runs an Internet protocol such as HTTP and displays the results on the user's screen.
Interface tools. The browser can act as an Internet tour guide, complete with image desktops, directories, and search tools for when the user "surfs" the Internet. In the present application, a web browser is a client server that communicates with the World Wide Web.

【0010】 クライアント・キャッシュ:クライアント・キャッシュは一般的に、クライア
ントによってアクセスされたオブジェクトの一次群(キャッシュ)として使用さ
れる。WWW環境では、クライアント・キャッシュは一般的にウェブ・ブラウザ
によって実現され、現行呼出し中にアクセスされたオブジェクトを保存する、つ
まり非永続キャッシュとすることができ、あるいは全ての呼出しにわたってオブ
ジェクトを保存することができる。
[0010] Client cache: The client cache is typically used as a primary group (cache) of objects accessed by the client. In a WWW environment, the client cache is typically implemented by a web browser and stores the objects accessed during the current invocation, ie, may be a non-persistent cache, or may store the objects across all invocations. Can be.

【0011】 キャッシング・プロキシ:オブジェクトを捜して多分キャッシュに保存された
コピーを返すために、クライアントのためのエージェント(代理)として作動す
る、ネットワークにおける特殊化されたサーバである。キャッシング・プロキシ
は、クライアント・キャッシュからのキャッシュ・ミスの結果呼び出されるので
、一般的に二次またはそれより高次のキャッシュとして役立つ。
[0011] Caching proxy: A specialized server in a network that acts as an agent for a client to look up objects and possibly return a cached copy. The caching proxy is typically invoked as a result of a cache miss from the client cache, and thus generally serves as a secondary or higher level cache.

【0012】 メタ・タグ付け:情報と任意のオブジェクトの関連付け。例えば、HTTPで
は、情報はHTTPヘッダのフィールドにおける要求および応答の両方に関連付
けることができる。例えば、HTTPクライアントは、返されたページを要求し
たURLを指定することができる。
Meta-tagging: the association of information with arbitrary objects. For example, in HTTP, information can be associated with both requests and responses in fields of the HTTP header. For example, an HTTP client can specify the URL that requested the returned page.

【0013】[0013]

【従来の技術】[Prior art]

ワールド・ワイド・ウェブ(WWWまたはウェブ)の人気が高まるにつれて、
インターネットのトラヒックはかなり増加した。ウェブは今や、ネットワーク性
能の主要なボトルネックの1つになっている。例えば、低速ネットワーク・リン
クを介してサーバに接続したユーザが文書または情報を要求した場合、ウェブ・
ユーザは顕著な遅延を経験することがある。ウェブがネットワークを介してユー
ザに情報を転送することにより、ネットワークにおけるトラヒックのレベルはさ
らに高くなる。トラヒックの増加は、他のユーザの要求に利用可能な帯域幅を減
少し、潜在的遅延をさらに高める原因となる。
As the popularity of the World Wide Web (WWW or Web) increases,
Internet traffic has increased significantly. The Web is now one of the major bottlenecks in network performance. For example, if a user connected to the server via a slow network link requests a document or information,
Users may experience significant delays. As the web transfers information to users over the network, the level of traffic in the network is further increased. The increase in traffic reduces the bandwidth available for other users' requests, causing further increase in potential delay.

【0014】 クライアントのアクセス待ち時間を減少するために、従来の技術は、人気のあ
る情報の文書のコピーをネットワーク・ノードでユーザにより近くに格納または
保存し、それによりアクセス待ち時間をより容認できるようになった。キャッシ
ングは、ネットワークの様々な地点で実現することができる。例えば、大規模な
大学または企業はそれ自身のローカル・キャッシュを持ち、そのネットワークに
加入している全てのユーザはそこから文書を取り出すことができる。ローカル・
キャッシュは、特殊サーバの形で実現することができる。
To reduce client access latency, the prior art stores or stores a copy of the popular information document closer to the user at the network node, thereby making the access latency more acceptable. It became so. Caching can be implemented at various points in the network. For example, a large university or company has its own local cache from which all users subscribing to the network can retrieve documents. local·
The cache can be implemented in the form of a special server.

【0015】 特殊サーバはキャッシング・プロキシと呼ばれ、クライアントに代わって要求
された情報の潜在的なキャッシュ・コピーを捜すための代理として作動すること
ができる。キャッシング・プロキシは障害クライアント・キャッシュから残され
たミスだけに関係するので、キャッシング・プロキシは通常二次以上のキャッシ
ュとして作動する。クライアント・キャッシュは様々なウェブ・ブラウザに組み
込まれる。クライアント・キャッシュは、現行呼出し中の文書アクセスだけを格
納する(モザイクのような非永続キャッシュ)か、または全ての呼出しにわたっ
て文書を保存するかのいずれかとすることができる。
A special server, called a caching proxy, can act on behalf of a client as a proxy for looking for a potential cached copy of the requested information. Because the caching proxy is only concerned with misses left from the failed client cache, the caching proxy typically operates as a secondary or higher level cache. The client cache is embedded in various web browsers. The client cache can either store only the document access during the current call (a non-persistent cache like a mosaic) or store the document across all calls.

【0016】 ウェブ文書のキャッシングに関する以前の作業は、主としてオンデマンド・キ
ャッシングの領域であった。オンデマンド・キャッシングとは、オブジェクトが
要求された後でキャッシング決定が行われることを意味する。例えば、エイブラ
ムズ(Abrams)他の「キャッシング・プロキシ:限界と潜在的可能性(Caching
Proxies: Limitations and Potentials)」(第4回国際ワールド・ワイド・ウ ェブ会議1996年会報)は、ウェブのために検討されてきた様々なオンデマン
ド・キャッシング方針について述べている。
Previous work on caching web documents was primarily in the area of on-demand caching. On-demand caching means that the caching decision is made after the object has been requested. For example, Abrams et al., "Caching Proxy: Limits and Potentials (Caching
Proxies: Limitations and Potentials ”(Report of the Fourth International World Wide Web Conference 1996) describes various on-demand caching policies that have been considered for the Web.

【0017】[0017]

【発明が解決しようとする課題】 インターネット・サービス・プロバイダ(ISP)ネットワークまたは企業ネ
ットワークでは、プロキシ階層の様々な地域プロキシまたは部門プロキシが、様
々な参照動作を観察したり、様々なネットワーク・トラヒックや遅延に直面する
。プロキシ階層の存在は、全部の中間プロキシ、クライアント、またはそれらの
サブセットが事前取出しを実行すべきか否かに関する事前取出し決定をいっそう
複雑にする。したがって、プロキシ・サーバ階層および関連クライアントに関し
、事前取出し動作を効果的に調整することができる事前取出し方法およびシステ
ムの必要性が存在する。
In an Internet Service Provider (ISP) network or an enterprise network, different regional or departmental proxies in the proxy hierarchy may observe different referral behaviors and / or different network traffic and traffic. Face delay. The existence of a proxy hierarchy further complicates the prefetch decision as to whether all intermediate proxies, clients, or a subset thereof, should perform prefetch. Accordingly, there is a need for a prefetch method and system that can effectively coordinate prefetch operations with respect to a proxy server hierarchy and associated clients.

【0018】[0018]

【課題を解決するための手段】[Means for Solving the Problems]

したがって、本発明は、コンテンツ・サーバから選択情報を事前に取り出して
、コンテンツ・サーバに関連付けられた1つまたは複数のクライアントが通信ネ
ットワークおよび1つまたは複数のプロキシ・サーバを介してその選択情報に容
易にアクセスできるようにするための方法であって、 プロキシ・サーバの少なくとも1つから情報を要求するステップと、 前記クライアントのいずれかによる要求情報の過去の検索またはアクセスに基
づいて、前記クライアントのための事前取出しヒント情報を確立するステップと
、 要求情報に前記事前取出しヒント情報を注釈として付けるステップと、 事前取出しヒント情報および要求情報に基づいて、前記サーバのいずれかから
選択情報を事前に取り出すステップと を含む方法を提供する。
Accordingly, the present invention provides for pre-fetching selection information from a content server so that one or more clients associated with the content server can retrieve the selection information via a communication network and one or more proxy servers. Requesting information from at least one of a proxy server; and retrieving information from the client based on a past search or access to the requested information by any of the clients. Establishing pre-fetch hint information for requesting; annotating the request information with the pre-fetch hint information; based on the pre-fetch hint information and the request information; Retrieving.

【0019】 一般的に、要求情報は要求オブジェクトを含み、選択情報はインターネット・
データなどの事前取出し候補オブジェクトを含む。この場合、要求オブジェクト
は、インターネット・データに関連付けられたハイパーテキスト転送プロトコル
(HTTP)リンクを介して選択オブジェクトを参照することができ、プロキシ
・サーバは、要求オブジェクトのオブジェクト・ヘッダに格納された要求オブジ
ェクトのユニバーサル・リソース・ロケータすなわちURLのHTTPプロトコ
ルを通して、要求オブジェクトに対する選択オブジェクトの関係を識別する。
Generally, the request information includes a request object, and the selection information includes an Internet
Contains pre-fetch candidate objects such as data. In this case, the request object can reference the selected object via a hypertext transfer protocol (HTTP) link associated with the Internet data, and the proxy server sends the request object stored in the request object's object header. Identify the relationship of the selected object to the request object through the object's Universal Resource Locator or URL's HTTP protocol.

【0020】 事前取出しヒント情報を確立するステップは、前記クライアントに関連付けら
れたデータ参照パターンを追跡するステップと、要求オブジェクトと事前取出し
候補オブジェクトとの間の関係によってデータ参照パターンをオブジェクト識別
子群に編成するステップと、前記識別子群のうちのどれが、前記事前取出し候補
オブジェクトを選択情報として事前に取り出すことを保証するために事前取出し
候補オブジェクトと要求オブジェクトとの間の充分な関係を持つかを決定するス
テップとを含むことが好ましい。したがって、前記クライアントのデータ参照パ
ターンは要求情報の過去の検索または以前のアクセスに基づくことが有利であり
、データ参照パターンは、前記クライアントのうち前記プロキシ・サーバの1つ
に関連付けられる様々なクライアントによる過去の検索またはアクセスの一般的
な傾向を表すように選択される。次いでこれを使用して、事前取出しヒント情報
を定義することができる。
Establishing prefetch hint information comprises: tracking a data reference pattern associated with the client; and organizing the data reference pattern into a group of object identifiers by a relationship between the request object and the prefetch candidate object. Determining which of the set of identifiers has a sufficient relationship between the pre-fetched candidate object and the request object to ensure that the pre-fetched candidate object is pre-fetched as selection information. Determining. Thus, the data reference pattern of the client is advantageously based on a previous search or previous access to the requested information, and the data reference pattern is determined by various ones of the clients associated with one of the proxy servers. Selected to represent general trends in past searches or accesses. This can then be used to define prefetch hint information.

【0021】 追跡および編成ステップは、プロキシ・サーバに参照データ・パターンを格納
するためのデータベースを確立すること、および前記データベースの各々の中に
、要求オブジェクトを別の要求オブジェクトから区別するオブジェクト識別子と
、前記サーバの1つによって観察されたものとして要求オブジェクトが要求され
た回数を示すオブジェクト・カウントとを含むフィールドを配置すること、およ
び各要求オブジェクトに関連付けられた1つまたは複数の事前取出し候補オブジ
ェクトが各々に含まれるアクセス・リストを前記データベースに関連付けること
を含むことが好ましい。
The tracking and organizing steps comprise establishing a database for storing reference data patterns in the proxy server, and in each of said databases, an object identifier that distinguishes a request object from another request object. Placing an object count indicating the number of times the requested object has been requested as observed by one of the servers; and one or more pre-fetch candidate objects associated with each requested object Preferably comprises associating the access list contained in each with the database.

【0022】 そのようなデータベースを使用して、要求オブジェクトと事前取出し候補オブ
ジェクトの関係を定義し、かつ要求オブジェクトおよび事前取出し候補オブジェ
クトのアクセス統計を追跡することができる。前記アクセス統計は、要求オブジ
ェクトの親オブジェクト・アクセス頻度、および事前取出し候補オブジェクトの
子オブジェクト・アクセス頻度を含む。親オブジェクト・アクセス頻度とは、要
求オブジェクトのうちの特定の1つが前記クライアントのうちの少なくとも1つ
によって要求される回数を表す。子オブジェクト・アクセス頻度とは、前記特定
の1つがアクセスされた後で前記事前取出し候補オブジェクトのうちの1つまた
は複数が前後して実際に要求される回数を表す。これにより、子オブジェクト・
アクセス頻度に関連付けられた親オブジェクト・アクセス頻度に対する子オブジ
ェクト・アクセス頻度の比に基づいて、閾確率を超える比の事前取出し候補オブ
ジェクトだけを含む事前取出し候補オブジェクトの事前取出しリストを選択する
ことが可能になる。
Such a database can be used to define the relationship between a request object and a pre-fetch candidate object and track access statistics of the request object and the pre-fetch candidate object. The access statistics include a parent object access frequency of the request object and a child object access frequency of the prefetch candidate object. Parent object access frequency refers to the number of times a particular one of the requested objects is requested by at least one of the clients. The child object access frequency represents the number of times one or more of the pre-fetch candidate objects are actually requested before or after the particular one is accessed. This allows child objects
Based on the ratio of child object access frequency to parent object access frequency associated with access frequency, it is possible to select a pre-fetch list of pre-fetch candidate objects containing only pre-fetch candidate objects with a ratio exceeding the threshold probability become.

【0023】 一般的に、前記プロキシ・サーバの1つまたは前記クライアントの1つでは、
事前取出し候補オブジェクトのサブセットだけが実際に事前取出しされ、受信さ
れる。事前取出し候補オブジェクトのこのサブセットの選択情報としての選択は
、前記プロキシ・サーバの1つにおける空き記憶容量および/または前記プロキ
シ・サーバのうちの1つにおけるアクセス回数などの要素に基づく。したがって
、事前取出し候補オブジェクトは、何らかの対応する事前取出し値に関連する優
先順位に従って事前取出しされる。
In general, at one of the proxy servers or one of the clients,
Only a subset of the pre-fetch candidate objects are actually pre-fetched and received. The selection of this subset of prefetched candidate objects as selection information is based on factors such as the free storage capacity at one of the proxy servers and / or the number of accesses at one of the proxy servers. Thus, pre-fetch candidate objects are pre-fetched according to priorities associated with some corresponding pre-fetch values.

【0024】 好適な実施形態では、要求情報に注釈を付けるステップは、インターネット・
コンテンツ選択のためのプラットフォーム(PICS)フォーマットを有する事
前取出しラベルまたはPICSフォーマットと互換可能なラベル・プロトコルに
事前取出しヒント情報を配置するステップを含む。この(PICS)フォーマッ
トの特定の実現では、オブジェクト識別子カテゴリおよび参照側識別子カテゴリ
が定義され、前記方法はさらに、実際に参照された事前取出し候補オブジェクト
を識別するために、参照側識別子カテゴリをコンテンツ・サーバに返すステップ
を含む。インターネット・コンテンツ選択のためのプラットフォーム・プロトコ
ルまたはPICS互換性プロトコルによる事前取出しヒント情報の編成は、多く
のブラウザによってすでにサポートされているフォーマットを利用する。
In a preferred embodiment, the step of annotating the request information comprises:
Placing the prefetch hint information on a prefetch label having a platform for content selection (PICS) format or a label protocol compatible with the PICS format. In a particular implementation of this (PICS) format, an object identifier category and a referrer identifier category are defined, and the method further comprises: referencing the referrer identifier category to identify the actually referenced prefetch candidate object. Including returning to the server. The organization of pre-fetch hint information by a platform protocol for Internet content selection or a PICS compatible protocol utilizes a format that is already supported by many browsers.

【0025】 一般的に、前記プロキシ・サーバの階層がある。この階層に送信ノードおよび
受信ノードを定義して、事前取出しヒント情報を初期状態から最終状態に変更す
ることが好ましく、初期状態は送信ノードによって決定され、最終状態は受信ノ
ードによって決定される。その後最終事前取出し決定の基礎を形成するのは、前
記最終状態の事前取出しヒント情報である(選択情報の事前取出しが受信ノード
によって開始されることを前提とする)。
Generally, there is a hierarchy of the proxy server. It is preferable to define a transmitting node and a receiving node in this hierarchy and change the prefetch hint information from an initial state to a final state, where the initial state is determined by the transmitting node and the final state is determined by the receiving node. It is then the prefetching hint information of the final state that forms the basis of the final prefetching decision (assuming that the prefetching of the selection information is initiated by the receiving node).

【0026】 言い換えると、事前取出しヒント情報はプロキシ・サーバからクライアントへ
階層を介して伝送されると、解釈し、更新することができる。プロキシ・サーバ
は、要求情報の局所的参照が存在するかどうか、および局所レベル・サーバのカ
ウントが最小閾カウントを超えるかどうかの事前取出しヒント情報を更新するこ
とが好ましい(つまり、したがって信頼できる統計が局所的に利用可能である)
。事前取出しヒント情報はまた、プロキシ階層におけるキャッシング状態に基づ
いて更新することもできる(例えば、階層のどこに特定の事前取出し候補オブジ
ェクトをキャッシュすることができるかを指摘する)。
In other words, the prefetch hint information can be interpreted and updated as it is transmitted from the proxy server to the client via the hierarchy. The proxy server preferably updates the prefetch hint information whether there is a local reference to the request information and whether the count of the local level server exceeds the minimum threshold count (i.e., a reliable statistic Is available locally)
. The prefetch hint information may also be updated based on the caching state in the proxy hierarchy (eg, indicating where in the hierarchy a particular prefetch candidate object may be cached).

【0027】 本発明はさらに、ネットワークに関連付けられた1つまたは複数のプロキシ・
サーバと、コンテンツ・サーバおよび1つまたは複数の前記プロキシ・サーバと
ネットワークを介して通信するためのクライアントとを含み、ネットワークを介
してコンテンツ・サーバから選択情報を事前に取り出すためのデータ処理システ
ムであって、 前記プロキシ・サーバの少なくとも1つから情報を要求する手段と、 前記クライアントのいずれかによる要求情報の過去の検索またはアクセスに基
づいて、前記クライアントのための事前取出しヒント情報を確立する手段と、 要求情報に前記事前取出しヒント情報を注釈として付ける手段と、 前記事前取出しヒント情報および要求情報に基づいて、前記サーバのいずれか
から選択情報を事前に取り出す手段と を含むデータ処理システムを提供する。
[0027] The present invention further provides one or more proxy servers associated with the network.
A data processing system for prefetching selection information from a content server over a network, the server including a server and a client for communicating with the content server and one or more of the proxy servers over a network. Means for requesting information from at least one of the proxy servers; and means for establishing prefetch hint information for the client based on past retrieval or access of the requested information by any of the clients. A data processing system comprising: means for annotating the request information with the prefetching hint information as an annotation; and means for preliminarily extracting selection information from any of the servers based on the prefetching hint information and the request information. I will provide a.

【0028】 好適な実施形態では、要求情報は要求オブジェクトを含み、選択情報は事前取
出し候補オブジェクトを含み、ここで前記プロキシ・サーバの各々およびクライ
アントの少なくとも1つは、主キャッシュと事前取出しキャッシュとの間に少な
くとも論理的分離を有するメモリを含み、前記事前取出しされた選択情報が事前
取出しキャッシュに格納される。
In a preferred embodiment, the request information includes a request object and the selection information includes a prefetch candidate object, wherein each of the proxy servers and at least one of the clients includes a main cache, a prefetch cache, Wherein the prefetched selection information is stored in a prefetch cache.

【0029】 事前取出し手段は、事前取出しキャッシュの空き記憶容量に関して、最も高い
事前取出し値を持つオブジェクトを最初に格納する優先順位構成に基づいて、オ
ブジェクトを事前に取り出し、かつ事前取出しされたオブジェクトを事前取出し
キャッシュに格納することが好ましく、事前取出し値は1つまたは複数のクライ
アントによる事前取出しオブジェクトへの個別または集合参照確率に基づく。特
に、事前取出し値は、事前取出しヒント情報リスト上の事前取出し候補オブジェ
クトが特定のクライアントによってアクセスされる推定アクセス確率、および事
前取出し候補オブジェクトのうちの選択オブジェクトを格納するための必須記憶
容量に基づくオブジェクトのアクセス・コストに基づくことができる。
The prefetching means prefetches the object based on a priority configuration in which the object having the highest prefetch value is stored first with respect to the free storage capacity of the prefetch cache, and deletes the prefetched object. Preferably, the prefetch values are stored in a prefetch cache, based on individual or collective reference probabilities to the prefetch object by one or more clients. In particular, the prefetch value is based on an estimated access probability that the prefetch candidate object on the prefetch hint information list will be accessed by a particular client, and a required storage capacity for storing the selected one of the prefetch candidate objects. It can be based on the access cost of the object.

【0030】 好適な実施形態では、事前取出し手段は、前記事前取出し値を計算するための
計算手段と前記計算手段によって計算された事前取出し値を評価するための評価
手段とを含む事前取出しハンドラを含み、前記計算手段は、事前取出しヒント情
報リスト上の各事前取出しオブジェクト識別子の事前取出し値を計算し、前記評
価手段は、複数の候補事前取出しオブジェクトの事前取出し値を評価し、かつ事
前取出しヒント情報リスト上で最も高い事前取出し値に関連付けられる候補事前
取出しオブジェクトのキャッシングを優先させる。事前取出し手段は、前記プロ
キシ・サーバの少なくとも1つにおける第1事前取出しハンドラと、前記クライ
アントの少なくとも1つにおける第2事前取出しハンドラとを含むことができる
(つまり、階層における異なる/複数の場所で事前取出しを行うことができる)
In a preferred embodiment, the pre-fetching means comprises a pre-fetching handler including a calculating means for calculating the pre-fetching value and an evaluating means for evaluating the pre-fetching value calculated by the calculating means. Wherein the calculating means calculates a prefetched value of each prefetched object identifier on the prefetching hint information list, the evaluating means evaluates a prefetched value of the plurality of candidate prefetched objects, and prefetches. Prioritize caching of candidate prefetched objects associated with the highest prefetched value on the hint information list. The prefetch means may include a first prefetch handler in at least one of the proxy servers and a second prefetch handler in at least one of the clients (ie, at different / multiple locations in a hierarchy). Can be taken out in advance)
.

【0031】 好適な実施形態は、前記クライアントの1つのメモリに格納されるクライアン
ト・オブジェクト要求ハンドラをも含む。このクライアント・オブジェクト要求
ハンドラは、プロキシ・サーバまたはネットワークから要求オブジェクトを要求
する前に、主キャッシュおよび事前取出しキャッシュで要求オブジェクトを探索
する。クライアント・オブジェクト要求ハンドラは、事前取出しオブジェクトが
クライアントによって実際にアクセスされたことを示すサーバまたはサーバへの
事前取出し参照メッセージを生成することによって、オブジェクトが事前取出し
キャッシュ内にあるかどうかをコンテンツ・サーバまたはプロキシ・サーバに通
知する。同様に、前記プロキシ・サーバの少なくとも1つは、要求オブジェクト
が事前取出しキャッシュ内にある場合にキャッシュ・マネージャ・ルーチンを呼
び出した後で、事前取出し参照メッセージを転送するための事前取出し参照メッ
セージ・ハンドラを含むことが好ましい。これにより、たとえ子オブジェクトに
ついて直接交信しなくても、クライアントまたはプロキシ・サーバの事前取出し
キャッシュから得られるので、サーバがアクセス統計の正確な記録を維持できる
ことが確実になる。
A preferred embodiment also includes a client object request handler stored in one of the clients' memories. The client object request handler searches the main cache and prefetch cache for the request object before requesting the request object from the proxy server or the network. The client object request handler determines whether the object is in the prefetch cache by generating a prefetch reference message to the server or server indicating that the prefetch object was actually accessed by the client. Or notify the proxy server. Similarly, at least one of the proxy servers includes a prefetch reference message handler for forwarding the prefetch reference message after invoking the cache manager routine if the request object is in the prefetch cache. It is preferable to include This ensures that the server can maintain an accurate record of access statistics, as it is obtained from the prefetch cache of the client or proxy server, even if it does not communicate directly with the child object.

【0032】 本発明はさらに、要求情報が要求オブジェクトを含み、かつ選択情報が事前取
出し候補オブジェクトを含むデータ処理システム用のコンテンツ・サーバまたは
プロキシ・サーバであって、 親オブジェクト識別子および関連子オブジェクト識別子を格納する統計テーブ
ルであって、親オブジェクトがクライアントによって参照される頻度を表す親オ
ブジェクトの第1カウントを含み、前記親オブジェクトのうちの選択オブジェク
トが参照された後で関連子オブジェクトが参照される頻度を表す子オブジェクト
の第2カウントを含む前記統計テーブルと、 前記統計テーブルの情報に基づいて事前取出しヒント情報リストを生成するた
めの生成手段と を含むサーバを提供する。
The present invention further provides a content server or proxy server for a data processing system in which the request information includes a request object and the selection information includes a prefetch candidate object, wherein the parent object identifier and the related child object identifier. Statistic table that stores a first count of parent objects representing the frequency with which parent objects are referenced by a client, and that related child objects are referenced after a selected one of the parent objects is referenced. There is provided a server comprising: the statistical table including a second count of a child object representing a frequency; and a generating unit configured to generate a prefetching hint information list based on information in the statistical table.

【0033】 一実施形態では、生成手段は統計テーブルから第1カウント、第2カウント、
子オブジェクト識別子、および親オブジェクト識別子の入力を受け入れ、生成手
段は、親オブジェクトとそれらの関連子オブジェクトとの間のアクセス関係を評
価するための評価手段を含み、評価手段は、対応する親オブジェクトへのクライ
アントによる参照の前に子オブジェクトがすぐに後で適切な頻度で参照される場
合、事前取出しヒント情報リストに子オブジェクト識別子を配置する。この適切
な頻度は、対応する親アクセスに対する子アクセスの比に基づくことができる。
一般的に、これは前記親オブジェクト識別子の各々について第1カウントに対す
る第2カウントの比を計算し、この比をヒント閾値と比較し、比がヒント閾値を
超える場合には子オブジェクトと関連親オブジェクトとをグループ化または関連
付けることを含む。
In one embodiment, the generating means comprises a first count, a second count,
Accepting input of a child object identifier and a parent object identifier, the generating means includes evaluating means for evaluating an access relationship between the parent object and their associated child objects, the evaluating means including: If the child object is immediately referenced at a suitable frequency immediately before the client's reference, the child object identifier is placed in the prefetch hint information list. This appropriate frequency may be based on the ratio of child access to corresponding parent access.
Generally, it calculates the ratio of the second count to the first count for each of the parent object identifiers, compares this ratio to a hint threshold, and if the ratio exceeds the hint threshold, the child object and the associated parent object And grouping or associating with.

【0034】 サーバはさらに、実際に要求された子オブジェクトに基づいて統計テーブルを
更新するための統計更新手段を含むことが好ましく、この統計更新手段は最初に
前記親オブジェクトのうちの参照するオブジェクトのアイデンティティを探索し
、参照するオブジェクトまたは参照側(referrer)オブジェクトは実際に要求さ
れた子オブジェクトより前に参照され、実際に要求された子オブジェクトはそれ
に対応する第2カウントを統計テーブルで更新させる。統計テーブルは、事前取
出し参照メッセージ・ハンドラから事前取出し参照メッセージを受け取ることに
よっても更新されなければならない。
[0034] Preferably, the server further comprises statistics updating means for updating the statistics table based on the actually requested child object, said statistics updating means first comprising: The identity searching and referencing or referrer objects are referenced before the actual requested child object, which in turn causes the corresponding second count to be updated in the statistics table. The statistics table must also be updated by receiving a prefetch reference message from the prefetch reference message handler.

【0035】 サーバがプロキシ・サーバである場合、それはさらに、事前取出しヒント情報
リストを受け取り、かつ更新するための事前取出し更新手段を含むことが好まし
い。事前取出し更新手段は第1カウントを第1局所閾カウントと比較し、第1カ
ウントが第1局所閾カウントを超える子オブジェクト識別子のそれぞれについて
生成手段を呼び出す。第1カウントが第1局所閾カウントを超えない場合には、
事前取出し更新手段は元の事前取出しヒント情報リストを維持する。より洗練さ
れた方法では、事前取出し更新手段は第1カウントを第1および第2局所閾カウ
ントと比較し、(i)第1カウントが第1局所閾カウントを超えなければ、元の
事前取出しヒント情報リストを維持し、(ii)第1カウントが第1局所閾カウ
ントを超えるが第2局所閾カウントを超えない場合には、元の事前取出しヒント
情報リストを変更し、(iii)第1カウントが第1および第2局所閾カウント
の両方を超える場合には、元の事前取出しヒント情報リストを交換する。
If the server is a proxy server, it preferably further comprises a prefetch update means for receiving and updating the prefetch hint information list. The prefetch update means compares the first count with the first local threshold count and calls the generating means for each child object identifier whose first count exceeds the first local threshold count. If the first count does not exceed the first local threshold count,
The prefetching update means maintains the original prefetching hint information list. In a more sophisticated method, the prefetch update means compares the first count with the first and second local threshold counts, and (i) if the first count does not exceed the first local threshold count, the original prefetch hint. Maintaining the information list, (ii) if the first count exceeds the first local threshold count but does not exceed the second local threshold count, modify the original prefetch hint information list, and (iii) the first count If both exceed the first and second local threshold counts, exchange the original pre-fetch hint information list.

【0036】 サーバはさらに、要求オブジェクトを要求したより下位のプロキシ・サーバま
たはクライアントに要求オブジェクトを返すためのプロキシ・オブジェクト・ハ
ンドラであって、要求オブジェクトが事前取出しオブジェクトでなければ、要求
オブジェクトを返し、かつそれに従って統計テーブルを更新する前記プロキシ・
オブジェクト・ハンドラと、事前取出しキャッシュを管理するための事前取出し
キャッシュ・マネージャとを含むことが好ましい。したがって、プロキシ・オブ
ジェクト・ハンドラは、オブジェクトが事前取出し要求に従って要求された場合
には、要求したクライアントまたはプロキシ・サーバに事前取出しキャッシュか
ら要求オブジェクトを返し、かつそのオブジェクトに事前取出しキャッシュから
削除可能とマークする。要求オブジェクトが主キャッシュまたは事前取出しキャ
ッシュ内に無ければ、プロキシ・オブジェクト・ハンドラはオブジェクト要求を
別のサーバに送る。要求オブジェクトが事前取出し要求に関連付けられない場合
、および要求オブジェクトが事前取出しキャッシュまたは主キャッシュ内にある
場合には、プロキシ・オブジェクト・ハンドラはそれに従って統計テーブルを更
新する。
The server is further a proxy object handler for returning the request object to a lower order proxy server or client that has requested the request object, and returns the request object if the request object is not a prefetch object. And said proxy updating the statistics table accordingly.
Preferably, it includes an object handler and a prefetch cache manager for managing the prefetch cache. Therefore, the proxy object handler returns the requested object from the prefetch cache to the requesting client or proxy server and allows the object to be deleted from the prefetch cache if the object was requested in accordance with the prefetch request. To mark. If the request object is not in the main cache or the prefetch cache, the proxy object handler sends the object request to another server. If the request object is not associated with a prefetch request, and if the request object is in the prefetch cache or main cache, the proxy object handler updates the statistics table accordingly.

【0037】 別の態様では、本発明は、通信ネットワークを介して1つまたは複数のプロキ
シ・サーバに関連付けられたクライアントが選択オブジェクトを容易に利用でき
るようにするために、コンテンツ・サーバから選択オブジェクトを事前に取り出
すための方法であって、 a)前記プロキシ・サーバの少なくとも1つから要求オブジェクトを要求するス
テップと、 b)クライアントによる要求オブジェクトの過去の検索またはアクセスに基づい
て、対応するクライアントのデータ参照パターンを識別するステップと、 c)データ参照パターンから事前取出しヒント情報リストへの事前取出しヒント
情報を作成するステップと、 d)要求オブジェクトに事前取出しヒント情報を注釈として付けるステップと、
e)事前取出しヒント情報および現在要求されているオブジェクトに基づいて、
前記サーバの少なくとも1つから選択オブジェクトを事前に取り出すステップと
を含む方法を提供する。
[0037] In another aspect, the present invention provides a method for selecting a selected object from a content server to facilitate the availability of the selected object to a client associated with one or more proxy servers via a communication network. A) requesting a request object from at least one of said proxy servers; and b) retrieving a corresponding client based on a past search or access of the request object by the client. Identifying a data reference pattern; c) creating prefetch hint information from the data reference pattern into a prefetch hint information list; d) annotating the request object with the prefetch hint information;
e) Based on the pre-fetch hint information and the currently requested object,
Pre-retrieving a selected object from at least one of said servers.

【0038】 したがって、事前取出しされる選択情報は事前取出し候補オブジェクトを含み
、事前取出しヒント情報を確立するステップはさらに、前記プロキシ・サーバの
階層内の送信ノードに事前取出しヒント情報を確立することを含み、事前取出し
候補オブジェクトは前記プロキシ・サーバの階層を介して受け渡され、階層内の
受信ノードで事前に取り出すための選択情報は事前取出しヒント情報に基づく。
Thus, the prefetched selection information comprises a prefetch candidate object, and the step of establishing the prefetch hint information further comprises establishing the prefetch hint information at a sending node in the hierarchy of the proxy server. Pre-fetch candidate objects are passed through the proxy server hierarchy, and the selection information for pre-fetching at the receiving node in the hierarchy is based on the pre-fetch hint information.

【0039】 一般的に、ネットワークに関連付けられたプロキシ・サーバ階層があり、この
プロキシ・サーバ階層は、他のプロキシ・サーバよりクライアントにより密接に
関連付けられる、より下位のサーバを含む。1つの好適な実施形態では、要求オ
ブジェクトへの局所的参照が存在する場合、および局所レベル・サーバのカウン
トが最小閾カウントを超える場合、事前取出しヒント情報はプロキシ・サーバ階
層を介して更新される。別法として(または追加して)、階層のより上位のキャ
ッシング状態を分析することによって、事前取出しヒント情報を更新することが
できる。階層の最上位はネットワークに最も近接して関連付けられる。
In general, there is a proxy server hierarchy associated with the network, which includes lower-level servers that are more closely associated with clients than other proxy servers. In one preferred embodiment, the prefetch hint information is updated via the proxy server hierarchy if there is a local reference to the request object and if the local level server count exceeds the minimum threshold count. . Alternatively (or in addition), the prefetch hint information can be updated by analyzing the caching state higher in the hierarchy. The top of the hierarchy is associated with the network closest.

【0040】 別の態様では、本発明は、ネットワークに沿ってサーバからクライアントへの
データの流れを強化するための処理システムにおいて、 ネットワークに関連付けられたプロキシ・サーバと、 ネットワークに関連付けられたコンテンツ・サーバと、 前記プロキシ・サーバの1つまたは複数と通信するように構成されたクライア
ントと、 前記プロキシ・サーバの少なくとも1つに格納される統計テーブルであって、
親オブジェクト識別子と関連子オブジェクト識別子を格納し、親オブジェクトが
クライアントによって参照される頻度を表す親オブジェクトの第1カウントを含
み、前記親オブジェクトのうちの選択オブジェクトが参照された後で対応する子
オブジェクトが参照される頻度を表す子オブジェクトの第2カウントを含む前記
統計テーブルと、 事前取出しヒント情報リストを導出するために、第1カウントおよび対応する
第2カウントの入力を受け入れることによって事前取出しヒント情報リストを生
成するための生成手段であって、 前記親オブジェクト識別子のそれぞれについて、第1カウントに対する第2カ
ウントの比を計算するための計算手段と、 比をヒント閾値と比較するための比較手段であって、比がヒント閾値を超える
場合には子オブジェクトと関連親オブジェクトを事前取出しヒント情報リスト上
でグループ化または関連付ける比較手段と、 事前取出しヒント情報およびクライアントによって実際に要求された親オブジ
ェクトに基づいて子オブジェクトを事前に取り出すための事前取出し手段と を含む前記生成手段と を含む処理システムを提供する。
In another aspect, the invention is a processing system for enhancing the flow of data from a server to a client along a network, comprising: a proxy server associated with the network; and a content server associated with the network. A server, a client configured to communicate with one or more of the proxy servers, and a statistics table stored in at least one of the proxy servers.
A parent object identifier and an associated child object identifier, including a first count of parent objects representing a frequency with which the parent object is referenced by the client, the corresponding child object after a selected one of the parent objects is referenced Said statistic table including a second count of child objects representing the frequency with which is referenced, and prefetching hint information by accepting inputs of a first count and a corresponding second count to derive a prefetching hint information list. Generating means for generating a list, for each of the parent object identifiers, calculating means for calculating a ratio of a second count to a first count; and comparing means for comparing the ratio with a hint threshold. And if the ratio exceeds the hint threshold Comparing means for grouping or associating objects and related parent objects on a pre-fetch hint information list; and pre-fetch means for pre-fetching child objects based on the pre-fetch hint information and the parent object actually requested by the client. And a generating system comprising:

【0041】 好適な実施形態では、前記プロキシ・サーバの各々が第1プロセッサ、第1メ
モリ、およびデータを格納するための第1記憶手段を有し、第1メモリは第1主
キャッシュと第1事前取出しキャッシュとの間に少なくとも論理的分離を有し、
コンテンツ・サーバは第2プロセッサ、第2メモリ、およびデータを格納するた
めの第2記憶手段を有し、クライアントの少なくとも1つは第3プロセッサ、第
3メモリ、およびデータを格納するための第3記憶手段を有し、第3メモリは第
2主キャッシュと第2事前取出しキャッシュとの間に少なくとも論理的分離を有
し、事前取出し処理手段は第1事前取出しキャッシュまたは第2事前取出しキャ
ッシュに子オブジェクトを格納する。
In a preferred embodiment, each of the proxy servers has a first processor, a first memory, and first storage means for storing data, wherein the first memory has a first main cache and a first memory. Has at least a logical separation from the prefetch cache,
The content server has a second processor, a second memory, and second storage means for storing data, and at least one of the clients has a third processor, a third memory, and a third memory for storing data. Storage means, the third memory having at least a logical separation between the second main cache and the second prefetch cache, and the prefetch processing means having child storage in the first prefetch cache or the second prefetch cache. Stores objects.

【0042】 好適な実施形態では、事前取出し手段は、事前取出し値を計算するための計算
手段と、計算手段によって計算された事前取出し値を評価するための評価手段と
を含み、前記計算手段は事前取出しヒント情報リスト上の各子オブジェクト識別
子の事前取出し値を計算し、かつ事前取出しヒント情報リスト上で最も高い事前
取出し値を持つ子オブジェクトのキャッシングを優先化し、事前取出し処理手段
は事前取出しキャッシュの空き空間を管理する。
In a preferred embodiment, the pre-fetching means includes calculating means for calculating a pre-fetched value, and evaluating means for evaluating the pre-fetched value calculated by the calculating means, wherein the calculating means includes: The prefetching value of each child object identifier on the prefetching hint information list is calculated, and the caching of the child object having the highest prefetching value on the prefetching hint information list is prioritized. To manage free space.

【0043】 システムはさらに事前取出しヒント情報リストを更新するための事前取出し更
新手段を含み、事前取出し更新手段は第1カウントを第1局所閾カウントおよび
第2局所閾カウントと比較し、第1局所閾カウントは1つのサーバからの統計に
基づき、第2局所閾カウントは別のサーバからの統計に基づき、前記事前取出し
更新手段は、第1カウントが第1局所閾カウントおよび第2局所閾カウントの両
方を超える子オブジェクト識別子の各々に対し生成手段を呼び出し、事前取出し
更新手段は、第1カウントが第1局所閾カウントを超えない場合には元の事前取
出しヒント情報リストを維持することが好ましい。
The system further includes prefetch update means for updating the prefetch hint information list, the prefetch update means comparing the first count with the first local threshold count and the second local threshold count, and updating the first local threshold count. The threshold count is based on statistics from one server, the second local threshold count is based on statistics from another server, and the prefetch and update means is configured to determine that the first count is a first local threshold count and a second local threshold count. Preferably, the generating means is called for each of the child object identifiers exceeding both of them, and the prefetch update means maintains the original prefetch hint information list if the first count does not exceed the first local threshold count. .

【0044】 このシステムは、 統計テーブルを更新するための統計更新手段と、 前記プロキシ・サーバの1つに格納されるプロキシ・オブジェクト・ハンドラ
であって、事前取出しヒント情報リスト更新ルーチンを呼び出し、下位のプロキ
シ・サーバが要求オブジェクトを要求した場合には下位プロキシ・サーバに要求
オブジェクトを返し、要求オブジェクトが事前取出しオブジェクトでない場合に
は要求オブジェクトを返して統計更新手段を呼び出す前記プロキシ・オブジェク
ト・ハンドラと、 前記プロキシ・サーバの1つの関連付けられた事前取出しキャッシュを管理す
るための事前取出しキャッシュ・マネージャであって、下位サーバが要求オブジ
ェクトを要求しなかった場合にプロキシ・オブジェクト・ハンドラに呼び出され
る前記事前取出しキャッシュ・マネージャと、 前記プロキシ・サーバの1つに格納されるプロキシ・オブジェクト要求ハンド
ラであって、オブジェクトが事前取出しキャッシュ内にある場合、およびオブジ
ェクトが事前取出し要求に従って要求された場合には、前記クライアントのうち
の要求クライアントにオブジェクトを返し、かつそのオブジェクトに事前取出し
キャッシュから削除可能とマークし、要求オブジェクトが主キャッシュまたは事
前取出しキャッシュ内に無い場合には別のサーバにオブジェクト要求を送り、要
求オブジェクトが事前取出し要求に関連付けられない場合、および要求オブジェ
クトが事前取出しキャッシュまたは主キャッシュ内にある場合には、統計更新手
段と連絡するプロキシ・オブジェクト要求ハンドラと をさらに含むことが好ましい。
[0044] The system includes a statistics update unit for updating a statistics table, and a proxy object handler stored in one of the proxy servers, which calls a prefetch hint information list update routine and The proxy object handler returns a request object to a lower-level proxy server when the proxy server requests the request object, and returns the request object when the request object is not a prefetched object and calls the statistics update means. A prefetch cache manager for managing an associated prefetch cache of one of said proxy servers, prior to being called by a proxy object handler if a subordinate server did not request a request object. An article prefetch cache manager and a proxy object request handler stored on one of the proxy servers, wherein the object is in a prefetch cache and when the object is requested according to a prefetch request. Returns the object to the requesting client of the clients and marks the object as removable from the prefetch cache, and if the requested object is not in the main cache or the prefetch cache, sends the object request to another server. If the request object is not associated with a prefetch request, and if the request object is in the prefetch cache or the main cache, a proxy object request handler that communicates with the statistics updater is used. It is preferable to include in.

【0045】 また、システムは、 統計テーブルを更新するための統計更新手段と、 前記プロキシ・サーバの1つに格納された事前取出し参照メッセージ・ハンド
ラであって、統計更新手段を呼び出し、要求オブジェクトが事前取出しキャッシ
ュ内にある場合にはキャッシュ・マネージャ・ルーチンを呼び出した後で事前取
出し参照メッセージを転送する前記事前取出し参照メッセージ・ハンドラと をさらに含むことが好ましい。
The system further includes a statistics update unit for updating a statistics table, and a prefetch reference message handler stored in one of the proxy servers, wherein the call unit calls the statistics update unit, and the request object is And a prefetch reference message handler that forwards the prefetch reference message after invoking the cache manager routine if it is in the prefetch cache.

【0046】 本発明はさらに、ネットワークに沿ってサーバからクライアントへのデータの
流れを強化するための処理システムであって、 ネットワークに関連付けられたプロキシ・サーバと、 ネットワークに関連付けられたコンテンツ・サーバと、 1つまたは複数の前記プロキシ・サーバと通信するように構成されたクライア
ントと、 コンテンツ・サーバおよび前記プロキシ・サーバの少なくとも1つに格納され
る統計テーブルであって、親オブジェクト識別子および関連子オブジェクト識別
子を格納し、親オブジェクトがクライアントによって参照される頻度を表す親オ
ブジェクトの第1カウントを含み、前記親オブジェクトのうちの選択オブジェク
トが参照された後で対応する子オブジェクトが時間的に接近して参照される頻度
を表す子オブジェクトの第2カウントを含む前記統計テーブルと、 統計テーブルから第1カウント、第2カウント、子オブジェクト識別子、およ
び親オブジェクト識別子の入力を受け入れる生成手段であって、親オブジェクト
とそれらの関連子オブジェクトとの間のアクセス関係を評価する評価手段を含み
、クライアントによる対応する親オブジェクトへの参照の前に子オブジェクトが
前後して連続的に適切な頻度で参照される場合には、前記評価手段が子オブジェ
クト識別子を事前取出しヒント情報リストに配置するようにした前記生成手段と
、 事前取出しヒント情報およびクライアントによって実際に要求された親オブジ
ェクトに基づいて、子オブジェクトを事前に取り出すための事前取出し手段と を含む処理システムを提供する。
The present invention is further a processing system for enhancing the flow of data from a server to a client along a network, comprising: a proxy server associated with the network; a content server associated with the network; A client configured to communicate with one or more of the proxy servers, and a statistics table stored on at least one of a content server and the proxy server, comprising a parent object identifier and an associated child object. An identifier is stored and includes a first count of the parent object representing a frequency with which the parent object is referenced by the client, and corresponding child objects are brought into close proximity in time after a selected one of the parent objects is referenced. Shows the frequency of reference Generating means for receiving input of a first count, a second count, a child object identifier, and a parent object identifier from the statistical table, the statistical table including a second count of child objects; Evaluation means for evaluating an access relationship between the child object and the parent object before and after the client refers to the corresponding parent object. The generation means for arranging the child object identifier in the pre-fetch hint information list; and a pre-fetch means for pre-fetching the child object based on the pre-fetch hint information and the parent object actually requested by the client. And a processing system including:

【0047】 好適な実施形態では、事前取出し手段はさらに、事前取出しヒント情報リスト
上に識別された子オブジェクトに記憶優先順位を割り当てるための割当手段と、
記憶優先順位に従って子オブジェクトのうちの選択オブジェクトを格納するため
の選択的記憶手段とを含む。割当手段は、事前取出しヒント情報リスト上の子オ
ブジェクトが特定のクライアントによってアクセスされる推定アクセス確率およ
び子オブジェクトのうちの選択オブジェクトを格納するための必須記憶容量に基
づく子オブジェクトのアクセス費用に基づいて、記憶優先順位を割り当てること
が好ましい。
In a preferred embodiment, the pre-fetching means further comprises an assigning means for assigning a storage priority to the child objects identified on the pre-fetching hint information list;
Selective storage means for storing a selected one of the child objects according to the storage priority. The allocating means is based on an estimated access probability that the child object on the pre-fetch hint information list is accessed by a specific client and an access cost of the child object based on a required storage capacity for storing a selected object among the child objects. It is preferable to assign storage priorities.

【0048】 このようにして情報をプロキシ階層で事前に取り出して、クライアントのネッ
トワーク(つまりインターネット)を介してのオブジェクト・アクセス時間を削
減することができる。選択情報をコンテンツ・サーバから事前に取り出して、ネ
ットワークのコンテンツ・サーバに関連付けられたクライアントが選択情報に容
易にアクセスできるようにする。クライアントはネットワークのプロキシ・サー
バに関連付けることが好ましい。クライアントは、プロキシ・サーバの少なくと
も1つから情報を要求する。コンテンツ・サーバは、クライアントによる要求情
報の過去のデータ・アクセス・パターンに基づいて、クライアントの事前取出し
ヒント情報を生成する。コンテンツ・サーバは、要求情報に事前取出しヒント情
報を注釈として付ける。1つまたは複数のプロキシ・サーバは、動的使用統計に
基づいて事前取出しヒント情報を動的に更新することができる。オブジェクトが
プロキシ階層を通過すると、事前取出しヒント情報は、実行された事前取出し動
作、プロキシ階層の上位でのキャッシング状態、および例えば局所的参照パター
ンなどその他の局所的考慮点を反映するように更新される。選択情報は、事前取
出しヒント情報および要求された情報に基づいて、コンテンツ・サーバまたはい
ずれかのプロキシ・サーバから事前に取り出すことができる。参照アクセス確率
および記憶装置上の考慮点に基づいて、事前取出しヒント情報に事前取出し値を
割り当てることができる。事前取出しヒント情報リスト内で最も高い事前取出し
値を持つ選択情報は最初に、かつ潜在的に事前取出しキャッシュがいっぱいにな
るまで、キャッシュに保存される。
In this way, information can be pre-fetched at the proxy layer and the object access time via the client's network (ie, the Internet) can be reduced. The selection information is pre-fetched from the content server so that clients associated with the content server in the network can easily access the selection information. The client is preferably associated with a proxy server on the network. The client requests information from at least one of the proxy servers. The content server generates pre-fetch hint information of the client based on the past data access pattern of the information requested by the client. The content server annotates the request information with prefetching hint information. One or more proxy servers can dynamically update the prefetch hint information based on the dynamic usage statistics. As the object passes through the proxy hierarchy, the prefetch hint information is updated to reflect the prefetch operations performed, the state of caching above the proxy hierarchy, and other local considerations such as local reference patterns. You. The selection information can be pre-fetched from the content server or any proxy server based on the pre-fetch hint information and the requested information. A prefetch value can be assigned to the prefetch hint information based on the reference access probability and storage considerations. The selection information with the highest prefetch value in the prefetch hint information list is stored in the cache first, and potentially until the prefetch cache is full.

【0049】 次に、本発明の好適な実施形態を単なる例として、添付の図面を参照しながら
、詳細に説明する。
The preferred embodiments of the present invention will now be described in detail, by way of example only, with reference to the accompanying drawings.

【0050】[0050]

【発明の実施の形態】BEST MODE FOR CARRYING OUT THE INVENTION

図1は、クライアント22、プロキシ・サーバの階層24、ネットワーク25
、およびコンテンツ・サーバ20を含むデータ処理システムを示す。
FIG. 1 shows a client 22, a hierarchy of proxy servers 24, a network 25.
, And a data processing system including a content server 20.

【0051】 クライアントは、親オブジェクト、子オブジェクト、要求オブジェクト、選択
オブジェクト、ページ、要求情報、および選択情報の形式で情報を要求すること
ができる。親オブジェクトが履歴的に処理された後で1つまたは複数の関連子オ
ブジェクトを要求することができるように、親オブジェクトは子オブジェクトに
関連付けられる。要求オブジェクトは親オブジェクトに類似している一方、選択
オブジェクトは子オブジェクトに類似している。要求オブジェクトとは、1つま
たは複数のクライアントによって実際に要求されるオブジェクトである。一方、
選択オブジェクトとは、要求オブジェクトの後で選択オブジェクトを時間的に接
近して要求することができるように、要求オブジェクトとグループ化されるかま
たはそれに関連付けられるオブジェクトである。要求情報は要求オブジェクト、
親オブジェクト、およびクライアントによって要求されるその他の形式のデータ
を含む。選択情報は子オブジェクト、選択オブジェクト、および事前に取り出す
ことができるその他の形式のデータを含む。
The client can request information in the form of a parent object, a child object, a request object, a selection object, a page, request information, and selection information. Parent objects are associated with child objects so that one or more related child objects can be requested after the parent object has been processed historically. Requested objects are similar to parent objects, while selected objects are similar to child objects. A request object is an object that is actually requested by one or more clients. on the other hand,
A selection object is an object that is grouped with or associated with the request object so that the selection object can be requested in close proximity after the request object. The request information is a request object,
Contains the parent object and other forms of data required by the client. Selection information includes child objects, selection objects, and other forms of data that can be retrieved in advance.

【0052】 クライアント22は、コンテンツ・サーバ20またはプロキシ・サーバ24か
ら情報を要求することができる。しかし、プロキシ・サーバ24は通常、ネット
ワーク25およびコンテンツ・サーバ20に対するクライアント22の仲介者と
して作動する。プロキシ・サーバ24は、プロキシ・サーバ階層が要求情報を含
むかまたは要求されたタスクを完了する能力を持つ場合、コンテンツ・サーバ2
0と接触することなく、クライアント情報要求を満たすことができるので有利で
ある。図1のデータ処理システムは、インターネットに適用することができる。
例えば、コンテンツ・サーバ20はウェブ・サイトを含むことができる一方、ネ
ットワーク25はインターネットを含むことができる。
The client 22 can request information from the content server 20 or the proxy server 24. However, proxy server 24 typically operates as an intermediary for client 22 to network 25 and content server 20. The proxy server 24 may provide the content server 2 if the proxy server hierarchy contains the requested information or has the ability to complete the requested task.
Advantageously, the client information request can be satisfied without contacting 0. The data processing system of FIG. 1 can be applied to the Internet.
For example, content server 20 may include a web site, while network 25 may include the Internet.

【0053】 図1は、データ処理システムの要素間の物理的接続ではなく、論理的接続26
を示す。論理的接続26は、データ処理システム内におけるオブジェクトおよび
要求の情報の流れを表す。論理的接続26は一般的に、プロキシ・サーバ24間
の物理的接続を表すものではない。論理的接続26は、作業量および/またはノ
ードや通信リンク障害などの物理的事象のために変化することがある。異なる種
類のオブジェクトは、クライアント22に到達するまで異なる論理的伝送経路に
従うことがある。
FIG. 1 illustrates logical connections 26 rather than physical connections between elements of a data processing system.
Is shown. Logical connection 26 represents the flow of object and request information within the data processing system. Logical connection 26 generally does not represent a physical connection between proxy servers 24. The logical connections 26 may change due to the amount of work and / or physical events such as node or communication link failures. Different types of objects may follow different logical transmission paths until reaching the client 22.

【0054】 実際問題としてクライアント22およびプロキシ・サーバ24は事実上何個で
も使用することができるが、図1の例は、4つのクライアント22および4つの
階層レベルのプロキシ・サーバ24を備えている。実際には、任意のレベル数の
プロキシ・サーバ階層可能であり、クライアント22はプロキシ・サーバ階層の
どのレベルにでも論理的に接続することができる。例えば、プロキシ・サーバ2
4の階層は単一プロキシ・サーバとすることができる。本発明は単一のクライア
ント22および単一のプロキシ・サーバ24だけで実現することもできる。
While in practice practically any number of clients 22 and proxy servers 24 can be used, the example of FIG. 1 comprises four clients 22 and four hierarchical levels of proxy servers 24. . In fact, any number of levels of proxy server hierarchy is possible, and clients 22 can logically connect to any level of the proxy server hierarchy. For example, proxy server 2
The four tiers can be a single proxy server. The present invention may be implemented with only a single client 22 and a single proxy server 24.

【0055】 図示するように、最上位のプロキシ・サーバは、レベル0のプロキシ・サーバ
30と指定される。「レベル0」は、図1の例における別のプロキシ・サーバに
対する1つのプロキシ・サーバの状態を単に定義するだけの任意の符号である。
最上位プロキシ・サーバはネットワーク25に論理的に接続される。上位プロキ
シ・サーバ21は、下位プロキシ・サーバ23より、ネットワーク25に対して
より近くで論理的に関連付けられる。(したがって、レベル0のプロキシ・サー
バをプロキシ階層の最上位とみなすこの用語法では、レベル0はレベル1より「
高く」、レベル1はレベル2より「高く」、以下同様である。)
As shown, the top-level proxy server is designated as level 0 proxy server 30. "Level 0" is any symbol that simply defines the state of one proxy server relative to another proxy server in the example of FIG.
The top-level proxy server is logically connected to the network 25. The upstream proxy server 21 is closer and logically associated with the network 25 than the lower proxy server 23. (Thus, in this terminology where a level 0 proxy server is considered the top of the proxy hierarchy, level 0 is more "
High ", level 1 is" higher "than level 2, and so on. )

【0056】 レベル1の第1プロキシ・サーバ35および第2プロキシ・サーバ37は、レ
ベル0のプロキシ・サーバ30に論理的に結合される。レベル1の第1プロキシ
・サーバ35は、レベル2の第1プロキシ・サーバ40および第2プロキシ・サ
ーバ43に接続される。レベル2の第1プロキシ・サーバ40は、レベル3の第
1プロキシ・サーバ50および第2プロキシ・サーバ55に論理的に結合される
The first proxy server 35 and the second proxy server 37 at the level 1 are logically coupled to the proxy server 30 at the level 0. The first proxy server 35 of level 1 is connected to the first proxy server 40 and the second proxy server 43 of level 2. Level 2 first proxy server 40 is logically coupled to level 3 first proxy server 50 and second proxy server 55.

【0057】 クライアント22は、第1クライアント600、第2クライアント603、第
3クライアント700、および第4クライアント703を含む。第1クライアン
ト600および第2クライアント603は、レベル3の第1プロキシ・サーバ5
0に論理的に連結される。第3クライアント700および第4クライアント70
3は、レベル3の第2プロキシ・サーバ55に論理的に連結される。
The client 22 includes a first client 600, a second client 603, a third client 700, and a fourth client 703. The first client 600 and the second client 603 are the first level 3 proxy server 5
Logically connected to 0. Third client 700 and fourth client 70
3 is logically linked to the second proxy server 55 at level 3.

【0058】 今から、データ処理システムを第2クライアント603の観点から説明する。
第2クライアント603は、そのすぐ上のレベルのプロキシに連結される。図示
するように、すぐ上のレベルのプロキシはレベル3の第1プロキシ50である。
次いで、第2クライアント603はレベル2の第1プロキシ・サーバ40、レベ
ル1の第1プロキシ・サーバ35、およびレベル0のプロキシ・サーバ30にそ
れぞれ連結される。第2クライアント603は、ネットワーク25を介して様々
なコンテンツ・サーバ20にアクセスすることができる。第2クライアント60
3の一般的な通信経路はすぐ上のレベルのプロキシ(すなわちレベル3の第1プ
ロキシ・サーバ50)を経由するが、第2クライアント603またはより下位の
プロキシは、その他のより上位のプロキシ・サーバ24またはネットワーク25
に直接通信することができる。第2クライアント603は、キャッシングを管理
するためにそれ自身のクライアント・プロキシを有することもできる。
Now, the data processing system will be described from the viewpoint of the second client 603.
The second client 603 is connected to the next higher level proxy. As shown, the next higher level proxy is a level 3 first proxy 50.
Next, the second client 603 is connected to the first proxy server 40 at level 2, the first proxy server 35 at level 1, and the proxy server 30 at level 0, respectively. The second client 603 can access various content servers 20 via the network 25. Second client 60
The third general communication path is via the next higher level proxy (ie, the first level 3 proxy server 50), while the second client 603 or lower level proxy is the other higher level proxy server. 24 or network 25
Can communicate directly. The second client 603 can also have its own client proxy to manage caching.

【0059】 第2クライアント603の観点からは、特定のプロキシ・サーバはそのプロキ
シ階層の一部ではない。例えば、レベル3の第2プロキシ・サーバ55、レベル
2の第2プロキシ・サーバ43、およびレベル1の第2プロキシ・サーバ37は
、第2クライアントのプロキシ・サーバ階層の一部ではない。
From the perspective of the second client 603, a particular proxy server is not part of its proxy hierarchy. For example, level three second proxy server 55, level two second proxy server 43, and level one second proxy server 37 are not part of the second client proxy server hierarchy.

【0060】 クライアント22は、パーソナル・コンピュータ、ワークステーション、セッ
ト・トップ・ボックスなどを含むことができるが、それらに限定されない。ネッ
トワーク25は、インターネット、ワールド・ワイド・ウェブ、イントラネット
、ローカル・エリア・ネットワーク(LAN)などを含むことができるが、それ
らに限定されない。
[0060] The client 22 may include, but is not limited to, a personal computer, a workstation, a set top box, and the like. Network 25 may include, but is not limited to, the Internet, the World Wide Web, an intranet, a local area network (LAN), and the like.

【0061】 プロキシ・サーバ24およびコンテンツ・サーバ20は、市販されている様々
なコンピュータを含むことができる。例えば、プロキシ・サーバ24は、IBM
コーポレイションから販売されているインターネット・コネクション・サーバ(
ICS)として実現することができる。同様に、コンテンツ・サーバ20は、ロ
ータス・ゴー・ウェブ・サーバ、ロータス・ドミノ・サーバ、または類似物(同
じくIBMコーポレイションから市販)として実現することができる。プロキシ
・サーバ24またはコンテンツ・サーバ20は、S/390 SYSPLEX、
SP2、またはRS/6000ワークステーション(同じくIBMコーポレイシ
ョンから市販)などの製品をそれらに限定することなく含む任意の計算ノードで
実行することができる。要するに、プロキシ・サーバ24またはコンテンツ・サ
ーバ20は、ワールド・ワイド・ウェブ・ページへのアクセス、リモート・ファ
イル転送、電子メール、および取引サポートをクライアント22に提供できる任
意の汎用コンピュータおよび関連ソフトウェアを含むことができる。
The proxy server 24 and the content server 20 can include various commercially available computers. For example, the proxy server 24 uses IBM
Internet Connection Server sold by Corporation (
ICS). Similarly, content server 20 may be implemented as a Lotus Go Web server, a Lotus Domino server, or the like (also commercially available from IBM Corporation). The proxy server 24 or the content server 20 uses S / 390 SYSPLEX,
It can be run on any compute node including, but not limited to, a product such as SP2, or an RS / 6000 workstation (also available from IBM Corporation). In summary, proxy server 24 or content server 20 includes any general-purpose computer and associated software that can provide access to world wide web pages, remote file transfer, e-mail, and transaction support to client 22. be able to.

【0062】 図1のデータ処理システムは、従来のプロキシ階層の属性を使用してデータ転
送効率を維持することができる。例えば、要求オブジェクトが下位プロキシ・サ
ーバで局所的に入手できない場合、入手できないオブジェクトの要求は次の上位
プロキシに行われる。この上位プロキシがそのキャッシュ・メモリ内のそのオブ
ジェクトを以前に保存している場合、この上位プロキシは下位プロキシ・サーバ
を介してクライアントへ要求オブジェクトを下げ渡す。そうでなければ、この上
位プロキシ・サーバは次に高い上位プロキシからオブジェクトを獲得しようとす
る。ひとたび要求オブジェクトを獲得すると、それは下位プロキシまたはオブジ
ェクトを要求したクライアントまで下げ渡される。
The data processing system of FIG. 1 can maintain data transfer efficiency using the attributes of the conventional proxy layer. For example, if the request object is not available locally at the lower proxy server, the request for the unavailable object is made to the next higher proxy. If the upstream proxy has previously stored the object in its cache memory, the upstream proxy hands down the requested object to the client via the downstream proxy server. Otherwise, this upstream proxy server will try to get the object from the next higher upstream proxy. Once the request object is obtained, it is passed down to the lower level proxy or client that requested the object.

【0063】 図2は、図1に示したデータ処理システムのより詳細な例を示す。このデータ
処理システムはプロキシ・サーバ24、コンテンツ・サーバ20、ネットワーク
25、およびクライアント22を含む。データ処理システムは、事前取出しユニ
ット250、統計テーブル261、統計更新ユニット252、主キャッシュ29
7、および事前取出しキャッシュ298を含むことが好ましい。
FIG. 2 shows a more detailed example of the data processing system shown in FIG. The data processing system includes a proxy server 24, a content server 20, a network 25, and a client 22. The data processing system includes a prefetch unit 250, a statistics table 261, a statistics update unit 252, and a main cache 29.
7, and a prefetch cache 298.

【0064】 事前取出しユニット250は、プロキシ・サーバ24内の第1事前取出しハン
ドラ248およびクライアント22内の第2事前取出しハンドラ241を含むこ
とが好ましい。統計テーブル261は、プロキシ・サーバ24に関連付けられた
第1統計テーブル293およびコンテンツ・サーバ20に関連付けられた第2統
計テーブル267を含む。統計更新ユニット252は、第1統計テーブル293
を更新するための第1更新統計ユニット264、および第2統計テーブル267
を更新するための第2更新統計ユニット269を含む。主キャッシュ297は、
各プロキシ・サーバ24内の第1主キャッシュ294および各クライアント22
内の第2主キャッシュ246を含む。事前取出しキャッシュ298は、プロキシ
・サーバ24内の第1事前取出しキャッシュ296およびクライアント22内の
第2事前取出しキャッシュ249を含む。
The prefetch unit 250 preferably includes a first prefetch handler 248 in the proxy server 24 and a second prefetch handler 241 in the client 22. The statistics table 261 includes a first statistics table 293 associated with the proxy server 24 and a second statistics table 267 associated with the content server 20. The statistics update unit 252 includes a first statistics table 293
Update statistic unit 264 for updating, and second statistic table 267
And a second update statistics unit 269 for updating. The main cache 297 is
First main cache 294 in each proxy server 24 and each client 22
Within the second main cache 246. The prefetch cache 298 includes a first prefetch cache 296 in the proxy server 24 and a second prefetch cache 249 in the client 22.

【0065】 プロキシ・サーバ24は、ネットワーク25を介して要求を満たすことができ
る計算ノードである。プロキシ・サーバ24は第1プロセッサ280、第1メモ
リ290、および第1記憶装置281を含む。第1メモリ290は、例えばラン
ダム・アクセス・メモリ(RAM)を含むことができる。第1記憶装置281は
、例えば直接アクセス記憶装置(DASD)を含むことができる。第1メモリ2
90は、コンピュータ実行可能コードとして実現されるプロキシ・サーバ論理2
95を格納する。プロキシ・サーバ論理295は、第1プロセッサ280によっ
て実行するために、第1記憶装置281から第1メモリ290へロードされる。
プロキシ・サーバ論理295の動作の詳細は図11に示す。
The proxy server 24 is a computing node that can satisfy a request via the network 25. The proxy server 24 includes a first processor 280, a first memory 290, and a first storage device 281. The first memory 290 can include, for example, a random access memory (RAM). The first storage device 281 may include, for example, a direct access storage device (DASD). First memory 2
90 is a proxy server logic 2 implemented as computer executable code
95 is stored. Proxy server logic 295 is loaded from first storage 281 to first memory 290 for execution by first processor 280.
Details of the operation of the proxy server logic 295 are shown in FIG.

【0066】 プロキシ・サーバ論理295は、プロキシ・オブジェクト要求ハンドラ283
、プロキシ・オブジェクト・ハンドラ284、第1事前取出しハンドラ248、
事前取出し参照メッセージ・ハンドラ285、事前取出し更新手段291、第1
更新統計ルーチン264、第1統計テーブル293、第1主キャッシュ294、
および第1事前取出しキャッシュ296を含む。
The proxy server logic 295 controls the proxy object request handler 283
, Proxy object handler 284, first prefetch handler 248,
Pre-fetch reference message handler 285, pre-fetch update means 291, first
Update statistics routine 264, first statistics table 293, first main cache 294,
And a first prefetch cache 296.

【0067】 プロキシ・オブジェクト要求ハンドラ283の動作の詳細は図12に示す。プ
ロキシ・オブジェクト・ハンドラ284の動作の詳細は図14に示す。事前取出
し参照メッセージ・ハンドラ285の動作は図13に示す。統計更新ユニット(
つまり第1更新統計ルーチン)の動作の詳細は図6に示す。
FIG. 12 shows details of the operation of the proxy object request handler 283. Details of the operation of the proxy object handler 284 are shown in FIG. The operation of the prefetch reference message handler 285 is shown in FIG. Statistics update unit (
That is, details of the operation of the first update statistical routine) are shown in FIG.

【0068】 事前取出しユニット250(つまり第1事前取出しハンドラ248)の動作は
、図9に詳細に示す。事前取出し更新ユニット291または事前取出しヒント情
報更新ルーチンの動作は、図15に示す。プロキシ・サーバ論理295は、第1
主キャッシュ294および第1事前取出しキャッシュ296を維持する。
The operation of the prefetch unit 250 (ie, the first prefetch handler 248) is shown in detail in FIG. The operation of the pre-fetching update unit 291 or the pre-fetching hint information updating routine is shown in FIG. The proxy server logic 295 determines the first
Main cache 294 and first prefetch cache 296 are maintained.

【0069】 コンテンツ・サーバ20は、ネットワーク25を介して要求を満たすことがで
きる計算ノードである。コンテンツ・サーバ20は第2プロセッサ260、第2
メモリ263、および第2記憶装置265を含む。第2メモリ263は、例えば
ランダム・アクセス・メモリ(RAM)を含むことができる。第2記憶装置26
5は、例えば直接アクセス記憶装置(DASD)を含むことができる。第2メモ
リ263は、コンテンツ・サーバ論理268またはコンテンツ・サーバ・ソフト
ウェアを格納する。
The content server 20 is a computing node that can satisfy the request via the network 25. The content server 20 includes a second processor 260 and a second
A memory 263 and a second storage device 265 are included. The second memory 263 can include, for example, a random access memory (RAM). Second storage device 26
5 may include, for example, a direct access storage device (DASD). Second memory 263 stores content server logic 268 or content server software.

【0070】 コンテンツ・サーバ論理268の動作については、図5に関連して後でより詳
細に示す。コンテンツ・サーバ論理268は、第2プロセッサ260によって実
行するために、第2記憶装置265から第2メモリ263へロードされるコンピ
ュータ実行可能コードとして実現される。コンテンツ・サーバ論理268は、第
2統計テーブル267、第2統計テーブル267を更新するための第2更新統計
ユニット269、および事前取出しヒント情報を生成するための生成ユニット2
66を含む。第2統計テーブル267は、クライアントによって要求された情報
に関するデータ、および要求された情報に関連付けられた潜在的事前取出し情報
を格納する。統計テーブル261は、クライアントの実際の参照動作に基づく事
前取出しヒント情報の生成に貢献する。統計テーブル261の詳細は、図4に示
す。
The operation of the content server logic 268 is described in more detail below in connection with FIG. Content server logic 268 is implemented as computer-executable code that is loaded from second storage 265 into second memory 263 for execution by second processor 260. The content server logic 268 includes a second statistics table 267, a second update statistics unit 269 for updating the second statistics table 267, and a generation unit 2 for generating prefetch hint information.
66. The second statistics table 267 stores data regarding the information requested by the client, and potential prefetch information associated with the requested information. The statistics table 261 contributes to generation of prefetching hint information based on an actual reference operation of the client. Details of the statistics table 261 are shown in FIG.

【0071】 第2更新統計ユニット269の動作は、図6に関連してより詳細に示す。生成
ユニット266は、第2統計テーブル267内の情報および要求情報から事前取
出しヒント情報を生成する。生成ユニット266は、図7に示すように事前取出
しヒント情報(PHI)生成ルーチンとして実現することができる。
The operation of the second update statistics unit 269 is shown in more detail in connection with FIG. The generation unit 266 generates pre-fetch hint information from the information in the second statistical table 267 and the request information. The generation unit 266 can be implemented as a pre-fetch hint information (PHI) generation routine as shown in FIG.

【0072】 クライアント22は、第3プロセッサ240、第3メモリ245、および第3
記憶装置242を含むことが好ましい。第3メモリ245は、例えばランダム・
アクセス・メモリを含むことができる。第3記憶装置242は、例えば直接アク
セス記憶装置(DASD)を含むことができる。第3メモリ245は、クライア
ント論理244またはクライアント・ソフトウェアを格納する。クライアント論
理244の動作は後で、図8に関連してより詳細に示す。クライアント論理24
4はコンピュータ実行可能コードとして実現され、これは、第3プロセッサ24
0によって実行するために、第3記憶装置242から第3メモリ245へロード
される。
The client 22 includes a third processor 240, a third memory 245, and a third
Preferably, the storage device 242 is included. The third memory 245 includes, for example, a random
An access memory can be included. The third storage device 242 may include, for example, a direct access storage device (DASD). Third memory 245 stores client logic 244 or client software. The operation of the client logic 244 will be described later in more detail in connection with FIG. Client logic 24
4 is implemented as computer-executable code, which comprises a third processor 24
0 to be loaded from the third storage 242 into the third memory 245 for execution.

【0073】 クライアント論理244は、クライアント・オブジェクト要求ハンドラ247
、第2事前取出しハンドラ241、第2主キャッシュ246、および第2事前取
出しキャッシュ249を含む。クライアント・オブジェクト要求ハンドラ247
は、第2主キャッシュ246、第2事前取出しキャッシュ249、プロキシ・サ
ーバ24、またはコンテンツ・サーバ20からクライアントのために要求オブジ
ェクトを獲得する。クライアント・オブジェクト要求ハンドラ247の動作の詳
細は、図10に示す。
The client logic 244 is a client object request handler 247
, A second prefetch cache 241, a second main cache 246, and a second prefetch cache 249. Client object request handler 247
Obtains the requested object for the client from the second main cache 246, the second prefetch cache 249, the proxy server 24, or the content server 20. The details of the operation of the client object request handler 247 are shown in FIG.

【0074】 クライアント論理244は、第2主キャッシュ246および第2事前取出しキ
ャッシュ249を維持する。第2主キャッシュ246は、頻繁に参照されるオブ
ジェクトを格納するために使用される一方、第2事前取出しキャッシュ249は
、オブジェクトが実際に参照される前にそれらを格納するために使用される。事
前取出しオブジェクトとは、参照オブジェクトに関連して直前または以前にまだ
参照されていないオブジェクトである。好適な実施形態では、主キャッシュ29
7は従来のLRU(最低使用頻度)アルゴリズムによって管理される。その他の
任意の置換戦略を適用して主キャッシュ297を維持することができることも当
業者なら理解されよう。
The client logic 244 maintains a second main cache 246 and a second prefetch cache 249. The second primary cache 246 is used to store frequently referenced objects, while the second prefetch cache 249 is used to store objects before they are actually referenced. A pre-fetched object is an object that has not been previously or previously referenced in relation to a reference object. In the preferred embodiment, the primary cache 29
7 is managed by a conventional LRU (least frequently used) algorithm. Those skilled in the art will also appreciate that any other replacement strategy can be applied to maintain the main cache 297.

【0075】 主キャッシュ297および事前取出しキャッシュ298は論理的に分離するこ
とができる。主キャッシュ297の実際に参照されたオブジェクトから事前取出
しオブジェクトを論理的に分離することは、事前取出しオブジェクトが記憶空間
を多く取り過ぎるのを防止する。論理的に分離された事前取出しキャッシュと主
キャッシュのこの目的を達成するために、様々な代替方法が利用できる。例えば
単一キャッシュは、事前取出しオブジェクトの数に上限を課し、かつ/または事
前取出しオブジェクトによって占有される空間に上限を課すことができる。主キ
ャッシュ297および事前取出しキャッシュ298は、異なる目標をサポートす
るように意図されている。主キャッシュ297は、繰り返し参照される潜在的可
能性を持った人気のあるオブジェクトを保存することになっている。事前取出し
キャッシュ298は、特定のブラウジング・セッションで次に参照される可能性
が最も高いオブジェクトを事前に取り出すことによって、そのセッションをサポ
ートするために使用されるだけである。好適な実施形態では、階層の下位ノード
が高位ノードの事前取出しキャッシュ内にあるオブジェクトに対する事前取出し
要求を発行すると、そのオブジェクトは下位ノードに下げ渡され、事前取出しの
目的が達成されたので高位ノードの事前取出しキャッシュ298から削除可能と
いう印が付けられる。事前取出しオブジェクトが実際に参照されると、主キャッ
シュ297の管理方針によって、それを主キャッシュ297に移すことができる
。LRU置換方針を使用する好適な実施形態では、一度参照された事前取出しオ
ブジェクトは主キャッシュに移される。
The main cache 297 and the prefetch cache 298 can be logically separated. Logically separating prefetched objects from the actual referenced objects in main cache 297 prevents the prefetched objects from taking too much storage space. Various alternatives are available to achieve this goal of a logically separate prefetch cache and main cache. For example, a single cache may impose an upper limit on the number of prefetched objects and / or impose an upper limit on the space occupied by prefetched objects. Main cache 297 and prefetch cache 298 are intended to support different goals. The main cache 297 is to store popular objects that have the potential to be repeatedly referenced. The prefetch cache 298 is only used to support a particular browsing session by prefetching the object that is most likely to be referenced next in that session. In a preferred embodiment, when a lower node of the hierarchy issues a prefetch request for an object in the higher node's prefetch cache, the object is dropped down to the lower node and the higher node Are marked as deletable from the prefetch cache 298. When a prefetched object is actually referenced, it can be moved to the main cache 297 according to the management policy of the main cache 297. In a preferred embodiment using the LRU replacement policy, once fetched prefetched objects are moved to the main cache.

【0076】 事前取出しキャッシュ298から主キャッシュ297へのオブジェクトの移動
を許可するために、代替基準を考案することができる。エイブラムス他の「キャ
ッシング・プロキシ:限界と潜在的可能性(Cashing Proxies: Limitation and
Potentials)」(第4回国際ワールド・ワイド・ウェブ会議1996年会報)で
、意思決定プロセスにおいてオブジェクトのサイズを考慮に入れる幾つかのキャ
ッシュ置換方針が考察されている。他のキャッシュ置換戦略も当業者には知られ
ている。
Alternative criteria can be devised to allow the movement of objects from the prefetch cache 298 to the main cache 297. Abrams et al., "Caching Proxies: Limitation and Potential"
Potentials) (Report of the 4th International World Wide Web Conference 1996) discusses several cache replacement policies that take into account the size of objects in the decision-making process. Other cache replacement strategies are known to those skilled in the art.

【0077】 図3は、コンテンツ・サーバ20またはプロキシ・サーバ階層からクライアン
トのためにデータを動的に事前に取り出すための方法を示す流れ図である。最初
に、ブロック100で、クライアントはプロキシ・サーバまたはコンテンツ・サ
ーバ20から情報を要求する。第2に、ブロック102で、コンテンツ・サーバ
20およびプロキシ・サーバにおける履歴データ・アクセスまたはデータ参照の
パターンが識別される。実際には、ブロック100およびブロック102を完了
する順序は逆にすることができる。
FIG. 3 is a flowchart illustrating a method for dynamically pre-fetching data for a client from a content server 20 or proxy server hierarchy. Initially, at block 100, a client requests information from a proxy server or content server 20. Second, at block 102, patterns of historical data access or data reference at the content server 20 and the proxy server are identified. In practice, the order of completing blocks 100 and 102 can be reversed.

【0078】 第3に、ブロック104で、コンテンツ・サーバ20は、ブロック102で識
別されたデータ参照パターンに基づいて、要求情報への関連アクセスに関する事
前取出しヒント情報(PHI)を生成する。第4に、ブロック105で、事前取
出しヒント情報を要求情報に注釈として付けることができる。例えば、事前取出
しヒント情報は、要求情報(つまりオブジェクト)に付加されたメタ・データと
して伝達することができる。事前取出しヒント情報を確立または生成するステッ
プに関して、コンテンツ・サーバ20は多数の並行ユーザまたはクライアントか
ら使用/参照パターンを追跡する。実際には、コンテンツ・サーバ20は、どの
オブジェクト・グループが要求情報または要求オブジェクトに関連付けられるか
を決定する。コンテンツ・サーバ20は事前取出しヒント情報(PHI)を生成
して、要求オブジェクトに提供する。事前取出しステップで、またはその直前に
、プロキシ・サーバは局所的考慮点に照らしてPHIを解釈して、どの選択オブ
ジェクトを事前に取り出すかを決定することができる。
Third, at block 104, the content server 20 generates prefetch hint information (PHI) for related access to the request information based on the data reference pattern identified at block 102. Fourth, at block 105, pre-fetch hint information may be annotated with the request information. For example, the pre-fetch hint information can be transmitted as meta data added to the request information (ie, the object). Regarding the step of establishing or generating prefetch hint information, the content server 20 tracks usage / reference patterns from multiple concurrent users or clients. In effect, the content server 20 determines which object group is associated with the request information or request object. The content server 20 generates prefetch hint information (PHI) and provides it to the request object. At or shortly before the prefetch step, the proxy server can interpret the PHI in light of local considerations to determine which selected objects to prefetch.

【0079】 第5に、ブロック106で、要求情報がプロキシ・サーバ階層内を通過すると
、事前取出しヒント情報が更新される。ブロック106における更新は、実行さ
れる事前取出し動作および上位階層におけるキャッシング状態、ならびに例えば
局所的参照パターンなどその他の局所的考慮点を反映する。プロキシ・サーバは
、オブジェクトを次の(下位)レベルのプロキシまたはクライアント・ステーシ
ョンにオブジェクトを渡す前に、その事前取出し決定および様々な局所的考慮点
を反映するようにPHIを変更することができる。オブジェクトがプロキシ階層
内を通過すると、送信ノードは初期PHIを設定する一方、受信ノードは初期P
HIから最終PHIを導出することができる。最終PHIは、要求されたオブジ
ェクトに基づいてどの選択オブジェクトを事前に取り出すかを決定する。事前取
出し動作および決定は送信側で起動ではなく、受信側で起動される。
Fifth, at block 106, as the request information passes through the proxy server hierarchy, the prefetch hint information is updated. The update at block 106 reflects the prefetch operation to be performed and the caching state at higher levels, as well as other local considerations, such as local reference patterns. The proxy server can modify the PHI to reflect its pre-fetching decisions and various local considerations before passing the object to the next (lower) level proxy or client station. When an object passes through the proxy hierarchy, the sending node sets the initial PHI while the receiving node sets the initial PHI.
The final PHI can be derived from the HI. The final PHI determines which selected objects to prefetch based on the requested objects. Pre-fetch operations and decisions are triggered at the receiving end, not at the transmitting end.

【0080】 最後に、ブロック108で、事前取出しヒント情報および要求情報に基づいて
、選択情報が事前取出しされる。プロキシ・サーバまたはクライアントは、受信
したオブジェクト内のPHI情報、局所的に維持される参照情報(利用可能な場
合)、および例えば空き記憶容量やアクセス時間などその他の局所的考慮点に基
づいて、PHIに指定されたオブジェクトのサブセットを事前に取り出すかどう
かを決定する。
Finally, at block 108, the selection information is pre-fetched based on the pre-fetch hint information and the request information. The proxy server or client may use the PHI information in the received object based on the PHI information, locally maintained reference information (if available), and other local considerations such as free storage space and access time. Determines whether to prefetch a subset of the objects specified in.

【0081】 ブロック104における事前取出しヒント情報の生成は、PICSプロトコル
またはPICS互換性フォーマットを使用することが好ましい(下記参照)。ブ
ロック104で生成されたPHIは、キャッシュに保存されたオブジェクトが要
求されたときに、そのオブジェクトのPHI情報を調べて適切な事前取出し動作
を起動することができるように、各々のキャッシュされるオブジェクトと一緒に
そのメタ・データの一部として格納される。PHI情報は、PICSプロトコル
により提供することができる。PICSプロトコルは、各PHIオブジェクトの
重大性および例えばサイズなどのその特性、ならびに高い階層のキャッシング状
態に関する情報を提供する。
The generation of prefetch hint information in block 104 preferably uses the PICS protocol or PICS compatible format (see below). The PHI generated at block 104 is used to store each cached object so that when the cached object is requested, the PHI information for that object can be looked up and appropriate prefetch operations can be triggered. Is stored as part of the meta data together with the PHI information can be provided by the PICS protocol. The PICS protocol provides information about the severity of each PHI object and its characteristics, such as, for example, size, as well as higher-level caching state.

【0082】 事前取出しヒント情報の更新は、プロキシ・サーバ階層を通して行うことがで
きる。プロキシ・サーバは局所情報を収集し、事前取出し決定をプロキシ階層の
下方に配付または分散することができる。さらに、どの中間プロキシがオブジェ
クトを事前に取り出したかの情報は、記憶場所および帯域幅に使用を最適化する
ために、下位プロキシおよびクライアント・ステーションの事前取出し決定に対
し暗黙の意味を含むことがある。
Updating of the pre-fetch hint information can be performed through the proxy server hierarchy. The proxy server can collect local information and distribute or distribute pre-fetch decisions down the proxy hierarchy. Further, the information of which intermediate proxies have pre-fetched the objects may have implicit meaning to the pre-fetching decisions of lower-level proxies and client stations in order to optimize use for storage location and bandwidth.

【0083】 プロキシ・サーバ階層内のプロキシ・サーバは、相互に協力してレシーバ指向
の事前取出し決定を提供する。事前取出し決定は、各プロキシおよびクライアン
トによって協力して行われる。メタ情報の形式の事前取出しヒント情報は、要求
オブジェクトの注釈になる(つまり付加される)。事前取出しヒント情報は、潜
在的事前取出し候補に関する情報を提供する。中間プロキシ・サーバは、局所的
状態に基づいてメタ情報または事前取出しヒント情報を変更することがあり、後
でオブジェクトを参照したときに事前取出しをトリガすることができるように、
オブジェクトがキャッシュに保存されるときにそれと共にメタ情報を格納する。
The proxy servers in the proxy server hierarchy work together to provide receiver-oriented pre-fetch decisions. Prefetching decisions are made jointly by each proxy and client. The pre-fetch hint information in the form of meta information becomes an annotation (ie, is appended) to the request object. Prefetch hint information provides information about potential prefetch candidates. The intermediate proxy server may change the meta-information or pre-fetch hint information based on local state, so that pre-fetch can be triggered when referencing the object later.
Stores meta information with the object when it is stored in the cache.

【0084】 図4は、統計テーブル261のデータ・フォーマットを示す。統計テーブル2
61は一般的に、第1統計テーブル293または第2統計テーブル267のいず
れかを指すものとする。1つまたは複数のプロキシ・サーバ24が第1統計テー
ブル293を維持する。コンテンツ・サーバ20は第2統計テーブル267を維
持する。第1統計テーブル293および第2統計テーブル267のフォーマット
は、プロキシ・サーバ階層内の様々なプロキシ・サーバにおける統計テーブル2
61の更新を促進するために、実質的に類似または同一であることが好ましい。
統計テーブル261は、統計テーブル261が関連付けられたプロキシ・サーバ
またはコンテンツ・サーバ20の観点から、実際のビューア参照動作に基づいて
事前取出しヒント情報(PHI)を提供するのに役立つ。統計テーブル261は
、プロキシ・サーバ階層内でそれより下の全部の到達可能なクライアントの参照
を観察することができる。
FIG. 4 shows a data format of the statistics table 261. Statistics table 2
61 generally refers to either the first statistics table 293 or the second statistics table 267. One or more proxy servers 24 maintain a first statistics table 293. The content server 20 maintains a second statistical table 267. The format of the first statistic table 293 and the second statistic table 267 is the same as that of the statistic table 2 in various proxy servers in the proxy server hierarchy.
Preferably, they are substantially similar or identical to facilitate updating of 61.
The statistics table 261 serves to provide prefetch hint information (PHI) based on actual viewer browsing behavior from the perspective of the proxy server or content server 20 with which the statistics table 261 is associated. The statistics table 261 can observe all reachable client references below it in the proxy server hierarchy.

【0085】 例えば、図1で、レベル1の第1プロキシ・サーバ50内の第1統計テーブル
293は、第1クライアント600および第2クライアント603の集合データ
・アクセス動作を追跡する。一方、レベル3の第2プロキシ・サーバ55内の第
1統計テーブル293は、第3クライアント700および第4クライアント70
3の集合データ・アクセス動作を追跡する。レベル2の第1プロキシ・サーバ4
0内の第1統計テーブルは、第1クライアント600、第2クライアント603
、第3クライアント700、および第4クライアント703の集合動作を追跡す
る。レベル3の第1プロキシ・サーバ50など下位プロキシは、クライアント6
00の関心をよりよく追跡することができるかもしれないが、下位プロキシは、
充分な標本規模のクライアントから意味のある事前取出しヒント情報(PHI)
を提供するのに充分な参照統計を得ることはできないかもしれない。
For example, in FIG. 1, the first statistics table 293 in the first proxy server 50 at level 1 tracks the aggregate data access operation of the first client 600 and the second client 603. On the other hand, the first statistical table 293 in the second proxy server 55 at the level 3 indicates that the third client 700 and the fourth client 70
3 aggregate data access operations. Level 2 first proxy server 4
The first statistical table in 0 is the first client 600, the second client 603
, The third client 700, and the fourth client 703. Lower-level proxies such as the first proxy server 50 at level 3
00 may be able to better track the interest, but the lower level proxy is
Significant advance retrieval hint information (PHI) from clients of sufficient sample size
May not be able to get enough reference statistics to provide

【0086】 好適な実施形態では、コンテンツ・サーバ20からオブジェクトOが要求され
ると、サーバ20は、その第2統計テーブル267内の情報に基づいて、初期事
前取出しヒント情報PHIを提供する。オブジェクトOへの充分な局所的参照が
あれば、オブジェクトOがプロキシ階層の下方に渡されるときに、プロキシ・サ
ーバ24はクライアント22までの経路に沿ってオブジェクト・ヘッダ内の事前
取出しヒント情報(PHI)を変更し、PHIを第1統計テーブル293の局所
的情報に適応させることができる。第1統計テーブル293は、下位プロキシ・
サーバによる特定のクライアントのよく指標付けされた関心または好みなどの要
素に基づいて、第2統計テーブル267にとって代わることができる。
In the preferred embodiment, when the object O is requested from the content server 20, the server 20 provides the initial prefetch hint information PHI based on the information in the second statistical table 267. With enough local references to object O, when object O is passed down the proxy hierarchy, proxy server 24 will prefetch the hint information (PHI) in the object header along the path to client 22. ) Can be changed to adapt the PHI to the local information in the first statistical table 293. The first statistical table 293 includes a lower-level proxy
The second statistics table 267 can be replaced based on factors such as the well-indexed interest or preference of a particular client by the server.

【0087】 好適な実施形態では、コンテンツ・サーバ20は第2統計テーブル267を維
持し、これは要求情報に関するクライアント22のデータ・アクセス頻度のデー
タベースである。データベースは、要求するプロキシ・サーバ24のデータ・ア
クセス頻度を含むように拡張することができる。同様に、1つまたは複数のプロ
キシ・サーバ24が第1統計テーブル293を維持する。例えば、統計テーブル
261は第1データ構造304および第2データ構造306を備えた第1配列3
83を持つ。図示するように、第1データ構造304および第2データ構造30
6はレコードである。統計テーブル261の各レコードは、親オブジェクト識別
子(オブジェクトID)301、第1カウント(Tカウント)302、およびア
クセス・リスト・データ・ポインタ(Aリスト)303を含む幾つかのフィール
ドで構成される。
In the preferred embodiment, the content server 20 maintains a second statistics table 267, which is a database of client 22 data access frequencies for request information. The database can be extended to include the requesting proxy server 24 data access frequency. Similarly, one or more proxy servers 24 maintain a first statistics table 293. For example, the statistics table 261 includes a first array 3 having a first data structure 304 and a second data structure 306.
It has 83. As shown, the first data structure 304 and the second data structure 30
6 is a record. Each record of the statistics table 261 includes several fields including a parent object identifier (object ID) 301, a first count (T count) 302, and an access list data pointer (A list) 303.

【0088】 親オブジェクト識別子フィールド301にはオブジェクト識別子が入る。例え
ば親オブジェクト識別子301は、インターネットまたは関連適用分野用のオブ
ジェクトのURLを含む。第1カウント・フィールド302には、サーバによっ
て観察された、親オブジェクト識別子に関連付けられた親オブジェクトが参照さ
れた回数が入る。つまり、第1カウント・フィールド302には、要求オブジェ
クトの実際の要求の頻度が入る。第1カウント302は親オブジェクトアクセス
頻度を表す。アクセス・リスト・データ・ポインタ303には、アクセス・リス
ト370へのデータ・ポインタが入る。
The parent object identifier field 301 contains an object identifier. For example, parent object identifier 301 includes the URL of an object for the Internet or related application. The first count field 302 contains the number of times the parent object associated with the parent object identifier has been referenced, as observed by the server. That is, the first count field 302 contains the actual request frequency of the request object. The first count 302 indicates a parent object access frequency. The access list data pointer 303 contains a data pointer to the access list 370.

【0089】 統計テーブル261はアクセス・リスト370を持ち、これは例えば第1アク
セス・レコード340、第2アクセス・レコード350、第3アクセス・レコー
ド360、および第4アクセス・レコード380を含む。図示するように、第1
データ構造304に関連付けられた親オブジェクト識別子は、第1アクセス・レ
コード340、第2アクセス・レコード350、および第3アクセス・レコード
360の連結リストから成るアクセス・リスト370を持つ。次レコード・デー
タ・ポインタ・フィールド313には、特定の親識別子301に関連付けられた
アクセス・リスト370上の次のアクセス・レコードへのポインタが入る。第2
データ構造306に関連付けられた親オブジェクト識別子301は、第4アクセ
ス・レコード380を含むだけである。
The statistics table 261 has an access list 370, which includes, for example, a first access record 340, a second access record 350, a third access record 360, and a fourth access record 380. As shown, the first
The parent object identifier associated with the data structure 304 has an access list 370 consisting of a linked list of a first access record 340, a second access record 350, and a third access record 360. The next record data pointer field 313 contains a pointer to the next access record on the access list 370 associated with the specific parent identifier 301. Second
Parent object identifier 301 associated with data structure 306 only includes fourth access record 380.

【0090】 アクセス・リスト上の各レコードまたはデータ構造は、子オブジェクト識別子
310、第2カウント(Rカウント)312、および次レコード・データ・ポイ
ンタ(NXT)313を含む幾つかのフィールドで構成される。データ構造は、
一般的データ構造、レコード、または配列のフォーマットとすることができる。
図4に示すように、データ構造は、アクセス・リスト370内の連結リストを形
成するレコードである。
Each record or data structure on the access list is composed of several fields including a child object identifier 310, a second count (R count) 312, and a next record data pointer (NXT) 313. . The data structure is
It can be in the form of a general data structure, record, or array.
As shown in FIG. 4, the data structure is the records that form the linked list in the access list 370.

【0091】 代替実施形態では、統計テーブルのデータ・フォーマットは、ツリー構造で複
数の代替2次配列に関連する1次配列を含むことができる。1次配列は親オブジ
ェクトに関連する情報を含み、2次配列は、対応する親オブジェクトの子オブジ
ェクトに関する情報を含む。
In an alternative embodiment, the statistics table data format may include a primary array associated with a plurality of alternative secondary arrays in a tree structure. The primary array contains information related to the parent object, and the secondary array contains information about child objects of the corresponding parent object.

【0092】 子オブジェクト識別子フィールド310は、オブジェクトのオブジェクト識別
子(URL)を含む。親オブジェクト識別子301は、アクセス・リスト上の1
つまたは複数の子オブジェクト識別子310に関連する。子オブジェクト識別子
310は、子の親オブジェクトが実際に参照された場合、潜在的な事前取出し候
補を識別する。第2カウント312は、子オブジェクトがその親オブジェクトを
通して参照される回数を含む。言い換えると、第2カウントとは、関連付けられ
た親オブジェクトの事前の参照の後に、時間的に接近して子オブジェクトが参照
される頻度である。第2カウント312は子オブジェクト・アクセス頻度を表す
[0092] The child object identifier field 310 contains the object identifier (URL) of the object. The parent object identifier 301 is 1 in the access list.
Associated with one or more child object identifiers 310. The child object identifier 310 identifies a potential pre-fetch candidate if the child's parent object is actually referenced. The second count 312 includes the number of times a child object is referenced through its parent object. In other words, the second count is the frequency with which the child object is referred to in a temporally close manner after the prior reference of the associated parent object. The second count 312 indicates a child object access frequency.

【0093】 アクセス・リスト370上の子オブジェクト識別子310は、クライアントの
実際の参照動作の観察に基づいて動的に獲得することができる。例えば、HTM
Lでは、ウェブ・ページは他のウェブ・ページへのHTTPリンクを持つことが
できる。HTTPリンクによって指示されるウェブ・ページは、HTTPリンク
を含む(親)ウェブ・ページの潜在的子オブジェクトである。親オブジェクトが
表示されているときに、親オブジェクトに含まれる参照(HTTP)リンクをク
リックすると、対応する子オブジェクトが参照される。子オブジェクトへの参照
リンクは複数の他のオブジェクトに含まれることがあるので、子オブジェクトは
2つ以上の親を持つことができる。HTTPプロトコルでは、子オブジェクトへ
の要求は、そのヘッダに参照側情報として親のURLを含む。したがってサーバ
は、その後の子参照をその親に動的に関連付けることができる(子のヘッダ内の
参照側情報により)。クライアントが1つの子オブジェクトを頻繁にクリックま
たは選択する場合、その子オブジェクトは事前取出し候補または選択情報となる
ことができる。
The child object identifier 310 on the access list 370 can be obtained dynamically based on observation of a client's actual browsing operation. For example, HTM
In L, a web page can have HTTP links to other web pages. The web page pointed to by the HTTP link is a potential child object of the (parent) web page that contains the HTTP link. When a parent object is displayed and a reference (HTTP) link included in the parent object is clicked, a corresponding child object is referenced. Because a reference link to a child object may be included in multiple other objects, a child object can have more than one parent. In the HTTP protocol, a request for a child object includes a parent URL as reference side information in a header thereof. Thus, the server can dynamically associate subsequent child references to its parent (by referrer information in the child's header). If the client frequently clicks or selects one child object, that child object can be a pre-fetch candidate or selection information.

【0094】 ビューア参照動作を動的に追跡することに加えて、ウェブ・ログの統計的分析
またはマイニングを定期的に行って、統計テーブル261のためにオブジェクト
のグループに関する情報を導出することができる。マイニング・アルゴリズムは
、PHIの潜在的事前取出し候補を得るために、一緒に参照されるオブジェクト
のグループを識別する。ウェブ・ログをマイニングする1つの方法は、クン=ル
ン・ウー(Kun-lung Wu)他による「SpeedTracer: Web Usage Mining and Analy
sis Tool」IBM Research Report 20895、1997年5月に記述されている(IBM
Systems Journal v37, nl, p 89-105, 1998参照)。SpeedTracerア
ルゴリズムは、ユーザ・セッションで一緒に参照される頻繁なページ・グループ
および頻繁な探査経路に関する情報を提供する。SpeedTracerアルゴ
リズムは、直接的には一緒に参照されない関連参照を発見することができる詳細
型のマイニングである。それはまた、任意のオブジェクトまでの探査経路に基づ
いて、次の組の参照オブジェクトについて優れた予測を行うこともできる。
In addition to dynamically tracking viewer browsing activity, statistical analysis or mining of web logs can be performed periodically to derive information about groups of objects for the statistics table 261. . The mining algorithm identifies a group of objects that are referenced together to obtain potential prefetch candidates for the PHI. One way to mine web logs is to use SpeedTracer: Web Usage Mining and Analyze by Kun-lung Wu et al.
sis Tool ", IBM Research Report 20895, May 1997 (IBM
Systems Journal v37, nl, p 89-105, 1998). The SpeedTracker algorithm provides information about frequent page groups and frequent search paths that are referenced together in a user session. The SpeedTracker algorithm is an advanced type of mining that can find related references that are not directly referenced together. It can also make good predictions for the next set of reference objects based on the search path to any object.

【0095】 別の種類のデータ・マイニング・アルゴリズムを使用して、統計テーブル26
1用のデータ・アクセス・パターンを識別することができる。例えば、他のデー
タ・マイニング・アルゴリズムとして分類とクラスタ化があり、これもウェブ・
ログ分析に適用して参照パターンを得ることができる。さらに、PHIも、コン
テンツ・サーバがオブジェクト関係のその知識に基づいて供給することができる
。例えば、PHIは、要求されたソフトウェア・ダウンロードのためのパッチと
アップグレード、要求されたJAVAアプレットのJavaクラス、および要求
オブジェクト内に含まれるオブジェクト(GIFなど)を含むことができるが、
これらに限定されない。
Using another kind of data mining algorithm, the statistics table 26
One data access pattern can be identified. For example, other data mining algorithms include classification and clustering, which are
It can be applied to log analysis to obtain reference patterns. In addition, a PHI can also be provided by the content server based on its knowledge of object relationships. For example, the PHI may include patches and upgrades for required software downloads, Java classes of required JAVA applets, and objects (such as GIFs) contained within the request object,
It is not limited to these.

【0096】 好適な実施形態では、統計を収集するときに、クライアント・ステーションに
よるオブジェクトの実際の参照は、オブジェクトへの事前取出し要求から区別さ
れる。統計テーブル261内の第1カウント302および第2カウント310は
、事前取出しではなく、実際の参照を反映する。すなわち、事前取出し動作の結
果、第1統計テーブル293または第2統計テーブル267が更新されることは
なく、実際のオブジェクト参照によってのみ更新される。
In a preferred embodiment, when collecting statistics, the actual reference of an object by a client station is distinguished from a pre-fetch request for the object. The first count 302 and the second count 310 in the statistics table 261 reflect actual references rather than prefetching. That is, as a result of the pre-fetching operation, the first statistics table 293 or the second statistics table 267 is not updated, but is updated only by the actual object reference.

【0097】 事前取出しヒント情報または事前取出しヒント情報リストは、要求情報または
要求オブジェクトに注釈を付けるために様々なデータ構造を使用することができ
る。例えば、事前取出しヒント情報は、付加されたメタ・データを用いて要求者
とサーバ・ノードとの間でやり取りすることができる。HTTPの実現では、情
報交換は、既存のウェブ・プロトコルを用いてオブジェクト・ヘッダ内のメタ・
データとして含めることができる。PICS(「インターネット・コンテンツ選
択のためのプラットフォーム(Platform for Internet Content Selection)」 )は、電子内容に関するメタ情報を送信する方法を指定する。PICSは、(a
)要求情報の注釈付け、(b)事前取出し選択情報、事前取出し候補、または子
オブジェクト、および(c)情報が事前取出しされた後の事前取出し動作の確認
に適用することができる。
The pre-fetch hint information or pre-fetch hint information list may use various data structures to annotate the request information or request object. For example, the pre-fetch hint information can be exchanged between the requester and the server node using the added metadata. In an HTTP implementation, the information exchange uses existing web protocols to transfer meta-
Can be included as data. PICS ("Platform for Internet Content Selection") specifies how to transmit meta-information about electronic content. PICS uses (a
It can be applied to annotating request information, (b) pre-fetch selection information, pre-fetch candidates, or child objects, and (c) confirming pre-fetch operations after the information is pre-fetched.

【0098】 PICSは、関連技術分野の当業者にはウェブ・コンソーシアムのプロトコル
勧告として知られている。PICSは最初、「この内容にはどの程度のヌードの
露出度が関連付けられるか」など、価値に基づく格付けラベルを送信するために
使用されたが、メタ情報のフォーマットおよび意味は完全に普遍的である。PI
CSでは、電子的内容に関するメタ情報は、「格付けサービス」または情報の生
成者と使用目的に従ってグループ化され、そうした1つのグループ内で、任意の
数のカテゴリまたは規模の情報を伝送することができる。各カテゴリは許可され
た値の範囲を持ち、内容の特定の部分に対し、特定のカテゴリは単一の値または
複数の値を持つことができる。さらに、メタ情報グループ(「PICSラベル」
として知られる)は、期限情報を含むことができる。また、PICSラベルを電
子内容の2つ以上の部分に適用できるようにするための機能もある。電子内容の
特定部分の各PICSラベルは独立に、内容に付加したり、あるいは内容から除
去することができる。
PICS is known to those skilled in the relevant art as a protocol recommendation of the Web Consortium. PICS was initially used to send rating labels based on value, such as "how much nudity exposure is associated with this content," but the format and meaning of the meta-information is completely universal. is there. PI
In CS, meta-information about electronic content is grouped according to the purpose of use with the "rating service" or the creator of the information, and within such one group any number of categories or sizes of information can be transmitted. . Each category has a range of allowed values, and for a particular piece of content, a particular category can have a single value or multiple values. Furthermore, a meta information group ("PICS label"
) May include deadline information. There is also a function that allows the PICS label to be applied to more than one part of the electronic content. Each PICS label in a particular portion of the electronic content can be independently added to or removed from the content.

【0099】 例えば、「SafeSurf」格付けシステムに従った価値に基づく定格ラベ
ルを含むことを「格付けサービス」フィールドで指摘するPICSラベル付きの
画像ファイルが、サーバから送信されることがある。本発明の好適な実施形態に
よると、それが企業プロキシを通過するときに、その画像ファイルは、「格付け
サービス」の局所的考慮を反映するためにPICSラベルに新しい更新カテゴリ
値を付けることができる。したがって、クライアント・コンピュータはPICS
ラベルの新しいカテゴリ値だけを表示する。HTTPプロトコルは、その要求ヘ
ッダおよび応答ヘッダがPICSをサポートするように増強された。NNTPな
ど、他の一般的アプリケーション・プロトコルを定義する技術団体も今、PIC
Sサポートの追加を検討している。これらのプロトコルの一部として、希望する
PICSラベルの種類のリストを要求に含めることができる。PICSはまた、
中央ラベル事務局サーバのPICS情報を要求するための問い合わせフォーマッ
トを規定している。
For example, an image file with a PICS label that indicates in the “Rating Service” field that it contains a value-based rating label according to the “SafeSurf” rating system may be transmitted from the server. According to a preferred embodiment of the present invention, as it passes through the corporate proxy, the image file can be given a new updated category value on the PICS label to reflect local considerations of the "rating service" . Therefore, the client computer is
Display only new category values for labels. The HTTP protocol has been enhanced so that its request and response headers support PICS. The technical bodies that define other common application protocols, such as NNTP, are also now PIC
We are considering adding S support. As part of these protocols, a list of the desired PICS label types can be included in the request. PICS also
It defines an inquiry format for requesting PICS information of the central label office server.

【0100】 サンプルPICSラベルが、(「http://the.content」exp「1997.0
7.09T08:15−0500」r(n4s3v2)の場合のPICS−1.
1「http://the.rating.service」ラベル)である。ここで、「n」、「s」、 および「v」は様々なメタ情報型の転送名であり、このコンテンツに適用可能な
値は4(nの場合)、3(sの場合)、および2(vの場合)である。ID「ht
tp://the.rating.service」を認識するソフトウェアだけが、これらのカテゴリ および値を解釈する方法を知っている。
The sample PICS label is (http: //the.content) exp “1997.0
7.09T08: 15-0500 "r (n4s3v2) PICS-1.
1 "http: //the.rating.service" label). Here, “n”, “s”, and “v” are transfer names of various meta information types, and values applicable to this content are 4 (for n), 3 (for s), and 2 (in the case of v). ID "ht
Only software that recognizes "tp: //the.rating.service" knows how to interpret these categories and values.

【0101】 好適な実施形態では、3種類のPICSラベルを導入する。事前取出しラベル
(つまりPラベル)と呼ばれる最初の種類のPICSラベルは、サーバ・ノード
がPHIを提供するために使用する。要求ラベル(つまりRラベル)と呼ばれる
2番目の種類のPICSラベルは、事前取出し候補オブジェクトを要求するため
に使用される。参照ラベル(つまりXラベル)と呼ばれる3番目の種類のPIC
Sラベルは、どの事前取出しオブジェクトが実際に参照されるかに基づいて、事
前取出しの実効性に関するフィードバックを提供するために使用される。
In a preferred embodiment, three types of PICS labels are introduced. The first type of PICS label, called a pre-fetched label (ie, a P-label), is used by server nodes to provide PHI. A second type of PICS label, called a request label (ie, an R label), is used to request a prefetch candidate object. A third type of PIC called a reference label (ie X label)
The S-label is used to provide feedback on the effectiveness of the prefetch based on which prefetch object is actually referenced.

【0102】 事前取出しラベルは、識別子カテゴリ、確率カテゴリ、サイズ・カテゴリ、お
よびキャッシング・カテゴリをはじめ、以下のカテゴリの任意の組合せを含むこ
とができるが、これらに限定されない。識別子カテゴリ(つまりIDカテゴリ)
は、事前取出し候補のURLを伝達する値を持つ。確率カテゴリ(つまりPRO
Bカテゴリ)は、事前取出しの有用性の推定を伝達する値を持つ。好適な実施形
態では、参照確率の推定が使用される。参照確率は、事前取出し候補が参照され
る確率を示す。サイズ・カテゴリは、事前取出し候補の大きさまたはメモリ要件
を伝達する値を持つ。キャッシング・カテゴリは、その第1主キャッシュ294
またはその第1事前取出しキャッシュ296のいずれかに事前取出し候補オブジ
ェクトのコピーを有する上位のプロキシ・サーバ上の情報を伝達する値を持つ。
好適な実施形態では、最も近い上位プロキシだけが識別される。
The pre-fetched labels can include, but are not limited to, any combination of the following categories, including an identifier category, a probability category, a size category, and a caching category. Identifier category (that is, ID category)
Has a value that conveys the URL of a prefetch candidate. Probability category (ie, PRO
B category) has a value that conveys an estimate of the usefulness of prefetching. In the preferred embodiment, reference probability estimation is used. The reference probability indicates a probability that the prefetching candidate is referred to. The size category has a value that conveys the size or memory requirements of the prefetch candidate. The caching category has its first primary cache 294
Alternatively, it has a value that conveys information on an upstream proxy server that has a copy of the prefetch candidate object to any of its first prefetch caches 296.
In the preferred embodiment, only the closest superior proxy is identified.

【0103】 要求ラベルは、識別子カテゴリ(つまりIDカテゴリ)をはじめ、以下のカテ
ゴリを含むことができるが、それらに限定されない。識別子カテゴリの値は、事
前取出しすべきオブジェクトのURLを伝達する。好適な実施形態では、(プロ
キシまたはクライアント)ノードが示唆された事前取出し候補オブジェクトを事
前に取り出すことを希望する場合、事前取出しされるオブジェクトのURLを伝
達するために、HTTPヘッド要求が、要求ラベルを用いてプロキシ階層を通し
てコンテンツ・サーバ20に送り返される。プロキシ・サーバ24は下位階層ノ
ードから事前取出し要求を受信すると、オブジェクトがその主または事前取出し
キャッシュにある場合にはその要求を処理する。そうでない場合には、事前取出
し要求を次の上位プロキシに転送する。
The request label can include, but is not limited to, the following categories, including the identifier category (ie, ID category). The value of the identifier category conveys the URL of the object to be prefetched. In a preferred embodiment, if the (proxy or client) node wishes to pre-fetch suggested suggested pre-fetch candidate objects, the HTTP head request, in order to communicate the URL of the pre-fetched object, uses the request label And sent back to the content server 20 through the proxy hierarchy. When proxy server 24 receives a prefetch request from a lower hierarchical node, it processes the request if the object is in its primary or prefetch cache. Otherwise, forward the prefetch request to the next higher level proxy.

【0104】 参照ラベルは、オブジェクト識別子カテゴリ(オブジェクトIDカテゴリ)お
よび参照側識別子カテゴリ(参照側IDカテゴリ)をはじめとする以下のカテゴ
リを含むことができるが、それらに限定されない。オブジェクト識別子カテゴリ
は、参照された事前取出しオブジェクトのURLを伝達する値を有する。参照側
識別カテゴリは、オブジェクト識別子カテゴリ値によって指定されたオブジェク
トをそのPHIに含むオブジェクトのURLを伝達する値を持つ。
The reference labels may include, but are not limited to, the following categories, including the object identifier category (object ID category) and the reference side identifier category (reference side ID category). The object identifier category has a value that conveys the URL of the referenced prefetched object. The reference-side identification category has a value that transmits the URL of an object whose PHI includes the object specified by the object identifier category value.

【0105】 好適な実施形態では、事前取出しオブジェクトが実際に参照されたときには、
参照された事前取出しオブジェクトおよびその参照側オブジェクトのURLを伝
達するために、参照ラベルを使用して、プロキシ階層を通してコンテンツ・サー
バ20にHTTPヘッド要求が送り返される。この型のHTTPヘッド要求を以
下では、事前取出し参照メッセージと呼ぶ。プロキシ・サーバ24は下位階層ノ
ードから事前取出し参照メッセージを受信すると、その第1統計テーブル293
を更新し、要求を次の上位プロキシ・サーバに転送する。
In a preferred embodiment, when the pre-fetched object is actually referenced,
An HTTP head request is sent back to the content server 20 through the proxy hierarchy using the reference label to convey the URL of the referenced prefetch object and its referencing object. This type of HTTP head request is hereinafter referred to as a prefetch reference message. When the proxy server 24 receives the prefetched reference message from the lower hierarchical node, its first statistical table 293
And forward the request to the next higher-level proxy server.

【0106】 図5は、コンテンツ・サーバ20の第2統計テーブル267を更新するサーバ
論理268の例を示す。第2統計テーブル267の更新は、クライアント22か
らのオブジェクト要求によってトリガされる。コンテンツ・サーバ20は、クラ
イアント22に要求オブジェクトを送信する前に、オブジェクトのオブジェクト
・ヘッダに注釈として付加するためまたは挿入するために、事前取出しヒント情
報を生成することが好ましい。
FIG. 5 shows an example of the server logic 268 that updates the second statistical table 267 of the content server 20. The update of the second statistics table 267 is triggered by an object request from the client 22. The content server 20 preferably generates prefetch hint information to annotate or insert into the object header of the object before sending the requested object to the client 22.

【0107】 最初に参照ブロック405で、コンテンツ・サーバ20は入力を待つ。判断ブ
ロック410で、受信した入力がオブジェクトOのオブジェクト要求である場合
、参照ブロック415で統計更新ユニット252または第2更新統計ルーチン2
69が呼び出される。参照ブロック420で、事前取出しヒント情報266また
は事前取出し生成ルーチンを生成するための生成ユニット266が呼び出される
。生成ユニット266またはPHI生成ルーチンの詳細な例を、後で図6に関連
して説明する。参照ブロック425で、例えばPHIが要求オブジェクトのオブ
ジェクト・ヘッダに挿入される。さもなければ、参照ブロック425で、事前取
出しヒント情報は要求オブジェクトまたは要求情報を注釈する。好適な実施形態
では、PICSプロトコルは要求オブジェクトを注釈するために使用することが
できる。PHIはPラベルに取り込まれ、そこで識別子カテゴリ値は事前取出し
候補のURLを反映する。ブロック430で、要求オブジェクトは、要求したク
ライアントまたは要求したプロキシ・サーバに返される。判断ブロック435で
、受信した入力が事前取出し参照メッセージ(つまりXラベルで事前取出しオブ
ジェクトOが実際に参照されたことを示すHTTPヘッド要求)である場合、ス
テップ440で、統計更新手段252または第2更新統計ルーチン269が呼び
出される。本発明の焦点ではない、例えばFTP(ファイル転送プロトコル)要
求など他の種類の入力の場合、参照ブロック445で、適切な雑ハンドラを呼び
出すことができる。
First, at reference block 405, content server 20 waits for input. If, at decision block 410, the received input is an object request for object O, then at reference block 415 the statistics update unit 252 or the second update statistics routine 2
69 is called. At reference block 420, the generation unit 266 for generating the pre-fetch hint information 266 or pre-fetch generation routine is called. A detailed example of the generation unit 266 or PHI generation routine will be described later with reference to FIG. At reference block 425, for example, a PHI is inserted into the object header of the request object. Otherwise, at reference block 425, the prefetch hint information annotates the request object or request information. In a preferred embodiment, the PICS protocol can be used to annotate request objects. The PHI is captured in the P-label, where the identifier category value reflects the URL of the prefetch candidate. At block 430, the request object is returned to the requesting client or requesting proxy server. If, at decision block 435, the received input is a prefetch reference message (ie, an HTTP head request indicating that the prefetch object O was actually referenced with an X label), then at step 440, the statistics update means 252 or the second The update statistics routine 269 is called. For other types of input that are not the focus of the present invention, for example, FTP (File Transfer Protocol) requests, the appropriate miscellaneous handler can be invoked at reference block 445.

【0108】 図6は、統計更新ユニット252が前記統計テーブル261の1つをどのよう
に更新するかを示す。統計更新ユニット252は、第1統計テーブル293を更
新するための第1更新統計ルーチン264、または第2統計テーブル267を更
新するための第2更新統計ルーチン269、または第1更新統計ルーチン264
および第2更新統計ルーチン269の両方を参照する。統計テーブル261は、
第1統計テーブル293または第2統計テーブル267のいずれか、または第1
統計テーブル293および第2統計テーブル267の両方を参照する。統計更新
ユニット252は最初に、参照側オブジェクトで情報を探索する。次いで、要求
オブジェクトは参照側オブジェクトのアクセス・リストまたは事前取出しリスト
に載せられる。
FIG. 6 shows how the statistics update unit 252 updates one of the statistics tables 261. The statistics update unit 252 includes a first update statistics routine 264 for updating the first statistics table 293, a second update statistics routine 269 for updating the second statistics table 267, or a first update statistics routine 264.
And both the second update statistics routine 269. The statistics table 261 is
Either the first statistics table 293 or the second statistics table 267, or the first
It refers to both the statistics table 293 and the second statistics table 267. The statistics update unit 252 first searches the referencing object for information. The request object is then placed on the referral object's access list or prefetch list.

【0109】 最初に参照ブロック505で、統計テーブル261は、第1カウントを増分す
ることによって、オブジェクトOがもう1回参照されたことを表すために更新さ
れる。言い換えると、ブロック505で、Tカウント(0)は1だけ増分される
。オブジェクトOがまだ統計テーブル261内に無い場合、親オブジェクト識別
子が統計テーブル261に挿入され、Tカウント(0)が1に初期化される。統
計テーブル261に空きスロットが無い場合、統計テーブル261の最長時間未
参照エントリが新しい親オブジェクト識別子に置換される。判断ブロック510
で、要求オブジェクトは、例えば要求オブジェクトのオブジェクト・ヘッダを検
査することによって、参照側情報が無いか検査される。例えばHTTPプロトコ
ルでは、要求オブジェクトへのHTTPリンクがどのオブジェクトに含まれるか
を示すために、参照側オブジェクトがヘッダ内に提供される。参照側オブジェク
ト(R)がヘッダ内にある場合、ステップ520で、オブジェクトOがオブジェ
クトRのアクセス・リスト上にすでにあるかどうかを調べるために、統計テーブ
ル261が審査される。そうである場合には、ブロック530で、要求オブジェ
クトの第2カウント(Rカウント(0))が1だけ増分される。そうでない場合
には、ブロック525で、要求オブジェクト(オブジェクトO)は親オブジェク
ト(オブジェクトR)のアクセス・リストに挿入され、第2カウント(Rカウン
ト(0))は1に初期化される。
First, at reference block 505, the statistics table 261 is updated to indicate that the object O has been referenced again by incrementing the first count. In other words, at block 505, the T count (0) is incremented by one. If the object O is not already in the statistics table 261, the parent object identifier is inserted into the statistics table 261, and the T count (0) is initialized to 1. If there is no empty slot in the statistics table 261, the longest unreferenced entry in the statistics table 261 is replaced with a new parent object identifier. Decision block 510
The requested object is checked for reference side information, for example, by checking the object header of the requested object. For example, in the HTTP protocol, a referencing object is provided in the header to indicate which object contains the HTTP link to the requesting object. If the referencing object (R) is in the header, at step 520, the statistics table 261 is examined to see if the object O is already on the access list of the object R. If so, at block 530, the second count (Rcount (0)) of the requested object is incremented by one. Otherwise, at block 525, the request object (object O) is inserted into the parent object (object R) access list and the second count (R count (0)) is initialized to one.

【0110】 図7は、事前取出しヒント情報を事前取出しヒント情報リスト内に生成するた
めの生成ユニット266の例を示す。第2カウント対第1カウントの比がヒント
閾値を超える場合、事前取出しヒント情報リストは、子オブジェクトの子オブジ
ェクト識別子を含む。事前取出しヒント情報リストは、洗練または濾過されたア
クセス・リストを表す。つまり、生成ユニット266は統計テーブル261から
の入力を受け入れ、この入力を濾過して事前取出しヒント情報リストを得る。
FIG. 7 shows an example of the generation unit 266 for generating the pre-fetch hint information in the pre-fetch hint information list. If the ratio of the second count to the first count exceeds the hint threshold, the pre-fetch hint information list includes the child object identifier of the child object. The pre-fetch hint information list represents a refined or filtered access list. That is, the generation unit 266 receives an input from the statistics table 261 and filters the input to obtain a pre-fetched hint information list.

【0111】 事前取出しヒント情報を生成するための生成ユニット266は事前取出しヒン
ト情報情報(PHI)生成ルーチン266を表し、これは参照ブロック610で
始まる。参照ブロック610で、親オブジェクト(オブジェクトO)のアクセス
・リストが検査され、それが空であるか否か(つまりAリスト(O)が空かどう
か)が調べられる。アクセス・リストが空でない場合、参照ブロック620で、
Cjを親オブジェクト(オブジェクトO)のアクセス・リストで識別される次の
子オブジェクト(子オブジェクト識別子)とする。
The generation unit 266 for generating prefetch hint information represents a prefetch hint information information (PHI) generation routine 266, which begins at reference block 610. At reference block 610, the access list of the parent object (object O) is examined to see if it is empty (ie, whether A-list (O) is empty). If the access list is not empty, at reference block 620,
Let Cj be the next child object (child object identifier) identified in the access list of the parent object (object O).

【0112】 判断ブロック630で、子オブジェクトCjの参照確率が、予め指定された閾
値(例えば0.75)であるヒント閾値(TH)と比較される。好適な実施形態
では、Cjの参照確率は、第2カウント対第1カウントの比(Rカウント(cj
)/Tカウント(0))と定義される。この比は、親オブジェクト(オブジェク
トO)が参照された後で子オブジェクト(オブジェクトCj)が参照される確率
の推定である。判断ブロック630で、Cjの参照確率がヒント閾値(TH)よ
り大きい場合には、参照ブロック640で、子オブジェクト識別子(Cj)がP
HIリストに含まれる。言い換えると、比がヒント閾値を超える場合、子オブジ
ェクト識別子および関連情報が事前取出しヒント情報リストに載せられる。
At decision block 630, the reference probability of the child object Cj is compared with a hint threshold (TH), which is a pre-specified threshold (eg, 0.75). In a preferred embodiment, the reference probability of Cj is the ratio of the second count to the first count (R count (cj
) / T count (0)). This ratio is an estimate of the probability that a child object (object Cj) will be referenced after a parent object (object O) has been referenced. If, at decision block 630, the reference probability of Cj is greater than the hint threshold (TH), then at reference block 640, the child object identifier (Cj) is P
Included in the HI list. In other words, if the ratio exceeds the hint threshold, the child object identifier and the related information are put on the pre-fetched hint information list.

【0113】 生成ユニット266は、参照ブロック630で比較を行うためにソフトウェア
・サブルーチンまたはソフトウェア構成要素を要求することができる。特に、事
前取出しヒント情報を事前取出しヒント情報リスト内に生成するための生成ユニ
ット266は、参照確率を計算するための計算手段と、参照確率をヒント閾値と
比較するための比較手段とを含むことができる。
Generation unit 266 may require a software subroutine or software component to perform the comparison at reference block 630. In particular, the generating unit 266 for generating the pre-fetch hint information in the pre-fetch hint information list includes a calculating means for calculating the reference probability and a comparing means for comparing the reference probability with the hint threshold value. Can be.

【0114】 好適な実施形態では、PICSプロトコルを使用して、PHI情報はPラベル
に格納され、そこで子オブジェクト(Cj)のURLは識別子カテゴリ(IDカ
テゴリ値)として受け取られ、その参照確率およびサイズはそれぞれ確率カテゴ
リ(PROB)およびサイズ・カテゴリ値として受け取られる。判断ブロック6
45で、オブジェクトOのアクセス・リストがまだ完全に走査されていない場合
、参照ブロック620が再実行される。
In a preferred embodiment, using the PICS protocol, the PHI information is stored in the P label, where the URL of the child object (Cj) is received as an identifier category (ID category value), its reference probability and size Are received as probability category (PROB) and size category values, respectively. Decision block 6
At 45, if the access list of object O has not been completely scanned, reference block 620 is re-executed.

【0115】 統計テーブル261から事前取出し候補を選択するために、様々な代替基準を
使用することができる。例えば、過去の区間における参照確率の移動平均を基準
として使用することができる。さらに、事前取出し候補の選択手順を再帰的にす
ることができる。子オブジェクト(オブジェクトCj)を親オブジェクト(オブ
ジェクトO)の事前取出し候補として選択する場合、子オブジェクト(オブジェ
クトCj)のアクセス・リスト上の任意の子オブジェクトを評価して、まだ含ま
れていない場合には、親オブジェクト(オブジェクトO)の事前取出しリストに
含めるかどうかを決定することができる。判断ブロック630で、比較ユニット
または評価ユニットは今、Rカウント(Cj)/Tカウント(0)とRカウント
(Cj1)/Tカウント(Cj)の積がヒント閾値(TH)より大きいかどうか
を試験することができる。
Various alternative criteria can be used to select pre-fetch candidates from the statistics table 261. For example, a moving average of reference probabilities in a past section can be used as a reference. Further, the selection procedure of the prefetching candidate can be recursive. When the child object (object Cj) is selected as a candidate for pre-fetching the parent object (object O), an arbitrary child object on the access list of the child object (object Cj) is evaluated. Can determine whether to include in the pre-fetch list of the parent object (object O). At decision block 630, the comparison or evaluation unit now tests whether the product of the R count (Cj) / T count (0) and the R count (Cj1) / T count (Cj) is greater than a hint threshold (TH). can do.

【0116】 図8は、クライアント論理244の動作の例を示す。図8は、ひとたびオブジ
ェクトが要求されると、クライアント・オブジェクト要求ハンドラが呼び出され
ることを示す。そうでなければ、事前取出しハンドラ241は、要求されていな
いオブジェクトを処理することができるが、クライアント22の第2事前取出し
キャッシュ249に格納する必要がある。
FIG. 8 shows an example of the operation of the client logic 244. FIG. 8 shows that once the object is requested, the client object request handler is invoked. Otherwise, the prefetch handler 241 can process the unrequested object but needs to store it in the second prefetch cache 249 of the client 22.

【0117】 最初にブロック710で、クライアント22は入力を待つ。判断ブロック72
0で、受信した入力がオブジェクトである場合、参照ブロック730で第2事前
取出しハンドラ241が呼び出される。ブロック740で、クライアント22に
おける要求アプリケーションにオブジェクトを返すために、クライアント・オブ
ジェクト・ハンドラが呼び出される。判断ブロック750で、受信した入力がオ
ブジェクト要求である場合、参照ブロック760でクライアント・オブジェクト
要求ハンドラ247が呼び出される。本発明の焦点ではない他の種類の入力(例
えばプッシュ要求など)の場合、参照ブロック770で適切な雑ハンドラを呼び
出すことができる。
First, at block 710, the client 22 waits for input. Decision block 72
At 0, if the input received is an object, the second prefetch handler 241 is called at reference block 730. At block 740, the client object handler is called to return the object to the requesting application at client 22. At decision block 750, if the received input is an object request, then at reference block 760 the client object request handler 247 is called. For other types of input that are not the focus of the present invention (eg, a push request), the appropriate miscellaneous handler can be invoked at reference block 770.

【0118】 図9は、第1事前取出しハンドラ248または第2事前取出しハンドラ241
、または第1事前取出しハンドラ248および第2事前取出しハンドラ241の
両方を含む、事前取出しユニット250の動作の例を示す。要約すると、事前取
出しユニット250は、図7の生成ユニット266によって生成された事前取出
しリストを入力として使用して、事前取出しヒント情報リスト上の参照された子
オブジェクトが、事前取出しキャッシュ298の1つにおける格納を保証するか
どうかを判断する。事前取出しユニット250は、事前取出しヒント情報リスト
上の各事前取出しオブジェクト候補または子オブジェクト識別子の事前取出し値
を計算する。事前取出し値は、子オブジェクトのアクセス確率および子オブジェ
クトを格納するアクセス費用を考慮する。最も高い閾値を持つ子オブジェクトを
先頭に、事前取出しキャッシュ298の1つの空き空間が満たされるまで、全て
の子オブジェクトが格納される。
FIG. 9 illustrates the first prefetch handler 248 or the second prefetch handler 241.
Or an example of the operation of the pre-fetch unit 250 including both the first pre-fetch handler 248 and the second pre-fetch handler 241. In summary, the pre-fetch unit 250 uses the pre-fetch list generated by the generation unit 266 of FIG. It is determined whether or not storage is guaranteed. The pre-fetch unit 250 calculates a pre-fetch value for each pre-fetch object candidate or child object identifier on the pre-fetch hint information list. The prefetch value takes into account the access probability of the child object and the access cost of storing the child object. Starting from the child object having the highest threshold, all child objects are stored until one free space of the prefetch cache 298 is filled.

【0119】 最初にブロック805で、Lを事前取出し候補オブジェクトのPHIリストと
する。事前取出し候補オブジェクトは、事前取出しヒント情報リスト上の子オブ
ジェクト識別子により表現することができる。ローカル・キャッシュ(つまり事
前取出しキャッシュまたは主キャッシュ)に現れる事前取出し候補はLから除去
される。ブロック810で、L内の各オブジェクトの事前取出し値(PV)が計
算される。好適な実施形態では、PV値は、参照確率にアクセス費用を乗じたも
のと定義される。アクセス費用は、PHIリスト上で識別される事前取出し候補
オブジェクトまたは子オブジェクトの最も近いキャッシング位置に基づいて推算
される。実際問題として、子オブジェクトは、記憶空間を節約するために、子オ
ブジェクト全体としてではなく、子オブジェクト識別子によってPHIリスト上
で識別されることが好ましい。参照確率は確率カテゴリ(PROBカテゴリ)値
から得ることが最適であり、最も近いキャッシング位置はPICSラベルのキャ
ッシング・カテゴリ値から得る。ブロック820で、最も高いPV値を持つ事前
取出し候補オブジェクトが選択される。参照ブロック830で、事前取出しオブ
ジェクト候補(Oj)を収容するために利用可能な事前取出しバッファ空間の量
が決定される。この空間は現在使用されていないか、または評価対象である現在
の事前取出しオブジェクト候補(Oj)のPV値の端数(例えば2分の1)でし
かない、より低いPV値を持つオブジェクトによって占有されているかのいずれ
かである。事前取出しキャッシュ298の1つに削除可能とマークされているオ
ブジェクトによって占有されている記憶空間は、現在使用されていないとみなさ
れる。判断ブロック840で、事前取出しキャッシュ298の1つが検査され、
Ojのために充分な空間があるか否かが調べられる。ある場合には、参照ブロッ
ク850で、オブジェクトOjが事前取出しキャッシュ298の1つの事前取出
しされる。ブロック860で、OjはPHIリスト(L)から除去される。参照
ブロック870でLが空でなければ、参照ブロック820に関連するステップが
再実行される。
First, at block 805, let L be the PHI list of prefetch candidate objects. The pre-extraction candidate object can be represented by a child object identifier on the pre-extraction hint information list. Prefetchable candidates that appear in the local cache (ie, prefetch cache or main cache) are removed from L. At block 810, a prefetch value (PV) for each object in L is calculated. In a preferred embodiment, the PV value is defined as the reference probability multiplied by the access cost. The access cost is estimated based on the closest caching location of the prefetch candidate object or child object identified on the PHI list. As a practical matter, child objects are preferably identified on the PHI list by a child object identifier, rather than as a whole child object, to save storage space. Optimally, the reference probability is obtained from the probability category (PROB category) value, and the closest caching position is obtained from the caching category value of the PICS label. At block 820, the prefetch candidate object having the highest PV value is selected. At reference block 830, the amount of prefetch buffer space available to accommodate the candidate prefetch object (Oj) is determined. This space is currently unused or occupied by objects with lower PV values, which are only a fraction (eg, one half) of the PV values of the current pre-fetched object candidate (Oj) to be evaluated. Is either. Storage space occupied by objects marked as removable in one of the prefetch caches 298 is considered to be currently unused. At decision block 840, one of the prefetch caches 298 is examined,
It is checked whether there is enough space for Oj. In some cases, at reference block 850, object Oj is prefetched from one of prefetch cache 298. At block 860, Oj is removed from the PHI list (L). If L is not empty at reference block 870, the steps associated with reference block 820 are re-executed.

【0120】 好適な実施形態では各オブジェクトが一度に1つづつ事前取出しされるが、1
回の要求で複数のオブジェクトを一緒に事前に取り出すことができる。参照ブロ
ック850で、Ojを事前取出しリストに載せることができる。ブロック870
でLが空であるならば、次いで事前取出し要求が事前取出しリスト全体と共に発
行される。さらに、事前取出しキャッシュに充分な記憶空間が無い場合でも、保
留中の事前取出しリストを維持することができるので、記憶場所が利用できるよ
うになったときに、追加事前取出しを開始することができる。
In the preferred embodiment, each object is pre-fetched one at a time,
Multiple objects can be pre-fetched together in a single request. At reference block 850, Oj can be placed on the prefetch list. Block 870
, If L is empty, then a prefetch request is issued with the entire prefetch list. Further, even if there is not enough storage space in the prefetch cache, the pending prefetch list can be maintained, so that additional prefetch can be initiated when storage locations become available. .

【0121】 HTTPプロトコルを使用することによって、通信オーバヘッドを減少するた
めに、事前取出し中に通信セッションを開いたままにしておくことができる。事
前取出しごとにセッションを再確立する必要はない。
By using the HTTP protocol, a communication session can be kept open during pre-fetch to reduce communication overhead. There is no need to re-establish the session for each prefetch.

【0122】 図10は、クライアント・オブジェクト要求ハンドラ247の動作の例を示す
。要約すると、クライアント・オブジェクト要求ハンドラ247は最初に第2主
キャッシュ246を探索し、次に第2事前取出しキャッシュ249を探索する。
オブジェクトが第2主キャッシュ246にも第2事前取出しキャッシュ249に
も無い場合には、オブジェクト要求はサーバに送られる。オブジェクトが第2事
前取出しキャッシュ249にある場合、事前取出しオブジェクトが実際に参照さ
れたことを示すために、事前取出し参照メッセージがサーバの1つに送られる。
次いで、第2事前取出しハンドラ241およびクライアント・オブジェクト・ハ
ンドラが使用される。
FIG. 10 shows an example of the operation of the client object request handler 247. In summary, the client object request handler 247 first searches the second primary cache 246 and then the second prefetch cache 249.
If the object is not in the second main cache 246 or the second prefetch cache 249, the object request is sent to the server. If the object is in the second prefetch cache 249, a prefetch reference message is sent to one of the servers to indicate that the prefetch object was actually referenced.
Then, the second prefetch handler 241 and the client object handler are used.

【0123】 最初に判断ブロック905で、要求オブジェクトOが第2主キャッシュ246
で見つかると、参照ブロック925で第2事前取出しハンドラ241が呼び出さ
れ、オブジェクトOに関連付けられたPHIに基づいて適切な事前取出し動作が
開始される。参照ブロック930でクライアント・オブジェクト・ハンドラが呼
び出されて、要求されたオブジェクトをクライアントにおける要求したアプリケ
ーションに返す。判断ブロック910で要求オブジェクトOが第2事前取出しキ
ャッシュ249で見つかると、事前取出しオブジェクトの実際の参照を取り込む
ようにその第2統計テーブル267を更新することができるように、ブロック9
20で事前取出し参照メッセージがコンテンツ・サーバ20に送られる。実際に
は、事前取出し参照メッセージはプロキシ階層を通してコンテンツ・サーバ20
まで伝搬するので、各中間プロキシの第2統計テーブルもまた更新される。ブロ
ック910でオブジェクトが第2事前取出しキャッシュ249に無い場合、参照
ブロック915で、オブジェクト要求はプロキシ階層を通してコンテンツ・サー
バ20に送られる。
First, at decision block 905, the requested object O is
If found at, the second prefetch handler 241 is called at reference block 925 to initiate the appropriate prefetch operation based on the PHI associated with object O. At reference block 930, the client object handler is called to return the requested object to the requesting application at the client. If the requested object O is found in the second prefetch cache 249 at decision block 910, block 9 is executed so that its second statistics table 267 can be updated to capture the actual reference of the prefetch object.
At 20, a prefetch reference message is sent to the content server 20. In effect, the prefetch reference message is passed through the proxy hierarchy to the content server 20.
So that the second statistics table of each intermediate proxy is also updated. If the object is not in the second prefetch cache 249 at block 910, then at reference block 915, the object request is sent to the content server 20 through the proxy hierarchy.

【0124】 事前取出し参照メッセージはバッチ化することができる。すなわち事前取出し
参照リストを維持することができ、事前取出し参照リスト上の全てのオブジェク
トの参照を確認するために、複合事前取出し参照メッセージは定期的に上位サー
バに送られる。
The prefetch reference message can be batched. That is, the prefetched reference list can be maintained, and the compound prefetched reference message is periodically sent to the upper server in order to confirm the references of all objects on the prefetched reference list.

【0125】 図11は、プロキシ・サーバ論理295の動作の例を示す。要約すると、入力
は、この入力がオブジェクト要求か、オブジェクト転送か、それとも事前取出し
参照メッセージであるかによって格納される。入力によって、3種類のハンドラ
またはソフトウェア・ルーチン、すなわちプロキシ・オブジェクト要求ハンドラ
283、プロキシ・オブジェクト・ハンドラ284、および事前取出し参照メッ
セージ・ハンドラ285が利用可能である。
FIG. 11 shows an example of the operation of the proxy server logic 295. In summary, the input is stored depending on whether the input is an object request, an object transfer, or a prefetch reference message. Depending on the input, three types of handlers or software routines are available: a proxy object request handler 283, a proxy object handler 284, and a prefetch reference message handler 285.

【0126】 最初に参照ブロック1005で、プロキシ・サーバ24は入力を待つ。判断ブ
ロック1010で、受け取った入力がオブジェクトOに対するオブジェクト要求
である場合、ブロック1015でプロキシ・サーバ24はそのオブジェクトOに
関して保留中の要求がすでに存在するかどうかを検査する。保留中の要求は、こ
のプロキシ・サーバ24によって送り出されたそのオブジェクトOの事前取出し
要求、またはプロキシ・サーバ階層で下位にある別のプロキシ・サーバから起こ
されたオブジェクトOへの以前の要求によるものとすることができる。参照ブロ
ック1015でオブジェクトOに保留中の要求が無い場合、ブロック1020で
プロキシ・オブジェクト要求ハンドラ283が呼び出される。判断ブロック10
25で、受け取った入力が(上位プロキシからの)オブジェクトである場合、参
照ブロック1030でプロキシ・オブジェクト・ハンドラ284が呼び出される
。そうでない場合、ブロック1040で受け取った入力が事前取出し参照メッセ
ージであれば、ブロック1045で事前取出し参照メッセージ・ハンドラ285
が呼び出される。本発明の焦点ではない(FTP要求など)他の種類の入力の場
合、ブロック1060で適切な雑ハンドラを呼び出すことができる。
First, at reference block 1005, the proxy server 24 waits for input. If, at decision block 1010, the received input is an object request for object O, then at block 1015 the proxy server 24 checks whether there is already a pending request for that object O. The pending request may be due to a prefetch request for that object O sent by this proxy server 24, or a previous request to object O originating from another proxy server lower down in the proxy server hierarchy. It can be. If there is no pending request for object O in reference block 1015, then proxy object request handler 283 is called in block 1020. Decision block 10
At 25, if the input received is an object (from an upstream proxy), then at reference block 1030, the proxy object handler 284 is called. Otherwise, if the input received at block 1040 is a prefetch reference message, then at block 1045 the prefetch reference message handler 285
Is called. For other types of input that are not the focus of the present invention (such as an FTP request), the appropriate miscellaneous handler can be invoked at block 1060.

【0127】 図12は、プロキシ・オブジェクト要求ハンドラ283の動作の例を示す。要
約すると、オブジェクトが事前取出しキャッシュにある場合、オブジェクトは、
要求したクライアントまたは要求したプロキシ・サーバに返されるか送られる。
その後、要求オブジェクトが事前取出し要求であった場合、要求オブジェクトは
プロキシ・サーバ24の第1事前取出しキャッシュ296から削除可能とマーク
される。要求オブジェクトに事前取出し要求が提供されなかった場合、事前取出
し参照メッセージがコンテンツ・サーバ20に送られる。しかし、事前取出し参
照メッセージが送られるのは、要求オブジェクトが第1事前取出しキャッシュ2
96から送られるときだけである。要求オブジェクトが第1事前取出しキャッシ
ュ296にも第1主キャッシュ294にも無い場合、オブジェクト要求は別のプ
ロキシ・サーバ24またはコンテンツ・サーバ20に送られる。第1主キャッシ
ュ294内で見つかった要求オブジェクトは、要求したクライアントまたはプロ
キシ・サーバ24に返されるか送られ、要求が事前取出し要求でなかった場合は
、第1統計テーブル293が更新される。
FIG. 12 shows an example of the operation of the proxy object request handler 283. In summary, if an object is in the prefetch cache, the object
Returned or sent to the requesting client or requesting proxy server.
Thereafter, if the request object was a prefetch request, the request object is marked as removable from the first prefetch cache 296 of the proxy server 24. If a prefetch request was not provided to the request object, a prefetch reference message is sent to the content server 20. However, the prefetch reference message is sent because the request object is in the first prefetch cache 2
Only when sent from 96. If the requested object is not in the first prefetch cache 296 or the first main cache 294, the object request is sent to another proxy server 24 or content server 20. The request object found in the first main cache 294 is returned or sent to the requesting client or proxy server 24, and if the request was not a prefetch request, the first statistics table 293 is updated.

【0128】 最初に判断ブロック1105で、要求オブジェクトOが事前取出しキャッシュ
内で見つかると、ブロック1130で、オブジェクトOは要求ノードに返される
。判断ブロック1135で要求が事前取出し要求である場合、ブロック1150
で第1事前取出しキャッシュ296のオブジェクトOは削除可能とマークされる
。第1事前取出しキャッシュ296からオブジェクトを削除すると、事前取出し
オブジェクトOが今プロキシ・サーバ24の下位階層の幾つかのノードによって
事前取出しされたので、将来の事前取出しのための空間ができる。そうでなけれ
ば、参照ブロック1140で、キャッシュ・マネージャが呼び出され、オブジェ
クトOは実際に参照されたので、オブジェクトOが第1事前取出しキャッシュ2
96から第1主キャッシュ294に移動される。ブロック1160で、事前取出
し参照メッセージがプロキシ階層サーバを通してコンテンツ・サーバ20に送ら
れる。ブロック1170で更新統計ルーチンが呼び出され、局所第1統計テーブ
ル293が事前取出しオブジェクトOの実際の参照を取り込むように更新される
。判断ブロック1110でオブジェクトOが第1主キャッシュ294で見つから
ない場合、参照ブロック1125でオブジェクト要求はプロキシ・サーバ階層を
通してコンテンツ・サーバ20に送られる。判断ブロック1115で、オブジェ
クト要求が事前取出し要求である場合、ブロック1120で第1更新統計ルーチ
ン264が呼び出され、オブジェクトの実際の参照を取り込むように、局所第1
統計テーブル293が更新される。ブロック1180で、オブジェクトOは要求
したノードに返される。
Initially, at decision block 1105, if the requested object O is found in the prefetch cache, at block 1130, the object O is returned to the requesting node. If the request is a prefetch request at decision block 1135, block 1150
The object O of the first prefetch cache 296 is marked as deleteable. Deleting an object from the first prefetch cache 296 provides space for future prefetch as the prefetch object O has now been prefetched by some nodes below the proxy server 24. Otherwise, at reference block 1140, the cache manager is called and object O is actually referenced and object O is now in the first prefetch cache 2
From 96, it is moved to the first main cache 294. At block 1160, a prefetch reference message is sent to the content server 20 through the proxy hierarchy server. At block 1170, the update statistics routine is called and the local first statistics table 293 is updated to capture the actual reference of the prefetched object O. If the object O is not found in the first primary cache 294 at decision block 1110, the object request is sent to the content server 20 through the proxy server hierarchy at reference block 1125. At decision block 1115, if the object request is a pre-fetch request, then at block 1120 the first update statistics routine 264 is called to make the local first
The statistics table 293 is updated. At block 1180, object O is returned to the requesting node.

【0129】 図13は、事前取出し参照メッセージ・ハンドラ285の動作の例を示す。事
前取出し参照メッセージ・ハンドラ285は最初に、オブジェクトが第1事前取
出しキャッシュ296にあるか否かを調べる。オブジェクトが第1事前取出しキ
ャッシュ296にある場合、事前取出し参照メッセージを転送する前にキャッシ
ュ・マネージャ・ルーチンが呼び出される。オブジェクトが第1事前取出しキャ
ッシュ296に無い場合、事前取出し参照メッセージが転送される。
FIG. 13 shows an example of the operation of the prefetch reference message handler 285. Prefetch reference message handler 285 first checks to see if the object is in first prefetch cache 296. If the object is in the first prefetch cache 296, the cache manager routine is called before forwarding the prefetch reference message. If the object is not in the first prefetch cache 296, a prefetch reference message is forwarded.

【0130】 最初にステップ1205で、第1更新統計ルーチン264が呼び出され、事前
取出しオブジェクト(O)の実際の参照を取り込むように局所第1統計テーブル
293が更新される。判断ブロック1210で、オブジェクトOが第1事前取出
しキャッシュ296にある場合、参照ブロック1215でキャッシュ・マネージ
ャが呼び出され、オブジェクトは実際に参照されたので、オブジェクトOは第1
事前取出しキャッシュ296から第1主キャッシュ294に移動される。ブロッ
ク1220で、事前取出し参照メッセージは次の上位プロキシに転送される。
First, in step 1205, the first update statistics routine 264 is called, and the local first statistics table 293 is updated to capture the actual reference of the prefetched object (O). At decision block 1210, if the object O is in the first prefetch cache 296, the cache manager is called at reference block 1215 and the object O is first referenced because the object was actually referenced.
The prefetch cache 296 is moved to the first main cache 294. At block 1220, the prefetch reference message is forwarded to the next higher level proxy.

【0131】 図14は、プロキシ・オブジェクト・ハンドラ284の動作の例を示す。プロ
キシ・オブジェクト・ハンドラ284は最初に、事前取出し更新ユニット291
または事前取出しヒント情報更新ルーチンを例外なく一律に呼び出す。事前取出
しオブジェクトが下位サーバによって要求されたか否かによって、事前取出しオ
ブジェクト要求は異なる方法で処理される。事前取出しオブジェクトが下位サー
バによって要求された場合、オブジェクトはその下位サーバに返される。そうで
ない場合、事前取出しキャッシュ・マネージャが呼び出される。事前取出しオブ
ジェクトが要求されない場合、オブジェクトは要求したプロキシ・サーバ24ま
たはクライアントに返され、第1更新統計ルーチン264が呼び出される。
FIG. 14 shows an example of the operation of the proxy object handler 284. The proxy object handler 284 first starts with the prefetch update unit 291
Alternatively, the prefetching hint information update routine is called uniformly without exception. Prefetched object requests are handled differently depending on whether the prefetched object was requested by a subordinate server. If a pre-fetched object was requested by a child server, the object is returned to that child server. Otherwise, the prefetch cache manager is called. If a prefetch object is not requested, the object is returned to the requesting proxy server 24 or client, and a first update statistics routine 264 is called.

【0132】 最初に参照ブロック1305で、オブジェクトOのPHIを更新するために、
PHI更新ルーチンまたは事前取出し更新手段291が呼び出される。参照ブロ
ック1310で受け取ったオブジェクトが事前取出しオブジェクトでない場合、
ステップ1315で第1事前取出しハンドラ248が呼び出される。参照ブロッ
ク1320で、オブジェクトは要求したノード(下位階層)に返される。PIC
Sプロトコルを使用する好適な実施形態では、対応する事前取出し候補(識別子
カテゴリ値によって指定される)がこのプロキシ・サーバ24によって事前取出
しされる場合、Pラベル内のキャッシング・カテゴリ値が更新される。ブロック
1325で、オブジェクトを主キャッシュに格納するために、キャッシュ・マネ
ージャが呼び出される。参照ブロック1355で、更新統計ルーチンが呼び出さ
れる。ブロック1330で、受け取った事前取出しオブジェクトが階層内の下位
ノードによって要求される場合、参照ブロック1350でオブジェクトは要求者
に返される。そうでない場合、それは現在のノードによって要求され、参照ブロ
ック1340で事前取出しキャッシュ・マネージャが呼び出され、オブジェクト
のための空間を作るために必要な置換を行うことによって、事前取出しキャッシ
ュにオブジェクトが格納される。
First, at reference block 1305, to update the PHI of object O,
The PHI update routine or the prefetch update unit 291 is called. If the object received at reference block 1310 is not a pre-fetched object,
In step 1315, the first prefetch handler 248 is called. At reference block 1320, the object is returned to the requested node (lower hierarchy). PIC
In a preferred embodiment using the S protocol, the caching category value in the P label is updated if the corresponding prefetch candidate (specified by the identifier category value) is prefetched by this proxy server 24. . At block 1325, the cache manager is called to store the object in the main cache. At reference block 1355, the update statistics routine is called. If, at block 1330, the received pre-fetched object is requested by a lower node in the hierarchy, the object is returned to the requestor at reference block 1350. If not, it is requested by the current node and the prefetch cache manager is called at reference block 1340 to store the object in the prefetch cache by making the necessary substitutions to make room for the object. You.

【0133】 図15は、事前取出し更新手段291またはPHI更新ルーチンの例を示す。
PHI更新ルーチンは、要求オブジェクトの局所カウントを閾カウントと比較す
る。要求オブジェクトが第1最小閾値を超える場合、それらは第2最小閾値試験
を受ける。閾値は、試験結果に基づいて設定することができる。局所カウントが
第1最小閾値未満である場合、元の事前取出しヒント情報リストが維持される。
局所カウントが第1閾値より大きいが、第2閾値より大きくはない場合、事前取
出しヒント情報リストは変更される。
FIG. 15 shows an example of the prefetch update unit 291 or the PHI update routine.
The PHI update routine compares the request object's local count to the threshold count. If the requested objects exceed a first minimum threshold, they undergo a second minimum threshold test. The threshold can be set based on the test results. If the local count is less than the first minimum threshold, the original pre-fetch hint information list is maintained.
If the local count is greater than the first threshold but not greater than the second threshold, the prefetch hint information list is changed.

【0134】 最初に判断ブロック1405で、局所第1統計テーブル293におけるオブジ
ェクト(O)の局所カウント(Tカウント)が第1最小閾値(CTM)より大き
い場合、オブジェクトOのヘッダにおける元のPHIは維持される。これは単に
、プロキシ・サーバ24の下位階層に、更新動作を保証するための充分なオブジ
ェクトの参照が無いという事実による。判断ブロック1415で、局所統計テー
ブル261内のオブジェクト(O)の局所カウント(Tカウント)が第2最小閾
値(TCH)より大きい場合、オブジェクト・ヘッダ内の元のPHIは無視され
、ブロック1420で、局所第1統計テーブル293に基づいてPHIを生成す
るために、PHI生成ルーチンが呼び出される。これは、プロキシ・サーバ24
の階層の下位に、局所動作に基づいてPHIを生成するための充分なオブジェク
トへの参照があるからである。そうでない場合、参照ブロック1425でPHI
変更ルーチンが呼び出され、PHIリスト内の各オブジェクトについて参照確率
の局所推定値およびヘッダ内のそれ(上位階層によって設定される)の平均を取
ることによって、確率カテゴリ値が変更される。
First, at decision block 1405, if the local count (T count) of object (O) in local first statistics table 293 is greater than the first minimum threshold (CTM), the original PHI in the header of object O is maintained Is done. This is simply due to the fact that there are not enough object references in the lower tier of the proxy server 24 to guarantee the update operation. If, at decision block 1415, the local count (T count) of the object (O) in the local statistics table 261 is greater than a second minimum threshold (TCH), the original PHI in the object header is ignored and at block 1420, To generate a PHI based on the local first statistics table 293, a PHI generation routine is called. This is the proxy server 24
There are enough references to objects below the hierarchy to generate a PHI based on local actions. Otherwise, the PHI at reference block 1425
The change routine is called to change the probability category value by taking a local estimate of the reference probability for each object in the PHI list and averaging it in the header (set by the upper layer).

【0135】 プロキシ・サーバ24の一部が第1統計テーブル293を維持せず、局所参照
パターンを追跡する場合でも、事前取出しスキームは機能する。非追跡プロキシ
・サーバは単に、上位プロキシ・サーバまたはコンテンツ・サーバ20から下に
渡されるPHI内の確率(つまりPROB)カテゴリ値を受け入れるだけである
The prefetch scheme works even if some of the proxy servers 24 do not maintain the first statistics table 293 and track local reference patterns. The untracked proxy server simply accepts the probability (ie, PROB) category value in the PHI passed down from the upstream proxy server or content server 20.

【0136】 プロキシ・サーバの一部が事前取出しプロトコルを理解せずかつ協調に参加し
ない従来のプロキシ・サーバである不均質なプロキシ・サーバ環境でも、事前取
出しスキームは機能する。これらの従来のプロキシ・サーバは、オブジェクト・
ヘッダを解釈して事前取出し動作を開始することもなく、第1統計テーブル29
3も維持しない。従来のプロキシ・サーバは、オブジェクトと共にメタ・データ
(例えばヘッダ内のPICSラベル)を次のレベルのプロキシ・サーバに渡すか
、またはそれがオブジェクトを局所的にキャッシュに保存することを決定した場
合、オブジェクトと共にメタ・データを格納するだけである。
The prefetch scheme also works in a heterogeneous proxy server environment where some of the proxy servers are conventional proxy servers that do not understand the prefetch protocol and do not participate in cooperation. These traditional proxy servers are
The first statistical table 29 is not interpreted without starting the prefetching operation by interpreting the header.
No 3 is maintained. A conventional proxy server either passes meta data (eg, a PICS label in the header) along with the object to the next level proxy server, or if it decides to cache the object locally, It simply stores the meta data with the object.

【0137】 プロキシ階層が存在しない場合でも、本発明は任意のネットワークまたはクラ
イアント・サーバ環境に適用することができる。オブジェクト・センダ・ノード
は参照パターンを追跡し、PHIを導出し、それをオブジェクト・ヘッダに含め
ることができる。さらに、オブジェクト・レシーバ・ノードは、そのキャッシュ
内にオブジェクトと共にPHIを格納することができる。オブジェクトを参照し
た後、格納されたPHIおよび前述のようにキャッシュ・サイズおよびアクセス
費用などの局所的要素に基づいて、事前取出し動作を開始することができる。
The present invention can be applied to any network or client-server environment, even if there is no proxy hierarchy. The object sender node can track the reference pattern, derive the PHI, and include it in the object header. In addition, the object receiver node can store the PHI with the object in its cache. After referencing the object, a prefetch operation can be initiated based on the stored PHI and local factors such as cache size and access costs as described above.

【0138】 キャッシュされるオブジェクトと共にPHIを格納することにより、事前取出
しの追加機会がもたらされる。より多くの記憶場所が利用可能になり、追加参照
が発生し、あるいは事前取出しオブジェクトを受け取るなどの事象を使用して、
キャッシュされたオブジェクトのPHIを調べることによって、追加事前取出し
をトリガすることができる。事前取出し動作は、送信側で起動法の場合のように
、オブジェクトがサーバから要求された瞬間に制約されない。
Storing the PHI with the objects to be cached provides additional opportunities for prefetching. Using events such as more storage locations becoming available, additional references occurring, or receiving prefetched objects,
By examining the PHI of the cached object, an additional prefetch can be triggered. The prefetch operation is not constrained at the moment when the object is requested from the server, as in the case of the activation method at the sender.

【0139】 好適な実施形態で、ウェブおよびプロキシ・サーバの一般的事前取出し方針を
説明したが、しかし当業者は、本発明が、事前取出しされるオブジェクトが同様
の特性を持つどんな種類の状況にも適用可能であり、必ずしもインターネットま
たはWWWアプリケーションだけに制限されないことを理解されるであろう。
Although the preferred embodiment has described the general pre-fetch policy for web and proxy servers, those skilled in the art will appreciate that the present invention can be used in any kind of situation where pre-fetched objects have similar characteristics. It will be understood that this is also applicable and is not necessarily limited to Internet or WWW applications only.

【0140】 さらに、本発明の好適な実施形態は、階層内の親と子プロキシ間の協調的な事
前取出しの場合であるが、それは兄弟プロキシ間の協調を含めるように、容易に
適応することができる。例えば、上位階層のプロキシが要求オブジェクトまたは
事前取出し候補をキャッシュしていない場合、プロキシは兄弟プロキシに問い合
わせることもできる。
Furthermore, the preferred embodiment of the present invention is the case of cooperative prefetching between parent and child proxies in a hierarchy, but it is easily adapted to include cooperation between sibling proxies. Can be. For example, if a higher-level proxy does not cache the request object or prefetch candidate, the proxy can also query a sibling proxy.

【図面の簡単な説明】[Brief description of the drawings]

【図1】 コンテンツ・サーバ(ウェブ・サイト)、ネットワーク(インターネット)、
プロキシ・サーバ階層、およびクライアントを示すブロック図である。
FIG. 1 Content server (web site), network (Internet),
FIG. 2 is a block diagram illustrating a proxy server hierarchy and clients.

【図2】 コンテンツ・サーバ、クライアント、およびプロキシ・サーバを図1より詳し
く示す別のブロック図である。
2 is another block diagram illustrating the content server, client, and proxy server in more detail than FIG.

【図3】 プロキシ・サーバの階層を介してコンテンツ・サーバからデータを動的に事前
に取り出すための方法を示す流れ図である。
FIG. 3 is a flowchart illustrating a method for dynamically pre-fetching data from a content server through a hierarchy of proxy servers.

【図4】 統計テーブルの例を示す図である。FIG. 4 is a diagram illustrating an example of a statistics table.

【図5】 コンテンツ・サーバの動作を示す流れ図である。FIG. 5 is a flowchart showing the operation of the content server.

【図6】 統計の更新を示す流れ図である。FIG. 6 is a flowchart showing updating of statistics.

【図7】 事前取出しヒント情報の生成を示す流れ図である。FIG. 7 is a flowchart showing generation of advance extraction hint information.

【図8】 クライアントの動作を示す流れ図である。FIG. 8 is a flowchart showing the operation of the client.

【図9】 事前取出しを示す流れ図である。FIG. 9 is a flowchart showing advance removal.

【図10】 クライアント・オブジェクト要求ハンドラの動作を示す流れ図である。FIG. 10 is a flowchart showing the operation of a client object request handler.

【図11】 プロキシ・サーバの動作を示す流れ図である。FIG. 11 is a flowchart showing the operation of the proxy server.

【図12】 プロキシ・オブジェクト要求ハンドラの動作を示す流れ図である。FIG. 12 is a flowchart showing the operation of the proxy object request handler.

【図13】 事前取出し参照メッセージ・ハンドラの動作を示す流れ図である。FIG. 13 is a flowchart showing the operation of the prefetch reference message handler.

【図14】 プロキシ・オブジェクト・ハンドラの動作を示す流れ図である。FIG. 14 is a flowchart showing the operation of the proxy object handler.

【図15】 事前取出しヒント情報更新ルーチンの動作を示す流れ図である。FIG. 15 is a flowchart showing the operation of a prefetching hint information updating routine.

───────────────────────────────────────────────────── フロントページの続き (72)発明者 ユー、フィリップ、シーラング アメリカ合衆国10514 ニューヨーク州チ ャパクア ストーノウェイ 18 Fターム(参考) 5B075 KK04 KK07 ND20 ND36 NK02 PQ02 PQ32 PQ42 PR03 PR08 QP10 QT03 UU40 5B082 FA03 FA11 GC04 5K030 HA06 HC01 JT02 KA01 KA06 KA07 【要約の続き】 選択情報を事前に取り出す最終決定は、事前取出しヒン ト情報および事前取出しヒント値に基づいて行われる。 事前取出しヒント値は、記憶場所の制約およびアクセス 時間などの局所ノード特定的な要素に基づいて計算され る。──────────────────────────────────────────────────続 き Continuing on the front page (72) Inventor Yu, Philip, Sea Lang United States 10514 Chapaqua Stornoway, New York 18 F term (reference) 5B075 KK04 KK07 ND20 ND36 NK02 PQ02 PQ32 PQ42 PR03 PR08 QP10 QT03 UU40 5B082 FA03 FA11 GC04 5K030 HA HC01 JT02 KA01 KA06 KA07 [Continued Summary] The final decision to prefetch selection information is based on prefetch hint information and prefetch hint values. Prefetch hint values are calculated based on local node specific factors such as storage constraints and access times.

Claims (35)

【特許請求の範囲】[Claims] 【請求項1】 コンテンツ・サーバに関連付けられた1つまたは複数のクライアント(22)
が通信ネットワーク(25)および1つまたは複数のプロキシ・サーバ(24)
を介して選択情報に容易にアクセスできるようにするために、コンテンツ・サー
バ(20)から選択情報を事前に取り出す方法であって、 プロキシ・サーバの少なくとも1つから情報を要求するステップ(100)と
、 前記クライアントのいずれかによる要求情報の過去の検索またはアクセスに基
づいて、前記クライアントのための事前取出しヒント情報を確立するステップ(
102、104)と、 要求情報に前記事前取出しヒント情報を注釈として付加するステップ(105
)と、 事前取出しヒント情報および要求情報に基づいて、前記サーバのいずれかから
選択情報を事前に取り出すステップ(108)と を含む方法。
1. One or more clients (22) associated with a content server.
A communication network (25) and one or more proxy servers (24)
Prior to retrieving the selection information from the content server (20) so that the selection information can be easily accessed via the method, requesting the information from at least one of the proxy servers (100) Establishing pre-fetch hint information for the client based on a past search or access of request information by any of the clients (
102, 104) and a step of adding the pre-fetched hint information to the request information as an annotation (105).
) And pre-fetching selection information from any of the servers based on pre-fetch hint information and request information (108).
【請求項2】 前記要求情報が要求オブジェクトを含み、前記選択情報が事前取出し候補オブ
ジェクトを含む、請求項1に記載の方法。
2. The method of claim 1, wherein the request information includes a request object and the selection information includes a pre-fetch candidate object.
【請求項3】 事前取出しヒント情報を確立する前記ステップが、 前記クライアントに関連付けられたデータ参照パターンを追跡するステップと
、 データ参照パターンをオブジェクト識別子のグループに編成するステップであ
って、前記オブジェクト識別子のグループが要求オブジェクトと事前取出し候補
オブジェクトの関係に従って編成される編成ステップと、 事前取出し候補オブジェクトと要求オブジェクトの間で、前記事前取出し候補
オブジェクトを選択情報として事前に取り出すのを保証するのに充分な関係を有
するのは前記グループのうちのどれであるかを決定するステップと を含む、請求項2に記載の方法。
3. The method of claim 1, wherein the step of establishing prefetch hint information comprises: tracking a data reference pattern associated with the client; and organizing the data reference pattern into a group of object identifiers. Forming a group according to the relationship between the request object and the pre-fetch candidate object; and ensuring that the pre-fetch candidate object is pre-fetched as selection information between the pre-fetch candidate object and the request object. Determining which of the groups has a sufficient relationship.
【請求項4】 データ参照パターンを追跡し、かつ編成する前記ステップが、 プロキシ・サーバに参照データ・パターンを格納するためのデータベースを確
立するステップと、 前記データベースの各々の中にフィールドを配列するステップであって、前記
フィールドがオブジェクト識別子およびオブジェクト・カウントを含み、前記オ
ブジェクト識別子が要求オブジェクトを相互に区別し、前記オブジェクト・カウ
ントが前記サーバの1つによって観察された要求オブジェクトの要求回数を示す
ステップと、 前記データベースにアクセス・リストを関連付けるステップであって、前記ア
クセス・リストの各々が各要求オブジェクトに関連付けられる1つまたは複数の
事前取出し候補オブジェクトを含むステップと を含む、請求項3に記載の方法。
4. The step of tracking and organizing data reference patterns comprises: establishing a database for storing reference data patterns in a proxy server; and arranging fields in each of the databases. Step, wherein the fields include an object identifier and an object count, wherein the object identifier distinguishes request objects from each other, and wherein the object count indicates a number of requests for the request object observed by one of the servers. 4. The method of claim 3, comprising: associating an access list with the database, wherein each of the access lists includes one or more prefetch candidate objects associated with each request object. of Law.
【請求項5】 データ参照パターンを追跡し、かつ編成する前記ステップが、 要求オブジェクトと事前取出し候補オブジェクトの関係を定義するデータベー
スを確立するステップと、 要求オブジェクトおよび事前取出し候補オブジェクトに関するアクセス統計を
追跡するステップであって、前記アクセス統計が要求オブジェクトの親オブジェ
クト・アクセス頻度と事前取出し候補オブジェクトの子オブジェクト・アクセス
頻度とを含み、前記親オブジェクト・アクセス頻度は要求オブジェクトのうちの
特定の1つが前記クライアントの少なくとも1つによって要求される回数を表し
、前記子オブジェクト・アクセス頻度は、前記特定の1つのアクセスのすぐ後に
前記事前取出し候補オブジェクトの1つまたは複数が実際に要求された回数を表
すステップと をさらに含む、請求項3または4に記載の方法。
5. The step of tracking and organizing a data reference pattern comprises: establishing a database defining a relationship between a request object and a prefetch candidate object; and tracking access statistics for the request object and the prefetch candidate object. The access statistics include a parent object access frequency of the request object and a child object access frequency of the prefetch candidate object, wherein the parent object access frequency is such that a particular one of the request objects is The child object access frequency represents the number of times one or more of the prefetch candidate objects was actually requested immediately after the particular one access. Further comprising the steps, the method according to claim 3 or 4.
【請求項6】 子オブジェクト・アクセス頻度に関連付けられた親オブジェクト・アクセス頻
度に対する前記子オブジェクト・アクセス頻度の比に基づいて、事前取出し候補
オブジェクトの事前取出しリストを選択するステップをさらに含み、前記事前取
出しリストが閾確率を超える比を有する事前取出し候補オブジェクトのみを含む
、請求項5に記載の方法。
6. The method of claim 1, further comprising: selecting a prefetch list of prefetch candidate objects based on a ratio of the child object access frequency to a parent object access frequency associated with the child object access frequency. The method of claim 5, wherein the pre-fetch list includes only pre-fetch candidate objects having a ratio that exceeds a threshold probability.
【請求項7】 選択情報を事前に取り出す前記ステップが、 前記プロキシ・サーバの1つまたは前記クライアントの1つで受け取られる事
前取出し候補オブジェクトのサブセットを事前に取り出すステップと、 前記プロキシ・サーバの1つで利用可能な記憶容量に基づいて、前記事前取出
し候補オブジェクトのサブセットを選択情報として選択するステップと を含む、請求項2ないし6のいずれか一項に記載の方法。
7. The method according to claim 1, wherein the step of pre-retrieving selection information comprises: pre-retrieving a subset of pre-retrieve candidate objects received at one of said proxy servers or one of said clients. Selecting the subset of the pre-fetched candidate objects as selection information based on available storage capacity at any one time.
【請求項8】 選択情報を事前に取り出す前記ステップが、 前記プロキシ・サーバの1つまたは前記クライアントの1つで受け取られる事
前取出し候補オブジェクトのサブセットを事前に取り出すステップと、 前記プロキシ・サーバの1つにおけるアクセス時間に基づいて、事前取出し候
補オブジェクトのサブセットを選択情報として選択するステップと を含む、請求項2ないし7のいずれか一項に記載の方法。
8. The method of claim 1, further comprising: retrieving a subset of prefetched candidate objects received at one of the proxy servers or one of the clients; Selecting a subset of the pre-fetch candidate objects as selection information based on the access time in one of the plurality of candidate objects.
【請求項9】 前記選択オブジェクトおよび前記要求オブジェクトがインターネット・データ
を含み、前記要求オブジェクトがインターネット・データに関連付けられたハイ
パーテキスト転送プロトコル(HTTP)リンクを介して選択オブジェクトを参
照し、前記プロキシ・サーバが、要求オブジェクトのオブジェクトヘッダに格納
された要求オブジェクトのユニバーサル・リソース・ロケータすなわちURLの
HTTPプロトコルを通して、要求オブジェクトに対する選択オブジェクトの関
係を識別する、請求項2ないし8のいずれか一項に記載の方法。
9. The proxy object, wherein the selected object and the request object include Internet data, wherein the request object references the selected object via a hypertext transfer protocol (HTTP) link associated with the Internet data, and wherein the proxy object includes: 9. The server of claim 2, wherein the server identifies the relationship of the selected object to the request object through the request object's Universal Resource Locator (URL) HTTP protocol stored in the request object's object header. the method of.
【請求項10】 要求情報に注釈を付加する前記ステップが、インターネット・コンテンツ選択
(PICS)フォーマットのプラットフォームまたはPICSフォーマットと互
換可能なラベル・プロトコルを有する事前取出しラベルに、事前取出しヒント情
報を配置するステップを含む、請求項2ないし9のいずれか一項に記載の方法。
10. The step of annotating the request information comprises placing the prefetch hint information on a prefetch label having a platform in an Internet Content Selection (PICS) format or a label protocol compatible with the PICS format. The method according to any one of claims 2 to 9, comprising a step.
【請求項11】 前記インターネット・コンテンツ選択(PICS)フォーマットのプラットフ
ォームがオブジェクト識別子カテゴリおよび参照側識別子カテゴリを含み、前記
方法が、実際に参照された事前取出し候補オブジェクトを識別するために前記参
照側識別子カテゴリをコンテンツ・サーバに返すステップをさらに含む、請求項
10に記載の方法。
11. The internet content selection (PICS) format platform includes an object identifier category and a referrer identifier category, and wherein the method includes the step of identifying the referrer identifier to identify a pre-fetch candidate object that was actually referenced. The method of claim 10, further comprising returning the category to a content server.
【請求項12】 事前取出しヒント情報を確立する前記ステップが、 要求情報の過去の検索または以前のアクセスに基づいて、前記クライアントの
データ参照パターンを識別するステップであって、前記データ参照パターンが前
記プロキシ・サーバの1つに関連付けられた前記クライアントのうちの様々なク
ライアントによる過去の検索またはアクセスの一般的傾向を表すように選択され
るステップと、 前記データ参照パターンから事前取出しヒント情報を定義するステップと を含む、請求項1または2に記載の方法。
12. The method according to claim 12, wherein the step of establishing the pre-fetch hint information comprises the step of identifying a data reference pattern of the client based on a past search or previous access to request information, wherein the data reference pattern is Selected to represent a general trend of past searches or accesses by various of the clients associated with one of the proxy servers; and defining prefetch hint information from the data reference pattern. The method according to claim 1 or 2, comprising the steps of:
【請求項13】 前記プロキシ・サーバの階層があり、前記階層が送信ノードおよび受信ノード
を含み、前記方法が、 前記送信ノードから前記受信ノードへ事前取出しヒント情報を伝送するステッ
プと、 前記事前取出しヒント情報を初期状態から最終状態に変更するステップであっ
て、前記初期状態は送信ノードによって決定され、前記最終状態は前記受信ノー
ドによって決定され、前記最終情報の事前取出しヒント情報が最終事前取出し決
定として指定されるステップと をさらに含む、請求項1ないし12のいずれか一項に記載の方法。
13. There is a hierarchy of the proxy server, wherein the hierarchy includes a sending node and a receiving node, wherein the method comprises: transmitting prefetch hint information from the sending node to the receiving node; Changing the extraction hint information from an initial state to a final state, wherein the initial state is determined by a transmitting node, the final state is determined by the receiving node, and the pre-extraction hint information of the final information is final pre-extraction. 13. The method according to any one of the preceding claims, further comprising: a step designated as a decision.
【請求項14】 選択情報を事前に取り出す前記ステップが受信ノードによって起動される、請
求項13に記載の方法。
14. The method of claim 13, wherein the step of pre-retrieving the selection information is triggered by a receiving node.
【請求項15】 プロキシ・サーバをサーバの階層に編成するステップであって、前記階層が複
数のレベルのプロキシ・サーバを有し、前記複数のレベルが前記プロキシ・サー
バの各々のネットワークへの近接性に基づいて決定され、ネットに最も近いレベ
ルを最上位とするステップと、 前記階層を介してプロキシ・サーバからクライアントまで伝送される事前取出
しヒント情報を解釈し、かつ更新するステップと、 をさらに含む、請求項1ないし12のいずれか一項に記載の方法。
15. The step of organizing proxy servers into a hierarchy of servers, the hierarchy having a plurality of levels of proxy servers, wherein the plurality of levels are in proximity to a network of each of the proxy servers. Determining the level closest to the net to the highest level, and interpreting and updating the prefetch hint information transmitted from the proxy server to the client via the hierarchy. 13. The method according to any one of the preceding claims, comprising:
【請求項16】 要求情報への局所参照が存在する場合、および局所レベルのサーバのカウント
が最小閾カウントを超える場合に、プロキシ・サーバが事前取出しヒント情報を
更新する、請求項15に記載の方法。
16. The proxy server of claim 15, wherein the proxy server updates the prefetch hint information if there is a local reference to the request information and if the local level server count exceeds a minimum threshold count. Method.
【請求項17】 前記事前取出しヒント情報がプロキシ階層のキャッシング状態に基づいて更新
される、請求項15または16に記載の方法。
17. The method according to claim 15, wherein the prefetch hint information is updated based on a caching state of a proxy layer.
【請求項18】 ネットワーク(25)を介してコンテンツ・サーバ(20)から選択情報を事
前に取り出すためのデータ処理システムであって、ネットワークに関連付けられ
た1つまたは複数のプロキシ・サーバ(24)と、ネットワークを介してコンテ
ンツ・サーバおよびプロキシ・サーバの1つまたは複数と通信するためのクライ
アントとを含むデータ処理システムにおいて、 前記プロキシ・サーバの少なくとも1つから情報を要求する手段と、 前記クライアントのいずれかによる要求情報の過去の検索またはアクセスに基
づいて、前記クライアントのための事前取出しヒント情報を確立する手段と、 要求情報に前記事前取出しヒント情報を注釈として付加する手段と、 前記事前取出しヒント情報および要求情報に基づいて、前記サーバのいずれか
から選択情報を事前に取り出す手段と を含むデータ処理システム。
18. A data processing system for prefetching selection information from a content server (20) via a network (25), the system comprising one or more proxy servers (24) associated with the network. A data processing system comprising: a client for communicating with one or more of a content server and a proxy server via a network; means for requesting information from at least one of the proxy servers; Means for establishing prefetching hint information for the client based on a past search or access of the request information by any of: a means for adding the prefetching hint information as an annotation to the request information; Based on the pre-fetching hint information and request information, Data processing system including a means for extracting in advance a selection information from any of the bus.
【請求項19】 要求情報が要求オブジェクトを含み、前記選択情報が事前取出し候補オブジェ
クトを含み、前記プロキシ・サーバの各々および前記クライアントの少なくとも
1つが主キャッシュと事前取出しキャッシュとの間に少なくとも1つの論理的分
離を有するメモリを有し、事前取出し選択情報が事前取出しキャッシュに格納さ
れる、請求項18に記載の処理システム。
19. The request information includes a request object, the selection information includes a prefetch candidate object, and each of the proxy servers and at least one of the clients has at least one between a main cache and a prefetch cache. 19. The processing system of claim 18, comprising a memory with logical separation, wherein prefetch selection information is stored in a prefetch cache.
【請求項20】 前記事前取出し手段がオブジェクトを事前に取り出し、かつ事前取出しされた
オブジェクトを優先順位構成に基づいて事前取出しキャッシュに格納し、前記優
先順位構成は事前取出しキャッシュの空きメモリに関して最高事前取出し値を持
つオブジェクトを最初に格納し、事前取出し値は1つまたは複数のクライアント
による事前取出しオブジェクトへの個別または集合参照確率に基づく、請求項1
9に記載の処理システム。
20. The prefetching means for prefetching an object and storing the prefetched object in a prefetch cache based on a priority configuration, wherein the priority configuration is the highest in free memory of the prefetch cache. 2. The method of claim 1, wherein an object having a prefetched value is first stored, wherein the prefetched value is based on individual or collective reference probabilities to the prefetched object by one or more clients.
10. The processing system according to 9.
【請求項21】 前記事前取出し値が、事前取出しヒント情報リスト上の事前取出し候補オブジ
ェクトがクライアントのうちの特定の1つによってアクセスされる推定アクセス
確率と、事前取出し候補オブジェクトのうちの選択オブジェクトを格納するため
の必須記憶容量に基づくオブジェクトのアクセス費用とに基づく、請求項20に
記載の処理システム。
21. The prefetched value may be an estimated access probability that a prefetched candidate object on the prefetched hint information list is accessed by a particular one of the clients, and a selected object of the prefetched candidate object. 21. The processing system of claim 20, wherein the cost of accessing the object is based on a required storage capacity for storing the object.
【請求項22】 前記事前取出し手段が、前記事前取出し値を計算するための計算手段と前記計
算手段によって計算された事前取出し値を評価するための評価手段とを含む事前
読取りハンドラを含み、前記計算手段が前記事前取出しヒント情報リスト上の各
事前取出しオブジェクト識別子の事前取出し値を計算し、前記評価手段が複数の
候補事前取出しオブジェクトの事前取出し値を評価し、かつ事前取出しヒント情
報リストで最高事前取出し値に関連付けられる候補事前取出しオブジェクトのキ
ャッシングを優先させる、請求項20または21に記載の処理システム。
22. The prefetching means includes a pre-read handler including calculating means for calculating the prefetched value and evaluating means for evaluating the prefetched value calculated by the calculating means. The calculating means calculates a pre-fetched value of each pre-fetched object identifier on the pre-fetched hint information list, the evaluating means evaluates pre-fetched values of a plurality of candidate pre-fetched objects, and pre-fetched hint information 22. The processing system according to claim 20 or 21, wherein priority is given to caching of candidate prefetch objects associated with the highest prefetch value in the list.
【請求項23】 前記事前取出し手段が、前記プロキシ・サーバの少なくとも1つにおける第1
事前取出しハンドラと、前記クライアントのうちの少なくとも1つにおける第2
事前取出しハンドラとを含む、請求項22に記載の処理システム。
23. The method according to claim 23, wherein the pre-fetching means comprises a first server in at least one of the proxy servers.
A prefetch handler and a second in at least one of the clients
23. The processing system of claim 22, comprising a prefetch handler.
【請求項24】 前記クライアントの1つのメモリに格納されたクライアント・オブジェクト要
求ハンドラをさらに含み、前記クライアント・オブジェクト要求ハンドラは、プ
ロキシ・サーバまたはネットワークから要求オブジェクトを要求する前に主キャ
ッシュおよび事前取出しキャッシュで要求オブジェクトを探索し、オブジェクト
が事前取出しキャッシュ内にある場合には、前記クライアント・オブジェクト要
求ハンドラは、事前取出しオブジェクトがクライアントによって実際にアクセス
されたことを示すサーバへの事前取出し参照メッセージを生成することによって
、コンテンツ・サーバまたはプロキシ・サーバに通知する、請求項19ないし2
3のいずれか一項に記載の処理システム。
24. The system further comprising a client object request handler stored in a memory of one of the clients, the client object request handler pre-fetching and pre-fetching the request object before requesting the request object from a proxy server or a network. Looking up the request object in the cache, and if the object is in the prefetch cache, the client object request handler sends a prefetch reference message to the server indicating that the prefetch object was actually accessed by the client. 20. Notifying a content server or a proxy server by generating.
4. The processing system according to claim 3.
【請求項25】 前記プロキシ・サーバの少なくとも1つが、要求オブジェクトが事前取出しキ
ャッシュにある場合に、キャッシュ・マネージャ・ルーチンを呼び出した後、事
前取出し参照メッセージを転送するための事前取出し参照メッセージ・ハンドラ
を含む、請求項19ないし24のいずれか一項に記載の処理システム。
25. A prefetch reference message handler for forwarding a prefetch reference message after invoking a cache manager routine if at least one of the proxy servers has a request object in a prefetch cache. The processing system according to any one of claims 19 to 24, comprising:
【請求項26】 請求項18ないし25のいずれか一項に記載のデータ処理システムで使用する
ためのコンテンツ・サーバまたはプロキシ・サーバにおいて、前記要求情報が要
求オブジェクトを含み、前記選択情報が事前取出し候補オブジェクトを含み、前
記サーバが、 親オブジェクト識別子および関連付けられた子オブジェクト識別子を格納する
統計テーブルであって、親オブジェクトがクライアントによって参照される頻度
を表す親オブジェクトの第1カウントを含み、前記親オブジェクトのうちの選択
オブジェクトが参照された後で対応する子オブジェクトが参照される頻度を表す
子オブジェクトの第2カウントを含む統計テーブルと、 前記統計テーブルの情報に基づいて事前取出しヒント情報リストを生成するた
めの生成手段と を含むサーバ。
26. A content server or proxy server for use in a data processing system according to any one of claims 18 to 25, wherein said request information comprises a request object and said selection information is prefetched. A statistics table storing candidate object objects, the server storing a parent object identifier and an associated child object identifier, the server including a first count of the parent object representing a frequency with which the parent object is referenced by the client; A statistics table including a second count of the child object indicating a frequency of referring to the corresponding child object after the selected object of the objects is referred to; and generating a prefetch hint information list based on the information of the statistics table. Generating means for performing Server.
【請求項27】 前記生成手段は第1カウントおよび対応する第2カウントの入力を受け入れて
事前取出しヒント情報リストを導出し、前記生成手段は、前記親オブジェクト識
別子の各々について前記第1カウントに対する前記第2カウントの比を計算する
手段と、前記比をヒント閾値と比較するための比較手段とを含み、前記比較手段
は、前記比が前記ヒント閾値を超える場合、前記事前取出しヒント情報リスト上
の子オブジェクトおよび関連付けられた親オブジェクトをグループ化または関連
付ける、請求項26に記載のサーバ。
27. The generating means receives an input of a first count and a corresponding second count to derive a pre-fetched hint information list, and the generating means generates the pre-fetched hint information list for each of the parent object identifiers with respect to the first count. Means for calculating a ratio of the second count, and comparing means for comparing the ratio with a hint threshold, wherein the comparing means, when the ratio exceeds the hint threshold, displays on the pre-fetched hint information list. 27. The server of claim 26, which groups or associates child objects and associated parent objects.
【請求項28】 前記生成手段は統計テーブルから第1カウント、第2カウント、子オブジェク
ト識別子、および親オブジェクト識別子の入力を受け入れ、前記生成手段は、親
オブジェクトとそれらの関連付けられた子オブジェクトとの間のアクセス関係を
評価するための評価手段を含み、前記評価手段は、クライアントによる対応する
親オブジェクトの参照の前に子オブジェクトがすぐにその後で適切な頻度で参照
される場合、事前取出しヒント情報リスト上に子そのオブジェクト識別子を配置
する、請求項26に記載のサーバ。
28. The generating means accepts input of a first count, a second count, a child object identifier, and a parent object identifier from a statistics table, wherein the generating means determines a relationship between the parent object and their associated child objects. Evaluating means for evaluating the access relationship between the prefetching hint information if the child object is referred to immediately at a suitable frequency immediately before the client refers to the corresponding parent object. 27. The server of claim 26, wherein the server places the child object identifier on the list.
【請求項29】 前記生成手段が、対応する親アクセスに対する子アクセスの比に基づいて前記
適切な頻度を計算するための計算手段をさらに含む、請求項28に記載のサーバ
29. The server of claim 28, wherein said generating means further comprises calculating means for calculating said appropriate frequency based on a ratio of child access to corresponding parent access.
【請求項30】 実際に要求された子オブジェクトに基づいて統計を更新するための統計更新手
段をさらに含み、前記統計更新手段は最初に前記親オブジェクトのうちの参照す
るオブジェクトのアイデンティティを探索し、参照するオブジェクトまたは参照
側オブジェクトは実際に要求された子オブジェクトより前に参照され、実際に要
求された子オブジェクトはそれに対応する第2カウントを統計テーブルで更新さ
せる、請求項26ないし29のいずれか一項に記載のサーバ。
30. A statistic updating means for updating statistics based on actually requested child objects, said statistic updating means first searching for an identity of a referencing object of said parent objects, 30. The method of claim 26, wherein the referencing or referencing object is referenced before the actually requested child object, and the actually requested child object updates its corresponding second count in the statistics table. The server according to claim 1.
【請求項31】 前記統計更新手段は、事前取出し参照メッセージ・ハンドラから事前取出し参
照メッセージを受け取ると、統計テーブルを更新する、請求項30に記載のサー
バ。
31. The server according to claim 30, wherein the statistics updating unit updates the statistics table when receiving a prefetch reference message from a prefetch reference message handler.
【請求項32】 前記サーバがプロキシ・サーバであり、 事前取出しヒント情報リストを受け取って更新するための事前取出し更新手段
をさらに含み、前記事前取出し更新手段は第1カウントと第1局所閾カウントを
比較し、前記事前取出し更新手段は、第1カウントが第1局所閾カウントを超え
る子オブジェクト識別子の各々に対し生成手段を呼び出し、前記事前取出し更新
手段は、第1カウントが第1局所閾カウントを超えない場合には元の事前取出し
ヒント情報リストを維持する、請求項26ないし31のいずれか一項に記載のサ
ーバ。
32. The server, wherein the server is a proxy server, further comprising prefetch update means for receiving and updating a prefetch hint information list, wherein the prefetch update means comprises a first count and a first local threshold count. The prefetch update unit calls the generation unit for each child object identifier whose first count exceeds the first local threshold count, and the prefetch update unit checks that the first count is equal to the first local threshold value. 32. The server according to any one of claims 26 to 31, wherein an original pre-fetch hint information list is maintained if the threshold count is not exceeded.
【請求項33】 前記事前取出し更新手段が第1カウントを第1および第2局所閾カウントと比
較し、(i)第1カウントが第1局所閾カウントを超えなければ、元の事前取出
しヒント情報リストを維持し、(ii)第1カウントが第1局所閾カウントを超
えるが第2局所閾カウントを超えなければ、元の事前取出しヒント情報リストを
変更し、(iii)第1カウントが第1および第2局所閾カウントの両方を超え
る場合には、元の事前取出しヒント情報リストを交換する、請求項32に記載の
サーバ。
33. The prefetch update means compares the first count with first and second local threshold counts, and (i) if the first count does not exceed the first local threshold count, the original prefetch hint. Maintaining the information list, (ii) modifying the original prefetch hint information list if the first count exceeds the first local threshold count but does not exceed the second local threshold count, and (iii) the first count is 33. The server of claim 32, exchanging the original pre-fetch hint information list if both the first and second local threshold counts are exceeded.
【請求項34】 要求オブジェクトを要求した下位プロキシ・サーバまたはクライアントに要求
オブジェクトを返すためのプロキシ・オブジェクト・ハンドラをさらに含み、前
記プロキシ・オブジェクト・ハンドラは、要求オブジェクトが事前取出しオブジ
ェクトでない場合に、要求オブジェクトを返し、かつそれに従って統計テーブル
を更新する、請求項32または33に記載のサーバ。
34. A proxy object handler for returning the request object to a subordinate proxy server or client that has requested the request object, the proxy object handler comprising: 34. The server according to claim 32 or 33, wherein the server returns the request object and updates the statistics table accordingly.
【請求項35】 事前取出しキャッシュを管理するための事前取出しキャッシュ・マネージャと
をさらに含み、 前記プロキシ・オブジェクト・ハンドラは、オブジェクトが事前取出し要求に
従って要求された場合には、要求したクライアントまたはプロキシ・サーバに事
前取出しキャッシュから要求オブジェクトを返し、かつそのオブジェクトに事前
取出しキャッシュから削除可能とマークし、前記プロキシ・オブジェクト・ハン
ドラは、要求オブジェクトが主キャッシュまたは事前取出しキャッシュ内に無い
場合には、オブジェクト要求を別のサーバに送り、前記プロキシ・オブジェクト
・ハンドラは、要求オブジェクトが事前取出し要求に関連付けられない場合、お
よび要求オブジェクトが事前取出しキャッシュまたは主キャッシュ内にある場合
には、それに従って統計テーブルを更新する、請求項34に記載のサーバ。
35. A prefetch cache manager for managing a prefetch cache, the proxy object handler further comprising: a requesting client or proxy proxy if the object is requested according to a prefetch request. Returning the request object from the prefetch cache to the server and marking the object as removable from the prefetch cache, the proxy object handler returns an object if the request object is not in the main cache or the prefetch cache. Sends the request to another server, and the proxy object handler determines if the request object is not associated with a prefetch request and if the request object is not in the prefetch cache or main cache. If that updates the statistics table accordingly, server of claim 34.
JP2000514222A 1997-09-29 1998-09-28 Processing system to enhance data flow from server to client along the network Expired - Fee Related JP3526442B2 (en)

Applications Claiming Priority (3)

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

Publications (2)

Publication Number Publication Date
JP2001518668A true JP2001518668A (en) 2001-10-16
JP3526442B2 JP3526442B2 (en) 2004-05-17

Family

ID=25472873

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000514222A Expired - Fee Related JP3526442B2 (en) 1997-09-29 1998-09-28 Processing system to enhance data flow from server to client along the network

Country Status (11)

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

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000250803A (en) * 1999-03-02 2000-09-14 Toshiba Corp Information distribution system, mobile computer, information server device, cache server device and look- ahead cache processing method
JP2002044137A (en) * 2000-07-25 2002-02-08 Nec Corp Contents transfer method and network system, and machine-readable recording medium with program recorded therein
JP2017151932A (en) * 2016-02-26 2017-08-31 ヤフー株式会社 Information providing system, information providing method, and information processing device

Families Citing this family (310)

* 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
KR100571059B1 (en) * 1997-08-06 2006-04-14 태크욘 인코포레이티드 Distributed Systems and Methods for Prefetching
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 (en) * 1998-01-27 2004-09-02 シャープ株式会社 File object relay method, computer-readable recording medium storing program of file object relay method, and gateway computer
US6185598B1 (en) 1998-02-10 2001-02-06 Digital Island, Inc. Optimized network resource location
US8060613B2 (en) * 1998-02-10 2011-11-15 Level 3 Communications, Llc Resource invalidation in a content delivery network
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 (en) * 1998-03-27 2004-04-26 富士通株式会社 I / O control device and I / O control method
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
US6311221B1 (en) * 1998-07-22 2001-10-30 Appstream Inc. Streaming modules
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
US20010044850A1 (en) 1998-07-22 2001-11-22 Uri Raz Method and apparatus for determining the order of streaming modules
US7197570B2 (en) * 1998-07-22 2007-03-27 Appstream Inc. System and method to send predicted application streamlets to a client device
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 (en) * 1999-01-08 2001-01-24 Lucent Technologies Inc. Methods and apparatus for enabling shared web-based interaction in stateful servers
DE60041732D1 (en) * 1999-01-27 2009-04-23 Hitachi Ltd Method, device and storage medium for use in a hierarchical system
US6418413B2 (en) * 1999-02-04 2002-07-09 Ita Software, Inc. Method and apparatus for providing availability of airline seats
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
US6622167B1 (en) 1999-06-30 2003-09-16 International Business Machines Corporation Document shadowing intranet server, memory medium and method
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
SE521181C2 (en) * 1999-07-01 2003-10-07 Telia Ab Procedure and system for policy-controlled distribution of streaming media in an IP network
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 (en) * 1999-10-28 2001-05-02 Alcatel Method to provide information in an internet telecommunication network
US7562027B1 (en) * 1999-11-01 2009-07-14 Ita Software, Inc. Availability processing in a travel planning system
EP1234268A2 (en) * 1999-11-01 2002-08-28 ITA Software, Inc. Method and apparatus for providing availability of airline seats
US6721780B1 (en) * 1999-11-09 2004-04-13 Fireclick, Inc. Predictive pre-download of network objects
JP3534027B2 (en) * 1999-12-01 2004-06-07 日本電気株式会社 Content providing apparatus and machine-readable recording medium recording program
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
WO2001055862A1 (en) * 2000-01-28 2001-08-02 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
AU2001237693A1 (en) * 2000-03-01 2001-09-12 Michael L. Kagan Wireless communications system and method
AU2001245028A1 (en) * 2000-03-10 2001-09-24 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
US8086697B2 (en) 2005-06-28 2011-12-27 Claria Innovations, Llc Techniques for displaying impressions in documents delivered over a computer network
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
US20050055426A1 (en) * 2000-06-12 2005-03-10 Kim Smith System, method and computer program product that pre-caches content to provide timely information to a user
US7058691B1 (en) * 2000-06-12 2006-06-06 Trustees Of Princeton University System for wireless push and pull based services
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
US7039683B1 (en) 2000-09-25 2006-05-02 America Online, Inc. Electronic information caching
US20020087717A1 (en) * 2000-09-26 2002-07-04 Itzik Artzi 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
US8831995B2 (en) 2000-11-06 2014-09-09 Numecent Holdings, Inc. Optimized server for streamed applications
US20020083183A1 (en) * 2000-11-06 2002-06-27 Sanjay Pujare Conventionally coded application conversion system for streamed delivery and execution
US20020087883A1 (en) * 2000-11-06 2002-07-04 Curt Wohlgemuth Anti-piracy system for remotely served computer applications
US6959320B2 (en) * 2000-11-06 2005-10-25 Endeavors Technology, Inc. Client-side performance optimization system for streamed applications
US7062567B2 (en) 2000-11-06 2006-06-13 Endeavors Technology, Inc. Intelligent network streaming and execution system for conventionally coded applications
US7043524B2 (en) * 2000-11-06 2006-05-09 Omnishift Technologies, Inc. Network caching system for streamed applications
US20020087798A1 (en) * 2000-11-15 2002-07-04 Vijayakumar Perincherry System and method for adaptive data caching
JP2002169831A (en) * 2000-12-04 2002-06-14 Sharp Corp Database server and recording medium with program recorded thereon
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
US7142508B2 (en) * 2000-12-22 2006-11-28 Radiance Technologies, Inc. System and method for controlling data transfer rates on a network
US20050273514A1 (en) * 2000-12-22 2005-12-08 Ray Milkey System and method for automated and optimized file transfers among devices in a network
US7269784B1 (en) 2001-01-22 2007-09-11 Kasriel Stephane Server-originated differential caching
US6721847B2 (en) * 2001-02-20 2004-04-13 Networks Associates Technology, Inc. Cache hints for computer file access
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
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 (en) * 2001-03-23 2002-09-25 Hewlett-Packard Company User access pattern tracking of computer resources
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
US7054911B1 (en) 2001-06-12 2006-05-30 Network Appliance, Inc. Streaming media bitrate switching methods and apparatus
US7155531B1 (en) 2001-06-12 2006-12-26 Network Appliance Inc. Storage methods and apparatus for streaming media data
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
US7076560B1 (en) 2001-06-12 2006-07-11 Network Appliance, Inc. Methods and apparatus for storing and serving streaming media data
US6813690B1 (en) * 2001-06-12 2004-11-02 Network Appliance, Inc. Caching media data using content-sensitive identifiers
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
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
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 (en) * 2001-08-01 2008-06-25 Actona Technologies Ltd Virtual file-sharing network
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 (en) * 2001-08-28 2001-09-28 문의선 Parallel Information Delievery Method Based on Peer-to-Peer Enabled Distributed Computing Technology
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
WO2003032201A1 (en) * 2001-10-09 2003-04-17 Wildblue Communications, Inc. Performance enhancing proxy for high latency data
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 (en) * 2001-12-20 2004-10-15 France Telecom METHOD FOR TRANSMITTING OBJECTS BETWEEN A SERVER AND A CLIENT TERMINAL IMPLEMENTING CACHE MANAGEMENT, CORRESPONDING TRANSMISSION SYSTEM, SERVER AND TERMINAL
US7437438B2 (en) * 2001-12-27 2008-10-14 Hewlett-Packard Development Company, L.P. System and method for energy efficient data prefetching
JP2003216460A (en) * 2002-01-21 2003-07-31 Hitachi Ltd Hierarchical storage device and its controller
US7689225B2 (en) * 2002-01-28 2010-03-30 Ntt Docomo, Inc. Method and apparatus for dormant mode support with paging
US7386627B1 (en) 2002-01-29 2008-06-10 Network Appliance, Inc. Methods and apparatus for precomputing checksums for streaming media
US7412531B1 (en) 2002-01-29 2008-08-12 Blue Coat Systems, Inc. Live stream archiving method and apparatus
EP1470476A4 (en) * 2002-01-31 2007-05-30 Arc Int Configurable data processor with multi-length instruction set architecture
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
CN101004733A (en) * 2002-03-06 2007-07-25 弗里科姆技术公司 System for monitoring and data exchange and peripheral data storage unit for the system
US7096249B2 (en) * 2002-03-29 2006-08-22 Intel Corporation Method and system for distributing applications
WO2003085924A1 (en) * 2002-04-05 2003-10-16 Telefonaktiebolaget Lm Ericsson (Publ) Object transfer control in a communications network
US7610351B1 (en) * 2002-05-10 2009-10-27 Oracle International Corporation Method and mechanism for pipelined prefetching
US7657644B1 (en) 2002-05-10 2010-02-02 Netapp, Inc. Methods and apparatus for streaming media multicast
US6751709B2 (en) * 2002-05-15 2004-06-15 Sun Microsystems, Inc. Method and apparatus for prefetching objects into an object cache
US7822658B2 (en) * 2002-06-04 2010-10-26 Hewlett-Packard Development Company, L.P. Dynamic prioritization of activities
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
US7120751B1 (en) 2002-08-09 2006-10-10 Networks Appliance, Inc. Dynamic streaming buffer cache algorithm selection
US8856093B2 (en) 2002-09-03 2014-10-07 William Gross Methods and systems for search indexing
US7424510B2 (en) * 2002-09-03 2008-09-09 X1 Technologies, Inc. Methods and systems for Web-based incremental searches
US7130890B1 (en) * 2002-09-04 2006-10-31 Hewlett-Packard Development Company, L.P. Method and system for adaptively prefetching objects from a network
US7552223B1 (en) 2002-09-16 2009-06-23 Netapp, Inc. Apparatus and method for data consistency in a proxy cache
US7171469B2 (en) * 2002-09-16 2007-01-30 Network Appliance, Inc. Apparatus and method for storing data in a proxy cache in a network
US7284030B2 (en) * 2002-09-16 2007-10-16 Network Appliance, Inc. Apparatus and method for processing data in a network
US7417971B2 (en) * 2002-10-04 2008-08-26 Ntt Docomo, Inc. Method and apparatus for dormant mode support with paging
KR100485974B1 (en) * 2002-10-10 2005-05-03 엔에이치엔(주) Method and System for Providing Contents
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 (en) * 2002-12-10 2005-06-02 Deutsches Zentrum für Luft- und Raumfahrt e.V. Method for improving access to data and information services and device for carrying out the method
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
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
US7322042B2 (en) 2003-02-07 2008-01-22 Broadon Communications Corp. Secure and backward-compatible processor and secure software execution thereon
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
US8131649B2 (en) * 2003-02-07 2012-03-06 Igware, Inc. Static-or-dynamic and limited-or-unlimited content rights
US7991905B1 (en) 2003-02-12 2011-08-02 Netapp, Inc. Adaptively selecting timeouts for streaming media
KR101123426B1 (en) * 2003-04-04 2012-03-23 야후! 인크. A system for generating search results including searching by subdomain hints and providing sponsored results by subdomain
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 (en) * 2003-08-18 2008-01-30 インターナショナル・ビジネス・マシーンズ・コーポレーション Multi-frequency pattern extraction apparatus, multi-frequency pattern extraction method, program thereof and recording medium
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
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
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
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 (en) * 2004-01-30 2006-07-14 김선권 Method of collecting and searching for access route of infomation resource on internet and Computer readable medium stored thereon program for implementing the same
US20050240574A1 (en) * 2004-04-27 2005-10-27 International Business Machines Corporation Pre-fetching resources based on a resource lookup query
JP2007536634A (en) * 2004-05-04 2007-12-13 フィッシャー−ローズマウント・システムズ・インコーポレーテッド Service-oriented architecture for process control systems
US20050261962A1 (en) * 2004-05-18 2005-11-24 Khai Gan Chuah Anonymous page recognition
US8224964B1 (en) 2004-06-30 2012-07-17 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
US7437364B1 (en) * 2004-06-30 2008-10-14 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
US7831612B2 (en) * 2004-09-29 2010-11-09 Business Objects Software Ltd. Apparatus and method for generating reports from shared objects
US7694311B2 (en) * 2004-09-29 2010-04-06 International Business Machines Corporation Grammar-based task analysis of web logs
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
WO2006055445A2 (en) 2004-11-13 2006-05-26 Stream Theory, Inc. Hybrid local/remote streaming
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
WO2006102621A2 (en) 2005-03-23 2006-09-28 Stream Theory, Inc. System and method for tracking changes to files in streaming applications
US20060218165A1 (en) * 2005-03-23 2006-09-28 Vries Jeffrey De Explicit overlay integration rules
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
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
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
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
WO2007130554A2 (en) 2006-05-02 2007-11-15 Broadon Communications Corp. Content management system and method
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 (en) * 2006-12-18 2012-02-08 ソニー株式会社 Distribution apparatus, distribution method, and computer program
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
US8966053B2 (en) * 2007-07-12 2015-02-24 Viasat, Inc. Methods and systems for performing a prefetch abort operation for network acceleration
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
US9460229B2 (en) * 2007-10-15 2016-10-04 Viasat, Inc. Methods and systems for implementing a cache model in a prefetching system
US9654328B2 (en) 2007-10-15 2017-05-16 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
US8930538B2 (en) 2008-04-04 2015-01-06 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)
US9762692B2 (en) 2008-04-04 2017-09-12 Level 3 Communications, Llc Handling long-tail content in a content delivery network (CDN)
US20090300208A1 (en) * 2008-06-02 2009-12-03 Viasat, Inc. Methods and systems for acceleration of mesh network configurations
US20100180082A1 (en) * 2009-01-12 2010-07-15 Viasat, Inc. Methods and systems for implementing url masking
WO2010136699A2 (en) * 2009-05-29 2010-12-02 France Telecom Technique for distributing content to a user
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
US8984048B1 (en) 2010-04-18 2015-03-17 Viasat, Inc. Selective prefetch scanning
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
US9912718B1 (en) 2011-04-11 2018-03-06 Viasat, Inc. Progressive prefetching
US9037638B1 (en) * 2011-04-11 2015-05-19 Viasat, Inc. Assisted browsing using hinting functionality
US9456050B1 (en) 2011-04-11 2016-09-27 Viasat, Inc. Browser optimization through user history analysis
US9106607B1 (en) 2011-04-11 2015-08-11 Viasat, Inc. Browser based feedback for optimized web browsing
US20130103853A1 (en) 2011-07-29 2013-04-25 3Crowd Technologies, Inc. Directing clients based on communication format
US9680791B2 (en) 2011-07-29 2017-06-13 Fortinet, Inc. Facilitating content accessibility via different communication formats
EP2555128A1 (en) * 2011-08-02 2013-02-06 Alcatel Lucent Memory cache content manager and arrangement
EP2759075A4 (en) 2011-09-23 2015-06-03 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 (en) * 2012-07-18 2016-11-09 キヤノン株式会社 Information processing system, control method, server, information processing apparatus, and computer program
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 (en) * 2013-03-27 2017-12-29 联想(北京)有限公司 The method and server of processing information
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
WO2015066313A1 (en) * 2013-10-30 2015-05-07 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 (en) * 2013-11-27 2015-06-03 英业达科技有限公司 System and method for prereading target data required for performing target function
CN106462611B (en) * 2014-05-13 2020-03-27 Opera软件公司 Network access performance enhancement
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
WO2016033474A1 (en) * 2014-08-28 2016-03-03 Interdigital Patent Holdings, Inc. Method and apparatus for capture caching
US10362125B2 (en) * 2014-09-18 2019-07-23 Intel Corporation Technologies for pre-action execution
EP3018580A1 (en) * 2014-11-06 2016-05-11 Alcatel Lucent Cache server and method for serving and caching web resources
US10812580B2 (en) 2015-01-30 2020-10-20 Akamai Technologies, Inc. Using resource timing data for server push
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
US10789325B2 (en) 2015-08-28 2020-09-29 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
CA2998320C (en) 2015-09-14 2023-01-03 Viasat, Inc. Machine-driven crowd-disambiguation of data resources
MX2018003580A (en) 2015-09-23 2018-08-24 Viasat Inc Acceleration of online certificate status checking with an internet hinting service.
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
WO2017069735A1 (en) 2015-10-20 2017-04-27 Viasat, Inc. Hint model updating using automated browsing clusters
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
CA3006514C (en) 2015-12-04 2021-06-15 Viasat, Inc. Accelerating connections to a host server
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
EP3767494B1 (en) 2017-08-28 2023-02-15 Bright Data Ltd. Method for improving content fetching by selecting tunnel devices
US10684950B2 (en) 2018-03-15 2020-06-16 Bank Of America Corporation System for triggering cross channel data caching
CN108804514A (en) 2018-04-25 2018-11-13 网宿科技股份有限公司 A kind of webpage loading method, server and webpage loading system
CN110750498B (en) * 2018-07-19 2023-01-06 成都华为技术有限公司 Object access method, device and storage medium
LT3780547T (en) 2019-02-25 2023-03-10 Bright Data Ltd. System and method for url fetching retry mechanism
EP4027618A1 (en) 2019-04-02 2022-07-13 Bright Data Ltd. Managing a non-direct url fetching service
US11893062B2 (en) * 2019-05-14 2024-02-06 Sap Se Bulk lazy loading of structured data
US11171720B1 (en) * 2019-06-28 2021-11-09 Amazon Technologies, Inc. Content and compute delivery platform using satellites
US11201939B1 (en) * 2019-06-28 2021-12-14 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
CN116010293A (en) * 2022-12-30 2023-04-25 上海芷锐电子科技有限公司 Data request processing circuit and method, cache circuit and processor thereof

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06309264A (en) * 1993-03-23 1994-11-04 Internatl Business Mach Corp <Ibm> Method and equipment for locating resource in computer network with cache server node
JPH08287095A (en) * 1995-04-19 1996-11-01 Fujitsu Ltd Device and method for automatically acquiring information
JPH09204347A (en) * 1995-11-20 1997-08-05 Sharp Corp Gateway device
JPH11500250A (en) * 1996-02-15 1999-01-06 アイビーエム コーポレーシヨン Differential communication system
JPH117407A (en) * 1997-05-09 1999-01-12 Internatl Business Mach Corp <Ibm> Dynamic push filtering method accompanied by staging/ buffering in proxy hierarchy

Family Cites Families (25)

* 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
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 (en) * 1994-06-30 1998-05-12 インテル コーポレイシヨン Data prefetching for script-based multimedia systems
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
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
US5768577A (en) * 1994-09-29 1998-06-16 International Business Machines Corporation Performance optimization in a heterogeneous, distributed database environment
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
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 (en) * 1995-09-11 1997-03-28 Toshiba Corp Client device server device and storage device controlling method
US5781909A (en) * 1996-02-13 1998-07-14 Microtouch Systems, Inc. Supervised satellite kiosk management system with combined local and remote data storage
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
US5818448A (en) * 1996-07-02 1998-10-06 Sun Microsystems, Inc. Apparatus and method for identifying server computer aggregation topologies
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
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

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06309264A (en) * 1993-03-23 1994-11-04 Internatl Business Mach Corp <Ibm> Method and equipment for locating resource in computer network with cache server node
JPH08287095A (en) * 1995-04-19 1996-11-01 Fujitsu Ltd Device and method for automatically acquiring information
JPH09204347A (en) * 1995-11-20 1997-08-05 Sharp Corp Gateway device
JPH11500250A (en) * 1996-02-15 1999-01-06 アイビーエム コーポレーシヨン Differential communication system
JPH117407A (en) * 1997-05-09 1999-01-12 Internatl Business Mach Corp <Ibm> Dynamic push filtering method accompanied by staging/ buffering in proxy hierarchy

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000250803A (en) * 1999-03-02 2000-09-14 Toshiba Corp Information distribution system, mobile computer, information server device, cache server device and look- ahead cache processing method
JP2002044137A (en) * 2000-07-25 2002-02-08 Nec Corp Contents transfer method and network system, and machine-readable recording medium with program recorded therein
JP2017151932A (en) * 2016-02-26 2017-08-31 ヤフー株式会社 Information providing system, information providing method, and information processing device

Also Published As

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

Similar Documents

Publication Publication Date Title
JP3526442B2 (en) Processing system to enhance data flow from server to client along the network
US6065058A (en) Dynamic push filtering based on information exchanged among nodes in a proxy hierarchy
US6012126A (en) System and method for caching objects of non-uniform size using multiple LRU stacks partitions into a range of sizes
US5924116A (en) Collaborative caching of a requested object by a lower level node as a function of the caching status of the object at a higher level node
US8509266B2 (en) Using network traffic logs for search engine index updates
JP3160719B2 (en) System and method for locating pages and documents on the World Wide Web from a network of computers
US6457047B1 (en) Application caching system and method
US7219162B2 (en) System and method for accessing content of a web page
US5933832A (en) Retrieval system for frequently updated data distributed on network
US6598121B2 (en) System and method for coordinated hierarchical caching and cache replacement
Cho et al. Parallel crawlers
US6182111B1 (en) Method and system for managing distributed data
US6351775B1 (en) Loading balancing across servers in a computer network
US6094657A (en) Apparatus and method for dynamic meta-tagging of compound documents
US20020169818A1 (en) Method and apparatus for efficient storage and retrieval of objects in and from an object storage device
US7305610B1 (en) Distributed crawling of hyperlinked documents
JP2000122912A (en) Method and device for gathering resource
CZ20001058A3 (en) A method and system for prefetching data
Lam et al. Temporal pre-fetching of dynamic web pages
JP2004070957A (en) Retrieval system
Amudhan et al. Traffic Adaptive Optimum Updating Scheme for Search Engines
Beniwal et al. Web crawlers of search engine

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20040210

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040213

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080227

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090227

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100227

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees