JP2005190339A - Apparatus and method for data transfer, communication system, and program - Google Patents

Apparatus and method for data transfer, communication system, and program Download PDF

Info

Publication number
JP2005190339A
JP2005190339A JP2003433172A JP2003433172A JP2005190339A JP 2005190339 A JP2005190339 A JP 2005190339A JP 2003433172 A JP2003433172 A JP 2003433172A JP 2003433172 A JP2003433172 A JP 2003433172A JP 2005190339 A JP2005190339 A JP 2005190339A
Authority
JP
Japan
Prior art keywords
data
holding
holding means
reference data
size
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
JP2003433172A
Other languages
Japanese (ja)
Other versions
JP3990354B2 (en
Inventor
Tokuji Shono
篤司 庄野
Hideaki Sato
英昭 佐藤
Toshibumi Seki
俊文 關
Yasuhiro Kimura
康浩 木村
Yuichi Koba
雄一 木場
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2003433172A priority Critical patent/JP3990354B2/en
Publication of JP2005190339A publication Critical patent/JP2005190339A/en
Application granted granted Critical
Publication of JP3990354B2 publication Critical patent/JP3990354B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide a data transfer apparatus which compresses target data based on reference data to transfer it and can more effectively manage reference data cache. <P>SOLUTION: A cache storage 503 in a server side apparatus 500 caches data which have been transmitted to a client side apparatus in the past as reference data. When a communication part 501 receives data from the server apparatus; the data are differentially compressed based on the reference data stored in the cache storage 503 in a differential compression part 502, and the differentially compressed data are transferred to the client side apparatus from the communication part 501. If total data size cached in the cache storage 503 exceeds a cacheable size, a deletion judge part 508 selects reference data so that more highly compressed data are to be deleted with high priority, and a deletion 504 deletes the selected reference data from the cache storage 503. <P>COPYRIGHT: (C)2005,JPO&NCIPI

Description

本発明は、データ転送を行うデータ転送装置、複数のデータ転送装置を含む通信システム、データ転送方法及びプログラムに関する。   The present invention relates to a data transfer device that performs data transfer, a communication system including a plurality of data transfer devices, a data transfer method, and a program.

ネットワークを介して様々なサービスを提供するサーバーと、所望のサービスをサーバーに対して要求するクライアントとから構成される、クライアント・サーバー型の情報システムが広く普及している。特に、インターネット上でHTTPプロトコルを使って通信するWebサーバーとクライアントからなるWORLD WIDE WEBシステム(あるいは単にWebシステムとも呼ばれる)は、大変広く利用されているクライアント・サーバー型の情報システムである。通常、サーバー上ではサーバープログラムが動作し、クライアント上ではブラウザなどの所定のツール(プログラム)が動作する。インターネット上で提供されるサービスの内容も多岐に渡っており、ネットワーク経由で文字、静止画像、動画像、音声等の情報(たとえば、ホームページ、電子メール、デジタルコンテンツなど)や、プログラムなどを提供、配信あるいは転送などするサービス、また商品を販売するための電子店舗サービス、座席や部屋などの予約サービス、種々の仲介サービスなど、種々のサービスが既に存在し、また次々と新たな形態のサービスが出現している。   2. Description of the Related Art A client / server type information system is widely spread, which includes a server that provides various services via a network and a client that requests the server for a desired service. In particular, a WORLD WIDE WEB system (or simply referred to as a Web system) composed of a Web server and a client that communicates using the HTTP protocol on the Internet is a client-server type information system that is widely used. Normally, a server program operates on the server, and a predetermined tool (program) such as a browser operates on the client. The contents of services provided on the Internet are also diverse, providing information such as text, still images, moving images, audio (such as homepages, e-mails, digital contents, etc.) and programs via the network. Various services such as distribution or transfer services, electronic store services for selling products, reservation services for seats and rooms, various mediation services, etc. already exist, and new forms of services emerge one after another doing.

ところで、Webのようなクライアント・サーバー型の情報システムにおいては、提供されるサービスがどのような形態のものであろうと、基本的にはクライアント・サーバー間でデータ転送が行われることによってサービスが提供される。したがって、クライアントとサーバーとの間で通信に用いるネットワーク容量(バンド幅)がシステム全体のパフォーマンスのボトルネックになりやすい。そこで、通常、ネットワークの負荷を軽減させるためにキャッシュ技術が用いられる。   By the way, in a client / server type information system such as the Web, the service is basically provided by transferring data between the client / server regardless of the form of the provided service. Is done. Therefore, the network capacity (bandwidth) used for communication between the client and the server tends to become a performance bottleneck of the entire system. Therefore, a cache technique is usually used to reduce the load on the network.

Web閲覧をする場合、WebブラウザとWebサーバーの間にあるキャッシングプロキシサーバーやWebブラウザ自身のキャッシュを使うことで、Web閲覧に際して転送データ量を削減し、リクエストを出してからレスポンスを受け取りWebブラウザにコンテンツを表示する一連のシーケンスにかかる時間(レスポンスタイム)を高速化する技術がある。キャッシングプロキシサーバーとしてはsquid(http://ring.aist.go.jp/archives/net/www/squid/)が有名で、squidをWebサーバーとWebブラウザを結ぶネットワーク上に配置することで、Webブラウザからのリクエストに対して、以前閲覧されsquidにキャッシュされているコンテンツの場合はsquidからレスポンスを返すことで、Webサーバーまでのネットワーク転送を回避し、レスポンスタイムの向上を実現している。また、Webブラウザ自身に備えられているキャッシュを用いることで、Webブラウザからリクエストを出した時点で既にWebブラウザのキャッシュに保存されているコンテンツの場合は、ただちに該当コンテンツをWebブラウザに表示し、ネットワークを流れる転送データ量を削減すると伴に、レスポンスタイムを向上している。これらのキャッシュ技術はURLに対してコンテンツが一意に定まるWebコンテンツ(静的なコンテンツ)に対してWebデータ転送量削減効果やレスポンスタイム向上効果が得られる有効な手段である。   When browsing the web, use a caching proxy server between the web browser and the web server or the cache of the web browser itself to reduce the amount of data transferred when browsing the web, and after receiving a request, receive a response to the web browser. There is a technique for increasing the time (response time) required for a series of sequences for displaying content. Squid (http://ring.aist.go.jp/archives/net/www/suid/) is well known as a caching proxy server. By placing squid on a network connecting a web server and a web browser, In response to a request from the browser, in the case of content that has been browsed and cached in the squid, a response is returned from the squid, thereby avoiding network transfer to the Web server and improving the response time. In addition, by using the cache provided in the web browser itself, if the content is already stored in the cache of the web browser when the request is issued from the web browser, the corresponding content is immediately displayed on the web browser, In addition to reducing the amount of data transferred through the network, the response time is improved. These cache technologies are effective means for obtaining a Web data transfer amount reduction effect and a response time improvement effect for a Web content (static content) whose content is uniquely determined with respect to a URL.

しかし、近年のWeb技術の進化に伴い、CGI(Common Gateway Interface)、ASP(Active Server Pages)、JSP(Java Server Pages)等といったWebサーバーにリクエストが届いた時点でデーターベースの検索結果やリクエストを出したユーザーの入力等によって動的に生成される動的なコンテンツが増加している。これら動的なコンテンツは同じURLに対してコンテンツが毎回異なることがあり、URLに対してコンテンツが一意に定まらない。このような動的なコンテンツに対して従来からあるキャッシングプロキシやWebブラウザのキャッシュは有効に動作せず、リクエストのたびにWebブラウザからWebサーバーまでのネットワーク間をコンテンツの全データを送受信しなければならず、バンド幅の大量消費やそれに伴うレスポンスタイムの遅延が問題となっている。   However, with the recent evolution of web technologies, database search results and requests are sent when requests arrive at web servers such as CGI (Common Gateway Interface), ASP (Active Server Pages), JSP (Java Server Pages), etc. Dynamic content that is dynamically generated by user input and the like is increasing. These dynamic contents may differ every time for the same URL, and the contents are not uniquely determined for the URL. Conventional caching proxies and Web browser caches do not operate effectively for such dynamic content, and all content data must be transmitted and received between the network from the Web browser to the Web server for each request. In other words, a large amount of bandwidth is consumed and the response time is delayed.

特許文献1〜3では、動的なコンテンツに対してコンテンツ自身のハッシュ値(フィンガープリント)とコンテンツを一対一に対応付けてキャッシュするフィンガープリントキャッシュを提案している。これらの技術は、Webサーバー側LANにプロキシサーバーとしてフィンガープリントキャッシュを備えるサーバー側プロキシと、クライアント側LANにプロキシサーバーとしてフィンガープリントキャッシュを備えるクライアント側プロキシを設置し、Webサーバー側のLANとクライアント側LANの間を結ぶインターネット・LAN・WAN等といったネットワークを流れるWebデータを削減する。その方法としては、取得した動的なコンテンツに対してフィンガープリントを計算し、フィンガープリントとコンテンツをフィンガープリントキャッシュに保存する。次回以降、もしWebサーバーからレスポンスを受信した場合、サーバー側プロキシは、フィンガープリントを計算し一致した場合はコンテンツ自体が一致していると判断して、コンテンツの代わりにフィンガープリントのみをクライアント側プロキシに送信し、クライアント側プロキシは、送られてきたフィンガープリントと一致するコンテンツをフィンガープリントキャッシュから取得しWebブラウザにそのコンテンツを転送する(FP転送)。また、Webサーバーからのレスポンスに類似したコンテンツがフィンガープリントキャッシュにあった場合は、サーバー側プロキシは、ベースとなるコンテンツのフィンガープリントと差分部分から構成される差分データを送り、クライアント側装置では、差分データによって指定されたフィンガープリントのコンテンツをフィンガープリントキャッシュから取得すると伴に差分部分のデータを用いてオリジナルのコンテンツを復元し、Webブラウザに転送する(差分転送)。これらの技術を用いることで、動的なコンテンツに対してもキャッシュを用いてWeb転送データを削減し、レスポンスタイムを向上させることが可能となる。   Patent Documents 1 to 3 propose a fingerprint cache that caches the content itself in a one-to-one correspondence with the hash value (fingerprint) of the content itself. In these technologies, a server-side proxy having a fingerprint cache as a proxy server is installed in a Web server-side LAN, and a client-side proxy having a fingerprint cache as a proxy server is installed in a client-side LAN. Web data flowing through networks such as the Internet, LAN, and WAN connecting between LANs is reduced. As the method, a fingerprint is calculated for the acquired dynamic content, and the fingerprint and the content are stored in the fingerprint cache. From the next time, if a response is received from the Web server, the server-side proxy calculates the fingerprint, and if it matches, the content itself is determined to match, and only the fingerprint is used instead of the content. The client-side proxy acquires content that matches the sent fingerprint from the fingerprint cache and transfers the content to the Web browser (FP transfer). In addition, when content similar to the response from the Web server is in the fingerprint cache, the server side proxy sends the difference data composed of the fingerprint and the difference part of the base content, and the client side device When the fingerprint content designated by the difference data is acquired from the fingerprint cache, the original content is restored using the difference portion data and transferred to the Web browser (difference transfer). By using these technologies, it is possible to reduce the Web transfer data by using a cache even for dynamic contents and improve the response time.

サーバー側プロキシでは、次回以降にベースとして利用するために差分圧縮前のコンテンツをフィンガープリントキャッシュに保存すると伴に、クライアント側プロキシも、差分伸長後のコンテンツをフィンガープリントキャッシュに保存する。   The server-side proxy stores the content before differential compression in the fingerprint cache for use as a base from the next time onward, and the client-side proxy also stores the content after differential expansion in the fingerprint cache.

ところで、キャッシュデータの保存に使われるデータ保存領域はキャッシュを行うコンピュータに直接もしくはネットワーク経由で接続されている主記憶装置や補助記憶装置が利用される。補助記憶装置に関してはRAID(Redundant Array of Independent)技術によって冗長性を向上させると伴に容量を増加させることも可能であるが、データ保存領域は有限なためキャッシュを削除する必要がある。従来、静的なコンテンツのキャッシュに対して、参照された日時の古いものから順に削除するLRU(Least Recently Used)アルゴリズムや、利用頻度の低いコンテンツから順に削除するLFU(Least Frequently Used)アルゴリズム等がある。キャッシュされたコンテンツの総量がキャッシュ可能サイズを超えた場合やコンピュータの管理者による明示的な削除命令が出された場合、ある一定時間を経過した場合、またはなにかしらの条件を満たした場合に起動され、上記LRUやLFUもしくは別のアルゴリズムに従ってキャッシュを削除することで、削除後も最近アクセスしたコンテンツや閲覧頻度の高いコンテンツがキャッシュに残るような仕組みが導入されている。
特開2002−268935 特開2003−268936 特開2003−268937
By the way, as a data storage area used for storing cache data, a main storage device or an auxiliary storage device connected to a computer that performs caching directly or via a network is used. With regard to the auxiliary storage device, it is possible to increase the capacity as well as to improve the redundancy by the RAID (Redundant Array of Independent) technique, but it is necessary to delete the cache because the data storage area is limited. Conventionally, an LRU (Least Recently Used) algorithm that deletes a static content cache in order from the oldest referenced date, an LFU (Least Frequently Used) algorithm that deletes content that is used less frequently, etc. is there. When the total amount of cached content exceeds the cacheable size, when an explicit deletion order is issued by the computer administrator, after a certain period of time, or when certain conditions are met When activated, the cache is deleted according to the above LRU or LFU or another algorithm, so that a recently accessed content or a frequently viewed content remains in the cache even after the deletion.
JP 2002-268935 JP 2003-268936 A JP2003-268937

従来、フィンガープリントキャッシュのように、取得したコンテンツをユニークに識別する識別子とコンテンツを対にしてキャッシュし、新たに取得したコンテンツがキャッシュにあるコンテンツと同一部分を持つ場合にベースとなるコンテンツの識別子と差分部分から構成される差分情報をサーバー側装置が計算し下流に転送するとともに、クライアント側装置が受信した差分データを指定された識別子のコンテンツをキャッシュから取得し差分部分と組み合わせて元のデータを復元するシステムがある。このような技術は近年普及の著しい動的なコンテンツの転送データ量を削減するものとして非常に有効な手段である。   Conventionally, as in the fingerprint cache, the identifier that uniquely identifies the acquired content is cached as a pair, and the content identifier that becomes the base when the newly acquired content has the same part as the content in the cache The server side device calculates the difference information composed of the difference part and forwards it downstream, and the difference data received by the client side device is acquired from the cache with the specified identifier content and combined with the difference part to obtain the original data There is a system to restore. Such a technique is a very effective means for reducing the amount of transfer data of dynamic content that has become very popular in recent years.

しかしながら、従来、キャッシュの削除方法に関しては、動的なコンテンツを対象とした場合の有効な方法が知られていなかった。また、従来、取得したコンテンツは全てキャッシュに登録されており、より有効なキャッシュの方法が知られていなかった。また、従来、サーバー側装置とクライアント側装置とにそれぞれキャッシュされているコンテンツに不一致が発生し、クライアント側装置で差分データを復元する際に差分データで指定された識別子を持つコンテンツがなければ差分伸長が行えず、差分転送に失敗するというケースが発生し得るが、これを回避する方法が知られていなかった。   However, conventionally, an effective method for a dynamic content has not been known as a cache deletion method. Conventionally, all acquired contents are registered in a cache, and a more effective cache method has not been known. Conventionally, if there is a mismatch between the contents cached in the server side device and the client side device, and there is no content with the identifier specified by the difference data when restoring the difference data in the client side device, the difference There may be a case where the extension cannot be performed and the differential transfer fails, but a method for avoiding this has not been known.

本発明は、上記事情を考慮してなされたもので、参照データをもとに対象データを圧縮して転送するデータ転送装置において、参照データのキャッシュに対するより効果的な管理を可能にするデータ転送装置、通信システム、データ転送方法及びプログラムを提供することを目的とする。   The present invention has been made in view of the above circumstances, and in a data transfer apparatus that compresses and transfers target data based on reference data, data transfer that enables more effective management of the reference data cache It is an object to provide an apparatus, a communication system, a data transfer method, and a program.

本発明に係るサーバー装置側データ転送装置は、少なくとも過去に圧縮して特定のクライアント装置側データ転送装置へ送信したデータにつき、これを圧縮していない状態で参照データとして保持するための保持手段と、或るサーバー装置を送信元とし或るクライアント装置を宛先とするデータを受信する受信手段と、前記保持手段に保持されている前記参照データに基づいて、受信した前記データを圧縮した圧縮データを生成する生成手段と、生成された前記圧縮データを前記クライアント装置側データ転送装置へ送信する送信手段と、前記保持手段に保持されている前記参照データの各々につき、当該データのデータ・サイズを示す第1の情報、及び当該データのデータ・サイズと当該データから生成された圧縮データのデータ・サイズとにより定まる圧縮の程度を示す第2の情報を記憶する記憶手段と、前記保持手段に保持される全参照データの各々に係る前記第1の情報により示されるデータ・サイズの総和と、前記保持手段の保持可能なデータ・サイズの上限値との関係が、或る条件を満たす場合に、前記保持手段に記憶されている各参照データに係る前記第2の情報に基づいて、前記保持手段から削除すべき参照データを選択する選択手段と、この選択手段により選択された参照データを前記保持手段から削除する削除手段とを備えたことを特徴とする。   The server apparatus-side data transfer apparatus according to the present invention includes a holding unit for holding at least data compressed in the past and transmitted to a specific client apparatus-side data transfer apparatus as reference data in an uncompressed state. Receiving means for receiving data destined for a certain server device and destined for a certain client device, and compressed data obtained by compressing the received data based on the reference data held in the holding means For each of the generating means for generating, the transmitting means for transmitting the generated compressed data to the data transfer apparatus on the client device side, and the reference data held in the holding means, the data size of the data is indicated. The first information, the data size of the data, and the data size of the compressed data generated from the data Storage means for storing second information indicating the degree of compression determined by: a sum of data sizes indicated by the first information for each of all reference data held in the holding means; and the holding means Is deleted from the holding means based on the second information relating to each reference data stored in the holding means when the relationship with the upper limit value of the data size that can be held satisfies a certain condition And a deletion unit that deletes the reference data selected by the selection unit from the holding unit.

また、本発明に係るクライアント装置側データ転送装置は、少なくとも過去に特定のサーバー装置側データ転送装置から受信した圧縮データにつき、これを圧縮されていない状態で参照データとして保持するための保持手段と、或るサーバー装置を送信元とし或るクライアント装置を宛先とするデータを、前記サーバー装置側データ転送装置から受信する受信手段と、受信した前記データにつき、それが圧縮されていないデータであるか又は圧縮されている圧縮データであるかを、受信した前記データに付加されている特定の情報に基づいて判断する判断手段と、受信した前記データが圧縮データである場合に、前記保持手段に保持されている前記参照データに基づいて、該圧縮データを伸長して圧縮されていない状態のデータを生成する生成手段と、生成された前記データを、前記或るクライアント装置へ送信する送信手段と、前記保持手段に保持されている前記参照データの各々につき、当該データのデータ・サイズを示す第1の情報、及び当該データのデータ・サイズと当該データを生成するもととなった圧縮データのデータ・サイズとにより定まる圧縮の程度を示す第2の情報を記憶する記憶手段と、前記保持手段に保持される全参照データの各々に係る前記第1の情報により示されるデータ・サイズの総和と、前記保持手段の保持可能なデータ・サイズの上限値との関係が、或る条件を満たす場合に、前記保持手段に記憶されている各参照データに係る前記第2の情報に基づいて、前記保持手段から削除すべき参照データを選択する選択手段と、この選択手段により選択された参照データを前記保持手段から削除する削除手段とを備えたことを特徴とする。   In addition, the client device-side data transfer device according to the present invention includes a holding unit for holding at least compressed data received from a specific server device-side data transfer device in the past as reference data in an uncompressed state. , Receiving means for receiving data from a server device as a transmission source and a client device as a destination from the data transfer device on the server device side, and whether the received data is uncompressed data Or a determination unit that determines whether the compressed data is compressed based on specific information added to the received data, and holds in the holding unit when the received data is compressed data Based on the reference data, the compressed data is decompressed to generate uncompressed data. First information indicating a data size of the data for each of the reference data held in the holding means, sending means for sending the generated data to the certain client device, and the holding data And storage means for storing second information indicating the degree of compression determined by the data size of the data and the data size of the compressed data from which the data is generated, and held by the holding means If the relationship between the sum of the data sizes indicated by the first information relating to each of all reference data and the upper limit value of the data size that can be held by the holding unit satisfies a certain condition, the holding is performed. Selection means for selecting reference data to be deleted from the holding means based on the second information relating to each reference data stored in the means, and selection by the selection means Characterized in that the reference data and a deleting means for deleting from said holding means.

また、本発明に係る通信システムは、サーバー装置側データ転送装置及びクライアント装置側データ転送装置を含む通信システムにおいて、前記サーバー装置側データ転送装置は、少なくとも過去に圧縮して特定のクライアント装置側データ転送装置へ送信したデータにつき、これを圧縮していない状態で参照データとして保持するための第1の保持手段と、或るサーバー装置を送信元とし或るクライアント装置を宛先とするデータを受信する第1の受信手段と、前記第1の保持手段に保持されている前記参照データに基づいて、受信した前記データを圧縮した圧縮データを生成する第1の生成手段と、生成された前記圧縮データを前記クライアント装置側データ転送装置へ送信する第1の送信手段と、前記第1の保持手段に保持されている前記参照データの各々につき、当該データのデータ・サイズを示す第1の情報、及び当該データのデータ・サイズと当該データから生成された圧縮データのデータ・サイズとにより定まる圧縮の程度を示す第2の情報を記憶する記憶手段と、前記第1の保持手段に保持される全参照データの各々に係る前記第1の情報により示されるデータ・サイズの総和と、前記第1の保持手段の保持可能なデータ・サイズの上限値との関係が、或る条件を満たす場合に、前記第1の保持手段に記憶されている各参照データに係る前記第2の情報に基づいて、前記第1の及び第2の保持手段から削除すべき参照データを選択する選択手段と、この選択手段により選択された参照データを前記第1の保持手段から削除する第1の削除手段と、前記選択手段により選択された前記参照データを特定する情報を、前記クライアント装置側データ転送装置に通知する特定情報通知手段とを備え、
前記クライアント装置側データ転送装置は、少なくとも過去に前記サーバー装置側データ転送装置から受信した前記圧縮データにつき、これを圧縮されていない状態で参照データとして保持するための第2の保持手段と、或るサーバー装置を送信元とし或るクライアント装置を宛先とするデータを、前記サーバー装置側データ転送装置から受信する第2の受信手段と、受信した前記データにつき、それが圧縮されていないデータであるか又は圧縮されている圧縮データであるかを、受信した前記データに付加されている特定の情報に基づいて判断する判断手段と、受信した前記データが圧縮データである場合に、前記第1の保持手段に保持されている前記参照データに基づいて、該圧縮データを伸長して圧縮されていない状態のデータを生成する第2の生成手段と、生成された前記データを、前記或るクライアント装置へ向けて送信する第2の送信手段と、前記サーバー装置側データ転送装置から、前記選択手段により選択された前記参照データを特定する情報の通知を取得する特定情報通知取得手段と、取得された前記情報により特定される参照データを前記第2の保持手段から削除する第2の削除手段とを備えたことを特徴とする。
Further, the communication system according to the present invention is a communication system including a server device side data transfer device and a client device side data transfer device, wherein the server device side data transfer device is compressed at least in the past to a specific client device side data. The first holding means for holding the data transmitted to the transfer device as reference data in an uncompressed state, and data destined for a certain client device as a transmission source. First receiving means, first generating means for generating compressed data obtained by compressing the received data based on the reference data held in the first holding means, and the generated compressed data Is held by the first holding means and the first holding means. For each of the reference data, first information indicating the data size of the data, and second information indicating the degree of compression determined by the data size of the data and the data size of the compressed data generated from the data Storage means for storing the information, a sum of data sizes indicated by the first information related to each of all the reference data held in the first holding means, and holdable by the first holding means When the relationship with the upper limit value of the data size satisfies a certain condition, the first and the second information on each reference data stored in the first holding unit is used. A selection unit that selects reference data to be deleted from the second holding unit, a first deletion unit that deletes the reference data selected by the selection unit from the first holding unit, and the selection unit. Information identifying the selected said reference data, and an identification information notification means for notifying the client apparatus side data transfer device,
A second holding unit for holding at least the compressed data received from the server device side data transfer device in the past as reference data in an uncompressed state; or Second receiving means for receiving, from the server apparatus-side data transfer apparatus, data destined for a server apparatus as a transmission source and a client apparatus as a destination, and the received data is uncompressed data Determination means for determining whether the received data is compressed data based on specific information added to the received data, and when the received data is compressed data, the first Based on the reference data held in the holding means, the compressed data is decompressed to generate uncompressed data The second generation means, the second transmission means for transmitting the generated data to the certain client apparatus, and the reference selected by the selection means from the server apparatus-side data transfer apparatus. Specific information notification acquisition means for acquiring notification of information specifying data, and second deletion means for deleting reference data specified by the acquired information from the second holding means And

本発明によれば、参照データをもとに転送対象データを圧縮して転送するデータ転送装置において、参照データのキャッシュに対するより効果的な管理が可能になる(差分圧縮・伸長に対してより効率の良いキャッシュ維持方法が実現できる)。   According to the present invention, in a data transfer apparatus that compresses and transfers data to be transferred based on reference data, it is possible to manage the reference data cache more effectively (more efficient for differential compression / decompression). A good cache maintenance method).

例えば、URLとコンテンツが一意に定まらない(例えば、CGI等によって生成されるアクセスのたびに内容の異なる)動的コンテンツに対して、サーバー側データ転送装置とクライアント側データ転送装置との間で差分圧縮して転送することで、それらの間を流れるデータ転送量を削減する場合に、差分圧縮における圧縮率に基づいてキャッシュから削除すべきコンテンツを選択する手段を導入することによって、動的なコンテンツのキャッシュに差分圧縮のベースとして相応しいコンテンツを維持することができる。また、例えば、この手段をサーバー側データ転送装置のみに設け、サーバー側データ転送装置が削除対象コンテンツをクライアント側データ転送装置に通知して互いのキャッシュの同期をとるようにすることによって、それらの間のキャッシュの不一致から生じる差分転送の失敗をなくすことができるとともに、クライアント側データ転送装置の処理負荷を軽減できる。また、例えば、差分圧縮における圧縮率に基づいて当該コンテンツをキャッシュへ登録するか否かを判定する手段を導入することによって、登録処理やキャッシュ領域の有効利用を行うことができる。また、例えば、この手段を、サーバー側データ転送装置のみに設け、サーバー側データ転送装置が各コンテンツの登録の有無をクライアント側データ転送装置に通知して互いのキャッシュの同期をとるようにすることによって、それらの間のキャッシュの不一致から生じる差分転送の失敗をなくすことができるとともに、クライアント側データ転送装置の処理負荷を軽減できる。   For example, the difference between the server-side data transfer device and the client-side data transfer device with respect to dynamic content in which the URL and the content are not uniquely determined (for example, the content differs for each access generated by CGI or the like) Dynamic content by introducing means for selecting content to be deleted from the cache based on the compression rate in differential compression when reducing the amount of data transferred between them by compressing and transferring Content suitable as a base for differential compression can be maintained in the cache. Further, for example, by providing this means only in the server-side data transfer device, the server-side data transfer device notifies the client-side data transfer device of the content to be deleted, and synchronizes each other's cache. In addition, it is possible to eliminate the failure of the differential transfer caused by the cache mismatch between them, and to reduce the processing load of the client-side data transfer device. Further, for example, by introducing a means for determining whether or not to register the content in the cache based on the compression rate in differential compression, registration processing and effective use of the cache area can be performed. Further, for example, this means is provided only in the server-side data transfer device, and the server-side data transfer device notifies the client-side data transfer device of the presence / absence of registration of each content so as to synchronize each other's cache. Thus, it is possible to eliminate the failure of the differential transfer caused by the cache mismatch between them, and to reduce the processing load of the client side data transfer apparatus.

なお、装置に係る本発明は方法に係る発明としても成立し、方法に係る本発明は装置に係る発明としても成立する。
また、装置または方法に係る本発明は、コンピュータに当該発明に相当する手段を実行させるための(あるいはコンピュータを当該発明に相当する手段として機能させるための、あるいはコンピュータに当該発明に相当する機能を実現させるための)プログラムとしても成立し、該プログラムを記録したコンピュータ読み取り可能な記録媒体としても成立する。
The present invention relating to the apparatus is also established as an invention relating to a method, and the present invention relating to a method is also established as an invention relating to an apparatus.
Further, the present invention relating to an apparatus or a method has a function for causing a computer to execute means corresponding to the invention (or for causing a computer to function as means corresponding to the invention, or for a computer to have a function corresponding to the invention. It can also be realized as a program (for realizing the program), and can also be realized as a computer-readable recording medium on which the program is recorded.

本発明によれば、参照データをもとに転送対象データを圧縮して転送するデータ転送装置において、参照データのキャッシュに対するより効果的な管理が可能になる。   According to the present invention, it is possible to more effectively manage the cache of reference data in a data transfer apparatus that compresses and transfers data to be transferred based on reference data.

以下、図面を参照しながら本発明の実施形態について説明する。   Hereinafter, embodiments of the present invention will be described with reference to the drawings.

本実施形態のWebサーバー、プロキシ、Webブラウザは、いずれも計算機上でソフトウェア(Webサーバー・プログラム、プロキシ・プログラム、Webブラウザ・プログラム)を動作させる形で実現することができる。この場合に、必要に応じて計算機所望の機能を有するOSやドライバソフト、あるいは通信インターフェース装置や外部記憶装置や入出力装置といったハードウェアが搭載、あるいは接続される。また、この場合に、ユーザーあるいは管理者からの情報やユーザーへの情報呈示等のために、グラフィカル・ユーザー・インターフェース(GUI)を用いると好ましい。   The Web server, proxy, and Web browser of this embodiment can all be realized by operating software (Web server program, proxy program, Web browser program) on a computer. In this case, an OS or driver software having a function desired by a computer, or hardware such as a communication interface device, an external storage device, or an input / output device is mounted or connected as necessary. In this case, it is preferable to use a graphical user interface (GUI) for information from the user or the administrator, information presentation to the user, or the like.

本実施形態では、World Wide Webシステムでの通信は、HTTPプロトコルに従って行なわれる。HTTPプロトコルに関しては、RFC1945に示されているHTTP1.0もしくはRFC2616に示されているHTTP1.1を用いて説明する。   In the present embodiment, communication in the World Wide Web system is performed according to the HTTP protocol. The HTTP protocol will be described using HTTP 1.0 shown in RFC1945 or HTTP1.1 shown in RFC2616.

以下では、インターネットがWAN(Wide Area Network)であり、クライアントがユーザーオフィスのLANに接続されたPCであり、HTTPプロトコルが使用されるような場合を例にとって説明するが、もちろん、本発明を実施するにあたりWANが例えばインターネットであったりPHSや携帯電話等を用いた無線ネットワークなどであったり、WAN以外のものであっても適用可能である。また、クライアントがオフィス以外の例えば家庭内LAN等に設置されたものであっても、HTTPプロトコル以外のプロトコルが使用されるものであっても適用可能である。   In the following description, the case where the Internet is a WAN (Wide Area Network), the client is a PC connected to the LAN of the user office, and the HTTP protocol is used will be described as an example. In this case, the present invention can be applied even if the WAN is, for example, the Internet, a wireless network using a PHS, a mobile phone, or the like, or other than the WAN. Further, the present invention can be applied even if the client is installed in a home LAN other than the office, for example, or a protocol other than the HTTP protocol is used.

図1に、本発明を適用するコンピュータ・ネットワークシステムの構成例を示す。この構成例では、ASP(Application Service Provider)サーバーセンター内のローカルエリアネットワーク(LAN)100とユーザーオフィス内のLAN104との間が、インターネットや専用回線等の広域ネットワークWAN103を介して接続されており、ASPサーバーセンター内のLAN100に接続されたサーバー101と、ユーザーオフィス内のLAN104に接続されたクライアント106とが、LAN104、WAN103、LAN100を介して通信可能となっている。ASPサーバーセンター内のLAN100には1または複数のサーバーが接続され、ユーザーオフィス内のLAN104には1または複数のクライアントが接続される。   FIG. 1 shows a configuration example of a computer network system to which the present invention is applied. In this configuration example, a local area network (LAN) 100 in an ASP (Application Service Provider) server center and a LAN 104 in a user office are connected via a wide area network WAN 103 such as the Internet or a dedicated line. A server 101 connected to the LAN 100 in the ASP server center and a client 106 connected to the LAN 104 in the user office can communicate via the LAN 104, the WAN 103, and the LAN 100. One or more servers are connected to the LAN 100 in the ASP server center, and one or more clients are connected to the LAN 104 in the user office.

WebベースのASPは、サーバーセンター内LAN100に設置したサーバー101からWAN103を介して、様々なアプリケーションプログラムによるサービスを提供し、ユーザーはユーザーオフィス内のLAN104に設置されたクライアント106上のWebブラウザ107を使ってそれらのサービスにアクセスする。   The Web-based ASP provides services based on various application programs from the server 101 installed in the LAN 100 in the server center via the WAN 103, and the user uses the Web browser 107 on the client 106 installed in the LAN 104 in the user office. To access those services.

このような利用形態においては、ユーザーオフィスのLAN104とサーバーセンターのLAN100を繋ぐネットワーク、特にインターネットなどの広域ネットワーク103の実効的な通信容量(バンド幅)はサーバーセンターのLAN104やユーザーオフィスのLAN100よりも低く、そこが性能上のボトルネックになって通信の遅延が発生し、アプリケーションのレスポンスタイムが低下するという問題が発生する。   In such a usage mode, the effective communication capacity (bandwidth) of the network 104 connecting the LAN 104 of the user office and the LAN 100 of the server center, particularly the wide area network 103 such as the Internet, is larger than that of the LAN 104 of the server center or the LAN 100 of the user office. This is a low performance bottleneck in performance, causing communication delays and reducing application response time.

そこで、本実施形態では、図1に示すようにサーバーセンターのLAN104とユーザーオフィスのLAN100とを繋ぐ広域ネットワーク103の両端にサーバー側プロキシ105及びクライアント側プロキシ102という二つのモジュールを設置し、それらの間で後述する差分圧縮を行って通信データ量を削減することで、広域ネットワークのボトルネックを解消する。   Therefore, in this embodiment, as shown in FIG. 1, two modules, a server-side proxy 105 and a client-side proxy 102, are installed at both ends of a wide area network 103 that connects the LAN 104 of the server center and the LAN 100 of the user office. The bottleneck of the wide area network is eliminated by reducing the amount of communication data by performing differential compression described later.

図2に、本発明を適用するコンピュータ・ネットワークシステムの別の構成例を示す。この構成例では、企業内の業務アプリケーションセンター内のLAN110とノートPC等の携帯クライアント116との間が、インターネットや専用回線等の広域ネットワークWAN113と携帯電話やPHS等の無線ネットワーク115とを介して接続されており、業務アプリケーションセンター内のLAN110に接続されたサーバー111と、クライアントPC116とが、無線ネットワーク115、WAN113、LAN110を介して通信可能となっている。業務アプリケーションのLAN110には1又は複数のサーバーが接続され、WAN113や無線ネットワーク115を介して1又は複数のクライアントが接続される。   FIG. 2 shows another configuration example of a computer network system to which the present invention is applied. In this configuration example, a LAN 110 in a business application center in a company and a mobile client 116 such as a notebook PC are connected via a wide area network WAN 113 such as the Internet or a dedicated line and a wireless network 115 such as a mobile phone or PHS. The server 111 connected to the LAN 110 in the business application center and the client PC 116 can communicate with each other via the wireless network 115, the WAN 113, and the LAN 110. One or more servers are connected to the business application LAN 110, and one or more clients are connected via the WAN 113 or the wireless network 115.

Webベースの業務アプリケーションセンターのLAN110に設置されたサーバー111からWAN103を介して、様々な企業内定型業務アプリケーションプログラムや業務用アプリケーションプログラムによる様々なサービスを提供し、ユーザーはクライアント116上のWebブラウザ118を使ってそれらサービスにアクセスする。   The server 111 installed in the LAN 110 of the Web-based business application center provides various services through various enterprise fixed business application programs and business application programs via the WAN 103, and the user provides a Web browser 118 on the client 116. To access these services.

このような利用形態においては、業務アプリケーションセンターのLAN110とクライアント116を繋ぐネットワーク、特にインターネットなどの広域ネットワーク113や無線ネットワーク115のバンド幅は業務アプリケーションセンターのLAN110よりも低く、そこがボトルネックになることで、アプリケーションのレスポンスタイムが低下するという問題が発生する。   In such a usage mode, the bandwidth of the network 110 connecting the business application center LAN 110 and the client 116, particularly the wide area network 113 such as the Internet and the wireless network 115 is lower than the LAN 110 of the business application center, which becomes a bottleneck. This causes a problem that the response time of the application decreases.

そこで、本実施形態では、図2に示すように業務アプリケーションセンターのLAN110とクライアント116とを繋ぐWAN113と無線ネットワーク115の両端にサーバー側プロキシ112とクライアント116上にクライアント側モジュール117という二つのモジュールを設置し、それらの間で後述する差分圧縮を行って通信データ量を削減することで、ボトルネックを解消する。   Therefore, in the present embodiment, as shown in FIG. 2, the WAN 113 that connects the LAN 110 of the business application center and the client 116 and two modules of the server side proxy 112 and the client side module 117 on the client 116 are provided at both ends of the wireless network 115. The bottleneck is eliminated by installing and reducing the amount of communication data by performing differential compression described later between them.

ただし、図1の構成例では、サーバー側装置はサーバー側プロキシ、クライアント側装置はクライアント側プロキシとして実現されているが、これに限定されるものではない。また、図2の構成例では、サーバー側装置はサーバー側プロキシ、クライアント側装置はアプリケーションとして実現されているが、これに限定されるものではない。また、サーバー側装置及びクライアント側装置が、それぞれ、サーバー側システムを構成するコンポーネント及びクライアント側システムを構成するコンポーネントとして実現されていれば、その実現形態は問わない。   However, in the configuration example of FIG. 1, the server-side device is realized as a server-side proxy, and the client-side device is realized as a client-side proxy. However, the configuration is not limited to this. In the configuration example of FIG. 2, the server-side device is realized as a server-side proxy and the client-side device is realized as an application. However, the configuration is not limited to this. In addition, as long as the server-side device and the client-side device are realized as a component constituting the server-side system and a component constituting the client-side system, respectively, the realization form is not limited.

次に、図3を参照しながら差分圧縮処理及び差分伸長処理について説明する。   Next, the differential compression processing and differential expansion processing will be described with reference to FIG.

図1及び図2の構成例の場合、図1のサーバー側プロキシ105及び図2のサーバー側プロキシ112がそれぞれ図3のサーバー側装置200に相当し、図1のクライアント側プロキシ102及び図2のクライアント側モジュール117がそれぞれ図3のクライアント側装置207に相当する。   1 and FIG. 2, the server-side proxy 105 in FIG. 1 and the server-side proxy 112 in FIG. 2 correspond to the server-side device 200 in FIG. 3, respectively, and the client-side proxy 102 in FIG. Each client-side module 117 corresponds to the client-side device 207 in FIG.

サーバー側装置200には直接またはネットワーク経由で接続されたキャッシュ205が、クライアント側装置207には直接またはネットワーク経由で接続されたキャッシュ212が設置されている。サーバー側装置200のキャッシュ205には、以前Webブラウザを備えたクライアントからGETメソッドなどのHTTPリクエストに対してWebサーバーがHTTPレスポンスとして転送したコンテンツA203とコンテンツB204が保存されているものとする。コンテンツA203にはコンテンツAであることをユニークに識別できる識別子Aが、コンテンツB204にはコンテンツBであることをユニークに識別できる識別子Bが割り振られている。   A cache 205 connected directly or via a network is installed in the server side apparatus 200, and a cache 212 connected directly or via a network is installed in the client side apparatus 207. Assume that the cache 205 of the server-side device 200 stores content A 203 and content B 204 that have been transferred as HTTP responses by the Web server in response to an HTTP request such as a GET method from a client having a Web browser. An identifier A that can uniquely identify the content A is assigned to the content A203, and an identifier B that can uniquely identify the content B is assigned to the content B204.

なお、この識別子は、コンテンツ自体をユニークに識別するものであればどのようなものであってもよい。例えば、取得した順に昇順に番号を付けたものでもよいし、MD5やSHA−1等に代表されるハッシュ関数を用いて算出したものであってもよい。   This identifier may be any identifier as long as it uniquely identifies the content itself. For example, it may be numbered in ascending order in the acquired order, or may be calculated using a hash function represented by MD5, SHA-1, or the like.

サーバー側装置200のキャッシュ205にはコンテンツAを識別子Aと一対一の関係付けで保存してあり、同様に、コンテンツBを識別子Bと一対一の関係付けで保存してある。他方、クライアント側装置207のキャッシュ212には、同様に、識別子AとコンテンツA210が一対一の関係付けで、識別子BとコンテンツB211が一対一の関係付けで保存されている。クライアント側装置207では、サーバー側装置200と同じアルゴリズムで各コンテンツに識別子を取得しても良いし、サーバー側装置200から転送されてくるコンテンツAのHTTPレスポンスのヘッダーに付加された識別子から識別子を取得しても良い。   In the cache 205 of the server side device 200, the content A is stored in a one-to-one relationship with the identifier A, and similarly, the content B is stored in a one-to-one relationship with the identifier B. On the other hand, similarly, identifier A and content A 210 are stored in a one-to-one relationship and identifier B and content B 211 are stored in a one-to-one relationship in cache 212 of client-side device 207. The client-side device 207 may acquire an identifier for each content with the same algorithm as that of the server-side device 200. Alternatively, the client-side device 207 obtains an identifier from the identifier added to the header of the HTTP response of the content A transferred from the server-side device 200. You may get it.

上記HTTPレスポンスのヘッダーに付加される場合のHTTPレスポンスの例を図4に示す。図4中、X−Identifierヘッダーをサーバー側装置200がHTTPレスポンスヘッダーに付加しクライアント側装置207に送信し、該当レスポンスをクライアント側装置207が受信するとともにX−Identifierヘッダーの値を取得することでコンテンツAの識別子Aを取得する。なお、クライアント側装置207は、コンテンツAを下流に送信する際にX−Identifierヘッダーを削除しておくことが望ましい。   An example of the HTTP response when added to the header of the HTTP response is shown in FIG. In FIG. 4, the server-side device 200 adds the X-Identifier header to the HTTP response header and transmits it to the client-side device 207. The client-side device 207 receives the response and acquires the value of the X-Identifier header. The identifier A of the content A is acquired. It is desirable that the client side device 207 deletes the X-Identifier header when transmitting the content A downstream.

上記のような手順を踏むことで、クライアント側装置207でコンテンツA210と識別子Aとを一対一に関係付けて、コンテンツB211と識別子Bとを一対一に関係付けてキャッシュ212に保存することが可能となる。   By following the above procedure, it is possible for the client side device 207 to associate the content A 210 and the identifier A on a one-to-one basis and store the content B 211 and the identifier B on a one-to-one basis in the cache 212. It becomes.

以下、上述した状態に置かれたサーバー側装置200及びクライアント側装置207を前提に、図3に示した処理の流れを参照しながら、差分圧縮処理及び差分伸長処理の概要について説明する。   The outline of the differential compression processing and differential expansion processing will be described below with reference to the processing flow shown in FIG. 3 on the premise of the server side device 200 and the client side device 207 placed in the above-described state.

(1)サーバー側装置200が上流から新たなコンテンツC201を受信する。コンテンツC201の識別子はCとする。   (1) The server-side device 200 receives new content C201 from upstream. The identifier of the content C201 is C.

(2)コンテンツC201は差分圧縮処理に掛けられる。その際、キャッシュ205にキャッシュされているコンテンツA203の部分2033とコンテンツB204の部分2041が、それぞれ、コンテンツCの部分2023と部分2021に一致していたとする。また、コンテンツC202の部分2022はキャッシュ205に保存されているどのコンテンツとも同じ部分がなかったとする。   (2) The content C201 is subjected to differential compression processing. At this time, it is assumed that the content A203 portion 2033 and the content B204 portion 2041 cached in the cache 205 match the content C portion 2023 and the portion 2021, respectively. Further, it is assumed that the portion 2022 of the content C202 does not have the same portion as any content stored in the cache 205.

(3)差分圧縮の結果、差分データ206が生成される。差分データ206の中身は、部分2021と同等な識別子Bの先頭からのオフセットバイト及び長さ、部分2022のそのままの内容(オリジナル)、部分2023と同等な識別子Aの先頭からのオフセット及び長さの3要素で構成される。生成された差分データ206はクライアント側装置207に転送される。   (3) As a result of differential compression, differential data 206 is generated. The contents of the difference data 206 are the offset byte and length from the beginning of the identifier B equivalent to the portion 2021, the content (original) of the portion 2022 as it is, the offset and length from the beginning of the identifier A equivalent to the portion 2023 Consists of three elements. The generated difference data 206 is transferred to the client side device 207.

(4)また、(2)及び(3)と相前後して、コンテンツC201は、識別子Cと伴に次回以降の差分圧縮に用いるために、キャッシュ205にキャッシュされる。   (4) Also, before or after (2) and (3), the content C201 is cached in the cache 205 for use in the subsequent differential compression together with the identifier C.

(5)クライアント側装置207は差分データ206を受信する。   (5) The client side device 207 receives the difference data 206.

(6)差分データ206は差分伸長処理にかけられる。その際、差分データ206に埋め込まれている識別子Bのコンテンツ211をキャッシュ212から取得し、オフセット及び長さ情報から部分2111を取り出す。また、差分データ206に埋め込まれているそのままの部分を取り出す。また、差分データ206に埋め込まれている識別子Aのコンテンツ210をキャッシュ212から取得し、オフセット及び長さ情報から部分2111を取り出す。最終的に、差分データ206は、コンテンツB211の部分2111に相当する部分2081、そのままの部分2082、コンテンツA210の部分2103に相当する部分2083を結合したコンテンツ208が生成される。   (6) The differential data 206 is subjected to differential expansion processing. At this time, the content 211 of the identifier B embedded in the difference data 206 is acquired from the cache 212, and the portion 2111 is extracted from the offset and length information. Further, the part as it is embedded in the difference data 206 is taken out. Further, the content 210 with the identifier A embedded in the difference data 206 is acquired from the cache 212, and the portion 2111 is extracted from the offset and length information. Finally, as the difference data 206, a content 208 is generated by combining a portion 2081 corresponding to the portion 2111 of the content B 211, a portion 2082 as it is, and a portion 2083 corresponding to the portion 2103 of the content A 210.

(7)コンテンツ208は、HTTPヘッダーでサーバー側装置200によって指定された識別子Cが与えられ、識別子CのコンテンツC209となる。コンテンツC209は下流に送信される。   (7) The content 208 is given the identifier C specified by the server side device 200 in the HTTP header, and becomes the content C 209 of the identifier C. Content C209 is transmitted downstream.

(8)コンテンツC209は、次回以降の差分伸長に用いるために、識別子Cと伴にキャッシュ212にキャッシュされる。   (8) The content C209 is cached in the cache 212 together with the identifier C for use in the next and subsequent differential expansion.

なお、キャッシュにあるコンテンツとまったく同じコンテンツを受信した際には、差分圧縮処理でキャッシュ済みコンテンツの識別子とオフセットを0、長さをそのコンテンツのサイズという差分データで表現することになる。   When exactly the same content as the content in the cache is received, the identifier and offset of the cached content are represented by differential data that is 0 and the length is the size of the content in the differential compression processing.

上記処理(3)でサーバー側装置200から送信される差分データのレスポンスをHTTPプロトコルに従って示すと、図5のようになる。   FIG. 5 shows the response of the difference data transmitted from the server side device 200 in the process (3) according to the HTTP protocol.

図5中、Content−Type:octet−stream/x−diff−compressionヘッダーは、ボディが差分圧縮されたデータであることを示している。クライアント側装置207は、本ヘッダーをみてレスポンスのボディが差分データであることを識別する。   In FIG. 5, the Content-Type: octet-stream / x-diff-compression header indicates that the body is differentially compressed data. The client side device 207 identifies that the body of the response is differential data by looking at this header.

また、X−Identifier:識別子Cヘッダーは、差分復元後のコンテンツに対して付与される識別子であるが、クライアント側装置207がサーバー側装置200と同じアルゴリズムで識別子を取得できる場合は不要となる。   The X-Identifier: identifier C header is an identifier given to the content after differential restoration, but is unnecessary when the client side device 207 can acquire the identifier by the same algorithm as the server side device 200.

Pragma:no−cache,x−diffヘッダーは、サーバー側装置200とクライアント側装置207との間にあるキャッシングプロキシなどによって差分データがキャッシュされないように、HTTPプロトコルに従ってサーバー側装置が付けたヘッダーである。Cache−Control:no−cache,x−diffヘッダーも同様である。   The Pragma: no-cache, x-diff header is a header attached by the server side device according to the HTTP protocol so that differential data is not cached by a caching proxy between the server side device 200 and the client side device 207. . The same applies to the Cache-Control: no-cache, x-diff header.

また、X−Pragma:no−cache、X−Cache−Control:privateは、それそれ、復元後のコンテンツに付加されるべきPragma、Cache−Controlヘッダーである。これらは、サーバー側装置200で差分圧縮前にコンテンツに対して付加されていたHTTPヘッダーを退避させたものである。なお、クライアント側装置207では、Content−Typeヘッダーの値(MIME/TYPE)を元のコンテンツの値に修正し、X−Identifierヘッダーを削除し、PragmaへッダーとCache−Controlヘッダーを削除し、X−Pragmaヘッダーの値をPragmaヘッダーに付け替え、X−Cache−Controlヘッダーの値をCache−Controlヘッダーの値に付け替える処理を行うものとする。   X-Pragma: no-cache and X-Cache-Control: private are Pragma and Cache-Control headers to be added to the restored content. These are obtained by saving the HTTP header added to the content before differential compression in the server side device 200. The client-side device 207 corrects the value of Content-Type header (MIME / TYPE) to the original content value, deletes the X-Identifier header, deletes the Pragma header and Cache-Control header, and deletes the X-Identifier header. -The process of replacing the value of the Pragma header with the value of the Pragma header and replacing the value of the X-Cache-Control header with the value of the Cache-Control header is performed.

図3に示されているサーバー側装置200とクライアント側装置207を機能別ブロック図に示したのがそれぞれ図6と図7である。   FIGS. 6 and 7 show the server-side device 200 and the client-side device 207 shown in FIG. 3 in functional block diagrams, respectively.

図6に示されるように、サーバー側装置300は、データの送受信を行う通信部301、差分圧縮処理を行う差分圧縮部302、差分圧縮前のコンテンツをサーバー側キャッシュ保持部に保存するサーバー側登録部303から構成される。   As illustrated in FIG. 6, the server-side device 300 includes a communication unit 301 that transmits and receives data, a differential compression unit 302 that performs differential compression processing, and server-side registration that stores content before differential compression in a server-side cache holding unit. The unit 303 is configured.

他方、図7に示されるように、クライアント側装置305は、データの送受信を行う通信部306、差分伸長処理を行う差分復元部307、復元後のコンテンツをクライアント側キャッシュ保持部309に保存するクライアント側登録部308から構成される。   On the other hand, as illustrated in FIG. 7, the client side device 305 includes a communication unit 306 that transmits and receives data, a differential restoration unit 307 that performs differential decompression processing, and a client that stores the restored content in the client side cache holding unit 309. The side registration unit 308 is configured.

ここで、図6のサーバー側装置300、サーバー側キャッシュ保持部304、図7のクライアント側装置305、クライアント側キャッシュ保持部309は、それぞれ、図3のサーバー側装置200、キャッシュ205、クライアント側装置207、キャッシュ212に相当する。   Here, the server side device 300, the server side cache holding unit 304 in FIG. 6, the client side device 305, and the client side cache holding unit 309 in FIG. 7 are respectively the server side device 200, the cache 205, and the client side device in FIG. 207 corresponds to the cache 212.

以上、差分圧縮処理及び差分伸長処理の概要について説明したが、HTTPヘッダーの構成や差分データのフォーマットは、上記に説明したことと同じことを実現できるものであればどのようなものであっても良い。   The outline of the differential compression process and the differential decompression process has been described above. However, the HTTP header configuration and the differential data format are not limited as long as they can realize the same as described above. good.

ところで、従来、動的コンテンツに対して差分をとるサーバー側装置及びクライアント側装置のキャッシュの削除方法として相応しいアルゴリズムが知られていなかった。そこで、以下では、キャッシュ削除方法の幾つかの具体例を示す。   By the way, conventionally, an appropriate algorithm has not been known as a method for deleting a cache of a server side apparatus and a client side apparatus that take a difference with respect to dynamic content. Accordingly, some specific examples of the cache deletion method will be described below.

まず、図8を参照しながらキャッシュ削除方法の一例について説明する。   First, an example of a cache deletion method will be described with reference to FIG.

図8に示したヒストグラム(400)は、縦軸にキャッシュされたコンテンツのサイズ、横軸に差分圧縮時に取得された差分データの圧縮率をとったものであり、サーバー側装置及びクライアント装置の主記憶装置(メモリ)に置かれるものとする。圧縮率は、例えば、圧縮前のコンテンツサイズをS、圧縮後の差分データのサイズをΔSとすると、式(1)
圧縮率=100×(1−ΔS/S) (1)
で算出される(この例では、圧縮後の差分データ・サイズΔSが小さくなるほど、圧縮率は大きくなる)。
The histogram (400) shown in FIG. 8 is obtained by taking the size of the cached content on the vertical axis and the compression ratio of the differential data acquired at the time of differential compression on the horizontal axis. It is assumed that it is placed in a storage device (memory). For example, when the content size before compression is S and the size of the difference data after compression is ΔS, the compression rate is expressed by equation (1).
Compression rate = 100 × (1−ΔS / S) (1)
(In this example, the smaller the difference data size ΔS after compression is, the larger the compression rate is).

図9に、上記ヒストグラム(400)への登録処理手順の一例を示す。まず、コンテンツの識別子とサイズと圧縮率を取得する(ステップS1)。追加するとリストにあるコンテンツの総サイズがキャッシュ可能サイズを超えない場合(ステップS2)、CR=(int)((圧縮率/10)×10)によりCRを計算(正規化)する(ステップS4)。他方、追加するとリストにあるコンテンツの総サイズがキャッシュ可能サイズを超える場合(ステップS2)、削除処理を実行(ステップS3)した後に、CRを計算(正規化)する(ステップS4)。そして、CR%〜(CR+10)%に対応するグリッドに登録する(ステップS5)。   FIG. 9 shows an example of a registration processing procedure for the histogram (400). First, the content identifier, size, and compression rate are acquired (step S1). When the total size of the contents in the list does not exceed the cacheable size after addition (step S2), CR is calculated (normalized) by CR = (int) ((compression rate / 10) × 10) (step S4). . On the other hand, when the total size of the contents in the list exceeds the cacheable size when added (step S2), after the deletion process is executed (step S3), CR is calculated (normalized) (step S4). And it registers in the grid corresponding to CR% to (CR + 10)% (step S5).

図10に、上記ヒストグラム(400)及びキャッシュからの削除処理手順の一例を示す。まず、削除していないグリッドで最も圧縮率の高いグリッドに属するコンテンツを全て削除する(ステップS11)。キャッシュサイズが80%以下ならば(ステップS12)、処理を終了する。他方、キャッシュサイズが80%を越えているならば(ステップS12)、さらに、削除していないグリッドで最も圧縮率の高いグリッドに属するコンテンツを全て削除する(ステップS11)。以上の処理を、キャッシュサイズが80%以下になるまで、繰り返し実行する。   FIG. 10 shows an example of a procedure for deleting the histogram (400) and the cache. First, all the contents belonging to the grid with the highest compression ratio among the grids that have not been deleted are deleted (step S11). If the cache size is 80% or less (step S12), the process is terminated. On the other hand, if the cache size exceeds 80% (step S12), all the contents belonging to the grid with the highest compression ratio among the undeleted grids are deleted (step S11). The above processing is repeatedly executed until the cache size becomes 80% or less.

さて、図8の具体例において、時系列に取得したコンテンツを並べると、A,B,C,D,…,M,N,Oであったとする。なお、A,B,C等は、各コンテンツの識別子とする。各コンテンツの差分圧縮前のサイズと差分圧縮後のサイズとから式(1)によって圧縮率が算出される。その際、各コンテンツの圧縮率を横軸に(ただし、図8の例では、横軸のグリッド幅を10%であるとする。)、各コンテンツのサイズを縦軸にした図8の構成のヒストグラム(400)に、図9に示した登録手順で登録すると、図8に例示した状態になったものとする。すなわち、コンテンツAの圧縮率は0〜10%の間であり、コンテンツBの圧縮率は20〜30%の間であり、コンテンツCの圧縮率は60〜70%間である等となる。   In the specific example of FIG. 8, it is assumed that the contents acquired in time series are A, B, C, D,..., M, N, O. A, B, C, etc. are identifiers of the contents. The compression rate is calculated by the equation (1) from the size of each content before differential compression and the size after differential compression. At that time, the compression ratio of each content is set on the horizontal axis (in the example of FIG. 8, the grid width on the horizontal axis is 10%), and the size of each content is set on the vertical axis. It is assumed that registration in the histogram (400) by the registration procedure shown in FIG. 9 results in the state illustrated in FIG. That is, the compression rate of content A is between 0 and 10%, the compression rate of content B is between 20 and 30%, the compression rate of content C is between 60 and 70%, and so on.

しかして、図8に例示した状態において、新たにコンテンツPを取得しその圧縮率をpとしたとき、図9の処理フローでキャッシュされたコンテンツの総サイズがキャッシュ容量を超えたものとする。この場合、図9の削除処理(ステップS3)が実行され、図10に示した削除処理フローに従って、既にキャッシュ済みのコンテンツにつき、総サイズが予め定められた基準値以下になるまで、圧縮率の高いものを優先して削除する(なお、図10では、一例として、この基準値をキャッシュ容量の80%としている。)。   Therefore, in the state illustrated in FIG. 8, when the content P is newly acquired and the compression ratio is p, it is assumed that the total size of the content cached in the processing flow of FIG. 9 exceeds the cache capacity. In this case, the deletion process (step S3) in FIG. 9 is executed, and according to the deletion process flow shown in FIG. 10, until the total size of the already cached content becomes equal to or smaller than a predetermined reference value, The higher one is deleted preferentially (in FIG. 10, as an example, this reference value is 80% of the cache capacity).

なお、予め定められた基準値は、例えば、キャッシュ容量の80%などであるが、これに限定されるものではなく、キャッシュ容量に対する他の比率でもよいし、キャッシュ容量とは関係なく決定される値であってもよい。ただし、キャッシュされたコンテンツを削除しすぎると差分圧縮に使えるコンテンツが減り差分圧縮効果が下がり、残しすぎても本削除処理が頻発し性能上の問題となるので、妥当な値を用いる必要がある。   The predetermined reference value is, for example, 80% of the cache capacity, but is not limited to this, and may be other ratio to the cache capacity or determined regardless of the cache capacity. It may be a value. However, if the cached content is deleted too much, the content that can be used for differential compression will be reduced and the differential compression effect will be reduced, and even if it is left too much, this deletion processing will occur frequently and cause a performance problem, so it is necessary to use a reasonable value .

図9に関して処理フローに従って例を挙げると、例えば、新たに取得したコンテンツPが圧縮率32.4%のコンテンツであった場合、図9のCRの計算によって、CR=(int)((32.4/10)×10)=(int)(3×10)=30となり、圧縮率30%〜40%に対応するグリッドに登録される。   Taking an example according to the processing flow with respect to FIG. 9, for example, when the newly acquired content P is content with a compression rate of 32.4%, CR = (int) ((32. 4/10) × 10) = (int) (3 × 10) = 30, which is registered in the grid corresponding to the compression rate of 30% to 40%.

上記具体例の場合、圧縮率が60〜70%の間にあるコンテンツCと圧縮率が50〜60%の間にあるコンテンツO、L、Iを削除するとキャッシュされているコンテンツの総サイズが80%以下になったものとする。キャッシュの総サイズは、圧縮率の高いグリッドから順に、そのグリッドに含まれるコンテンツを全て削除する度に計算する。本具体例では、圧縮率50%〜60%に対応するグリッド(401)に含まれるコンテンツO、L、Iを削除した後にまだキャッシュに残っているコンテンツの総サイズがキャッシュ容量の80%以下になったため、圧縮率40%〜50%に対応するグリッド(402)の削除は行われなかった。また、コンテンツPは圧縮率pの値とサイズによって、ヒストグラムの適切なグリッドに登録されるとともに、キャッシュされる。   In the case of the above specific example, if the contents C having a compression ratio of 60 to 70% and the contents O, L, and I having a compression ratio of 50 to 60% are deleted, the total size of the cached contents is 80. % Or less. The total size of the cache is calculated every time the contents included in the grid are deleted in order from the grid with the highest compression rate. In this specific example, the total size of the contents still remaining in the cache after deleting the contents O, L, and I included in the grid (401) corresponding to the compression ratio of 50% to 60% is 80% or less of the cache capacity. Therefore, the grid (402) corresponding to the compression rate of 40% to 50% was not deleted. Further, the content P is registered in an appropriate grid of the histogram and cached according to the value and size of the compression rate p.

なお、本具体例では、ヒストグラムを用いてグリッド幅を10%、削除する際にキャッシュ容量に対して削除後にキャッシュに残るコンテンツの総サイズをキャッシュ容量の80%という値を用いたが、これらに限定されるものではなく、圧縮率の高いものを優先的に削除するものであればどのような形態でも良い。   In this specific example, the grid width is set to 10% using a histogram, and the total size of contents remaining in the cache after deletion is set to 80% of the cache capacity with respect to the cache capacity at the time of deletion. The present invention is not limited, and any form may be used as long as a high compression ratio is deleted preferentially.

次に、図11を参照しながら動的コンテンツに対するキャッシュ削除方法の他の例について説明する。   Next, another example of a cache deletion method for dynamic content will be described with reference to FIG.

図11の具体例において、時系列に取得したコンテンツを並べると、(先の例と同様)A,B,C,D,…,M,N,Oであったとする。図11は、メモリ上に設置されるヘッドとテイルを持つ双方向連結リスト(450)によって、キャッシュ済みコンテンツのうち圧縮率の高いものから順に削除する方法を示している。図11のリストヘッド(451)から圧縮率の低いコンテンツを順にその識別子とサイズと圧縮率がリストの要素として連結リスト(450)に登録されている。例えば、識別子Aのコンテンツは識別子A・サイズ10023(Bytes)・圧縮率0.0%として要素452に登録されている。同様に、既にキャッシュ済みのコンテンツ全てについて圧縮率の低い順にリストヘッド(451)からリストテイル(462)までの間に登録されている。   In the specific example of FIG. 11, when contents acquired in time series are arranged, it is assumed that they are A, B, C, D,..., M, N, O (similar to the previous example). FIG. 11 shows a method of deleting the cached contents in descending order of the compression ratio by using the bi-directional linked list (450) having the head and tail installed on the memory. In the list head (451) of FIG. 11, contents with a low compression rate are registered in the linked list (450) as identifiers, sizes and compression rates in order. For example, the content of the identifier A is registered in the element 452 as an identifier A, a size 10025 (Bytes), and a compression rate of 0.0%. Similarly, all cached contents are registered between the list head (451) and the list tail (462) in ascending order of compression rate.

図12に、上記連結リスト(450)にキャッシュするコンテンツを登録する際の処理手順の一例を示す。まず、識別子とサイズと圧縮率を取得する(ステップS21)。追加するとリストにあるコンテンツの総サイズがキャッシュ可能サイズを超えない場合(ステップS2)、ステップS24に進む。他方、追加するとリストにあるコンテンツの総サイズがキャッシュ可能サイズを超える場合(ステップS22)、削除処理を実行(ステップS23)した後に、ステップS24に進む。ステップS24において圧縮率が50%以上ならば、リストテイルから検索開始し(ステップS25)、リストをたどって自分のサイズ以下の要素を探し(ステップS26)、該当要素の直後の要素として登録する(ステップS27)。他方、ステップS24において圧縮率が50%を超えているならば、リストヘッドから検索開始し(ステップS28)、リストをたどって自分のサイズ以上の要素を探し(ステップS29)、該当要素の直前の要素として登録する(ステップS30)。   FIG. 12 shows an example of a processing procedure when registering contents to be cached in the linked list (450). First, an identifier, a size, and a compression rate are acquired (step S21). If the total size of the contents in the list does not exceed the cacheable size after addition (step S2), the process proceeds to step S24. On the other hand, if the total size of the contents in the list exceeds the cacheable size when added (step S22), the deletion process is executed (step S23), and then the process proceeds to step S24. If the compression ratio is 50% or more in step S24, the search is started from the list tail (step S25), the list is searched for an element smaller than its own size (step S26), and is registered as an element immediately after the corresponding element (step S26). Step S27). On the other hand, if the compression rate exceeds 50% in step S24, the search is started from the list head (step S28), the list is searched for an element larger than its own size (step S29), and the element immediately before the corresponding element is searched. Register as an element (step S30).

図13に、上記ヒストグラム(400)及びキャッシュからの削除処理手順の一例を示す。まず、リストテイルから開始し(ステップS31)、前の要素へたどり(ステップS32)、要素を削除する(ステップS33)。ここで、キャッシュに残っているコンテンツの総サイズが80%以下ならば(ステップS34)、処理を終了する。他方、キャッシュに残っているコンテンツの総サイズが80%を越えているならば(ステップS34)、さらに、要素を削除する(ステップS33)。以上の処理を、キャッシュに残っているコンテンツの総サイズが80%以下になるまで、繰り返し実行する。   FIG. 13 shows an example of the procedure for deleting the histogram (400) and the cache. First, starting from the list tail (step S31), the previous element is traced (step S32), and the element is deleted (step S33). Here, if the total size of the contents remaining in the cache is 80% or less (step S34), the process is terminated. On the other hand, if the total size of the content remaining in the cache exceeds 80% (step S34), further elements are deleted (step S33). The above processing is repeatedly executed until the total size of the contents remaining in the cache becomes 80% or less.

さて、図12に示された登録手順に従ってコンテンツを登録することによって、図11に示されている状態ができたものとする。ただし、図11の状態では、まだ、図12に示されている削除処理(ステップS23)は行われていないものとする。   Now, it is assumed that the state shown in FIG. 11 is achieved by registering the content according to the registration procedure shown in FIG. However, in the state of FIG. 11, it is assumed that the deletion process (step S23) shown in FIG. 12 has not been performed yet.

図11で新たにコンテンツを取得し連結リストに登録しようとする際、図12の手順によると、そのコンテンツの識別子Pとサイズ7634と圧縮率18.5の要素を登録しようとした場合、キャッシュ済みのコンテンツの総サイズがキャッシュ可能サイズを超えるので、削除処理(ステップS23)を実行することになる。削除処理では、リストテイルから順にすなわち圧縮率の高いものから順に、要素を削除し、キャッシュに残っているコンテンツのサイズの総和が予め定められた基準値以下になったら、この削除処理は終了する。そして、引き続き、図12の残りの部分を実行し、一連の処理が終了する(なお、図13では、一例として、この基準値をキャッシュ容量の80%としている)。図11では、上記処理の結果、識別子C、I、O、Lが削除された場合を示している。   When newly acquiring content in FIG. 11 and registering it in the linked list, according to the procedure in FIG. 12, if the content identifier P, size 7634, and compression factor of 18.5 are registered, cached Since the total size of the contents exceeds the cacheable size, the deletion process (step S23) is executed. In the deletion process, elements are deleted in order from the list tail, that is, in descending order of the compression ratio, and the deletion process ends when the total size of the contents remaining in the cache falls below a predetermined reference value. . Subsequently, the remaining part of FIG. 12 is executed, and the series of processing ends (in FIG. 13, as an example, this reference value is 80% of the cache capacity). FIG. 11 shows a case where identifiers C, I, O, and L are deleted as a result of the above processing.

なお、本具体例では、連結リスト用いて、削除する際にキャッシュ容量に対して削除後にキャッシュに残るコンテンツの総サイズをキャッシュ容量の80%という値を用いたが、これに限定されるものではなく、圧縮率の高いものを優先的に削除するものであればどのような形態でも良い。   In this specific example, using the linked list, the total size of the contents remaining in the cache after deletion is 80% of the cache capacity with respect to the cache capacity at the time of deletion. However, the present invention is not limited to this. However, any form may be used as long as the one with a high compression rate is deleted preferentially.

上記に二つ例を示したが、このように圧縮率の高いものを優先的に削除すると、動的コンテンツに対して差分をとる場合に、重複のある無駄なコンテンツがキャッシュから削除されることになる。なぜなら、もしあるコンテンツαを取得した際にそのコンテンツを差分圧縮するのに十分なコンテンツが1つないしは複数が既にキャッシュにあった場合、新たに取得したコンテンツαは既にキャッシュにあるコンテンツによって圧縮され、圧縮率が高くなる。さらに、コンテンツαと非常に似たコンテンツα´を取得したとしてもコンテンツαの場合と同様に既にキャッシュにある1つないし複数のコンテンツによって十分に圧縮することができるため、コンテンツαとα´をキャッシュに残しておく必要がないためである。   Two examples have been shown above, but if such a high compression rate is deleted preferentially, redundant content is deleted from the cache when a difference is taken for dynamic content. become. Because, if one or more contents are already in the cache enough to differentially compress the content α when it is acquired, the newly acquired content α is compressed by the content already in the cache And the compression rate becomes high. Furthermore, even if the content α ′ very similar to the content α is acquired, the content α and α ′ can be sufficiently compressed by one or a plurality of contents already in the cache as in the case of the content α. This is because there is no need to leave it in the cache.

次に、図14及び図15に、上述の削除方法を実現するために必要な機能ブロックを示す。図14及び図15には、サーバー側装置500及びクライアント側装置520それぞれの機能ブロックを示してある。   Next, FIGS. 14 and 15 show functional blocks necessary for realizing the above-described deletion method. 14 and 15 show functional blocks of the server side device 500 and the client side device 520, respectively.

サーバー側装置500には、下流からHTTPリクエストを受信し上流に該当HTTPリクエストを送信したり、上流からHTTPレスポンスを受信し下流に差分データ等のHTTPレスポンスを送信したりする通信部501が備えられている。   The server-side device 500 includes a communication unit 501 that receives an HTTP request from the downstream and transmits the HTTP request upstream, or receives an HTTP response from the upstream and transmits an HTTP response such as differential data downstream. ing.

サーバー側装置500は、上流からHTTPレスポンスを受信すると、差分圧縮処理(図3中の丸数字3で示される部分参照)を差分圧縮部502で行い、通信部501を介して下流に差分圧縮データを送信すると伴に、サーバー側登録部505によってサーバー側キャッシュ保持部503に差分圧縮前のコンテンツをキャッシュする。同時に、サーバー側圧縮率計算部506が、差分圧縮部502から取得した差分データのサイズと通信部501から取得した差分圧縮前のコンテンツサイズとから式(1)を用いて圧縮率を計算するとともに、サーバー側サイズ取得部509が、通信部501から差分圧縮前のコンテンツのサイズを取得し、サーバー側サイズ・圧縮率保持部507に登録する。   Upon receiving the HTTP response from the upstream side, the server side device 500 performs differential compression processing (refer to the part indicated by the circled numeral 3 in FIG. 3) by the differential compression unit 502 and downstream through the communication unit 501, the differential compressed data , The server side registration unit 505 caches the content before differential compression in the server side cache holding unit 503. At the same time, the server side compression rate calculation unit 506 calculates the compression rate using the equation (1) from the size of the difference data acquired from the difference compression unit 502 and the content size before the difference compression acquired from the communication unit 501. The server-side size acquisition unit 509 acquires the size of the content before differential compression from the communication unit 501 and registers it in the server-side size / compression rate holding unit 507.

サーバー側サイズ・圧縮率保持部507は、図8ではヒストグラム(400)が該当し、図11では双方向連結リスト(450)が該当する。   The server-side size / compression rate holding unit 507 corresponds to the histogram (400) in FIG. 8, and corresponds to the bidirectional linked list (450) in FIG.

サーバー側サイズ・圧縮率保持部507が保持するキャッシュ済みコンテンツの総サイズが、サーバー側キャッシュ可能サイズ保持部510から取得したキャッシュ可能サイズ(通常はユーザーが設定した値)を超えた場合、サーバー側削除判定部508によって1つないしは複数の削除対象コンテンツを検出し、サーバー側削除判定部504によってサーバー側キャッシュ保持部503から該当削除対象コンテンツを削除する。   When the total size of the cached content held by the server-side size / compression rate holding unit 507 exceeds the cacheable size (usually set by the user) acquired from the server-side cacheable size holding unit 510, the server side The deletion determination unit 508 detects one or a plurality of deletion target contents, and the server side deletion determination unit 504 deletes the corresponding deletion target contents from the server side cache holding unit 503.

サーバー側削除判定部508は、図8で説明した形態では図10に示した処理フローが該当し、図11で説明した形態では図13に示した処理フローが該当する。   The server-side deletion determination unit 508 corresponds to the processing flow shown in FIG. 10 in the form described in FIG. 8, and corresponds to the processing flow shown in FIG. 13 in the form described in FIG.

クライアント側装置520には、下流からHTTPリクエストを受信し上流に該当HTTPリクエストを送信したり、上流からHTTPレスポンスを受信し下流に差分データ等のHTTPレスポンスを送信したりする通信部521が備えられている。   The client-side device 520 includes a communication unit 521 that receives an HTTP request from the downstream and transmits the HTTP request upstream, or receives an HTTP response from the upstream and transmits an HTTP response such as difference data to the downstream. ing.

クライアント側装置520は、上流から差分圧縮データを含むのHTTPレスポンスを受信すると、差分伸長処理(図3中の丸数字6で示される部分参照)を差分伸長部522で行い、通信部521を介して下流に伸長後のコンテンツを送信すると伴に、クライアント側登録部525によってクライアント側キャッシュ保持部523に差分伸長後のコンテンツをキャッシュする。同時に、クライアント側圧縮率計算部526が、通信部521から取得した差分データのサイズと差分伸長部522から取得した差分伸長後のサイズとから式(1)を用いて圧縮率を計算するとともに、クライアント側サイズ取得部529が、差分伸長部522から取得した差分伸長後のコンテンツのサイズを取得し、クライアント側サイズ・圧縮率保持部527に登録する。   Upon receiving an HTTP response including differentially compressed data from upstream, the client side device 520 performs a differential decompression process (refer to a part indicated by a circled number 6 in FIG. 3) by the differential decompression unit 522 and via the communication unit 521. When the expanded content is transmitted downstream, the client side registration unit 525 caches the content after the differential expansion in the client side cache holding unit 523. At the same time, the client side compression rate calculation unit 526 calculates the compression rate using the equation (1) from the size of the difference data acquired from the communication unit 521 and the size after the difference expansion acquired from the difference expansion unit 522, and The client-side size acquisition unit 529 acquires the size of the content after differential expansion acquired from the differential expansion unit 522 and registers it in the client-side size / compression rate holding unit 527.

クライアント側サイズ・圧縮率保持部527は、図8ではヒストグラム(400)が該当し、図11では双方向連結リスト(450)が該当する。   The client-side size / compression rate holding unit 527 corresponds to the histogram (400) in FIG. 8, and corresponds to the bidirectional linked list (450) in FIG.

クライアント側サイズ・圧縮率保持部527が保持するキャッシュ済みコンテンツの総サイズが、クライアント側キャッシュ可能サイズ保持部530から取得したキャッシュ可能サイズ(通常はユーザーが設定した値)を超えた場合、クライアント側削除判定部528によって1つないしは複数の削除対象コンテンツを検出し、クライアント側削除判定部524によってクライアント側キャッシュ保持部523から該当削除対象コンテンツを削除する。   When the total size of the cached content held by the client side size / compression rate holding unit 527 exceeds the cacheable size (usually set by the user) acquired from the client side cacheable size holding unit 530, the client side The deletion determination unit 528 detects one or a plurality of deletion target contents, and the client side deletion determination unit 524 deletes the corresponding deletion target contents from the client side cache holding unit 523.

クライアント側削除判定部528は、図8で説明した形態では図10に示した処理フローが該当し、図11で説明した形態では図13に示した処理フローが該当する。   The client-side deletion determination unit 528 corresponds to the processing flow shown in FIG. 10 in the form described in FIG. 8, and corresponds to the processing flow shown in FIG. 13 in the form described in FIG.

上述した構成例では、キャッシュの削除方法は、サーバー側装置、クライアント側装置が独立して行っていたものである。しかし、クライアント側装置がPDA(Personal Digital Assistants)や携帯電話等の小型形態端末であって、メモリ上にキャッシュ領域がとられる場合もある。この場合、図15に示したクライアント側キャッシュ保持部523とクライアント側サイズ・圧縮率保持部527の両方をメモリ上に設置する必要があり、クライアント側キャッシュ保持部523のサイズと図14に示したサーバー側キャッシュ保持部503のサイズとが極端に異なることになる。また、システムパフォーマンスの低い小型携帯端末で、クライアント側削除判定部527によって削除対象を決定する必要があるため、処理の量の観点からクライアント側装置で上記判定を行いたくない場合がある。   In the configuration example described above, the cache deletion method is performed independently by the server side device and the client side device. However, in some cases, the client-side device is a small-sized terminal such as a PDA (Personal Digital Assistants) or a mobile phone, and a cache area is allocated on the memory. In this case, both the client-side cache holding unit 523 and the client-side size / compression rate holding unit 527 shown in FIG. 15 need to be installed in the memory. The size of the client-side cache holding unit 523 and the size shown in FIG. The size of the server side cache holding unit 503 is extremely different. In addition, since it is necessary to determine the deletion target by the client-side deletion determination unit 527 in a small portable terminal with low system performance, there is a case where the client-side device does not want to perform the above determination from the viewpoint of processing amount.

そこで、以下では、サーバー側装置とクライアント装置との間で連携して上記キャッシュ領域サイズの違いとクライアント側装置の処理量の削減を実現する方法の一例について説明する。   Therefore, in the following, an example of a method for realizing a difference in the cache area size and a reduction in processing amount of the client side device in cooperation between the server side device and the client device will be described.

図16及び図17は、サーバー側装置600とクライアント側装置620それぞれの機能ブロックを示した図である。クライアント側装置620はPDAや携帯端末等の小型携帯端末である。   16 and 17 are functional block diagrams of the server side device 600 and the client side device 620, respectively. The client side device 620 is a small portable terminal such as a PDA or a portable terminal.

クライアント側装置620は、図15に示したクライアント側サイズ・圧縮率保持部527、クライアント側圧縮率計算部526、クライアント側削除判定部528が省かれている。クライアント側サイズ・圧縮率保持部527が省かれているためメモリ使用量が削減され、クライアント側圧縮率計算部526、クライアント側削除判定部528が省かれているため処理量が削減されている。一方、図17で新たに追加された機能として、クライアント側キャッシュ可能サイズ通知部627、クライアント側削除通知取得部626がある。また、サーバー側装置600は、サーバー側キャッシュ可能サイズ保持部510の代わりにキャッシュ可能サイズ保持部610、クライアント側キャッシュ可能サイズ取得部612、サーバー側削除通知部611が追加されている。   The client-side device 620 omits the client-side size / compression rate holding unit 527, the client-side compression rate calculation unit 526, and the client-side deletion determination unit 528 shown in FIG. Since the client side size / compression rate holding unit 527 is omitted, the memory usage is reduced, and the client side compression rate calculation unit 526 and the client side deletion determination unit 528 are omitted, so that the processing amount is reduced. On the other hand, as functions newly added in FIG. 17, there are a client-side cacheable size notification unit 627 and a client-side deletion notification acquisition unit 626. Further, in the server side device 600, a cacheable size holding unit 610, a client side cacheable size acquisition unit 612, and a server side deletion notification unit 611 are added instead of the server side cacheable size holding unit 510.

まず、予め、クライアント側装置620が、クライアント側のキャッシュ可能サイズを、クライアント側キャッシュ可能サイズ通知部627によって通信部621を介してサーバー側装置600に送信する。   First, the client-side device 620 transmits the client-side cacheable size to the server-side device 600 via the communication unit 621 by the client-side cacheable size notification unit 627 in advance.

サーバー側装置600は、通信部601で受信したクライアント側キャッシュ可能サイズを、クライアント側キャッシュ可能サイズ取得部612によって取得する。サーバー側キャッシュ可能サイズとクライアント側キャッシュ可能サイズとを比較してより小さい値を、キャッシュ可能サイズ保持部610に登録する。ここでは、クライアント側装置620のキャッシュ可能サイズが明らかに小さく、クライアント側キャッシュ可能サイズがキャッシュ可能サイズ保持部610に登録されることになる。   The server-side apparatus 600 acquires the client-side cacheable size received by the communication unit 601 by the client-side cacheable size acquisition unit 612. The server-side cacheable size is compared with the client-side cacheable size, and a smaller value is registered in the cacheable size holding unit 610. Here, the cacheable size of the client side device 620 is obviously small, and the client side cacheable size is registered in the cacheable size holding unit 610.

クライアント側装置620のクライアント側キャッシュ可能サイズ通知部627から通信部621とサーバー側装置600の通信部601を介してクライアント側キャッシュ可能サイズ取得部612に通知されるクライアント側キャッシュ可能サイズは、例えば、図18に示すようにHTTP1.1のOPTIONSメソッドを用いて実現可能である。図18のリクエストヘッダーを、クライアント側装置620のキャッシュ可能サイズが32(MBytes)であることをX−Cache−Sizeヘッダーを用いてサーバー側装置600(ホスト名:hogehoge.○○○.co.jp)に対して通知するために、送信する。また、レスポンスヘッダーは、サーバー側装置600が該当リクエストからクライアント側キャッシュ可能サイズを正常に受け取った旨を通知するために、クライアント側装置620に対して送信する。ただし、上記のようにHTTPを利用するのではなく、他のプロトコルや人の手によって設定されてもよく、その形態は問わない。   The client-side cacheable size notified from the client-side cacheable size notification unit 627 of the client-side device 620 to the client-side cacheable size acquisition unit 612 via the communication unit 621 and the communication unit 601 of the server-side device 600 is, for example, As shown in FIG. 18, it can be realized by using the OPTIONS method of HTTP 1.1. 18, the server side device 600 (host name: hogehoge.xxx.co.jp) uses the X-Cache-Size header to indicate that the cacheable size of the client side device 620 is 32 (MBytes). ) To send notifications. The response header is transmitted to the client side device 620 in order to notify that the server side device 600 has normally received the client side cacheable size from the corresponding request. However, instead of using HTTP as described above, it may be set by another protocol or a human hand, and the form is not limited.

