(57)【要約】  端末への転送履歴のないデータの転送において、データ転送量を削減する。データ群を保持する第１の装置から、転送履歴として受信したデータを記憶する第２の装置へのデータ転送を行う通信装置である。通信装置は、転送履歴として送信したデータを記憶する記憶部と、第１の装置からデータ群のうちの所定の条件に合致するデータを取得し、取得したデータのうち、記憶部に記憶されていない第１のデータを記憶部に格納するとともに、第１のデータを第２の装置に送信し、第１のデータに対する取得要求に伴い第１の装置から第２の装置への第１のデータの転送が開始された場合に、第１のデータよりもサイズの小さい第１のデータの識別情報を第２の装置に送信する、プロセッサとを備える。
2016132501.tif 000002
【特許請求の範囲】
【請求項１】
データ群を保持する第１の装置から、転送履歴として受信したデータを記憶する第２の装置への前記データ群のデータ転送を行う通信装置であって、
転送履歴として送信したデータを記憶する記憶部と、
前記第１の装置から、前記データ群のうちの所定の条件に合致するデータを取得し、
前記取得されたデータのうち、前記記憶部に記憶されていない第１のデータを前記記憶部に格納するとともに、前記第１のデータを前記第２の装置に送信し、
前記第１のデータに対する取得要求に伴い前記第１の装置から前記第２の装置への前記第１のデータの転送が開始された場合に、前記第１のデータよりもサイズの小さい前記第１のデータの識別情報を前記第２の装置に送信する、
プロセッサと、
を備える通信装置。
【請求項２】
前記プロセッサは、
前記第１のデータを所定サイズの部分データに分割し、
前記第１のデータの前記第２の装置への前記送信において、分割されて作成された部分データのうち前記記憶部に記憶されていない部分データを前記第２の装置へ送信し、
前記第１のデータの前記記憶部への前記格納において、前記分割されて作成された部分データのうち前記記憶部に記憶されていない部分データを前記記憶部に格納する、
請求項１に記載の通信装置。
【請求項３】
前記プロセッサは、
前記データ群のうちの所定の条件に合致する前記第１のデータの前記第２の装置への前記送信に第１のセッションを用い、前記取得要求に伴う前記第１の装置から前記第２の装置への前記第１のデータの転送に前記第１のセッションとは異なる第２のセッションを用いる、
請求項１又は２に記載の通信装置。
【請求項４】
前記プロセッサは、
前記第１のセッションを用いて前記第１のデータを前記第２の装置に送信中に、前記第２のセッションを通じて前記第１のデータに対する取得要求を受信する場合には、前記第１のセッションを用いた送信を停止する、
請求項３に記載の通信装置。
【請求項５】
前記プロセッサは、
前記データ群のうちの前記所定の条件に合致するデータのうち、前記記憶部に記憶されておらず、優先度が所定閾値よりも高いデータを前記第１のデータとする、
請求項１から４のいずれか一項に記載の通信装置。
【請求項６】
前記プロセッサは、
前記データ群のうちの前記所定の条件に合致するデータのうち、サイズが所定の閾値未満のデータを前記第１のデータとする、
請求項１から４のいずれか一項に記載の通信装置。
【請求項７】
前記プロセッサは、
前記第１の装置からの前記所定の条件に合致するデータの前記取得において、前記第１の装置へ転送したデータの属性情報の参照要求の対象となるデータであることを前記所定の条件とし、前記参照要求の対象データについて前記第１の装置に対して取得要求を送信する、
請求項１から６のいずれか一項に記載の通信装置。
【請求項８】
データ群を保持する第１の装置から、転送履歴として受信したデータを記憶する第２の装置への前記データ群のデータ転送を行う通信装置のプロセッサが、
送信したデータを転送履歴として記憶部に記憶し、
前記第１の装置から、前記データ群のうちの所定の条件に合致するデータを取得し、
前記取得されたデータのうち、前記記憶部に記憶されていない第１のデータを前記記憶部に格納するともに、前記第１のデータを前記第２の装置に送信し、
前記第１のデータに対する取得要求に伴い前記第１の装置から前記第２の装置への前記第１のデータの転送が開始された場合に、前記第１のデータよりもサイズの小さい前記第１のデータの識別情報を前記第２の装置に送信する、
情報処理方法。
【請求項９】
データ群を保持する第１の装置から、転送履歴として受信したデータを記憶する第２の装置への前記データ群のデータ転送を行う通信装置のプロセッサに、
送信したデータを転送履歴として記憶部に記憶させ、
前記第１の装置から、前記データ群のうちの所定の条件に合致するデータを取得させ、
前記取得されたデータのうち、前記記憶部に記憶されていない第１のデータを前記記憶部に格納させるとともに、前記第１のデータを前記第２の装置に送信させ、
前記第１のデータに対する取得要求に伴い前記第１の装置から前記第２の装置への前記第１のデータの転送が開始された場合に、前記第１のデータよりもサイズの小さい前記第１のデータの識別情報を前記第２の装置に送信させる、
ための情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置、情報処理方法、及び、情報処理プログラムに関する。
【背景技術】
【０００２】
クライアント端末へのデータ転送を高速化する方法の一つに、データ重複除去がある。データ重複除去では、送信側及び受信側の双方の装置が、一度転送したデータをキャッシュに保存し、転送履歴を残す。次に同じデータが転送される場合には、送信側の装置は、データの代わりにサイズの小さい該データのＩＤデータを転送し、受信側の装置は、ＩＤデータから元のデータをキャッシュから読み出す。データのＩＤデータは、例えば、キャッシュ内の格納位置情報であって、サイズは１０〜１００バイト程度である。これによって、送信側の装置と受信側の装置との間のデータ転送量が削減され、転送時間を短縮することができる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−２０５２０１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、データ重複除去では、転送履歴のないデータについては、送信側及び受信側の双方又は一方のキャッシュにデータがないため、重複除去が行われないという問題があった。例えば、転送装置の起動直後では、転送履歴がなくキャッシュ内にデータがないため、該転送装置は、いずれのデータに対しても重複除去を行うことができない。なお、転送履歴とは、転送されたという記録を指し、転送履歴がない、とは転送された記録がないことを示す。【０００５】
本発明の一態様は、端末への転送履歴のないデータの転送において、データ転送量を削減可能にする通信装置、情報処理方法、及び、情報処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の態様の一つは、データ群を保持する第１の装置から、転送履歴として受信したデータを記憶する第２の装置へのデータ転送を行う通信装置である。通信装置は、転送履歴として送信したデータを記憶する記憶部と、第１の装置からデータ群のうちの所定の条件に合致するデータを取得し、取得したデータのうち、記憶部に記憶されていない第１のデータを記憶部に格納するとともに、第１のデータを第２の装置に送信し、第１のデータに対する取得要求に伴い第１の装置から第２の装置への第１のデータの転送が開始された場合に、第１のデータよりもサイズの小さい第１のデータの識別情報を第２の装置に送信する、プロセッサとを備える。
【発明の効果】
【０００７】
開示の通信装置、情報処理方法、及び、情報処理プログラムによれば、端末への転送履歴のないデータの転送において、データ転送量を削減することができる。
【図面の簡単な説明】
【０００８】
【図１】第１実施形態に係る通信システムの構成の一例と、通信システムにおいて行われる処理の一例とを示す図である。
【図２】送信側転送装置のハードウェア構成の一例を示す図である。
【図３】送信側転送装置、受信側転送装置の機能構成の一例を示す図である。
【図４Ａ】送信側転送装置の処理のフローチャートの一例である。
【図４Ｂ】送信側転送装置の処理のフローチャートの一例である。
【図５】受信端末からファイル属性参照要求が送信される場合の通信システムにおける処理のシーケンスの一例を示す図である。
【発明を実施するための形態】
【０００９】
以下、図面に基づいて、本発明の実施の形態を説明する。以下の実施形態の構成は例示であり、本発明は実施形態の構成に限定されない。
【００１０】
＜第１実施形態＞
図１は、第１実施形態に係る通信システム１００の構成の一例と、通信システム１００において行われる処理の一例とを示す図である。通信システム１００は、送信側の装置として、送信側転送装置１、送信端末３、受信側の装置として、受信側転送装置２、受信端末４を含む。送信側転送装置１、受信側転送装置２は、送信端末３と受信端末４との間の通信を転送する転送装置である。
【００１１】
通信システム１００は、例えば、企業のプライベートネットワークシステムであって、送信側は本社のネットワーク、受信側は支社のネットワークである。送信側転送装置１と受信側転送装置２とは、例えば、キャリア網に接続しており、両者の間は専用線、ＶＰＮ（Virtual Private Network）等で接続されている。送信側転送装置１と送信端末３との間、受信側転送装置２と受信端末４との間は、例えば、ＬＡＮ（Local Area Network）で接続されている。
【００１２】
第１実施形態では、送信端末３及び受信端末４はファイル共有アプリケーションであるＣＩＦＳ（Common Internet File System）を実行しており、受信端末４が送信端末３上のフォルダ＃Ａにアクセスする場合が想定される。フォルダ＃Ａには、ファイル＃Ｂが含まれていることとする。ファイル＃Ｂは、送信側転送装置１及び受信側転送装置２のいずれのキャッシュにも保存されていないものとする。
【００１３】
Ｓ１では、受信端末４は、ユーザからのフォルダ＃Ａの選択操作の入力により、フォルダ＃Ａ内のファイルに対するファイル属性情報の参照要求（ファイル属性参照要求）を送信端末３に送信する。ユーザからのフォルダ＃Ａの選択操作は、例えば、ディスプレイに表示されるフォルダ＃Ａのアイコンにマウスのポインタを合わせてマウスのボタンをダブルクリックする、等の操作である。受信端末４は、Ｓ１より前の処理におけるＣＩＦＳの処理によって、送信端末３が保持するファイル一覧の情報を取得している。そのため、受信端末４は、フォルダ＃Ａ内にファイル＃Ｂがあることを認識しており、ファイル属性参照要求には、対象となるフォルダ＃Ａ内のファイル＃Ｂの識別情報が含まれている。ファイル属性参照要求は、「参照要求」の一例である。
【００１４】
受信端末４からのファイル属性参照要求に対して、送信端末３は、フォルダ＃Ａ内のファイル＃Ｂのファイル属性情報を受信端末４に送信する。ファイル属性情報には、例えば、ファイル又はフォルダのいずれであるかを示す種類情報、ファイル又はフォルダの名前、該ファイル又は該フォルダの属するフォルダ名、ファイルサイズ等が含まれる。ファイル属性情報は、「属性情報」の一例である。
【００１５】
受信端末４がフォルダ＃Ａ内に含まれるファイル＃Ｂのファイル属性情報を取得すると、受信端末４のディスプレイには、例えば、フォルダ＃Ａのウィンドウ内にファイル＃Ｂのアイコンが表示される。
【００１６】
Ｓ２では、送信側転送装置１は、受信端末４から送信されるファイル属性参照要求の転送時にファイル＃Ｂの情報を取得し、送信端末３にファイル＃Ｂへの取得要求を送信して、ファイル＃Ｂを取得する。
【００１７】
Ｓ３では、送信側転送装置１は、ファイル＃Ｂはキャッシュに保存されていないので、ファイル＃Ｂをキャッシュに格納する。また、送信側転送装置１は、送信側転送装置１のキャッシュに保存されていないデータは受信側転送装置２のキャッシュにも保存されていないとみなし、受信側転送装置２にファイル＃Ｂを送信する。
【００１８】
受信側転送装置２のキャッシュにもファイル＃Ｂは保存されていないので、受信側転送装置２は、ファイル＃Ｂを受信すると、ファイル＃Ｂをキャッシュに格納する。これによって、ファイル＃Ｂについて送信側転送装置１と受信側転送装置２とのキャッシュ内容が同期される。なお、Ｓ３における送信側転送装置１からのファイル＃Ｂの送信は、受信側転送装置２を宛先とするため、受信側転送装置２で終端される。
【００１９】
ただし、ファイル＃Ｂは、所定のサイズの部分データに分割されて、部分データのままで、送信側転送装置１のキャッシュに格納され、受信側転送装置２に送信され、受信側転送装置２のキャッシュに格納される。部分データのサイズは、例えば、３〜１０キロバイトであり、ファイルサイズに比べて十分に小さいこととする。
【００２０】
Ｓ４では、受信端末４のユーザによってディスプレイに表示されているフォルダ＃Ａ内のファイル＃Ｂの選択操作が行われたことによって、受信端末４は、ファイル＃Ｂのファイル取得要求を送信端末３に送信する。送信端末３は、ファイル＃Ｂのファイル取得要求を受信すると、ファイル＃Ｂの送信を行う。ファイル取得要求は、「取得要求」の一例である。
【００２１】
Ｓ５では、送信側転送装置１は、送信端末３から受信側転送装置２へのファイル＃Ｂの転送処理を行う際に、重複除去処理を行う。具体的には、重複除去処理は以下の通りである。ただし、以下の重複除去処理は、一例であって、適用可能な重複除去処理は、以下のものに限定されない。
【００２２】
送信側転送装置１は、受信したファイル＃Ｂを部分データに分割し、キャッシュ内の部分データと比較して、キャッシュ内に一致するものがあるか否かの判定を行う。キャッシュ内に一致するものがある部分データについては、送信側転送装置１は、部分データそのものではなく、該部分データのＩＤデータを送信する。キャッシュ内に一致するものがない部分データについては、送信側転送装置１は、該部分データそのものを送信する。
【００２３】
部分データのＩＤデータは、例えば、該部分データのキャッシュ内の格納位置、送信側転送装置１と受信側転送装置２との間の通信における該部分データの通信開始からの位置（オフセット）等である。また、部分データのＩＤデータは、部分データをハッシュ計算して得られるハッシュ値であってもよい。ただし、部分データのＩＤデータがハッシュ値等の所定の計算結果の値である場合には、部分データのＩＤデータは部分データとともにキャッシュに格納されることとする。部分データのＩＤデータは、送信側転送装置１と受信側転送装置２との間で共通する重複の無い情報であればよい。部分データのＩＤデータのサイズは、４〜１００バイト程度であり、部分データに比べて十分に小さい。
【００２４】
Ｓ５において、ファイル＃Ｂの部分データはいずれもキャッシュ内に保存されているため、ファイル＃Ｂの部分データいずれについても、データそのものではなく、ＩＤデータが送信される。
【００２５】
Ｓ６では、受信側転送装置２は、ファイル＃Ｂの各部分データのＩＤデータを受信する。受信側転送装置２は、ＩＤデータに対応する部分データをキャッシュから読み出して、部分データを復元する。受信側転送装置２は、復元した部分データを結合してファイル＃Ｂを取得し、ファイル＃Ｂを受信端末４に転送する。
【００２６】
これによって、第１実施形態では、受信端末４への転送履歴のないデータに対して、受信端末４からデータ取得要求が発生した場合でも、重複除去処理を行うことができ、データ転送量を削減することができる。
【００２７】
＜装置構成＞
図２は、送信側転送装置１のハードウェア構成の一例を示す図である。送信側転送装置１は、例えば、サーバのような専用のコンピュータ、又は、ＰＣ（パーソナルコンピュータ）のような汎用のコンピュータである。送信側転送装置１は、「通信装置」の一例である。
【００２８】
送信側転送装置１は、ＣＰＵ（Central Processing Unit）１０１、主記憶装置１０２、入力装置１０３、出力装置１０４、補助記憶装置１０５、ネットワークインタフェース１０７を備える。また、これらはバス１０９により互いに電気的に接続されている。
【００２９】
入力装置１０３は、例えば、タッチパネル、キーボード、キーパッド等である。入力装置１０３から入力されたデータは、ＣＰＵ  １０１に出力される。入力装置１０３は、例えば、マイクロフォンのような音声入力装置を含んでもよい。
【００３０】
補助記憶装置１０５は、様々なプログラムや、各プログラムの実行に際してＣＰＵ  １０１が使用するデータを格納する。補助記憶装置１０５は、例えば、ＥＰＲＯＭ（Erasable Programmable ROM）、フラッシュメモリ、又はハードディスクドライブ（Hard Disk Drive）等の不揮発性のメモリである。補助記憶装置１０５は、例えば、オペレーティングシステム（ＯＳ）、重複除去プログラム、その他様々なアプリケーションプログラムを保持する。重複除去プログラムは、データの重複送信の際にはデータの代わりに識別情報を送信することで重複するデータの送信を除去するためのプログラムである。重複除去プログラムは、「情報処理プログラム」の一例である。
【００３１】
主記憶装置１０２は、ＣＰＵ  １０１に、補助記憶装置１０５に格納されているプログラムをロードする記憶領域および作業領域を提供したり、バッファとして用いられたりする。主記憶装置１０２は、例えば、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）のような半導体メモリを含む。
【００３２】
ＣＰＵ  １０１は、補助記憶装置１０５に保持されたＯＳや様々なアプリケーションプログラムを主記憶装置１０２にロードして実行することによって、様々な処理を実行する。ＣＰＵ  １０１は、１つに限られず、複数備えられてもよい。
【００３３】
ネットワークインタフェース１０７は、ネットワークとの情報の入出力を行うインタフェースである。ネットワークインタフェース１０７は、有線のネットワークと接続するインタフェース、無線のネットワークと接続するインタフェースを含む。ネットワークインタフェース１０７は、例えば、ＮＩＣ（Network Interface Card）、無線ＬＡＮ（Local Area Network）カード、無線回路等である。ネットワークインタフェース１０７で受信されたデータ等は、ＣＰＵ  １０１に出力される。
【００３４】
出力装置１０４は、ＣＰＵ  １０１の処理の結果を出力する。出力装置１０４は、ディスプレイ、プリンタを含む。
【００３５】
なお、図２に示される送信側転送装置１のハードウェア構成は、一例であり、上記に限られず、実施の形態に応じて適宜構成要素の省略や置換、追加が可能である。例えば、送信側転送装置１は、可搬記録媒体駆動装置を備え、可搬記録媒体に記録されたプログラムを実行してもよい。可搬記録媒体は、例えば、ＳＤカード、ｍｉｎｉＳＤカード、ｍｉｃｒｏＳＤカード、ＵＳＢ（Universal Serial Bus）フラッシュメモリ、ＣＤ（Compact Disc）、ＤＶＤ(Digital Versatile Disc)、Ｂｌｕ−ｒａｙ（登録商標）  Ｄｉｓｃ、又はフラッシュメモリカードのような記録媒体である。また、送信側転送装置１がサーバである場合には、例えば、情報処理装置１は、入力装置１０３、出力装置１０４を備えていなくてもよい。
【００３６】
受信側転送装置２は、サーバ等の専用のコンピュータ又はＰＣ等の汎用のコンピュータであり、ハードウェア構成は、送信側転送装置１と同様である。送信端末３、受信端末４は、それぞれ、例えば、ＰＣ、スマートフォン、タブレット端末等である。送信端末３、受信端末４のハードウェア構成は、図２に示されるハードウェア構成と似ているため、図示を省略する。受信側転送装置２は、「第２の装置」の一例である。
【００３７】
送信端末３、受信端末４は、ハードウェア構成として、ＣＰＵ、主記憶装置、補助記憶装置、入力装置としてのタッチパネル及びマイクロフォン、出力装置としてのディスプレイ、スピーカ、無線通信処理を行うネットワークインタフェースとしての無線部を備える。また、送信端末３、受信端末４も、可搬記録媒体駆動装置を備えてもよい。送信端末３は、「第１の装置」の一例である。
【００３８】
図３は、送信側転送装置１、受信側転送装置２の機能構成の一例を示す図である。送信側転送装置１は、中継処理部１１、要求判定部１２、疑似要求生成部１３、重複除去処理１４、転送処理部１５、キャッシュ１６を備える。これらの機能構成は、ＣＰＵ  １０１が補助記憶装置１０５に格納されている重複除去プログラムを実行することによって達成される機能構成である。また、重複除去プログラムが実行されることによって、補助記憶装置１０５の記憶領域にキャッシュ１６用の領域が確保される。
【００３９】
送信側転送装置１では、送信端末３から受信側転送装置２へ転送されるデータは、中継処理部１１、要求判定部１２、重複除去処理部１４、転送処理部１５の順で各機能構成を通過する。また、送信側転送装置１では、受信側転送装置２から送信端末３へ転送されるデータは、転送処理部１５、重複除去処理部１４、要求判定部１２、中継処理部１１の順で各機能構成を通過する。
【００４０】
要求判定部１２は、送信側転送装置１が転送するデータの中から、ファイル属性参照要求、ファイル属性情報を検出する。ファイル属性参照要求、ファイル属性情報は、第１実施形態では、ＣＩＦＳのメッセージであるので、要求判定部１２は、メッセージ種別を判定することによって、ファイル属性参照要求、ファイル属性情報を検出する。
【００４１】
要求判定部１２は、ファイル属性参照要求を検出すると、ファイル属性参照要求の対象ファイルの識別情報を取得する。次に、要求判定部１２は、対象ファイルのファイル属性情報を検出し、対象ファイルのサイズが閾値未満であるか否かを判定する。
【００４２】
対象ファイルのサイズが閾値未満である場合には、要求判定部１２は、疑似要求生成部１３に対して、対象ファイルについての疑似ファイル取得要求の送信を指示する。対象ファイルのサイズが閾値以上である場合には、要求判定部１２は、該対象ファイルの受信側転送装置２への送信を取りやめる。該対象ファイルの受信側転送装置２への送信にかかる時間が長くなり、送信端末３と受信端末４との間のセッションの通信に影響を及ぼす可能性があるためである。
【００４３】
疑似要求生成部１３は、要求判定部１２から指示を受けると、ファイル属性参照要求の対象ファイルへの疑似ファイル取得要求を生成し、送信端末３に疑似ファイル取得要求を送信する。ファイル属性参照要求の対象ファイルが複数ある場合には、要求判定部１２は、該複数のファイルに対して疑似ファイル取得要求を送信する。疑似ファイル取得要求は、中継処理部１１に出力され、中継処理部１１から送信端末３に送信される。
【００４４】
疑似ファイル取得要求は、例えば、ファイル取得要求と同じフォーマットでも、異なるファイル転送プロトコルのファイル取得要求であってもよい。疑似ファイル取得要求の宛先ＩＰアドレスは、ファイル属性参照要求の宛先ＩＰアドレスが用いられる。疑似ファイル取得要求の送信元ＩＰアドレスは、例えば、送信側転送装置１のＩＰアドレス、ファイル属性参照要求の送信元ＩＰアドレスである受信端末４のＩＰアドレス、受信側転送装置２のＩＰアドレスのいずれであってもよい。受信側転送装置２のＩＰアドレスは、受信端末４から送信端末３へのファイル属性参照要求よりも先んじて、送信側転送装置１と受信側転送装置２との間で行われるネゴシエーションにおいて、予め取得されているものとする。
【００４５】
疑似ファイル取得要求の送信に伴い、疑似要求生成部１３は、送信側転送装置１と送信端末３との間、及び、送信側転送装置１と受信側転送装置２との間に新たにセッションＣ２を確立させる。このセッションＣ２は、受信端末４からのファイル取得要求に先立って、送信側転送装置１及び受信側転送装置２がファイルのデータをキャッシュに保存するために、疑似ファイル取得要求の対象のファイルを転送させるためのセッションである。該セッションＣ２を以降、先読み用セッションＣ２、と称する。先読み用セッションは、「第1のセッション」の一例である。
【００４６】
先読み用セッションＣ２は、送信端末３と受信端末４との間のセッションで用いられるＣＩＦＳのセッションであってもよいし、ＣＩＦＳとは異なるファイル転送プロトコルのセッションであってもよい。以降、送信端末３と受信端末４との間のＣＩＦＳのセッションＳ１を、ファイル転送用セッションＣ１、と称する。ファイル転送用セッションは、「第２のセッション」の一例である。
【００４７】
受信端末４と送信端末３との間のファイル転送用セッションＣ１と、送信側転送装置１と送信端末３との間及び送信側転送装置１と受信側転送装置２との間の先読み用セッションＣ２と、は、異なるものである。送信側転送装置１及び受信側転送装置２において、セッションは、セッション識別情報によって識別される。セッション識別情報は、例えば、送信元及び宛先ＩＰアドレス、送信元及び宛先ポート番号、セッション識別番号等のいずれか又は組み合わせの情報である。したがって、ファイル転送用セッションＣ１を流れるデータと、先読み用セッションＣ２を流れるデータとは、送信側転送装置１及び受信側転送装置２によって、セッション識別情報で識別される。
【００４８】
先読み用セッションＣ２は、送信側転送装置１と送信端末３との間のセッションと、送信側転送装置１と受信側転送装置２との間のセッションとが、異なるセッションであってもよい。すなわち、送信側転送装置１と送信端末３との間のセッションは、中継処理部１１によって終端され、送信側転送装置１と受信側転送装置２との間のセッションは、転送処理部１５で終端されてもよい。
【００４９】
この場合には、疑似ファイル取得要求の送信元ＩＰアドレスは送信側転送装置１のＩＰアドレスとなる。そのため、送信端末３が疑似ファイル取得要求の応答としてファイルを送信する際には、送信側転送装置１のＩＰアドレスが宛先となる。送信側転送装置１と送信端末３との間のセッションのデータは、中継処理部１１によって疑似要求生成部１３に転送され、疑似要求生成部１３は、該データを送信側転送装置１と受信側転送装置２との間のセッションに載せ替える。これによって、疑似ファイル取得要求に応じて送信端末３から取得されたファイルのデータは、送信側転送装置１から送信される際には、受信側転送装置２のＩＰアドレスを宛先とするようになる。
【００５０】
また、先読み用セッションＣ２は、送信側転送装置１と送信端末３との間のセッションと送信側転送装置１と受信側転送装置２との間のセッションとが、送信側転送装置１において終端されない、送信端末３と受信側転送装置２との間の一本のセッションであってもよい。この場合には、疑似ファイル取得要求の送信元ＩＰアドレスは、受信側転送装置２又は受信端末４のＩＰアドレスとなる。また、この場合には、送信端末３から取得されるファイルのデータについて、疑似要求生成部１３によるセッションの載せ替えは行われない。疑似ファイル取得要求の送信元ＩＰアドレスが受信端末４のＩＰアドレスである場合には、疑似ファイル取得要求によって取得されたファイルのデータの宛先は、受信端末４のＩＰアドレスとなる。そのため、受信側転送装置２は、先読み用セッションＣ２を流れるデータについては、受信端末４のＩＰアドレスが宛先ＩＰアドレスに設定されていたとしても、受信端末４に転送せずに、先読み用セッションＣ２を終端する。
【００５１】
重複除去処理部１４は、送信端末３から受信側転送装置２への方向に流れるデータ、すなわち、要求判定部１２から入力されるデータに対して、以下の重複除去処理を行う。中継処理部１１は、送信端末３から入力されるパケットを入力バッファのサイズ分のデータに成形して、要求判定部１２の方向に出力する。中継処理部１１の入力バッファのサイズは、例えば、５０〜１００キロバイトである。
【００５２】
重複除去処理部１４は、中継処理部１１の入力バッファのサイズで入力されるデータを、所定サイズの部分データに分割する。部分データのサイズは、例えば、２〜８キロバイトである。部分データのサイズは、固定であっても可変であってもよい。重複除去処理部１４は、分割で得られた部分データとキャッシュ１６に保存される部分データとを比較し、分割で得られた部分データに一致するものがない場合には、該部分データをキャッシュ１６に格納し、転送処理部１５に出力する。分割で得られた部分データに一致する部分データがキャッシュ１６内にある場合には、重複除去処理部１４は、該部分データのＩＤデータを転送処理部１５に出力する。ＩＤデータは、キャッシュ１６内の部分データの格納位置であってもよいし、所定のハッシュ計算により部分データから取得されるものであってもよい。ＩＤデータは、「データの識別情報」の一例である。
【００５３】
中継処理部１１は、送信端末３とのインタフェースである。転送処理部１５は、受信側転送装置２とのインタフェースである。中継処理部１１、転送処理部１５は、データを外部に出力する場合には、該データをパケットサイズに分割し、それぞれのセッション識別情報に基づいたヘッダをパケットサイズの各データに付与してパケットを生成し、生成したパケットを外部に送信する。パケットサイズは、例えば、１５００バイト未満である。
【００５４】
中継処理部１１、転送処理部１５は、外部からパケットを受信する場合には、パケットからヘッダを取り除いてパケットサイズのデータ抽出し、該抽出したデータを入力バッファに格納する。入力バッファにバッファサイズ分のデータが溜まった場合、又は、入力バッファにデータが入力されてから所定時間経過した場合には、中継処理部１１、転送処理部１５は、入力バッファに格納されているデータを一塊のデータとして、内部の他の機能構成に出力する。
【００５５】
キャッシュ１６は、補助記憶装置１０５の記憶領域に作成される。キャッシュ１６は、部分データ、又は、部分データとＩＤデータとを記憶する。キャッシュ１６は、例えば、所定時間部分データに対するアクセスが発生しない場合には、該部分データを削除するようにしてもよい。該所定時間は、例えば、１２時間、１日、一週間、といった比較的長い単位で設定される。キャッシュ１６は、「記憶部」の一例である。
【００５６】
受信側転送装置２は、機能構成として、中継処理部２１、重複除去処理部２４、転送処理部２５、キャッシュ２６を備える。これらの機能構成は、受信側転送装置２のＣＰＵが補助記憶装置に格納されている重複除去プログラムを実行することによって達成される機能構成である。また、重複除去プログラムが実行されることによって、受信側転送装置２の補助記憶装置の記憶領域にキャッシュ２６用の領域が確保される。
【００５７】
受信側転送装置２では、受信端末４から送信側転送装置１へ転送されるデータは、中継処理部２１、重複除去処理部２４、転送処理部２５の順で各機能構成を通過する。また、受信側転送装置２では、送信側転送装置１から受信端末４へ転送されるデータは、転送処理部２５、重複除去処理部２４、中継処理部２１の順で各機能構成を通過する。
【００５８】
中継処理部２１は、受信端末４とのインタフェースである。転送処理部２５は、送信側転送装置１とのインタフェースである。中継処理部２１及び転送処理部２５は、送信側転送装置１の中継処理部１１及び転送処理部１５と同様の処理を行う。
【００５９】
重複除去処理部２４は、転送処理部２５から入力されるデータについて、以下の処理を行う。重複除去処理部２４は、転送処理部２５から入力されるデータが、部分データである場合には、該部分データをキャッシュ２６に格納する。転送処理部２５から入力されるデータがＩＤデータである場合には、該ＩＤデータに該当する部分データをキャッシュ２６から読み出して、部分データを復元する。なお、転送処理部２５から入力されるデータが、部分データであるかＩＤデータであるかは、例えば、入力されるデータのサイズから判別可能である。
【００６０】
重複除去処理部２４は、受信端末４と送信端末３との間のファイル転送用のセッションで受信されるデータについては、中継処理部２１に出力する。一方、先読み用セッションＣ２で受信されるデータについては、重複除去処理部２４は、他の装置への転送は行わない。該セッションが受信側転送装置２で終端されるためである。なお、先読み用セッションＣ２を通じて受信側転送装置２が受信するデータは、第１実施形態では、送信側転送装置１によって疑似ファイル取得要求の応答として送信端末３から取得されたファイルのデータである。
【００６１】
キャッシュ２６は、送信側転送装置１のキャッシュ１６と同様である。なお、第１実施形態では、送信側転送装置１と受信側転送装置２とは明確に分けられて表記されているが、実際には、送信側転送装置１が受信側転送装置２と同様の処理を行う場合も、また、その逆の場合もあり得る。そのため、実際には、重複除去プログラムを実行することによって、１つの転送装置は、送信側転送装置１と受信側転送装置２との双方の機能構成を有することとなる。
【００６２】
＜処理の流れ＞
図４Ａ、図４Ｂは、送信側転送装置１の処理のフローチャートの一例である。図４Ａ、図４Ｂに示される処理は、送信側転送装置１が起動されるとともに開始され、送信側転送装置１の稼働中は繰り返し実行される。図４Ａ、図４Ｂに示される処理の動作主体は、実際にはＣＰＵ  １０１であるが、便宜上、機能構成を動作主体として、以下、説明される。
【００６３】
ＯＰ１では、要求判定部１２は、受信側転送装置２から送信端末３へのデータ転送において、ファイル属性参照要求を検出する。次に処理がＯＰ２に進む。
【００６４】
ＯＰ２では、要求判定部１２は、送信端末３から受信側転送装置２へのデータ転送において、ＯＰ１において検出したファイル属性参照要求に対応するファイル属性情報を検出し、対象のファイルのサイズを取得する。次に処理がＯＰ３に進む。
【００６５】
ＯＰ３では、要求判定部１２は、対象ファイルのサイズが閾値未満であるか否かを判定する。対象ファイルのサイズが閾値未満である場合には（ＯＰ３：ＹＥＳ）、処理がＯＰ４に進む。対象ファイルのサイズが閾値以上である場合には（ＯＰ３：ＮＯ）、要求判定部１２は、対象ファイルの送信端末３からの取得を行わないので、図４Ａに示される処理が終了する。
【００６６】
ＯＰ４では、要求判定部１２は、疑似要求生成部１３に疑似ファイル取得要求の生成を指示し、疑似要求生成部１３は、対象ファイルへの疑似ファイル取得要求を生成して送信端末３に送信する。先読み用セッションＣ２が確立されていない場合には、疑似要求生成部１３は、先読み用セッションＣ２を確立し、先読み用セッションＣ２を用いて疑似ファイル取得要求を送信端末３へ送信する。その後、該疑似ファイル取得要求に対して、送信端末３から対象ファイルのデータが送信され、送信側転送装置１は、該対象ファイルのデータを先読み用セッションＣ２を通じて受信する。次に処理がＯＰ５に進む。
【００６７】
ＯＰ５では、重複除去処理部１４は、受信された対象ファイルの部分データがキャッシュ１６内に保存されているか否かを判定する。該部分データがキャッシュ１６に保存されている場合には（ＯＰ５：ＹＥＳ）、処理がＯＰ６に進む。該部分データがキャッシュ１６に保存されていない場合には（ＯＰ５：ＮＯ）、処理がＯＰ７に進む。
【００６８】
ＯＰ６では、対象ファイルの部分データがキャッシュ１６に保存されているので、重複除去処理部１４は、先読み用セッションＣ２を流れるデータフロー中の該部分データをＩＤデータに置き換える。次に処理がＯＰ８に進む。
【００６９】
ＯＰ７では、対象ファイルの部分データがキャッシュ１６に保存されていないので、重複除去処理部１４は、該部分データをキャッシュ１６に格納する。次に処理がＯＰ８に進む。
【００７０】
ＯＰ８では、重複除去処理部１４は、部分データ又は部分データから置き換えられたＩＤデータを受信側転送装置２に送信する。次に処理がＯＰ９に進む。
【００７１】
ＯＰ９では、要求判定部１２は、先読み用セッションＣ２を通じて受信側転送装置２に対象ファイルを送信している最中に、ファイル転送用セッションＣ１を流れる受信端末４からのファイル取得要求を検出したか否かを判定する。ファイル転送用セッションＣ１を流れる受信端末４からファイル取得要求を検出した場合には（ＯＰ９：ＹＥＳ）、処理がＯＰ１０に進む。
【００７２】
ＯＰ１０では、要求判定部１２は、先読み用セッションＣ２での対象ファイルの送信を停止させ、その後、図４Ａ、図４Ｂに示される処理が終了する。なお、先読み用セッションＣ２は、対象ファイルの送信の停止とともに切断されてもよいし、所定時間維持されてもよい。
【００７３】
ＯＰ９において、ファイル転送用セッションＣ１を流れる受信端末４からのファイル取得要求が検出されない場合には（ＯＰ９：ＮＯ）、処理がＯＰ１１に進む。
【００７４】
ＯＰ１１では、要求判定部１２は、先読み用セッションＣ２での対象ファイルの送信が終了したか否かを判定する。対象ファイルの送信の終了は、例えば、先読み用セッションＣ２の未使用経過時間等によって検出される。先読み用セッションＣ２での対象ファイルの送信が終了した場合には（ＯＰ１１：ＹＥＳ）、図４Ａ、図４Ｂに示される処理が終了する。対象ファイルの送信が終了していない場合には（ＯＰ１１：ＮＯ）、処理がＯＰ８に戻り、該データの部分データ又はＩＤデータの受信側転送装置２への送信が継続される。
【００７５】
図５は、受信端末４からファイル属性参照要求が送信される場合の通信システム１００における処理のシーケンスの一例を示す図である。なお、図５において、対象となるサイズは、送信側転送装置１が有するファイルサイズの閾値よりもサイズの小さいファイルであるとする。また、図５に示される例では、ファイル属性参照要求の対象ファイルのデータは、送信側転送装置１及び受信側転送装置２のいずれのキャッシュにも保存されていないものとする。
【００７６】
Ｓ１１では、受信端末４は、ユーザからの選択操作の入力により、ファイル属性参照要求を送信端末３に送信する。該ファイル属性参照要求は、受信側転送装置２、送信側転送装置１によって転送され、送信端末３に届く。
【００７７】
Ｓ１２では、送信側転送装置１は、Ｓ１１において受信端末４から送信されたファイル属性参照要求を転送する際に、該ファイル属性参照要求を検出する（図４Ａ、ＯＰ１）。
【００７８】
Ｓ１３では、送信端末３は、受信端末４からのファイル属性参照要求を受信し、該ファイル属性参照要求に対して、対象ファイルのファイル属性情報を受信端末４に送信する。該ファイル属性参照要求は、送信転送側装置１、受信側転送装置２によって転送され、受信端末４に届く。
【００７９】
Ｓ１４では、送信側転送装置１は、Ｓ１３において送信端末３から送信されたファイル属性情報を検出し（図４Ａ、ＯＰ２）、対象ファイルへの疑似ファイル取得要求を生成する（図４Ａ、ＯＰ４）。Ｓ１５では、送信側転送装置１は、疑似ファイル取得要求を送信端末３に送信する。
【００８０】
Ｓ１６では、送信端末３は、送信側転送装置１から疑似ファイル取得要求を受信し、該疑似ファイル取得要求に対して、対象のファイルを送信する。なお、送信端末３にとっては、疑似ファイル取得要求は、対応するプロトコルにおける正当なファイル取得要求として見えている。
【００８１】
Ｓ１７では、送信側転送装置１は、送信端末３から対象ファイルのデータを受信し、重複除去処理を行う（図４Ａ、ＯＰ５）。図５に示される例では、対象ファイルのデータはキャッシュ１６に保存されていないので、Ｓ１８では、送信側転送装置１は、対象ファイルの部分データをキャッシュ１６に格納する（図４Ａ、ＯＰ７）。
【００８２】
Ｓ１９では、送信側転送装置１は、対象ファイルの部分データを受信側転送装置２に送信する（図４Ｂ、ＯＰ８）。Ｓ２０では、受信側転送装置２は、部分データを受信し、該部分データはキャッシュ２６に保存されていないので、該部分データをキャッシュ２６に格納する。
【００８３】
その後、対象ファイルの送信が終了するまで、Ｓ１６〜Ｓ２０の処理が繰り返し行われる。図５では、受信端末４からの対象ファイルへのファイル取得要求が発生しないまま、送信側転送装置１から受信側転送装置２への対象ファイルの送信が終了したとする。
【００８４】
Ｓ２１では、受信端末４は、対象のファイルに対するファイル取得要求を送信端末３に送信する。Ｓ２２では、送信端末３は、受信端末４からのファイル取得要求を受信し、対象のファイルのデータを送信する。
【００８５】
Ｓ２３では、送信側転送装置１に送信端末３から送信された対象ファイルのデータが届き、送信側転送装置１は、該データに対して、重複除去処理を行う。具体的には、送信側転送装置１は、該データを部分データに分割し、部分データがキャッシュ１６に保存されている場合には該部分データのＩＤデータを、部分データがキャッシュ１６に保存されていない場合には該部分データそのものを送信する。
【００８６】
Ｓ２４では、対象ファイルの部分データは送信側転送装置１のキャッシュ１６に保存されているので、送信側転送装置１は、各部分データのＩＤデータを送信する。
【００８７】
Ｓ２５では、受信側転送装置２は、部分データのＩＤデータを受信し、ＩＤデータに対応する部分データをキャッシュ２６から読み出して復元する。Ｓ２６では、受信側転送装置２は、対象ファイルのデータを受信端末４に送信する。
【００８８】
＜第１実施形態の作用効果＞
第１実施形態では、送信側転送装置１は、受信端末４からのファイル属性参照要求の転送を契機に、対象ファイルを送信端末３から取得し、受信側転送装置２に送信する。これによって、受信端末４からの対象ファイルのファイル取得要求の送信に先立って、送信側転送装置１及び受信側転送装置２のキャッシュに対象ファイルを保存することができる。また、受信端末４への対象ファイルへの転送履歴がない状態で、受信端末４から対象ファイルのファイル取得要求が送信された場合でも、送信側転送装置１は、部分データの代わりにＩＤデータを送信することができ、データ転送量を削減することができる。
【００８９】
また、送信側転送装置１は、送信端末３から、ファイル属性参照要求の対象ファイルに限定してファイルを取得するため、送信側転送装置１から受信側転送装置２へのデータ転送量を少なく抑えることができる。
【００９０】
また、送信側転送装置１及び受信側転送装置２のキャッシュには、ファイルではなく、部分データという小さいサイズのデータ列が保存される。例えば、対象のファイルが、送信側転送装置１及び受信側転送装置２のキャッシュに格納された後に、ファイル名の変更等の変更によりキャッシュに保存される対象ファイルとは異なるファイルとなる場合がある。このような場合でも、該変更後の対象ファイルに対して受信端末４からファイル取得要求が発生した場合には、部分データそのものが送信側転送装置１から転送されるのは、変更のあるファイル名の部分に相当する部分データに限定される。変更のあるファイル名の部分に相当する部分データ以外の部分データについては、ＩＤデータが送信される。したがって、実際に送信されるファイルに、送信側転送装置１と受信側転送装置２のキャッシュに保存されるファイルからの変更点がある場合でも、重複除去処理によって、送信側転送装置１と受信側転送装置２との間で転送されるデータ量を少なく抑えることができる。
【００９１】
また、送信側転送装置１は、先読み用セッションＣ２での対象ファイルの送信中に、ファイル転送用のセッションを流れる受信端末４からのファイル取得要求を検出した場合には、先読み用セッションＣ２での該対象ファイルの受信側転送装置２への送信を停止する（図４Ｂ、ＯＰ９、ＯＰ１０）。これによって、先読み用セッションＣ２における通信によるファイル転送用セッションＣ１における通信に対する影響を抑制することができる。また、この場合でも、受信端末４からのファイル取得要求が発生するまでに送信側転送装置１及び受信側転送装置２のキャッシュに格納された部分データについては、重複除去処理が行われるので、ファイル全体を転送する場合に比べてデータの転送量を削減することができる。
【００９２】
また、第１実施形態では、送信端末３と受信端末４との間のファイル転送用セッションＣ１とは別に、送信側転送装置１と受信側転送装置２との間の先読み用セッションＣ２が確立される。例えば、受信側転送装置２において、先読み用セッションＣ２での送信側転送装置１からの対象ファイルの受信の処理によって、ファイル転送用セッションＣ１での受信端末４のファイル取得要求の送信側転送装置１への転送の処理が妨げられることを抑制することができる。すなわち、受信端末４からのファイル取得要求の送信に先立って送信側転送装置１及び受信側転送装置２間のファイル転送による、送信端末３と受信端末４との間のＣＩＦＳのセッションに対する悪影響を抑制することができる。
【００９３】
また、第１実施形態では、送信側転送装置１は、所定の閾値未満のサイズのファイルに限定して、受信側転送装置２に送信する（図４Ａ、ＯＰ３）。サイズの大きいファイルを送信することによって、該ファイルの転送に時間が掛かったり、帯域を圧迫したり等の、送信端末３と受信端末４との間のＣＩＦＳのセッションに対する悪影響が及ぼされることが懸念されるためである。すなわち、送信側転送装置１が、所定の閾値未満のサイズのファイルに限定して、受信側転送装置２に送信することによって、送信端末３と受信端末４との間のＣＩＦＳのセッションに対する悪影響を抑制することができる。
【００９４】
また、第１実施形態は、送信側転送装置１は、送信端末３に対してファイル取得要求を送信することで、能動的にファイルを取得する。これによって、送信側転送装置１は、ファイル属性参照要求が発生した時点で最新のファイルを取得し、キャッシュに保存することができる。最新のファイルを取得することによって、受信端末４からファイル取得要求が送信されるまでに対象ファイルが変更される可能性が低くなり、より多くの部分データに重複除去処理が作用し、データ転送量がより多く削減されることとなる。
【００９５】
＜その他＞
第１実施形態では、送信側転送装置１と送信端末３、受信側転送装置２と受信端末４は、それぞれ独立した別個の装置として説明された。これに限られず、送信側転送装置１と送信端末３とは、１つの装置上で達成されてもよい。また、受信側転送装置２と受信端末４とは、１つの装置上で達成されてもよい。また、送信側転送装置１と受信側転送装置２とは、１つの装置上で達成されてもよい。
【００９６】
また、第１実施形態では、受信端末４からのファイル属性参照要求の転送を契機として、送信側転送装置１の、送信端末３からの対象のファイルの取得（図４Ａ、ＯＰ２）、対象ファイルのキャッシュへの保存（図４Ａ、ＯＰ７）、対象ファイルの受信側転送装置２への送信（図４Ｂ、ＯＰ８）、が行われる。送信側転送装置１のこれらの処理の契機は、受信端末４からのファイル属性参照要求の転送に限定されない。例えば、送信端末３と受信端末４との間のＣＩＦＳセッションが確立されたことを契機に、ファイル取得要求の対象となる可能性が高いファイルに対して、上記処理が行われてもよい。
【００９７】
ファイル取得要求の対象となる可能性が高いファイルは、例えば、ファイルに予め優先度を付与しておき、該優先度によって判定されるようにしてもよい。ファイルに付与される優先度は、例えば、ファイル取得要求の対象ファイルとなる回数や、ファイル名に「重要」等のキーワードが入っているか否か、更新日時の新しさ、ファイルの種類、等によって、設定される。
【００９８】
また、第１実施形態の図４ＡのＯＰ３では、ファイルサイズが閾値未満か否かが判定され、閾値未満のサイズのファイルが受信側転送装置２に送信される。どのファイルが受信側転送装置２に送信されるのか、を決定する判定基準は、ファイルサイズに限定されない。例えば、上述のファイル取得要求の対象となる可能性の高さが該判定基準とされてもよい。
【００９９】
＜記録媒体＞
コンピュータその他の機械、装置（以下、コンピュータ等）に上記いずれかの機能を実現させるプログラムをコンピュータ等が読み取り可能な記録媒体に記録することができる。コンピュータ等に、この記録媒体のプログラムを読み込ませて実行させることにより、その機能を提供させることができる。
【０１００】
ここで、コンピュータ等が読み取り可能な記録媒体とは、データやプログラム等の情報を電気的、磁気的、光学的、機械的、または化学的作用によって蓄積し、コンピュータ等から読み取ることができる非一時的な記録媒体をいう。このような記録媒体のうちコンピュータ等から取り外し可能なものとしては、例えばフレキシブルディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ／Ｗ、ＤＶＤ、ブルーレイディスク、ＤＡＴ、８ｍｍテープ、フラッシュメモリなどのメモリカード等がある。また、コンピュータ等に固定された記録媒体としてハードディスク、ＲＯＭ（Read Only Memory）等がある。さらに、ＳＳＤ（Solid State Drive）は、コンピュータ等から取り外し可能な記録媒体としても、コンピュータ等に固定された記録媒体としても利用可能である。
【符号の説明】
【０１０１】
１      送信側転送装置
２      受信側転送装置
３      送信端末
４      受信端末
１１、２１    中継処理部
１２    要求判定部
１３    疑似要求生成部
１４、２４    重複除去処理部
１５、２５    転送処理部
１６、２６    キャッシュ
１０１    ＣＰＵ
１０２    主記憶装置
１０５    補助記憶装置
Ｃ１      ファイル転送用セッション
Ｃ２      先読み用セッション
【図１】
2016132501.tif 000003
【図２】
2016132501.tif 000004
【図３】
2016132501.tif 000005
【図４Ａ】
2016132501.tif 000006
【図４Ｂ】
2016132501.tif 000007
【図５】
2016132501.tif 000008
【国際調査報告】
2016132501.tif 000009
2016132501.tif 000010