JP2005190339A - Apparatus and method for data transfer, communication system, and program - Google Patents
Apparatus and method for data transfer, communication system, and program Download PDFInfo
- 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
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
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もしくは別のアルゴリズムに従ってキャッシュを削除することで、削除後も最近アクセスしたコンテンツや閲覧頻度の高いコンテンツがキャッシュに残るような仕組みが導入されている。
従来、フィンガープリントキャッシュのように、取得したコンテンツをユニークに識別する識別子とコンテンツを対にしてキャッシュし、新たに取得したコンテンツがキャッシュにあるコンテンツと同一部分を持つ場合にベースとなるコンテンツの識別子と差分部分から構成される差分情報をサーバー側装置が計算し下流に転送するとともに、クライアント側装置が受信した差分データを指定された識別子のコンテンツをキャッシュから取得し差分部分と組み合わせて元のデータを復元するシステムがある。このような技術は近年普及の著しい動的なコンテンツの転送データ量を削減するものとして非常に有効な手段である。 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
WebベースのASPは、サーバーセンター内LAN100に設置したサーバー101からWAN103を介して、様々なアプリケーションプログラムによるサービスを提供し、ユーザーはユーザーオフィス内のLAN104に設置されたクライアント106上のWebブラウザ107を使ってそれらのサービスにアクセスする。
The Web-based ASP provides services based on various application programs from the
このような利用形態においては、ユーザーオフィスの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
そこで、本実施形態では、図1に示すようにサーバーセンターのLAN104とユーザーオフィスのLAN100とを繋ぐ広域ネットワーク103の両端にサーバー側プロキシ105及びクライアント側プロキシ102という二つのモジュールを設置し、それらの間で後述する差分圧縮を行って通信データ量を削減することで、広域ネットワークのボトルネックを解消する。
Therefore, in this embodiment, as shown in FIG. 1, two modules, a server-
図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
Webベースの業務アプリケーションセンターのLAN110に設置されたサーバー111からWAN103を介して、様々な企業内定型業務アプリケーションプログラムや業務用アプリケーションプログラムによる様々なサービスを提供し、ユーザーはクライアント116上のWebブラウザ118を使ってそれらサービスにアクセスする。
The
このような利用形態においては、業務アプリケーションセンターの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
そこで、本実施形態では、図2に示すように業務アプリケーションセンターのLAN110とクライアント116とを繋ぐWAN113と無線ネットワーク115の両端にサーバー側プロキシ112とクライアント116上にクライアント側モジュール117という二つのモジュールを設置し、それらの間で後述する差分圧縮を行って通信データ量を削減することで、ボトルネックを解消する。
Therefore, in the present embodiment, as shown in FIG. 2, the
ただし、図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-
サーバー側装置200には直接またはネットワーク経由で接続されたキャッシュ205が、クライアント側装置207には直接またはネットワーク経由で接続されたキャッシュ212が設置されている。サーバー側装置200のキャッシュ205には、以前Webブラウザを備えたクライアントからGETメソッドなどのHTTPリクエストに対してWebサーバーがHTTPレスポンスとして転送したコンテンツA203とコンテンツB204が保存されているものとする。コンテンツA203にはコンテンツAであることをユニークに識別できる識別子Aが、コンテンツB204にはコンテンツBであることをユニークに識別できる識別子Bが割り振られている。
A
なお、この識別子は、コンテンツ自体をユニークに識別するものであればどのようなものであってもよい。例えば、取得した順に昇順に番号を付けたものでもよいし、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
上記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-
上記のような手順を踏むことで、クライアント側装置207でコンテンツA210と識別子Aとを一対一に関係付けて、コンテンツB211と識別子Bとを一対一に関係付けてキャッシュ212に保存することが可能となる。
By following the above procedure, it is possible for the client side device 207 to associate the
以下、上述した状態に置かれたサーバー側装置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
(1)サーバー側装置200が上流から新たなコンテンツC201を受信する。コンテンツC201の識別子はCとする。
(1) The server-
(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
(3)差分圧縮の結果、差分データ206が生成される。差分データ206の中身は、部分2021と同等な識別子Bの先頭からのオフセットバイト及び長さ、部分2022のそのままの内容(オリジナル)、部分2023と同等な識別子Aの先頭からのオフセット及び長さの3要素で構成される。生成された差分データ206はクライアント側装置207に転送される。
(3) As a result of differential compression,
(4)また、(2)及び(3)と相前後して、コンテンツC201は、識別子Cと伴に次回以降の差分圧縮に用いるために、キャッシュ205にキャッシュされる。
(4) Also, before or after (2) and (3), the content C201 is cached in the
(5)クライアント側装置207は差分データ206を受信する。
(5) The client side device 207 receives the
(6)差分データ206は差分伸長処理にかけられる。その際、差分データ206に埋め込まれている識別子Bのコンテンツ211をキャッシュ212から取得し、オフセット及び長さ情報から部分2111を取り出す。また、差分データ206に埋め込まれているそのままの部分を取り出す。また、差分データ206に埋め込まれている識別子Aのコンテンツ210をキャッシュ212から取得し、オフセット及び長さ情報から部分2111を取り出す。最終的に、差分データ206は、コンテンツB211の部分2111に相当する部分2081、そのままの部分2082、コンテンツA210の部分2103に相当する部分2083を結合したコンテンツ208が生成される。
(6) The
(7)コンテンツ208は、HTTPヘッダーでサーバー側装置200によって指定された識別子Cが与えられ、識別子CのコンテンツC209となる。コンテンツC209は下流に送信される。
(7) The
(8)コンテンツC209は、次回以降の差分伸長に用いるために、識別子Cと伴にキャッシュ212にキャッシュされる。
(8) The content C209 is cached in the
なお、キャッシュにあるコンテンツとまったく同じコンテンツを受信した際には、差分圧縮処理でキャッシュ済みコンテンツの識別子とオフセットを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
図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
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
また、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
図3に示されているサーバー側装置200とクライアント側装置207を機能別ブロック図に示したのがそれぞれ図6と図7である。
FIGS. 6 and 7 show the server-
図6に示されるように、サーバー側装置300は、データの送受信を行う通信部301、差分圧縮処理を行う差分圧縮部302、差分圧縮前のコンテンツをサーバー側キャッシュ保持部に保存するサーバー側登録部303から構成される。
As illustrated in FIG. 6, the server-side device 300 includes a
他方、図7に示されるように、クライアント側装置305は、データの送受信を行う通信部306、差分伸長処理を行う差分復元部307、復元後のコンテンツをクライアント側キャッシュ保持部309に保存するクライアント側登録部308から構成される。
On the other hand, as illustrated in FIG. 7, the client side device 305 includes a
ここで、図6のサーバー側装置300、サーバー側キャッシュ保持部304、図7のクライアント側装置305、クライアント側キャッシュ保持部309は、それぞれ、図3のサーバー側装置200、キャッシュ205、クライアント側装置207、キャッシュ212に相当する。
Here, the server side device 300, the server side
以上、差分圧縮処理及び差分伸長処理の概要について説明したが、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
図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
サーバー側装置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
サーバー側サイズ・圧縮率保持部507は、図8ではヒストグラム(400)が該当し、図11では双方向連結リスト(450)が該当する。
The server-side size / compression
サーバー側サイズ・圧縮率保持部507が保持するキャッシュ済みコンテンツの総サイズが、サーバー側キャッシュ可能サイズ保持部510から取得したキャッシュ可能サイズ(通常はユーザーが設定した値)を超えた場合、サーバー側削除判定部508によって1つないしは複数の削除対象コンテンツを検出し、サーバー側削除判定部504によってサーバー側キャッシュ保持部503から該当削除対象コンテンツを削除する。
When the total size of the cached content held by the server-side size / compression
サーバー側削除判定部508は、図8で説明した形態では図10に示した処理フローが該当し、図11で説明した形態では図13に示した処理フローが該当する。
The server-side
クライアント側装置520には、下流からHTTPリクエストを受信し上流に該当HTTPリクエストを送信したり、上流からHTTPレスポンスを受信し下流に差分データ等のHTTPレスポンスを送信したりする通信部521が備えられている。
The client-side device 520 includes a
クライアント側装置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
クライアント側サイズ・圧縮率保持部527は、図8ではヒストグラム(400)が該当し、図11では双方向連結リスト(450)が該当する。
The client-side size / compression
クライアント側サイズ・圧縮率保持部527が保持するキャッシュ済みコンテンツの総サイズが、クライアント側キャッシュ可能サイズ保持部530から取得したキャッシュ可能サイズ(通常はユーザーが設定した値)を超えた場合、クライアント側削除判定部528によって1つないしは複数の削除対象コンテンツを検出し、クライアント側削除判定部524によってクライアント側キャッシュ保持部523から該当削除対象コンテンツを削除する。
When the total size of the cached content held by the client side size / compression
クライアント側削除判定部528は、図8で説明した形態では図10に示した処理フローが該当し、図11で説明した形態では図13に示した処理フローが該当する。
The client-side
上述した構成例では、キャッシュの削除方法は、サーバー側装置、クライアント側装置が独立して行っていたものである。しかし、クライアント側装置が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
そこで、以下では、サーバー側装置とクライアント装置との間で連携して上記キャッシュ領域サイズの違いとクライアント側装置の処理量の削減を実現する方法の一例について説明する。 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
まず、予め、クライアント側装置620が、クライアント側のキャッシュ可能サイズを、クライアント側キャッシュ可能サイズ通知部627によって通信部621を介してサーバー側装置600に送信する。
First, the client-side device 620 transmits the client-side cacheable size to the server-side device 600 via the
サーバー側装置600は、通信部601で受信したクライアント側キャッシュ可能サイズを、クライアント側キャッシュ可能サイズ取得部612によって取得する。サーバー側キャッシュ可能サイズとクライアント側キャッシュ可能サイズとを比較してより小さい値を、キャッシュ可能サイズ保持部610に登録する。ここでは、クライアント側装置620のキャッシュ可能サイズが明らかに小さく、クライアント側キャッシュ可能サイズがキャッシュ可能サイズ保持部610に登録されることになる。
The server-side apparatus 600 acquires the client-side cacheable size received by the
クライアント側装置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
上述のようにして予めサーバー側装置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
サーバー側装置600には、下流からHTTPリクエストを受信し上流に該当HTTPリクエストを送信したり、上流からHTTPレスポンスを受信し下流に差分データ等のHTTPレスポンスを送信したりする通信部601が備えられている。
The server-side device 600 includes a
サーバー側装置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
サーバー側サイズ・圧縮率保持部607は、図8ではヒストグラム(400)が該当し、図11では双方向連結リスト(450)が該当する。
The server-side size / compression
サーバー側サイズ・圧縮率保持部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
なお、サーバー側削除判定部608は、図8で説明した形態では図10に示した処理フローが該当し、図11で説明した形態では図13に示した処理フローが該当する。
The server-side
クライアント側装置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
図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
このようにして、キャッシュ可能サイズの明らかに異なるサーバー側装置とクライアント側装置を連携することで、クライアント側装置の処理量を軽減するとともに、キャッシュされているコンテンツの不一致による差分伸長処理の失敗がなくなり、よりサーバー側装置とクライアント側装置との間を流れるデータ転送量を削減することができる。 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
図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
サーバー側装置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
サーバー側サイズ・圧縮率保持部707は、図8ではヒストグラム(400)が該当し、図11では双方向連結リスト(450)が該当する。
The server-side size / compression
サーバー側サイズ・圧縮率保持部707が保持するキャッシュ済みコンテンツの総サイズが、サーバー側キャッシュ可能サイズ保持部710から取得したキャッシュ可能サイズを超えた場合、サーバー側削除判定部708によって1つないしは複数の削除対象コンテンツを検出し、サーバー側削除判定部704によってサーバー側キャッシュ保持部703から該当削除対象コンテンツを削除する。
When the total size of the cached content held by the server-side size / compression
サーバー側削除判定部708は、図8で説明した形態では図10に示した処理フローが該当し、図11で説明した形態では図13に示した処理フローが該当する。また、削除に際してサーバー側削除判定部508が閾値Tを再計算する。
The server-side
図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
図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
クライアント側装置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
クライアント側サイズ・圧縮率保持部727は、図8ではヒストグラム(400)が該当し、図11では双方向連結リスト(450)が該当する。
The client-side size / compression
クライアント側サイズ・圧縮率保持部727が保持するキャッシュ済みコンテンツの総サイズが、クライアント側キャッシュ可能サイズ保持部730から取得したキャッシュ可能サイズを超えた場合、クライアント側削除判定部728によって1つないしは複数の削除対象コンテンツを検出し、クライアント側削除判定部724によってクライアント側キャッシュ保持部723から該当削除対象コンテンツを削除する。
When the total size of the cached content held by the client side size / compression
クライアント側削除判定部728は、図8で説明した形態では図10に示した処理フローが該当し、図11で説明した形態では図13に示した処理フローが該当する。また、削除に際してクライアント側削除判定部708が閾値Tを再計算する。
The client-side
図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
新たにコンテンツを上流からサーバー側装置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
クライアント側装置820は、通信部821を介して上記レスポンスを受信すると、クライアント側登録判定通知取得部828が、差分伸長部822によって伸長されたコンテンツをキャッシュするかどうかを、図25に示したHTTPヘッダーから判定し、キャッシュすると指定されていたら伸長後のコンテンツはクライアント側登録判定部825によってクライアント側キャッシュ保持部823に登録される。
When the client side device 820 receives the response via the
なお、キャッシュの削除に関しては図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
このようにして、キャッシュの登録時にもサーバー側装置とクライアント側装置を連携することで、キャッシュされているコンテンツの不一致による差分伸長処理の失敗を回避し、よりサーバー側装置とクライアント側装置間を流れるデータ転送量を削減することができる。 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.
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
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.
前記保持手段は、前記選択手段により選択された前記参照データが前記削除手段により前記保持手段から削除された後に、前記或るデータを参照データとして保持するものであることを特徴とする請求項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.
前記或るデータに係る前記判定手段による判定結果を、前記クライアント装置側データ転送装置に通知する通知手段とを更に備えたことを特徴とする請求項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.
前記サーバー装置側データ転送装置は、
少なくとも過去に圧縮して特定のクライアント装置側データ転送装置へ送信したデータにつき、これを圧縮していない状態で参照データとして保持するための第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及び第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のデータ転送装置へ送信する或るデータを参照データとして前記第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の情報を記憶手段に記憶する記憶ステップと、
前記保持手段に保持される全参照データの各々に係る前記第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.
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)
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 |
-
2003
- 2003-12-26 JP JP2003433172A patent/JP3990354B2/en not_active Expired - Fee Related
Cited By (2)
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 |