上述のようにして予めサーバー側装置600は、クライアント側装置620のキャッシュ可能サイズを取得し、キャッシュ可能サイズ保持部610の値を決定しておく。   As described above, the server side device 600 acquires the cacheable size of the client side device 620 in advance and determines the value of the cacheable size holding unit 610.

サーバー側装置600には、下流からHTTPリクエストを受信し上流に該当HTTPリクエストを送信したり、上流からHTTPレスポンスを受信し下流に差分データ等のHTTPレスポンスを送信したりする通信部601が備えられている。   The server-side device 600 includes a communication unit 601 that receives an HTTP request from the downstream and transmits the corresponding HTTP request upstream, or receives an HTTP response from the upstream and transmits an HTTP response such as difference data downstream. ing.

サーバー側装置600は、上流からHTTPレスポンスを受信すると、差分圧縮処理(図3中の丸数字3で示される部分参照)を差分圧縮部602で行い、通信部601を介して下流に差分圧縮データを送信すると伴に、サーバー側登録部605によってサーバー側キャッシュ保持部603に差分圧縮前のコンテンツをキャッシュする。同時に、サーバー側圧縮率計算部606が、差分圧縮部602から取得した差分データのサイズと通信部601から取得した差分圧縮前のコンテンツサイズから式(1)を用いて圧縮率を計算するとともに、サーバー側サイズ取得部609が、通信部601から差分圧縮前のコンテンツのサイズを取得し、サーバー側サイズ・圧縮率保持部607に登録する。   Upon receiving the HTTP response from the upstream side, the server side device 600 performs differential compression processing (refer to the part indicated by the circled numeral 3 in FIG. 3) by the differential compression unit 602, and downstream the differential compressed data via the communication unit 601. Is transmitted, the server-side registration unit 605 caches the content before differential compression in the server-side cache holding unit 603. At the same time, the server-side compression rate calculation unit 606 calculates the compression rate using Equation (1) from the size of the difference data acquired from the difference compression unit 602 and the content size before differential compression acquired from the communication unit 601. The server-side size acquisition unit 609 acquires the size of the content before differential compression from the communication unit 601 and registers it in the server-side size / compression rate holding unit 607.

