(57)【要約】【課題】任意のサイズで分割できないデータを処理ノードで処理する場合に、割り当てたデータのデータサイズに関係なく、ほぼ指定期間で処理を終了すること。【解決手段】処理対象データを示す情報および前記処理対象データを処理する期間を示す指定期間を含む処理指示を管理ノードから受信する受信部と、前記処理指示を受信してからの時間である処理時間を計測するタイマ部と、前記処理指示および前記処理時間に基づいて、前記処理対象データを処理し、解析結果応答を前記管理ノードへ送信する処理部と、を備え、前記処理対象データは、複数のパケットが結合されて成り、前記処理部は、前記複数のパケットの内の処理対象のパケットを処理し、前記処理対象のパケットの処理が終了したら、前記タイマ部を用いて前記処理時間が前記指定期間を超えたか否か判定し、前記処理時間が前記指定期間を超えていると判定された場合、前記処理対象データに対する処理を終了する。【選択図】図２
2013025550.tif 000002
【特許請求の範囲】
【請求項１】
処理対象データを示す情報および前記処理対象データを処理する期間を示す指定期間を含む処理指示を管理ノードから受信する受信部と、
前記処理指示を受信してからの時間である処理時間を計測するタイマ部と、
前記処理指示および前記処理時間に基づいて、前記処理対象データを処理し、解析結果応答を前記管理ノードへ送信する処理部と、
を備え、
前記処理対象データは、複数のパケットが結合されて成り、
前記処理部は、
（ａ）前記複数のパケットの内の処理対象のパケットを処理し、
（ｂ）前記処理対象のパケットの処理が終了したら、前記タイマ部を用いて前記処理時間が前記指定期間を超えたか否か判定し、
（ｃ）前記判定処理において、前記処理時間が前記指定時間を超えていないと判定された場合、前記処理対象のパケットの次のパケットを前記処理対象のパケットとし、
上記（ａ）から（ｃ）を前記判定処理において、前記処理時間が前記指定期間を超えていると判定されるまで繰り返し、
前記判定処理において、前記処理時間が前記指定期間を超えていると判定された場合、前記処理対象データに対する処理を終了する
ことを特徴とする処理ノード。
【請求項２】
前記処理指示は、前記処理対象データの処理の開始位置を示すオフセットを更に含み、
前記制御部は、前記処理対象データの前記オフセットの位置から前記処理対象データの処理を行うことを特徴とする請求項１記載の処理ノード。
【請求項３】
前記制御部は、前記判定処理において、前記処理時間が前記指定期間を超えていると判定されるまでに処理したパケットのバイト数を処理バイト数として解析結果応答に含めることを特徴とする請求項１または２記載の処理ノード。
【請求項４】
処理対象データを示す情報および前記処理対象データを処理する期間を示す指定期間を含む処理指示を管理ノードから受信し、
前記処理指示を受信してからの時間である処理時間を計測し、
前記処理指示および前記処理時間に基づいて、前記処理対象データを処理し、
解析結果応答を前記管理ノードへ送信する
処理をコンピュータに実行させるプログラムであって、
前記処理対象データは、複数のパケットが結合されて成り、
前記処理対象データを処理する処理は、
（ａ）前記複数のパケットの内の処理対象のパケットを処理し、
（ｂ）前記処理対象のパケットの処理が終了したら、前記タイマ部を用いて前記処理時間が前記指定期間を超えたか否か判定し、
（ｃ）前記判定処理において、前記処理時間が前記指定時間を超えていないと判定された場合、前記処理対象のパケットの次のパケットを前記処理対象のパケットとし、
上記（ａ）から（ｃ）を前記判定処理において、前記処理時間が前記指定期間を超えていると判定されるまで繰り返し、
前記判定処理において、前記処理時間が前記指定期間を超えていると判定された場合、前記処理対象データに対する処理を終了することを特徴とするプログラム。
【請求項５】
前記処理指示は、前記処理対象データの処理の開始位置を示すオフセットを更に含み、
前記処理対象データを処理する処理は、前記処理対象データの前記オフセットの位置から前記処理対象データの処理を行うことを特徴とする請求項４記載のプログラム。
【請求項６】
前記処理対象データを処理する処理は、前記判定処理において、前記処理時間が前記指定期間を超えていると判定されるまでに処理したパケットのバイト数を処理バイト数として解析結果応答に含めることを特徴とする請求項４または５記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、処理ノードおよびプログラムに関する。
【背景技術】
【０００２】
近年、インターネット販売での注文履歴などを解析し、利用者と同様の商品購入履歴を持つ商品をレコメンドするサービスや、株価や交通システム利用状況などのリアルタイム予測、生産ラインのセンサデータ時系列分析などの分野で大量データ分散処理の適用が進んでいる。
【０００３】
大量のデータを複数のコンピュータを並列に並べた分散処理システムに分散処理させることで、これまで数日かかっていた解析処理を数時間で解析できるなどのソリューションが活用され始めている。
【０００４】
分散処理システムは、入力された大量のデータを管理ノードで分割して、複数の処理ノードで解析処理を実施し、結果を管理ノードで集計して結果を出力する。処理ノードの台数を増やすことで、処理時間は短縮される。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−３３８２６４号公報
【特許文献２】特開２００７−２６４７９４号公報
【特許文献３】特開２００５−１４８９１１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
分散処理システムにおいて、処理ノードが処理する解析対象データが例えばパケットキャプチャファイルのようなバイナリデータの場合、ファイルの構造上、任意のサイズでデータを分割し、解析処理をさせることができない。
【０００７】
任意のサイズでデータを分割できない解析対象データのサイズがバラバラの場合、複数の処理ノードで異なるサイズのデータを解析処理させることになる。各処理ノードは、割り当てられたデータの解析処理を行う。
【０００８】
解析対象データのサイズが大幅に異なる場合、各処理ノードの処理時間に大きな差が出てしまう。例えば、大きいサイズの解析対象データを割り当てられた処理ノードは、割り当てられた解析対象データの処理完了時間が他の処理ノードと比べて長くなってしまう。
【０００９】
本発明の課題は、処理ノードが任意のサイズで分割できないデータを処理ノードで処理する場合に、ほぼ指定期間で処理を終了することである。
【課題を解決するための手段】
【００１０】
実施の形態の処理ノードは、受信部と、タイマ部と、処理部と、を備える。
受信部は、処理対象データを示す情報および前記処理対象データを処理する期間を示す指定期間を含む処理指示を管理ノードから受信する。
【００１１】
タイマ部は、前記処理指示を受信してからの時間である処理時間を計測する。
処理部は前記処理指示および前記処理時間に基づいて、前記処理対象データを処理し、解析結果応答を前記管理ノードへ送信する。
【００１２】
前記処理対象データは、複数のパケットが結合されて成り、前記処理部は、（ａ）前記複数のパケットの内の処理対象のパケットを処理し、（ｂ）前記処理対象のパケットの処理が終了したら、前記タイマ部を用いて前記処理時間が前記指定期間を超えたか否か判定し、（ｃ）前記判定処理において、前記処理時間が前記指定時間を超えていないと判定された場合、前記処理対象のパケットの次のパケットを前記処理対象のパケットとし、上記（ａ）から（ｃ）を前記判定処理において、前記処理時間が前記指定期間を超えていると判定されるまで繰り返し、前記判定処理において、前記処理時間が前記指定期間を超えていると判定された場合、前記処理対象データに対する処理を終了する。
【発明の効果】
【００１３】
実施の形態の処理ノードによれば、任意のサイズで分割できないデータを処理ノードで処理する場合に、処理ノードは、ほぼ指定期間で処理を終了することができる。
それにより、任意のサイズで分割できないデータを処理する場合に、複数の処理ノードの各処理ノードの指定期間を適切に設定すれば、各処理ノードの実処理時間は均等となり、全体の処理時間を高速にすることができる。
【図面の簡単な説明】
【００１４】
【図１】実施の形態に係る分散処理システムの構成図である。
【図２】実施の形態に係る管理ノードおよび処理ノードの構成図である。
【図３】パケットキャプチャファイルの形式を示す図である。
【図４】解析対象データ管理テーブルの例を示す図である。
【図５】処理ノード管理テーブルの例を示す図である。
【図６】指定期間管理テーブルの例を示す図である。
【図７】実施の形態に係る分散処理システムのシーケンス図である。
【図８】実施の形態に係る処理ノードの処理のフローチャートである。
【図９】実施の形態に係る管理ノードの処理のフローチャートである。
【図１０】処理ノードへの解析指示（ステップＳ６２５）の詳細なフローチャートである。
【図１１】テーブル更新処理（ステップＳ６２７）の詳細なフローチャートである。
【図１２】情報処理装置（コンピュータ）の構成図である。
【発明を実施するための形態】
【００１５】
以下、図面を参照しながら実施の形態を説明する。
図１は、実施の形態に係る分散処理システムの構成図である。
分散処理システム１０１は、管理ノード２０１および複数の処理ノード３０１−ｉ（ｉ＝１〜５）を備える。
【００１６】
管理ノード２０１と各処理ノード３０１は、ネットワーク４０１を介して接続している。
管理ノード２０１は、処理ノード３０１の処理能力を管理し、処理ノード３０１に処理を割り当てる。詳細には、管理ノード２０１は、処理ノード３０１に解析対象データや指定期間を通知する。そして、管理ノード２０１は、処理ノード３０１から解析結果を受信する。
【００１７】
処理ノード３０１は、管理ノード２０１からの通知に基づいて、解析対象データを解析し、解析結果を管理ノード２０１へ送信する。
解析対象データは、各処理ノード３０１に分散配置されており、処理ノード３０１間で必要に応じてネットワーク４０１を介して転送される。
【００１８】
どの解析対象データがどの処理ノード３０１に配置されているかの情報は、管理ノード２０１により管理されている。
【００１９】
図２は、実施の形態に係る管理ノードおよび処理ノードの構成図である。
管理ノード２０１は、記憶部２１１、タスク制御部２２１、解析対象データ管理部２３１、および処理ノード性能管理部２４１を備える。
記憶部２１１は、管理ノード２０１が利用する各種データを格納する記憶装置である。
【００２０】
記憶部２１１は、例えば、磁気ディスク装置や半導体記憶装置などである。
記憶部２１１は、解析対象データ管理テーブル２１２、処理ノード管理テーブル２１３、および指定期間管理テーブル２１４を有する。解析対象データ管理テーブル２１２、処理ノード管理テーブル２１３、および指定期間管理テーブル２１４の詳細については後述する。
【００２１】
タスク制御部２２１は、各処理ノード３０１に対して解析対象データや指定期間の通知、各処理ノード３０１からの処理結果の受信を行う。
解析対象データ管理部２３１は、解析対象データに関して、どのデータがどの処理ノード３０１に格納されているかを管理する。
【００２２】
処理ノード性能管理部２４１は、各処理ノード３０１の処理性能の情報を管理する。
処理ノード３０１−ｉは、記憶部３１１−ｉ、解析対象データ送受信部３２１−ｉ、タイマ処理部３３１−ｉ、および解析処理部３４１−ｉを備える。
【００２３】
記憶部３１１−ｉは、処理ノード３０１が処理するデータを格納する記憶装置である。  記憶部３１１は、例えば、磁気ディスク装置や半導体記憶装置などである。
記憶部３１１−ｉは、解析対象データ３１２−ｉを有する。
【００２４】
解析対象データ３１２−ｉは、処理ノード３０１の解析処理の対象となるデータである。解析対象データ３１２は、例えば、パケットキャプチャデータファイルである。
解析対象データ送受信部３２１−ｉは、管理ノード２０１からの指示で、指定された解析対象データ３１２−ｉの解析を開始する際、自ノードに指定された解析対象データ３１２−ｉが存在しない場合、他ノードへ解析対象データ３１２−ｉを要求して、解析対象データ３１２−ｉを受信する。また、他ノードからの要求に応じて解析対象データ３１２−ｉを送信する。
【００２５】
また、解析対象データ送受信部３２１−ｉは、解析処理部３４１−ｉによる解析結果を管理ノード２０１に送信する。
タイマ処理部３３１−ｉは、タイマを用いて時間をカウントする。
解析処理部３４１−ｉは、管理ノード２０１から指定された解析対象データ３１２および指定期間に基づいて、解析対象データ３１２の解析を行う。
【００２６】
次に、実施の形態の解析対象データについて説明する。
実施の形態の解析対象データ３１２は、解析処理を行う場合、解析対象データの任意の位置から解析を行うことが出来ないデータである。すなわち、実施の形態の解析対象データ３１２は、分散処理において、一定または任意のサイズで分割できないデータである。
【００２７】
実施の形態においては、解析対象データ３１２として、パケットキャプチャデータファイル（以下、キャプチャファイル）を用いている。
キャプチャファイルは、例えば、ネットワーク上に流れるパケットデータがキャプチャ装置により収集され、ヘッダ等の情報が付加されることにより、生成される。
【００２８】
図３は、キャプチャファイルの構造を示す図である。
キャプチャファイル５０１は、グローバルヘッダ５０２と複数のパケット５０３−ｊ（ｊ＝１〜ｎ）が結合して構成されるバイナリデータである。
【００２９】
パケット５０３−ｊは、パケットヘッダ５０３−ｊ−１とパケットデータ５０３−ｊ−２からなる。
グローバルヘッダ５０２には、キャプチャファイルであることを示す情報が記述されている。グローバルヘッダ５０２は、パケットデータ５０３−ｊ−２をキャプチャしたキャプチャ装置によって付加される。グローバルヘッダ５０２のサイズは、固定（２４byte）である。
【００３０】
パケットヘッダ５０３−ｊ−１には、パケットデータ５０３−ｊ−２がキャプチャされた時間やパケットデータ５０３−ｊ−２のサイズなどが記述されている。パケットヘッダ５０３−ｊ−１のサイズは、固定（１６byte）である。
【００３１】
パケットデータ５０３−ｊ−２は、ネットワークを流れるデータであり、キャプチャ装置によってキャプチャされたデータである。パケットデータ５０３−ｊ−２のサイズは可変である。
【００３２】
実施の形態において、一組のパケットヘッダとパケットデータを１パケット分のデータ若しくは１パケットと呼ぶ。
実施の形態において、キャプチャファイル５０１は先頭のパケット５０３−１から順に解析処理される。
【００３３】
キャプチャファイル５０１内の１パケット分のデータは固定長ではなく、パケットヘッダ５０３−ｊ−１にパケットデータ５０３−ｊ−２のサイズが格納されている。
このため、先頭バイトから順番に処理をしていかないと、正しく１パケット分のデータを解析することが出来ない。
【００３４】
分散処理を行う場合に、このようなキャプチャファイルを一定のサイズまたは任意のサイズで分割すると、１パケット分のデータの途中で分断される可能性がある。よって、複数の処理ノードで処理させるために、キャプチャファイルを一定のサイズまたは任意のサイズで分割することは出来ない。
【００３５】
キャプチャファイルのサイズが大幅に異なる場合、異なるサイズのキャプチャファイルを各処理ノードに割り当てて処理させると、各処理ノードの処理時間に大きな差が出てしまう。各処理ノードの実処理時間が一定にならないと、全体の処理時間を高速にすることができない。
【００３６】
すなわち、任意のサイズで分割できないキャプチャファイルを分散処理対象とする場合、各処理ノードの実処理時間が均等にならず、全体の処理時間が長くなってしまうという問題があった。
【００３７】
図４は、処理ノード管理テーブルの例を示す図である。
処理ノード管理テーブル２１２は、項目として、処理ノード、処理回数、処理性能（pkt）、処理性能（byte）、および処理中を有する。処理ノード管理テーブル２１３には、処理ノード、処理回数、処理性能（pkt）、処理性能（byte）、および処理中が対応付けられて記述されている。
【００３８】
処理ノードは、処理ノード３０１の識別子を示す。例えば、処理ノード３０１−１〜３０１−５には、００１や００２等の識別子が割り当てられている。
処理回数は、解析処理を実行した回数を示す。
【００３９】
処理性能（pkt）は、処理ノード３０１が解析処理で処理した単位時間（例えば１秒）当たりのパケットの数の最小値（min）、最大値（max）、および平均値（ave）を示す。
処理性能（byte）は、処理ノード３０１が解析処理で処理した単位時間（例えば１秒）当たりのデータのサイズの最小値（min）、最大値（max）、および平均値（ave）を示す。
【００４０】
処理中は、処理ノード３０１が解析処理を実行中であるか否かを示す。「Ｙ」は処理を実行中であることを示し、「Ｎ」は処理を実行中で無いことを示す。
【００４１】
図５は、解析対象データ管理テーブルの例を示す図である。
解析対象データ管理テーブル２１３には、解析対象データ３１２の処理状況や解析対象データ３１２が格納されている処理ノード３０１などが記述されている。
解析対象データ管理テーブル２１３は、項目として、解析対象データ、サイズ、オフセット、データ格納ノード、および処理状況を有する。解析対象データ管理テーブル２１２には、解析対象データ、サイズ、オフセット、データ格納ノード、および処理状況が対応付けられて記述されている。
【００４２】
解析対象データは、解析対象データのファイル名、すなわちキャプチャファイルのファイル名を示す。
サイズは、解析対象データのサイズを示す。
【００４３】
オフセットは、解析対象データの内、処理済みのデータの終わりの位置を示す。若しくは、解析対象データの内、未処理のデータの先頭の位置を示す。すなわち、処理ノード３０１が解析対象データ３１２を処理する場合の処理開始位置を示す。
【００４４】
データ格納ノードは、解析対象データが格納されている処理ノードを示す。図４においては、解析対象データが格納されている処理ノードの識別子が複数記述されている。
処理状況は、解析対象データの解析処理の処理状況を示す。「中」は処理中、「済」は処理済み、「未」は未処理であることを示す。
【００４５】
図６は、指定期間管理テーブルの例を示す図である。
指定期間管理テーブル２１４は、項目として、処理ノード、解析対象データ、指定期間、実処理時間、および処理開始時間を有する。指定期間管理テーブル２１４には、項目として、処理ノード、解析対象データ、指定期間、実処理時間、および処理開始時間が対応付けられて記述されている。
【００４６】
処理ノードは、処理ノードの識別子を示す。
解析対象データは、処理ノードが処理する解析対象データのファイル名を示す。
指定期間は、処理ノード３０１が解析処理を実行する期間である。指定期間の単位は秒である。
【００４７】
実処理時間は、解析指示を送信してから解析結果応答を受信するまでの時間である。実処理時間の単位は秒である。
処理開始時間は、処理ノード３０１に解析指示を送信した時間である。
【００４８】
図７は、実施の形態に係る分散処理システムのシーケンス図である。
管理ノード２０１は、処理ノード３０１ごとに異なる解析対象データと指定期間を含む解析指示を通知する。
【００４９】
ここでは、例として管理ノード２０１が処理ノード３０１−１に解析指示を送信した場合について述べる。
管理ノード２０１は、解析指示を処理ノード３０１−１に送信する（ステップＳ６０１）。解析指示には、処理ノード３０１−１が処理する解析対象データを示す情報、オフセット、指定期間を含む。さらに、解析指示には、処理ノード３０１−１が処理する解析対象データを格納する処理ノード（データ格納ノード）を示す情報が含まれる。
【００５０】
処理ノード３０１−１は、解析指示を受信すると、解析指示で指定された解析対象データが自ノードにあるか否か判定し、解析指示で指定された解析対象データを取得する。尚、解析対象データが自ノードに格納されているか否かの判断は、解析指示に含まれるデータ格納ノードを示す情報を参照して判断する。
【００５１】
詳細には、処理ノード３０１−１は、解析対象データが自ノード（すなわち処理ノード３０１−１）に格納されていない場合、解析対象データを格納する処理ノード（ここでは、処理ノード３０１−２とする）に解析対象データ取得要求を送信する（ステップＳ６０２）。処理ノード３０１−２は、解析対象データ取得要求を受信すると、指定された解析対象データを処理ノード３０１−１に送信する。処理ノード３０１−１は、指定された解析対象データが自ノードに格納されている場合は、該解析対象データを記憶部３１１−１から読み出す。
【００５２】
処理ノード３０１−１は、解析対象データを自ノードから読み出すまたは処理ノード３０１−２から受信すると、解析対象データの解析をオフセットの位置から行う（ステップＳ６０４）。処理ノード３０１−１は、現在処理しているパケットの処理が完了し、且つ解析指示を受信してからの時間が指定期間を経過するまで行う。
【００５３】
処理ノード３０１−１は、解析結果、処理パケット数、および処理バイト数などを含む解析結果応答を管理ノード２０１へ送信する（ステップＳ６０５）。
管理ノード２０１は、解析結果応答を受信し、受信した処理パケット数および処理バイト数に基づいて、処理ノード３０１−１の処理性能を算出する。
【００５４】
上記のように、管理ノード２０１は、解析対象データを処理ノードに割り当てて、解析処理させるだけでなく、各処理ノード３０１−１の処理性能（処理パケット数および処理バイト数）を算出している。そして、詳細は後述するが、管理ノード２０１は算出した処理性能を用いて、各処理ノード３０１へ通知する指定期間を決定している。
【００５５】
次に処理ノードの処理（ステップＳ６０２〜Ｓ６０５）の詳細について述べる。
図８は、実施の形態に係る処理ノードの処理のフローチャートである。
ここでは、処理ノード３０１−１が処理を行う場合について述べる。また、解析対象データは、キャプチャファイルとする。
【００５６】
ステップＳ６１１において、解析処理部３４１−１は、管理ノード２０１から解析指示を受信する。尚、解析指示には、処理ノード３０１−１が処理する解析対象データを示す情報、オフセット、指定期間、および処理ノード３０１−１が処理する解析対象データを格納する処理ノード（データ格納ノード）を示す情報が含まれている。
【００５７】
ステップＳ６１２において、タイマ処理部３３１−１は、管理ノード２０１から解析指示を受信すると、タイマを開始する。すなわち、タイマ処理部３３１−１は、解析指示を受信してからの時間をカウントする。
【００５８】
ステップＳ６１３において、解析対象データ送受信部３２１−１は、自ノード（すなわち、処理ノード３０１−１）に解析指示で指定された解析対象データがあるか否か判定する。自ノードに指定された解析対象データがあるか否かは、解析指示に含まれるデータ格納ノードを示す情報を参照して判定する。
【００５９】
自ノードに解析対象データがある場合、解析処理部３４１−１は該解析対象データを記憶部３１１−１から読み出し、制御はステップＳ６１５へ進む。
自ノードに解析対象データがない場合、解析対象データ送受信部３２１−１はデータ格納ノードへ解析対象データの送信要求を送信し、制御はステップＳ６１４へ進む。データ格納ノードは、送信要求を受信すると、解析対象データを送信要求の送信元（処理ノード３０１−１）へ送信する。
【００６０】
ステップＳ６１４において、解析対象データ送受信部３２１−１は、データ格納ノードから解析対象データを受信する。
以下、解析処理部３４１−１は、記憶部３１１−１から読み出した解析対象データまたはデータ格納ノードから受信した解析対象データに対する解析処理を行う。
【００６１】
ステップＳ６１５において、解析処理部３４１−１は、処理対象パケットを解析処理する。尚、処理対象パケットは、ステップＳ６１５の実行が初回の場合は、キャプチャファイル５０１の内、解析指示に含まれるオフセットの位置のパケットであり、ステップＳ６１５の実行が２回目以降の場合は、後述のステップＳ６１６で指定されたパケットとなる。
【００６２】
上記のように、ステップＳ６１５では、１パケット分のデータが解析処理される。
ステップＳ６１６において、解析処理部３４１−１は、タイマを参照し、解析指示を受信してからの時間が指定期間を超えているか否か判定する。解析指示を受信してからの時間が指定期間を超えている場合、制御はステップＳ６１７へ進む。また、解析指示を受信してからの時間が指定期間を超えていない場合、制御はステップＳ６１５へ戻り、解析処理部３４１−１は、キャプチャファイル５０１の内、ステップＳ６１５で解析したパケットの次のパケットを処理対象パケットする。例えば、パケット５０３−１を解析した場合は、次の処理対象パケットはパケット５０３−２となる。
【００６３】
ステップＳ６１７において、解析対象データ送受信部３２１−１は、解析結果応答を管理ノード２０１へ送信する。解析結果応答には、解析結果、処理パケット数、処理バイト数が含まれる。
解析結果は、解析処理部３４１−１がパケットを解析処理した結果である。
【００６４】
処理パケット数は、解析指示を受信してからの時間が指定期間を超えているまでに、解析処理部３４１−１が解析処理を行ったパケットの数である。
処理バイト数は、解析指示を受信してからの時間が指定期間を超えているまでに、解析処理部３４１−１が解析処理を行ったパケットのサイズの合計である。
【００６５】
次に管理ノード２０１の処理について説明する。
図９は、実施の形態に係る管理ノードの処理を示すフローチャートである。
管理ノード２０１は、最初にユーザから解析開始の指示を受信し、以下の処理を実行する。
【００６６】
ステップＳ６２１において、タスク制御部２２１は、解析対象データ管理テーブル２１３を参照する。
ステップＳ６２２において、タスク制御部２２１は、解析対象データ管理テーブル２１３に基づいて、全ての解析対象データが解析済みであるか否か判定する。全ての解析対象データが解析済みの場合、処理を終了し、１つ以上の解析対象データが解析済みで無い場合、制御はステップＳ６２３へ進む。
【００６７】
全ての解析対象データが解析済みであるか否か判定において、タスク制御部２２１は、解析対象データ管理テーブル２１３の処理状況が全て「済」である場合、全ての解析対象データが解析済みと判定し、処理状況に一つ以上「中」または「未」がある場合、１つ以上の解析対象データが解析済みで無いと判定する。
【００６８】
ステップＳ６２３において、タスク制御部２２１は、処理ノード管理テーブル２１２を参照する。
ステップＳ６２４において、タスク制御部２２１は、処理ノード管理テーブル２１２に基づいて、全ての処理ノード３０１が解析処理中であるか否か判定し、全ての処理ノード３０１が解析処理中である場合、制御はステップＳ６２６へ進み、１つ以上の処理ノード３０１が解析処理を行っていない場合、制御はステップＳ６２５へ進む。
【００６９】
全ての処理ノード３０１が解析処理中であるか否かの判定において、タスク制御部２２１は、処理ノード管理テーブル２１２の処理中が全て「Ｙ」である場合、全ての処理ノード３０１が解析処理中であると判定し、処理中に一つ以上「Ｎ」がある場合、１つ以上の処理ノード３０１が解析処理を行っていないと判定する。
【００７０】
ステップＳ６２５において、タスク制御部２２１は、処理ノードへ解析指示を行う。尚、解析指示の詳細については後述する。
ステップＳ６２６において、タスク制御部２２１は、処理ノード３０１から解析結果を受信するまで待機し、タスク制御部２２１が処理ノード３０１から解析結果を受信すると、制御はステップＳ６２７に進む。
【００７１】
ステップＳ６２７において、管理ノード２０１は、テーブル（解析対象データ管理テーブル２１２、処理ノード管理テーブル２１３、および指定期間管理テーブル２１４）を更新する。テーブル更新処理（ステップＳ６２７）の詳細については後述する。
【００７２】
ステップＳ６２８において、タスク制御部２２１は、全ての処理ノード３０１の解析処理が完了しているか否か判定し、全ての処理ノード３０１の解析処理が完了している場合、制御はステップＳ６２１へ進み、一つ以上の処理ノード３０１の解析処理が完了していない場合、制御はステップＳ６２６へ戻る。
【００７３】
全ての処理ノード３０１の解析処理が完了しているか否かの判定は、タスク制御部２２１が処理ノード管理テーブル２１２を参照することにより行う。詳細には、タスク制御部２２１は、処理ノード管理テーブル２１２の処理中が全て「Ｎ」である場合、全ての処理ノード３０１の解析処理が完了していると判定し、一つ以上「Ｙ」がある場合、一つ以上の処理ノード３０１の解析処理が完了していないと判定する。
【００７４】
図１０は、処理ノードへの解析指示（ステップＳ６２５）の詳細なフローチャートである。
尚、処理ノードへの解析指示は、解析処理を実行していない処理ノードに対して行う。
【００７５】
ステップＳ６３１において、タスク制御部２２１は、指定期間管理テーブル２１２を更新する。詳細には、タスク制御部２２１は、指定期間管理テーブル２１２を参照し、全ての処理ノードの実処理時間の平均値を算出する。算出した平均値と各処理ノードの実処理時間との差分を算出し、該差分を各処理ノードの指定期間に加算し、加算した値を新たな指定期間として、指定期間管理テーブル２１２の処理期間を更新する。
【００７６】
ステップＳ６３２において、タスク制御部２２１は、処理ノード３０１へ解析指示を送信する。詳細には、タスク制御部２２１は、解析対象データ管理テーブル２１３を参照し、処理状況が「中」または「未」である解析対象データを検出し、検出した解析対象データを処理ノードに解析対象として適当に割り当てる。ただし、同じ解析対象データを複数の処理ノードに同時に割り当てないようにする。
【００７７】
タスク制御部２２１は、指定期間管理テーブル２１２を参照し、割り当てた解析対象データ、該解析対象データのオフセット、指定期間を解析指示に含めて、処理ノードに解析指示を送信する。
【００７８】
また、タスク制御部２２１は、割り当てた解析対象データで指定期間管理テーブル２１４の解析対象データを更新し、解析指示を送信した時刻で指定期間管理テーブル２１４の処理開始時間を更新する。
【００７９】
ステップＳ６３３において、処理ノード性能管理部２４１は、処理ノード管理テーブル２１２の処理中を「Ｙ」に更新する。
ステップＳ６３４において、解析対象データ管理部２３１は、処理ノード３０１に割り当てた解析対象データに対応する解析対象データ管理テーブル２１３の処理状況を「中」に更新する。
【００８０】
ステップＳ６３１の処理により、実処理時間が平均値より長い処理ノードの指定期間は短くなり、実処理時間が平均値より短い処理ノードの指定期間は長くなる。このように指定時間を決定することで、各処理ノードの実処理時間のバラツキが少なくなり、各処理ノードの実処理時間はほぼ一定になる。したがって、処理性能が低い処理ノードの処理完了待ちが発生するという状況を回避することが出来る。
【００８１】
図１１は、テーブル更新処理（ステップＳ６２７）の詳細なフローチャートである。
ステップＳ６４１において、タスク制御部２２１は、指定期間管理テーブル２１４を参照し、解析結果を受信した時間と処理開始時間との差を実処理時間として算出し、該実処理時間で指定期間管理テーブル２１４を更新する。
【００８２】
ステップＳ６４２において、処理ノード性能管理部２４１は、実処理時間と解析結果を用いて、処理ノード管理テーブル２１２の解析結果を送信した処理ノードに対応するレコードを更新する。
【００８３】
詳細には、処理ノード性能管理部２４１は、処理ノード管理テーブル２１２の処理回数に１を加算する。
また、処理ノード性能管理部２４１は、解析結果に含まれる処理パケット数と処理バイト数を用いて今回の解析処理を含めた処理ノードの処理性能（pkt）と処理性能(byte)の平均を求め、処理ノード管理テーブル２１２の処理性能（pkt）の平均値（ave）と処理性能（byte）の平均値（ave）を更新する。また、処理ノード性能管理部２４１は、解析結果に含まれる処理パケット数が処理ノード管理テーブル２１２の処理性能（pkt）の最小値（min）より小さいまたは最大値（max）より大きい場合は、該処理パケット数で最小値（min）または最大値（max）を更新する。また、処理ノード性能管理部２４１は、解析結果に含まれる処理バイト数が処理ノード管理テーブル２１２の処理性能（byte）の最小値（min）より小さいまたは最大値（max）より大きい場合は、該処理パケット数で最小値（min）または最大値（max）を更新する。
【００８４】
さらに、解析対象データ管理部２３１は、処理ノード管理テーブル２１２の処理中を「Ｎ」とする。
ステップＳ６４３において、解析対象データ管理部２３１は、解析結果を用いて、解析対象データ管理テーブル２１３の解析処理を行った解析対象データに対応するレコードを更新する。
【００８５】
詳細には、解析対象データ管理部２３１は、解析結果に含まれる処理バイト数をオフセットに加算して、新たなオフセットを算出し、新たなオフセットで解析対象データ管理テーブル２１３を更新する。
【００８６】
また、解析対象データ管理部２３１は、解析対象データ管理テーブル２１３の処理状況を更新する。
実施の形態の分散処理システムによれば、処理ノードが一定サイズや任意のサイズで分割できないデータを処理する場合に、処理ノードに割り当てられたデータのサイズに関係なく、ほぼ指定された期間で処理を終了できる。すなわち、処理ノードは割り当てられたデータを全て処理して処理を終了するのではなく、指定期間に基づいて処理を終了する。
【００８７】
実施の形態の分散処理システムによれば、処理ノードが１パケット分のデータを処理するごとに処理の終了判定を行っているため、中途半端な位置で処理が終了しないので、次回の処理で次のパケットの先頭から処理できるため、一定サイズや任意のサイズで分割できないデータを処理することができる。
【００８８】
実施の形態の分散処理システムによれば、指定した期間に基づいて解析処理を終了させるため、処理能力の低い処理ノードが割り当てられたデータサイズの大きいデータを全部処理するまで処理完了待ちとなる事態を回避できる。すなわち、指定期間に基づいて処理を終了するため、処理能力の低いなどの特定の処理ノードに全体の処理時間が影響されて長くなるという問題が回避できる。
【００８９】
実施の形態の分散処理システムによれば、各処理ノードの実処理時間が均等となるように各処理ノードの指定期間を決定することが出来る。それにより、各処理ノードの実処理時間が均等となり、全体の処理速度が安定して、高効率な処理が可能となる。
【００９０】
実施の形態の分散処理システムによれば、指定期間による１回の処理ごとに実処理時間に基づいて指定期間を算出しているので、処理ノードの負荷やネットワークのトラフィックの状況を考慮した指定期間を指定することが出来る。すなわち、予め分かっている静的な処理能力ではなく、動的に変化する処理能力に基づいて、指定期間を指定することが出来る。
尚、実施の形態において、処理ノード３０１は解析処理を行っているが、解析処理に限られず、暗号化や復号、圧縮、伸長、データ変換などの任意の処理を行っても良い。
【００９１】
図１２は、情報処理装置（コンピュータ）の構成図である。
実施の形態の管理ノード２０１および処理ノード３０１は、例えば、図１２に示すような情報処理装置１によって実現される。
情報処理装置１は、CPU２、メモリ３、入力部４、出力部５、記憶部６、記録媒体駆動部７、およびネットワーク接続部８を備え、それらはバス９により互いに接続されている。
【００９２】
CPU２は、情報処理装置１全体を制御する中央処理装置である。CPU２は、タスク制御部２２１、解析対象データ管理部２３１、処理ノード性能管理部２４１、および解析対象データ送受信部３２１、タイマ処理部３３１、解析処理部３４１に対応する。
【００９３】
メモリ３は、プログラム実行の際に、記憶部６（あるいは可搬記録媒体１０）に記憶されているプログラムあるいはデータを一時的に格納するRead Only Memory(ROM)やRandom Access Memory(RAM)等のメモリである。CPU２は、メモリ３を利用してプログラムを実行することにより、上述した各種処理を実行する。
【００９４】
この場合、可搬記録媒体１０等から読み出されたプログラムコード自体が実施の形態の機能を実現する。
入力部４は、例えば、キーボード、マウス、タッチパネル等である。
【００９５】
出力部５は、例えば、ディスプレイ、プリンタ等である。
記憶部６は、例えば、磁気ディスク装置、光ディスク装置、テープ装置等である。情報処理装置１は、記憶部６に、上述のプログラムとデータを保存しておき、必要に応じて、それらをメモリ３に読み出して使用する。
【００９６】
メモリ３または記憶部６は、記憶部２１１、３１１に対応する。
記録媒体駆動部７は、可搬記録媒体１０を駆動し、その記録内容にアクセスする。可搬記録媒体としては、メモリカード、フレキシブルディスク、Compact Disk Read Only Memory(CD-ROM)、光ディスク、光磁気ディスク等、任意のコンピュータ読み取り可能な記録媒体が用いられる。ユーザは、この可搬記録媒体１０に上述のプログラムとデータを格納しておき、必要に応じて、それらをメモリ３に読み出して使用する。
【００９７】
ネットワーク接続部８は、LAN等の任意の通信ネットワークに接続され、通信に伴うデータ変換を行う。
【符号の説明】
【００９８】
１０１    分散処理システム
２０１    管理ノード
２１１    記憶部
２１２    処理ノード管理テーブル
２１３    解析対象データ管理テーブル
２１４    指定期間管理テーブル
２２１    タスク制御部
２３１    解析対象データ管理部
２４１    処理ノード性能管理部
３０１    処理ノード
３１１    記憶部
３１２    解析対象データ
３２１    解析対象データ送受信部
３３１    タイマ処理部
３４１    解析処理部
４０１    ネットワーク
５０１    パケットキャプチャファイル
５０２    グローバルヘッダ
５０３    パケット
１    情報処理装置
２    CPU
３    メモリ
４    入力部
５    出力部
６    記憶部
７    記録媒体駆動部
８    ネットワーク接続部
９    バス
１０    可搬記録媒体
【図４】
2013025550.tif 000003
【図５】
2013025550.tif 000004
【図６】
2013025550.tif 000005
【図７】
2013025550.tif 000006
【図８】
2013025550.tif 000007
【図９】
2013025550.tif 000008
【図１０】
2013025550.tif 000009
【図１１】
2013025550.tif 000010
【図１２】
2013025550.tif 000011
【図１】
2013025550.tif 000012
【図２】
2013025550.tif 000013
【図３】
2013025550.tif 000014