(57)【要約】【課題】圧縮予想時間と転送予想時間との合計時間を最短とするデータ転送装置、データ転送方法及びデータ転送プログラムを提供することを目的とする。【解決手段】データ転送装置であって、データの圧縮予想時間を圧縮レベル毎に算出する手段と、転送するデータの圧縮後の予想サイズから転送予想時間を圧縮レベル毎に算出する手段と、圧縮予想時間と一つ前のデータの転送予想時間とを圧縮レベル毎に比較し一つ前のデータの転送予想時間が転送するデータの圧縮予想時間よりも大きい場合に転送するデータの圧縮予想時間を一つ前のデータの転送予想時間とする手段と、転送するデータの圧縮予想時間と転送予想時間とを圧縮レベル毎に加算した予想時間が最も短い圧縮レベルを判定する手段と、データを判定された圧縮レベルで圧縮する手段と、データを転送先へ転送する転送手段とを有することにより上記課題を解決する。【選択図】  図３
2010141515.tif 000002
【特許請求の範囲】
【請求項１】
複数の圧縮レベルでデータを圧縮して転送可能なデータ転送装置であって、
複数の圧縮レベル毎にデータの圧縮率及び圧縮速度が登録された圧縮情報データベースから前記圧縮レベル毎にデータの圧縮速度を取得し、前記圧縮レベル毎のデータの圧縮速度に基づき、転送するデータの圧縮に掛かる予想時間を前記圧縮レベル毎に算出する圧縮予想時間算出手段と、
前記圧縮情報データベースから前記圧縮レベル毎にデータの圧縮率を取得し、前記圧縮レベル毎のデータの圧縮率に基づき、転送するデータの圧縮後の予想サイズを前記圧縮レベル毎に算出して、転送するデータの転送に掛かる予想時間を前記圧縮レベル毎に算出する転送予想時間算出手段と、
転送するデータの圧縮に掛かる予想時間と転送に掛かる予想時間とを前記圧縮レベル毎に加算し、加算された予想時間が最も短い前記圧縮レベルを判定する圧縮レベル判定手段と、
転送するデータを前記判定された前記圧縮レベルで圧縮する圧縮手段と、
転送するデータを転送先へ転送する転送手段と
を有するデータ転送装置。
【請求項２】
転送するデータの圧縮に掛かる予想時間と、一つ前のデータの転送に掛かる予想時間とを前記圧縮レベル毎に比較し、一つ前のデータの転送に掛かる予想時間が転送するデータの圧縮に掛かる予想時間よりも大きい場合に、転送するデータの圧縮に掛かる予想時間を一つ前のデータの転送に掛かる予想時間とする圧縮予想時間変更手段を更に有する請求項１記載のデータ転送装置。
【請求項３】
前記圧縮予想時間算出手段は、複数の圧縮レベル毎にデータの圧縮率と、圧縮処理を行うプロセッサの数に応じた圧縮速度とが登録された圧縮情報データベースから前記圧縮レベル及び前記プロセッサの数の組み合わせ毎にデータの圧縮速度を取得し、前記圧縮レベル及び前記プロセッサの数の組み合わせ毎に取得した圧縮速度に基づき、転送するデータの圧縮に掛かる予想時間を、前記圧縮レベル及び前記プロセッサの数の組み合わせ毎に算出し、
圧縮レベル判定手段は、前記転送するデータの圧縮に掛かる予想時間と転送に掛かる予想時間とを前記圧縮レベル及び前記プロセッサの数の組み合わせ毎に加算し、加算された予想時間が最も短い前記圧縮レベル及び前記プロセッサの数の組み合わせを判定し、
前記圧縮手段は、転送するデータを前記判定された圧縮レベルで前記判定された数のプロセッサにより圧縮する
請求項１記載のデータ転送装置。
【請求項４】
前記圧縮予想時間変更手段は、前記圧縮レベル及び前記プロセッサの数の組み合わせ毎に算出した転送するデータの圧縮に掛かる予想時間と、一つ前のデータの転送に掛かる予想時間とを、前記圧縮レベル及び前記プロセッサの数の組み合わせ毎に比較し、一つ前のデータの転送に掛かる予想時間が転送するデータの圧縮に掛かる予想時間よりも大きい場合に、転送するデータの圧縮に掛かる予想時間を一つ前のデータの転送に掛かる予想時間とする請求項２記載のデータ転送装置。
【請求項５】
複数の圧縮レベルでデータを圧縮して転送可能なデータ転送装置におけるデータ転送方法であって、
圧縮予想時間算出手段が、複数の圧縮レベル毎にデータの圧縮率及び圧縮速度が登録された圧縮情報データベースから前記圧縮レベル毎にデータの圧縮速度を取得し、前記圧縮レベル毎のデータの圧縮速度に基づき、転送するデータの圧縮に掛かる予想時間を前記圧縮レベル毎に算出するステップと、
転送予想時間算出手段が、前記圧縮情報データベースから前記圧縮レベル毎にデータの圧縮率を取得し、前記圧縮レベル毎のデータの圧縮率に基づき、転送するデータの圧縮後の予想サイズを前記圧縮レベル毎に算出して、転送するデータの転送に掛かる予想時間を前記圧縮レベル毎に算出するステップと、
圧縮レベル判定手段が、転送するデータの圧縮に掛かる予想時間と転送に掛かる予想時間とを前記圧縮レベル毎に加算し、加算された予想時間が最も短い前記圧縮レベルを判定するステップと、
圧縮手段が、転送するデータを前記判定された前記圧縮レベルで圧縮するステップと、
転送手段が、転送するデータを転送先へ転送するステップと
を有するデータ転送方法。
【請求項６】
複数の圧縮レベルでデータを圧縮して転送可能なデータ転送装置として利用されるコンピュータを、
複数の圧縮レベル毎にデータの圧縮率及び圧縮速度が登録された圧縮情報データベースから前記圧縮レベル毎にデータの圧縮速度を取得し、前記圧縮レベル毎のデータの圧縮速度に基づき、転送するデータの圧縮に掛かる予想時間を前記圧縮レベル毎に算出する圧縮予想時間算出手段と、
前記圧縮情報データベースから前記圧縮レベル毎にデータの圧縮率を取得し、前記圧縮レベル毎のデータの圧縮率に基づき、転送するデータの圧縮後の予想サイズを前記圧縮レベル毎に算出して、転送するデータの転送に掛かる予想時間を前記圧縮レベル毎に算出する転送予想時間算出手段と、
転送するデータの圧縮に掛かる予想時間と転送に掛かる予想時間とを前記圧縮レベル毎に加算し、加算された予想時間が最も短い前記圧縮レベルを判定する圧縮レベル判定手段と、
転送するデータを前記判定された前記圧縮レベルで圧縮する圧縮手段と、
転送するデータを転送先へ転送する転送手段と
して機能させる為のデータ転送プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ転送装置、データ転送方法及びデータ転送プログラムに係り、特に複数の圧縮レベルでデータを圧縮して転送可能なデータ転送装置、データ転送方法及びデータ転送プログラムに関する。
【背景技術】
【０００２】
大容量のデータを高速に転送するひとつの方法としては、転送前にデータを圧縮する方法が知られている。データの圧縮は、データの種類によって圧縮後のデータサイズが異なるが、例えばテキストデータやＣＡＤデータ等であれば１０分の１程度のサイズに圧縮できる。したがって、転送前にデータを圧縮する方法は、単純に計算すれば転送速度を１０倍にすることが可能である。
【０００３】
公知例としては、ユーザにより許容可能な待機時間を指定してもらいその時間内で実行可能な圧縮を行なうことで、圧縮と転送の効率化を行うことが知られている（例えば特許文献１参照）。また、公知例としては、圧縮後のデータの転送にかかる時間を予想し、設定された時間よりも長い場合に転送を行なうか中止するかの判断を問い合わせることが知られている（例えば特許文献２参照）。上述した公知例は、対象とするデータの種類が画像もしくは映像であるため圧縮の度合いをかなり高くしてデータを小さくすることが可能であるという特徴がある。
【０００４】
また、近年の公知例では、データの転送処理と圧縮処理を同時に行なうことで転送の高速化を実現し、又は、圧縮処理と転送処理とが同程度の処理時間になるように制御することで、より効率の良い転送を実現している（例えば特許文献３参照）。
【特許文献１】特開２００７−２８６４６号公報
【特許文献２】特開平１０−１３６１８９号公報
【特許文献３】特開２００２−１１２２５７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上記の公知例は対象とするデータの種類が映像（映像データ）であるものが多い。映像データの圧縮は不可逆圧縮であるため、映像の品質を落とせば圧縮率を上げることが可能である。これに対して一般的なデータの圧縮は可逆圧縮であるので、圧縮率に限界が存在する。
【０００６】
さらに、近年では、マルチコアやマルチＣＰＵのように１台のパソコンの中に複数のプロセッサが搭載される例が増えている。転送処理はネットワークの太さ（転送速度）に依存してしまうため、プロセッサ数による高速化は期待できない。しかし、圧縮処理は複数のプロセッサをうまく活用することで高速化が可能になってくる。
【０００７】
本発明の一実施形態は、上記の点に鑑みなされたもので、圧縮予想時間と転送予想時間との合計時間を最短とするデータ転送装置、データ転送方法及びデータ転送プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するため、本発明の一実施形態は、複数の圧縮レベルでデータを圧縮して転送可能なデータ転送装置であって、複数の圧縮レベル毎にデータの圧縮率及び圧縮速度が登録された圧縮情報データベースから前記圧縮レベル毎にデータの圧縮速度を取得し、前記圧縮レベル毎のデータの圧縮速度に基づき、転送するデータの圧縮に掛かる予想時間を前記圧縮レベル毎に算出する圧縮予想時間算出手段と、前記圧縮情報データベースから前記圧縮レベル毎にデータの圧縮率を取得し、前記圧縮レベル毎のデータの圧縮率に基づき、転送するデータの圧縮後の予想サイズを前記圧縮レベル毎に算出して、転送するデータの転送に掛かる予想時間を前記圧縮レベル毎に算出する転送予想時間算出手段と、転送するデータの圧縮に掛かる予想時間と転送に掛かる予想時間とを前記圧縮レベル毎に加算し、加算された予想時間が最も短い前記圧縮レベルを判定する圧縮レベル判定手段と、転送するデータを前記判定された前記圧縮レベルで圧縮する圧縮手段と、転送するデータを転送先へ転送する転送手段とを有することを特徴とする。
【０００９】
なお、本発明の一実施形態の構成要素、表現または構成要素の任意の組合せを、方法、装置、システム、コンピュータプログラム、記録媒体、データ構造などに適用したものも本発明の態様として有効である。
【発明の効果】
【００１０】
上述の如く、本発明の一実施形態によれば、圧縮予想時間と転送予想時間との合計時間を最短とすることができる。
【発明を実施するための最良の形態】
【００１１】
次に、本発明を実施するための最良の形態を、以下の実施例に基づき図面を参照しつつ説明していく。
【００１２】
本実施例のデータ転送システムは、データの圧縮，暗号化及び転送の並行処理機能を有している。本実施例のデータ転送システムを構成するデータ転送装置は、一つ以上のＣＰＵ（プロセッサ）を持ち、圧縮，暗号化及び転送処理を効率よくスケジューリングするものである。
【００１３】
本実施例のデータ転送システムは、大容量のデータを遠隔地間で転送する際に、複数のプロセッサを持つデータ転送装置において、データの圧縮処理、暗号化処理、転送処理を効率的に並列化することで、これらの処理の待ち時間の発生を抑え、転送速度の高速化を実現する。
【００１４】
本実施例のデータ転送システムは、別々に行われる圧縮，暗号化及び転送処理を一緒に考え、圧縮，暗号化及び転送処理に掛かる合計時間が最短とするものである。例えば従来のデータ転送システムでは、圧縮，暗号化及び転送処理を別々に考えていた為、必ずしも圧縮，暗号化及び転送処理に掛かる合計時間が最短になっていなかった。
【００１５】
図１は本実施例のデータ転送システムの構成図である。データ転送システムは、データ転送装置１とデータ受信装置２とが、データ転送可能なネットワーク３を介して接続されている。データ転送システムは、データをデータ転送装置１からデータ受信装置２へ転送する際に、複数のプロセッサを持つデータ転送装置１において、データの圧縮処理、暗号化処理、転送処理を効率的に並列化することで、データの圧縮処理、暗号化処理、転送処理の待ち時間の発生を抑え、転送速度の高速化を実現する。
【００１６】
データ転送装置１は例えば図２に示すようなハードウェア構成により実現される。図２はデータ転送装置の一例のハードウェア構成図である。図２のデータ転送装置１は、それぞれバスＢで相互に接続されている入力装置１１，出力装置１２，ドライブ装置１３，補助記憶装置１４，主記憶装置１５，１つ以上の演算処理装置１６−１〜１６−ｎ及びインターフェース装置１７を有するように構成される。
【００１７】
入力装置１１はキーボードやマウスなどで構成され、各種信号を入力するために用いられる。出力装置１２はディスプレイ装置などで構成され、各種ウインドウやデータ等を表示するために用いられる。インターフェース装置１７は、モデム，ＬＡＮカードなどで構成されており、ネットワーク３に接続する為に用いられる。
【００１８】
本実施例のデータ転送プログラムは、データ転送装置１を制御する各種プログラムの少なくとも一部である。データ転送プログラムは例えば記録媒体１８の配布やネットワーク３からのダウンロードなどによって提供される。
【００１９】
データ転送プログラムを記録した記録媒体１８は、ＣＤ−ＲＯＭ、フレキシブルディスク、光磁気ディスク等の様に情報を光学的，電気的或いは磁気的に記録する記録媒体、ＲＯＭ、フラッシュメモリ等の様に情報を電気的に記録する半導体メモリ等、様々なタイプの記録媒体を用いることができる。
【００２０】
また、データ転送プログラムを記録した記録媒体１８がドライブ装置１３にセットされると、データ転送プログラムは記録媒体１８からドライブ装置１３を介して補助記憶装置１４にインストールされる。ネットワーク３からダウンロードされたデータ転送プログラムは、インターフェース装置１７を介して補助記憶装置１４にインストールされる。
【００２１】
補助記憶装置１４はインストールされたデータ転送プログラムを格納すると共に、必要なファイル，データ等を格納する。主記憶装置１５は、コンピュータの起動時やユーザからの起動要求があった時に、補助記憶装置１４からデータ転送プログラムを読み出して格納する。そして、１つ以上の演算処理装置１６−１〜１６−ｎは主記憶装置１５に格納されたデータ転送プログラムに従って、後述するような各種処理を実現している。
【００２２】
なお、１つ以上の演算処理装置１６−１〜１６−ｎを総称する場合は、単に演算処理装置１６という。データ転送プログラムは図２に示すデータ転送装置１のハードウェア資源を用いた情報処理により、図３に示すような処理ブロックを実現する。図３はデータ転送装置の一例の処理ブロック構成図である。図３のデータ転送装置１は、記憶部３１，圧縮部３２，暗号化部３３，判定部３４，予想部３５，データベース（ＤＢ）３６，転送部３７及び計測部３８を有する構成である。
【００２３】
記憶部３１はデータ受信装置２へ転送するデータ等を記憶している。圧縮部３２は１つ以上の演算処理装置１６を用いて、圧縮レベルに応じた圧縮処理を行う。暗号化部３３は１つ以上の演算処理装置１６を用いて暗号化処理を行う。判定部３４は圧縮処理，暗号化処理，転送処理に掛かる時間が最も短くなるように、圧縮レベルを判定する。なお、圧縮レベルを判定する処理の詳細は後述する。
【００２４】
予想部３５はＤＢ３６に格納されている圧縮情報テーブルを用いて、圧縮処理，暗号化処理，転送処理に掛かる時間を予想するものである。なお、圧縮情報テーブルの詳細は後述する。転送部３７は判定部３４が判定した圧縮レベルで圧縮されたデータをデータ受信装置２へ転送する。計測部３８はデータ受信装置２へデータを転送したとき、使用した回線の現在の転送速度を計測し、予想部３５に通知する。次に、データ転送装置１の処理について説明する。
【００２５】
（一個のデータの場合）
ここでは、送信するデータが１７．３ＭＢのＣＡＤデータである例を示す。圧縮アルゴリズムにはＬＺＭＡアルゴリズムを用いる。圧縮レベルは、圧縮なしの「０」から最も圧縮率が高い「５」まである。送信するデータを圧縮レベル「５」で圧縮すると、例えば１７．３ＭＢのＣＡＤデータは５．４ＭＢに圧縮される。圧縮処理に掛かった時間は２０秒とする。同様に、送信するデータを圧縮レベル「１」で圧縮すると、例えば１７．３ＭＢのＣＡＤデータは７．３ＭＢに圧縮される。圧縮処理に掛かった時間は７秒とする。
【００２６】
圧縮後のデータサイズだけで比較すれば、圧縮レベルは高い方がよい。しかし、圧縮処理により減らすことができた転送処理に掛かる時間（転送時間）と比較して、圧縮処理に掛かる時間（圧縮時間）が大きくなってしまっては意味がない。
【００２７】
例えば、使用する回線の転送速度が１Ｍｂｐｓの場合、無圧縮の１７．３ＭＢのＣＡＤデータを転送するのに掛かる時間は１３８．９秒である。また、圧縮レベル「５」の場合にはＣＡＤデータのデータサイズが５．４ＭＢになるので、圧縮後のＣＡＤデータを転送するのに掛かる時間は４３．７秒である。同様に、圧縮レベル「１」の場合には、ＣＡＤデータのデータサイズが７．３ＭＢになるので、圧縮後のＣＡＤデータを転送するのに掛かる時間は５９．２秒である。
【００２８】
圧縮レベル「０」の場合、圧縮処理及び転送処理に掛かる時間は、転送時間１３９．９秒に圧縮時間０秒を加算した１３８．９秒となる。圧縮レベル「５」の場合、圧縮処理及び転送処理に掛かる時間は、転送時間４３．７秒に圧縮時間２０秒を加算した６３．７秒となる。また、圧縮レベル「１」の場合、圧縮処理及び転送処理に掛かる時間は、転送時間５９．２秒に圧縮時間７秒を加算した６６．２秒となる。
【００２９】
つまり、圧縮処理及び転送処理に掛かる時間は、圧縮レベル「５」の場合に最も短くなることが分かる。このように、転送速度が１Ｍｂｐｓの回線の場合は圧縮レベル「５」にするのがよい。
【００３０】
次に、使用する回線の転送速度が１０Ｍｂｐｓの場合を考える。使用する回線の転送速度が１０Ｍｂｐｓの場合、無圧縮の１７．３ＭＢのＣＡＤデータを転送するのに掛かる時間は１３．９秒である。また、圧縮レベル「５」の場合にはＣＡＤデータのデータサイズが５．４ＭＢになるので、圧縮後のＣＡＤデータを転送するのに掛かる時間は４．４秒である。同様に、圧縮レベル「１」の場合には、ＣＡＤデータのデータサイズが７．３ＭＢになるので、圧縮後のＣＡＤデータを転送するのに掛かる時間は５．９秒である。
【００３１】
圧縮レベル「０」の場合、圧縮処理及び転送処理に掛かる時間は、転送時間１３．９秒に圧縮時間０秒を加算した１３．９秒となる。また、圧縮レベル「５」の場合、圧縮処理及び転送処理に掛かる時間は、転送時間４．４秒に圧縮時間２０秒を加算した２４．４秒となる。また、圧縮レベル「１」の場合、圧縮処理及び転送処理に掛かる時間は、転送時間５．９秒に圧縮時間７秒を加算した１２．９秒となる。
【００３２】
つまり、圧縮処理及び転送処理に掛かる時間は圧縮レベル「１」の場合に最も短くなることが分かる。このように、転送速度が１０Ｍｂｐｓの回線の場合は圧縮レベル「１」にするのがよい。
【００３３】
本実施例のデータ転送システムでは、圧縮レベル毎に、圧縮処理及び転送処理に掛かる時間を算出し、圧縮処理及び転送処理に掛かる時間が最も短くなる圧縮レベルを選択することで、どの圧縮レベルで圧縮するのが最も効率的であるかを決定している。
【００３４】
圧縮レベルをＬ、ＣＡＤデータのデータサイズをＶ、圧縮時間をＣ（Ｌ，Ｖ）、圧縮後のデータサイズをＳ（Ｌ，Ｖ）、転送時間をＴ（Ｓ（Ｌ，Ｖ））とした場合、本実施例のデータ転送システムはＣＡＤデータを転送する前にＣ（Ｌ，Ｖ）＋Ｔ（Ｓ（Ｌ，Ｖ））が最小となるＬを求めて、その圧縮レベルＬでＣＡＤデータを圧縮してから転送するものである。
【００３５】
（複数個のデータの場合）
従来、転送の対象が複数個のデータの場合は、例えばＡというデータ（以下、単にＡという）が圧縮され、転送されたあとにＢというデータ（以下、単にＢという）が転送される時、Ａが転送されている間にＢが圧縮される。
【００３６】
ＡがＢに比べて大きなサイズであった場合は、Ｂの圧縮時間に無駄ができる。逆にＡがＢに比べて小さなサイズであった場合は、Ｂの圧縮時間の方が長くなってしまうという問題があった。そこで、本実施例のデータ転送システムは以下のように問題を解決する。
【００３７】
画像データと違い、テキストファイルやアプリケーションファイルなどのように複数個のデータを順次転送する場合は、圧縮処理と転送処理とを並列に行い、すべてのデータを転送し終わるまでの時間を最適化しようとすると、各データについて圧縮処理にかけられる時間が制限される。
【００３８】
例えばＡ，Ｂ，Ｃ，・・・というファイル（以下、単にＡ，Ｂ，Ｃ，・・・という）をＡ，Ｂ，Ｃ，・・・という順番で転送する場合、最初のＡは上記した一個のデータの場合の方法で最適な圧縮レベルＬAを判定し、その圧縮レベルＬAでデータを圧縮してから転送すればよい。
【００３９】
次のＢはＡを転送している間に圧縮処理を行う必要がある。Ａが小さいデータである場合は転送時間ｔが短いため、Ｂの圧縮処理に掛けられる時間ｔ以内で圧縮できる最適な圧縮レベルＬＢを判定する必要がある。しかしながら、実際には圧縮処理の効率が良い場合に時間ｔ以上の時間を掛けて圧縮処理をしてからデータを転送した方が効率の良い場合も存在する。
【００４０】
図４は複数個のデータを転送するときの１つ前のデータの転送処理と現在のデータの圧縮処理との関係を表した模式図である。図４（Ａ）は、１つ前のデータであるＡの転送時間ｔ以内で圧縮できる最適な圧縮レベルＬＢを判定し、その圧縮レベルＬＢでＢを圧縮した様子を表している。図４（Ａ）の場合は、Ｂの圧縮処理がＡの転送時間ｔよりも短いため、Ａの転送処理が終了したあと、直ちにＢの転送処理を開始できる。
【００４１】
一方、図４（Ｂ）は、１つ前のデータであるＡの転送時間ｔ以上の時間を掛けて圧縮する最適な圧縮レベルＬＢを判定し、その圧縮レベルＬＢでＢを圧縮して転送する様子を表している。図４（Ｂ）の場合は、Ｂの圧縮処理がＡの転送時間ｔよりも長いため、Ａの転送処理が終了したあと、直ちにＢの転送処理を開始できない。しかし、図４（Ｂ）の場合はＢの圧縮処理の効率が良く、Ｂのデータサイズが図４（Ａ）と比較して小さくなったため、図４（Ａ）よりも速くＢの転送処理が終了している。
【００４２】
以下では一例として転送速度が２０Ｍｂｐｓの回線で２つのデータを転送する場合を考える。データ転送装置１は１つ目のデータの転送処理中に、データサイズが１７．３ＭＢの２つ目のデータを圧縮し、１つ目のデータの転送処理と２つ目のデータの圧縮処理とが両方終了した後、２つ目のデータの転送処理を開始するものとする。
【００４３】
図５は１つ目のデータの転送時間と、１つ目のデータの転送処理を開始してから２つ目のデータの転送処理が終了するまでの時間との対応を示したグラフ図である。図５のグラフ図は横軸として１つ目のデータの転送時間０秒〜１５秒を取り、縦軸として１つ目のデータの転送処理を開始してから２つ目のデータの転送処理が終了するまでの時間を圧縮レベル毎に表している。
【００４４】
図５から分かるように、１つ目のデータの転送時間が０秒〜２秒の場合は２つ目のデータを圧縮しない方が転送時間を短くできる。また、１つ目のデータの転送時間が２秒〜９秒の場合は２つ目のデータを圧縮レベル「１」で圧縮した方が転送時間を短くできる。さらに、１つ目のデータの転送時間が９秒以上の場合は、ほとんど差はないが、２つ目のデータを圧縮レベル「３」で圧縮した方が転送時間を短くできる。
【００４５】
１つ目のデータのデータサイズがＶ1である時、圧縮レベルＬ1，Ｌ2，Ｌ3，・・・，Ｌnについて、１つ目のデータの転送前に、以下の式（１）の値を最小化する圧縮レベルＬを求めて、その圧縮レベルＬで１つ目のデータの圧縮処理を行う。
【００４６】
【数１】
2010141515.tif 000003
【００４７】
このときの１つ目のデータの圧縮レベルをＬ’1としておく。２つ目以降のデータについてｍ個目に転送するデータのサイズがＶmである時には、各圧縮レベルＬ1，Ｌ2，Ｌ3，・・・，Ｌnについて、以下の式（２）の値を最小化する圧縮レベルＬを求めて、その圧縮レベルＬでｍ個目のデータの圧縮処理を行う。
【００４８】
【数２】
2010141515.tif 000004
【００４９】
もし、転送するデータの数とデータサイズが転送を開始する前にすべてわかっているならば、以下の式（３）の値を最小化する各圧縮レベルＬ1，Ｌ2，Ｌ3，・・・，Ｌnの値を全て求めてからデータの転送を開始することも可能である。
【００５０】
【数３】
2010141515.tif 000005
【００５１】
（学習）
前述の式において、Ｃ（Ｌ，Ｖ）、Ｓ（Ｌ，Ｖ）、Ｔ（Ｓ（Ｌ，Ｖ））の値を転送時に求めることは困難である。例えばデータの転送時間は、データサイズに比例する為に回線の転送速度及びデータサイズから求めることができる。しかしながら、圧縮後のデータサイズや圧縮時間は圧縮処理をやってみないと分からない。
【００５２】
例えば圧縮時間及び圧縮率はデータの一部分を圧縮して求める方法も考えられる。しかしながら、圧縮時間及び圧縮率はデータの種類によりほぼ決定されるため、予めデータの種類ごとに圧縮時間及び圧縮率をデータベース３６の圧縮情報テーブルに持っておき、値が必要な時にデータベース３６の圧縮情報テーブルから圧縮時間及び圧縮率を取得することとした。
【００５３】
例えばデータの種類の違いにより圧縮効率は図６に示す違いがある。図６はデータの種類による圧縮効率の違いを表した説明図である。データベース３６の圧縮情報テーブルには例えばデータ名の拡張子などで分類される各データの種類毎に、単位サイズ（例えば１ＭＢ）のデータの圧縮時間と圧縮後のデータサイズとを記録しておく。
【００５４】
サイズの違うデータの場合は、圧縮情報テーブルの単位サイズのデータの圧縮時間と圧縮後のデータサイズとを乗算することで、データの圧縮時間と圧縮後のデータサイズとを算出する。なお、データの圧縮時間はＰＣのスペックに依存する。また、データの圧縮時間は同じ拡張子のデータでも、それを作成したアプリケーションによって変化がある。
【００５５】
このため、データ転送装置１は、データを圧縮する度に、その圧縮の結果を平均値として圧縮情報テーブルを更新する。また、回線の転送速度についても一定でないことが多いため、データ転送装置１はデータを転送する度に現在の回線の転送速度を求めて、それを利用する。
【００５６】
（マルチプロセッサの場合）
近年、データ転送装置１では複数のプロセッサを同時に利用可能なマルチプロセッサ環境が一般的になってきた。このような複数のプロセッサを使って圧縮処理を行なうことにより、データ転送装置１では、圧縮時間が図７に示すように短くなる。図７はプロセッサ数による圧縮時間の違いを表した説明図である。複数のプロセッサを使って圧縮処理を行うことにより圧縮時間が短くなるため、上記の最適な圧縮レベルを求める際や学習の際には利用可能なプロセッサ数を考慮に入れる必要がある。
【００５７】
１つ目のデータのデータサイズがＶ1である時、利用可能なプロセッサ数Ｎ1，Ｎ2，Ｎ3，・・・，Ｎn、圧縮レベルＬ1，Ｌ2，Ｌ3，・・・，Ｌnについて、１つ目のデータの転送前に、以下の式（４）の値を最小化する圧縮レベルＬ及びプロセッサ数Ｎを求めて、その圧縮レベルＬ及びプロセッサ数Ｎで１つ目のデータの圧縮処理を行う。
【００５８】
【数４】
2010141515.tif 000006
【００５９】
このときの１つ目のデータの圧縮レベルをＬ’1とし、１つ目のデータの圧縮に用いたプロセッサ数をＮ’1としておく。２つ目以降のデータについてｍ個目に転送するデータのサイズがＶmである時には、利用可能なプロセッサ数Ｎ1，Ｎ2，Ｎ3，・・・，Ｎn、圧縮レベルＬ1，Ｌ2，Ｌ3，・・・，Ｌnについて、以下の式（５）の値を最小化する圧縮レベルＬ及びプロセッサ数Ｎを求めて、その圧縮レベルＬ及びプロセッサ数Ｎでｍ個目のデータの圧縮処理を行う。
【００６０】
【数５】
2010141515.tif 000007
【００６１】
（暗号化）
データを安全に転送するためには、データを転送前に暗号化することが重要である。プロセッサ数が２個以上ある場合は、圧縮処理と暗号化処理と転送処理とが並列に処理可能であり、圧縮処理と暗号化処理と転送処理とのバランスをとった圧縮レベルの調整が必要になる。圧縮処理と暗号化処理と転送処理とを並列に行なう場合には図８に示すように圧縮処理と暗号化処理と転送処理とが同時に行われる。図８は圧縮処理と暗号化処理と転送処理との並列化を表した模式図である。
【００６２】
暗号化には特にレベルは存在しないので、暗号化処理を行なうプロセッサ数をＭ、暗号化処理に掛かる時間（暗号化時間）をＥ（Ｖ，Ｍ）、暗号化後のデータサイズをＳ2（Ｖ）とした時、１つ目のデータの場合には、以下の式（６）の値を最小とするＬとＮとＭの値を求める。
【００６３】
【数６】
2010141515.tif 000008
【００６４】
この時の１つ目のデータの暗号化に用いたプロセッサ数をＭ’1としておく。２つ目のデータの場合には、図８に示すように、２つ目のデータの圧縮時にも転送しているデータが存在しないので以下の式（７）の値を最小とするＬとＮとＭの値を求める。
【００６５】
【数７】
2010141515.tif 000009
【００６６】
３つ目以降のデータの場合には、以下の式（８）の値を最小とするＬとＮとＭの値を求める。
【００６７】
【数８】
2010141515.tif 000010
【００６８】
なお、データ転送装置１は圧縮時間と同様に暗号化時間についても学習を行ない、精度を高めることが可能である。暗号化処理以外に並列化できる処理がある場合には上記した式（６）〜（８）を同様に変更し、最適な圧縮レベルを求めることで、データの転送時間を短縮することができる。
【００６９】
（データ転送装置１の処理手順）
以下では、データ転送装置１の処理手順について１つ目のデータを送信する場合と２つ目以降のデータを送信する場合とに分けてフローチャートを参照しつつ説明する。図９は１つ目のデータを送信する場合の処理手順を表したフローチャートである。
【００７０】
ステップＳ１に進み、データ転送装置１の予想部３５は送信するデータのデータサイズＶを取得すると共に、送信するデータの種類をデータ名の拡張子から判別する。ステップＳ２に進み、予想部３５は送信するデータの種類（拡張子）に応じてＤＢ３６から後述するような圧縮情報テーブルの取得を試みる。
【００７１】
ＤＢ３６に送信するデータの種類に応じた圧縮情報テーブルが無ければ、予想部３５はステップＳ３に進み、送信するデータの一部又は全部を圧縮レベルＬ1，Ｌ2，Ｌ3，・・・，Ｌnで圧縮し、得られた情報（圧縮速度、圧縮率）から圧縮情報テーブルを作成してＤＢ３６に登録したあと、ステップＳ２に戻る。
【００７２】
ＤＢ３６に送信するデータの種類に応じた圧縮情報テーブルが有れば、予想部３５は送信するデータの種類に応じた圧縮情報テーブルを取得し、ステップＳ４へ進む。ステップＳ４では、使用する回線の転送速度を計測する為の小さいデータを複数個、転送部３７からデータ受信装置２へ送信させる。データ受信装置２は使用する回線の転送速度を計測する為の小さいデータを受信すると、その小さいデータの受信時間をデータ転送装置１へ通知する。
【００７３】
小さいデータの受信時間がデータ受信装置２から通知されると、計測部３８はステップＳ５に進み、小さいデータの送信時間及び受信時間から、使用する回線の転送速度を逆算する。なお、使用する回線の転送速度が指定されている場合はステップＳ４，Ｓ５の処理を省略してもよい。
【００７４】
ステップＳ６に進み、予想部３５は取得した圧縮情報テーブルを用いて圧縮処理や暗号化処理等の転送準備に掛かる時間と転送処理に掛かる時間との合計時間を予想する。判定部３４は、圧縮処理や暗号化処理等の転送準備に掛かる時間と転送処理に掛かる時間との合計時間が最も短くなる最も効率的な圧縮レベルを判定し、その圧縮レベルで圧縮処理や暗号化処理等の転送準備を圧縮部３２や暗号化部３３に行わせる判定処理を行う。
【００７５】
本実施例における判定処理は、圧縮処理や暗号化処理等の転送準備に掛かる時間と転送処理に掛かる時間とに比べて無視できるほど小さいものとする。ステップＳ６に続いてステップＳ７に進み、判定部３４は転送準備の終わったデータを転送部３７からデータ受信装置２へ送信させる。
【００７６】
したがって、データ転送装置１は一つのデータの転送に係わる処理時間が最短になるように最適化がなされる。
【００７７】
ステップＳ６の判定処理の詳細を、標準的な場合，プロセッサが複数個ある場合，プロセッサが複数個あり、且つ暗号化する場合に分けて説明する。図１０は標準的な場合の判定処理手順を表したフローチャートである。図１０のフローチャートでは、図１１に示すような圧縮情報テーブルを利用する。
【００７８】
図１１は標準的な場合の判定処理で利用する圧縮情報テーブルの構成図である。図１１の圧縮情報テーブルは、データの種類及び圧縮レベルの組み合わせ毎に、圧縮速度と圧縮率とが登録されている。
【００７９】
図１０のステップＳ１１に進み、予想部３５は図１１の圧縮情報テーブルを利用することにより、圧縮レベルＬ1，Ｌ2，Ｌ3，・・・，Ｌnについて、送信するデータの圧縮処理に掛かる予想時間（圧縮予想時間）Ｃ1，Ｃ2，Ｃ3，・・・，Ｃnを求める。
【００８０】
ステップＳ１２に進み、予想部３５は圧縮情報テーブルを利用することにより、圧縮レベルＬ1，Ｌ2，Ｌ3，・・・，Ｌnについて、圧縮後のデータサイズでの転送処理に掛かる予想時間（転送予想時間）Ｔ1，Ｔ2，Ｔ3，・・・，Ｔnを求める。
【００８１】
ステップＳ１３に進み、判定部３４は圧縮予想時間Ｃ1，Ｃ2，Ｃ3，・・・，Ｃnと転送予想時間Ｔ1，Ｔ2，Ｔ3，・・・，Ｔnとを圧縮レベル毎に加算し、加算した値が最も小さい圧縮レベルＬmを求める。ステップＳ１４に進み、圧縮部３２は判定部３４が求めた圧縮レベルＬmで、送信するデータを圧縮する。
【００８２】
したがって、本実施例のデータ転送システムは、一つのプロセッサを持つデータ転送装置１において、データの圧縮処理、転送処理を効率的に並列化することで、これらの処理の待ち時間の発生を抑え、転送速度の高速化を実現できる。
【００８３】
また、図１２はプロセッサが複数個ある場合の判定処理手順を表したフローチャートである。図１２のフローチャートでは図１３に示すような圧縮情報テーブルを利用する。
【００８４】
図１３はプロセッサが複数個ある場合の判定処理で利用する圧縮情報テーブルの構成図である。図１３の圧縮情報テーブルは、データの種類及び圧縮レベルの組み合わせ毎に圧縮率が登録されていると共に、データの種類，圧縮レベル及びプロセッサ数の組み合わせ毎に圧縮速度が登録されている。
【００８５】
図１２のステップＳ２１に進み、予想部３５は図１３の圧縮情報テーブルを利用することにより、圧縮レベルＬ1，Ｌ2，Ｌ3，・・・，Ｌnと、利用可能なプロセッサ数Ｎ1，Ｎ2，Ｎ3，・・・，Ｎpとの組み合わせ毎に、送信するデータの圧縮処理に掛かる予想時間（圧縮予想時間）Ｃ11，Ｃ12，・・・，Ｃnp-1，Ｃnpを求める。
【００８６】
ステップＳ２２に進み、予想部３５は圧縮情報テーブルを利用することにより、圧縮レベルＬ1，Ｌ2，Ｌ3，・・・，Ｌnについて、圧縮後のデータサイズでの転送処理に掛かる予想時間（転送予想時間）Ｔ1，Ｔ2，Ｔ3，・・・，Ｔnを求める。
【００８７】
ステップＳ２３に進み、判定部３４は圧縮予想時間Ｃ11，Ｃ12，・・・，Ｃnp-1，Ｃnpと転送予想時間Ｔ1，Ｔ2，Ｔ3，・・・，Ｔnとを圧縮レベル毎に加算し、加算した値が最も小さい圧縮レベルＬmとプロセッサ数Ｎqとの組み合わせを求める。ステップＳ２４に進み、圧縮部３２は判定部３４が求めた圧縮レベルＬmとプロセッサ数Ｎqとで、送信するデータを圧縮する。
【００８８】
したがって、本実施例のデータ転送システムは、複数のプロセッサを持つデータ転送装置１において、データの圧縮処理、転送処理を効率的に並列化することで、これらの処理の待ち時間の発生を抑え、転送速度の高速化を実現できる。
【００８９】
また、図１４はプロセッサが複数個あり、且つ暗号化する場合の判定処理手順を表したフローチャートである。図１４のフローチャートでは図１５に示すような圧縮情報テーブルを利用する。
【００９０】
図１５はプロセッサが複数個あり、且つ暗号化する場合の判定処理で利用する圧縮情報テーブルの構成図である。図１５の圧縮情報テーブルはデータの種類及び圧縮レベルの組み合わせ毎に圧縮率が登録されていると共に、データの種類，圧縮レベル及びプロセッサ数の組み合わせ毎に圧縮速度及び暗号化速度が登録されている。
【００９１】
図１４のステップＳ３１に進み、予想部３５は図１５の圧縮情報テーブルを利用することにより、圧縮レベルＬ1，Ｌ2，Ｌ3，・・・，Ｌnと、利用可能なプロセッサ数Ｎ1，Ｎ2，Ｎ3，・・・，Ｎpとの組み合わせ毎に、送信するデータの圧縮処理に掛かる予想時間（圧縮予想時間）Ｃ11，Ｃ12，・・・，Ｃnp-1，Ｃnpを求める。
【００９２】
また、ステップＳ３２に進み、予想部３５は図１５の圧縮情報テーブルを利用することにより、圧縮レベルＬ1，Ｌ2，Ｌ3，・・・，Ｌnと、暗号化処理を行うプロセッサ数Ｍ1，Ｍ2，Ｍ3，・・・，Ｍkとの組み合わせ毎に、送信するデータの暗号化処理に掛かる予想時間（暗号予想時間）Ｅ11，Ｅ12，・・・，Ｅnk-1，Ｅnkを求める。
【００９３】
ステップＳ３３に進み、予想部３５は圧縮情報テーブルを利用することにより、圧縮レベルＬ1，Ｌ2，Ｌ3，・・・，Ｌnについて、圧縮後のデータサイズでの転送処理に掛かる予想時間（転送予想時間）Ｔ1，Ｔ2，Ｔ3，・・・，Ｔnを求める。
【００９４】
ステップＳ３４に進み、判定部３４は圧縮予想時間Ｃ11，Ｃ12，・・・，Ｃnp-1，Ｃnpと暗号予想時間Ｅ11，Ｅ12，・・・，Ｅnk-1，Ｅnkと転送予想時間Ｔ1，Ｔ2，Ｔ3，・・・，Ｔnとを圧縮レベル毎に加算し、加算した値が最も小さい圧縮レベルＬmとプロセッサ数Ｎq，Ｍiとの組み合わせを求める。ステップＳ３５に進み、圧縮部３２は判定部３４が求めた圧縮レベルＬmとプロセッサ数Ｎq，Ｍiとで、送信するデータを圧縮する。ステップＳ３６に進み、暗号化部３３はプロセッサ数Ｍiで、送信するデータを暗号化する。
【００９５】
したがって、本実施例のデータ転送システムは、複数のプロセッサを持つデータ転送装置において、データの圧縮処理、暗号化処理、転送処理を効率的に並列化することで、これらの処理の待ち時間の発生を抑え、転送速度の高速化を実現できる。
【００９６】
次に、データ転送装置１の処理手順について２つ目以降のデータを送信する場合についてフローチャートを参照しつつ説明する。図１６は２つ目以降のデータを送信する場合の処理手順を表したフローチャートである。
【００９７】
ステップＳ４１では、１つ前のデータの転送処理が行われる。例えば１つ前のデータが１つ目のデータの場合は前述した図９の処理手順でデータの転送処理が行われる。１つ前のデータが２つ目以降のデータの場合は図１６のフローチャートに示す処理手順でデータの転送処理が行われる。
【００９８】
ステップＳ４２に進み、計測部３８は１つ前のデータの転送にかかった時間から、使用する回線の転送速度を求めて記録する。ステップＳ４３に進み、データ転送装置１の予想部３５は次に送信するデータのデータサイズＶを取得すると共に、次に送信するデータの種類をデータ名の拡張子から判別する。ステップＳ４４に進み、予想部３５は次に送信するデータの種類（拡張子）に応じて、ＤＢ３６から前述した圧縮情報テーブルの取得を試みる。
【００９９】
ＤＢ３６に送信するデータの種類に応じた圧縮情報テーブルが無ければ、予想部３５はステップＳ４５に進み、送信するデータの一部又は全部を圧縮レベルＬ1，Ｌ2，Ｌ3，・・・，Ｌnで圧縮し、得られた情報（圧縮速度、圧縮率）から圧縮情報テーブルを作成してＤＢ３６に登録したあと、ステップＳ４４に戻る。ＤＢ３６に送信するデータの種類に応じた圧縮情報テーブルが有れば、予想部３５は送信するデータの種類に応じた圧縮情報テーブルを取得し、ステップＳ４６へ進む。
【０１００】
ステップＳ４６に進み、予想部３５は取得した圧縮情報テーブルを用いて次に送信するデータの圧縮処理や暗号化処理等の転送準備に掛かる時間及び１つ前のデータの転送に掛かる時間の長い方と、次のデータの転送処理に掛かる時間との合計時間を予想する。判定部３４は、次に送信するデータの圧縮処理や暗号化処理等の転送準備に掛かる時間及び１つ前のデータの転送に掛かる時間の長い方と、次のデータの転送処理に掛かる時間との合計時間が最も短くなる最も効率的な圧縮レベルを判定し、その圧縮レベルで圧縮処理や暗号化処理等の転送準備を圧縮部３２や暗号化部３３に行わせる判定処理を行う。ステップＳ４６に続いてステップＳ４７に進み、判定部３４は転送準備の終わったデータを転送部３７からデータ受信装置２へ送信させる。
【０１０１】
したがって、データ転送装置１は複数のデータの転送に係わる処理時間が最短になるように最適化がなされる。
【０１０２】
ステップＳ４６の判定処理の詳細を、標準的な場合，プロセッサが複数個ある場合，プロセッサが複数個あり、且つ暗号化する場合に分けて説明する。図１７は標準的な場合の判定処理手順を表したフローチャートである。図１７のフローチャートでは、図１１に示した圧縮情報テーブルを利用する。
【０１０３】
図１７のステップＳ５１に進み、予想部３５は図１１の圧縮情報テーブルを利用することにより、圧縮レベルＬ1，Ｌ2，Ｌ3，・・・，Ｌnについて、次に送信するデータの圧縮処理に掛かる予想時間（圧縮予想時間）Ｃ1，Ｃ2，Ｃ3，・・・，Ｃnを求める。
【０１０４】
ステップＳ５２に進み、予想部３５は圧縮予想時間Ｃ1，Ｃ2，Ｃ3，・・・，Ｃnについて１つ前のデータの転送予想時間の方が大きい場合に、圧縮予想時間Ｃ1，Ｃ2，Ｃ3，・・・，Ｃnを１つ前のデータの転送予想時間と入れ替える。ステップＳ５２の処理は、図４に示したように、１つ前のデータの転送処理が終了しなければ、次に送信するデータの転送処理を開始できないことに対処する為のものである。
【０１０５】
ステップＳ５３に進み、予想部３５は圧縮情報テーブルを利用することにより、圧縮レベルＬ1，Ｌ2，Ｌ3，・・・，Ｌnについて、圧縮後のデータサイズでの転送処理に掛かる予想時間（転送予想時間）Ｔ1，Ｔ2，Ｔ3，・・・，Ｔnを求める。
【０１０６】
ステップＳ５４に進み、判定部３４は圧縮予想時間Ｃ1，Ｃ2，Ｃ3，・・・，Ｃnと転送予想時間Ｔ1，Ｔ2，Ｔ3，・・・，Ｔnとを圧縮レベル毎に加算し、加算した値が最も小さい圧縮レベルＬmを求める。ステップＳ５５に進み、圧縮部３２は判定部３４が求めた圧縮レベルＬmで、送信するデータを圧縮する。
【０１０７】
したがって、本実施例のデータ転送システムは、一つのプロセッサを持つデータ転送装置１において、データの圧縮処理、転送処理を効率的に並列化することで、これらの処理の待ち時間の発生を抑え、転送速度の高速化を実現できる。
【０１０８】
また、図１８はプロセッサが複数個ある場合の判定処理手順を表したフローチャートである。図１８のフローチャートでは図１３に示すような圧縮情報テーブルを利用する。
【０１０９】
図１８のステップＳ６１に進み、予想部３５は図１３の圧縮情報テーブルを利用することにより、圧縮レベルＬ1，Ｌ2，Ｌ3，・・・，Ｌnと、利用可能なプロセッサ数Ｎ1，Ｎ2，Ｎ3，・・・，Ｎpとの組み合わせ毎に、送信するデータの圧縮処理に掛かる予想時間（圧縮予想時間）Ｃ11，Ｃ12，・・・，Ｃnp-1，Ｃnpを求める。
【０１１０】
ステップＳ６２に進み、予想部３５は圧縮予想時間Ｃ1，Ｃ2，Ｃ3，・・・，Ｃnについて１つ前のデータの転送予想時間の方が大きい場合に、圧縮予想時間Ｃ1，Ｃ2，Ｃ3，・・・，Ｃnを１つ前のデータの転送予想時間と入れ替える。ステップＳ６２の処理は、図４に示したように、１つ前のデータの転送処理が終了しなければ、次に送信するデータの転送処理を開始できないことに対処する為のものである。
【０１１１】
ステップＳ６３に進み、予想部３５は圧縮情報テーブルを利用することにより、圧縮レベルＬ1，Ｌ2，Ｌ3，・・・，Ｌnについて、圧縮後のデータサイズでの転送処理に掛かる予想時間（転送予想時間）Ｔ1，Ｔ2，Ｔ3，・・・，Ｔnを求める。
【０１１２】
ステップＳ６４に進み、判定部３４は圧縮予想時間Ｃ11，Ｃ12，・・・，Ｃnp-1，Ｃnpと転送予想時間Ｔ1，Ｔ2，Ｔ3，・・・，Ｔnとを圧縮レベル毎に加算し、加算した値が最も小さい圧縮レベルＬmとプロセッサ数Ｎqとの組み合わせを求める。ステップＳ６５に進み、圧縮部３２は判定部３４が求めた圧縮レベルＬmとプロセッサ数Ｎqとで、送信するデータを圧縮する。
【０１１３】
したがって、本実施例のデータ転送システムは、複数のプロセッサを持つデータ転送装置１において、データの圧縮処理、転送処理を効率的に並列化することで、これらの処理の待ち時間の発生を抑え、転送速度の高速化を実現できる。
【０１１４】
また、図１９、図２０は、プロセッサが複数個あり、且つ暗号化する場合の判定処理手順を表したフローチャートである。図１９、図２０のフローチャートでは図１５に示すような圧縮情報テーブルを利用する。なお、図１９は２つ目のデータを送信する場合の判定処理手順を表している。図２０は３つ目のデータを送信する場合の判定処理手順を表している。
【０１１５】
図１９のステップＳ７１に進み、予想部３５は図１５の圧縮情報テーブルを利用することにより、圧縮レベルＬ1，Ｌ2，Ｌ3，・・・，Ｌnと、利用可能なプロセッサ数Ｎ1，Ｎ2，Ｎ3，・・・，Ｎpとの組み合わせ毎に、送信するデータの圧縮処理に掛かる予想時間（圧縮予想時間）Ｃ11，Ｃ12，・・・，Ｃnp-1，Ｃnpを求める。
【０１１６】
ステップＳ７２に進み、予想部３５は圧縮予想時間Ｃ1，Ｃ2，Ｃ3，・・・，Ｃnについて１つ前のデータの暗号化予想時間の方が大きい場合に、圧縮予想時間Ｃ1，Ｃ2，Ｃ3，・・・，Ｃnを１つ前のデータの暗号化予想時間と入れ替える。ステップＳ７２の処理は、図８に示したように、１つ前のデータの暗号処理が終了しなければ、次に送信するデータの暗号処理を開始できないことに対処する為のものである。
【０１１７】
また、ステップＳ７３に進み、予想部３５は図１５の圧縮情報テーブルを利用することにより、圧縮レベルＬ1，Ｌ2，Ｌ3，・・・，Ｌnと、暗号化処理を行うプロセッサ数Ｍ1，Ｍ2，Ｍ3，・・・，Ｍkとの組み合わせ毎に、送信するデータの暗号化処理に掛かる予想時間（暗号予想時間）Ｅ11，Ｅ12，・・・，Ｅnk-1，Ｅnkを求める。
【０１１８】
ステップＳ７４に進み、予想部３５は暗号予想時間Ｅ11，Ｅ12，・・・，Ｅnk-1，Ｅnkについて１つ前のデータの転送予想時間の方が大きい場合に、暗号予想時間Ｅ11，Ｅ12，・・・，Ｅnk-1，Ｅnkを１つ前のデータの転送予想時間と入れ替える。ステップＳ７４の処理は図８に示したように、１つ前のデータの転送処理が終了しなければ、次に送信するデータの転送処理を開始できないことに対処する為のものである。
【０１１９】
ステップＳ７５に進み、予想部３５は圧縮情報テーブルを利用することにより、圧縮レベルＬ1，Ｌ2，Ｌ3，・・・，Ｌnについて、圧縮後のデータサイズでの転送処理に掛かる予想時間（転送予想時間）Ｔ1，Ｔ2，Ｔ3，・・・，Ｔnを求める。
【０１２０】
ステップＳ７６に進み、判定部３４は圧縮予想時間Ｃ11，Ｃ12，・・・，Ｃnp-1，Ｃnpと暗号予想時間Ｅ11，Ｅ12，・・・，Ｅnk-1，Ｅnkと転送予想時間Ｔ1，Ｔ2，Ｔ3，・・・，Ｔnとを圧縮レベル毎に加算し、加算した値が最も小さい圧縮レベルＬmとプロセッサ数Ｎq，Ｍiとの組み合わせを求める。ステップＳ７７に進み、圧縮部３２は判定部３４が求めた圧縮レベルＬmとプロセッサ数Ｎqとで、送信するデータを圧縮する。ステップＳ７８に進み、圧縮部３２は判定部３４が求めたプロセッサ数Ｍiで、送信するデータを暗号化する。
【０１２１】
図２０のステップＳ８１に進み、予想部３５は図１５の圧縮情報テーブルを利用することにより、圧縮レベルＬ1，Ｌ2，Ｌ3，・・・，Ｌnと、利用可能なプロセッサ数Ｎ1，Ｎ2，Ｎ3，・・・，Ｎpとの組み合わせ毎に、送信するデータの圧縮処理に掛かる予想時間（圧縮予想時間）Ｃ11，Ｃ12，・・・，Ｃnp-1，Ｃnpを求める。
【０１２２】
ステップＳ８２に進み、予想部３５は圧縮予想時間Ｃ1，Ｃ2，Ｃ3，・・・，Ｃnについて１つ前のデータの暗号化予想時間又は２つ前のデータの転送予想時間の方が大きい場合に、圧縮予想時間Ｃ1，Ｃ2，Ｃ3，・・・，Ｃnを１つ前のデータの暗号化予想時間又は２つ前のデータの転送予想時間の内の長い方と入れ替える。ステップＳ７２の処理は、図８に示したように、１つ前のデータの暗号処理及び２つ前のデータの転送処理が終了しなければ、次に送信するデータの暗号処理を開始できないことに対処する為のものである。
【０１２３】
また、ステップＳ８３に進み、予想部３５は図１５の圧縮情報テーブルを利用することにより、圧縮レベルＬ1，Ｌ2，Ｌ3，・・・，Ｌnと、暗号化処理を行うプロセッサ数Ｍ1，Ｍ2，Ｍ3，・・・，Ｍkとの組み合わせ毎に、送信するデータの暗号化処理に掛かる予想時間（暗号予想時間）Ｅ11，Ｅ12，・・・，Ｅnk-1，Ｅnkを求める。
【０１２４】
ステップＳ８４に進み、予想部３５は暗号予想時間Ｅ11，Ｅ12，・・・，Ｅnk-1，Ｅnkについて１つ前のデータの転送予想時間の方が大きい場合に、暗号予想時間Ｅ11，Ｅ12，・・・，Ｅnk-1，Ｅnkを１つ前のデータの転送予想時間と入れ替える。ステップＳ８４の処理は図８に示したように、１つ前のデータの転送処理が終了しなければ、次に送信するデータの転送処理を開始できないことに対処する為のものである。
【０１２５】
ステップＳ８５に進み、予想部３５は圧縮情報テーブルを利用することにより、圧縮レベルＬ1，Ｌ2，Ｌ3，・・・，Ｌnについて、圧縮後のデータサイズでの転送処理に掛かる予想時間（転送予想時間）Ｔ1，Ｔ2，Ｔ3，・・・，Ｔnを求める。
【０１２６】
ステップＳ８６に進み、判定部３４は圧縮予想時間Ｃ11，Ｃ12，・・・，Ｃnp-1，Ｃnpと暗号予想時間Ｅ11，Ｅ12，・・・，Ｅnk-1，Ｅnkと転送予想時間Ｔ1，Ｔ2，Ｔ3，・・・，Ｔnとを圧縮レベル毎に加算し、加算した値が最も小さい圧縮レベルＬmとプロセッサ数Ｎq，Ｍiとの組み合わせを求める。ステップＳ８７に進み、圧縮部３２は判定部３４が求めた圧縮レベルＬmとプロセッサ数Ｎqとで、送信するデータを圧縮する。ステップＳ８８に進み、圧縮部３２は判定部３４が求めたプロセッサ数Ｍiで、送信するデータを暗号化する。
【０１２７】
したがって、本実施例のデータ転送システムは、複数のプロセッサを持つデータ転送装置において、データの圧縮処理、暗号化処理、転送処理を効率的に並列化することで、これらの処理の待ち時間の発生を抑え、転送速度の高速化を実現できる。
【０１２８】
（まとめ）
以上のように、本実施例のデータ転送装置１は圧縮処理，暗号化処理，転送処理を並列に行い、転送する回線の状況に応じて圧縮レベル（圧縮率）を変更する。プロセッサが複数個ある場合には、圧縮処理及び暗号化処理を行うプロセッサ数を動的に変更する。送信するファイル（データ）の拡張子毎に、圧縮時間や圧縮率を学習しておくことで最適な圧縮レベル（圧縮率）を判定できる。
【０１２９】
本発明は、以下に記載する付記のような構成が考えられる。
（付記１）
複数の圧縮レベルでデータを圧縮して転送可能なデータ転送装置であって、
複数の圧縮レベル毎にデータの圧縮率及び圧縮速度が登録された圧縮情報データベースから前記圧縮レベル毎にデータの圧縮速度を取得し、前記圧縮レベル毎のデータの圧縮速度に基づき、転送するデータの圧縮に掛かる予想時間を前記圧縮レベル毎に算出する圧縮予想時間算出手段と、
前記圧縮情報データベースから前記圧縮レベル毎にデータの圧縮率を取得し、前記圧縮レベル毎のデータの圧縮率に基づき、転送するデータの圧縮後の予想サイズを前記圧縮レベル毎に算出して、転送するデータの転送に掛かる予想時間を前記圧縮レベル毎に算出する転送予想時間算出手段と、
転送するデータの圧縮に掛かる予想時間と転送に掛かる予想時間とを前記圧縮レベル毎に加算し、加算された予想時間が最も短い前記圧縮レベルを判定する圧縮レベル判定手段と、
転送するデータを前記判定された前記圧縮レベルで圧縮する圧縮手段と、
転送するデータを転送先へ転送する転送手段と
を有するデータ転送装置。
（付記２）
転送するデータの圧縮に掛かる予想時間と、一つ前のデータの転送に掛かる予想時間とを前記圧縮レベル毎に比較し、一つ前のデータの転送に掛かる予想時間が転送するデータの圧縮に掛かる予想時間よりも大きい場合に、転送するデータの圧縮に掛かる予想時間を一つ前のデータの転送に掛かる予想時間とする圧縮予想時間変更手段を更に有する付記１記載のデータ転送装置。
（付記３）
前記圧縮予想時間算出手段は、複数の圧縮レベル毎にデータの圧縮率と、圧縮処理を行うプロセッサの数に応じた圧縮速度とが登録された圧縮情報データベースから前記圧縮レベル及び前記プロセッサの数の組み合わせ毎にデータの圧縮速度を取得し、前記圧縮レベル及び前記プロセッサの数の組み合わせ毎に取得した圧縮速度に基づき、転送するデータの圧縮に掛かる予想時間を、前記圧縮レベル及び前記プロセッサの数の組み合わせ毎に算出し、
圧縮レベル判定手段は、前記転送するデータの圧縮に掛かる予想時間と転送に掛かる予想時間とを前記圧縮レベル及び前記プロセッサの数の組み合わせ毎に加算し、加算された予想時間が最も短い前記圧縮レベル及び前記プロセッサの数の組み合わせを判定し、
前記圧縮手段は、転送するデータを前記判定された圧縮レベルで前記判定された数のプロセッサにより圧縮する
付記１記載のデータ転送装置。
（付記４）
前記圧縮予想時間変更手段は、前記圧縮レベル及び前記プロセッサの数の組み合わせ毎に算出した転送するデータの圧縮に掛かる予想時間と、一つ前のデータの転送に掛かる予想時間とを、前記圧縮レベル及び前記プロセッサの数の組み合わせ毎に比較し、一つ前のデータの転送に掛かる予想時間が転送するデータの圧縮に掛かる予想時間よりも大きい場合に、転送するデータの圧縮に掛かる予想時間を一つ前のデータの転送に掛かる予想時間とする付記２記載のデータ転送装置。
（付記５）
複数の圧縮レベル毎にデータの圧縮率と、圧縮処理及び暗号化処理を行うプロセッサの数に応じた圧縮速度及び暗号化速度とが登録された圧縮情報データベースから、前記圧縮レベル及び前記プロセッサの数の組み合わせ毎にデータの暗号化速度を取得し、前記圧縮レベル及び前記プロセッサの数の組み合わせ毎に取得した暗号化速度に基づき、転送するデータの暗号化に掛かる予想時間を、前記圧縮レベル及び前記プロセッサの数の組み合わせ毎に算出する暗号化予想時間算出手段と、
転送するデータを暗号化する暗号化手段と
を有し、
圧縮レベル判定手段は、前記転送するデータの圧縮に掛かる予想時間と暗号化に掛かる予想時間と転送に掛かる予想時間とを前記圧縮レベル及び前記プロセッサの数の組み合わせ毎に加算し、加算された予想時間が最も短い前記圧縮レベル及び前記プロセッサの数の組み合わせを判定し、
前記圧縮手段は、転送するデータを前記判定された圧縮レベルで前記判定された数のプロセッサにより圧縮し、
前記暗号化手段は、転送するデータを前記判定された数のプロセッサにより暗号化する付記１又は３記載のデータ転送装置。
（付記６）
前記圧縮レベル及び前記プロセッサの数の組み合わせ毎に算出した転送するデータの暗号化に掛かる予想時間と、一つ前のデータの転送に掛かる予想時間とを、前記圧縮レベル及び前記プロセッサの数の組み合わせ毎に比較し、一つ前のデータの転送に掛かる予想時間が転送するデータの暗号化に掛かる予想時間よりも大きい場合に、転送するデータの暗号化に掛かる予想時間を一つ前のデータの転送に掛かる予想時間とする暗号化予想時間変更手段を更に有し、
前記圧縮予想時間変更手段は、前記圧縮レベル及び前記プロセッサの数の組み合わせ毎に算出した転送するデータの圧縮に掛かる予想時間と、一つ前のデータの暗号化に掛かる予想時間と、二つ前のデータの転送に掛かる予想時間とを、前記圧縮レベル及び前記プロセッサの数の組み合わせ毎に比較し、一つ前のデータの暗号化に掛かる予想時間又は二つ前のデータの転送に掛かる予想時間が転送するデータの圧縮に掛かる予想時間よりも大きい場合に、転送するデータの圧縮に掛かる予想時間を、一つ前のデータの暗号化に掛かる予想時間又は二つ前のデータの転送に掛かる予想時間のうち大きい方とする
付記２又は４記載のデータ転送装置。
（付記７）
前記圧縮情報データベースは、複数の圧縮レベル及び転送するデータの種類の組み合わせ毎にデータの圧縮率及び圧縮速度が登録された付記１乃至６何れか一項記載のデータ転送装置。
（付記８）
前記圧縮情報データベースは、転送するデータを前記圧縮手段で実際に圧縮したときの圧縮率及び圧縮速度が反映される付記１乃至７何れか一項記載のデータ転送装置。
（付記９）
複数の圧縮レベルでデータを圧縮して転送可能なデータ転送装置におけるデータ転送方法であって、
圧縮予想時間算出手段が、複数の圧縮レベル毎にデータの圧縮率及び圧縮速度が登録された圧縮情報データベースから前記圧縮レベル毎にデータの圧縮速度を取得し、前記圧縮レベル毎のデータの圧縮速度に基づき、転送するデータの圧縮に掛かる予想時間を前記圧縮レベル毎に算出するステップと、
転送予想時間算出手段が、前記圧縮情報データベースから前記圧縮レベル毎にデータの圧縮率を取得し、前記圧縮レベル毎のデータの圧縮率に基づき、転送するデータの圧縮後の予想サイズを前記圧縮レベル毎に算出して、転送するデータの転送に掛かる予想時間を前記圧縮レベル毎に算出するステップと、
圧縮レベル判定手段が、転送するデータの圧縮に掛かる予想時間と転送に掛かる予想時間とを前記圧縮レベル毎に加算し、加算された予想時間が最も短い前記圧縮レベルを判定するステップと、
圧縮手段が、転送するデータを前記判定された前記圧縮レベルで圧縮するステップと、
転送手段が、転送するデータを転送先へ転送するステップと
を有するデータ転送方法。
（付記１０）
複数の圧縮レベルでデータを圧縮して転送可能なデータ転送装置として利用されるコンピュータを、
複数の圧縮レベル毎にデータの圧縮率及び圧縮速度が登録された圧縮情報データベースから前記圧縮レベル毎にデータの圧縮速度を取得し、前記圧縮レベル毎のデータの圧縮速度に基づき、転送するデータの圧縮に掛かる予想時間を前記圧縮レベル毎に算出する圧縮予想時間算出手段と、
前記圧縮情報データベースから前記圧縮レベル毎にデータの圧縮率を取得し、前記圧縮レベル毎のデータの圧縮率に基づき、転送するデータの圧縮後の予想サイズを前記圧縮レベル毎に算出して、転送するデータの転送に掛かる予想時間を前記圧縮レベル毎に算出する転送予想時間算出手段と、
転送するデータの圧縮に掛かる予想時間と転送に掛かる予想時間とを前記圧縮レベル毎に加算し、加算された予想時間が最も短い前記圧縮レベルを判定する圧縮レベル判定手段と、
転送するデータを前記判定された前記圧縮レベルで圧縮する圧縮手段と、
転送するデータを転送先へ転送する転送手段と
して機能させる為のデータ転送プログラム。
【０１３０】
本発明は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。例えば本実施例のデータ転送装置１は１つの筐体で構成されているが、複数の筐体で構成してもよい。データ転送装置１を複数の筐体で構成するデータ転送システムとしては、送信するデータを記憶する記憶部３１と、記憶部３１以外の処理部とを別筐体としたものも考えられる。
【０１３１】
また、本実施例のデータ転送装置１とデータ受信装置２とが一つの筐体に含まれるように構成すれば、データの転送及び受信を行える装置が実現できる。
【図面の簡単な説明】
【０１３２】
【図１】本実施例のデータ転送システムの構成図である。
【図２】データ転送装置の一例のハードウェア構成図である。
【図３】データ転送装置の一例の処理ブロック構成図である。
【図４】複数個のデータを転送するときの１つ前のデータの転送処理と現在のデータの圧縮処理との関係を表した模式図である。
【図５】１つ目のデータの転送時間と、１つ目のデータの転送処理を開始してから２つ目のデータの転送処理が終了するまでの時間との対応を示したグラフ図である。
【図６】データの種類による圧縮効率の違いを表した説明図である。
【図７】プロセッサ数による圧縮時間の違いを表した説明図である。
【図８】圧縮処理と暗号化処理と転送処理との並列化を表した模式図である。
【図９】１つ目のデータを送信する場合の処理手順を表したフローチャートである。
【図１０】標準的な場合の判定処理手順を表したフローチャートである。
【図１１】標準的な場合の判定処理で利用する圧縮情報テーブルの構成図である。
【図１２】プロセッサが複数個ある場合の判定処理手順を表したフローチャートである。
【図１３】プロセッサが複数個ある場合の判定処理で利用する圧縮情報テーブルの構成図である。
【図１４】プロセッサが複数個あり、且つ暗号化する場合の判定処理手順を表したフローチャートである。
【図１５】プロセッサが複数個あり、且つ暗号化する場合の判定処理で利用する圧縮情報テーブルの構成図である。
【図１６】２つ目以降のデータを送信する場合の処理手順を表したフローチャートである。
【図１７】標準的な場合の判定処理手順を表したフローチャートである。
【図１８】プロセッサが複数個ある場合の判定処理手順を表したフローチャートである。
【図１９】プロセッサが複数個あり、且つ暗号化する場合の判定処理手順を表したフローチャートである。
【図２０】プロセッサが複数個あり、且つ暗号化する場合の判定処理手順を表したフローチャートである。
【符号の説明】
【０１３３】
１    データ転送装置
２    データ受信装置
３    データ転送可能なネットワーク
１１    入力装置
１２    出力装置
１３    ドライブ装置
１４    補助記憶装置
１５    主記憶装置
１６，１６−１〜１６−ｎ    １つ以上の演算処理装置
１７    インターフェース装置
１８    記録媒体
３１    記憶部
３２    圧縮部
３３    暗号化部
３４    判定部
３５    予想部
３６    データベース（ＤＢ）
３７    転送部
３８    計測部
【図１】
2010141515.tif 000011
【図２】
2010141515.tif 000012
【図３】
2010141515.tif 000013
【図４】
2010141515.tif 000014
【図５】
2010141515.tif 000015
【図６】
2010141515.tif 000016
【図７】
2010141515.tif 000017
【図８】
2010141515.tif 000018
【図９】
2010141515.tif 000019
【図１０】
2010141515.tif 000020
【図１１】
2010141515.tif 000021
【図１２】
2010141515.tif 000022
【図１３】
2010141515.tif 000023
【図１４】
2010141515.tif 000024
【図１５】
2010141515.tif 000025
【図１６】
2010141515.tif 000026
【図１７】
2010141515.tif 000027
【図１８】
2010141515.tif 000028
【図１９】
2010141515.tif 000029
【図２０】
2010141515.tif 000030