サーバー側サイズ・圧縮率保持部607は、図8ではヒストグラム(400)が該当し、図11では双方向連結リスト(450)が該当する。   The server-side size / compression rate holding unit 607 corresponds to the histogram (400) in FIG. 8, and corresponds to the bidirectional linked list (450) in FIG.

サーバー側サイズ・圧縮率保持部607が保持するキャッシュ済みコンテンツの総サイズが、キャッシュ可能サイズ保持部610から取得したキャッシュ可能サイズを超えた場合、サーバー側削除判定部608によって1つないしは複数の削除対象コンテンツを検出し、サーバー側削除判定部604によってサーバー側キャッシュ保持部603から該当削除対象コンテンツを削除するとともに、サーバー側削除通知部611によって削除対象コンテンツを通信部601を介してクライアント側装置600に送信する。ただし、削除対象コンテンツは、差分データをクライアント側装置620に送信する際に、レスポンスヘッダーの一部として通知する。   When the total size of the cached content held by the server-side size / compression rate holding unit 607 exceeds the cacheable size acquired from the cacheable size holding unit 610, the server-side deletion determination unit 608 performs one or more The deletion target content is detected, the server side deletion determination unit 604 deletes the deletion target content from the server side cache holding unit 603, and the server side deletion notification unit 611 sends the deletion target content to the client side device via the communication unit 601. 600. However, the deletion target content is notified as a part of the response header when the difference data is transmitted to the client side device 620.

