(57)【要約】【課題】転送対象データ、転送先の装置、および転送時のデータ群のサイズを決定する際の計算量を抑制する。【解決手段】転送プログラムは、データを受信し、データを受信した情報処理装置の負荷状況に基づいて、データのうち他の情報処理装置に転送するデータの候補である転送データ候補を選択し、複数の他の情報処理装置の負荷状況に基づいて、複数の他の情報処理装置のうちデータの転送先の候補となる転送先装置候補を選択し、情報処理装置と転送先装置候補との間のスループットに基づいて、転送データ候補から転送対象データを決定し、転送先装置候補から転送対象データの転送先装置を決定し、転送対象データを含むデータ群のサイズを決定し、決定された転送対象データをデータ群毎に転送先装置に転送する処理を情報処理装置に実行させる。【選択図】図１８
2020149249.tif 000002
【特許請求の範囲】
【請求項１】
データを受信し、
前記データを受信した情報処理装置の負荷状況に基づいて、前記データのうち他の情報処理装置に転送するデータの候補である転送データ候補を選択し、
複数の前記他の情報処理装置の負荷状況に基づいて、前記複数の他の情報処理装置のうち前記データの転送先の候補となる転送先装置候補を選択し、
前記情報処理装置と前記転送先装置候補との間のスループットに基づいて前記転送データ候補から転送対象データを決定し、前記スループットに基づいて前記転送先装置候補から前記転送対象データの転送先装置を決定し、前記スループットに基づいて前記転送対象データを含むデータ群のサイズを決定し、
決定された前記転送対象データを前記データ群毎に前記転送先装置に転送する
処理を前記情報処理装置に実行させるための転送プログラム。
【請求項２】
情報処理端末が前記データを前記情報処理装置に送信してから、他の情報処理端末が前記データを受信するまでの期間が所定期間以下となるように、前記転送対象データ、前記転送先装置、前記データ群のサイズを決定する
処理を前記情報処理装置に実行させることを特徴とする請求項１記載の転送プログラム。
【請求項３】
前記情報処理装置の、前記データを一時記憶するメモリの使用量、前記データの入力頻度、および前記データを記憶する記憶装置への入出力量に基づいて、前記転送データ候補を選択し、
前記複数の他の情報処理装置の、前記データを一時記憶するメモリの使用量、前記データの入力頻度、および前記データを記憶する記憶装置への入出力量に基づいて、前記転送先装置候補を選択する
処理を前記情報処理装置に実行させることを特徴とする請求項１または２記載の転送プログラム。
【請求項４】
決定した前記転送対象データを示す識別情報、前記転送先装置を示す識別情報、前記データ群のサイズをデータ転送設定として記録し、
前記情報処理装置の負荷が低下した場合、前記データ転送設定を削除する
処理を前記情報処理装置に実行させることを特徴とする請求項１乃至３のうち何れか１項に記載の転送プログラム。
【請求項５】
情報処理装置が、
データを受信し、
前記情報処理装置の負荷状況に基づいて、前記データのうち他の情報処理装置に転送するデータの候補である転送データ候補を選択し、
複数の前記他の情報処理装置の負荷状況に基づいて、前記複数の他の情報処理装置のうち前記データの転送先の候補となる転送先装置候補を選択し、
前記情報処理装置と前記転送先装置候補との間のスループットに基づいて、前記転送データ候補から転送対象データを決定し、前記転送先装置候補から前記転送対象データの転送先装置を決定し、前記転送対象データを含むデータ群のサイズを決定し、
決定された前記転送対象データを前記データ群毎に前記転送先装置に転送する
処理を実行することを特徴とする転送方法。
【請求項６】
情報処理装置であって、
データを受信する受信部と、
前記情報処理装置の負荷状況に基づいて、前記データのうち他の情報処理装置に転送するデータの候補である転送データ候補を選択する転送データ候補選択部と、
複数の前記他の情報処理装置の負荷状況に基づいて、前記複数の他の情報処理装置のうち前記データの転送先の候補となる転送先装置候補を選択する転送先装置候補選択部と、
前記情報処理装置と前記転送先装置候補との間のスループットに基づいて、前記転送データ候補から転送対象データを決定し、前記転送先装置候補から前記転送対象データの転送先装置を決定し、前記転送対象データを含むデータ群のサイズを決定する決定部と、
決定された前記転送対象データを前記データ群毎に前記転送先装置に転送する転送部と
を備えることを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、転送プログラム、転送方法、および転送装置に関する。
【背景技術】
【０００２】
情報処理端末からアップロードされる大量のデータを複数のサーバで収集し、分散して蓄積するシステムが利用されている。
【０００３】
関連する技術として、高負荷ブローカノードが転送していた意味情報を転送可能で低負荷状態にある他のブローカノードを探索し、低負荷ブローカノードへセンサノードの収容関係を切り替える技術が提案されている（例えば、特許文献１を参照）。
【０００４】
関連する技術として、データ提供者は、ブローカ手段上の宛先にデータを送信し、データ受信者は、該宛先を受信対象としてブローカに指定し、該宛先に送信されてきたデータを、該ブローカが中継する技術が提案されている（例えば、特許文献２を参照）。
【０００５】
関連する技術として、センサから送信されたセンサ情報を記憶するとともに、センサ情報を通信ネットワークで接続された他のサーバ装置へ配信し、他のサーバ装置から配信されたセンサ情報を記憶する技術が提案されている（例えば、特許文献３を参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】国際公開第２０１０／１０７１０５号
【特許文献２】特開２０１７−９１４５４号公報
【特許文献３】特開２０１５−２３２８２０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
データを分散して蓄積するシステムにおいて、アップロードされたデータが受信したサーバのキャパシティを越える場合、そのサーバは、他のサーバにデータを転送し、転送先のサーバに格納させる。この際に、転送対象データ、転送先サーバ、および転送時のデータ群のサイズを、スループットに基づいて決定することが考えられる。しかし、スループットを最大化するために最適な転送対象データ、転送先サーバ、および転送時のデータ群のサイズを決定する場合、サーバとデータの数に応じて計算量が増加する。
【０００８】
１つの側面として、本発明は、転送対象データ、転送先の装置、および転送時のデータ群のサイズとを決定する際の計算量を抑制することを目的とする。
【課題を解決するための手段】
【０００９】
１つの態様では、転送プログラムは、データを受信し、データを受信した情報処理装置の負荷状況に基づいて、前記データのうち他の情報処理装置に転送するデータの候補である転送データ候補を選択し、複数の前記他の情報処理装置の負荷状況に基づいて、前記複数の他の情報処理装置のうち前記データの転送先の候補となる転送先装置候補を選択し、前記情報処理装置と前記転送先装置候補との間のスループットに基づいて、前記転送データ候補から転送対象データを決定し、前記転送先装置候補から前記転送対象データの転送先装置を決定し、前記転送対象データを含むデータ群のサイズを決定し、決定された前記転送対象データを前記データ群毎に前記転送先装置に転送する処理を前記情報処理装置に実行させる。
【発明の効果】
【００１０】
１つの側面によれば、転送対象データ、転送先の装置、および転送時のデータ群のサイズを決定する際の計算量を抑制することができる。
【図面の簡単な説明】
【００１１】
【図１】実施形態のシステムの全体構成の一例を示す図である。
【図２】サーバの機能構成の一例を示す図である。
【図３】データ転送の概要を示す図である。
【図４】負荷情報および遅延情報の一例を示す図である。
【図５】デッドライン設定情報の一例を示す図である。
【図６】イベントデータに関する情報の一例を示す図である。
【図７】転送データ候補リストの一例を示す図である。
【図８】転送先サーバ候補リストの一例を示す図である。
【図９】データ転送設定の一例を示す図である。
【図１０】高負荷状態管理情報の一例を示す図である。
【図１１】情報処理端末５が送信するイベントデータの構成の一例を示す図である。
【図１２】他のサーバに転送するイベントデータの構成の一例を示す図である。
【図１３】情報処理端末５に送信するイベントデータの構成の一例を示す図である。
【図１４】サーバ間で送信される負荷情報の一例を示す。
【図１５】遅延測定用送信データの一例を示す図である。
【図１６】遅延測定用応答データの一例を示す図である。
【図１７】高負荷判定処理方法の一例を示す図である。
【図１８】実施形態におけるサーバ３の処理の一例を示すフローチャートである。
【図１９】負荷情報および遅延情報収集処理の一例を示すフローチャートである。
【図２０】高負荷判定処理の一例を示すフローチャートである。
【図２１】転送データ候補選択処理の一例を示すフローチャート（その１）である。
【図２２】転送データ候補選択処理の一例を示すフローチャート（その２）である。
【図２３】転送先サーバ候補選択処理の一例を示すフローチャート（その１）である。
【図２４】転送先サーバ候補選択処理の一例を示すフローチャート（その２）である。
【図２５】転送設定管理処理の一例を示すフローチャート（その１）である。
【図２６】転送設定管理処理の一例を示すフローチャート（その２）である。
【図２７】転送設定決定処理の一例を示すフローチャート（その１）である。
【図２８】転送設定決定処理の一例を示すフローチャート（その２）である。
【図２９】転送処理の一例を示すフローチャートである。
【図３０】サーバ３のハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【００１２】
以下、図面を参照して、実施形態について説明する。図１は、実施形態のシステム構成の一例を示す図である。実施形態のシステムは、複数のエッジ拠点（エッジ拠点１−１〜エッジ拠点１−ｎ）と複数の情報処理端末（情報処理端末５−１〜情報処理端末５−ｎ）とネットワーク４とを含む。以下、エッジ拠点１−１〜エッジ拠点１−ｎを区別しない場合、エッジ拠点１と称する。また、情報処理端末５−１〜情報処理端末５−ｎを区別しない場合、情報処理端末５と称する。
【００１３】
エッジ拠点１は、管理装置２とサーバ３とを含む。なお、管理装置２は、管理装置２−１〜管理装置２−ｎの総称であり、サーバ３は、サーバ３−１〜サーバ３−ｎの総称である。エッジ拠点１に含まれるサーバ３は１台であってもよく複数台であってもよい。なお、実施形態では、エッジ拠点１に含まれるサーバ３は１台であるとする。エッジ拠点１は、例えば、移動体の無線通信に用いられる基地局に接続し、基地局からのトラフィックを集約する拠点であるとする。
【００１４】
管理装置２は、エッジ拠点１内のサーバ３を管理する。管理装置２は、例えば、情報処理端末５から送信（アップロード）されたデータの格納先となるサーバ３をエッジ拠点１の中から決定する。また、管理装置２は、データを取得（ダウンロード）する情報処理端末５の読み取り進捗状況を管理する。なお、エッジ拠点１は、管理装置２を含んでいなくてもよく、管理装置２の機能をサーバ３が有していてもよい。
【００１５】
サーバ３は、情報処理端末５から送信されたデータを記憶する。サーバ３は、例えば、自サーバの負荷状況に応じて、他のサーバ３にデータを転送する。サーバ３は、例えば、メッセージブローカの機能を有する。また、サーバ３は、データを受信する情報処理装置、またはデータの転送先である他の情報処理装置の一例である。
【００１６】
ネットワーク４は、例えば、Local Area Network（ＬＡＮ）、Wide Area Network（ＷＡＮ）等の通信ネットワークである。サーバ３は、ネットワーク４を介して、他のサーバ３とデータの送受信を行う。
【００１７】
情報処理端末５は、各種データをエッジ拠点１内のサーバ３に送信（アップロード）する。また、情報処理端末５は、各種データをエッジ拠点１内のサーバ３から取得（ダウンロード）する。情報処理端末５は、例えば、携帯端末またはパーソナルコンピュータ等である。
【００１８】
図１に示す例において、例えば、情報処理端末５−１がエッジ拠点１−１のサーバ３−１にデータを送信する。そして、サーバ３−１が、エッジ拠点１−ｎのサーバ３−ｎにそのデータを転送し、サーバ３−ｎがそのデータを記憶する。情報処理端末５−ｎは、そのデータを利用する場合、サーバ３−ｎからそのデータを取得する。
【００１９】
例えば、データ転送元のサーバ３−１とデータの転送先であるサーバ３−ｎとの間の通信に遅延が発生している場合、輻輳が発生し、スループットが低下する可能性がある。例えば、サーバ３−１とサーバ３−ｎとの間のRound-Trip delay Time（ＲＴＴ）が１ｍｓでスループットが８００ｋｂｐｓである場合、ＲＴＴが５０ｍｓでスループットが１６ｋｂｐｓとなる。特に、情報処理端末５がデータをアップロードする際にＡＣＫを受信し、ＡＣＫの受信後に送信したデータを端末内から削除するデータ送達保証通信を行う場合、輻輳の発生およびスループットの低下が問題となる。
【００２０】
サーバ３は、例えば、アップロードされたデータをバッファリングした上で一括送信する（バルク転送する）ことでスループットを向上させることも考えられる。しかし、バッファリングの結果、追加遅延が発生し、デッドラインを満足できない場合がある。デッドラインは、情報処理端末５がデータをサーバ３に送信してから、他の情報処理端末５がそのデータを受信するまでの期間の上限（所定期間）である。デッドラインは、データの種別毎に予め設定されている。
【００２１】
そのため、サーバ３は、デッドライン等の条件を満たし、かつ、スループットが高くなるように、転送データ、データの転送先サーバ３および転送時のデータ群のサイズを決定する。しかし、サーバ３の数およびデータの数に応じて、転送データ、データの転送先サーバ３および転送時のデータ群のサイズを決定するための計算量が増加する。
【００２２】
よって、サーバ３は、スループットを計算する前に、他のサーバ３に転送するデータの候補と、転送先の候補となる転送サーバ候補を選択する。そして、サーバ３は、選択したデータの候補と転送サーバ候補のみを計算対象とすることにより、計算量を抑制する。
【００２３】
図２は、サーバ３の機能構成の一例を示す図である。サーバ３は、受信部３０と管理部３１と判定部３２と転送データ候補選択部３３と転送先サーバ候補選択部３４と設定部３５と決定部３６と転送部３７と管理情報記憶部３８とデータ記憶部３９とを含む。
【００２４】
受信部３０は、情報処理端末５からイベントデータを受信する。なお、イベントデータは、本実施形態で扱うデータの最小単位であるとする。以下、イベントデータを単にデータと称することがある。
【００２５】
管理部３１は、自サーバを含む各サーバ３の負荷情報とネットワーク遅延情報とを管理する。管理部３１は、自サーバから他のサーバ３までのネットワーク遅延を計測し、管理情報記憶部３８に記憶させる。さらに、管理部３１は、自サーバを含む各サーバ３の負荷情報を収集し、管理情報記憶部３８に記憶させる。
【００２６】
判定部３２は、データを一時記憶するメモリ使用量、イベントデータ入力頻度、データを記憶する記憶装置への入出力量が所定時間後に閾値を越えるかを判定する。本実施形態に示す例では、記憶装置への入出力量は、単位時間当たりのＨａｒｄＤｉｓｋへの入出力量を示すＤｉｓｋＩ／Ｏである。また、判定部３２は、判定結果に応じてフラグを設定する。
【００２７】
転送データ候補選択部３３は、判定部３２が設定したフラグを参照し、データを受信するサーバ３（自サーバ）の負荷状況に基づいて、受信したデータのうち他のサーバ３に転送するデータの候補である転送データ候補を、データの種別毎に選択する。転送データ候補選択部３３が転送データ候補の選択に用いる負荷状況は、例えば、自サーバの、データを一時記憶するメモリ使用量、イベントデータ入力頻度、およびデータを記憶する記憶装置への入出力量である。
【００２８】
転送先サーバ候補選択部３４は、他のサーバ３の負荷状況に基づいて、他のサーバ３のうちデータの転送先の候補となる転送先サーバ候補を選択する。転送先サーバ候補選択部３４は、転送先装置選択部の一例である。転送先サーバ候補選択部３４が転送データ候補の選択に用いる負荷状況は、例えば、他のサーバ３の、データを一時記憶するメモリ使用量、イベントデータ入力頻度、およびデータを記憶する記憶装置への入出力量である。
【００２９】
設定部３５は、データを受信するサーバ３（自サーバ）の負荷（例えば、現在のメモリ使用量、ＤｉｓｋＩ／Ｏ、イベントデータ入力頻度）を取得し、各負荷が高いか否かを示すフラグ（高負荷フラグ）を設定する。自サーバの負荷が所定の基準以下となった場合、設定部３５は、データを他のサーバ３に転送するための設定であるデータ転送設定から、所定の条件を満たす設定内容を削除する。
【００３０】
決定部３６は、自サーバと転送先サーバ候補との間のスループットに基づいて転送データ候補から転送対象データを決定し、該スループットに基づいて転送先サーバ候補から転送対象データを転送する転送先サーバを決定し、該スループットに基づいて転送対象データを含むデータ群のサイズを決定する。データ群は、複数のイベントデータ（転送対象データ）を含むデータの集まりであり、イベントデータは、データ群毎に転送先サーバに転送される。決定部３６は、例えば、１データ群あたりのイベントデータ数を決定することにより、データ群のサイズを決定する。決定部３６は、決定した転送対象データを示す識別情報、転送先サーバを示す識別情報、データ群のサイズをデータ転送設定として記録する。転送対象データを示す識別情報は、例えば、データの種別毎に設定された識別情報である。
【００３１】
決定部３６の処理の詳細を説明する。決定部３６は、転送データ候補、転送先サーバ候補が以下の式（１）〜（３）の条件を満たすか否かを判定する。式（１）〜（３）において、Ｗは、データ群に含まれるイベントデータ数であり、ＤＰｉは、イベントデータＰｉ（ｉは、イベントデータの識別子）のデッドライン［秒］である。また、λｊｐｉは、データを受信する受信サーバｊにおけるイベントデータＰｉの入力頻度［イベントデータ数／秒］であり、ｄ−ｋｗは、転送先サーバｋの書込み平均遅延［秒］であり、ｄ−ｋｒは、転送先サーバｋの読み込み平均遅延［秒］である。また、ｌｊｋは、受信サーバｊ、転送先サーバｋ間のRound-Trip delay Time（ＲＴＴ）［ｓｅｃ］であり、ｂｊｋは、データ受信サーバｊ、転送先サーバｋ間の帯域［ｂｐｓ］である。また、Ｓｐｉは、イベントデータのサイズ［ｂｙｔｅ］であり、Ｍｋは、転送先サーバの空きバッファ（メモリ）量［ｂｙｔｅ］である。なお、エッジ拠点１にサーバ３が複数存在する場合、各パラメータは、エッジ拠点１の各サーバ３に関するパラメータの平均値であってもよい。
【００３２】
【数１】
2020149249.tif 000003
【００３３】
【数２】
2020149249.tif 000004
【００３４】
【数３】
2020149249.tif 000005
【００３５】
なお、式（２）におけるｍａｘ（ｌｊｋ／２，Ｓｐｉ×Ｗ／ｂｊｋ）は、ｌｊｋ／２とＳｐｉ×Ｗ／ｂｊｋとのうちの最大値を示す。上記（２）を満たす場合、情報処理端末５がデータをサーバ３に送信してから、他の情報処理端末５がそのデータを受信するまでの期間がデッドライン以下となることを示す。すなわち、決定部３６は、情報処理端末５がデータをサーバ３に送信してから、他の情報処理端末５がそのデータを受信するまでの期間がデッドライン以下となるように、転送対象データ、転送対象データを転送する転送先装置、転送対象データを含むデータ群のサイズを決定する。これにより、サーバ３は、情報処理端末５がデータを受信するタイミングがデッドラインを過ぎることを防止することができる。
【００３６】
また、決定部３６は、上記式（１）〜（３）を満たし、かつ、下記式（４）で算出される転送時のスループットＴＰが最大となる転送先サーバ３と、転送時のデータ群のサイズを、イベントデータの種別毎に決定する。決定部３６は、データ群に含まれるイベントデータの数Ｗを決定することにより、データ群のサイズを決定する。決定部３６は、ある種別のデータについて、上記（１）〜（３）の条件を満たす転送先サーバ３と、転送時のデータ群のサイズの組が存在しない場合、その種別のデータを複数の転送先サーバ３に分割して転送することを決定する。また、決定部３６は、ある種別のデータを複数の転送先サーバ３に分割して転送したとしても、上記（１）〜（３）の条件を満たす転送先サーバ３と、転送時のデータ群のサイズの組が存在しない場合、その種別のデータを転送しないことを決定する。
【００３７】
【数４】
2020149249.tif 000006
【００３８】
決定部３６による上記式（１）〜（４）の計算量Ｏは、以下の式（５）のように表される。Ｗｍａｘは、一つのデータ種別のイベントデータ数の最大値であり、Ｈｊは、転送データ候補の種別の数であり、Ｋは、他のサーバ３の数であり、πは、データ分割数であり、πｍａｘはデータ分割数の最大値であるとする。
【００３９】
【数５】
2020149249.tif 000007
【００４０】
決定部３６は、転送データ候補の種別毎に、転送先サーバ３と、転送時のデータ群のサイズを決定するため、上記式（１）〜（４）の計算量Ｏは、式（５）に示すように転送データ候補の種別の数Ｈｊに依存する。また、計算量Ｏは、他のサーバ３の数Ｋに依存する。すなわち、転送データ候補選択部３３が転送するデータの種別を絞り込み、転送先サーバ候補選択部３４が転送先となり得る他のサーバ３を絞り込むことにより、計算量を抑制することができる。
【００４１】
転送部３７は、転送データ候補選択部３３により選択されたデータをデータ群毎に転送先サーバに転送する。転送時のデータ群のサイズは、決定部３６により決定されたサイズである。
【００４２】
管理情報記憶部３８は、管理部３１が収集した負荷情報および遅延情報、決定部３６が決定した転送設定等の各種管理情報を記憶する。
【００４３】
データ記憶部３９は、情報処理端末５から受信したイベントデータ、および他のサーバ３から転送されたイベントデータをデータ種別毎に記憶する。
【００４４】
図３は、データ転送の概要を示す図である。情報処理端末５は、例えば、複数のイベントデータをサーバ３−１にアップロードする。サーバ３−１は、イベントデータを受信し、イベントデータを、種別毎のデータ集合として管理する。サーバ３−１は、自サーバの負荷状況に基づいて、受信したイベントデータを自サーバに記憶することが困難であると判定した場合、受信したイベントデータを他のサーバ３に転送する。
【００４５】
サーバ３−１は、複数のイベントデータを含むデータ群毎に、他のサーバ３に転送する。サーバ３−１は、一つのデータ種別に対応するデータ集合を一つのサーバ３に転送することが困難である場合、複数のサーバ３に分割して転送する。図３に示す例では、サーバ３−１は、サーバ３−２およびサーバ３−３に、データ集合を分割して転送する。
【００４６】
データ群を受信したサーバ３−２およびサーバ３−３は、データ群をバッファメモリ４１に一時記憶した後、ハードディスク４２に書き込む。ハードディスク４２は、データ記憶部３９の一例である。
【００４７】
図４は、負荷情報および遅延情報の一例を示す図である。管理部３１は、図４に示す、自サーバに関する負荷情報および遅延情報を生成し、管理情報記憶部３８に記憶する。また、管理部３１は、負荷情報および遅延情報を定期的に更新する。負荷情報および遅延情報は、サーバ３を識別するIdentification（ＩＤ）、アドレス（ＩＰアドレス）、転送時に用いるポート、Central Processing Unit（ＣＰＵ）使用率を含む。さらに、負荷情報および遅延情報は、バッファ（メモリ）使用量バッファ（メモリ）全容量、Ｄｉｓｋ使用量、Ｄｉｓｋ全容量、ＤｉｓｋInput/Output（Ｉ／Ｏ）、ＤｉｓｋＩ／Ｏ最大値を含む。さらに、負荷情報および遅延情報は、イベントデータ入力頻度、イベントデータ入力頻度最大値、ネットワーク遅延、帯域、書き込み平均遅延、読み込み平均遅延を含む。
【００４８】
ＩＤは、サーバ３が有するメッセージブローカに付与されたＩＤであってもよい。イベントデータ入力頻度は、１秒あたりに入力するイベントデータの数である。イベントデータ入力頻度最大値は、例えば、ＣＰＵの処理性能に依存する値である。ＤｉｓｋＩ／Ｏは、イベントデータを記憶する記憶装置（データ記憶部３９）に対する入出力量の一例である。ネットワーク遅延は、上記式（２）、（４）におけるｌｊｋ（他のサーバ３との間のＲＴＴ）に相当する。帯域は、式（２）におけるｂｊｋ（他のサーバ３との間の帯域）に相当する。他のサーバ３が複数存在する場合、図４におけるネットワーク遅延および帯域は、他のサーバ３毎に記録されているとする。書き込み平均遅延は、式（２）におけるｄ−ｋｗに相当し、読み込み平均遅延は、ｄ−ｋｒに相当する。
【００４９】
図５は、デッドライン設定情報の一例を示す図である。図５に示すように、デッドラインは、データ種別毎に予め設定されている。デッドラインは、情報処理端末５がデータをサーバ３に送信してから、他の情報処理端末５がそのデータを受信するまでの期間の上限である。
【００５０】
図６は、イベントデータに関する情報の一例を示す図である。図６に示すように、イベントデータ情報は、データ種別、イベントデータ入力頻度、イベントデータサイズ、デッドラインを含む。すなわち、図６に示す情報は、データ種別毎の、イベントデータの入力頻度、サイズ、およびデッドラインを示す。管理部３１は、受信したイベントデータに応じて、図６に示すデータを更新する。
【００５１】
図７は、転送データ候補リストの一例を示す図である。図７に示すように、転送データ候補リストは、データ種別毎に記録される。転送データ候補選択部３３は、他のサーバ３に転送するデータの候補を選択した場合、そのデータの種別を記録する。
【００５２】
図８は、転送先サーバ候補リストの一例を示す図である。図８に示すように転送先サーバ候補リストは、転送先の候補として選択されたサーバ３のＩＤを含む。転送先サーバ候補選択部３４は、データ転送先のサーバ３の候補を選択した場合、そのサーバ３のＩＤを記録する。
【００５３】
図９は、データ転送設定の一例を示す図である。データ転送設定には、転送対象データの種別と、データ転送先のサーバ３のＩＤと、受信したイベントデータを複数のサーバ３に分割して転送する場合における、各データ群のサイズの比率とが対応付けて記録されている。比率は、合計値が１０となるように設定される。さらに、データ転送設定には、転送時の１データ群におけるイベントデータ数が記録されている。１データ群におけるイベントデータ数は、データ群のサイズに対応する。図９に示す転送設定は、決定部３６により記録される。
【００５４】
図１０は、高負荷状態管理情報の一例を示す図である。高負荷状態管理情報は、メモリ、イベント入力頻度、およびＤｉｓｋＩ／Ｏが高負荷であるかを示す情報を含む。判定部３２は、例えば、現在の負荷（メモリ、イベント入力頻度、またはＤｉｓｋＩ／Ｏ）が所定時間後に高負荷となるか判定した場合、Ｔｒｕｅを設定し、所定時間後に高負荷とならないと判定した場合、Ｆａｌｓｅを設定する。判定部３２による判定方法について、詳細は後述する。なお、図４〜図１０に示す各情報は、管理情報記憶部３８に記憶される。
【００５５】
図１１は、情報処理端末５が送信するイベントデータの構成の一例を示す図である。図１１に示すイベントデータは、送信元であるデータ生成クライアント（情報処理端末５）のＩＰアドレスおよびｐｏｒｔ番号、宛先であるサーバ３のＩＰアドレスおよびｐｏｒｔ番号、送信元ＩＤ（データ生成クライアントのＩＤ）、データ種別、ペイロードを含む。
【００５６】
図１２は、他のサーバ３に転送するイベントデータの構成の一例を示す図である。図１２は、例えば、データを受信したサーバ３が他のサーバ３に転送するイベントデータの構成を示す。図１２のイベントデータは、送信元であるサーバ３のＩＰアドレスおよびｐｏｒｔ番号、宛先（転送先）であるサーバ３のＩＰアドレスおよびｐｏｒｔ番号、送信元ＩＤ（データ生成クライアントのＩＤ）、データ種別、ペイロードを含む。
【００５７】
図１３は、情報処理端末５に送信するイベントデータの構成の一例を示す図である。図１２は、例えば、サーバ３がデータを利用するクライアントの情報処理端末５に送信するイベントデータの構成を示す。図１３のイベントデータは、送信元であるサーバ３のＩＰアドレスおよびｐｏｒｔ番号、宛先であるデータ利用クライアント（情報処理端末５）のＩＰアドレスおよびｐｏｒｔ番号、送信元ＩＤ（データ生成クライアントのＩＤ）、データ種別、ペイロードを含む。
【００５８】
図１４は、サーバ間で送信される負荷情報の一例を示す。サーバ３は、図１４に示す自サーバの負荷情報を他のサーバ３に送信する。これにより、各サーバ３が負荷情報を共有する。負荷情報は、送信元のサーバ３のＩＰアドレスおよびｐｏｒｔ番号、データの宛先であるデータ利用クライアント（情報処理端末５）のＩＰアドレスおよびｐｏｒｔ番号、送信元ＩＤ（負荷情報を生成したサーバ３のＩＤ）、ＣＰＵ負荷（ＣＰＵ使用率）を含む。負荷情報は、さらに、バッファ（メモリ）負荷（バッファ（メモリ）使用量、バッファ（メモリ）総量）、Ｄｉｓｋ容量負荷（Ｄｉｓｋ使用量、Ｄｉｓｋ総量）、ＤｉｓｋＩ／Ｏ負荷（ＤｉｓｋＩ／Ｏ、ＤｉｓｋＩ／Ｏ最大値）、データ入力負荷（データ入力頻度、データ入力頻度最大値）を含む。
【００５９】
図１５は、遅延測定用送信データの一例を示す図である。遅延測定用データは、データ送信元サーバ３のＩＰアドレス、宛先であるサーバ３（測定対象サーバ）のＩＰアドレス、送信時刻（Ｔｉｍｅｓｔａｍｐ）を含む。管理部３１は、他のサーバ３との間のネットワーク遅延を測定するために、図１５の例に示すデータを他のサーバ３に送信する。
【００６０】
図１６は、遅延測定用応答データの一例を示す図である。遅延測定用応答データは、データ送信元サーバ３（測定対象サーバ）のＩＰアドレス、宛先であるサーバ３（遅延測定用送信データの送信元のサーバ３）のＩＰアドレス、送信元サーバ３の送信時刻（Ｔｉｍｅｓｔａｍｐ）を含む。管理部３１は、他のサーバ３から図１５に示す遅延測定用データが送信された場合、図１６の例に示す応答データを送信する。管理部３１は、図１５に示す送信データの送信時刻と図１６に示す応答データの受信時刻との差に基づいて、ネットワーク遅延時間を測定する。
【００６１】
図１７は、高負荷判定処理方法の一例を示す図である。図１７に示す負荷は、メモリ使用量、イベントデータ入力頻度、またはＤｉｓｋＩ／Ｏであるとする。また、Ｔは判定部３２による判定頻度、σは標準偏差、ａ（ａ１、ａ２）は単位時間あたりの負荷変化量、Ｖは負荷、ＶＴＨは、高負荷判定に用いる閾値であるとする。
【００６２】
ある時点における負荷をＶとした場合、判定部３２は、例えば、Ｖ＋２ａＴ＋σがＶＴＨより大きい場合、高負荷となる可能性が高いと判定する。図１７に示す例では、負荷がＶＡである場合、ＶＡ＋２ａ１Ｔ＋σがＶＴＨより小さいので、判定部３２は、高負荷となる可能性が少ないと判定する。また、負荷がＶＢである場合、ＶＢ＋２ａ２Ｔ＋σがＶＴＨより大きいので、判定部３２は、高負荷となる可能性が高いと判定する。
【００６３】
図１８は、実施形態におけるサーバ３の処理の一例を示すフローチャートである。サーバ３は、図１８に示すステップＳ１１〜Ｓ１３とステップＳ２１〜Ｓ２５とステップＳ３１〜Ｓ３４とステップＳ４１とを並列に実行する。
【００６４】
サーバ３は、所定期間毎の繰り返し処理を開始する（ステップＳ１１）。管理部３１は、負荷情報および遅延情報収集処理を実行する（ステップＳ１２）。サーバ３は、管理者からの停止指示等に応じて、繰り返し処理を終了する（ステップＳ１３）。
【００６５】
サーバ３は、所定期間毎の繰り返し処理を開始する（ステップＳ２１）。判定部３２は、ステップＳ１２で得られた負荷情報および遅延情報に基づいて、高負荷判定処理を実行する（ステップＳ２２）。転送データ候補選択部３３は、ステップＳ１２で得られた自サーバの負荷情報および遅延情報に基づいて、転送データ候補選択処理を実行する（ステップＳ２３）。転送先サーバ候補選択部３４は、ステップＳ１２で得られた他のサーバ３の負荷情報および遅延情報に基づいて、転送先サーバ候補選択処理を実行する（ステップＳ２４）。サーバ３は、管理者からの停止指示等に応じて、繰り返し処理を終了する（ステップＳ２５）。
【００６６】
サーバ３は、所定期間毎の繰り返し処理を開始する（ステップＳ３１）。設定部３５は、転送設定管理処理を実行する（ステップＳ３２）。決定部３６は、ステップＳ２３で選択された転送データ候補とステップＳ２４で選択された転送先サーバ候補とを用いて、転送設定決定処理を実行する（ステップＳ３３）。転送設定は、転送対象データ、転送先サーバ、データ群のサイズを含む。サーバ３は、管理者からの停止指示等に応じて、繰り返し処理を終了する（ステップＳ３４）。
【００６７】
サーバ３は、所定期間毎の繰り返し処理を開始する（ステップＳ４１）。転送部３７は、ステップＳ３３で決定された転送設定に基づいて転送処理を実行する（ステップＳ４２）。サーバ３は、管理者からの停止指示等に応じて、繰り返し処理を終了する（ステップＳ４３）。
【００６８】
なお、ステップＳ１２、Ｓ２２、Ｓ２３、Ｓ２４、Ｓ３２、Ｓ３３、Ｓ４２の処理の詳細は後述する。また、ステップＳ１１〜Ｓ１３、ステップＳ２１〜Ｓ２５、ステップＳ３１〜Ｓ３４、ステップＳ４１のそれぞれの繰り返し間隔（所定期間）は、同じであってもよいし、異なっていてもよい。
【００６９】
図１９は、負荷情報および遅延情報収集処理の一例を示すフローチャートである。図１９に示す処理は、図１８のステップＳ１２の詳細である。管理部３１は、図１９に示すステップＳ１０１〜Ｓ１０３の処理と、ステップＳ１１１〜Ｓ１１３の処理と、Ｓ１２１の処理とを並列で実行する。
【００７０】
管理部３１は、ネットワーク遅延に関して、他のサーバ３毎の繰り返し処理を開始する（ステップＳ１０１）。管理部３１は、他のサーバ３までのネットワーク遅延を計測する（ステップＳ１０２）。管理部３１は、例えば、図１５に示すデータを他のサーバ３に送信し、図１６に示す応答データを他のサーバ３から受信する。そして、管理部３１は、図１５に示す送信データの送信時刻と図１６に示す応答データの受信時刻との差に基づいて、ネットワーク遅延時間を計測し、管理情報記憶部３８に記憶させる。管理部３１は、全ての他のサーバ３に関してネットワーク遅延を計測した場合、繰り返し処理を終了する（ステップＳ１０３）。
【００７１】
管理部３１は、自サーバの負荷情報（例えば、図１４）を収集する（ステップＳ１１１）。管理部３１は、ステップＳ１１１で収集した負荷情報を他のサーバ３に送信する（ステップＳ１１２）。管理部３１は、他のサーバ３の負荷情報を取得する（ステップＳ１２１）。管理部３１は、ステップＳ１０２で得られた遅延情報、Ｓ１１１、Ｓ１２１で得られた負荷情報を管理情報記憶部３８に記憶する（ステップＳ１１３）。
【００７２】
図２０は、高負荷判定処理の一例を示すフローチャートである。図２０に示す処理は、図１８のステップＳ２２の詳細である。判定部３２は、自サーバおよび全ての他のサーバ３の負荷情報を管理情報記憶部３８から取得する（ステップＳ２０１）。判定部３２が取得する負荷情報は、図１９のＳ１１１、Ｓ１２１で収集された情報である。
【００７３】
判定部３２は、所定時間後にメモリが高負荷となる可能性があるか判定する（ステップＳ２０２）。判定部３２は、例えば、図１７に示した方法により、所定時間後にメモリ使用量がメモリ閾値を越えるかを判定する。ステップＳ２０２でＹＥＳの場合、判定部３２は、フラグＸを設定する（ステップＳ２０３）。
【００７４】
ステップＳ２０２でＮＯの場合またはステップＳ２０３の処理後、判定部３２は、所定時間後にイベント入力が高負荷となる可能性があるか判定する（ステップＳ２０４）。判定部３２は、例えば、図１７に示した方法により、所定時間後にイベントデータ入力頻度がイベントデータ入力頻度閾値を越えるかを判定する。ステップＳ２０４でＹＥＳの場合、判定部３２は、フラグＹを設定する（ステップＳ２０５）。
【００７５】
ステップＳ２０４でＮＯの場合またはステップＳ２０５の処理後、判定部３２は、所定時間後にＤｉｓｋＩ／Ｏが高負荷となる可能性があるか判定する（ステップＳ２０６）。判定部３２は、例えば、図１７に示した方法により、所定時間後にＤｉｓｋＩ／ＯがＤｉｓｋＩ／Ｏ閾値を越えるかを判定する。ステップＳ２０６でＹＥＳの場合、判定部３２は、フラグＺを設定する（ステップＳ２０７）。なお、サーバ３は、自サーバおよび全ての他のサーバ３に対してステップＳ２０２〜Ｓ２０７の処理を行う。
【００７６】
図２１および図２２は、転送データ候補選択処理の一例を示すフローチャートである。図２１および図２２に示す処理は、図１８のステップＳ２３の詳細である。
【００７７】
転送データ候補選択部３３は、データ種別毎の繰り返し処理を開始する（ステップＳ３０１）。転送データ候補選択部３３は、管理情報記憶部３８に記憶されたイベントデータ情報（例えば、図６）からイベントデータサイズ、イベントデータ入力頻度、デッドラインを取得する（ステップＳ３０２）。転送データ候補選択部３３は、以下の式（６）を算出することにより、イベントデータのデッドラインが条件を満たすか判定する（ステップＳ３０３）。Ｍｉｎ（他のサーバ３への遅延）は、図１９のステップＳ１０２で計測された、複数の他のサーバ３への遅延のうち最も小さい値である。λは、イベントデータ入力頻度であり、１／λは、イベントデータの入力間隔である。
【００７８】
イベントデータデッドライン＞Ｍｉｎ（他のサーバ３への遅延）＋１／λ      （６）
【００７９】
イベントデータのデッドラインが式（６）の条件を満たす場合（ステップＳ３０３でＹＥＳ）、転送データ候補選択部３３は、自サーバにフラグＸが設定されているか判定する（ステップＳ３０４）。上述したように、フラグＸが設定されている場合、所定時間後にメモリ使用量がメモリ閾値を越える可能性が高いと判定されていたことを意味する。メモリはデータ入力時のバッファとして用いられるため、フラグＸが設定されている場合、データをＤｉｓｋ（データ記憶部３９）に書き込む際の十分なバッファがないことを意味する。よって、フラグＸが設定されている場合（ステップＳ３０４でＹＥＳ）、転送データ候補選択部３３は、入力スループットがＤｉｓｋＩ／Ｏ閾値より大きいか判定する（ステップＳ３０５）。ステップＳ３０５における入力スループットは、イベントデータサイズ×イベントデータ入力頻度である。ステップＳ３０５でＹＥＳの場合、転送データ候補選択部３３は、処理対象のデータ種別を転送データ候補リスト（例えば、図７）に追加する（ステップＳ３０６）。
【００８０】
ステップＳ３０４でＮＯの場合またはステップＳ３０５でＮＯの場合、転送データ候補選択部３３は、自サーバにフラグＹが設定されているか判定する（ステップＳ３０７）。上述したように、フラグＹが設定されている場合、イベントデータ入力頻度がイベントデータ入力頻度閾値を越える可能性が高いと判定されていたことを意味する。よって、フラグＹが設定されている場合（ステップＳ３０７でＹＥＳ）、転送データ候補選択部３３は、イベントデータ入力頻度が入力頻度閾値より大きいか判定する（ステップＳ３０８）。ステップＳ３０８でＹＥＳの場合、転送データ候補選択部３３は、処理対象のデータ種別を転送データ候補リストに追加する（ステップＳ３０６）。
【００８１】
ステップＳ３０７でＮＯの場合またはステップＳ３０８の場合、転送データ候補選択部３３は、自サーバにフラグＺが設定されているか判定する（図２２のステップＳ３０９）。上述したように、フラグＺが設定されている場合、所定時間後にＤｉｓｋＩ／ＯがＤｉｓｋＩ／Ｏ閾値を越える可能性が高いと判定されていたことを意味する。よって、フラグＺが設定されている場合（ステップＳ３０９でＹＥＳ）、転送データ候補選択部３３は、入力スループットがＤｉｓｋＩ／Ｏ閾値より大きいか判定する（ステップＳ３１０）。ステップＳ３１０でＹＥＳの場合、転送データ候補選択部３３は、イベントデータサイズがイベントデータサイズ閾値より大きいか判定する（ステップＳ３１１）。ステップＳ３１１でＹＥＳの場合、転送データ候補選択部３３は、処理対象のデータ種別を転送データ候補リストに追加する（図２１のステップＳ３０６）。ステップＳ３０９、Ｓ３１０、Ｓ３１１のいずれかでＮＯの場合、転送データ候補選択部３３は、処理対象のデータ種別に関する処理を終了する。転送データ候補選択部３３は、全てのデータ種別に対してステップＳ３０１〜３１１の処理を実行した場合、繰り返し処理を終了する（図２１のステップＳ３１２）。
【００８２】
図２３および図２４は、転送先サーバ候補選択処理の一例を示すフローチャートである。図２３および図２４に示す処理は、図１８のステップＳ２４の詳細である。
【００８３】
転送先サーバ候補選択部３４は、他のサーバ３毎の繰り返し処理を開始する（ステップＳ４０１）。転送先サーバ候補選択部３４は、処理対象のサーバ３にフラグＸが設定されているかを判定する（ステップＳ４０２）。上述したように、フラグＸが設定されている場合、所定時間後にメモリ使用量がメモリ閾値を越える可能性が高いと判定されていたことを意味する。ステップＳ４０２でＹＥＳの場合、転送先サーバ候補選択部３４は、メモリ空き容量がメモリ空き容量閾値より大きいか判定する（ステップＳ４０３）。ステップＳ４０３でＹＥＳの場合、転送先サーバ候補選択部３４は、処理対象のサーバ３を転送先サーバ候補リスト（例えば、図８）に追加する（ステップＳ４０４）。
【００８４】
ステップＳ４０２でＮＯの場合またはステップＳ４０３でＮＯの場合、転送先サーバ候補選択部３４は、処理対象のサーバ３にフラグＹが設定されているかを判定する（ステップＳ４０５）。上述したように、フラグＹが設定されている場合、所定時間後にイベントデータ入力頻度がイベントデータ入力頻度閾値を越えると判定されていたことを意味する。ステップＳ４０５でＹＥＳの場合、転送先サーバ候補選択部３４は、イベントデータ入力頻度空き容量がイベント入力頻度空き容量閾値より大きいか判定する（ステップＳ４０６）。イベントデータ入力頻度空き容量は、イベントデータ入力頻度最大値からイベントデータ入力頻度を減算した値である。ステップＳ４０６でＹＥＳの場合、転送先サーバ候補選択部３４は、処理対象のサーバ３を転送先サーバ候補リストに追加する（ステップＳ４０４）。
【００８５】
ステップＳ４０５でＮＯの場合またはステップＳ４０６でＮＯの場合、転送先サーバ候補選択部３４は、処理対象のサーバ３にフラグＺが設定されているかを判定する（ステップＳ４０７）。上述したように、フラグＺが設定されている場合、所定時間後にＤｉｓｋＩ／ＯがＤｉｓｋＩ／Ｏ閾値を越えると判定されていたことを意味する。ステップＳ４０７でＹＥＳの場合、転送先サーバ候補選択部３４は、ＤｉｓｋＩ／Ｏ空き容量がＤｉｓｋＩ／Ｏ空き容量閾値より大きいか判定する（ステップＳ４０８）。ＤｉｓｋＩ／Ｏ空き容量は、ＤｉｓｋＩ／Ｏ最大値からＤｉｓｋＩ／Ｏを減算した値である。ステップＳ４０８でＹＥＳの場合、転送先サーバ候補選択部３４は、処理対象のサーバ３を転送先サーバ候補リストに追加する（図２３のステップＳ４０４）。ステップＳ４０７またはＳ４０８でＮＯの場合、処理対象のサーバ３に関する処理は終了する。
【００８６】
全ての他のサーバ３に関してステップＳ４０２〜Ｓ４０８の処理が終了した場合、転送先サーバ候補選択部３４は、繰り返し処理を終了する（ステップＳ４０９）。転送先サーバ候補選択部３４は、転送サーバ候補リストに転送先サーバ候補が存在するか判定する（ステップＳ４１０）。ステップＳ４１０でＮＯの場合、転送先サーバ候補選択部３４は、システム不足を示すアラームを出力する（ステップＳ４１１）。転送先サーバ候補選択部３４は、例えば、システム不足を示すアラームを表示装置に表示させてもよいし、管理装置２に送信してもよい。
【００８７】
図２５および図２６は、転送設定管理処理の一例を示すフローチャートである。図２５および図２６に示す処理は、図１８のステップＳ３２の詳細である。設定部３５は、自サーバの負荷情報（例えば、図４に示す情報のうち、現在のメモリ使用量、ＤｉｓｋＩ／Ｏ、イベントデータ入力頻度）を取得する。
【００８８】
設定部３５は、取得したメモリ使用量がメモリ使用量閾値を超えているか判定する（ステップＳ５０２）。ステップＳ５０２でＹＥＳの場合、設定部３５は、メモリ高負荷フラグにＴｒｕｅを設定する（ステップＳ５０３）。ステップＳ５０２でＮＯの場合、設定部３５は、メモリ高負荷フラグにＴｒｕｅが設定されているか判定する（ステップＳ５０４）。ステップＳ５０４でＹＥＳの場合、設定部３５は、データ量が条件を満たすデータ種別に対応づけられた設定内容を、データ転送設定（例えば、図９）から削除する（ステップＳ５０５）。データ量が条件を満たすデータ種別は、データ量（イベントデータサイズ×入力頻度）が、メモリ閾値−メモリ使用量より小さいデータ種別である。ステップＳ５０２でＮＯであり、ステップＳ５０４でＹＥＳである場合、前回の処理ではメモリが高負荷であったが現在は高負荷でなくなったことを意味する。よって、データ量が上記の条件を満たせば、自サーバに記憶可能であるため、設定部３５は、条件を満たすデータ種別をデータ転送設定から削除する。
【００８９】
ステップＳ５０３の処理後、ステップＳ５０４でＮＯの場合、またはＳ５０５の処理後、設定部３５は、取得したイベントデータ入力頻度がイベントデータ入力頻度閾値を超えているか判定する（ステップＳ５０６）。ステップＳ５０６でＹＥＳの場合、設定部３５は、データ入力高負荷フラグにＴｒｕｅを設定する（ステップＳ５０７）。ステップＳ５０６でＮＯの場合、設定部３５は、データ入力高負荷フラグにＴｒｕｅが設定されているか判定する（ステップＳ５０８）。ステップＳ５０８でＹＥＳの場合、設定部３５は、データ入力頻度が条件を満たすデータ種別に対応づけられた設定内容を、データ転送設定（例えば、図９）から削除する（ステップＳ５０９）。データ入力頻度が条件を満たすデータ種別は、そのデータ種別のイベントデータ入力頻度が、イベントデータ入力頻度閾値−イベントデータ入力頻度（全種別のイベントデータ入力頻度の合計）より小さいデータ種別である。ステップＳ５０６でＮＯであり、ステップＳ５０８でＹＥＳである場合、以前はデータ入力が高負荷であったが現在は高負荷でなくなったことを意味する。よって、データ量が上述の条件を満たせば、自サーバに記憶可能であるため、設定部３５は、条件を満たすデータ種別をデータ転送設定から削除する。
【００９０】
ステップＳ５０７の処理後、ステップＳ５０８でＮＯの場合、またはＳ５０９の処理後、設定部３５は、取得したＤｉｓｋＩ／ＯがＤｉｓｋＩ／Ｏ閾値を超えているか判定する（図２６のステップＳ５１０）。ステップＳ５１０でＹＥＳの場合、設定部３５は、ＤｉｓｋＩ／Ｏ高負荷フラグにＴｒｕｅを設定する（ステップＳ５１１）。ステップＳ５１０でＮＯの場合、設定部３５は、ＤｉｓｋＩ／Ｏ高負荷フラグにＴｒｕｅが設定されているか判定する（ステップＳ５１２）。ステップＳ５１２でＹＥＳの場合、設定部３５は、データ量（イベントデータサイズ×入力頻度）が条件を満たすデータ種別に対応づけられた設定内容を、データ転送設定から削除する（ステップＳ５１３）。データ量が条件を満たすデータ種別は、データ量が、ＤｉｓｋＩ／Ｏ閾値−ＤｉｓｋＩ／Ｏより小さいデータ種別である。ステップＳ５１０でＮＯであり、ステップＳ５１２でＹＥＳである場合、前回の処理ではＤｉｓｋＩ／Ｏが高負荷であったが現在は高負荷でなくなったことを意味する。よって、データ量が上記の条件を満たせば、自サーバに記憶可能であるため、設定部３５は、条件を満たすデータ種別に対応する設定内容をデータ転送設定から削除する。
【００９１】
図２５、図２６に示す処理により、サーバ３は、負荷が低下した場合に、データ転送設定を削除するため、自サーバに記憶可能なデータを転送することを避けることができる。
【００９２】
図２７および図２８は、転送設定決定処理の一例を示すフローチャートである。図２７および図２８に示す処理は、図１８のステップＳ３３の詳細である。
【００９３】
決定部３６は転送データ分割数に１を設定する（ステップＳ６０１）。転送データ分割数は、データ群を転送する際の転送先サーバ数に相当する。例えば、転送データ分割数が１である場合、転送部３７は、転送対象のデータ種別のデータ群を一つのサーバ３に転送する。例えば、転送データ分割数がＳである場合、転送部３７は、転送対象のデータ種別のイベントデータをＳのデータ群に分割して、分割後のデータ群をＳ台のサーバ３に転送する。
【００９４】
決定部３６は、転送データ分割数毎の繰り返し処理を開始する（ステップＳ６０２）。分割数の最大値として、例えば、他のサーバの数Ｓが設定されており、決定部３６は、分割数＝１〜Ｓの範囲で繰り返しを行う。決定部３６は、転送データ候補毎の繰り返し処理を開始する（ステップＳ６０３）。また、決定部３６は、転送先サーバ候補毎の繰り返し処理を開始する（ステップＳ６０４）。決定部３６は、イベントデータ数毎の繰り返し処理を開始する（ステップＳ６０５）。イベントデータ数の最大値として、予め所定値Ｎが設定されており、決定部３６は、イベントデータ数＝１〜Ｎの範囲で繰り返しを行う。
【００９５】
決定部３６は、上記の式（１）〜（３）に示す条件を満たすか判定する（ステップＳ６０６）。条件を満たす場合（ステップＳ６０６でＹＥＳ）、決定部３６は、式（４）に基づいて、スループットを算出する（ステップＳ６０７）。決定部３６は、ステップＳ６０７で算出されたスループットが一時記憶されているスループットより大きいかを判定する（ステップＳ６０８）。なお、ステップＳ６０８において、一時記憶されているスループットが存在しない場合、決定部３６は、ステップＳ６０９の処理に移行する。ステップＳ６０８でＹＥＳの場合、決定部３６は、処理対象の転送先サーバ候補、データ群のサイズおよび式（４）により算出したスループットを、転送データ候補のデータ種別と対応付けてデータ転送設定として一時記憶する（ステップＳ６０９）。データ転送設定として記憶された転送データ候補を、転送対象データと称する。なお、決定部３６は、現在の処理対象のイベントデータ数にイベントデータサイズを乗算することにより、データ群のサイズを算出する。データ転送設定の一時記憶がすでに存在されている場合、決定部３６は、処理対象の転送データ候補の種別、処理対象の転送先サーバ候補、データ群のサイズおよび算出したスループットを、一時記憶されているデータ転送設定に上書きする。
【００９６】
決定部３６は、全てのイベントデータ数に関してステップＳ６０６〜Ｓ６０９の処理を実行した場合、イベントデータ数毎の繰り返し処理を終了する（ステップＳ６１０）。決定部３６は、全ての転送先サーバ候補に関してステップＳ６０５〜Ｓ６１０の処理を実行した場合、転送先サーバ候補毎の繰り返し処理を終了する（ステップＳ６１１）。決定部３６は、全ての転送データ候補に関してステップＳ６０４〜Ｓ６１１の処理を実行した場合、転送データ候補毎の繰り返し処理を終了する（ステップＳ６１２）。
【００９７】
ステップＳ６１２の処理後、決定部３６は、転送先サーバおよびイベントデータ数がデータ転送設定に一時記憶されているか判定する（図２８のステップＳ６１３）。ステップＳ６１３でＹＥＳの場合、決定部３６は、処理対象のデータ分割数に関する処理を終了する。ステップＳ６１３でＮＯの場合、データ分割数に１を加算し（ステップＳ６１４）、ステップＳ６０２に移行する。ステップＳ６１３でＮＯの場合、処理対象の分割数では、ステップＳ６０６の処理における条件を満たす転送データ、転送先サーバ、データ群のサイズの組が存在しなかったことを意味する。よって、決定部３６は、データ分割数を増やし、転送先サーバ数を増やし、条件を満たす転送データ候補、転送先サーバ候補、データ群のサイズの組があるかを再度判定する。
【００９８】
データ分割数が最大値となるまで、ステップＳ６０３〜Ｓ６１３の処理を実行した場合、データ分割数に関する繰り返し処理を終了する（ステップＳ６１５）。ステップＳ６１５の処理後、決定部３６は、転送対象データのデータ種別に、一時記憶されている転送先サーバのＩＤ、データ群のサイズを対応付けてデータ転送設定（例えば、図９）に記録する（ステップＳ６１６）。決定部３６は、転送先データ分割数が複数である場合、転送先サーバ毎のデータ群のサイズの比率をデータ転送設定に書き込む。
【００９９】
なお、データ分割数が最大値となるまで、ステップＳ６０６で条件を満たす転送先サーバ、データ群のサイズが存在しなかった場合、そのデータ種別は転送対象データとならない。すなわち、決定部３６は、図２７、図２８の処理により、転送データ候補から転送対象データを決定する。
【０１００】
図２９は、転送処理の一例を示すフローチャートである。図２９に示す処理は、図１８のステップＳ４２の詳細である。転送部３７は、受信部３０がイベントデータを受信したか判定する（ステップＳ７０１）。受信部３０がイベントデータを受信していない場合（ステップＳ７０１でＮＯ）、転送部３７は、イベントデータを受信するまで待機する。
【０１０１】
イベントデータを受信した場合（ステップＳ７１０でＹＥＳ）、そのイベントデータの種別に対応するデータ転送設定（例えば、図９）を取得する（ステップＳ７０２）。なお、受信したイベントデータの種別に対応するデータ転送設定処理（図２７、図２８に示す処理）が完了していない場合、転送部３７は、データ転送設定処理が完了するまで待機する。
【０１０２】
転送部３７は、受信したイベントデータの種別が転送対象であるか判定する（ステップＳ７０３）。例えば、転送部３７は、受信したイベントデータの種別がデータ転送設定に含まれるか判定する。ステップＳ７０３でＹＥＳの場合、転送対象データの宛先であるサーバ３（転送先サーバ）の情報（例えば、ＩＰアドレス）を取得する（ステップＳ７０４）。他のサーバ３の情報は、予め管理情報記憶部３８に記憶されているとする。
【０１０３】
転送部３７は、転送先サーバが接続可能であるか判定する（ステップＳ７０５）。転送部３７は、例えば、転送先サーバに対して接続確認用のコマンドを送信し、応答を受信した場合に、接続可能であると判定する。ステップＳ７０５でＹＥＳの場合、転送部３７は、転送先サーバにイベントデータをデータ群毎に転送する（ステップＳ７０６）。転送時のデータ群のサイズは、データ転送設定に記録されたサイズであるとする。ステップＳ７０５でＮＯの場合、転送部３７は、その転送先サーバに関するデータ転送設定を削除する（ステップＳ７０７）。ステップＳ７０７の処理後またはステップＳ７０３でＮＯの場合、サーバ３は、自サーバのデータ記憶部３９に、イベントデータを記憶する（ステップＳ７０８）。
【０１０４】
以上のように、サーバ３は、転送するデータの候補と転送先のサーバ３の候補を絞り込んだ後、スループットに基づいて、転送対象データ、転送先サーバ、および転送時のデータ群のサイズを決定するので、決定する際の計算量を抑制することができる。また、サーバ３は、他のサーバ３にデータを転送することにより、自サーバに記憶することが困難なデータであっても情報処理端末５から利用可能な状態にすることができる。
【０１０５】
次に、サーバ３のハードウェア構成の一例を説明する。図３０は、サーバ３のハードウェア構成の一例を示す図である。図３０の例に示すように、サーバ３において、バス１００に、プロセッサ１１１とメモリ１１２と補助記憶装置１１３と通信インタフェース１１４と媒体接続部１１５と入力装置１１６と出力装置１１７とが接続される。
【０１０６】
プロセッサ１１１は、メモリ１１２に展開されたプログラムを実行する。実行されるプログラムには、実施形態における処理を行う転送プログラムが適用されてもよい。
【０１０７】
メモリ１１２は、例えば、Random Access Memory(ＲＡＭ)である。補助記憶装置１１３は、種々の情報を記憶する記憶装置であり、例えばハードディスクドライブや半導体メモリ等が適用されてもよい。補助記憶装置１１３に実施形態の処理を行う転送プログラムが記憶されていてもよい。
【０１０８】
通信インタフェース１１４は、Local Area Network（ＬＡＮ）、Wide Area Network（ＷＡＮ）等の通信ネットワークに接続され、通信に伴うデータ変換等を行う。
【０１０９】
媒体接続部１１５は、可搬型記録媒体１１８が接続可能なインタフェースである。可搬型記録媒体１１８には、光学式ディスク（例えば、Compact Disc(ＣＤ)またはDigital Versatile Disc(ＤＶＤ))、半導体メモリ等が適用されてもよい。可搬型記録媒体１１８に実施形態の処理を行う転送プログラムが記録されていてもよい。
【０１１０】
入力装置１１６は、例えば、キーボード、ポインティングデバイス等であり、ユーザからの指示及び情報等の入力を受け付ける。
【０１１１】
出力装置１１７は、例えば、表示装置、プリンタ、スピーカ等であり、ユーザへの問い合わせ又は指示、及び処理結果等を出力する。
【０１１２】
図２に示す管理情報記憶部３８は、メモリ１１２、補助記憶装置１１３または可搬型記録媒体１１８等により実現されてもよい。図２に示すデータ記憶部３９は、補助記憶装置１１３または可搬型記録媒体１１８等により実現されてもよい。図１に示す管理部３１、判定部３２、転送データ候補選択部３３、転送先サーバ候補選択部３４、設定部３５、決定部３６、および転送部３７は、メモリ１１２に展開された転送プログラムをプロセッサ１１１が実行することにより実現されてもよい。
【０１１３】
メモリ１１２、補助記憶装置１１３および可搬型記録媒体１１８は、コンピュータが読み取り可能であって非一時的な有形の記憶媒体であり、信号搬送波のような一時的な媒体ではない。
【０１１４】
なお、サーバ３が図３０に示す全ての構成要素を含んでいなくてもよく、一部の構成要素が省略されていてもよい。また、一部の構成要素がサーバ３の外部装置に存在し、サーバ３が外部装置に接続して、外部装置内の構成要素を利用してもよい。
【０１１５】
本実施形態は、以上に述べた実施の形態に限定されるものではなく、本実施形態の要旨を逸脱しない範囲内で様々な変更、追加、省略が適用可能である。
【符号の説明】
【０１１６】
１    エッジ拠点
２    管理装置
３    サーバ
４    ネットワーク
５    情報処理端末
３０    受信部
３１    管理部
３２    判定部
３３    転送データ候補選択部
３４    転送先サーバ候補選択部
３５    設定部
３６    決定部
３７    転送部
３８    管理情報記憶部
３９    データ記憶部
１００    バス
１１１    プロセッサ
１１２    メモリ
１１３    補助記憶装置
１１４    通信インタフェース
１１５    媒体接続部
１１６    入力装置
１１７    出力装置
１１８    可搬型記録媒体
【図１】
2020149249.tif 000008
【図２】
2020149249.tif 000009
【図３】
2020149249.tif 000010
【図４】
2020149249.tif 000011
【図５】
2020149249.tif 000012
【図６】
2020149249.tif 000013
【図７】
2020149249.tif 000014
【図８】
2020149249.tif 000015
【図９】
2020149249.tif 000016
【図１０】
2020149249.tif 000017
【図１１】
2020149249.tif 000018
【図１２】
2020149249.tif 000019
【図１３】
2020149249.tif 000020
【図１４】
2020149249.tif 000021
【図１５】
2020149249.tif 000022
【図１６】
2020149249.tif 000023
【図１７】
2020149249.tif 000024
【図１８】
2020149249.tif 000025
【図１９】
2020149249.tif 000026
【図２０】
2020149249.tif 000027
【図２１】
2020149249.tif 000028
【図２２】
2020149249.tif 000029
【図２３】
2020149249.tif 000030
【図２４】
2020149249.tif 000031
【図２５】
2020149249.tif 000032
【図２６】
2020149249.tif 000033
【図２７】
2020149249.tif 000034
【図２８】
2020149249.tif 000035
【図２９】
2020149249.tif 000036
【図３０】
2020149249.tif 000037