(57)【要約】【課題】チャンク長が短い場合でも、重複検知を可能にする情報処理装置等を提供する。【解決手段】情報処理装置が、登録部と、記憶部と、第１の判定部と、設定部と、第２の判定部と、出力部とを有する。登録部は、過去のデータをキャッシュ内に登録する。記憶部は、指定項目を検索条件とするルールを変更可能に記憶した。第１の判定部は、取得したデータがキャッシュ内に登録済みであるか否かを判定する。第２の判定部は、データがキャッシュ内に登録済みでない場合に、データ内に指定項目があるか否かを判定する。設定部は、指定項目がある場合に記憶部から指定項目のルールを設定する。出力部は、設定されたルールに基づき、データから指定項目を除去した差分データ及びデータを識別する識別情報を対向装置に出力する。【選択図】図２
2018195182.tif 000002
【特許請求の範囲】
【請求項１】
過去のデータをキャッシュ内に登録する登録部と、
指定項目を検索条件とするルールを変更可能に記憶した記憶部と、
新規のデータを取得した場合に、取得したデータが前記キャッシュ内に登録済みであるか否かを判定する第１の判定部と、
取得したデータが前記キャッシュ内に登録済みでない場合に、取得したデータ内に前記指定項目があるか否かを判定する第２の判定部と、
前記取得したデータ内に前記指定項目がある場合に、前記記憶部から当該指定項目の前記ルールを設定する設定部と、
前記設定されたルールに基づき、取得したデータから前記指定項目を除去した差分データ及び、前記取得したデータを識別する識別情報を対向装置に出力する出力部と
を有することを特徴とする情報処理装置。
【請求項２】
前記登録部は、
前記取得したデータ内に前記指定項目がない場合に、前記取得したデータ及び、前記取得したデータを識別する前記識別情報を前記キャッシュ内に登録し、
前記出力部は、
前記取得したデータ及び、前記取得したデータを識別する前記識別情報を前記対向装置に出力することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記情報処理装置自体を制御する制御部の負荷量を計測する計測部を有し、
前記記憶部は、
前記負荷量に対応した同一種別で負荷が異なるルールを記憶しておき、
前記設定部は、
前記計測部にて計測された前記負荷量に応じた前記ルールを前記記憶部から特定し、当該特定された当該ルールを設定することを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記記憶部は、
前記ルール毎に異なる開始項目を記憶しておき、
前記設定部は、
前記取得したデータ内に前記開始項目があるか否かを判定し、前記開始項目がある場合に、当該開始項目に対応する前記ルールを前記記憶部から特定して設定することを特徴とする請求項１〜３の何れか一つに記載の情報処理装置。
【請求項５】
前記設定部にて前記ルールが設定された場合に、当該設定された前記ルールを前記対向装置に出力する出力部を有することを特徴とする請求項１〜４の何れか一つに記載の情報処理装置。
【請求項６】
前記対向装置から受信した前記識別情報が前記キャッシュ内に登録済みの場合に、当該識別情報に対応したデータを前記キャッシュから復元出力する復元部を有することを特徴とする請求項１〜５の何れか一つに記載の情報処理装置。
【請求項７】
第１の情報処理装置と、第２の情報処理装置とを有し、前記第１の情報処理装置から前記第２の情報処理装置にデータを伝送する情報処理システムであって、
前記第１の情報処理装置は、
過去のデータを第１のキャッシュ内に登録する第１の登録部と、
指定項目を検索条件とするルールを変更可能に記憶した記憶部と、
新規のデータを取得した場合に、取得したデータが前記第１のキャッシュ内に登録済みであるか否かを判定する第１の判定部と、
取得したデータが前記第１のキャッシュ内に登録済みでない場合に、取得したデータ内に前記指定項目があるか否かを判定する第２の判定部と、
前記取得したデータ内に前記指定項目がある場合に、前記記憶部から当該指定項目の前記ルールを設定する設定部と、
前記設定されたルールに基づき、取得したデータから前記指定項目を除去した差分データ及び、前記取得したデータを識別する識別情報を前記第２の情報処理装置に出力する出力部と
を有し、
前記第２の情報処理装置は、
前記第１の情報処理装置から前記データ及び前記識別情報を受信した場合に、当該データ及び前記識別情報を第２のキャッシュに登録する第２の登録部と、
前記第１の情報処理装置から受信した前記識別情報が前記第２のキャッシュ内に過去に登録済みの場合に、当該識別情報に対応したデータを前記第２のキャッシュから復元出力する復元部と
を有することを特徴とする情報処理システム。
【請求項８】
前記第１の情報処理装置及び前記第２の情報処理装置を管理するサーバを有し、
前記サーバは、
前記ルール及び、前記ルール毎に異なる開始項目を記憶する記憶部と、
前記第１の情報処理装置へ入力するデータをキャプチャするキャプチャ部と、
前記キャプチャ部にてキャプチャされた前記データから前記開始項目に対応した前記ルートを特定する特定部と、
特定された前記ルールを前記第１の情報処理装置及び前記第２の情報処理装置に通知する通知部と
を有することを特徴とする請求項７に記載の情報処理システム。
【請求項９】
過去のデータをキャッシュ内に登録し、
指定項目を検索条件とするルールを記憶部に変更可能に記憶し、
新規のデータを取得した場合に、取得したデータが前記キャッシュ内に登録済みであるか否かを判定し、
取得したデータが前記キャッシュ内に登録済みでない場合に、取得したデータ内に前記指定項目があるか否かを判定し、
前記取得したデータ内に前記指定項目がある場合に、前記記憶部から当該指定項目の前記ルールを設定し、
前記設定されたルールに基づき、取得したデータから前記指定項目を除去した差分データ及び、前記取得したデータを識別する識別情報を対向装置に出力する
処理をコンピュータに実行させる情報処理プログラム。
【請求項１０】
情報処理装置が、
過去のデータをキャッシュ内に登録し、
指定項目を検索条件とするルールを記憶部に変更可能に記憶し、
新規のデータを取得した場合に、取得したデータが前記キャッシュ内に登録済みであるか否かを判定し、
取得したデータが前記キャッシュ内に登録済みでない場合に、取得したデータ内に前記指定項目があるか否かを判定し、
前記取得したデータ内に前記指定項目がある場合に、前記記憶部から当該指定項目の前記ルールを設定し、
前記設定されたルールに基づき、取得したデータから前記指定項目を除去した差分データ及び、前記取得したデータを識別する識別情報を対向装置に出力する
処理を実行することを特徴とする情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理システム、情報処理プログラム及び情報処理方法に関する。
【背景技術】
【０００２】
近年、通信装置間のデータの転送方法として、例えば、Content  Defined  Chunking処理が広く知られている。Content  Defined  Chunking処理は、データのフォーマット等を知ることなく、バイナリデータのみから過去のデータとの重複転送を回避することでデータ転送量を削減して高速転送を実現するものである。
【０００３】
転送装置等の情報処理装置では、データに対して高速ハッシュ計算を実行することで可変長のチャンク単位に分割し、チャンクに対してＳＨＡ１ハッシュ計算を実行することでチャンクにチャンクＩＤを付加する。情報処理装置は、チャンクＩＤが第１のキャッシュに登録済みであるか否かを判定する。情報処理装置は、チャンクＩＤが第１のキャッシュに登録済みでないため、そのチャンクＩＤ及び実データを第１のキャッシュに登録し、チャンクＩＤ及び実データを対向装置に転送する。そして、対向装置は、受信したチャンクＩＤ及び実データを第２のキャッシュに登録する。
【０００４】
更に、情報処理装置は、次のチャンクＩＤを検出し、チャンクＩＤが第１のキャッシュに登録済みの場合に、チャンクＩＤのみを対向装置に転送する。その結果、情報処理装置は、チャンクＩＤが第１のキャッシュに登録済みの場合、チャンクＩＤのみを対向装置に転送するため、実データの重複転送を回避することで、データ転送量を削減して高速転送を実現できる。
【０００５】
更に、情報処理装置は、可変長のチャンクを使用するため、途中でデータの挿入や削除が発生した場合でも、データの比較開始位置を意識せず、データの重複検知を実現できる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００７−２９９０１９号公報
【特許文献２】特開２００６−１７８２７０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、情報処理装置では、データの比較開始位置を意識しないため、図１７に示すように、等しいバイト列が連続せず、例えば、チャンク長が１ＫＢ未満と短い場合には、データを重複検知できない。図１７は、実データの比較の一例を示す説明図である。
【０００８】
一つの側面では、チャンク長が短い場合でも、重複検知を可能にする情報処理装置等を提供することを目的とする。
【課題を解決するための手段】
【０００９】
一つの案では、情報処理装置が、登録部と、記憶部と、第１の判定部と、設定部と、第２の判定部と、出力部とを有する。登録部は、過去のデータをキャッシュ内に登録する。記憶部は、指定項目を検索条件とするルールを変更可能に記憶した。第１の判定部は、新規のデータを取得した場合に、取得したデータが前記キャッシュ内に登録済みであるか否かを判定する。第２の判定部は、取得したデータが前記キャッシュ内に登録済みでない場合に、取得したデータ内に前記指定項目があるか否かを判定する。設定部は、前記取得したデータ内に前記指定項目がある場合に、前記記憶部から当該指定項目の前記ルールを設定する。出力部は、設定されたルールに基づき、取得したデータから前記指定項目を除去した差分データ及び、前記取得したデータを識別する識別情報を対向装置に出力する。
【発明の効果】
【００１０】
チャンク長が短い場合でも、重複検知を可能にする。
【図面の簡単な説明】
【００１１】
【図１】図１は、実施例１の高速転送システムの一例を示す説明図である。
【図２】図２は、第１の透過プロキシの一例を示す説明図である。
【図３】図３は、第２の透過プロキシの一例を示す説明図である。
【図４】図４は、第１の差分処理に関わる第１の透過プロキシ内の第１のＣＰＵの処理動作の一例を示すフローチャートである。
【図５】図５は、重複検知処理に関わる第１の透過プロキシ内の第１のＣＰＵの処理動作の一例を示すフローチャートである。
【図６】図６は、実データの一例を示す説明図である。
【図７】図７は、有効性チェック関数処理に関わる第１の透過プロキシ内の第１のＣＰＵの処理動作の一例を示すフローチャートである。
【図８】図８は、データ区切り関数処理に関わる第１の透過プロキシ内の第１のＣＰＵの処理動作の一例を示すフローチャートである。
【図９】図９は、重複判定処理に関わる第１の透過プロキシ内の第１のＣＰＵの処理動作の一例を示すフローチャートである。
【図１０】図１０は、復元処理に関わる第２の透過プロキシ内の第２のＣＰＵの処理動作の一例を示すフローチャートである。
【図１１】図１１は、実施例２の高速転送システムの一例を示す説明図である。
【図１２】図１２は、サーバの一例を示す説明図である。
【図１３】図１３は、設定処理に関わるサーバ内の第３のＣＰＵの処理動作の一例を示すフローチャートである。
【図１４】図１４は、実施例３の第１の透過プロキシの一例を示す説明図である。
【図１５】図１５は、第２の差分処理に関わる第１の透過プロキシ内の第１のＣＰＵの処理動作の一例を示すフローチャートである。
【図１６】図１６は、情報処理プログラムを実行する情報処理装置の一例を示す説明図である。
【図１７】図１７は、実データの比較の一例を示す説明図である。
【発明を実施するための形態】
【００１２】
以下、図面に基づいて、本願の開示する情報処理装置等の実施例を詳細に説明する。尚、本実施例により、開示技術が限定されるものではない。また、以下に示す各実施例は、矛盾を起こさない範囲で適宜組み合わせても良い。
【実施例１】
【００１３】
図１は、実施例１の高速転送システム１の一例を示す説明図である。図１に示す高速転送システム１は、送信装置２と、受信装置３と、第１の透過プロキシ４と、第２の透過プロキシ５と、ＷＡＮ(Wide  Area  Network)６とを有する。送信装置２は、受信装置３宛のデータを送信する端末装置である。受信装置３は、送信装置２からのデータを受信する端末装置である。第１の透過プロキシ４は、送信装置２からのデータをＷＡＮ６上に転送する第１の情報処理装置である。第２の透過プロキシ５は、ＷＡＮ６から第１の透過プロキシ４からのデータを受信装置３に転送する第２の情報処理装置である。第１の透過プロキシ４は、例えば、Content  Defined  Chunking処理を実行することで送信装置２からのバイナリデータから過去のデータの重複を検知し、その重複部分を除去したデータを転送する。更に、第２の透過プロキシ５は、例えば、Content  Defined  Chunking処理を実行することで第１の透過プロキシ４からのチャンクＩＤに対応するデータを復元出力する。
【００１４】
図２は、第１の透過プロキシ４の一例を示す説明図である。図２に示す第１の透過プロキシ４は、入力部１１と、入力バッファ１２と、第１のキャッシュ１３と、第１の記憶部１４と、第１の送信部１５と、第１のＣＰＵ１６とを有する。入力部１１は、送信装置２からのデータを入力するインタフェースである。入力バッファ１２は、入力部１１からのデータを一時記憶する領域である。第１のキャッシュ１３は、送信装置２からの実データ及びチャンクＩＤを登録する領域である。第１の記憶部１４は、複数の検知モジュールを記憶する領域である。尚、検知モジュールは、Content  Defined  Chunking処理の実行時に使用する重複チャンクを検知するルールを定義したモジュールである。検知モジュールは、例えば、スクリプト形式、ｄｌｌ(dynamic  link  library)形式や共有ライブラリ形式とする。
【００１５】
第１の記憶部１４は、検知モジュールに使用する有効性チェック関数及びデータ区切り関数を記憶する領域である。有効性チェック関数は、受信データの検知モジュールが有効であるか否かを判定する関数である。有効性チェック関数には、例えば、実データ内にｘｍｌのタグが含まれている否かを判定する関数や、例えば、実データ内にＣＡＤのフォーマットのヘッダが含まれている否かを判定する関数等がある。また、有効性チェック関数には、例えば、実データ内にｈｔｔｐ等のヘッダが含まれている否かを判定する関数等である。また、有効性チェック関数には、例えば、実データの開始位置を識別する開始項目、すなわち開始タグもある。データ区切り関数は、有効性チェック関数が有効の場合に、受信データの区切りを識別するための関数、つまり、実データの最後尾を識別する最後尾タグである。尚、第１の記憶部１４に記憶中の検知モジュール、復元モジュール、有効性チェック関数及びデータ区切り関数を適宜設定変更可能である。
【００１６】
送信部１５は、ＷＡＮ６上に受信装置３宛のデータを送信する。第１のＣＰＵ１６は、第１の透過プロキシ４全体を制御する。第１のＣＰＵ１６は、第１の差分処理部２１と、第２の差分処理部２２と、第１の登録部２３とを有する。第１の登録部２３は、第１のキャッシュ１３を記憶制御する。第１の差分処理部２１は、第１の判定部２１Ａと、第１の出力部２１Ｂとを有する。第１の判定部２１Ａは、入力バッファ１２に記憶中の受信データに対して、例えば、１０ビット〜１２ビットの高速ハッシュ計算を実行し、その計算結果に基づき、受信データをチャンク単位に分割する。尚、チャンクの平均長は、例えば、１ＫＢ〜４ＫＢである。更に、第１の差分処理部２１は、チャンクに対して、例えば、１６０ビットのＳＨＡ１ハッシュ計算を実行し、その計算結果に基づき、チャンクのチャンクＩＤを算出する。第１の判定部２１Ａは、チャンクＩＤが第１のキャッシュ１３内にあるか否かを判定する。第１の判定部２１Ａは、チャンクＩＤが第１のキャッシュ１３内にある場合、チャンクＩＤの実データと第１のキャッシュ１３内のチャンクＩＤのデータとを比較し、差分を検出したか否かを判定する。第１の登録部２３は、差分を検出した場合、チャンクＩＤ及び実データを第１のキャッシュ１３に登録する。更に、第１の出力部２１Ｂは、差分を検出した場合、第１の送信部１５経由でチャンクＩＤ及び実データをＷＡＮ６経由で第２の透過プロキシ５に送信する。
【００１７】
また、第１の出力部２１Ｂは、差分を検出しなかった場合、第１の送信部１５経由でチャンクＩＤをＷＡＮ６経由で第２の透過プロキシ５に送信する。つまり、第１の透過プロキシ４は、差分を検出しなかった場合、実データではなく、チャンクＩＤのみを第２の透過プロキシ５に出力するため、第２の透過プロキシ５との間のデータ転送量を削減することで高速転送を図るものである。
【００１８】
第２の差分処理部２２は、第１の設定部２２Ａと、第２の判定部２２Ｂと、第２の出力部２２Ｃとを有する。第１の登録部２３は、チャンクＩＤが第１のキャッシュ１３内にない場合、チャンクＩＤ及び実データを第１のキャッシュ１３に登録する。更に、第２の差分処理部２２は、チャンクＩＤに基づき、重複チャンクを検知する重複検知処理を実行する。第１の設定部２２Ａは、重複チャンクを検知する検知モジュールを特定するための有効性チェック関数処理を実行し、有効性チェック関数が有効の場合、有効の有効性チェック関数に対応した検知モジュールを第１の記憶部１４から特定する。第１の設定部２２Ａは、実データの開始タグを特定する。更に、第１の設定部２２Ａは、データ区切り関数を実行し、実データから最後尾タグを特定し、開始タグから最後尾タグを特定することで、実データの区切りを特定する。第１の設定部２２Ａは、有効の検知モジュールを第１の記憶部１４から特定した場合、その有効の検知モジュールを設定する。
【００１９】
第２の判定部２２Ｂは、特定の検知モジュールを設定し、実データ内のタグを検索し、検索タグが特定の検知モジュールの指定タグであるか否かを判定する。第２の判定部２２Ｂは、検索タグが指定タグの場合、次のタグを検索し、検索タグが指定タグであるか否かを判定する。第２の判定部２２Ｂは、検索タグが指定タグでない場合、検索タグが第１のキャッシュ１３に登録済みのタグと一致するか否かを判定する。第２の判定部２２Ｂは、検索タグが第１のキャッシュ１３に登録済みのタグと一致する場合、検索タグが最後尾タグであるか否かを判定する。第２の判定部２２Ｂは、検索タグが最後尾タグの場合、指定タグの差分データを算出する。第１の登録部２３は、指定タグの差分データ及びチャンクＩＤを第１のキャッシュ１３に登録する。第２の出力部２２Ｃは、結果送信部１５Ａを通じて、差分データ及びチャンクＩＤを第２の透過プロキシ５に送信する。
【００２０】
第１の登録部２３は、検索タグがキャッシュ済みのタグと一致しない場合、実データ及びチャンクＩＤを第１のキャッシュ１３に登録する。第２の出力部２２Ｃは、結果送信部１５Ａを通じて、チャンクＩＤ及び実データに新規ヘッダを付加して第２の透過プロキシ５に送信する。第１の送信部１５は、結果送信部１５Ａと、モジュール送信部１５Ｂとを有する。結果送信部１５Ａは、第１の差分処理部２１及び第２の差分処理部２２のチャンク結果、例えば、チャンクＩＤ及び差分データ等をＷＡＮ６経由で第２の透過プロキシ５に送信する。モジュール送信部１５Ｂは、有効の検知モジュールに対応する復元モジュール及び有効性チェック関数を第２の透過プロキシ５に送信する。
【００２１】
図３は、第２の透過プロキシ５の一例を示す説明図である。図３に示す第２の透過プロキシ５は、受信部３１と、第２のキャッシュ３２と、第２の記憶部３３と、第２の送信部３４と、第２のＣＰＵ３５とを有する。第２のＣＰＵ３５は、復元部３６と、第２の登録部３７とを有する。復元部３６は、第２の設定部３６Ａと、第２の実行部３６Ｂとを有する。受信部３１は、ＷＡＮ６経由で第１の透過プロキシ４からのデータを受信する。尚、第１の透過プロキシ４からのデータは、チャンクＩＤや実データの他に、例えば、復元モジュール及び有効性チェック関数である。
【００２２】
第２のキャッシュ３２は、チャンクＩＤ及び実データを対応付けて登録する領域である。第２の記憶部３３は、使用可能な複数の復元モジュールを記憶する領域である。復元モジュールは、有効性チェック関数に対応したルールである。第２の送信部３４は、実データ又は復元データを受信装置３に転送する出力インタフェースである。第２のＣＰＵ３５は、第２の透過プロキシ５全体を制御する。
【００２３】
復元部３６は、第１の透過プロキシ４からのチャンクＩＤを受信した場合、チャンクＩＤに対応する実データを第２のキャッシュ３２から復元し、復元した実データを出力する。第２の設定部３６Ａは、有効性チェック関数処理を実行することで、実データに対する有効の復元モジュールを第２の記憶部３３から特定する。第２の設定部３６Ａは、特定された復元モジュールを設定する。
【００２４】
第２の実行部３６Ｂは、第１の透過プロキシ４から受信データを受信した場合、受信データに新規ヘッダがあるか否かを判定する。第２の実行部３６Ｂは、受信データ内に新規ヘッダがある場合、受信データから実データ及びチャンクＩＤを取得する。第２の登録部３７は、実データ及びチャンクＩＤを取得した後、実データ及びチャンクＩＤを第２のキャッシュ３２に登録する。第２の送信部３４は、実データを受信装置３に送信する。
【００２５】
第２の実行部３６Ｂは、受信データ内に新規ヘッダがない場合、第２のキャッシュ３２からチャンクＩＤに対応するデータを取得し、差分データがあるか否かを判定する。第２の送信部３４は、差分データがある場合、チャンクＩＤに対応するデータと差分データとを加算出力し、受信装置３に送信する。第２の送信部３４は、差分データがない場合、チャンクＩＤに対応するデータを受信装置３に送信する。
【００２６】
次に実施例１の高速転送システム１の動作について説明する。図４は、第１の差分処理に関わる第１の透過プロキシ４内の第１のＣＰＵ１６の処理動作の一例を示すフローチャートである。図４において第１のＣＰＵ１６内の第１の差分処理部２１は、入力部１１を通じてデータを受信したか否かを判定する（ステップＳ１１）。第１の差分処理部２１内の第１の判定部２１Ａは、データを受信した場合（ステップＳ１１肯定）、受信データに対して高速ハッシュ計算を実行し（ステップＳ１２）、その計算結果に基づき、受信データを可変長のチャンク単位に分割する（ステップＳ１３）。
【００２７】
第１の判定部２１Ａは、チャンクに対してＳＨＡ１ハッシュ計算を実行し（ステップＳ１４）、その計算結果に基づき、チャンク単位にチャンクＩＤを付与する（ステップＳ１５）。第１の判定部２１Ａは、チャンクＩＤが第１のキャッシュ１３内にあるか否かを判定する（ステップＳ１６）。第１の判定部２１Ａは、チャンクＩＤが第１のキャッシュ１３内にある場合（ステップＳ１６肯定）、チャンクＩＤの実データと第１のキャッシュ１３内のチャンクＩＤのキャッシュ済みデータとを比較する（ステップＳ１７）。
【００２８】
第１の判定部２１Ａは、その比較結果に基づき、差分を検出したか否かを判定する（ステップＳ１８）。第１の差分処理部２１内の第１の出力部２１Ｂは、差分を検出した場合（ステップＳ１８肯定）、結果送信部１５Ａを通じて、チャンクＩＤ及び実データを第２の透過プロキシ５に送信する（ステップＳ１９）。第１の登録部２３は、チャンクＩＤ及び実データを第１のキャッシュ１３に登録し（ステップＳ２０）、図４に示す処理動作を終了する。第１の出力部２１Ｂは、差分を検出したのでない場合（ステップＳ１８否定）、結果送信部１５Ａを通じて、チャンクＩＤを第２の透過プロキシ５に送信し（ステップＳ２１）、図４に示す処理動作を終了する。
【００２９】
第１のＣＰＵ１６内の第２の差分処理部２２は、チャンクＩＤが第１のキャッシュ１３内にない場合（ステップＳ１６否定）、チャンクＩＤ及び実データを第１のキャッシュ１３に登録し（ステップＳ２２）、後述する重複検知処理を実行する（ステップＳ２３）。そして、第２の差分処理部２２は、重複検知処理を実行後、図４に示す処理動作を終了する。
【００３０】
第１のＣＰＵ１６は、チャンクＩＤが第１のキャッシュ１３内にあり、差分を検出した場合に、チャンクＩＤ及び実データを第２の透過プロキシ５に送信すると共に、チャンクＩＤ及び実データを第１のキャッシュ１３に登録する。その結果、第１の透過プロキシ４は、第１のキャッシュ１３内のキャッシュ内容を使用して高速転送を実現できる。
【００３１】
第１のＣＰＵ１６は、チャンクＩＤが第１のキャッシュ１３内にあり、差分を検出しなかった場合に、チャンクＩＤを第２の透過プロキシ５に送信する。その結果、第１の透過プロキシ４は、第２の透過プロキシ５に対してチャンクＩＤのみを転送するため、データ転送量を削減して高速転送を実現できる。
【００３２】
第１のＣＰＵ１６は、チャンクＩＤが第１のキャッシュ１３内にない場合に、チャンクＩＤ及び実データを第１のキャッシュ１３に登録し、重複検知処理を実行する。その結果、第１の透過プロキシ４は、チャンクＩＤが第１のキャッシュ１３内にない場合でも、重複検知処理を実行できる。
【００３３】
図５は、重複検知処理に関わる第１の透過プロキシ４内の第１のＣＰＵ１６の処理動作の一例を示すフローチャートである。図５において第１のＣＰＵ１６内の第２の差分処理部２２は、後述する有効性チェック関数処理を実行し（ステップＳ３１）、有効性チェック関数が有効であるか否かを判定する（ステップＳ３２）。第２の差分処理部２２は、有効性チェック関数が有効の場合（ステップＳ３２肯定）、有効の検知モジュールを特定し（ステップＳ３３）、モジュール送信部１５Ｂを通じて、第２の透過プロキシ５に対して有効の検知モジュールを送信する（ステップＳ３４）。更に、第２の差分処理部２２は、検知モジュールを第２の透過プロキシ５に送信した後、後述するデータ区切り関数処理を実行する（ステップＳ３５）。第２の差分処理部２２は、後述する重複判定処理を実行し（ステップＳ３６）、図５に示す処理動作を終了する。
【００３４】
図６は、実データの一例を示す説明図である。図６に示す実データは、ｘｍｌタグのデータ構造である。尚、説明の便宜上、有効性チェック関数は、例えば、＜？ｘｍｌ  ｖｅｒｓｉｏｎ＝“１．０”？＞＜ｃａｔａｌｏｇ＞のタグとする。更に、データ区切り関数は、例えば、＜／ｃａｔａｌｏｇ＞のタグとする。有効の検知モジュールの指定タグは、例えば、＜ｐｒｉｃｅ＞タグとする。
【００３５】
図７は、有効性チェック関数処理に関わる第１の透過プロキシ４内の第１のＣＰＵ１６の処理動作の一例を示すフローチャートである。図７において第１のＣＰＵ１６内の第２の差分処理部２２内の第１の設定部２２Ａは、入力バッファ１２内の実データが有効性チェック関数の開始タグで開始であるか否かを判定する（ステップＳ４１）。尚、開始タグとは、図６に示す実データの場合、例えば、＜？ｘｍｌ  ｖｅｒｓｉｏｎ＝“１．０”？＞＜ｃａｔａｌｏｇ＞のタグである。第１の設定部２２Ａは、実データが開始タグで開始の場合（ステップＳ４１肯定）、有効性チェック関数の有効を設定し（ステップＳ４２）、図７に示す処理動作を終了する。第１の設定部２２Ａは、実データを開始タグで開始でない場合（ステップＳ４１否定）、無効を設定し（ステップＳ４３）、図７に示す処理動作を終了する。
【００３６】
第１のＣＰＵ１６は、実データが有効性チェック関数の開始タグで開始の場合、その有効性チェック関数に対応した検知モジュールを有効にして設定する。その結果、第１のＣＰＵ１６は、実データに対応した検知モジュールを設定できる。
【００３７】
図８は、データ区切り関数処理に関わる第１の透過プロキシ４内の第１のＣＰＵ１６の処理動作の一例を示すフローチャートである。図８において第１のＣＰＵ１６内の第１の設定部２２Ａは、データ区切り関数の最後尾タグで入力バッファ１２内の実データを検索し（ステップＳ５１）、実データ内に最後尾タグがあるか否かを判定する（ステップＳ５２）。尚、最後尾タグとは、図６に示す実データの場合、例えば、＜／ｃａｔａｌｏｇ＞のタグである。第１の設定部２２Ａは、実データ内に最後尾タグがある場合（ステップＳ５２肯定）、入力バッファ１２へのデータ追加を待機し（ステップＳ５３）、最後尾タグで実データを検索すべく、ステップＳ５１に移行する。第１の設定部２２Ａは、実データ内に最後尾タグがない場合（ステップＳ５２否定）、先頭から最後尾までの実データの区切りを特定し（ステップＳ５４）、図８に示す処理動作を終了する。
【００３８】
第１のＣＰＵ１６は、検知モジュールを有効設定した後、実データ内に最後尾タグがある場合、開始タグと最後尾タグとで実データ内の区切りを特定する。その結果、第１のＣＰＵ１６は、実データ内のデータ区切りを特定できる。
【００３９】
図９は、重複判定処理に関わる第１の透過プロキシ４内の第１のＣＰＵ１６の処理動作の一例を示すフローチャートである。図９において第１のＣＰＵ１６内の第２の差分処理部２２内の第２の判定部２２Ｂは、特定の検知モジュールを設定し（ステップＳ６１）、実データ内のタグを検索する（ステップＳ６２）。第２の判定部２２Ｂは、検索タグが特定の検知モジュールの指定タグであるか否かを判定する（ステップＳ６３）。
【００４０】
第２の判定部２２Ｂは、検索タグが指定タグの場合（ステップＳ６３肯定）、次のタグを検索し（ステップＳ６４）、検索タグが指定タグであるか否かを判定すべく、ステップＳ６３に移行する。第２の判定部２２Ｂは、検索タグが指定タグでない場合（ステップＳ６３否定）、検索タグが第１のキャッシュ１３に登録済みのタグと一致するか否かを判定する（ステップＳ６５）。第２の判定部２２Ｂは、検索タグが第１のキャッシュ１３に登録済みのタグと一致する場合（ステップＳ６５肯定）、検索タグが最後尾タグであるか否かを判定する（ステップＳ６６）。
【００４１】
第２の判定部２２Ｂは、検索タグが最後尾タグの場合（ステップＳ６６肯定）、指定タグの差分データを算出する（ステップＳ６７）。第１の登録部２３は、指定タグの差分データ及びチャンクＩＤを第１のキャッシュ１３に登録する（ステップＳ６８）。第２の出力部２２Ｃは、結果送信部１５Ａを通じて、差分データ及びチャンクＩＤを第２の透過プロキシ５に送信し（ステップＳ６９）、図９に示す処理動作を終了する。第２の判定部２２Ｂは、検索タグが最後尾タグでない場合（ステップＳ６６否定）、次のタグを検索すべく、ステップＳ６４に移行する。
【００４２】
第１の登録部２３は、検索タグが登録済みのタグと一致しない場合（ステップＳ６５否定）、実データ及びチャンクＩＤを第１のキャッシュ１３に登録する（ステップＳ７０）。第２の出力部２２Ｃは、結果送信部１５Ａを通じて、チャンクＩＤ及び実データに新規ヘッダを付加して第２の透過プロキシ５に送信し（ステップＳ７１）、図９に示す処理動作を終了する。
【００４３】
第１のＣＰＵ１６は、実データのタグを検索し、その検索タグが検知モジュールの指定タグであるか否かを判定する。第１のＣＰＵ１６は、その検索タグが指定タグの場合、検索タグが第１のキャッシュ１３の登録済みのタグでない場合、実データ及びチャンクＩＤを第１のキャッシュ１３に登録する。第１のＣＰＵ１６は、チャンクＩＤ及び実データに新規ヘッダを付加して第２の透過プロキシ５に送信する。その結果、第２の透過プロキシ５は、新規ヘッダで新規のチャンクＩＤ及び実データを認識できる。
【００４４】
第１のＣＰＵ１６は、検索タグが最後尾タグの場合、指定タグの差分データを算出し、指定タグの差分データ及びチャンクＩＤを第１のキャッシュ１３に登録する。更に、第１のＣＰＵ１６は、差分データ及びチャンクＩＤを第２の透過プロキシ５に送信する。その結果、第２の透過プロキシ５は、差分データ及びチャンクＩＤを取得できる。
【００４５】
図１０は、復元処理に関わる第２の透過プロキシ５内の第２のＣＰＵ３５の処理動作の一例を示すフローチャートである。図１０において第２のＣＰＵ３５内の復元部３６は、第１の透過プロキシ４から受信データを受信したか否かを判定する（ステップＳ８１）。復元部３６内の第２の設定部３６Ａは、受信データを受信した場合（ステップＳ８１肯定）、受信データに新規ヘッダがあるか否かを判定する（ステップＳ８２）。復元部３６内の第２の実行部３６Ｂは、受信データ内に新規ヘッダがある場合（ステップＳ８２肯定）、受信データから実データ及びチャンクＩＤを取得する（ステップＳ８３）。第２の登録部３７は、実データ及びチャンクＩＤを取得した後、実データ及びチャンクＩＤを第２のキャッシュ３２に登録する（ステップＳ８４）。第２の送信部３４は、実データを受信装置３に送信し（ステップＳ８５）、図１０に示す処理動作を終了する。
【００４６】
第２の実行部３６Ｂは、受信データ内に新規ヘッダがない場合（ステップＳ８２否定）、第２のキャッシュ３２からチャンクＩＤに対応するデータを取得し（ステップＳ８６）、差分データがあるか否かを判定する（ステップＳ８７）。第２の送信部３４は、差分データがある場合（ステップＳ８７肯定）、チャンクＩＤに対応するデータと差分データとを加算して受信装置３に送信し（ステップＳ８８）、図１０に示す処理動作を終了する。第２の送信部３４は、差分データがない場合（ステップＳ８７否定）、チャンクＩＤに対応するデータを受信装置３に送信し（ステップＳ８９）、図１０に示す処理動作を終了する。
【００４７】
第２のＣＰＵ３５は、第１の透過プロキシ４の受信データに新規ヘッダがある場合、受信データからチャンクＩＤ及び実データを取得し、チャンクＩＤ及び実データを第２のキャッシュ３２に登録し、実データを受信装置３に出力する。その結果、第２のＣＰＵ３５は、チャンクＩＤ及び実データを第２のキャッシュ３２に登録するため、キャッシュ内容を利用して、高速転送を実現できる。
【００４８】
第２のＣＰＵ３５は、受信データに新規ヘッダがなく、かつ、差分データがない場合、第２のキャッシュ３２からチャンクＩＤに対応する実データを復元出力する。その結果、第２のＣＰＵ３５は、第１の透過プロキシ４からのチャンクＩＤで実データを復元出力できる。
【００４９】
第２のＣＰＵ３５は、受信データに新規ヘッダがなく、かつ、差分データがある場合、チャンクＩＤに対応するデータを第２のキャッシュ３２から特定し、当該データと差分データとを加算して復元出力する。その結果、第２のＣＰＵ３５は、第１の透過プロキシ４からの差分データ及びチャンクＩＤで実データを復元出力できる。
【００５０】
実施例１の第１の透過プロキシ４では、新規のデータを取得した場合に、取得したデータが第１のキャッシュ１３内に登録済みの場合に、取得したデータを識別するチャンクＩＤを第２の透過プロキシ５に出力する。その結果、第１の透過プロキシ４と第２の透過プロキシ５との間のデータ転送量を削減できる。
【００５１】
第１の透過プロキシ４は、取得したデータが第１のキャッシュ１３内に登録済みでない場合に、取得したデータ内に検知モジュール対応の指定タグがあるか否かを判定する。第１の透過プロキシ４は、取得したデータ内に検知モジュール対応の指定タグがある場合に、第１の記憶部１４から当該指定タグの検知モジュールを設定する。第１の透過プロキシ４は、検知モジュールに基づき、取得したデータから指定タグを除去した差分データ及び、取得したデータを識別するチャンクＩＤを第２の透過プロキシ５に出力する。つまり、第１の透過プロキシ４は、実データから検知モジュールの指定タグを除去した差分データ及び、実データのチャンクＩＤを第２の透過プロキシ５に出力する。その結果、チャンク長が短い場合でも、指定タグを用いて高精度な重複検知を実現することで重複データを除去してデータ転送量を削減することで高速転送を実現できる。
【００５２】
しかも、第１の透過プロキシ４は、データ構造に適した検知モジュールを動的に設定可能にし、検知モジュールの指定タグで実データを検索することで、チャンク長が短い場合でも、高精度な重複検知を実現する。その結果、重複データを除去してデータ転送量を削減することで高速転送を実現できる。
【００５３】
第１の透過プロキシ４は、取得した実データ内に検知モジュールの指定タグがない場合に、取得した実データ及び、実データを識別するチャンクＩＤを第１のキャッシュ１３に登録し、実データ及びチャンクＩＤを第２の透過プロキシ５に出力する。その結果、第１の透過プロキシ４は、第１のキャッシュ１３のキャッシュ内容を利用して高速転送を実現できる。
【００５４】
第１の透過プロキシ４は、取得した実データ内に指定の開始タグがある場合に、当該開始タグに対応する検知モジュールを第１の記憶部１４から特定して設定する。その結果、第１の透過プロキシ４は、検知モジュールを設定できる。
【００５５】
第１の透過プロキシ４は、検知モジュールが設定された場合、設定された検知モジュールを第２の透過プロキシ５に通知する。その結果、第２の透過プロキシ５は、第１の透過プロキシ４で設定中の検知モジュールに対応した復元モジュールを設定できる。
【００５６】
第２の透過プロキシ５は、第１の透過プロキシ４から受信したチャンクＩＤが第２のキャッシュ３２内に登録済みの場合に、当該チャンクＩＤに対応したデータを第２のキャッシュ３２から復元出力する。その結果、第１の透過プロキシ４と第２の透過プロキシ５との間のデータ転送量を削減することで高速転送を実現できる。
【００５７】
本実施例では、データ構造に着目した比較開始位置を識別できる検知モジュール（重複除去ルール）を設定することで、比較開始位置を意識しながら、バイト列としてチャンク長が短い場合でも、データ構造に着目した重複検知を実現する。その結果、データの重複検知を実現することで重複データの転送を回避して高速転送を実現できる。しかも、プログラムの改変なしに柔軟な高速化が容易に実現できる。
【００５８】
上記実施例では、検知モジュール、復元モジュール、有効性チェック関数及びデータ区切り関数を第１の記憶部１４に記憶したが、所定操作に応じて適宜変更可能である。検知モジュール及び復元モジュールを動的にロードすることで、検知モジュール及び復元モジュールを再構成できる。
【００５９】
上記実施例１の第１の透過プロキシ４は、検知モジュールを第１の記憶部１４に記憶したが、第１の透過プロキシ４に接続する管理装置から所望の検知モジュールを変更、追加又は削除しても良く、その内容は適宜設定変更可能である。
【００６０】
また、第１の透過プロキシ４及び第２の透過プロキシ５を管理するサーバが、検知モジュールを第１の透過プロキシ４に通知、復元モジュールを第２の透過プロキシ５に通知しても良く、その実施の形態につき、実施例２として以下に説明する。
【実施例２】
【００６１】
図１１は、実施例２の高速転送システム１Ａの一例を示す説明図である。尚、実施例１の高速転送システム１と同一の構成には同一符号を付すことで、その重複する構成及び動作の説明については省略する。図１１に示す高速転送システム１Ａは、送信装置２、受信装置３、第１の透過プロキシ４、第２の透過プロキシ５及びＷＡＮ６の他に、サーバ７を有する。サーバ７は、送信装置２から第１の透過プロキシ４へのデータをキャプチャし、キャプチャされたデータから有効の検知モジュール及び復元モジュールを特定する。
【００６２】
図１２は、サーバ７の一例を示す説明図である。図１２に示すサーバ７は、通信部４１と、記憶部４２と、第３のＣＰＵ４３とを有する。通信部４１は、例えば、送信装置２、第１の透過プロキシ４及び第２の透過プロキシ５と通信接続する。記憶部４２は、有効性チェック関数、データ区切り関数、検知モジュール及び復元モジュール等を記憶する領域である。
【００６３】
第３のＣＰＵ４３は、キャプチャ部４３Ａと、特定部４３Ｂと、通知部４３Ｃとを有する。キャプチャ部４３Ａは、送信装置２から第１の透過プロキシ４へのデータをキャプチャする。特定部４３Ｂは、キャプチャされたデータに対応する有効の検知モジュール及び復元モジュールを記憶部４２から特定する。通知部４３Ｃは、特定された検知モジュールを、通信部４１を通じて第１の透過プロキシ４に送信する。更に、通知部４３Ｃは、特定された復元モジュールを、通信部４１を通じて第２の透過プロキシ５に送信する。
【００６４】
次に実施例２の高速転送システム１Ａの動作について説明する。図１３は、設定処理に関わるサーバ７内の第３のＣＰＵ４３の処理動作の一例を示すフローチャートである。図１３における第３のＣＰＵ４３内のキャプチャ部４３Ａは、送信装置２から第１の透過プロキシ４までのパケットをキャプチャする（ステップＳ１０１）。第３のＣＰＵ４３内の特定部４３Ｂは、記憶部４２に記憶中の検知モジュールを特定し（ステップＳ１０２）、特定の検知モジュールの有効性チェック関数を実行する（ステップＳ１０３）。
【００６５】
特定部４３Ｂは、有効性チェック関数に基づき、検知モジュールが有効であるか否かを判定する（ステップＳ１０４）。通知部４３Ｃは、検知モジュールが有効の場合（ステップＳ１０４肯定）、有効の検知モジュール及び有効性チェック関数を第１の透過プロキシ４に通知する（ステップＳ１０５）。
【００６６】
更に、特定部４３Ｂは、有効の復元モジュールを第２の透過プロキシ５に通知し（ステップＳ１０６）、図１３に示す処理動作を終了する。また、特定部４３Ｂは、検知モジュールが有効でない場合（ステップＳ１０４否定）、記憶部４２から次の検知モジュールを指定し（ステップＳ１０７）、指定の検知モジュールでの有効性チェック関数を実行すべく、ステップＳ１０３に移行する。
【００６７】
サーバ７は、送信装置２から第１の透過プロキシ４へのデータをキャプチャし、データに対して有効性チェック関数処理を実行し、有効性チェック関数に基づき、有効の検知モジュール及び復元モジュールを記憶部４２から特定する。そして、サーバ７は、特定した有効の検知モジュールを第１の透過プロキシ４に通知すると共に、特定した有効の復元モジュールを第２の透過プロキシ５に通知する。その結果、サーバ７は、第１の透過プロキシ４に対して検知モジュールを設定すると共に、第２の透過プロキシ５に対して復元モジュールを設定できる。
【００６８】
上記実施例の第１の透過プロキシ４は、第１のＣＰＵ１６の負荷量が高くなることも予想されるため、第１のＣＰＵ１６の負荷量に応じて同一種別の検知モジュールの内、負荷の異なる検知モジュールを設定しても良い。従って、その実施の形態につき、実施例３として以下に説明する。
【実施例３】
【００６９】
図１４は、実施例３の第１の透過プロキシ４Ａの一例を示す説明図である。尚、実施例１の高速転送システム１と同一の構成には同一符号を付すことで、その重複する構成及び動作の説明については省略する。図１４に示す第１の透過プロキシ４Ａ内の第２の差分処理部２２には、第１の設定部２２Ａ、第２の判定部２２Ｂ及び第２の出力部２２Ｃの他に、計測部２２Ｄを有する。計測部２２Ｄは、第１のＣＰＵ１６の負荷量を計測する。第１の設定部２２Ａは、計測部２２Ｄの計測結果である第１のＣＰＵ１６の負荷量に対応する検知モジュールを第１の記憶部１４から特定する。第１の記憶部１４には、同一種別の検知モジュールの内、負荷の異なる検知モジュールを記憶している。第１の記憶部１４には、例えば、第１のＣＰＵ１６の負荷量が所定レベル以上の場合に使用する低負荷の検知モジュールと、第１のＣＰＵ１６の負荷量が所定レベル以上でない場合に使用する高負荷の検知モジュールとを記憶しているものとする。
【００７０】
第１の設定部２２Ａは、第１のＣＰＵ１６の負荷量が所定レベル以上の場合に低負荷の検知モジュールを第１の記憶部１４から特定し、特定された低負荷の検知モジュールを設定する。第１の設定部２２Ａは、第１のＣＰＵ１６の負荷量が所定レベル以上でない場合に高負荷の検知モジュールを第１の記憶部１４から特定し、特定された高負荷の検知モジュールを設定する。
【００７１】
次に実施例３の高速転送システム１の動作について説明する。図１５は、第２の差分処理に関わる第１の透過プロキシ４Ａ内の第１のＣＰＵ１６の処理動作の一例を示すフローチャートである。図１５において第１のＣＰＵ１６は、チャンクＩＤが第１のキャッシュ１３内にない場合（ステップＳ１６否定）、ステップＳ２２にてチャンクＩＤ及び実データを第１のキャッシュ１３に登録する。そして、第１のＣＰＵ１６内の第１の設定部２２Ａは、計測部２２Ｄの計測結果である第１のＣＰＵ１６の負荷量が所定レベル以上であるか否かを判定する（ステップＳ１１１）。第１の設定部２２Ａは、負荷量が所定レベル以上の場合（ステップＳ１１１肯定）、低負荷の検知モジュールを第１の記憶部１４から特定して設定し（ステップＳ１１２）、重複検知処理を実行すべく、ステップＳ２３に移行する。
【００７２】
また、第１の設定部２２Ａは、第１のＣＰＵ１６の負荷量が所定レベル以上でない場合（ステップＳ１１１否定）、高負荷の検知モジュールを第１の記憶部１４から特定して設定し（ステップＳ１１３）、重複検知処理を実行すべく、ステップＳ２３に移行する。
【００７３】
第１のＣＰＵ１６は、計測部２２Ｄを通じて負荷量を計測し、負荷量が所定レベル以上の場合、同一種別の検知モジュールの中から低負荷の検知モジュールを第１の記憶部１４から特定して設定する。その結果、第１のＣＰＵ１６は、負荷量が高い場合に負荷量が小の検知モジュールを設定できる。
【００７４】
第１のＣＰＵ１６は、負荷量が所定レベル以上でない場合、同一種別の検知モジュールの中から高負荷の検知モジュールを第１の記憶部１４から特定して設定する。その結果、第１のＣＰＵ１６は、負荷量が小さい場合に負荷量が大の検知モジュールを設定できる。
【００７５】
第１の透過プロキシ４は、負荷量に応じた検知モジュールを第１の記憶部１４から特定し、当該特定された当該検知モジュールを設定する。その結果、第１の透過プロキシ４は、負荷量に応じた検知モジュールを設定できる。
【００７６】
上記実施例３では、同一種別の検知モジュールの中から、第１の透過プロキシ４内の第１のＣＰＵ１６の負荷量に応じた検知モジュールを設定した。しかしながら、第２の透過プロキシ５においても、同一種別の復元モジュールの中から、第２のＣＰＵ３５の負荷量に応じた復元モジュールを設定しても良く、適宜設定変更可能である。
【００７７】
上記実施例の第１の透過プロキシ４は、送信装置２と別体としたが、送信装置２内に内蔵しても良い。また、送信装置２は、第１の透過プロキシ４に内蔵する送信アプリケーションであっても良い。第２の透過プロキシ５は、受信装置３と別体としたが、受信装置３内に内蔵しても良い。また、受信装置３は、第２の透過プロキシ５に内蔵する受信アプリケーションであっても良い。
【００７８】
上記実施例の第１の透過プロキシ４には、第１の差分処理部２１及び第２の差分処理部２２を内蔵したが、第１の差分処理部２１及び第２の差分処理部２２に加えて、第２の透過プロキシ５からのデータを復元する復元部３６を内蔵しても良い。同様に、第２の透過プロキシ５は、復元部３６を内蔵したが、復元部３６に加えて、第１の透過プロキシ４にデータ等を出力する第１の差分処理部２１及び第２の差分処理部２２を内蔵しても良い。
【００７９】
また、図示した各部の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各部の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。
【００８０】
更に、各装置で行われる各種処理機能は、ＣＰＵ（又はＭＰＵ（Micro  Processing  Unit）、ＭＣＵ（Micro  Controller  Unit）等のマイクロ・コンピュータ）上で、その全部又は任意の一部を実行するようにしても良い。また、各種処理機能は、ＣＰＵ（又はＭＰＵ、ＭＣＵ等のマイクロ・コンピュータ）で解析実行するプログラム上、又はワイヤードロジックによるハードウェア上で、その全部又は任意の一部を実行するようにしても良いことは言うまでもない。
【００８１】
ところで、本実施例で説明した各種の処理は、予め用意されたプログラムを情報処理装置内のＣＰＵ等のプロセッサで実行させることによって実現できる。そこで、以下では、上記実施例と同様の機能を有するプログラムを実行する情報処理装置の一例を説明する。図１６は、情報処理プログラムを実行する情報処理装置の一例を示す説明図である。
【００８２】
図１６に示す情報処理プログラムを実行する情報処理装置１００は、通信部１１０と、ＲＯＭ１２０と、ＲＡＭ１３０と、ＣＰＵ１４０とを有する。更に、通信部１１０、ＲＯＭ１２０、ＲＡＭ１３０及びＣＰＵ１４０は、バス１５０を介して接続される。
【００８３】
そして、通信部１１０は、対向装置と通信接続する。ＲＯＭ１２０には、上記実施例と同様の機能を発揮する情報処理プログラムが予め記憶されている。ＲＯＭ１２０には、情報処理プログラムとして登録プログラム１２０Ａ、記憶プログラム１２０Ｂ及び第１の判定プログラム１２０Ｃが記憶されている。更に、ＲＯＭ１２０には、情報処理プログラムとして、第２の判定プログラム１２０Ｅ、設定プログラム１２０Ｆ及び出力プログラム１２０Ｇが記憶されている。尚、ＲＯＭ１２０ではなく、図示せぬドライブでコンピュータ読取可能な記録媒体に情報処理プログラムが記録されていても良い。また、記録媒体としては、例えば、ＣＤ−ＲＯＭ、ＤＶＤディスク、ＵＳＢメモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリ等でも良い。
【００８４】
そして、ＣＰＵ１４０は、登録プログラム１２０ＡをＲＯＭ１２０から読み出して登録プロセス１４０Ａとして機能する。ＣＰＵ１４０は、第１の記憶プログラム１２０ＢをＲＯＭ１２０から読み出して第１の記憶プロセス１４０Ｂとして機能する。ＣＰＵ１４０は、第１の判定プログラム１２０ＣをＲＯＭ１２０から読み出して第１の判定プロセス１４０Ｃとして機能する。ＣＰＵ１４０は、第２の判定プログラム１２０ＥをＲＯＭ１２０から読み出して第２の判定プロセス１４０Ｅとして機能する。ＣＰＵ１４０は、設定プログラム１２０ＦをＲＯＭ１２０から読み出して設定プロセス１４０Ｆとして機能する。ＣＰＵ１４０は、出力プログラム１２０ＧをＲＯＭ１２０から読み出して出力プロセス１４０Ｇとして機能する。ＲＡＭ１３０には、図示せぬキャッシュ及び記憶部を有する。
【００８５】
ＣＰＵ１４０は、過去のデータをキャッシュ内に登録する。ＣＰＵ１４０は、指定項目を検索条件とするルールを変更可能に記憶部に記憶した。ＣＰＵ１４０は、新規のデータを取得した場合に、取得したデータが前記キャッシュ内に登録済みであるか否かを判定する。ＣＰＵ１４０は、取得したデータが前記キャッシュ内に登録済みでない場合に、取得したデータ内に前記指定項目があるか否かを判定する。ＣＰＵ１４０は、取得したデータ内に前記指定項目がある場合に、前記記憶部から当該指定項目の前記ルールを設定する。ＣＰＵ１４０は、前記設定されたルールに基づき、取得したデータから前記指定項目を除去した差分データ及び、前記取得したデータを識別する識別情報を対向装置に出力する。その結果、チャンク長が短い場合でも、重複検知を可能にする。
【符号の説明】
【００８６】
１  高速転送システム
４  第１の透過プロキシ
５  第２の透過プロキシ
７  サーバ
１３  第１のキャッシュ
１４  第１の記憶部
１６  第１のＣＰＵ
２１Ａ  第１の判定部
２２Ａ  第１の設定部
２２Ｂ  第２の判定部
２２Ｃ  第２の出力部
２２Ｄ  計測部
２３  第１の登録部
３２  第２のキャッシュ
３６Ａ  第２の設定部
３６Ｂ  第２の実行部
３７  第２の登録部
【図１】
2018195182.tif 000003
【図２】
2018195182.tif 000004
【図３】
2018195182.tif 000005
【図４】
2018195182.tif 000006
【図５】
2018195182.tif 000007
【図６】
2018195182.tif 000008
【図７】
2018195182.tif 000009
【図８】
2018195182.tif 000010
【図９】
2018195182.tif 000011
【図１０】
2018195182.tif 000012
【図１１】
2018195182.tif 000013
【図１２】
2018195182.tif 000014
【図１３】
2018195182.tif 000015
【図１４】
2018195182.tif 000016
【図１５】
2018195182.tif 000017
【図１６】
2018195182.tif 000018
【図１７】
2018195182.tif 000019