なお、サーバー側削除判定部608は、図8で説明した形態では図10に示した処理フローが該当し、図11で説明した形態では図13に示した処理フローが該当する。   The server-side deletion determination unit 608 corresponds to the processing flow shown in FIG. 10 in the form described in FIG. 8, and corresponds to the processing flow shown in FIG. 13 in the form described in FIG.

クライアント側装置620は、サーバー側装置600から送信されてきた差分データと削除対象コンテンツを含むレスポンスとを通信部621によって受信する。差分伸長部622は、該当レスポンスが差分データであることを判定し、差分伸長処理を行う。伸長処理が終わり復元されたコンテンツは、通信部621を介して下流に送信されるとともに、クライアント側登録部625によってクライアント側キャッシュ保持部623に保存される。また、クライアント側削除通知取得部626は、レスポンスヘッダーに削除対象コンテンツがあると、指定された識別子のコンテンツをクライアント側削除部624によってクライアント側キャッシュ保持部623から削除する。   The client side device 620 receives the difference data transmitted from the server side device 600 and the response including the content to be deleted by the communication unit 621. The differential decompression unit 622 determines that the corresponding response is differential data, and performs differential decompression processing. The restored content after the decompression process is transmitted downstream via the communication unit 621 and is stored in the client side cache holding unit 623 by the client side registration unit 625. In addition, when there is content to be deleted in the response header, the client side deletion notification acquisition unit 626 deletes the content with the specified identifier from the client side cache holding unit 623 by the client side deletion unit 624.

