(57)【要約】【課題】  クライアントによるデータの要求対象が同一でない場合にも、通信量を削減可能なデータ通信システムを提供する。【解決手段】  サーバ１は要求されたデータを送信する際に、差分情報生成比較部１６において送信対象データとキャッシュ格納部１５内のすべてのキャッシュデータとの差分を生成し、最小サイズの差分データをキャッシュデータの識別子とともに送信し、キャッシュ格納部１５のキャッシュデータを更新する。クライアント２は情報復元部２６において受信した差分データとキャッシュ識別子に対応付けられたキャッシュ格納部２５内のキャッシュデータとから元のデータを復元し、キャッシュ格納部２５内のキャッシュデータをサーバ１と同一の方法によって更新する。【選択図】      図１
2007299019.tif 000002
【特許請求の範囲】
【請求項１】
サーバからクライアントへデータを送信するデータ通信システムであって、
過去に通信したデータをキャッシュデータとして格納する第１のキャッシュ格納手段と、前記クライアントに送信データを送信する際にその送信データと前記第１のキャッシュ格納手段に格納されたキャッシュデータとの差分データを生成して送信する手段とを前記サーバに有し、
過去に通信したデータをキャッシュデータとして格納する第２のキャッシュ格納手段と、前記サーバからデータを受信する手段と、前記差分データと前記第２のキャッシュ格納手段に格納されたキャッシュデータとから前記送信データを復元する手段とを前記クライアントに有し、
前記第１のキャッシュ格納手段と前記第２のキャッシュ格納手段とに前記キャッシュデータを同一の状態で格納することを特徴とするデータ通信システム。
【請求項２】
前記クライアントの要求に基づいて前記送信データを決定する手段を前記サーバに含むことを特徴とする請求項１記載のデータ通信システム。
【請求項３】
前記第１のキャッシュ格納手段に格納されたキャッシュデータが複数存在する場合に生成する差分データのサイズが最小となるキャッシュデータとの差分データを生成して送信する手段を前記サーバに含むことを特徴とする請求項１または請求項２記載のデータ通信システム。
【請求項４】
前記差分データの送信時に前記差分データの生成に用いられた前記キャッシュデータの識別情報を前記差分データとともに送信する手段を前記サーバに含むことを特徴とする請求項１から請求項３のいずれかに記載のデータ通信システム。
【請求項５】
前記差分データの送信による通信量削減の可否を既定の判断規則に基づいて判定しかつ前記通信量削減が可能と判定された場合にのみ前記差分データの送信を行う手段を前記サーバに含むことを特徴とする請求項１から請求項４のいずれかに記載のデータ通信システム。
【請求項６】
前記差分データの送信の際に前記第１のキャッシュ格納手段に格納されたキャッシュデータの内容及び前記第２のキャッシュ格納手段に格納されたキャッシュデータの内容を更新する更新方法を含む情報を前記差分データとともに送信する手段と、前記更新方法に基づいて前記第１のキャッシュ格納手段に格納されたキャッシュデータの内容を更新する手段とを前記サーバに含み、
前記サーバから受信した更新方法に基づいて前記第２のキャッシュ格納手段に格納されたキャッシュデータの内容を更新する手段を前記クライアントに含むことを特徴とする請求項１から請求項５のいずれかに記載のデータ通信システム。
【請求項７】
前記更新方法を外部から指定するための入出力手段と、前記入出力手段からの指定に基づいて前記更新方法を設定する手段とを前記サーバに含むことを特徴とする請求項６記載のデータ通信システム。
【請求項８】
前記第１のキャッシュ格納手段及び前記第２のキャッシュ格納手段は、初期状態においてその内部に共通のデータをキャッシュデータとして格納することを特徴とする請求項１から請求項７のいずれかに記載のデータ通信システム。
【請求項９】
前記差分データの生成に用いたキャッシュデータの内容の同一性を確認するための確認情報を生成する手段と、前記差分データの送信の際に前記確認情報を前記差分データとともに送信する手段とを前記サーバに含み、
前記サーバから受信した確認情報に基づいて前記第２のキャッシュ格納手段に格納されたキャッシュデータの内容の同一性を確認する手段を前記クライアントに含むことを特徴とする請求項１から請求項８のいずれかに記載のデータ通信システム。
【請求項１０】
前記第１のキャッシュ格納手段に格納されたキャッシュデータが複数存在する場合に既定の規則に基づいて前記キャッシュデータの一部を選択しかつ選択されたキャッシュデータの中から生成される差分データのサイズが最小となるキャッシュデータとの差分データを生成して送信する手段を前記サーバに含むことを特徴とする請求項１から請求項９のいずれかに記載のデータ通信システム。
【請求項１１】
クライアントへデータを送信するサーバ装置であって、
過去に通信したデータをキャッシュデータとして格納する第１のキャッシュ格納手段と、前記クライアントに送信データを送信する際にその送信データと前記第１のキャッシュ格納手段に格納されたキャッシュデータとの差分データを生成して送信する手段とを有し、
前記差分データが、過去に通信したデータをキャッシュデータとして格納する前記クライアントの第２のキャッシュ格納手段に格納されたキャッシュデータとから前記送信データを復元するためのものであり、
前記第１のキャッシュ格納手段と前記第２のキャッシュ格納手段とに前記キャッシュデータを同一の状態で格納することを特徴とするサーバ装置。
【請求項１２】
前記クライアントの要求に基づいて前記送信データを決定する手段を含むことを特徴とする請求項１１記載のサーバ装置。
【請求項１３】
前記第１のキャッシュ格納手段に格納されたキャッシュデータが複数存在する場合に生成する差分データのサイズが最小となるキャッシュデータとの差分データを生成して送信する手段を含むことを特徴とする請求項１１または請求項１２記載のサーバ装置。
【請求項１４】
前記差分データの送信時に前記差分データの生成に用いられた前記キャッシュデータの識別情報を前記差分データとともに送信する手段を含むことを特徴とする請求項１１から請求項１３のいずれかに記載のサーバ装置。
【請求項１５】
前記差分データの送信による通信量削減の可否を既定の判断規則に基づいて判定しかつ前記通信量削減が可能と判定された場合にのみ前記差分データの送信を行う手段を含むことを特徴とする請求項１１から請求項１４のいずれかに記載のサーバ装置。
【請求項１６】
前記差分データの送信の際に前記第１のキャッシュ格納手段に格納されたキャッシュデータの内容及び前記第２のキャッシュ格納手段に格納されたキャッシュデータの内容を更新する更新方法を含む情報を前記差分データとともに送信する手段と、前記更新方法に基づいて前記第１のキャッシュ格納手段に格納されたキャッシュデータの内容を更新する手段とを含むことを特徴とする請求項１１から請求項１５のいずれかに記載のサーバ装置。
【請求項１７】
前記更新方法を外部から指定するための入出力手段と、前記入出力手段からの指定に基づいて前記更新方法を設定する手段とを含むことを特徴とする請求項１６記載のサーバ装置。
【請求項１８】
前記第１のキャッシュ格納手段及び前記第２のキャッシュ格納手段が、初期状態においてその内部に共通のデータをキャッシュデータとして格納することを特徴とする請求項１１から請求項１７のいずれかに記載のサーバ装置。
【請求項１９】
前記クライアント側において前記差分データの生成に用いたキャッシュデータの内容の同一性を確認するための確認情報を生成する手段と、前記差分データの送信の際に前記確認情報を前記差分データとともに送信する手段とを含むことを特徴とする請求項１１から請求項１８のいずれかに記載のサーバ装置。
【請求項２０】
前記第１のキャッシュ格納手段に格納されたキャッシュデータが複数存在する場合に既定の規則に基づいて前記キャッシュデータの一部を選択しかつ選択されたキャッシュデータの中から生成される差分データのサイズが最小となるキャッシュデータとの差分データを生成して送信する手段を含むことを特徴とする請求項１１から請求項１９のいずれかに記載のサーバ装置。
【請求項２１】
サーバからクライアントへデータを送信するデータ通信方法であって、
前記サーバ及び前記クライアントがそれぞれ前記サーバの第１のキャッシュ格納手段及び前記クライアントの第２のキャッシュ格納手段に過去に通信したデータをキャッシュデータとして同一の状態で格納し、
前記サーバが前記クライアントに送信データを送信する際、前記第１のキャッシュ格納手段に格納されたキャッシュデータと前記送信データとの差分データを生成して送信し、
前記クライアントが前記差分データと前記第２のキャッシュ格納手段に格納されたキャッシュデータとから前記送信データを復元することを特徴とするデータ通信方法。
【請求項２２】
前記サーバが前記送信データを前記クライアントの要求に基づいて決定することを特徴とする請求項２１記載のデータ通信方法。
【請求項２３】
前記サーバが、前記差分データの生成の際に、前記第１のキャッシュ内部に格納された前記キャッシュデータが複数存在する場合、生成される差分データのサイズが最小となるキャッシュデータとの差分データを生成することを特徴とする請求項２１または請求項２２記載のデータ通信方法。
【請求項２４】
前記サーバが、前記差分データの送信の際に、前記差分データの生成に用いられた前記キャッシュデータの識別情報を前記差分データとともに送信することを特徴とする請求項２１から請求項２３のいずれかに記載のデータ通信方法。
【請求項２５】
前記サーバが、前記差分データの送信の前に、前記差分データの送信による通信量削減の可否を既定の判断規則に基づいて判定し、前記通信量削減が可能と判定した場合にのみ前記差分データの送信を行うことを特徴とする請求項２１から請求項２４のいずれかに記載のデータ通信方法。
【請求項２６】
前記サーバが、前記差分データの送信の際に、前記第１のキャッシュ格納手段に格納されたキャッシュデータの内容及び前記第２のキャッシュ格納手段に格納されたキャッシュデータの内容を更新する更新方法を含む情報を前記差分データとともに送信し、前記更新方法に基づいて前記第１のキャッシュ格納手段に格納されたキャッシュデータの内容を更新し、
前記クライアントが、前記サーバから受信した前記更新方法に基づいて前記第２のキャッシュ格納手段に格納されたキャッシュデータの内容を更新することを特徴とする請求項２１から請求項２５のいずれかに記載のデータ通信方法。
【請求項２７】
前記サーバが、前記更新方法の指定を外部から受け、前記指定に基づいて前記更新方法を設定することを特徴とする請求項２６記載のデータ通信方法。
【請求項２８】
前記サーバ及び前記クライアントが、前記第１のキャッシュ格納手段及び前記第２のキャッシュ格納手段の初期状態において、内部に共通のデータをキャッシュデータとして格納することを特徴とする請求項２１から請求項２７のいずれかに記載のデータ通信方法。
【請求項２９】
前記サーバが、前記差分データの生成に用いた前記キャッシュデータの内容の同一性を確認するための確認情報を生成し、前記差分データの送信の際に前記確認情報を前記差分データとともに送信し、
前記クライアントが、前記サーバから受信した前記確認情報に基づいて前記クライアント内部に格納されたキャッシュデータの内容の同一性を確認することを特徴とする請求項２１から請求項２８のいずれかに記載のデータ通信方法。
【請求項３０】
前記サーバが、前記差分データの生成の際に、前記第１のキャッシュ格納手段に格納されたキャッシュデータが複数存在する場合に既定の規則に基づいて前記キャッシュデータの一部を選択しかつ選択されたキャッシュデータの中から生成される差分データのサイズが最小となるキャッシュデータとの差分データを生成して送信することを特徴とする請求項２１から請求項２９のいずれかに記載のデータ通信方法。
【請求項３１】
サーバからクライアントへデータを送信するデータ通信方法のプログラムであって、前記サーバ側のコンピュータに、前記クライアントに送信データを送信する際に、過去に通信したデータをキャッシュデータとして同一の状態で格納する第１のキャッシュ格納手段に格納されたキャッシュデータと前記送信データとの差分データを生成して送信する処理を実行させ、前記差分データにて、過去に通信したデータをキャッシュデータとして同一の状態で格納する前記クライアントの第２のキャッシュ格納手段に格納されたキャッシュデータとから前記送信データを復元させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ通信システム、サーバ装置及びそれに用いるデータ通信方法並びにそのプログラムに関し、特に通信時に過去に通信したデータを再利用するデータ通信システムに関する。
【背景技術】
【０００２】
従来、この種のデータ通信システムとしては、図９に示すように、サーバ３と、クライアント４と、これらサーバ３とクライアント４とを接続するネットワーク１００とから構成される第１のデータ通信システムがある。
【０００３】
サーバ３はネットワーク１００を介してクライアント４と通信する機能を有する通信部３１と、クライアント４からのデータ要求を受けてデータを送信する機能を有するデータ送信処理部３２と、サーバ３内部に格納されたデータのうち指定された資源ＩＤに対応するデータを取得する機能を有するデータ取得部３３とから構成されている。
【０００４】
ここで、資源ＩＤとは、クライアント４がデータ要求において必要とするデータを指定するために用いられる識別子であり、サーバ３においては資源ＩＤが特定のデータと対応付けられている。
【０００５】
尚、資源ＩＤに対応付けられるデータが時間的に変化する場合や、資源ＩＤに対応付けられるデータが動的に生成される場合もある。また、資源ＩＤに対応付けられるデータがサーバ３内部ではなく、サーバ３外部にあり、データ取得部３３がネットワーク１００を介して該データを取得する場合もある。
【０００６】
クライアント４はネットワーク１００を介してサーバ３と通信する機能を有する通信部４１と、利用者の要求等に応じてサーバ３にデータを要求してデータを取得する機能を有するデータ受信処理部４２とから構成され、利用者の指示等に基づいてサーバ３にデータを要求し、サーバ３からデータを受信する。
【０００７】
まず、データ受信処理部４２が利用者等の要求に基づいて、必要とするデータの資源ＩＤを含むデータ要求メッセージを通信部４１を介してサーバ３に送信する。サーバ３のデータ送信処理部３２は通信部３１を介してデータ要求メッセージを受信する。
【０００８】
データ送信処理部３２はデータ要求メッセージ内で指定されたデータの資源ＩＤに対応するデータをデータ取得部３３から取得し、該データを含むデータ応答メッセージを通信部３１を介して要求元のクライアント４に送信する。データ受信処理部４２はデータ応答メッセージを受信し、データ応答メッセージ内のデータを取得する。以上の処理によって、クライアント４は必要なデータをサーバ３から取得する。
【０００９】
上記のような第１のデータ通信システムでは、ネットワーク１００を介してデータを通信する際に、そのデータ量に応じて時間的、金銭的コストが発生する場合がある。このような場合、ネットワーク１００を介するデータ量を削減することが求められ、データ量削減のための技術が開発されている（例えば、特許文献１及び非特許文献１参照）。
【００１０】
このデータ量削減を考慮したシステム例としては、図１０に示すように、サーバ５と、クライアント６と、サーバ５とクライアント６とを接続するネットワーク１００とから構成される第２のデータ通信システムがある。
【００１１】
サーバ５はネットワーク１００を介してクライアント６と通信する機能を有する通信部５１と、クライアント６からのデータ要求を受けてデータを送信する機能を有するデータ送信処理部５２と、サーバ５内部に格納されたデータのうち指定された資源ＩＤに対応するデータを取得する機能を有するデータ取得部５３と、過去に送信したデータを格納する機能を有するキャッシュ格納部５４と、２つのデータから差分データを生成する機能を有する差分情報生成部５５とから構成されている。
【００１２】
ここで、データ取得部５３は、上述した第１のデータ通信システムと同様に、資源ＩＤに対応付けられたデータを取得する機能を有するが、その機能に加えて、データ取得の際に該データを識別するためのデータＩＤを割り当てる機能を有している。データＩＤは同一の資源ＩＤに対応付けられたデータ群においてユニークであり、複数のデータが同一の資源ＩＤと同一のデータＩＤを有する場合、これらのデータの内容が同一であることが保証される。
【００１３】
クライアント６は通信部６１と、データ受信処理部６２と、過去に受信したデータを格納する機能を有するキャッシュ格納部６３と、差分データから差分生成に用いられたデータを復元する機能を有する情報復元部６４とから構成されている。
【００１４】
キャッシュ格納部５４及びキャッシュ格納部６３には、過去に送受信されたデータがその資源ＩＤ、データＩＤとともに格納されている。キャッシュ格納部５４に格納されたデータの例を図１１に示し、キャッシュ格納部６３に格納されたデータの例を図１２に示す。これらの例では、データが資源ＩＤ、データＩＤ、データの内容の組として格納されている。
【００１５】
上記の第２のデータ通信システムでは、（１）まず、データ受信処理部６２が利用者等の要求に基づいて、必要とするデータの資源ＩＤを含むデータ要求メッセージを通信部６１を介してサーバ５に送信する。但し、その際、データ受信処理部６２はキャッシュ格納部６３を参照し、要求する資源ＩＤに対応するデータの有無を確認し、資源ＩＤに対応するデータが存在する場合、そのデータのデータＩＤをデータ要求メッセージに含める。
【００１６】
（２）サーバ５のデータ送信処理部５２は通信部５１を介してデータ要求メッセージを受信する。データ送信処理部５２はデータ要求メッセージ内で指定されたデータの資源ＩＤに対応するデータをデータ取得部５３から取得し、データＩＤを割り当てる。ここで、データ要求メッセージにデータＩＤが含まれていなかった場合、データ送信処理部５２はデータとデータＩＤとを含むデータ応答メッセージを生成し、通信部５１を介してクライアント６に送信する。
【００１７】
データ要求メッセージにデータＩＤが含まれており、かつ同一の資源ＩＤとデータＩＤとを有するデータがキャッシュ格納部５４に存在した場合、データ送信処理部５２は差分情報生成部５５によって、データ取得部５３が取得したデータとキャッシュ格納部５４内の該データとの差分を生成し、その差分データを含むデータ応答メッセージを生成し、通信部５１を介してクライアント６に送信する。
【００１８】
データ要求メッセージにデータＩＤが含まれているが、同一の資源ＩＤとデータＩＤとを有するデータがキャッシュ格納部５４に存在しなかった場合、データ送信処理部５２はデータとデータＩＤとを含むデータ応答メッセージを生成し、通信部５１を介してクライアント６に送信する。
【００１９】
（３）クライアント６のデータ受信処理部６２はデータ応答メッセージを受信する。データ受信処理部６２はデータ応答メッセージにデータが含まれる場合、該データをそのまま取得する。データ応答メッセージに差分データが含まれる場合、データ受信処理部６２は情報復元部６４によって、該差分データとキャッシュ格納部６３内の要求時に指定したデータＩＤを有するデータとから、差分生成に用いられたた元データを復元して取得する。
【００２０】
以上の処理によって、クライアント６は必要なデータをサーバ５から取得する。尚、データ送信処理部５２及びデータ受信処理部６２は上記の処理の過程において、それぞれ任意の規則に基づいてデータを資源ＩＤ、データＩＤとともにキャッシュ格納部５４に格納する。
【００２１】
上記の手法によって、差分データのサイズが元のデータより小さい場合、通信量を削減することが可能となる。
【００２２】
【特許文献１】特開２０００−１９４６１３号公報
【非特許文献１】“Ｄｅｌｔａ  ｅｎｃｏｄｉｎｇ  ｉｎ  ＨＴＴＰ”，ＲＦＣ３２２９，２００２年１月
【発明の開示】
【発明が解決しようとする課題】
【００２３】
上述した従来のデータ通信システムでは、第１のデータ通信システムの場合、通信データ量を削減するための処理がなされていないため、データサイズと同等の通信量が発生してしまう。
【００２４】
また、従来のデータ通信システムでは、第２のデータ通信システムの場合、要求対象が同一であるデータ要求が繰り返されると、通信量の削減が可能であるが、要求対象が異なる場合には通信量の削減を行うことができない。
【００２５】
そこで、本発明の目的は上記の問題点を解消し、クライアントによるデータの要求対象が同一でない場合にも、通信量を削減することができるデータ通信システム、サーバ装置及びそれに用いるデータ通信方法並びにそのプログラムを提供することにある。
【課題を解決するための手段】
【００２６】
本発明によるデータ通信システムは、サーバからクライアントへデータを送信するデータ通信システムであって、
過去に通信したデータをキャッシュデータとして格納する第１のキャッシュ格納手段と、前記クライアントに送信データを送信する際にその送信データと前記第１のキャッシュ格納手段に格納されたキャッシュデータとの差分データを生成して送信する手段とを前記サーバに備え、
過去に通信したデータをキャッシュデータとして格納する第２のキャッシュ格納手段と、前記サーバからデータを受信する手段と、前記差分データと前記第２のキャッシュ格納手段に格納されたキャッシュデータとから前記送信データを復元する手段とを前記クライアントに備え、
前記第１のキャッシュ格納手段と前記第２のキャッシュ格納手段とに前記キャッシュデータを同一の状態で格納している。
【００２７】
本発明によるサーバ装置は、クライアントへデータを送信するサーバ装置であって、
過去に通信したデータをキャッシュデータとして格納する第１のキャッシュ格納手段と、前記クライアントに送信データを送信する際にその送信データと前記第１のキャッシュ格納手段に格納されたキャッシュデータとの差分データを生成して送信する手段とを備え、
前記差分データが、過去に通信したデータをキャッシュデータとして格納する前記クライアントの第２のキャッシュ格納手段に格納されたキャッシュデータとから前記送信データを復元するためのものであり、
前記第１のキャッシュ格納手段と前記第２のキャッシュ格納手段とに前記キャッシュデータを同一の状態で格納している。
【００２８】
本発明によるデータ通信方法は、サーバからクライアントへデータを送信するデータ通信方法であって、
前記サーバ及び前記クライアントがそれぞれ前記サーバの第１のキャッシュ格納手段及び前記クライアントの第２のキャッシュ格納手段に過去に通信したデータをキャッシュデータとして同一の状態で格納し、
前記サーバが前記クライアントに送信データを送信する際、前記第１のキャッシュ格納手段に格納されたキャッシュデータと前記送信データとの差分データを生成して送信し、
前記クライアントが前記差分データと前記第２のキャッシュ格納手段に格納されたキャッシュデータとから前記送信データを復元している。
【００２９】
本発明によるデータ通信方法のプログラムは、サーバからクライアントへデータを送信するデータ通信方法のプログラムであって、前記サーバ側のコンピュータに、前記クライアントに送信データを送信する際に、過去に通信したデータをキャッシュデータとして同一の状態で格納する第１のキャッシュ格納手段に格納されたキャッシュデータと前記送信データとの差分データを生成して送信する処理を実行させ、前記差分データにて、過去に通信したデータをキャッシュデータとして同一の状態で格納する前記クライアントの第２のキャッシュ格納手段に格納されたキャッシュデータとから前記送信データを復元させている。
【００３０】
すなわち、本発明のデータ通信システムは、サーバが要求されたデータを送信する際に、差分情報生成比較部において送信対象データとキャッシュ格納部内のすべてのキャッシュデータとの差分を生成し、最小サイズの差分データをキャッシュデータの識別子とともに送信し、キャッシュ格納部のキャッシュデータを更新する。
【００３１】
クライアントは情報復元部において、サーバから受信した差分データとキャッシュ識別子に対応付けられたキャッシュ格納部内のキャッシュデータとから元のデータを復元し、キャッシュ格納部内のキャッシュデータをサーバと同一の方法によって更新する。
【００３２】
これによって、本発明のデータ通信システムでは、クライアントによるデータの要求対象が同一でない場合にも、通信量を削減することが可能となる。
【発明の効果】
【００３３】
本発明は、以下に述べるような構成及び動作とすることで、クライアントによるデータの要求対象が同一でない場合にも、通信量を削減することができるという効果が得られる。
【発明を実施するための最良の形態】
【００３４】
次に、本発明の実施例について図面を参照して説明する。図１は本発明の一実施例によるデータ通信システムの構成を示すブロック図である。図１において、本発明の一実施例によるデータ通信システムはサーバ１と、クライアント２と、サーバ１とクライアント２とを接続するネットワーク１００とから構成されている。尚、図１ではクライアント２が単体となっているが、複数のクライアント２がネットワーク１００を介してサーバ１に接続されていてもよい。
【００３５】
ネットワーク１００はサーバ１とクライアント２との間の通信を実現するものであり、例えば、インタネット等がある。サーバ１とクライアント２との間のネットワーク１００上で通信に用いられる通信プロトコルとしては、任意のものでよい。例えば、標準化されたプロトコルとして、ＨＴＴＰ（Ｈｙｐｅｒｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）、ＳＩＰ（Ｓｅｓｓｉｏｎ  Ｉｎｉｔｉａｔｉｏｎ  Ｐｒｏｔｏｃｏｌ）等があるが、これらを用いても、あるいは独自のプロトコルを用いてもよい。
【００３６】
クライアント２は利用者または外部プログラムから指定されたデータをネットワーク１００を介してサーバ１から取得する機能を有する。サーバ１はクライアント２から指定されたデータを、ネットワーク１００を介してクライアント２に送信する機能を有する。
【００３７】
サーバ１は通信部１１と、データ送信処理部１２と、データ取得部１３と、キャッシュ処理部１４と、キャッシュ格納部１５と、差分情報生成比較部１６と、データ格納部１７と、記録媒体１８とから構成されている。
【００３８】
通信部１１はネットワーク１００を介してクライアント２と通信し、データ送信処理部１２はクライアント２からの要求を受けてデータを送信する。データ取得部１３は識別子の指定に基づいてデータを取得し、キャッシュ処理部１４はキャッシュ格納部１５内のデータの追加、削除、変更処理を行う。
【００３９】
キャッシュ格納部１５は過去に通信対象となったデータを格納する。差分情報生成比較部１６は２つのデータからの差分データの生成及び差分送信による通信効率向上の可否判定を行う。データ格納部１７はデータを格納する。
【００４０】
記録媒体１８はサーバ１の各部の処理を実現するためのプログラム（コンピュータで実行可能なプログラム）を格納する。例えば、図示していないが、サーバ１がＣＰＵ（中央処理装置）とＲＡＭ（ランダムアクセスメモリ）とを含む場合、ＣＰＵは記録媒体１８のプログラムをＲＡＭに移して実行することで、サーバ１全体の制御や各種の処理動作を実行することができる。
【００４１】
データ取得部１３は識別子の指定を伴う要求に対して、データを提供する機能を有する。識別子の書式は、データ取得部１３が認識可能なものであれば、任意の書式で構わない。識別子の書式の例としては、ＵＲＩ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｉｎｄｉｃａｔｏｒ）がある。
【００４２】
データ取得部１３はデータの要求を受けると、識別子に対応するデータをデータ格納部１７を参照して取得し、そのデータを返答する。尚、データ取得部１３はデータの取得対象に、サーバ１内部のデータ格納部１７のデータだけでなく、ネットワーク１００を介してサーバ１に接続された他の計算機装置に格納されたデータをも含めてもよい。
【００４３】
この場合、識別子には、ネットワーク１００上の計算機装置を識別する情報も含まれ、データ取得部１３は該識別子で指定された計算機装置内から指定されたデータを取得する。尚、識別子とデータとの対応付けは時間的に変化する場合がある。また、識別子に対応付けられたデータが要求時に動的に生成される場合もある。
【００４４】
クライアント２は通信部２１と、データ受信処理部２２と、入出力部２３と、キャッシュ処理部２４と、キャッシュ格納部２５と、情報復元部２６と、記録媒体２７とから構成されている。
【００４５】
通信部２１はネットワーク１００を介してサーバ１と通信し、データ受信処理部２２は入出力部２３を介した要求に基づいてサーバ１からデータを取得する。入出力部２３は利用者または外部プログラムとの入出力を行う。
【００４６】
キャッシュ処理部２４はキャッシュ格納部２５内のデータの追加、削除、変更処理を行う。キャッシュ格納部２５は過去に通信対象となったデータを格納する。情報復元部２６は差分データから元のデータを復元する。
【００４７】
記録媒体２７はクライアント２の各部の処理を実現するためのプログラム（コンピュータで実行可能なプログラム）を格納する。例えば、図示していないが、クライアント２がＣＰＵとＲＡＭとを含む場合、ＣＰＵは記録媒体２７のプログラムをＲＡＭに移して実行することで、クライアント２全体の制御や各種の処理動作を実行することができる。
【００４８】
ここで、差分情報生成比較部１６による差分データの生成と、情報復元部２６によるデータの復元とについて説明する。例えば、２つのデータＡ，Ｂがあるものとする。
【００４９】
差分情報生成比較部１６はデータＡ，Ｂから差分データＤを生成する機能を有する。ここで、データＡのサイズから差分データＤのサイズを引いた結果を、データＡからのサイズ減少量と呼ぶ。情報復元部２６は差分データＤとデータＢとから、データＡを生成する機能を有する。
【００５０】
差分情報生成比較部１６が用いる差分データ作成アルゴリズムと、情報復元部２６が用いる情報復元のアルゴリズムとしては、情報復元部２６が正しく情報復元ができる組み合わせであれば、それぞれ任意のアルゴリズムを用いてよい。
【００５１】
キャッシュ格納部１５にはデータ送信処理部１２が過去にクライアント２に送信したデータが、キャッシュ格納部２５にはデータ受信処理部２２が過去にサーバ１から受信したデータがそれぞれキャッシュデータとして格納されている。
【００５２】
システムの初期状態においては、キャッシュ格納部１５、キャッシュ格納部２５にはキャッシュデータが何も格納されてない状態となっている。キャッシュ格納部１５内のデータの追加、削除、変更等のデータ処理はキャッシュ処理部１４によって、キャッシュ格納部２５内のデータの追加、削除、変更等のデータ処理はキャッシュ処理部２４によって、それぞれ実行される。
【００５３】
キャッシュ処理部１４とキャッシュ処理部２４とは、キャッシュ格納部１５とキャッシュ格納部２５とに格納されたデータの内容が同一の状態となるように各種データ処理を実行する。
【００５４】
クライアント２が複数存在する場合、キャッシュ格納部１５には各クライアント２毎に対応するキャッシュデータの格納領域が用意され、それぞれの内容は対応するクライアント２のキャッシュ格納部２５の内容と同一の状態となる。
【００５５】
図２（ａ），（ｂ）は図１のサーバ１のキャッシュ格納部１５内のデータ例を示す図である。図２（ａ），（ｂ）において、キャッシュ格納部１５では複数のクライアント２（クライアント識別子「００００１」，「００００２」）に対応してキャッシュデータが管理されている。
【００５６】
キャッシュデータはキャッシュ格納部１５内で、データを識別するための識別子とともに管理される。この識別子はキャッシュ処理部１４によって管理されている。図２（ａ）はクライアント識別子「００００１」で識別されるクライアント２に対応したキャッシュデータの例であり、図２（ｂ）はクライアント識別子「００００２」で識別されるクライアント２に対応したキャッシュデータの例である。
【００５７】
図３は図１のクライアント２のキャッシュ格納部２５内のデータ例を示す図である。図３においては、図２（ａ）に示すクライアント識別子「００００１」で識別されるクライアント２に対応したキャッシュデータの例を示している。これら図２（ａ）及び図３に示すように、サーバ１とクライアント２とにそれぞれ格納されているキャッシュデータの内容は同一の状態となっている。
【００５８】
図４は本発明の一実施例によるデータ通信システムの動作を示すシーケンスチャートであり、図５は図１のクライアント２におけるデータ通信処理を示すフローチャートであり、図６は図１のサーバ１におけるデータ通信処理を示すフローチャートである。
【００５９】
図７は図１のサーバ１における判定処理を示すフローチャートであり、図８は図１のクライアント２におけるデータ通信処理を示すフローチャートである。これら図１〜図８を参照して本発明の一実施例によるデータ通信システムの動作について説明する。尚、図５〜図８に示す処理はサーバ１及びクライアント２のＣＰＵが記録媒体１８，２７のプログラムを実行することで実現される。
【００６０】
本発明の一実施例によるデータ通信システムでは、図４に示すように、（１）クライアント処理＃１、（２）サーバ処理、（３）クライアント処理＃２の各処理がサーバ１及びクライアント２で実行されているが、本発明の一実施例によるデータ通信システムの動作をこれら３つの処理に分けて説明する。
【００６１】
（１）クライアント処理＃１は、クライアント２のデータ受信処理部２２によって実行される（図４のａ１，ａ２）。すなわち、データ受信処理部２２は入出力部２３を介して要求元からのデータへの要求を受信する（図５ステップＳ１）。この要求には、必要とされるデータに関する情報が含まれる。尚、ここで要求元の例としては、クライアント２の利用者やクライアント２に接続された外部の計算機装置（図示せず）がある。
【００６２】
次に、データ受信処理部２２は入出力部２３を介して入力された要求から、必要とするデータの識別子を抽出し、該識別子を含むデータ要求メッセージを生成し、通信部２１を介してサーバ１に送信する（図５ステップＳ２）。
【００６３】
以上の処理によって、クライアント２はサーバ１に対してデータ要求メッセージを送信する（図４のａ３）。
【００６４】
（２）サーバ処理は、サーバ１のデータ送信処理部１２によって実行される（図４のａ４）。すなわち、データ送信処理部１２は通信部１１を介してクライアント２からデータ要求メッセージを受信する（図６ステップＳ１１）。
【００６５】
データ送信処理部１２はクライアント２からのデータ要求メッセージに含まれるクライアント２が必要とするデータの識別子を抽出し、データ取得部１３によって該識別子に対応付けられたデータを取得する（図６ステップＳ１２）。以下、その取得されたデータ、すなわちクライアント２から要求されたデータを元データとする。
【００６６】
データ送信処理部１２は差分情報生成比較部１６によって、元データの送信において、差分送信を行うことによる通信効率の向上が可能か否かを判定する（図６ステップＳ１３）。
【００６７】
差分情報生成比較部１６はキャッシュ格納部１５に格納されたすべてのキャッシュデータについて、元データとの差分データを生成する（図７ステップＳ２１）。尚、キャッシュ格納部１５に複数のクライアント２に対応するキャッシュデータが格納されている場合、データ要求元のクライアント２に対応するキャッシュデータのみが差分情報生成の対象となる。
【００６８】
差分情報生成比較部１６は生成された差分データの中からサイズが最小のものを選択する。以下、この差分データのことを最小差分データとする。差分情報生成比較部１６は元データのサイズから、この最小差分データのサイズを引くことによってサイズ減少量を算出する（図７ステップＳ２２）。
【００６９】
差分情報生成比較部１６は上記の処理で算出したサイズ減少量が、既定の閾値以上であるか否かを調べる（図７ステップＳ２３）。ここで、既定の閾値とは、サーバ１で定められた固有の値である。閾値の値は差分データ送信時の通信オーバヘッド等を考慮して、事前にサーバ１で設定されるものとする。この閾値の値の例としては、例えば「０」がある。
【００７０】
差分情報生成比較部１６はサイズ減少量が既定の閾値以上であった場合、判定結果を「可能」とし、判定結果とともに、最小差分データ及び該最小差分データの生成に用いられたキャッシュデータのキャッシュ格納部１５内における識別子を応答する（図７ステップＳ２４）。
【００７１】
一方、差分情報生成比較部１６はサイズ減少量が既定の閾値未満であった場合、判定結果を「不可能」とし、判定結果を応答する（図７ステップＳ２５）。以上の処理が、ステップＳ１３において差分情報生成比較部１６にて実行される。尚、上記の手順は判定方法の一例であり、判定方法を限定するものではない。
【００７２】
データ送信処理部１２は差分情報生成比較部１６から判定結果を得るとともに、判定結果に付随する情報がある場合には該情報も取得する。データ送信処理部１２は差分情報生成比較部１６からの判定結果が「可能」か否かを調べる（図６ステップＳ１４）。データ送信処理部１２は判定結果が「可能」であった場合、以下の情報から構成されるデータ応答メッセージを生成する（図６ステップＳ１５）。
【００７３】
すなわち、データ送信処理部１２は差分フラグ（「０」または「１」の値をとるフラグ情報、ここでは値が「１」に設定される）と、差分情報生成比較部１６から得られた最小差分データと、差分情報生成比較部１６から得られたキャッシュ識別子とからデータ応答メッセージを生成する。
【００７４】
データ送信処理部１２は差分情報生成比較部１６からの判定結果が「可能」でなかった場合、以下の情報から構成されるデータ応答メッセージを生成する（図６ステップＳ１６）。データ送信処理部１２は差分フラグ（「０」または「１」の値を取るフラグ情報。ここでは値が「０」に設定される）と、データ取得部１３で取得された元データとからデータ応答メッセージを生成する。
【００７５】
データ送信処理部１２は上記のようにして生成したデータ応答メッセージを通信部１１を介してクライアント２に送信する（図６ステップＳ１７）。データ送信処理部１２はキャッシュ処理部１４によって、キャッシュ格納部１５のデータ内容を更新する（図６ステップＳ１８）。尚、キャッシュ格納部１５に複数のクライアント２に対応するキャッシュデータが格納されている場合、データ要求元のクライアント２に対応するキャッシュデータが更新の対象となる。
【００７６】
キャッシュ処理部１４は既定のアルゴリズムに基づいて、キャッシュデータの追加、削除等を行う。このアルゴリズムではどのデータをキャッシュ格納部１５に追加するか、どのデータをキャッシュ格納部１５から削除するか、キャッシュ格納部１５内のキャッシュデータにどのように識別子を割り当てるか、といったキャッシュ処理部１４が行う処理に関する情報が既定される。
【００７７】
上記のアルゴリズムは処理内容が一意に決定されるものであり、同様の判断処理がクライアント２上でも可能なものであれば、任意のもので構わない。アルゴリズムの例としては、例えば、「元データを新規に追加する。キャッシュデータの総量が既定値を越えた場合には、最も古いデータから順に削除する。キャッシュデータの識別子としては未使用の自然数のうち最小のものを割り当てる」というものがある。尚、キャッシュ格納部１５のデータ内容の更新は、データ応答メッセージをクライアント２に送信する直前に実施してもよい。
【００７８】
以上の処理によって、サーバ１はクライアント２に対してデータ応答メッセージを送信するとともに、キャッシュ格納部１５内のキャッシュデータの更新を行う。
【００７９】
（３）クライアント処理＃２は、クライアント２のデータ受信処理部２２によって実行される。すなわち、データ受信処理部２２は通信部２１を介してサーバ１からデータ応答メッセージを受信する（図８ステップＳ３１）。
【００８０】
データ受信処理部２２はサーバ１から受信したデータ応答メッセージより差分フラグの情報を抽出し、差分フラグの値が「１」であるか否かを調べる（図８ステップＳ３２）。データ受信処理部２２は差分フラグが「１」であった場合、情報復元部２６によって元データを復元する（図８ステップＳ３３）。
【００８１】
情報復元部２６はデータ応答メッセージに含まれる差分データと、キャッシュ格納部２５内のキャッシュデータのうちのデータ応答メッセージに含まれるキャッシュ識別子に対応するキャッシュデータとから元データを復元する。
【００８２】
データ受信処理部２２は差分フラグが「１」でなかった場合、データ応答メッセージに含まれる元データを取得する（図８ステップＳ３４）。データ受信処理部２２は上記の処理で取得した元データを入出力部２３を介して、要求元に出力する（図８ステップＳ３５）。
【００８３】
データ受信処理部２２はキャッシュ処理部２４によってキャッシュ格納部２５のデータ内容を更新する（図８ステップＳ３６）。キャッシュ処理部２４は既定のアルゴリズムに基づいて、キャッシュデータの追加、削除等を行う。
【００８４】
このアルゴリズムは、上述した処理において、サーバ１のキャッシュ処理部１４がキャッシュデータの更新に用いたものと同一のものを用いる。したがって、各々のキャッシュデータの更新終了時におけるキャッシュ格納部１５内のキャッシュデータとキャッシュ格納部２５内のキャッシュデータとは同一の状態となる。
【００８５】
以上の処理によって、クライアント２はサーバ１から受信したデータ応答メッセージを用いて要求元にデータを出力するとともに、キャッシュ格納部２５内のキャッシュデータを更新し、キャッシュ格納部１５内のキャッシュデータと同一の状態に保つことができる。
【００８６】
以上、（１）クライアント処理＃１、（２）サーバ処理、（３）クライアント処理＃２の一連の処理の結果として、クライアント２は必要とするデータをサーバ１から取得する。
【００８７】
上述した手順では、サーバ１からクライアント２にデータを送信する際に、過去に通信されたデータとの差分データを用いることによって、通信量を削減することが可能となる。また、上記の手順では、サーバ１とクライアント２とが同一のキャッシュデータを保持することが可能であるため、サーバ１はクライアント２の有するすべてのキャッシュデータを差分データの生成に活用することが可能となる。そのため、クライアント２によるデータの要求対象が過去と同一ではない場合であっても、差分データの生成、送信による通信量削減が可能となる。
【００８８】
上述した本発明の一実施例では、上記のステップＳ１８でのキャッシュ処理部１４によるキャッシュデータの更新及び上記のステップＳ３６でのキャッシュ処理部２４によるキャッシュデータの更新は、既定のアルゴリズムにしたがって実行されるものとしている。しかしながら、キャッシュデータの更新処理内容をサーバ１が指定するものとしてもよい。
【００８９】
具体的には、上記のステップＳ１７において、データ送信処理部１２がキャッシュデータの更新方法を決定し、該更新方法の情報をデータ応答メッセージに追加する。そして、上記のステップＳ１８でのキャッシュ処理部１４は上記のステップＳ１７で決定された更新方法にしたがって、キャッシュ格納部１５のキャッシュデータの更新を実行する。
【００９０】
また、上記のステップＳ３６において、キャッシュ処理部２４はデータ応答メッセージに含まれる更新方法の情報に基づいて、キャッシュ格納部２５のキャッシュデータの更新を実行する。
【００９１】
データ送信処理部１２によるキャッシュ更新方法の決定方法は任意の方法で良い。これによって、サーバ１側でキャッシュ更新方法を指定することが可能となる。
【００９２】
また、サーバ１に外部との入出力を行う機能を有する入出力部を設け、サーバ１の運用者等が入出力部を介してキャッシュ更新方法の決定方法を制御することも可能である。これによって、キャッシュ更新方法を状況に応じて最適なものに変更することが可能となる。
【００９３】
さらに、上述した本発明の一実施例では、サーバ１がクライアント２にデータ応答メッセージとして、元データか、差分データかのいずれかを送信するものとしている。しかしながら、サーバ１がデータ応答メッセージとして、これ以外の形態のデータを送信するものとしてもよい。
【００９４】
例えば、クライアント２のキャッシュ格納部２５にキャッシュデータとして追加したいデータと、追加処理方法に関するデータとをデータ応答メッセージに格納して送信することも可能である。これによって、サーバ１側では、より柔軟にクライアント２のキャッシュ格納部２５内のデータを制御することが可能となる。
【００９５】
さらにまた、上述した本発明の一実施例では、通信部１１と通信部２１とがデータ要求メッセージ及びデータ応答メッセージを加工せずに送受信しているが、通信部１１と通信部２１とが通信時に、通信対象に対して通信量削減のための処理を実行することも可能である。
【００９６】
通信量削減のための処理の例としては、データの圧縮、伸張がある。具体的には、送信側の通信部で通信対象データを圧縮して送信し、受信側の通信部で受信データを伸張することによって、データ量を削減することができる。このように、通信部１１と通信部２１とにおいて、通信量削減のための処理を実行することによって、通信削減量を増加させることが可能となる。
【００９７】
上述した本発明の一実施例では、差分データの生成に、元データとキャッシュデータとの２つのデータから行うアルゴリズムを用いるものとしているが、差分データの生成を元データと２つ以上のキャッシュデータとの合計３つ以上のデータから行うアルゴリズムを用いることも可能である。
【００９８】
上述した本発明の一実施例では、キャッシュ格納部１５、キャッシュ格納部２５には初期状態において、キャッシュデータが格納されてないものとしているが、キャッシュ格納部１５、キャッシュ格納部２５の初期状態において、特定のデータをそれぞれキャッシュデータとして格納されているものとしてもよい。これによって、差分生成に有用なデータを事前にキャッシュ格納部１５、キャッシュ格納部２５に用意しておくことが可能となる。
【００９９】
上述した本発明の一実施例では、差分送信の実施の有無をサーバ１側でのみ決定しているが、差分送信の実施の有無をクライアント２側からも制御可能とすることも可能である。具体的には、例えば、クライアント２がデータ要求メッセージに差分送信実施の有無を示すフラグ情報を加えることで、差分送信実施のフラグが「０」である場合、サーバ１が差分データを生成せずに、常に元データをデータ応答メッセージに格納してクライアント２に送信することが可能である。これによって、クライアント２側で差分送信の実施の有無を指定することが可能となる。
【０１００】
サーバ１及びクライアント２には、データ受信処理部２２においてキャッシュデータがサーバ１上のキャッシュデータと同一であることを確認するための機構を設けてもよい。
【０１０１】
例えば、データ送信処理部１２が上記のステップＳ１５において、差分フラグ、最小差分データ、キャッシュ識別子から構成されるデータ応答メッセージを生成する際に、キャッシュ識別子に対応するキャッシュデータのハッシュ情報をデータ応答メッセージに加えることとし、さらにデータ受信処理部２２が上記のステップＳ３３において、キャッシュ格納部２５内のキャッシュデータを用いる際に、ハッシュ情報を用いて該キャッシュデータがサーバ１上のものと同一であることを確認することも可能である。
【０１０２】
これによって、何らかの原因で、キャッシュ格納部２５内のデータとキャッシュ格納部１５内のデータとが異なる状態になった場合でも、データ受信処理部２２がその異なる状態を検出することが可能となる。
【０１０３】
サーバ１及びクライアント２には、データ受信処理部２２が情報復元部２６で復元した元データが、サーバ１が送信したものと同一であることを確認するための機構を設けてもよい。
【０１０４】
例えば、データ送信処理部１２が上記のステップＳ１５において、差分フラグ、最小差分データ、キャッシュ識別子から構成されるデータ応答メッセージを生成する際に、元データのハッシュ情報をデータ応答メッセージに加えることとし、さらにデータ受信処理部２２が上記のステップＳ３３において、元データを復元した際に、ハッシュ情報を用いて元データがサーバ１が送信したのと同一であることを確認することも可能である。
【０１０５】
これによって、何らかの原因で、差分データもしくはキャッシュデータの内容に異常が発生した場合でも、データ受信処理部２２がその異常を検出することが可能となる。
【０１０６】
上述した本発明の一実施例では、上記のステップＳ２１において、差分情報生成比較部１６がすべてのキャッシュデータとの差分データを生成するものとしているが、差分情報生成比較部１６が特定の条件にしたがってキャッシュデータの一部との差分データのみを生成することも可能である。
【０１０７】
条件の例としては、例えば「最新の１０件のキャッシュデータ」等がある。このような条件を用いることによって、上記のステップＳ２１における計算処理コストを削減することが可能となる。尚、その条件は任意の条件であってよい。
【０１０８】
また、この条件として、キャッシュデータの何らかの属性情報に関わる条件を用いるものとしてもよい。属性情報の例としては、サイズ、データに対応付けられたファイル名、該データの要求に用いられた識別子等がある。
【０１０９】
このように、上述したように、本発明では、通信量削減が可能なデータ通信システムを実現することができる。また、この効果はクライアント２によるデータの要求対象が同一でない場合にも有効である。
【図面の簡単な説明】
【０１１０】
【図１】本発明の一実施例によるデータ通信システムの構成を示すブロック図である。
【図２】（ａ），（ｂ）は図１のサーバのキャッシュ格納部内のデータ例を示す図である。
【図３】図１のクライアントのキャッシュ格納部内のデータ例を示す図である。
【図４】本発明の一実施例によるデータ通信システムの動作を示すシーケンスチャートである。
【図５】図１のクライアントにおけるデータ通信処理を示すフローチャートである。
【図６】図１のサーバにおけるデータ通信処理を示すフローチャートである。
【図７】図１のサーバにおける判定処理を示すフローチャートである。
【図８】図１のクライアントにおけるデータ通信処理を示すフローチャートである。
【図９】従来のデータ通信システムの構成を示すブロック図である。
【図１０】従来のデータ通信システムの他の構成を示すブロック図である。
【図１１】従来のデータ通信システムのキャッシュ格納部に格納されるデータの一例を示す図である。
【図１２】従来のデータ通信システムのキャッシュ格納部に格納されるデータの他の例を示す図である。
【符号の説明】
【０１１１】
１  サーバ
２  クライアント
１１，２１  通信部
１２  データ送信処理部
１３  データ取得部
１４，２４  キャッシュ処理部
１５，２５  キャッシュ格納部
１６  差分情報生成比較部
１７  データ格納部
１８，２７  記録媒体
２２  データ受信処理部
２３  入出力部
２６  情報復元部
１００  ネットワーク
【図１】
2007299019.tif 000003
【図２】
2007299019.tif 000004
【図３】
2007299019.tif 000005
【図４】
2007299019.tif 000006
【図５】
2007299019.tif 000007
【図６】
2007299019.tif 000008
【図７】
2007299019.tif 000009
【図８】
2007299019.tif 000010
【図９】
2007299019.tif 000011
【図１０】
2007299019.tif 000012
【図１１】
2007299019.tif 000013
【図１２】
2007299019.tif 000014