(57)【要約】【課題】送信対象となるデータを収集して外部に送信する装置側での制御により、ネットワーク負荷を増大させることなく、かつ、大きな遅延なしに、かつ、他のアプリケーションが実行する通信への影響を抑えて、データを送信可能な技術を提供する。【解決手段】ネットワークにかかる負荷に関するネットワーク負荷情報を取得し、バッファに蓄積されたデータの蓄積量に関する情報であるバッファ蓄積情報を取得し、自装置で動作する他のアプリケーションのうち注目するアプリケーションが実行する通信に、前記データ送信アプリケーションが実行する動作が与える影響に関する情報である、アプリケーション影響情報を取得し、ネットワーク負荷情報と、バッファ蓄積情報と、アプリケーション影響情報とに基づいて、データ送信アプリケーションが使用する帯域幅およびデータの送信量を制御する。【選択図】図１
2015008389.tif 000002
【特許請求の範囲】
【請求項１】
送信対象となるデータを収集するデータ収集部と、
前記データ収集部によって収集されたデータを蓄積可能なバッファと、
前記バッファに蓄積されたデータを、ネットワークを介して外部に送信するデータ送信アプリケーションと、
前記ネットワークにかかる負荷に関する情報であるネットワーク負荷情報と、前記バッファに蓄積されたデータの蓄積量に関する情報であるバッファ蓄積情報と、自装置で動作する他のアプリケーションのうち注目するアプリケーションが実行する通信に前記データ送信アプリケーションが実行する動作が与える影響に関する情報であるアプリケーション影響情報とに基づいて、前記データ送信アプリケーションが使用する前記ネットワークの帯域幅および前記送信するデータの送信量を制御する送信制御部と、
を備える情報処理装置。
【請求項２】
前記送信制御部は、前記データ送信アプリケーションに設定されている使用可能帯域幅を超えてデータ送信を行うか否かを、前記ネットワーク負荷情報と、前記バッファ蓄積情報と、に基づいて判断し、前記判断結果に基づいて、前記帯域幅および前記送信量を制御する
請求項１に記載の情報処理装置。
【請求項３】
前記ネットワーク負荷情報を取得する第１の取得部と、
前記バッファ蓄積情報を取得する第２の取得部と、
前記アプリケーション影響情報を取得する第３の取得部と、
を更に備え、
前記第３の取得部は、前記アプリケーション影響情報として、前記データ送信アプリケーションのＣＰＵ使用率および前記注目するアプリケーションのＣＰＵ使用率を取得する、
請求項１または２に記載の情報処理装置。
【請求項４】
前記ネットワーク負荷情報を取得する第１の取得部と、
前記バッファ蓄積情報を取得する第２の取得部と、
前記アプリケーション影響情報を取得する第３の取得部と、
を更に備え、
前記第３の取得部は、前記アプリケーション影響情報として、前記データ送信アプリケーションのメモリ使用率および前記注目するアプリケーションのメモリ使用率を取得する、
請求項１または２に記載の情報処理装置。
【請求項５】
前記ネットワーク負荷情報を取得する第１の取得部と、
前記バッファ蓄積情報を取得する第２の取得部と、
前記アプリケーション影響情報を取得する第３の取得部と、
を更に備え、前記第３の取得部は、前記アプリケーション影響情報として、前記注目するアプリケーションにどのようにネットワーク帯域が割り当てられるかを定める規則を取得する、
請求項１または２に記載の情報処理装置。
【請求項６】
前記送信制御部は、
ネットワークが混雑しているか否かを判定するための第１の判定基準と、
バッファにデータが所定の基準を超えて蓄積されているか否かを判定するための第２の判定基準と、
を参照し、
前記ネットワーク負荷情報および前記第１の判定基準に基づいて、ネットワークが混雑していないと判定し、かつ、前記バッファ蓄積情報および前記第２の判定基準に基づいて、バッファにデータが過剰に蓄積されていると判定した場合に、前記データアプリケーションにあらかじめ定められた使用可能帯域幅を超えてデータ送信を行う、
請求項２に記載の情報処理装置。
【請求項７】
前記送信制御部は、
ネットワークが混雑しているか否かを判定するための第１の判定基準と、
バッファにデータが所定の基準を超えて蓄積されているか否かを判定するための第２の判定基準と、
前記注目するアプリケーションが実行する通信が受ける影響を、許容できるか否かを判定するための第３の判定基準を、
を参照し、
前記ネットワーク負荷情報および前記第１の判定基準に基づいて、ネットワークが混雑していないと判定し、かつ、前記バッファ蓄積情報および前記第２の判定基準に基づいて、バッファにデータが過剰に蓄積されていないと判定し、かつ、前記アプリケーション影響情報および前記第３の判定基準に基づいて、前記注目するアプリケーションが実行する通信が受ける影響を許容できないと判定した場合に、前記データアプリケーションがデータを送信する動作を所定時間停止する、
請求項３から５のいずれかに記載の情報処理装置。
【請求項８】
送信対象となるデータを収集するデータ収集部と、
前記データ収集部によって収集されたデータを蓄積可能なバッファと、
前記バッファに蓄積されたデータを、ネットワークを介して外部に送信するデータ送信アプリケーションと、
前記ネットワークにかかる負荷に関するネットワーク負荷情報を取得する第１の取得部と、
前記バッファに蓄積されたデータの蓄積量に関する情報であるバッファ蓄積情報を取得する第２の取得部と、
他の装置で動作するアプリケーションのうち注目するアプリケーションが実行する通信に、前記データ送信アプリケーションが実行する動作が与える影響に関する情報である、第２のアプリケーション影響情報を取得する第４の取得部と、
前記ネットワーク負荷情報と、前記バッファ蓄積情報と、前記第２のアプリケーション影響情報とに基づいて、前記データ送信アプリケーションが使用する帯域幅およびデータの送信量を制御する送信制御部と、
を備え、
前記第４の取得部は、前記第２のアプリケーション影響情報として、前記注目するアプリケーションにどのようにネットワーク帯域が割り当てられるかを定める規則を取得する、
情報処理装置。
【請求項９】
送信対象となるデータを収集するデータ収集部と、
前記データ収集部によって収集されたデータを蓄積可能なバッファと、
前記バッファに蓄積されたデータを、ネットワークを介して外部に送信するデータ送信アプリケーションと、
を備えるコンピュータが、
前記ネットワークにかかる負荷に関するネットワーク負荷情報を取得し、
前記バッファに蓄積されたデータの蓄積量に関する情報であるバッファ蓄積情報を取得し、
自装置で動作する他のアプリケーションのうち注目するアプリケーションが実行する通信に、前記データ送信アプリケーションが実行する動作が与える影響に関する情報である、アプリケーション影響情報を取得し、
前記ネットワーク負荷情報と、前記バッファ蓄積情報と、前記アプリケーション影響情報とに基づいて、前記データ送信アプリケーションが使用する帯域幅およびデータの送信量を制御する、
情報処理方法。
【請求項１０】
送信対象となるデータを収集するデータ収集部と、
前記データ収集部によって収集されたデータを蓄積するバッファと、
前記バッファに蓄積されたデータを、ネットワークを介して外部に送信するデータ送信アプリケーションと、
を備えるコンピュータに、
前記ネットワークにかかる負荷に関するネットワーク負荷情報を取得する処理と、
前記バッファに蓄積されたデータの蓄積量に関する情報であるバッファ蓄積情報を取得する処理と、
自装置で動作する他のアプリケーションのうち注目するアプリケーションが実行する通信に、前記データ送信アプリケーションが実行する動作が与える影響に関する情報である、アプリケーション影響情報を取得する処理と、
前記ネットワーク負荷情報と、前記バッファ蓄積情報と、前記アプリケーション影響情報とに基づいて、前記データ送信アプリケーションが使用する帯域幅およびデータの送信量を制御する処理と、
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ送信を制御する情報処理装置、情報処理方法、および、コンピュータプログラムに関する。
【背景技術】
【０００２】
ある装置が、通信ネットワーク（以下、「ネットワーク」と記載）を介して接続される他の装置宛てにデータを送信すると、当該ネットワークにかかる負荷が増大する。
【０００３】
例えば、自装置の、動作または状態を示す履歴が記録されたログデータ（以下、「ログ」と記載）を収集し、収集したログを外部にある監視サーバなどに送信する情報処理装置が、一般的に知られている。監視サーバに送信したログは、情報処理装置に発生する情報漏洩、不具合または不正利用などの脅威を監視するために用いられる。ログを収集し、監視サーバに送信する目的の一つは、情報処理装置に脅威が発生した場合に、その脅威の原因を解析することである。このような目的のために収集されるログの情報量は、膨大になることが一般的である。情報処理装置が、このような膨大な情報量のログを外部装置である監視サーバに送信すると、ログを送信するだけでネットワークの帯域幅が使い尽くされてしまうおそれがある。このような場合、その情報処理装置の本来の業務が、悪影響をうけるおそれがある。
【０００４】
「トラフィックシェーピング」という技術は、データ送信がネットワークに与える負荷を調整する技術の一例である。トラフィックシェーピングという技術は、あらかじめ制限されたネットワークの帯域幅を超えないように、データ送信の時間間隔を調整し、転送レートを平滑化する技術である。
【０００５】
特許文献１は、トラフィックシェーピングを利用した技術の一例を開示する。トラフィックシェーピングを行う第１の伝送装置は、送信対象のデータを格納するバッファを有する。第１の伝送装置は、バッファからデータを所定レートで読み出して、トラフィックシェーピングを行って、読み出したデータを外部装置に送信する。バッファのリソースが枯渇すると、第１の伝送装置は、トラフィックシェーピングを行う第２の伝送装置に対してデータを送信し、第２の伝送装置に対してトラフィックシェーピングを依頼する。第２の伝送装置は、第１の伝送装置から受信したデータをバッファに格納し、バッファからシェーピング対象であるデータを読み出す。第２の伝送装置は、読み出したデータを、トラフィックシェーピングを行って外部装置に送信する。
【０００６】
特許文献２は、イベントデータを送信制御する技術の一例を開示する。特許文献２が開示する技術は、イベントデータに重要度を付与する。特許文献２が開示する技術は、ネットワーク負荷が低い場合には、全てのイベントデータを外部装置へ送信する。特許文献２が開示する技術は、ネットワーク負荷が高い場合には、高い重要度が付与されたイベントデータのみを外部装置へ送信する。特許文献２が開示する技術は、このように、イベントデータ送信がネットワーク負荷に与える影響を抑える。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１２‐１７５４８１号公報
【特許文献２】特開平１０‐０２８１５１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、特許文献１および特許文献２が開示する技術には、以下に示す課題がある。
【０００９】
特許文献１が開示する技術は、第１の伝送装置の他に、トラフィックシェーピングを行う第２の伝送装置を必要とする。例えば、自装置に関するログを収集して監視サーバにログを送信する装置と、当該装置からログを受信して当該装置に発生した脅威を解析する監視サーバと、を含むシステムを想定する。この場合、特許文献１が開示する技術では、ログを収集する装置側のみでは、データ送信に伴うネットワーク負荷を調整することができない。
【００１０】
特許文献２が開示する技術においては、低い重要度が付与されたログが遅延して送信される。低い重要度が付与されたログも可能な限り遅延しないで送信することが要求される装置には、特許文献２が開示する技術は適用できない。例えば、自装置に関するログを収集して監視サーバにログを送信する装置と、当該装置からログを受信して当該装置に発生した脅威を解析する監視サーバと、を含むシステムを想定する。この場合、監視サーバ側では、脅威を解析するために、発覚した脅威とは直接には関係しないと考えられるログ、または、重要度が低いと考えられるログも必要となることが多い。特許文献２が開示する技術をこのようなシステムに適用すると、場合によっては脅威を解析する作業が遅れることが予想される。
【００１１】
また、例えば、ログを送信する装置が、ログ送信アプリケーションと他のアプリケーションとを同時に実行する場合を想定する。特許文献２が開示する技術においては、ネットワーク負荷が低い場合には、ログ送信アプリケーションの動作が他のアプリケーションが実行する通信に与える影響を考慮することなく、ログ送信アプリケーションを実行する。従って、他のアプリケーションが実行する通信をログ送信アプリケーションが実行する通信よりも優先させたい場合には、特許文献２が開示する技術を用いることはできない。
【００１２】
本発明は、送信対象となるデータを収集して外部に送信する装置側での制御により、ネットワーク負荷を増大させることなく、かつ、大きな遅延なしに、かつ、他のアプリケーションが実行する通信への影響を抑えて、データを送信可能な技術を提供することを主たる目的とする。
【課題を解決するための手段】
【００１３】
本発明の第１の側面は、送信対象となるデータを収集するデータ収集部と、前記データ収集部によって収集されたデータを蓄積可能なバッファと、前記バッファに蓄積されたデータを、ネットワークを介して外部に送信するデータ送信アプリケーションと、前記ネットワークにかかる負荷に関する情報であるネットワーク負荷情報と、前記バッファに蓄積されたデータの蓄積量に関する情報であるバッファ蓄積情報と、自装置で動作する他のアプリケーションのうち注目するアプリケーションが実行する通信に前記データ送信アプリケーションが実行する動作が与える影響に関する情報であるアプリケーション影響情報とに基づいて、前記データ送信アプリケーションが使用する前記ネットワークの帯域幅および前記送信するデータの送信量を制御する送信制御部と、を備える情報処理装置である。
【００１４】
本発明の第２の側面は、送信対象となるデータを収集するデータ収集部と、前記データ収集部によって収集されたデータを蓄積可能なバッファと、前記バッファに蓄積されたデータを、ネットワークを介して外部に送信するデータ送信アプリケーションと、を備えるコンピュータが、前記ネットワークにかかる負荷に関するネットワーク負荷情報を取得し、前記バッファに蓄積されたデータの蓄積量に関する情報であるバッファ蓄積情報を取得し、自装置で動作する他のアプリケーションのうち注目するアプリケーションが実行する通信に、前記データ送信アプリケーションが実行する動作が与える影響に関する情報である、アプリケーション影響情報を取得し、前記ネットワーク負荷情報と、前記バッファ蓄積情報と、前記アプリケーション影響情報とに基づいて、前記データ送信アプリケーションが使用する帯域幅およびデータの送信量を制御する、情報処理方法である。
【００１５】
本発明の第３の側面は、送信対象となるデータを収集するデータ収集部と、前記データ収集部によって収集されたデータを蓄積するバッファと、前記バッファに蓄積されたデータを、ネットワークを介して外部に送信するデータ送信アプリケーションと、を備えるコンピュータに、前記ネットワークにかかる負荷に関するネットワーク負荷情報を取得する処理と、前記バッファに蓄積されたデータの蓄積量に関する情報であるバッファ蓄積情報を取得する処理と、自装置で動作する他のアプリケーションのうち注目するアプリケーションが実行する通信に、前記データ送信アプリケーションが実行する動作が与える影響に関する情報である、アプリケーション影響情報を取得する処理と、前記ネットワーク負荷情報と、前記バッファ蓄積情報と、前記アプリケーション影響情報とに基づいて、前記データ送信アプリケーションが使用する帯域幅およびデータの送信量を制御する処理と、を実行させるプログラムである。
【００１６】
また、本発明の目的は、上記のプログラムが格納されたコンピュータ読み取り可能な記憶媒体によっても達成される。
【発明の効果】
【００１７】
本発明は、送信対象となるデータを収集して外部に送信する装置側での制御により、ネットワーク負荷を増大させることなく、かつ、大きな遅延なしに、かつ、他のアプリケーションが実行する通信への影響を抑えて、データを送信可能な技術を提供することができる。
【図面の簡単な説明】
【００１８】
【図１】本発明の第１の実施の形態にかかる情報処理装置１００の構成を表すブロック図である。
【図２】本発明の第１の実施の形態にかかる情報処理装置１００のハードウェア構成の一例を表す図である。
【図３】本発明の第１の実施の形態にかかる情報処理装置１００の動作を説明するフローチャートである。
【図４】本発明の第１の実施の形態にかかる情報処理装置１００の動作を説明するフローチャートである。
【図５】本発明の第１の実施の形態にかかる情報処理装置１００の動作を説明するフローチャートである。
【図６】本発明の第２実施の形態にかかる情報処理システム１０００の構成を表すブロック図である。
【図７】本発明の第２の実施の形態にかかる情報処理装置２００Ａの構成を表すブロック図である。
【図８】本発明の第３の実施の形態にかかる情報処理装置３００の構成を表すブロック図である。
【発明を実施するための形態】
【００１９】
以下、本発明の実施の形態について、図面を参照して詳細に説明する。
＜第１の実施形態＞ 
[構成の説明]
図１は、第１の実施形態にかかる情報処理装置１００の構成を表すブロック図である。図１において、情報処理装置１００は、データ収集部１１０と、バッファ１２０と、データ送信アプリケーション１３０と、他のアプリケーション１４０と、第１の取得部１５０と、第２の取得部１６０と、第３の取得部１７０と、送信制御部１８０と、を備える。情報処理装置１００は、ネットワーク９００を介して外部装値９０に接続される。情報処理装置１００は、データ収集部１１０が収集したデータを、外部装置９０に送信する。なお、図１には、情報処理装置１００および外部装置９０を１つずつ示しているが、複数の情報処理装置１００および複数の外部装置９０が、ネットワーク９００に接続されていてもよい。
【００２０】
次に、情報処理装置１００の各機能ブロックについて説明する。
【００２１】
データ収集部１１０は、送信対象であるデータを収集する。送信対象であるデータは、例えば、情報処理装置１００が備えるデータ生成部（図示せず）によって所定のタイミングで逐次生成されるものであってもよい。また、データ収集部１１０は、そのようなデータを、所定のタイミングで取得してもよい。あるいは、データ収集部１１０は、新しいデータが生成される度に、データを収集するようにしてもよい。送信対象であるデータは、例えば、情報処理装置１００の、動作または状態を表す履歴を記録するログである。この場合、データ収集部１１０は、情報処理装置１００に関するログを収集する。
【００２２】
バッファ１２０は、データ収集部１１０によって収集されたデータを蓄積する。
【００２３】
データ送信アプリケーション１３０は、バッファ１２０に蓄積されたデータを、ネットワーク９００を介して外部装置９０に送信する。
【００２４】
データ送信アプリケーション１３０には、あらかじめ使用可能な帯域幅が設定される。使用可能な帯域幅とは、データ送信アプリケーション１３０が実行するデータ送信処理が使用することができる、ネットワーク９００の帯域幅
である。使用可能な帯域幅は、データ送信アプリケーション１３０にあらかじめ設定されている。以下、使用可能な帯域幅を「使用可能帯域幅」と記載する。
【００２５】
使用可能帯域幅がどのように定められるかについて説明する。発明の理解を容易にするため、データ送信アプリケーション１３０は、自装置に関するログを送信する、ログ送信アプリケーションであるとして説明をする。例えば、帯域幅が１００Ｍｂｐｓ（megabit per second）であるネットワーク９００に１台の外部装置９０および１０台の情報処理装置１００が接続される場合について考える。この場合、全ての情報処理装置１００によるログ送信処理全体に対して全体の１０％に当たる１０Ｍｂｐｓの帯域幅が定められていたとする。この場合、１台の情報処理装置１００のログ送信処理に許容される使用可能帯域幅は、１０Ｍｂｐｓ／１０台＝１Ｍｂｐｓとなる。ここで、本実施形態および後述する実施形態において、”／”は除算を表す記号である。なお、このようなログ送信処理全体の使用可能帯域幅を全体の何パーセントとするかは、そのネットワークにおいて過去に使用された帯域幅の実績情報に基づいて、ログ送信処理により使用可能帯域幅全てが使用された場合でもネットワーク全体の帯域が溢れることない値が定められるものとするとする。例えば、ネットワークで使用された帯域幅の過去の平均が８０％であるとき、ログ送信処理全体の使用可能帯域幅を１０％に設定しても輻輳が発生する可能性が低いが、３０％に設定すると輻輳が発生する可能性が高い。この場合、ログ送信処理全体の使用可能帯域はあらかじめ１０％に定められる。
【００２６】
データ送信アプリケーション１３０は、バッファ１２０に蓄積されたデータのうち、後述する送信制御部１８０により決定された送信量分のデータを、送信制御部１８０により制御される帯域幅を使用して送信する。後述するように、送信制御部１８０は、原則として、データ送信アプリケーション１３０にあらかじめ定められた使用可能帯域幅の範囲内で、データ送信アプリケーション１３０が用いるネットワークの帯域の制御をおこなう。しかし、送信制御部１８０は、特定の条件を満たした場合に、データ送信アプリケーション１３０にあらかじめ定められた使用可能帯域幅を超えた帯域幅で、データ送信アプリケーション１３０にデータを送信させる。
【００２７】
他のアプリケーション１４０は、情報処理装置１００において動作する、データ送信アプリケーション１３０以外のアプリケーションである。情報処理装置１００が何らかの業務に用いるコンピュータである場合、他のアプリケーション１４０は、例えば、情報処理装置１００の、本来の業務に関するアプリケーションである。他のアプリケーション１４０とデータ送信アプリケーション１３０とは、互いに、ＣＰＵ（Central Processing Unit）、メモリまたはＮＩＣ（Network Interface Card）などのリソースを共有する。他のアプリケーション１４０は、例えば、ネットワーク９００を介してデータまたはアプリケーションをダウンロードしたり、データを送信したりする。他のアプリケーション１４０は一つであっても複数であってもよい。以降、他のアプリケーション１４０のうち、特に注目するアプリケーションを「注目するアプリケーション」と記載する。
【００２８】
第１の取得部１５０は、ネットワーク９００にかかる負荷を表すネットワーク負荷情報を取得する。ここで、ネットワークにかかる負荷とは、情報処理装置１００および外部装置９０を接続するネットワーク９００にかかる負荷をさす。例えば、ネットワーク負荷情報は、データ送信アプリケーション１３０による送信処理に関して測定される測定情報であってもよい。測定情報とは、ラウンドトリップタイム（ＲＴＴ：Round Trip Time）、または、単位時間あたりに送信が完了した（受信完了を示す応答を受信した分の）データ量であってもよい。ネットワーク負荷情報は、過去の測定情報の変動に基づいて生成された情報であってもよい。
【００２９】
具体的には、測定されたＲＴＴの値が大きくなり続けていれば、ネットワーク負荷情報は、次に送信処理を行う際のネットワークが混んでいることを表す情報となる。また、測定された単位時間あたりの送信完了データ量が大きくなり続けていれば、ネットワーク負荷情報は、次に送信処理を行う際のネットワークがすいていることを表す情報となる。
【００３０】
第２の取得部１６０は、バッファ１２０に蓄積されたデータの蓄積量に基づくバッファ蓄積情報を取得する。バッファ蓄積情報は、例えば、バッファ１２０に蓄積されたデータの蓄積量を表す情報である。バッファ蓄積情報は、例えば、バッファ１２０に蓄積されたデータの蓄積量（バッファ蓄積量）の変化率（バッファ蓄積率）を表す情報であってもよい。バッファ蓄積率は、例えば次式（１）により算出される値である。
【００３１】
[バッファ蓄積率]＝（[新たに収集されたデータのサイズ]＋[既にバッファ１２に蓄積されてまだ送信されていないデータのサイズ]）／[前回送信処理を行った際のバッファの蓄積量]・・・（１）。
【００３２】
また、[前回送信処理を行った際のバッファの蓄積量]とは、データ送信アプリケーション１３０が前回データを送信した際にバッファ１２０に蓄積されていたデータのサイズを表す。
【００３３】
バッファ蓄積情報は、例えば、直近の所定期間におけるバッファ蓄積率の平均値を表す情報であってもよい。
【００３４】
バッファ蓄積情報は、例えば、バッファ１２０にその時点で蓄積されているログが、その時点の通信スループットで全て送信されるまでの所要時間を表す情報であってもよい。バッファ蓄積情報は、例えば、通信スループットの変動の傾向を表す傾向情報が加味された情報であってもよい。バッファ蓄積情報は、例えば、トレンド分析等の技術により生成されたバッファ蓄積量の傾向情報を表す情報であってもよい。
【００３５】
第３の取得部１７０は、注目するアプリケーションが実行する通信にデータ送信アプリケーション１３０の動作が与える影響に関する情報である、アプリケーション影響情報を取得する。第３の取得部１７０は、例えば、ＯＳ（Operating System)から得られる情報、または、ＮＩＣ使用率などの情報を、アプリケーション影響情報として取得する。
【００３６】
第３の取得部１７０は、例えば、データ送信アプリケーション１３０のＣＰＵ使用率および注目するアプリケーションのＣＰＵ使用率を、アプリケーション影響情報として取得する。例えば、ある時点で注目するアプリケーションのＣＰＵ使用率が高い場合、注目するアプリケーションが実行する通信に対して、データ送信アプリケーション１３０がＣＰＵを使用することが、いくらかの影響を与えることが考えられる。
【００３７】
第３の取得部１７０は、例えば、データ送信アプリケーション１３０のメモリ使用率および注目するアプリケーションのメモリ使用率を、アプリケーション影響情報として取得する。例えば、ある時点で注目するアプリケーションのメモリ使用率が高い場合、注目するアプリケーションが実行する通信に対して、データ送信アプリケーション１３０がメモリを使用することが、いくらかの影響を与えることが考えられる。
【００３８】
第３の取得部１７０は、例えば、注目するアプリケーションにどのようにネットワーク帯域が割り当てられるかを定める規則を、アプリケーション影響情報として取得する。例えば、「ネットワークの帯域が空いている限り、最大の速度で送信する」という規則に従ってネットワーク帯域が割り当てられる特定のアプリケーションを想定する。このような特定のアプリケーションが動作する際に、データ送信アプリケーション１３０がデータ送信を実行すると、
特定のアプリケーションが実行する通信は、データ送信アプリケーション１３０が使用する帯域の分、影響を受ける。
【００３９】
第３の取得部１７０は、例えば、注目するアプリケーションの起動または終了に関する情報を、アプリケーション影響情報として取得してもよい。
【００４０】
送信制御部１８０は、バッファ蓄積情報と、ネットワーク負荷情報と、アプリケーション影響情報とに基づいて、
データ送信アプリケーション１３０が使用するネットワーク９００の帯域幅およびデータの送信量を制御する。送信制御部１８０は、データ送信アプリケーション１３０を制御する際、以下に示す３つの判定基準を参照する。
【００４１】
すなわち、ネットワークが混雑しているか否かを判定するための第１の判定基準、バッファにデータが所定の基準を超えて蓄積されているか否かを判定するための第２の判定基準、および、注目するアプリケーションが実行する通信が受ける影響を、許容できるか否かを判定するための第３の判定基準である。
【００４２】
送信制御部１８０は、ネットワーク負荷情報および第１の判定基準に基づいて、ネットワークが混雑していないと判定し、かつ、バッファ蓄積情報および第２の判定基準に基づいて、バッファにデータが所定の基準を超えて蓄積されていると判定した場合に、データ送信アプリケーション１３０にあらかじめ定められた使用可能帯域幅を超えた帯域幅を用いてデータ送信を行うよう制御する。
【００４３】
送信制御部１８０は、前記ネットワーク負荷情報および前記第１の判定基準に基づいて、ネットワークが混雑していないと判定し、かつ、前記バッファ蓄積情報および前記第２の判定基準に基づいて、バッファにデータが所定の基準を超えて蓄積されていないと判定し、かつ、前記アプリケーション影響情報および前記第３の判定基準に基づいて、前記注目するアプリケーションが実行する通信が受ける影響を許容できないと判定した場合に、前記データアプリケーションがデータを送信する動作を所定時間停止するよう制御する。
【００４４】
図２は、図１に示す情報処理装置１００のハードウェア構成の一例を示す図である。
【００４５】
図２に示した情報処理装置（コンピュータ）１００を構成するハードウェアは、ＣＰＵ１、メモリ２、記憶装置３、通信インターフェース（Ｉ／Ｆ）４を備える。情報処理装置１００は、入力装置５または出力装置６を備えていてもよい。情報処理装置１００の機能は、例えばＣＰＵ１が、メモリ２に読み出されたコンピュータプログラム（ソフトウェアプログラム、以下単に「プログラム」と記載する）を実行することにより実現される。実行に際して、ＣＰＵ１は、通信インターフェース４、入力装置５および出力装置６を適宜制御する。
【００４６】
尚、本実施形態および後述する各実施形態を例として説明される本発明は、係るプログラムが格納されたコンパクトディスク等の不揮発性の記憶媒体８によっても構成される。記憶媒体８が格納するプログラムは、例えばドライブ装置７により読み出される。
【００４７】
情報処理装置１００が実行する通信は、例えばＯＳが提供する機能を使ってアプリケーションプログラムが通信インターフェース４を制御することによって実現される。入力装置５は、例えばキーボード、マウスまたはタッチパネルである。出力装置６は、例えばディスプレイである。情報処理装置１００は、２つ以上の物理的に分離した装置が有線または無線で接続されることによって構成されていてもよい。
【００４８】
図２に示すハードウェア構成例は、後述する各実施形態にも適用可能である。なお、情報処理装置１００は専用の装置であってもよい。なお、情報処理装置１００およびその各機能ブロックのハードウェア構成は、上述の構成に限定されない。
【００４９】
また、情報処理装置１００は、インターネット、ＬＡＮ（Local Area Network）、公衆回線網、無線通信網またはこれらの組合せ等によって構成されるネットワーク９００を介して、外部装置９０に接続される。外部装置９０は、例えば、ＣＰＵと、メモリと、ハードディスク等の記憶装置と、ネットワークインターフェースとを備えたコンピュータ装置によって構成される。
【００５０】
[動作の説明]
以上のように構成された情報処理装置１００の動作を、図３、図４および図５を参照して説明する。情報処理装置１００の動作を、データ収集動作とデータ送信制御動作の２つの動作に分けてそれぞれ説明する。
【００５１】
まず、データ収集動作を説明する。図３は、情報処理装置１００が実行するデータ収集動作を説明するフローチャートである。
【００５２】
データ収集部１１０は、送信対象となるデータを収集する（ステップＳ１０１）。
【００５３】
次に、データ収集部１１０は、収集したデータをバッファ１２０に蓄積する（ステップＳ１０２）。これにより、バッファ１２０には、後述するデータ送信制御動作において送信されずにバッファ１２０に残って蓄積されているデータと、Ｓ１０１で新たに収集されたデータとが蓄積される。
【００５４】
以上の動作を、データ収集部１１０は、所定間隔または新たなデータが生成されるタイミング等で繰り返す。
【００５５】
次に、データ送信制御動作を説明する。図４は、情報処理装置１００が実行するデータ送信制御動作を説明するフローチャートである。
【００５６】
第１の取得部１５０は、ネットワーク９００にかかる負荷に関する情報であるネットワーク負荷情報を取得する（ステップＳ２０１）。
【００５７】
第２の取得部１６０は、バッファ１２０に蓄積されたデータの蓄積量に関する情報であるバッファ蓄積情報を取得する（ステップＳ２０２）。
【００５８】
第３の取得部１７０は、自装置（情報処理装置１００）で動作する他のアプリケーションのうち注目するアプリケーションが実行する通信に、データ送信アプリケーション１３０の動作が与える影響に関する情報である、アプリケーション影響情報を取得する（ステップＳ２０３）。
【００５９】
送信制御部１８０は、ステップＳ２０１で取得したネットワーク負荷情報と、ステップＳ２０２で取得したバッファ蓄積情報と、ステップＳ２０３で取得したアプリケーション影響情報とに基づいて、データ送信アプリケーション１３０が使用する帯域幅および次回のデータの送信量を決定する（ステップＳ２０４）。ステップＳ２０４の動作の詳細は、後述する。
【００６０】
データ送信アプリケーション１３０は、バッファ１２０に蓄積されたデータのうち、ステップＳ２０４で決定された送信量分のデータを、決定された帯域幅を使用して外部装置９０に対して送信する（ステップＳ２０５）。
【００６１】
以上の動作を、情報処理装置１００は、所定間隔またはあらかじめ定められたスケジュールに従って繰り返す。なお、ステップＳ２０１からステップＳ２０３までの動作の順番は、図４に示した順番には限定されない。
【００６２】
次に、ステップＳ２０４の動作の詳細を、図５を用いて説明する。図５は、図４に示すステップＳ２０４の動作の詳細を説明するフローチャートである。送信制御部１８０は、第１の取得部が取得したネットワーク負荷情報と、ネットワークが混雑しているか否かを判定するための第１の判定基準とを用いて、ネットワークが混雑しているか否かを判定する（ステップＳ３０１）。
【００６３】
第１の判定基準は、例えば、ラウンドトリップタイム（ＲＴＴ）、または、単位時間あたりに送信が完了した（受信完了の応答を受信した分の）データ量の閾値である。送信制御部１８０が、ネットワークが混雑していると判定した場合（ステップＳ３０１においてＹＥＳ）、送信制御部１８０は、あらかじめ定められた使用可能帯域幅の範囲内で、データ送信アプリケーション１３０が使用する帯域幅および次回のデータの送信量を制御する（ステップＳ３０４）。
【００６４】
送信制御部１８０が、ネットワークが混雑していないと判定した場合（ステップＳ３０１においてＮＯ）、送信制御部は、第２の取得部が取得したバッファ蓄積情報と、バッファにデータが所定の基準を超えて蓄積されているか否かを判定するための第２の判定基準とに基づいて、バッファにデータが所定の基準を超えて蓄積されているか否かを判定する（ステップＳ３０２）。第２の判定基準は、例えば、バッファ蓄積量の閾値、または、バッファ蓄積率の閾値である。
【００６５】
第２の判定基準は、例えば、バッファ１２０にその時点で蓄積されているログが、その時点の通信スループットで全て送信されるまでの所要時間の閾値であってもよい。送信制御部１８０が、バッファにデータが所定の基準を超えて蓄積されていると判定した場合（ステップＳ３０２においてＹＥＳ）、送信制御部は、データ送信アプリケーション１３０にあらかじめ定められた使用可能帯域を超えて、データ送信アプリケーション１３０が使用する帯域幅および次回のデータの送信量を制御する（ステップＳ３０７）。ステップＳ３０７で述べた動作の詳細は、後述する。
【００６６】
送信制御部１８０が、バッファにデータが所定の基準を超えて蓄積されていないと判定した場合（ステップＳ３０２においてＮＯ）、送信制御部は、第３の取得部が取得したアプリケーション影響情報と、第３の判定基準とに基づいて、データ送信アプリケーション１３０の動作により、注目するアプリケーションが実行する通信が受ける影響を許容できるか否かを判定する（ステップＳ３０３）。
【００６７】
第３の判定基準は、例えば、データ送信アプリケーション１３０および注目するアプリケーションのＣＰＵ使用率の閾値である。第３の判定基準は、例えば、データ送信アプリケーション１３０および注目するアプリケーションのメモリ使用率の閾値である。第３の判定基準は、例えば、注目するアプリケーションにどのようにネットワーク帯域が割り当てられるかを定める規則の内容が、所定の条件を満たすことである。
【００６８】
例えば、当該規則が「ネットワークの帯域が空いている限り、最大の速度で送信する」という規則である場合、第３の判定基準は、注目するアプリケーションが実行する通信が受ける影響を許容できないと判定する。送信制御部１８０が、注目するアプリケーションへの影響を許容できないと判断した場合（ステップＳ３０３においてＹＥＳ）、送信制御部１８０は、データ送信アプリケーション１３０のデータ送信処理を一時中断する（ステップＳ３０５）。このとき、一時中断する時間は、一定の値であってもよい。一時中止する頻度を、送信制御部１８０が記憶しておき、当該頻度に基づいて、一時中断する時間を決定してもよい。
【００６９】
送信制御部１８０がデータ送信アプリケーション１３０が実行するデータ送信処理を一時中断する期間は、情報処理装置１００が、データ送信制御動作を行う時間間隔よりも長いことが好ましい。例えば、データ送信制御動作が１秒ごとに行われるとすると、一時中断する期間は１０秒間である。
【００７０】
送信制御部１８０が、注目するアプリケーションへの影響を許容できると判断した場合（ステップＳ３０３においてＮＯ）、送信制御部１８０は、あらかじめ定められた使用可能帯域幅の範囲内で、データ送信アプリケーション１３０が使用する帯域幅および次回のデータの送信量を制御する（ステップＳ３０６）。 
ここで、ステップＳ３０７の動作の詳細を説明する。
【００７１】
送信制御部１８０は、使用可能帯域幅を超える帯域幅としてあらかじめ定められた所定の帯域幅を決定してもよい。例えば、データ送信アプリケーション１３０の使用可能帯域幅が１Ｍｂｐｓと定められる場合、送信制御部１８０は、使用可能帯域幅を超えた帯域幅として２Ｍｂｐｓを決定し、２Ｍｂｐｓで送信可能な送信量を決定してもよい。また、この場合、送信制御部１８０は、ネットワーク負荷情報が所定の混雑条件を満たさない間、送信処理の度に段階的に増加させる送信量を決定してもよい。
【００７２】
もし、前回のデータ送信アプリケーション１３０の送信処理において使用可能帯域幅を超える帯域幅を決定していたのであれば、送信制御部１８０は、使用可能帯域幅を超えない帯域幅を新たに決定する。もし、前回のデータ送信アプリケーション１３０の送信処理においても使用可能帯域幅を超えない帯域幅を決定していたのであれば、送信制御部１８０は、帯域幅を変更しなくてよい。また、この場合も、送信制御部１８０は、ネットワーク負荷情報が所定の混雑条件を満たさない間、送信処理の度に段階的に増加させる送信量を決定してもよい。
【００７３】
また、送信制御部１８０は、ネットワーク負荷情報が所定の混雑条件を満たす場合は、使用可能帯域幅を超えない帯域幅であって現時点より小さい帯域幅を決定し、決定した帯域幅に基づき前記送信量を制御してもよい。例えば、使用可能帯域幅が１Ｍｂｐｓで前回使用した帯域幅が１Ｍｂｐｓであるとき、送信制御部１８０は、０．１Ｍｂｐｓの帯域幅を決定してもよい。また、この場合、送信制御部１８０は、決定した帯域幅で送信する送信量を、トレンド分析等を用いて動的に決定してもよい。例えば、送信制御部１８０は、次回の送信処理を実行する際のネットワーク負荷をトレンド分析による傾向情報を用いて予測することにより、予測したネットワーク負荷の程度に応じて、現時点よりも小さな送信量を動的に決定してもよい。あるいは、送信制御部１８０は、このようなケースにあらかじめ定められた所定の小さなサイズの送信量（例えば、１バイト）を決定してもよい。
【００７４】
次に、第１の実施形態にかかる情報処理装置１００が奏する効果を説明する。
【００７５】
第１の実施形態にかかる情報処理装置１００は、送信対象となるデータを収集して外部に送信する装置側での制御により、ネットワーク負荷を増大させることなく、かつ、大きな遅延なしに、かつ、他のアプリケーションが実行する通信への影響を抑えて、データを送信可能な技術を提供することができる。
【００７６】
その理由は、送信制御部１８０が、ネットワーク負荷情報と、バッファ蓄積情報と、アプリケーション影響情報とに基づいて、データ送信アプリケーション１３０が使用する帯域幅およびデータの送信量を制御するからである。
【００７７】
第１の実施形態にかかる情報処理装置１００は、バッファにデータが所定の基準を超えて蓄積されており、かつ、次回送信処理時のネットワークの負荷が高くないと予想される場合に、データ送信アプリケーション１３０に設定された使用可能帯域幅を超えて、次回の送信処理で使用する帯域幅および送信量を制御する。これにより、第１の実施形態にかかる情報処理装置１００は、バッファ蓄積量を減らすことが可能となる。その結果、本実施の形態は、収集されてから送信されるまでに遅延が生じるログを減らすことができる。
【００７８】
第１の実施形態にかかる情報処理装置１００は、次回送信処理を実行する際のネットワークにかかる負荷が高いと予想される場合には、バッファ蓄積情報に関わらず、データ送信アプリケーション１３０に設定された使用可能帯域幅の範囲内で、次回の送信処理で使用する帯域幅および送信量を制御する。これにより、第１の実施形態にかかる情報処理装置１００は、ネットワークの混雑を抑制することができる。
【００７９】
第１の実施形態にかかる情報処理装置１００は、注目するアプリケーションが実行する通信がデータ送信アプリケーション１３０の動作から受ける影響を、許容できない場合には、ネットワークが空いている状態であっても、データ送信アプリケーション１３０のデータ送信処理を一時中断する。これにより、第１の実施形態にかかる情報処理装置１００は、データ送信アプリケーション１３０の動作が他のアプリケーションが実行する通信に与える影響を、抑えることができる。
【００８０】
＜第２の実施形態＞
次に、上述した第１の実施形態に係る情報処理装置１００を基本とする第２の実施形態について説明する。
【００８１】
図６は、第２の実施形態にかかる負荷分散装置２００Ａおよび２００Ｂを含む、情報処理システム１０００の構成を表す図である。
【００８２】
図６に示すように、第２の実施形態においては、ネットワーク９００に、少なくとも２台の情報処理装置（２００Ａおよび２００Ｂ）が接続される。
【００８３】
図７は、図６に示す情報処理装置２００Ａの構成を表すブロック図である。図１に示した構成と実質的に同一の構成には同一の符号が付されているので説明は省略する。図７に示すように、第２の実施形態にかかる情報処理装置２００Ａは、第３の取得部１７０に代えて、第４の取得部２７０Ａを備え、送信制御部１８０に代えて、送信制御部２８０を備える。
【００８４】
また、情報処理装置２００Ａが備える他のアプリケーション１４０と、情報処理装置２００Ｂが備える他のアプリケーション１４０とを区別する目的で、情報処理装置２００Ａが備える他のアプリケーション１４０を、「他のアプリケーション１４０Ａ」と記載する。情報処理装置２００Ｂが備える他のアプリケーション１４０を、「他のアプリケーション１４０Ｂ」と記載する。
【００８５】
情報処理装置２００Ａが備える第４の取得部２７０は、他の情報処理装置（例えば情報処理装置２００Ｂ）が備える他のアプリケーション（例えば、他のアプリケーション１４０Ｂ）にどのようにネットワーク帯域が割り当てられるかを定める規則を、アプリケーション影響情報として取得する。
【００８６】
送信制御部２８０は、第１の取得部１５０が取得したネットワーク負荷情報、第２の取得部が取得したバッファ蓄積情報、および、第４の取得部２７０が取得したアプリケーション影響情報に基づいて、データ送信アプリケーション１３０が使用する帯域幅およびデータの送信量を制御する。
【００８７】
第２の実施形態にかかる情報処理装置２００が奏する効果を説明する。
【００８８】
第２の実施形態にかかる情報処理装置２００（例えば情報処理装置２００Ａ）は、他の装置（例えば情報処理装置２００Ｂ）で動作するアプリケーションのうち注目するアプリケーション（例えば、他のアプリケーション１４０Ｂ）が実行する通信にデータ送信アプリケーション１３０の動作が与える影響を考慮して、データ送信アプリケーション１３０を制御する。これにより、データ送信アプリケーション１３０の動作が他のアプリケーションが実行する通信に与える影響を抑えることができる。
【００８９】
＜第３の実施形態＞
次に、上述した第１の実施形態に係る情報処理装置１００を基本とする第３の実施形態について説明する。図８は、第３の実施形態にかかる情報処理装置３００の構成を示すブロック図である。情報処理装置３００は、データ収集部３１０と、バッファ３２０と、データ送信アプリケーション３３０と、他のアプリケーション３４０と、送信制御部３８０と、を備える。
情報処理装置３００は、ネットワーク９００を介して外部装置９０と接続される。
【００９０】
データ収集部３１０は、送信対象となるデータを収集する。バッファ３２０は、データ収集部によって収集されたデータを蓄積する。データ送信アプリケーション３３０は、バッファに蓄積されたデータを、ネットワーク９００を介して外部装置９０に送信する。
【００９１】
送信制御部３８０は、ネットワーク９００にかかる負荷に関する情報であるネットワーク負荷情報と、バッファ１２０に蓄積されたデータの蓄積量に関する情報であるバッファ蓄積情報と、自装置（情報処理装置３００）で動作する他のアプリケーション３４０のうち注目するアプリケーションが実行する通信にデータ送信アプリケーション３３０が実行する動作が与える影響に関する情報であるアプリケーション影響情報と、に基づいて、データ送信アプリケーション３３０が使用する、ネットワーク９００の帯域幅およびデータの送信量を制御する。
【００９２】
第３の実施形態にかかる情報処理装置３００が奏する効果を説明する。第３の実施形態にかかる情報処理装置３００は、送信対象となるデータを収集して外部に送信する装置側での制御により、ネットワーク負荷を増大させることなく、かつ、大きな遅延なしに、かつ、他のアプリケーションが実行する通信への影響を抑えて、データを送信可能な技術を提供することができる。
【００９３】
＜各実施形態の変形例＞
第１の実施形態において、情報処理装置１００により送信対象とされるデータがログである例を中心に説明したが、本実施の形態は、その他のデータを送信対象とする場合にも適用可能である。
【００９４】
第１の実施形態において、情報処理装置１００は、データ送信制御動作（使用する帯域幅および送信量を決定する動作）を、外部へのデータ送信処理を実行する度に行ってもよいし、複数の送信処理に対して１回の送信制御動作を行ってもよい。例えば、送信処理の実行間隔が長い場合、または、ネットワーク全体の負荷状況が頻繁に変化する環境では、情報処理装置１００は、データ送信処理を実行する度にデータ送信制御動作を行うことが望ましい。また、送信処理の実行間隔が短い場合、または、ネットワーク全体の負荷状況があまり変化しない環境では、情報処理装置１００は、複数の送信処理に対して１回の送信制御動作を行ってもよい。
【００９５】
上述の変形例は、他の実施形態にも適用可能である。
【００９６】
また、上述した各実施の形態は、適宜組み合わせて実施されることが可能である。また、本発明は、上述した各実施の形態に限定されず、様々な態様で実施されることが可能である。
【００９７】
各ブロック図に示したブロック分けは、説明の便宜上から表された構成である。各実施形態を例に説明された本発明は、その実装に際して、各ブロック図に示した構成には限定されない。
【００９８】
以上、本発明を実施するための形態について説明したが、上記実施の形態は本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明はその趣旨を逸脱することなく変更、改良され得ると共に、本発明にはその等価物も含まれる。
【産業上の利用可能性】
【００９９】
本発明は、データの送信を制御する装置、方法およびプログラムに用いることができる。
【符号の説明】
【０１００】
１００  情報処理装置
１１０  データ収集部
１２０  バッファ
１３０  データ送信アプリケーション
１４０  他のアプリケーション
１５０  第１の取得部
１６０  第２の取得部
１７０  第３の取得部
１８０  送信制御部
９０  外部装置
２００Ａ  情報処理装置
２００Ｂ  情報処理装置
１４０Ａ  他のアプリケーション
１４０Ｂ  他のアプリケーション
２７０  第４の取得部
２８０  送信制御部
３００  情報処理装置
３１０  データ収集部
３２０  バッファ
３３０  データ送信アプリケーション
３４０  他のアプリケーション
３８０  送信制御部
９００  ネットワーク
１０００  情報処理システム
【図１】
2015008389.tif 000003
【図２】
2015008389.tif 000004
【図３】
2015008389.tif 000005
【図４】
2015008389.tif 000006
【図５】
2015008389.tif 000007
【図６】
2015008389.tif 000008
【図７】
2015008389.tif 000009
【図８】
2015008389.tif 000010