図19に、上記差分データと削除対象コンテンツを指定したHTTPレスポンスの一例を示す。図19では、削除対象コンテンツの識別子が図8又は図11の例で示されたC,O,L,Iであった場合であり、X−Purge−Identifierヘッダーにその識別子を指定することで、クライアント側装置620は、クライアント側削除通知取得部626によって削除対象コンテンツがC,O,L,Iであることを判別し、クライアント側削除部624によってクライアント側キャッシュ保持部623から削除する。   FIG. 19 shows an example of an HTTP response specifying the difference data and the content to be deleted. In FIG. 19, the identifier of the content to be deleted is the case of C, O, L, I shown in the example of FIG. 8 or FIG. 11, and by specifying the identifier in the X-Purge-Identifier header, The client side device 620 determines that the content to be deleted is C, O, L, I by the client side deletion notification acquisition unit 626 and deletes it from the client side cache holding unit 623 by the client side deletion unit 624.

このようにして、キャッシュ可能サイズの明らかに異なるサーバー側装置とクライアント側装置を連携することで、クライアント側装置の処理量を軽減するとともに、キャッシュされているコンテンツの不一致による差分伸長処理の失敗がなくなり、よりサーバー側装置とクライアント側装置との間を流れるデータ転送量を削減することができる。   In this way, by coordinating the server-side device and the client-side device with clearly different cacheable sizes, the processing amount of the client-side device is reduced, and the differential decompression processing failure due to a mismatch of cached contents is prevented. The amount of data transferred between the server side device and the client side device can be further reduced.

なお、上記では、差分データのレスポンスヘッダーの一部として削除対象コンテンツを指定したが、もちろん、他のプロトコルを用いて別途クライアント側装置に通知しても良い。   In the above description, the content to be deleted is specified as a part of the response header of the difference data. Of course, the client side apparatus may be notified separately using another protocol.

ところで、図14及び図15に示した構成例によって動的コンテンツのキャッシュを削除するのに有効な削除方法を示したが、この場合、キャッシュを削除した後にも引き続いて差分圧縮対象となったコンテンツがその圧縮率に関わらず新たにキャッシュされていく。もし既にキャッシュにある1つないし複数のコンテンツによって十分圧縮されるコンテンツを新たに取得した場合、圧縮率が高くなる。その場合、キャッシュに登録する前に圧縮率によってキャッシュに登録するのかしないのかを判定することでより、効率よく動的コンテンツをキャッシュすることが可能となる。   Incidentally, the configuration example shown in FIG. 14 and FIG. 15 shows an effective deletion method for deleting the cache of dynamic content, but in this case, the content that is subsequently subjected to differential compression even after the cache is deleted Are newly cached regardless of the compression ratio. If a new content that is sufficiently compressed by one or more contents already in the cache is acquired, the compression rate increases. In this case, it is possible to cache dynamic content more efficiently by determining whether to register in the cache based on the compression ratio before registering in the cache.

