(57)【特許請求の範囲】
【請求項１】
消失訂正符号を用いて符号化したデータを、誤り訂正機能及び再送機能を持たないプロトコルを利用して転送するデータ転送プログラムであって、
転送対象となるデータ全体のファイルサイズを取得するファイルサイズ取得ステップと、
取得したファイルサイズのデータを消失訂正符号を用いて符号化した符号化データのビット列の長さである符号長と、前記符号長を用いて前記データを符号化するのに要する符号化時間、符号化したデータの送信に要する送信時間、及び前記符号化したデータの復号に要する復号時間の合計である転送時間との関係を取得する関係取得ステップと、
前記取得したファイルサイズのデータを符号化する際に用いられる符号長と前記転送時間との関係に基づいて、前記転送対象となるデータを符号化する際に用いる符号長を決定する符号長決定ステップと、
決定した符号長を用いて前記データの符号化を行う符号化ステップと、
をコンピュータに実行させるデータ転送プログラム。
【請求項２】
前記関係取得ステップでは、実験又はシミュレーションに基づいてファイルサイズごとに予め作成された符号長と転送時間との関係を補間することによって、取得したファイルサイズにおける符号長と転送時間との関係を取得する請求項１に記載のデータ転送プログラム。
【請求項３】
前記関係取得ステップでは、実際のデータ転送環境においてテストデータを利用して取得した転送時間に基づいて、前記実験又はシミュレーションに基づいてファイルサイズごとに予め作成された符号長と転送時間との関係を補正し、補正後の符号長と転送時間との関係に基づいて、取得したファイルサイズにおける符号長と転送時間との関係を取得する請求項２に記載のデータ転送プログラム。
【請求項４】
アプリケーションからアプリケーション外部の宛先に向かって前記転送対象となるデータが送信されたか否かを監視する監視ステップ、を更に有し、
前記ファイルサイズ取得ステップでは、アプリケーションからアプリケーション外部の宛先に向かって前記転送対象となるデータが送信された場合に、転送対象となるデータ全体のファイルサイズを取得する請求項１から３のいずれか１項に記載のデータ転送プログラム。
【請求項５】
消失訂正符号を用いて符号化したデータを、誤り訂正機能及び再送機能を持たないプロトコルを利用して転送するデータ転送方法であって、
転送対象となるデータ全体のファイルサイズを取得するファイルサイズ取得ステップと、
取得したファイルサイズのデータを消失訂正符号を用いて符号化した符号化データのビット列の長さである符号長と、前記符号長を用いて前記データを符号化するのに要する符号化時間、符号化したデータの送信に要する送信時間、及び前記符号化したデータの復号に要する復号時間の合計である転送時間との関係を取得する関係取得ステップと、
前記取得したファイルサイズのデータを符号化する際に用いられる符号長と前記転送時間との関係に基づいて、前記転送対象となるデータを符号化する際に用いる符号長を決定する符号長決定ステップと、
決定した符号長を用いて前記データの符号化を行う符号化ステップと、
を有するデータ転送方法。
【請求項６】
転送対象となるデータ全体のファイルサイズを取得するファイルサイズ取得部と、
取得したファイルサイズのデータを消失訂正符号を用いて符号化した符号化データのビット列の長さである符号長と、前記符号長を用いて前記データを符号化するのに要する符号化時間、符号化したデータの送信に要する送信時間、及び前記符号化したデータの復号に要する復号時間の合計である転送時間との関係を取得する関係取得部と、
前記取得したファイルサイズのデータを符号化する際に用いられる符号長と前記転送時間との関係に基づいて、前記転送対象となるデータを符号化する際に用いる符号長を決定する符号長決定部と、
決定した符号長を用いて、前記転送対象のデータを消失訂正符号を用いて符号化する符合化部と、
前記符合化したデータを、誤り訂正機能及び再送機能を持たないプロトコルを利用して転送する転送部と、
を備える情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本件は、データ転送プログラム、データ転送方法及び情報処理装置に関する。
【背景技術】
【０００２】
近年、インターネットなどのネットワークを通じて様々なサービスを提供するクラウドコンピューティングが注目されている。クラウドコンピューティングでは、クラウドを構成するサーバ間や、利用者とクラウドとの間で、頻繁にデータの転送が発生するため、データ転送速度の高速化が求められている。データ転送速度を高速化する方法としては、ハードウェアによる高速化と、ソフトウェアによる高速化が提案されている（例えば、特許文献１）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−２８７５９８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
クラウドコンピューティングでは、クラウドを構成するサーバ間や、利用者とクラウドとの間で転送されるデータのデータサイズも様々である。このような環境において、特許文献１の技術では、十分なデータ転送速度を得られない可能性がある。
【０００５】
本件は、上記の事情に鑑みて成されたものであり、データ転送速度を高速化するデータ転送プログラム、データ転送方法及び情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、明細書開示のデータ転送プログラムは、消失訂正符号を用いて符号化したデータを、誤り訂正機能及び再送機能を持たないプロトコルを利用して転送するデータ転送プログラムであって、転送対象となるデータ全体のファイルサイズを取得するファイルサイズ取得ステップと、取得したファイルサイズのデータを消失訂正符号を用いて符号化した符号化データのビット列の長さである符号長と、前記符号長を用いて前記データを符号化するのに要する符号化時間、符号化したデータの送信に要する送信時間、及び前記符号化したデータの復号に要する復号時間の合計である転送時間との関係を取得する関係取得ステップと、前記取得したファイルサイズのデータを符号化する際に用いられる符号長と前記転送時間との関係に基づいて、前記転送対象となるデータを符号化する際に用いる符号長を決定する符号長決定ステップと、決定した符号長を用いて前記データの符号化を行う符号化ステップと、をコンピュータに実行させる。
【０００７】
上記課題を解決するために、明細書開示のデータ転送方法は、消失訂正符号を用いて符号化したデータを、誤り訂正機能及び再送機能を持たないプロトコルを利用して転送するデータ転送方法であって、転送対象となるデータ全体のファイルサイズを取得するファイルサイズ取得ステップと、取得したファイルサイズのデータを消失訂正符号を用いて符号化した符号化データのビット列の長さである符号長と、前記符号長を用いて前記データを符号化するのに要する符号化時間、符号化したデータの送信に要する送信時間、及び前記符号化したデータの復号に要する復号時間の合計である転送時間との関係を取得する関係取得ステップと、前記取得したファイルサイズのデータを符号化する際に用いられる符号長と前記転送時間との関係に基づいて、前記転送対象となるデータを符号化する際に用いる符号長を決定する符号長決定ステップと、決定した符号長を用いて前記データの符号化を行う符号化ステップと、を有する。
【０００８】
上記課題を解決するために、明細書開示の情報処理装置は、転送対象となるデータ全体のファイルサイズを取得するファイルサイズ取得部と、取得したファイルサイズのデータを消失訂正符号を用いて符号化した符号化データのビット列の長さである符号長と、前記符号長を用いて前記データを符号化するのに要する符号化時間、符号化したデータの送信に要する送信時間、及び前記符号化したデータの復号に要する復号時間の合計である転送時間との関係を取得する関係取得部と、前記取得したファイルサイズのデータを符号化する際に用いられる符号長と前記転送時間との関係に基づいて、前記転送対象となるデータを符号化する際に用いる符号長を決定する符号長決定部と、決定した符号長を用いて、前記転送対象のデータを消失訂正符号を用いて符号化する符合化部と、前記符合化したデータを、誤り訂正機能及び再送機能を持たないプロトコルを利用して転送する転送部と、を備える。
【発明の効果】
【０００９】
明細書開示のデータ転送プログラム、データ転送方法、及び情報処理装置によれば、データ転送速度を高速化できる。
【図面の簡単な説明】
【００１０】
【図１】本件のデータ転送方法を適用する情報処理システムのシステム構成の一例を示す図である。
【図２】データ転送処理の概要を示す図である。
【図３】利用者端末のハードウェア構成の一例を示す図である。
【図４】利用者端末のソフトウェア構成の一例を示す図である。
【図５】利用者端末が備える機能の一例を示す機能ブロック図である。
【図６】符号長と符号化時間・復号時間及び送信時間との関係の一例を表す図である。
【図７】利用者端末が実行する処理の一例を示すフローチャートである。
【図８】転送時間算出処理の一例を示すフローチャートである。
【図９】転送対象データのデータサイズにおける符号長と転送時間との関係を表す図である。
【発明を実施するための形態】
【００１１】
以下、本件の実施形態について、添付図面を参照しつつ説明する。
【００１２】
まず、図１を参照して、本件のデータ転送方式を適用する情報処理システムのシステム構成の一例について説明する。情報処理システム１００では、利用者端末（情報処理装置）１０とサーバ２０とが、インターネット、ＷＡＮ（Wide Area Network）等のネットワーク３０を介して接続されている。なお、ネットワーク３０に接続する利用者端末１０の数およびサーバ２０の数は、本実施形態に限られるものではない。
【００１３】
サーバ２０は、ネットワーク３０を介して、利用者端末１０にソフトウェア、プラットフォーム、及びハードウェアやインフラ等をサービスとして提供する。ユーザは、利用者端末１０にインストールされたアプリケーションを使用して、サーバ２０から様々なサービスの提供を受けることができる。
【００１４】
次に、図２を参照して、本実施形態における、利用者端末１０とサーバ２０との間におけるデータの転送方法について説明する。図２は、データ転送処理の概要を示す図である。本説明では、利用者端末１０を送信側とし、サーバ２０を受信側とする。本実施形態では、利用者端末１０は、サーバ２０へのデータ転送に、ＵＤＰ（User Data Protocol）を用いる。ＵＤＰは、転送制御プロトコルの一種であり、ＴＣＰ（Transmission Control Protocol）と違い、エラー訂正機能を持たない。したがって、ＵＤＰは、ＴＣＰよりも信頼性に劣るが、エラー訂正機能を持たない分、ＴＣＰよりも高速なデータ転送が可能である。
【００１５】
本実施形態では、ＵＤＰのデータ消失を保証するために、利用者端末１０は、消失訂正符号を用いてデータの符号化を行い、符号化したパケットデータをサーバ２０に送信する。消失訂正符号とは、本来のデータとは別に冗長なデータを付加することで、何らかの原因でデータの一部が消失してしまった場合でも本来のデータを復元することを可能にするための技術である。本実施形態では、消失訂正符号として、ＲＰＳ（Random Parity Stream）符号を用いる。なお、消失訂正符号はＲＰＳ符号に限られるものではなく、消失したデータの復元に特化した符号であればよい。
【００１６】
利用者端末１０は、転送対象のデータを、複数のデータブロックに分割し、さらに、各データブロックを情報ブロックに分割する。利用者端末１０は、情報ブロックをＲＰＳ符号化して得られたパケットを、サーバ２０にＵＤＰを用いて送信する。サーバ２０は、受信したパケットを復号し、データを復元する。
【００１７】
次に、利用者端末１０のハードウェア構成について説明する。図３は、利用者端末１０のハードウェア構成の一例を示す図である。
【００１８】
利用者端末１０は、例えば、入出力部１０１、ＲＯＭ（Read Only Memory）１０２、中央処理装置（ＣＰＵ：Central Processing Unit）１０３、ＲＡＭ（Random Access Memory）１０４、及びハードディスクドライブ（ＨＤＤ：Hard Disk Drive）１０５を備える。入出力部１０１は、サーバ２０との間でデータの送受信を行う。ＲＯＭ１０２は、利用者端末１０からサーバ２０へデータを転送する際に使用される転送プログラム（詳細は後述）等を格納する。ＣＰＵ１０３は、ＲＯＭ１０２に格納されたプログラムを読み込んで実行する。ＲＡＭ１０４は、プログラムを実行する際に使用される一時的なデータを保存する。また、ＨＤＤ１０５は、データサイズ毎の符号長と転送時間との関係を管理するテーブル（詳細は後述）を格納する。
【００１９】
次に、図４を参照して、利用者端末１０のソフトウェア構成の一例について説明する。利用者端末１０には、アプリケーションソフトウェア（以後、アプリケーションと略す）１１１、注入ＤＬＬ１１２、及び転送ソフトウェア１１３がインストールされている。
【００２０】
アプリケーション１１１は、利用者が利用者端末１０上で実行したい作業を実施するための機能を提供する。なお、以下の説明では、アプリケーション１１１の利用者が、サーバ２０のアプリケーション２１２を宛先として、データを送信すると仮定する。
【００２１】
注入ＤＬＬ１１２は、アプリケーション１１１が実行するプロセスのアドレス空間に注入（インジェクト）されるＤＬＬ（Dynamic Link Library）である。ＤＬＬの注入には、ＡＰＩのフック等を使用できる（Ｊｅｆｆｒｅｙ  Ｒｉｃｈｔｅｒ等著  Ａｄｖａｎｃｅｄ  Ｗｉｎｄｏｗｓ（登録商標）  第５版  下  第２２章）。注入ＤＬＬ１１２は、アプリケーション１１１が実行するプロセスのアドレス空間に注入されると、転送ソフトウェア１１３を起動する。また、注入ＤＬＬ１１２は、アプリケーション１１１がデータを送信する際にコールする送信関数をインターセプトする。注入ＤＬＬ１１２は、インターセプトした送信関数から、送信関数にパラメータとして与えられた転送対象データのデータサイズを取得し、ＲＡＭ１０４等の共有メモリ１０６に書き込む。
【００２２】
転送ソフトウェア１１３は、共有メモリ１０６から転送対象データのデータサイズを取得する。また、転送ソフトウェア１１３は、アプリケーション１１１が、サーバ２０のアプリケーション２１２を宛先として送信したデータを取得する。転送ソフトウェア１１３は、転送対象データのデータサイズを用いて、転送対象データの転送に最適な符号長を決定する。転送ソフトウェア１１３は、最適な符号長で符号化したデータを、ＵＤＰを用いてサーバ２０に送信する。
【００２３】
サーバ２０にインストールされた転送ソフトウェア２１１は、符号化されたデータを受信し復号する。転送ソフトウェア２１１は、復号したデータを、真の宛先であるアプリケーション２１２に送信する。
【００２４】
次に、図５を参照して、ＲＯＭ１０２に格納された転送プログラムのＣＰＵ１０３による演算によって実現される利用者端末１０の機能について説明する。
【００２５】
利用者端末１０は、インターセプト部１２１、データサイズ取得部１２２、転送時間算出部（関係取得部）１２３、符号長決定部１２４、符号化部１２５、及び転送部１２６を備える。
【００２６】
インターセプト部１２１は、アプリケーション１１１がデータを送信する際にコールする送信関数をインターセプトし、送信関数にパラメータとして与えられたデータサイズを共有メモリ１０６に書き込む。インターセプト部１２１は、注入ＤＬＬ１１２が、アプリケーション１１１が実行するプロセスのアドレス空間へ注入されることにより、実現される。
【００２７】
データサイズ取得部１２２は、共有メモリ１０６に書きこまれた転送対象データのデータサイズを取得する。データサイズ取得部１２２は、取得したデータサイズを、転送時間算出部１２３に出力する。
【００２８】
転送時間算出部１２３は、データサイズ取得部１２２から、転送対象データのデータサイズを受付ける。転送時間算出部１２３は、ＨＤＤ１０５等の記憶装置に格納されている転送時間算出用データと、転送対象データのデータサイズとに基づいて、各符号長における転送対象データの転送時間を算出する。ここで、ＨＤＤ１０５等に格納されている転送時間算出用データの一例について、図６を参照して説明する。図６（Ａ）は、ＨＤＤ１０５に格納され、各符号長における転送対象データの転送時間の算出に用いられる転送時間算出用データの一例である。また、図６（Ｂ）〜（Ｄ）は、図６（Ａ）における、符号長ごとのデータ送信時間を、データサイズ別にグラフにしたものである。
【００２９】
図６（Ａ）に示すように、ＨＤＤ１０５は、転送時間算出用データを、例えばテーブル形式で格納する。図６（Ａ）に示すテーブルには、情報ブロックをＲＰＳ符号化する際に用いられる符号長ごとに、転送対象データの符号化に要する時間（符号化時間）及び転送対象データの復号に要する時間（復号時間）が格納されている。また、図６（Ａ）に示すテーブルには、符号長ごとに、その符号長で符号化した転送対象データの送信に要する時間（送信時間）も格納されている。さらに、符号長と送信時間との関係は、データサイズ別（１ＫＢ、１ＭＢ、１００ＭＢ）に格納されている。
【００３０】
ここで、一般的に、符号化時間及び復号時間はデータサイズに比例して変化する。一方、図６（Ｂ）〜（Ｄ）のグラフからわかるように、送信時間は転送対象データのデータサイズによって大きく変化する。なお、図６（Ａ）に示すテーブルは、実験又はシミュレーションにより予め求められるものである。なお、本実施形態では、説明を簡略化するために、符号長と送信時間との関係を３つのデータサイズについて格納している。しかしながら、符号長と送信時間との関係については、より多くのデータサイズ（例えば、１００ＫＢ、１０ＭＢ等）について求めておくことが望ましい。これにより、転送時間算出部１２３が算出する転送時間の精度を高めることが可能となる。
【００３１】
転送時間算出部１２３は、データサイズ取得部１２２から受付けたデータサイズと、図６（Ａ）に示すテーブルを用いて、転送対象データを符号化して送信する際の、符号長と転送時間との関係を取得する。転送時間算出部１２３は、算出した符号長ごとの転送時間を符号長決定部１２４に出力する。
【００３２】
符号長決定部１２４は、転送対象データのデータサイズにおける符号長と転送時間との関係を、転送時間算出部１２３から受付ける。符号長決定部１２４は、転送対象データのデータサイズにおける符号長と転送時間との関係から、転送対象データを転送するのに最適な符号長を決定し、符合化部１２５に出力する。
【００３３】
符号化部１２５は、アプリケーション１１１が送信した転送対象データを取得する。また、符号化部１２５は、符合長決定部１２４から、転送対象データを転送するのに最適な符合長を受付ける。符合化部１２５は、符号長決定部１２４から受付けた符号長で、転送対象となるデータを符号化する。符号化部１２５は、符号化したデータを転送部１２６へ出力する。
【００３４】
転送部１２６は、符号化されたデータを符号化部１２５から受付けると、サーバ２０へＵＤＰを用いて転送する。データサイズ取得部１２２〜転送部１２６は、ＲＯＭ１０に格納された転送ソフトウェア１１３を、ＣＰＵ１０３が実行することによって実現される。
【００３５】
次に、利用者端末１０が実行する、データ転送処理の一例について説明する。図７は、利用者端末１０が実行するデータ転送処理の一例を示すフローチャートである。
【００３６】
まず、インターセプト部１２１は、アプリケーション１１１の送信関数を検知したか否か判定する（ステップＳ１１：監視ステップ）。ステップＳ１１の判定がＮＯの場合、インターセプト部１２１は、ステップＳ１１の判定を繰り返す。
【００３７】
ステップＳ１１の判定がＹＥＳの場合、データサイズ取得部１２２は、インターセプト部１２１が共有メモリ１０６に格納した転送対象データのデータサイズを取得する（ステップＳ１３：データサイズ取得ステップ）。
【００３８】
次に、転送時間算出部１２３は、転送対象データのデータサイズにおける符号長毎の転送時間を算出する（ステップＳ１５：関係取得ステップ）。すなわち、ステップＳ１５では、転送対象データのデータサイズにおける符号長と転送時間との関係を取得する。ここで、転送時間の算出処理の詳細について説明する。図８は、転送時間の算出処理の詳細を示すフローチャートの一例である。
【００３９】
転送時間算出部１２３は、データの転送先であるサーバ２０との間で、データサイズと符号長との組み合わせを変えたサンプルデータを用いたテスト転送を行う。転送時間算出部１２３は、テスト転送において、実際の転送環境での符号化時間、復号時間、及び送信時間を取得する（ステップＳ１５１）。
【００４０】
転送時間算出部１２３は、取得した符号化時間、復号時間、及び送信時間を用いて、送信ＰＣの性能比、受信ＰＣの性能比、及び送信性能比を算出する（ステップＳ１５２）。具体的には、転送時間算出部１２３は、取得した実転送環境での符号化時間と、図６（Ａ）に示した符号化時間との関係から、以下の式を用いて、送信ＰＣの性能比を求めることができる。
送信ＰＣの性能比＝
（実転送環境での符号化時間−転送時間算出用データの符号化時間）／
転送時間算出用データの符号化時間
【００４１】
例えば、１０ＭＢのデータを、符号長１００で符号化したサンプルデータをテスト転送したとする。図６（Ａ）において、１０ＭＢのデータを符号長１００で符号化した場合の符号化時間は１０［ｍｓ］である。この場合、テスト転送の結果得られた符号化時間（実転送環境での符号化時間）が１６[ｍｓ]であれば、送信ＰＣの性能比は、（１６［ｍｓ］−１０［ｍｓ］）／１０［ｍｓ］から０．６と計算される。同様にして、受信ＰＣの性能比は、実転送環境での復号時間と、図６（Ａ）に示した復号時間との関係から求めることができる。また、送信性能比も、実転送環境での送信時間と、図６（Ａ）の送信時間との関係から求めることができる。
【００４２】
転送時間算出部１２３は、転送対象データのデータサイズにおける符号化時間及び復号時間を符号長ごとに算出する（ステップＳ１５３）。具体的には、転送時間算出部１２３は、図６（Ａ）に示した符号化時間を転送対象データのデータサイズに基づいて比例補間し、かつ、送信ＰＣの性能比で補正することにより、転送対象データのデータサイズにおける符号長ごとの符号化時間を求める。また、転送時間算出部１２３は、図６（Ａ）に示した復号時間を転送対象データのデータサイズに基づいて比例補間し、かつ、受信ＰＣの性能比で補正することにより、転送対象データのデータサイズにおける符号長ごとの復号時間を求める。
【００４３】
図６（Ａ）において、各符号長における符号化時間又は復号時間をＦとすると、転送時間算出部１２３は、実転送環境での符号化時間は、以下の式から求めることができる。
実転送環境での符号化時間＝
Ｆ×（転送対象データのデータサイズ／１０ＭＢ）／送信ＰＣの性能比
【００４４】
また、転送時間算出部１２３は、実転送環境での復号時間は、以下の式から求めることができる。
実転送環境での復号時間＝
Ｆ×（転送対象データのデータサイズ／１０ＭＢ）／受信ＰＣの性能比
【００４５】
ここで、転送対象データのデータサイズ＝１５ＭＢ、送信ＰＣの性能比＝０．６、受信ＰＣの性能比＝０．７である場合、符号化時間及び復号時間は、それぞれ図９（Ａ）に示す値となる。
【００４６】
転送時間算出部１２３は、次に、転送対象データのデータサイズにおける送信時間を符号長ごとに算出する（ステップＳ１５４）。具体的には、転送時間算出部１２３は、図６（Ａ）に示したＧ１〜Ｇ３のデータを転送対象データのデータサイズに基づいて比例補間し、かつ、送信性能比で補正することによって、転送対象データのデータサイズでの送信時間を符号長ごとに算出する。
【００４７】
例えば、データのデータサイズが１ＭＢ以上、１００ＭＢ以下の場合、実転送環境での転送時間は、以下の式で求められる。
実転送環境での転送時間＝
｛（Ｇ３−Ｇ２）／（１００ＭＢ−１ＭＢ）×
（転送対象データのデータサイズ−１ＭＢ）＋Ｇ２｝／送信性能比
したがって、転送対象データのデータサイズ＝１５ＭＢ、送信性能比＝１である場合、送信時間は、図９（Ａ）に示す値となる。
【００４８】
転送時間算出部１２３は、符号化時間、復号時間、及び送信時間を合計して、転送時間を算出し（ステップＳ１５５）、処理を終了する。これにより、転送対象データのデータサイズにおける符号長と転送時間との関係が求まる。図９（Ｂ）は、転送対象データのデータサイズにおける符号長と転送時間との関係をグラフにしたものである。
【００４９】
図７に戻り、説明を続ける。符号長決定部１２４は、転送時間算出部１２３が算出した転送時間に基づいて、転送対象データを符号化する際の符号長を決定する（ステップＳ１７：符号長決定ステップ）。本実施形態では、符号長決定部１２４は、転送時間が最小となる符号長を、転送対象データを符号化する際の符号長として決定する。例えば、図９（Ｂ）では、転送時間が最小となる符号長は、「７００」である。そこで、符号長決定部１２４は、「７００」を、転送対象データを符号化する際の符号長として決定する。
【００５０】
符号化部１２５は、ステップＳ１７で決定された符合長で、送信データを符号化する（ステップＳ２１：符号化ステップ）。転送部１２６は、符号化されたデータを送信し（ステップＳ２３）、本処理を終了する。
【００５１】
ＲＰＳとＵＤＰとを組み合わせてデータの転送を行う場合、データをＲＰＳ符号化する際の符号長によって、送信時間が大きく変わる（図６（Ｂ）〜図６（Ｄ））。したがって、ＲＰＳ符号化を固定符号長で行うと、転送対象データのデータサイズによっては、ＴＣＰを用いた転送よりもデータ転送にかかる時間が長くなってしまう可能性がある。この場合、ＵＤＰとＲＰＳとを組み合わせたデータ転送の利点（高速なデータ転送）を生かすことができない。
【００５２】
しかしながら、本実施形態によれば、データサイズ取得部１２２が、転送対象データのデータサイズを取得し、転送時間算出部１２３が、転送対象データのデータサイズにおける符号長と転送時間との関係を取得し、符号長決定部１２４が、転送対象データのデータサイズにおける符号長と転送時間との関係に基づいて、転送対象データを符号化する際の符号長を決定する。そして、符合化部１２５は、決定された符号長で符号化を行う。これにより、転送対象データのデータサイズが転送時間に与える影響を考慮して符号長を決定できるため、転送時間を短縮することができる。クラウドコンピューティングにおいて転送されるデータのデータサイズは様々であるが、本実施形態によれば、転送対象データのデータサイズによって動的に符号長を変えることが可能となるため、データの転送速度を高速化することができる。すなわち、ＲＰＳ符号化に用いる符号長を固定長ではなく、転送対象データのデータサイズによって動的に変更することで、データ転送時間を最適化できる。したがって、ＵＤＰとＲＰＳとを組み合わせたデータ転送において、高速なデータ転送が可能であるという利点を生かすことが可能となる。
【００５３】
また、転送時間算出部１２３は、実験又はシミュレーションに基づいてデータサイズごとに予め作成された符号長と転送時間との関係を補間することによって、取得したデータサイズにおける符号長と転送時間との関係を取得する。これにより、正確な符号長と転送時間との関係を求めることができるため、適切な符号長を求めることが可能となり、データ転送速度を高速化できる。
【００５４】
また、転送時間算出部１２３は、実際のデータ転送環境においてテストデータを利用して取得した転送時間に基づいて、実験又はシミュレーションに基づいてデータサイズごとに予め作成された符号長と転送時間との関係を補正し、補正後の符号長と転送時間との関係に基づいて、転送対象データのデータサイズにおける符号長と転送時間との関係を取得する。これにより、実転送環境の状態を考慮に入れた転送時間を算出できるので、転送時間算出用データのみを用いて転送時間を算出するよりも適切な符号長を求めることができ、データ転送速度を高速化できる。
【００５５】
また、インターセプト部１２１は、アプリケーション１１１からアプリケーション外部の宛先(例えば、アプリケーション２１２)に向かって転送対象データが送信されたか否かを監視する。そして、インターセプト部１２１は、転送対象データが送信された場合に、アプリケーション１１１の送信関数から転送対象データのデータサイズを取得する。これにより、アプリケーション１１１のプログラムコード内に、転送ソフトウェア１１３を起動するためのコードや、転送対象データのデータサイズを転送ソフトウェア１１３に受け渡すためのコード等を記載しておく必要がない。したがって、アプリケーション１１１の改変を行うことなく、利用者端末１０や、サーバ２０で実行される様々なアプリケーションから送信されるデータの転送速度を高速化することができる。
【００５６】
なお、利用者端末１０は、インターセプト部１２１を備えなくともよい。すなわち、注入ＤＬＬ１１２がインストールされなくてもよい。この場合、転送ソフトウェア１１３を起動し、転送対象データのデータサイズをデータサイズ取得部１２２に受け渡すようにアプリケーションを改変すれば、上述の実施形態と同様の効果を得ることができる。
【００５７】
以上、本件の実施形態について詳述したが、本件は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【００５８】
上述の実施形態では、利用者端末１０とサーバ２０との間のデータ転送について説明したが、本件はサーバ同士のデータ転送に対しても適用できる。
【００５９】
なお、上記の利用者端末１０が有する機能は、ＣＰＵ、ＲＯＭ、ＲＡＭ等を備えるコンピュータによって実現することができる。その場合、利用者端末１０が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。
【００６０】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ（Digital Versatile Disc）、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）などの可搬型記録媒体の形態で販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【００６１】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【符号の説明】
【００６２】
１０…情報処理装置
２０…サーバ
１２１…インターセプト部
１２２…データサイズ取得部
１２３…転送時間算出部
１２４…符号長決定部
１２５…符号化部
１２６…転送部
【図１】
0005644262.tif 000002
【図２】
0005644262.tif 000003
【図３】
0005644262.tif 000004
【図４】
0005644262.tif 000005
【図５】
0005644262.tif 000006
【図６】
0005644262.tif 000007
【図７】
0005644262.tif 000008
【図８】
0005644262.tif 000009
【図９】
0005644262.tif 000010