この判定には、ある圧縮率の閾値が必要になるが、この閾値は、例えば、図8又は図11の構成により取得することができる。図8においては、例えば、図10の削除処理フローでキャッシュサイズが80%以下になった際のグリッドの最小値を閾値Tとする。図8の具体例の場合、T=50という値が取得できる(図8の閾値T(403))。また、図11においては、例えば、図13の削除処理フローでキャッシュサイズが80%以下になった際に削除した最後の要素のコンテンツの圧縮率を閾値Tとする。図8の具体例の場合、T=54.5(図11の閾値T(464))という値が取得できる。   This determination requires a threshold value of a certain compression ratio, and this threshold value can be acquired by the configuration of FIG. 8 or FIG. 11, for example. In FIG. 8, for example, the minimum value of the grid when the cache size becomes 80% or less in the deletion processing flow of FIG. In the specific example of FIG. 8, a value of T = 50 can be acquired (threshold value T (403) of FIG. 8). In FIG. 11, for example, the compression rate of the content of the last element deleted when the cache size becomes 80% or less in the deletion processing flow of FIG. In the case of the specific example of FIG. 8, a value of T = 54.5 (threshold value T (464) of FIG. 11) can be acquired.

この閾値Tは、削除処理が行われるたびに上記方法によって更新される。初回の削除処理が行われる前のTの初期値は100%が望ましいが、これに限定されるものではない。   This threshold value T is updated by the above method every time deletion processing is performed. The initial value of T before the first deletion process is desirably 100%, but is not limited to this.

以下では、動的コンテンツの登録判定方法の一例について説明する。   Hereinafter, an example of a dynamic content registration determination method will be described.

図20に、上記のようにして取得した閾値Tを用いてキャッシュに登録するかどうかを判定する処理手順の一例を示す。まず、圧縮率を取得する(ステップS41)。圧縮率がT以下ならば(ステップS42)、登録する(ステップS43)。他方、圧縮率がTを越えているならば(ステップS42)、登録しないものとする(ステップS44)。   FIG. 20 shows an example of a processing procedure for determining whether to register in the cache using the threshold value T acquired as described above. First, a compression rate is acquired (step S41). If the compression rate is T or less (step S42), registration is performed (step S43). On the other hand, if the compression rate exceeds T (step S42), it is not registered (step S44).

また、図21に、図20に示した圧縮率の閾値による判定部を入れた場合のサーバー側装置の機能ブロックを示す。図14と比較して、新たにサーバー側登録判定部711が新規に追加されている。   FIG. 21 shows a functional block of the server side apparatus when the determination unit based on the compression rate threshold shown in FIG. 20 is included. Compared to FIG. 14, a server-side registration determination unit 711 is newly added.

図21における一連の処理フローは次のようになる。   A series of processing flow in FIG. 21 is as follows.

サーバー側装置700には、下流からHTTPリクエストを受信し上流に該当HTTPリクエストを送信したり、上流からHTTPレスポンスを受信し下流に差分データ等のHTTPレスポンスを送信したりする通信部701が備えられている。   The server side device 700 is provided with a communication unit 701 that receives an HTTP request from the downstream and transmits the corresponding HTTP request upstream, or receives an HTTP response from the upstream and transmits an HTTP response such as differential data downstream. ing.

サーバー側装置700は、上流からHTTPレスポンスを受信すると、差分圧縮処理(図3中の丸数字3で示される部分参照)を差分圧縮部702で行い、通信部701を介して下流に差分圧縮データを送信する。続いて、サーバー側登録判定部711は、式(1)によって圧縮率をサーバー側圧縮率計算部706から取得するとともに、サーバー側削除判定部708からそのときの閾値Tを取得し、図20に示した判定処理によって差分圧縮前のコンテンツをキャッシュするかどうかを判定する。もしサーバー側登録判定部711によって登録しないと判定された場合は、そこで処理が終わる。もし登録すると判定された場合は、サーバー側登録部705によってサーバー側キャッシュ保持部703に差分圧縮前のコンテンツをキャッシュする。同時に、サーバー側圧縮率計算部706とサーバー側サイズ取得部709から取得した圧縮率とサイズを、サーバー側サイズ・圧縮率保持部707に登録する。   When the server side device 700 receives the HTTP response from the upstream side, the server side device 700 performs the differential compression processing (refer to the portion indicated by the circled numeral 3 in FIG. 3) in the differential compression unit 702, and differentially compressed data downstream via the communication unit 701. Send. Subsequently, the server-side registration determination unit 711 acquires the compression rate from the server-side compression rate calculation unit 706 according to the equation (1), acquires the threshold T at that time from the server-side deletion determination unit 708, and FIG. It is determined whether or not the content before differential compression is cached by the indicated determination process. If the server-side registration determination unit 711 determines not to register, the processing ends there. If it is determined to be registered, the server-side registration unit 705 caches the content before differential compression in the server-side cache holding unit 703. At the same time, the compression rate and size acquired from the server side compression rate calculation unit 706 and the server side size acquisition unit 709 are registered in the server side size / compression rate holding unit 707.

サーバー側サイズ・圧縮率保持部707は、図8ではヒストグラム(400)が該当し、図11では双方向連結リスト(450)が該当する。   The server-side size / compression rate holding unit 707 corresponds to the histogram (400) in FIG. 8, and corresponds to the bidirectional linked list (450) in FIG.

サーバー側サイズ・圧縮率保持部707が保持するキャッシュ済みコンテンツの総サイズが、サーバー側キャッシュ可能サイズ保持部710から取得したキャッシュ可能サイズを超えた場合、サーバー側削除判定部708によって1つないしは複数の削除対象コンテンツを検出し、サーバー側削除判定部704によってサーバー側キャッシュ保持部703から該当削除対象コンテンツを削除する。   When the total size of the cached content held by the server-side size / compression rate holding unit 707 exceeds the cacheable size acquired from the server-side cacheable size holding unit 710, the server-side deletion determination unit 708 performs one or A plurality of deletion target contents are detected, and the server side deletion determination unit 704 deletes the corresponding deletion target contents from the server side cache holding unit 703.

サーバー側削除判定部708は、図8で説明した形態では図10に示した処理フローが該当し、図11で説明した形態では図13に示した処理フローが該当する。また、削除に際してサーバー側削除判定部508が閾値Tを再計算する。   The server-side deletion determination unit 708 corresponds to the processing flow shown in FIG. 10 in the form described in FIG. 8, and corresponds to the processing flow shown in FIG. 13 in the form described in FIG. In addition, the server-side deletion determination unit 508 recalculates the threshold T upon deletion.

図22に、図20に示した圧縮率の閾値による判定部を入れた場合のクライアント側装置の機能ブロックを示す。図15と比較して、新たにクライアント側登録判定部731が新規に追加されている。   FIG. 22 shows functional blocks of the client side apparatus when the determination unit based on the compression rate threshold shown in FIG. 20 is inserted. Compared to FIG. 15, a client side registration determination unit 731 is newly added.

図22における一連の処理フローは次のようになる。   A series of processing flow in FIG. 22 is as follows.

クライアント側装置720には、下流からHTTPリクエストを受信し上流に該当HTTPリクエストを送信したり、上流からHTTPレスポンスを受信し下流に差分データ等のHTTPレスポンスを送信したりする通信部721が備えられている。   The client side device 720 includes a communication unit 721 that receives an HTTP request from the downstream and transmits the corresponding HTTP request upstream, or receives an HTTP response from the upstream and transmits an HTTP response such as difference data downstream. ing.

クライアント側装置720は、上流から差分圧縮データを含むのHTTPレスポンスを受信すると、差分伸長処理(図3中の丸数字6で示される部分参照)を差分伸長部722で行い、通信部721を介して下流に伸長後のコンテンツを送信する。続いて、クライアント側登録判定部731は、式(1)によって圧縮率をクライアント側圧縮率計算部726から取得するとともに、クライアント側削除判定部728からそのときの閾値Tを取得し、図20に示した判定処理によって差分伸長後のコンテンツをキャッシュするかどうかを判定する。もしクライアント側登録判定部731によって登録しないと判定された場合は、そこで処理が終わる。もし登録すると判定された場合は、クライアント側登録部725によってクライアント側キャッシュ保持部723に差分伸長後のコンテンツをキャッシュする。同時に、クライアント側圧縮率計算部726とクライアント側サイズ取得部729から圧縮率とコンテンツのサイズ取得し、クライアント側サイズ・圧縮率保持部727に登録する。   When the client side device 720 receives an HTTP response including differentially compressed data from the upstream side, the client side device 720 performs a differential decompression process (refer to a part indicated by a circled number 6 in FIG. 3) by the differential decompression unit 722, via the communication unit 721. Then, the expanded content is transmitted downstream. Subsequently, the client-side registration determination unit 731 acquires the compression rate from the client-side compression rate calculation unit 726 according to the equation (1), acquires the threshold T at that time from the client-side deletion determination unit 728, and FIG. It is determined whether or not the content after differential expansion is cached by the indicated determination process. If the client side registration determination unit 731 determines not to register, the processing ends there. If it is determined to be registered, the client side registration unit 725 caches the content after differential expansion in the client side cache holding unit 723. At the same time, the compression rate and content size are acquired from the client side compression rate calculation unit 726 and the client side size acquisition unit 729 and registered in the client side size / compression rate holding unit 727.

クライアント側サイズ・圧縮率保持部727は、図8ではヒストグラム(400)が該当し、図11では双方向連結リスト(450)が該当する。   The client-side size / compression rate holding unit 727 corresponds to the histogram (400) in FIG. 8, and corresponds to the bidirectional linked list (450) in FIG.

クライアント側サイズ・圧縮率保持部727が保持するキャッシュ済みコンテンツの総サイズが、クライアント側キャッシュ可能サイズ保持部730から取得したキャッシュ可能サイズを超えた場合、クライアント側削除判定部728によって1つないしは複数の削除対象コンテンツを検出し、クライアント側削除判定部724によってクライアント側キャッシュ保持部723から該当削除対象コンテンツを削除する。   When the total size of the cached content held by the client side size / compression rate holding unit 727 exceeds the cacheable size acquired from the client side cacheable size holding unit 730, the client side deletion determination unit 728 selects one or A plurality of deletion target contents are detected, and the client side deletion determination unit 724 deletes the corresponding deletion target contents from the client side cache holding unit 723.

クライアント側削除判定部728は、図8で説明した形態では図10に示した処理フローが該当し、図11で説明した形態では図13に示した処理フローが該当する。また、削除に際してクライアント側削除判定部708が閾値Tを再計算する。   The client-side deletion determination unit 728 corresponds to the processing flow shown in FIG. 10 in the form described in FIG. 8, and corresponds to the processing flow shown in FIG. 13 in the form described in FIG. In addition, the client-side deletion determination unit 708 recalculates the threshold T upon deletion.

図16及び図17で説明した圧縮率に基づくサーバー側装置によるキャッシュ削除方法に加えて、図21及び図22で説明した圧縮率に基づくキャッシュ登録方法を適用したものが、図23及び図24に示した構成例である。   FIG. 23 and FIG. 24 show an application of the cache registration method based on the compression rate described in FIGS. 21 and 22 in addition to the cache deletion method by the server side device based on the compression rate described in FIGS. It is the example of a structure shown.

以下では、サーバー側装置800が圧縮率に基づきキャッシュから削除するコンテンツの判定とキャッシュに登録するべきコンテンツの判定の両方を行い、その判定をクライアント側装置820に通知することで、サーバー側装置800とクライアント側装置820のキャッシュを同期する方法を示す。   Hereinafter, the server-side apparatus 800 performs both determination of content to be deleted from the cache and determination of content to be registered in the cache based on the compression ratio, and notifies the client-side apparatus 820 of the determination, thereby the server-side apparatus 800. And a method of synchronizing the cache of the client side device 820.

図23のサーバー側装置800は、図16のサーバー側装置600に加えて新たにサーバー側登録判定通知部813を持つ。図24のクライアント側装置は、図17のクライアント側装置620に加えて新たにクライアント側登録判定通知取得部828を持つ。   A server-side device 800 in FIG. 23 newly has a server-side registration determination notification unit 813 in addition to the server-side device 600 in FIG. The client side device in FIG. 24 newly has a client side registration determination notification acquisition unit 828 in addition to the client side device 620 in FIG.

新たにコンテンツを上流からサーバー側装置800が受け取った際に、図20及び図21の構成例で説明した閾値Tによる登録判定がサーバー側登録判定部814にて行われ、キャッシュに登録すると判定された場合は、サーバー側登録部805によってサーバー側キャッシュ保持部803に保存されるとともに、サーバー側登録判定部814はサーバー側登録判定通知部813にその判定を知らせ、サーバー側登録判定通知部813は差分データを送信する際に図25に示すようなHTTPヘッダーをレスポンスに追加し、通信部801を介してレスポンスを下流に送信する。   When the server-side device 800 newly receives content from the upstream side, the registration determination based on the threshold value T described in the configuration example of FIGS. 20 and 21 is performed by the server-side registration determination unit 814, and it is determined that the content is registered in the cache. The server-side registration unit 805 stores the information in the server-side cache holding unit 803, the server-side registration determination unit 814 notifies the server-side registration determination notification unit 813 of the determination, and the server-side registration determination notification unit 813 When transmitting the difference data, an HTTP header as shown in FIG. 25 is added to the response, and the response is transmitted downstream via the communication unit 801.

クライアント側装置820は、通信部821を介して上記レスポンスを受信すると、クライアント側登録判定通知取得部828が、差分伸長部822によって伸長されたコンテンツをキャッシュするかどうかを、図25に示したHTTPヘッダーから判定し、キャッシュすると指定されていたら伸長後のコンテンツはクライアント側登録判定部825によってクライアント側キャッシュ保持部823に登録される。   When the client side device 820 receives the response via the communication unit 821, whether or not the client side registration determination notification acquisition unit 828 caches the content decompressed by the differential decompression unit 822 is shown in FIG. If it is determined from the header and specified to be cached, the decompressed content is registered in the client-side cache holding unit 823 by the client-side registration determination unit 825.

なお、キャッシュの削除に関しては図16〜図19で示した構成例と同様のものである。   Note that the deletion of the cache is the same as the configuration example shown in FIGS.

また、図25に示した例は、X−Identifierヘッダーに追加された“, save”によって、クライアント側装置820に伸長後のコンテンツをキャッシュするように指定している。もしサーバー側登録判定部814によってキャッシュしないと判定された場合は、上記“, save”をHTTPヘッダーから削除することでクライアント側装置820に伸長後のコンテンツをキャッシュしないように指定する。   In the example shown in FIG. 25, the client-side device 820 is designated to cache the expanded content by “, save” added to the X-Identifier header. If the server-side registration determination unit 814 determines not to cache, the above-mentioned “, save” is deleted from the HTTP header to instruct the client-side device 820 not to cache the expanded content.

このようにして、キャッシュの登録時にもサーバー側装置とクライアント側装置を連携することで、キャッシュされているコンテンツの不一致による差分伸長処理の失敗を回避し、よりサーバー側装置とクライアント側装置間を流れるデータ転送量を削減することができる。   In this way, by coordinating the server side device and the client side device even when registering the cache, the failure of the differential decompression process due to the mismatch of the cached contents can be avoided, and the server side device and the client side device can be more connected. The amount of data transferred can be reduced.

なお、図25に示した例では差分データを含むHTTPレスポンスヘッダーを用いてキャッシュ対象コンテンツをサーバー側装置からクライアント側装置に通知しているが、勿論他のプロトコルなどを用いて通知しても良い。   In the example shown in FIG. 25, the content to be cached is notified from the server side device to the client side device using the HTTP response header including the difference data, but of course, it may be notified using another protocol or the like. .

なお、以上の各機能は、ソフトウェアとして記述し適当な機構をもったコンピュータに処理させても実現可能である。
また、本実施形態は、コンピュータに所定の手段を実行させるための、あるいはコンピュータを所定の手段として機能させるための、あるいはコンピュータに所定の機能を実現させるためのプログラムとして実施することもできる。加えて該プログラムを記録したコンピュータ読取り可能な記録媒体として実施することもできる。
Each of the above functions can be realized even if it is described as software and processed by a computer having an appropriate mechanism.
The present embodiment can also be implemented as a program for causing a computer to execute predetermined means, causing a computer to function as predetermined means, or causing a computer to realize predetermined functions. In addition, the present invention can be implemented as a computer-readable recording medium that records the program.

なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。   Note that the present invention is not limited to the above-described embodiment as it is, and can be embodied by modifying the constituent elements without departing from the scope of the invention in the implementation stage. In addition, various inventions can be formed by appropriately combining a plurality of components disclosed in the embodiment. For example, some components may be deleted from all the components shown in the embodiment. Furthermore, constituent elements over different embodiments may be appropriately combined.

本発明の一実施形態に係るコンピュータ・ネットワークシステムの構成例を示す図The figure which shows the structural example of the computer network system which concerns on one Embodiment of this invention. 同実施形態に係るコンピュータ・ネットワークシステムの他の構成例を示す図The figure which shows the other structural example of the computer network system which concerns on the same embodiment 動的コンテンツに対する差分転送について説明するための図Diagram for explaining differential transfer for dynamic content サーバー側装置がクライアント側装置にコンテンツの識別子を通知するHTTPヘッダーの一例を示す図The figure which shows an example of the HTTP header which a server side apparatus notifies the identifier of a content to a client side apparatus. サーバー側装置がクライアント側装置に差分データを転送する際のHTTPレスポンスの一例を示す図The figure which shows an example of the HTTP response at the time of the server side apparatus transferring difference data to the client side apparatus 同実施形態に係るサーバー側装置の構成例を示す図The figure which shows the structural example of the server side apparatus which concerns on the embodiment 同実施形態に係るクライアント側装置の構成例を示す図The figure which shows the structural example of the client side apparatus which concerns on the same embodiment 同実施形態におけるキャッシュ削除方法の一例について説明するための図The figure for demonstrating an example of the cache deletion method in the embodiment 図8のヒストグラムへの登録処理手順の一例を示すフローチャートThe flowchart which shows an example of the registration process procedure to the histogram of FIG. 図8のヒストグラム及びキャッシュからの削除処理手順の一例を示すフローチャートThe flowchart which shows an example of the deletion procedure from the histogram and cache of FIG. 同実施形態におけるキャッシュ削除方法の他の例について説明するための図The figure for demonstrating the other example of the cache deletion method in the embodiment 図11の双方向連結リストへの登録処理手順の一例を示すフローチャートThe flowchart which shows an example of the registration processing procedure to the bidirectional | two-way linked list of FIG. 図11の双方向連結リスト及びキャッシュからの削除処理手順の一例を示すフローチャートThe flowchart which shows an example of the deletion processing procedure from the bidirectional | two-way linked list and cache of FIG. 同実施形態に係るサーバー側装置の他の構成例を示す図The figure which shows the other structural example of the server side apparatus which concerns on the same embodiment 同実施形態に係るクライアント側装置の他の構成例を示す図The figure which shows the other structural example of the client side apparatus which concerns on the same embodiment 同実施形態に係るサーバー側装置のさらに他の構成例を示す図The figure which shows the further another structural example of the server side apparatus which concerns on the same embodiment. 同実施形態に係るクライアント側装置のさらに他の構成例を示す図The figure which shows the further another structural example of the client side apparatus which concerns on the same embodiment. 図16及び図17の構成例におけるクライアント側キャッシュ可能サイズの通知方法の一例について説明するための図The figure for demonstrating an example of the notification method of the client side cacheable size in the structural example of FIG.16 and FIG.17. 図16及び図17の構成例におけるサーバー側装置がクライアント側装置に送信する差分データのHTTPレスポンスの一例を示す図The figure which shows an example of the HTTP response of the difference data which the server side apparatus in the structural example of FIG.16 and FIG.17 transmits to a client side apparatus 同実施形態に係る圧縮率によるキャッシュ登録判定部の処理手順の一例を示すフローチャートThe flowchart which shows an example of the process sequence of the cache registration determination part by the compression rate which concerns on the embodiment 同実施形態に係るサーバー側装置のさらに他の構成例を示す図The figure which shows the further another structural example of the server side apparatus which concerns on the same embodiment. 同実施形態に係るクライアント側装置のさらに他の構成例を示す図The figure which shows the further another structural example of the client side apparatus which concerns on the same embodiment. 同実施形態に係るサーバー側装置のさらに他の構成例を示す図The figure which shows the further another structural example of the server side apparatus which concerns on the same embodiment. 同実施形態に係るクライアント側装置のさらに他の構成例を示す図The figure which shows the further another structural example of the client side apparatus which concerns on the same embodiment. 図23及び図24の構成例におけるサーバー側装置がクライアント側装置に送信する差分データのHTTPレスポンスの一例を示す図The figure which shows an example of the HTTP response of the difference data which the server side apparatus in the structural example of FIG.23 and FIG.24 transmits to a client side apparatus

符号の説明Explanation of symbols

100…サーバーセンターのLAN、101,111…サーバー、102,112…サーバー側プロキシ、103,113…WAN、104…クライアント側オフィスのLAN、105…クライアント側プロキシ、106,116…クライアント、107,118…Webブラウザ、110…業務アプリケーションセンターのLAN、114…アクセスポイント、115…無線ネットワーク、117…クライアント側モジュール、200,300,500,600,700,800…サーバー側装置、205…サーバー側装置のキャッシュ、207,305,520,620,720,820…クライアント側装置、212…クライアント側装置のキャッシュ、301,501,601,701…サーバー側装置の通信部、302,502,602,702,802…差分圧縮部、303,505,605,705,805…サーバー側登録部、304,503,603,703,803…サーバー側キャッシュ保持部、306,521,621,721,821…クライアント側装置の通信部、307,522,622,722,822…差分伸長部、308,525,625,725,825…クライアント側登録部、309,523,623,723,823…クライアント側キャッシュ保持部、504,604,704,804…サーバー側削除部、506,606,706,806…サーバー側圧縮率計算部、507,607,707,807…サーバー側サイズ・圧縮率保持部、508,608,708,808…サーバー側削除判定部、509,609,709,809…サーバー側サイズ取得部、510,710…サーバー側キャッシュ可能サイズ保持部、524,624,724,824…クライアント側削除部、526,726…クライアント側圧縮率計算部、527,727…クライアント側サイズ・圧縮率保持部、528,728…クライアント側削除判定部、529,729…クライアント側サイズ取得部、530,730…クライアント側キャッシュ可能サイズ保持部、610,810…キャッシュ可能サイズ保持部、611,811…サーバー側削除通知部、612,812…クライアント側キャッシュ可能サイズ取得部、626,826…クライアント側削除通知取得部、627,827…クライアント側キャッシュ可能サイズ通知部、731…クライアント側登録判定部、801…サーバー側装置通信部、813…サーバー側登録判定通知部、814…サーバー側登録判定部、828…クライアント側登録判定通知取得部   DESCRIPTION OF SYMBOLS 100 ... Server center LAN, 101, 111 ... Server, 102, 112 ... Server side proxy, 103, 113 ... WAN, 104 ... Client side office LAN, 105 ... Client side proxy, 106, 116 ... Client, 107, 118 ... Web browser, 110 ... LAN of business application center, 114 ... Access point, 115 ... Wireless network, 117 ... Client side module, 200,300,500,600,700,800 ... Server side device, 205 ... Server side device Cache, 207, 305, 520, 620, 720, 820 ... client side device, 212 ... client side device cache, 301, 501, 601, 701 ... server side device communication unit, 302, 502, 02, 702, 802 ... differential compression unit, 303, 505, 605, 705, 805 ... server side registration unit, 304, 503, 603, 703, 803 ... server side cache holding unit, 306, 521, 621, 721, 821 ... communication unit of client side device, 307,522,622,722,822 ... difference expansion unit, 308,525,625,725,825 ... client side registration unit, 309,523,623,723,823 ... client side cache Holding unit, 504, 604, 704, 804 ... Server side deletion unit, 506, 606, 706, 806 ... Server side compression rate calculation unit, 507, 607, 707, 807 ... Server side size / compression rate holding unit, 508, 608, 708, 808 ... Server-side deletion determination unit, 509, 609, 709, 8 9: Server side size acquisition unit, 510, 710 ... Server side cacheable size holding unit, 524, 624, 724, 824 ... Client side deletion unit, 526, 726 ... Client side compression rate calculation unit, 527, 727 ... Client side Size / compression rate holding unit, 528, 728... Client side deletion determining unit, 529, 729... Client side size obtaining unit, 530, 730... Client side cacheable size holding unit, 610, 810. , 811 ... Server-side deletion notification unit, 612, 812 ... Client-side cacheable size acquisition unit, 626, 826 ... Client-side deletion notification acquisition unit, 627, 827 ... Client-side cacheable size notification unit, 731 ... Client-side registration determination 801, Sir Bar-side device communication unit, 813 ... Server-side registration determination notification unit, 814 ... Server-side registration determination unit, 828 ... Client-side registration determination notification acquisition unit

Claims (21)

少なくとも過去に圧縮して特定のクライアント装置側データ転送装置へ送信したデータにつき、これを圧縮していない状態で参照データとして保持するための保持手段と、
或るサーバー装置を送信元とし或るクライアント装置を宛先とするデータを受信する受信手段と、
前記保持手段に保持されている前記参照データに基づいて、受信した前記データを圧縮した圧縮データを生成する生成手段と、
生成された前記圧縮データを前記クライアント装置側データ転送装置へ送信する送信手段と、
前記保持手段に保持されている前記参照データの各々につき、当該データのデータ・サイズを示す第1の情報、及び当該データのデータ・サイズと当該データから生成された圧縮データのデータ・サイズとにより定まる圧縮の程度を示す第2の情報を記憶する記憶手段と、
前記保持手段に保持される全参照データの各々に係る前記第1の情報により示されるデータ・サイズの総和と、前記保持手段の保持可能なデータ・サイズの上限値との関係が、或る条件を満たす場合に、前記保持手段に記憶されている各参照データに係る前記第2の情報に基づいて、前記保持手段から削除すべき参照データを選択する選択手段と、
この選択手段により選択された参照データを前記保持手段から削除する削除手段とを備えたことを特徴とするサーバー装置側データ転送装置。
Holding means for holding at least data compressed in the past and transmitted to a specific client device side data transfer device as reference data in an uncompressed state;
Receiving means for receiving data destined for a server device as a transmission source and a client device as a destination;
Generating means for generating compressed data obtained by compressing the received data based on the reference data held in the holding means;
Transmitting means for transmitting the generated compressed data to the client device-side data transfer device;
For each of the reference data held in the holding means, the first information indicating the data size of the data, and the data size of the data and the data size of the compressed data generated from the data Storage means for storing second information indicating the determined degree of compression;
The relationship between the sum of the data sizes indicated by the first information relating to each of all reference data held in the holding means and the upper limit value of the data size that can be held by the holding means is a certain condition. A selection unit that selects reference data to be deleted from the holding unit, based on the second information relating to each reference data stored in the holding unit,
A server apparatus-side data transfer apparatus comprising: deletion means for deleting reference data selected by the selection means from the holding means.
少なくとも過去に特定のサーバー装置側データ転送装置から受信した圧縮データにつき、これを圧縮されていない状態で参照データとして保持するための保持手段と、
或るサーバー装置を送信元とし或るクライアント装置を宛先とするデータを、前記サーバー装置側データ転送装置から受信する受信手段と、
受信した前記データにつき、それが圧縮されていないデータであるか又は圧縮されている圧縮データであるかを、受信した前記データに付加されている特定の情報に基づいて判断する判断手段と、
受信した前記データが圧縮データである場合に、前記保持手段に保持されている前記参照データに基づいて、該圧縮データを伸長して圧縮されていない状態のデータを生成する生成手段と、
生成された前記データを、前記或るクライアント装置へ送信する送信手段と、
前記保持手段に保持されている前記参照データの各々につき、当該データのデータ・サイズを示す第1の情報、及び当該データのデータ・サイズと当該データを生成するもととなった圧縮データのデータ・サイズとにより定まる圧縮の程度を示す第2の情報を記憶する記憶手段と、
前記保持手段に保持される全参照データの各々に係る前記第1の情報により示されるデータ・サイズの総和と、前記保持手段の保持可能なデータ・サイズの上限値との関係が、或る条件を満たす場合に、前記保持手段に記憶されている各参照データに係る前記第2の情報に基づいて、前記保持手段から削除すべき参照データを選択する選択手段と、
この選択手段により選択された参照データを前記保持手段から削除する削除手段とを備えたことを特徴とするクライアント装置側データ転送装置。
Holding means for holding at least compressed data received from a specific server device side data transfer device in the past as reference data in an uncompressed state;
Receiving means for receiving, from the server apparatus side data transfer apparatus, data having a certain server apparatus as a transmission source and a certain client apparatus as a destination;
A determination means for determining whether the received data is uncompressed data or compressed compressed data based on specific information added to the received data;
Generating means for decompressing the compressed data and generating uncompressed data based on the reference data held in the holding means when the received data is compressed data;
Transmitting means for transmitting the generated data to the certain client device;
For each of the reference data held in the holding means, the first information indicating the data size of the data, and the data size of the data and the data of the compressed data from which the data is generated Storage means for storing second information indicating the degree of compression determined by the size;
The relationship between the sum of the data sizes indicated by the first information relating to each of all reference data held in the holding means and the upper limit value of the data size that can be held by the holding means is a certain condition. A selection unit that selects reference data to be deleted from the holding unit, based on the second information relating to each reference data stored in the holding unit,
A client apparatus-side data transfer apparatus comprising: deletion means for deleting reference data selected by the selection means from the holding means.
前記選択手段は、選択した前記参照データが前記削除手段により前記保持手段から削除された後における、前記保持手段に保持される全参照データに係る前記第1の情報の総和が、基準値以下になるまで、前記選択を行うことを特徴とする請求項1または2に記載のデータ転送装置。   The selecting means is configured such that a sum of the first information related to all reference data held in the holding means after the selected reference data is deleted from the holding means by the deleting means is below a reference value. The data transfer apparatus according to claim 1, wherein the selection is performed until it becomes. 前記選択手段は、或るデータを参照データとして前記保持手段に保持するのに先立って、該或るデータ及び前記保持手段に保持される参照データの各々に係る前記第1の情報により示されるデータ・サイズの総和が、前記保持手段の保持可能なデータ・サイズの上限値を超える場合に、前記選択を行うものであり、
前記保持手段は、前記選択手段により選択された前記参照データが前記削除手段により前記保持手段から削除された後に、前記或るデータを参照データとして保持するものであることを特徴とする請求項3に記載のデータ転送装置。
Prior to holding certain data as reference data in the holding means, the selecting means is data indicated by the first information relating to each of the certain data and reference data held in the holding means. The selection is performed when the sum of the sizes exceeds the upper limit of the data size that can be held by the holding unit;
4. The holding unit holds the certain data as reference data after the reference data selected by the selection unit is deleted from the holding unit by the deletion unit. The data transfer device described in 1.
前記選択手段は、前記第2の情報により前記圧縮の程度がより高いことが示される参照データを優先的に選択することを特徴とする請求項1ないし4のいずれか1項に記載のデータ転送装置。   5. The data transfer according to claim 1, wherein the selection unit preferentially selects reference data indicated by the second information that the degree of compression is higher. 6. apparatus. 前記選択手段により選択された前記参照データを特定する情報を、前記クライアント装置側データ転送装置に通知する通知手段を更に備えたことを特徴とする請求項1に記載のデータ転送装置。   2. The data transfer apparatus according to claim 1, further comprising notification means for notifying the client apparatus-side data transfer apparatus of information specifying the reference data selected by the selection means. 或るデータを参照データとして前記保持手段に保持するか否かを、当該或るデータに係る前記第2の情報に基づいて判定する判定手段を更に備えたことを特徴とする請求項1または2に記載のデータ転送装置。   3. A determination unit for determining whether or not to hold certain data as reference data in the holding unit based on the second information relating to the certain data. The data transfer device described in 1. 前記クライアント装置側データ転送装置へ送信する或るデータを参照データとして前記保持手段に保持するか否かを、当該或るデータに係る前記第2の情報に基づいて判定する判定手段と、
前記或るデータに係る前記判定手段による判定結果を、前記クライアント装置側データ転送装置に通知する通知手段とを更に備えたことを特徴とする請求項1に記載のデータ転送装置。
Determining means for determining whether or not to hold certain data to be transmitted to the client apparatus side data transfer apparatus as reference data in the retaining means based on the second information relating to the certain data;
2. The data transfer apparatus according to claim 1, further comprising notification means for notifying the client apparatus-side data transfer apparatus of a determination result by the determination means relating to the certain data.
前記保持手段は、前記判定手段により保持すると判定された場合にのみ、前記或るデータを参照データとして保持することを特徴とする請求項7または8に記載のデータ転送装置。   9. The data transfer apparatus according to claim 7, wherein the holding unit holds the certain data as reference data only when it is determined to be held by the determination unit. 前記判定手段は、前記或るデータに係る前記第2の情報により示される圧縮の程度が、基準値以下である場合に、前記保持手段に保持すると判定することを特徴とする請求項7ないし9のいずれか1項に記載のデータ転送装置。   10. The determination unit according to claim 7, wherein when the degree of compression indicated by the second information relating to the certain data is equal to or less than a reference value, the determination unit determines to hold the data in the holding unit. The data transfer device according to any one of the above. サーバー装置側データ転送装置及びクライアント装置側データ転送装置を含む通信システムにおいて、
前記サーバー装置側データ転送装置は、
少なくとも過去に圧縮して特定のクライアント装置側データ転送装置へ送信したデータにつき、これを圧縮していない状態で参照データとして保持するための第1の保持手段と、
或るサーバー装置を送信元とし或るクライアント装置を宛先とするデータを受信する第1の受信手段と、
前記第1の保持手段に保持されている前記参照データに基づいて、受信した前記データを圧縮した圧縮データを生成する第1の生成手段と、
生成された前記圧縮データを前記クライアント装置側データ転送装置へ送信する第1の送信手段と、
前記第1の保持手段に保持されている前記参照データの各々につき、当該データのデータ・サイズを示す第1の情報、及び当該データのデータ・サイズと当該データから生成された圧縮データのデータ・サイズとにより定まる圧縮の程度を示す第2の情報を記憶する記憶手段と、
前記第1の保持手段に保持される全参照データの各々に係る前記第1の情報により示されるデータ・サイズの総和と、前記第1の保持手段の保持可能なデータ・サイズの上限値との関係が、或る条件を満たす場合に、前記第1の保持手段に記憶されている各参照データに係る前記第2の情報に基づいて、前記第1の及び第2の保持手段から削除すべき参照データを選択する選択手段と、
この選択手段により選択された参照データを前記第1の保持手段から削除する第1の削除手段と、
前記選択手段により選択された前記参照データを特定する情報を、前記クライアント装置側データ転送装置に通知する特定情報通知手段とを備え、
前記クライアント装置側データ転送装置は、
少なくとも過去に前記サーバー装置側データ転送装置から受信した前記圧縮データにつき、これを圧縮されていない状態で参照データとして保持するための第2の保持手段と、
或るサーバー装置を送信元とし或るクライアント装置を宛先とするデータを、前記サーバー装置側データ転送装置から受信する第2の受信手段と、
受信した前記データにつき、それが圧縮されていないデータであるか又は圧縮されている圧縮データであるかを、受信した前記データに付加されている特定の情報に基づいて判断する判断手段と、
受信した前記データが圧縮データである場合に、前記第1の保持手段に保持されている前記参照データに基づいて、該圧縮データを伸長して圧縮されていない状態のデータを生成する第2の生成手段と、
生成された前記データを、前記或るクライアント装置へ向けて送信する第2の送信手段と、
前記サーバー装置側データ転送装置から、前記選択手段により選択された前記参照データを特定する情報の通知を取得する特定情報通知取得手段と、
取得された前記情報により特定される参照データを前記第2の保持手段から削除する第2の削除手段とを備えたことを特徴とする通信システム。
In a communication system including a server device side data transfer device and a client device side data transfer device,
The server device side data transfer device is:
First holding means for holding at least data compressed in the past and transmitted to a specific client device side data transfer device as reference data in an uncompressed state;
First receiving means for receiving data destined for a server device as a transmission source and a client device as a destination;
First generation means for generating compressed data obtained by compressing the received data based on the reference data held in the first holding means;
First transmission means for transmitting the generated compressed data to the client device-side data transfer device;
For each of the reference data held in the first holding means, the first information indicating the data size of the data, and the data size of the data and the data of the compressed data generated from the data Storage means for storing second information indicating the degree of compression determined by the size;
A sum of data sizes indicated by the first information relating to each of all reference data held in the first holding means, and an upper limit value of the data size that can be held by the first holding means When the relationship satisfies a certain condition, the relationship should be deleted from the first and second holding means based on the second information relating to each reference data stored in the first holding means A selection means for selecting reference data;
First deletion means for deleting the reference data selected by the selection means from the first holding means;
Specific information notifying means for notifying the client device-side data transfer device of information for specifying the reference data selected by the selecting means;
The client device side data transfer device is:
A second holding means for holding at least the compressed data received from the server device side data transfer device in the past as reference data in an uncompressed state;
Second receiving means for receiving, from the server apparatus side data transfer apparatus, data destined for a certain server apparatus as a transmission source and a certain client apparatus as a destination;
A determination means for determining whether the received data is uncompressed data or compressed compressed data based on specific information added to the received data;
When the received data is compressed data, a second data is generated by decompressing the compressed data and generating uncompressed data based on the reference data held in the first holding means Generating means;
Second transmission means for transmitting the generated data to the certain client device;
Specific information notification acquisition means for acquiring a notification of information for specifying the reference data selected by the selection means from the server device-side data transfer device;
A communication system, comprising: a second deletion unit that deletes reference data specified by the acquired information from the second holding unit.
前記選択手段は、選択した前記参照データが前記第1の削除手段により前記第1の保持手段から削除された後における、前記第1の保持手段に保持される全参照データに係る前記第1の情報の総和が、基準値以下になるまで、前記選択を行うことを特徴とする請求項11に記載の通信システム。   The selection means includes the first reference data related to all reference data held in the first holding means after the selected reference data is deleted from the first holding means by the first deletion means. The communication system according to claim 11, wherein the selection is performed until a sum of information becomes a reference value or less. 前記選択手段は、或るデータを参照データとして前記第1の保持手段に保持するのに先立って、該或るデータ及び前記第1の保持手段に保持される参照データの各々に係る前記第1の情報により示されるデータ・サイズの総和が、前記第1の保持手段の保持可能なデータ・サイズの上限値を超える場合に、前記選択を行うものであり、
前記第1及び第2の保持手段は、それぞれ、前記選択手段により選択された前記参照データが前記第1及び第2の削除手段により前記第1及び第2保持手段から削除された後に、前記或るデータを参照データとして保持するものであることを特徴とする請求項12に記載の通信システム。
The selection unit may store the first data related to each of the certain data and the reference data held in the first holding unit before holding the data as reference data in the first holding unit. When the sum of the data sizes indicated by the information exceeds the upper limit value of the data size that can be held by the first holding means, the selection is performed.
The first holding means and the second holding means, respectively, after the reference data selected by the selecting means are deleted from the first and second holding means by the first and second deleting means. 13. The communication system according to claim 12, wherein the data is stored as reference data.
前記選択手段は、前記第2の情報により前記圧縮の程度がより高いことが示される参照データを優先的に選択することを特徴とする請求項11ないし13のいずれか1項に記載の通信システム。   14. The communication system according to claim 11, wherein the selection unit preferentially selects reference data indicated by the second information that the degree of compression is higher. . 前記第1のデータ転送装置は、
前記第2のデータ転送装置へ送信する或るデータを参照データとして前記第1及び第2の保持手段に保持するか否かを、当該或るデータに係る前記第2の情報に基づいて判定する判定手段と、
前記或るデータに係る前記判定手段による判定結果を、前記第2のデータ転送装置に通知する判定結果通知手段とを更に備え、
前記第2のデータ転送装置は、
前記第1のデータ転送装置から、前記或るデータに係る前記判定手段による判定結果の通知を取得する判定結果通知取得手段を更に備えたことを特徴とする請求項11に記載の通信システム。
The first data transfer device includes:
It is determined based on the second information related to the certain data whether or not certain data to be transmitted to the second data transfer device is retained as reference data in the first and second retaining means. A determination means;
A determination result notifying unit for notifying the second data transfer device of a determination result by the determination unit relating to the certain data;
The second data transfer device includes:
12. The communication system according to claim 11, further comprising determination result notification acquisition means for acquiring notification of a determination result by the determination means relating to the certain data from the first data transfer device.
前記第1及び第2の保持手段は、前記判定手段により保持すると判定された場合にのみ、前記或るデータを参照データとして保持することを特徴とする請求項15に記載のデータ転送装置。   16. The data transfer apparatus according to claim 15, wherein the first and second holding units hold the certain data as reference data only when it is determined to be held by the determination unit. 前記判定手段は、前記或るデータに係る前記第2の情報により示される圧縮の程度が、基準値以下である場合に、前記第1及び第2の保持手段に保持すると判定することを特徴とする請求項15または16に記載のデータ転送装置。   The determination means determines that the first and second holding means hold when the degree of compression indicated by the second information relating to the certain data is equal to or less than a reference value. The data transfer device according to claim 15 or 16. 少なくとも過去に圧縮して特定のクライアント装置側データ転送装置へ送信したデータにつき、これを圧縮していない状態で参照データとして保持手段に保持するための保持ステップと、
或るサーバー装置を送信元とし或るクライアント装置を宛先とするデータを受信する受信ステップと、
前記保持手段に保持されている前記参照データに基づいて、受信した前記データを圧縮した圧縮データを生成する生成ステップと、
生成された前記圧縮データを前記クライアント装置側データ転送装置へ送信する送信ステップと、
前記保持手段に保持されている前記参照データの各々につき、当該データのデータ・サイズを示す第1の情報、及び当該データのデータ・サイズと当該データから生成された圧縮データのデータ・サイズとにより定まる圧縮の程度を示す第2の情報を記憶手段に記憶する記憶ステップと、
前記保持手段に保持される全参照データの各々に係る前記第1の情報により示されるデータ・サイズの総和と、前記保持手段の保持可能なデータ・サイズの上限値との関係が、或る条件を満たす場合に、前記保持手段に記憶されている各参照データに係る前記第2の情報に基づいて、前記保持手段から削除すべき参照データを選択する選択ステップと、
この選択ステップにより選択された参照データを前記保持手段から削除する削除ステップとを有することを特徴とするデータ転送方法。
A holding step for holding at least the data compressed in the past and transmitted to a specific client device side data transfer device in the holding means as reference data in an uncompressed state;
A receiving step of receiving data destined for a certain server device as a transmission source and a certain client device as a destination;
A generating step of generating compressed data obtained by compressing the received data based on the reference data held in the holding unit;
A transmission step of transmitting the generated compressed data to the client device-side data transfer device;
For each of the reference data held in the holding means, the first information indicating the data size of the data, and the data size of the data and the data size of the compressed data generated from the data A storage step of storing in the storage means second information indicating the degree of compression determined;
The relationship between the sum of the data sizes indicated by the first information relating to each of all reference data held in the holding means and the upper limit value of the data size that can be held by the holding means is a certain condition. A selection step of selecting reference data to be deleted from the holding means based on the second information relating to each reference data stored in the holding means when satisfying
And a deletion step of deleting the reference data selected in the selection step from the holding means.
少なくとも過去に特定のサーバー装置側データ転送装置から受信した圧縮データにつき、これを圧縮されていない状態で参照データとして保持手段に保持するための保持ステップと、
或るサーバー装置を送信元とし或るクライアント装置を宛先とするデータを、前記サーバー装置側データ転送装置から受信する受信ステップと、
受信した前記データにつき、それが圧縮されていないデータであるか又は圧縮されている圧縮データであるかを、受信した前記データに付加されている特定の情報に基づいて判断する判断ステップと、
受信した前記データが圧縮データである場合に、前記保持手段に保持されている前記参照データに基づいて、該圧縮データを伸長して圧縮されていない状態のデータを生成する生成ステップと、
生成された前記データを、前記或るクライアント装置へ送信する送信ステップと、
前記保持手段に保持されている前記参照データの各々につき、当該データのデータ・サイズを示す第1の情報、及び当該データのデータ・サイズと当該データを生成するもととなった圧縮データのデータ・サイズとにより定まる圧縮の程度を示す第2の情報を記憶手段に記憶する記憶ステップと、
前記保持手段に保持される全参照データの各々に係る前記第1の情報により示されるデータ・サイズの総和と、前記保持手段の保持可能なデータ・サイズの上限値との関係が、或る条件を満たす場合に、前記保持手段に記憶されている各参照データに係る前記第2の情報に基づいて、前記保持手段から削除すべき参照データを選択する選択ステップと、
この選択ステップにより選択された参照データを前記保持手段から削除する削除ステップとを有することを特徴とするデータ転送方法。
A holding step for holding the compressed data received from at least a specific server device side data transfer device in the past in the holding means as reference data in an uncompressed state;
A receiving step of receiving, from the server apparatus side data transfer apparatus, data destined for a certain server apparatus as a transmission source and a certain client apparatus as a destination;
A determination step of determining whether the received data is uncompressed data or compressed compressed data based on specific information added to the received data;
When the received data is compressed data, based on the reference data held in the holding unit, a generation step of generating the uncompressed data by decompressing the compressed data;
Transmitting the generated data to the certain client device;
For each of the reference data held in the holding means, first information indicating the data size of the data, and the data size of the data and the data of the compressed data from which the data is generated A storage step of storing in the storage means second information indicating the degree of compression determined by the size;
The relationship between the sum of the data sizes indicated by the first information relating to each of all reference data held in the holding means and the upper limit value of the data size that can be held by the holding means is a certain condition. A selection step of selecting reference data to be deleted from the holding means based on the second information relating to each reference data stored in the holding means when satisfying
And a deletion step of deleting the reference data selected in the selection step from the holding means.
サーバー装置側データ転送装置としてコンピュータを機能させるためのプログラムにおいて、
前記プログラムは、
少なくとも過去に圧縮して特定のクライアント装置側データ転送装置へ送信したデータにつき、これを圧縮していない状態で参照データとして保持手段に保持するための保持ステップと、
或るサーバー装置を送信元とし或るクライアント装置を宛先とするデータを受信する受信ステップと、
前記保持手段に保持されている前記参照データに基づいて、受信した前記データを圧縮した圧縮データを生成する生成ステップと、
生成された前記圧縮データを前記クライアント装置側データ転送装置へ送信する送信ステップと、
前記保持手段に保持されている前記参照データの各々につき、当該データのデータ・サイズを示す第1の情報、及び当該データのデータ・サイズと当該データから生成された圧縮データのデータ・サイズとにより定まる圧縮の程度を示す第2の情報を記憶手段に記憶する記憶ステップと、
前記保持手段に保持される全参照データの各々に係る前記第1の情報により示されるデータ・サイズの総和と、前記保持手段の保持可能なデータ・サイズの上限値との関係が、或る条件を満たす場合に、前記保持手段に記憶されている各参照データに係る前記第2の情報に基づいて、前記保持手段から削除すべき参照データを選択する選択ステップと、
この選択ステップにより選択された参照データを前記保持手段から削除する削除ステップとをコンピュータに実行させることを特徴とするプログラム。
In a program for causing a computer to function as a server device side data transfer device,
The program is
A holding step for holding at least the data compressed in the past and transmitted to a specific client device side data transfer device in the holding means as reference data in an uncompressed state;
A receiving step of receiving data destined for a certain server device as a transmission source and a certain client device as a destination;
A generating step of generating compressed data obtained by compressing the received data based on the reference data held in the holding unit;
A transmission step of transmitting the generated compressed data to the client device-side data transfer device;
For each of the reference data held in the holding means, the first information indicating the data size of the data, and the data size of the data and the data size of the compressed data generated from the data A storage step of storing in the storage means second information indicating the degree of compression determined;
The relationship between the sum of the data sizes indicated by the first information relating to each of all reference data held in the holding means and the upper limit value of the data size that can be held by the holding means is a certain condition. A selection step of selecting reference data to be deleted from the holding means based on the second information relating to each reference data stored in the holding means when satisfying
A program causing a computer to execute a deletion step of deleting reference data selected in the selection step from the holding means.
クライアント装置側データ転送装置としてコンピュータを機能させるためのプログラムにおいて、
前記プログラムは、
少なくとも過去に特定のサーバー装置側データ転送装置から受信した圧縮データにつき、これを圧縮されていない状態で参照データとして保持手段に保持するための保持ステップと、
或るサーバー装置を送信元とし或るクライアント装置を宛先とするデータを、前記サーバー装置側データ転送装置から受信する受信ステップと、
受信した前記データにつき、それが圧縮されていないデータであるか又は圧縮されている圧縮データであるかを、受信した前記データに付加されている特定の情報に基づいて判断する判断ステップと、
受信した前記データが圧縮データである場合に、前記保持手段に保持されている前記参照データに基づいて、該圧縮データを伸長して圧縮されていない状態のデータを生成する生成ステップと、
生成された前記データを、前記或るクライアント装置へ送信する送信ステップと、
前記保持手段に保持されている前記参照データの各々につき、当該データのデータ・サイズを示す第1の情報、及び当該データのデータ・サイズと当該データを生成するもととなった圧縮データのデータ・サイズとにより定まる圧縮の程度を示す第2の情報を記憶手段に記憶する記憶ステップと、
前記保持手段に保持される全参照データの各々に係る前記第1の情報により示されるデータ・サイズの総和と、前記保持手段の保持可能なデータ・サイズの上限値との関係が、或る条件を満たす場合に、前記保持手段に記憶されている各参照データに係る前記第2の情報に基づいて、前記保持手段から削除すべき参照データを選択する選択ステップと、
この選択ステップにより選択された参照データを前記保持手段から削除する削除ステップとをコンピュータに実行させることを特徴とするプログラム。
In a program for causing a computer to function as a data transfer device on the client device side,
The program is
A holding step for holding the compressed data received from at least a specific server device side data transfer device in the past in the holding means as reference data in an uncompressed state;
A receiving step of receiving, from the server apparatus side data transfer apparatus, data destined for a certain server apparatus as a transmission source and a certain client apparatus as a destination;
A determination step of determining whether the received data is uncompressed data or compressed compressed data based on specific information added to the received data;
When the received data is compressed data, based on the reference data held in the holding unit, a generation step of generating the uncompressed data by decompressing the compressed data;
Transmitting the generated data to the certain client device;
For each of the reference data held in the holding means, first information indicating the data size of the data, and the data size of the data and the data of the compressed data from which the data is generated A storage step of storing in the storage means second information indicating the degree of compression determined by the size;
The relationship between the sum of the data sizes indicated by the first information relating to each of all reference data held in the holding means and the upper limit value of the data size that can be held by the holding means is a certain condition. A selection step of selecting reference data to be deleted from the holding means based on the second information relating to each reference data stored in the holding means when satisfying
A program causing a computer to execute a deletion step of deleting reference data selected in the selection step from the holding means.
JP2003433172A 2003-12-26 2003-12-26 Communications system Expired - Fee Related JP3990354B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003433172A JP3990354B2 (en) 2003-12-26 2003-12-26 Communications system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003433172A JP3990354B2 (en) 2003-12-26 2003-12-26 Communications system

Publications (2)

Publication Number Publication Date
JP2005190339A true JP2005190339A (en) 2005-07-14
JP3990354B2 JP3990354B2 (en) 2007-10-10

Family

ID=34790639

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003433172A Expired - Fee Related JP3990354B2 (en) 2003-12-26 2003-12-26 Communications system

Country Status (1)

Country Link
JP (1) JP3990354B2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008204287A (en) * 2007-02-21 2008-09-04 Access Co Ltd Data generation method, data restoration method, data generation device and data restoration device
JP2011511338A (en) * 2007-12-26 2011-04-07 アルカテル−ルーセント Predictive caching content distribution network

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008204287A (en) * 2007-02-21 2008-09-04 Access Co Ltd Data generation method, data restoration method, data generation device and data restoration device
JP2011511338A (en) * 2007-12-26 2011-04-07 アルカテル−ルーセント Predictive caching content distribution network

Also Published As

Publication number Publication date
JP3990354B2 (en) 2007-10-10

Similar Documents

Publication Publication Date Title
US8024484B2 (en) Caching signatures
Bharadvaj et al. An active transcoding proxy to support mobile web access
US6396805B2 (en) System for recovering from disruption of a data transfer
CA2218169C (en) Client/server communication system
US7243136B2 (en) Approach for managing and providing content to users
US7716306B2 (en) Data caching based on data contents
US6954801B1 (en) Method and system for reducing data volume transferred over a wireless communications network
US8086719B2 (en) Bypassing uploading of data from a wireless device using outbound attachment caching
JP2004342069A (en) Data cashe method and data cashe device
CN102469149A (en) Method and device for carrying out self-adaptive adjustment on images by agent
CN103455439A (en) Local caching device, system and method for providing content caching service
KR100624142B1 (en) Gateway apparatus and method for wireless data service
EP1627497B1 (en) System and method in which a provider is selected to service content requested by a client device
KR100755617B1 (en) Method for adapting service location placement based on recent data received from service nodes and actions of the service location manager
JP3990354B2 (en) Communications system
EP1625724B1 (en) System and method for selecting a service provider
JP4031516B2 (en) Server side proxy device, client side proxy device, data transfer method and program
JP3983987B2 (en) Server-side proxy device, data transfer method, and program
JP2003108455A (en) Data transfer device and data transfer method
JP3943867B2 (en) Server-side proxy, data transfer method and program
JP3943868B2 (en) Server-side proxy, data transfer method and program
JP2003108464A (en) Device and method for transferring data
JP3913508B2 (en) Data transfer apparatus and data transfer method
JP4041157B2 (en) Client side proxy device, data transfer method and program
WO2004105349A2 (en) Systems and methods for performing a service on content requested by a client device

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070109

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070312

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070410

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070611

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20070628

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: 20070717

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070719

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

Free format text: PAYMENT UNTIL: 20100727

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20110727

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20120727

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20130727

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees