(57)【要約】【課題】イベントデータを効率的に処理できるプログラム、情報処理装置及び情報処理方法を提供することにある。【解決手段】情報機器から出力される出力データの状態を示す状態値を複数含む該出力データが複数に分割された分割データの内の１つを処理する情報処理装置２に用いられるプログラムであって、処理対象の分割データに複数含まれ、前記状態値の夫々を特定する特定情報毎に複数の状態値を複製し、複製した複数の状態値を集計する処理を情報処理装置２に実行させる。【選択図】図１
2015215842.tif 000002
【特許請求の範囲】
【請求項１】
情報機器から出力される出力データの状態を示す状態値を複数含む該出力データが複数に分割された分割データの内の１つを処理する情報処理装置に用いられるプログラムであって、
処理対象の分割データに複数含まれ、前記状態値の夫々を特定する特定情報毎に複数の状態値を複製し、
複製した複数の状態値を集計する
処理を情報処理装置に実行させるプログラム。
【請求項２】
前記特定情報は一の状態値を数字により特定する連番の特定番号であり、
該複数の特定番号により特定される複数の状態値を、各特定番号から各特定番号に共通の所定の数を加算した特定番号まで対応づけて複製し、
複製した複数の状態値を集計するに際し、複製した複数の状態値の和を同一の特定番号毎に集計する
請求項１に記載のプログラム。
【請求項３】
前記特定情報は一の状態値を時刻により特定する特定時刻であり、
該複数の特定時刻同士の差分を計算し、
計算した複数の差分同士の和を計算し、
計算した複数の差分又は複数の差分同士の和のいずれか１つが所定の数以上であるか否かを判定し、
前記複数の差分又は前記複数の差分同士の和のいずれか１つが所定の数以上でないと判定した場合、前記一の分割データに含まれる複数の状態値を複製し、
複製した複数の状態値を集計するに際し、該複数の状態値の和を同一の特定時刻毎に集計する
請求項１又は請求項２に記載のプログラム。
【請求項４】
情報機器から出力される出力データの状態を示す状態値を複数含む該出力データが複数に分割された分割データの内の１つを処理する情報処理装置であって、
処理対象の分割データに複数含まれ、前記状態値の夫々を特定する特定情報毎に複数の状態値を複製する複製部と、
該複製部で複製した複数の状態値を集計する集計部と
を備える情報処理装置。
【請求項５】
情報機器から出力される出力データの状態を示す状態値を複数含む該出力データが複数に分割された分割データの内の１つを処理する情報処理装置を用いた情報処理方法であって、
処理対象の分割データに複数含まれ、前記状態値を特定する特定情報毎に複数の状態値を複製し、
複製した複数の状態値を集計する情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータにより情報処理を行うプログラム、情報処理装置及び情報処理方法に関する。
【背景技術】
【０００２】
情報機器から出力される出力データを示すイベントデータを処理する技術が知られている（例えば、特許文献１、特許文献２）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−８７１９０号公報
【特許文献２】特開２０１１−１２８８１８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の技術では複数の情報処理装置を用いて効率的に大量のイベントデータを処理することが難しいという問題があった。
【０００５】
一つの側面では、本発明は、イベントデータを効率的に処理できるプログラム、情報処理装置及び情報処理方法を提供することにある。
【課題を解決するための手段】
【０００６】
一態様のプログラムは情報機器から出力される出力データの状態を示す状態値を複数含む該出力データが複数に分割された分割データの内の１つを処理する情報処理装置に用いられるプログラムであって、処理対象の分割データに複数含まれ、前記状態値の夫々を特定する特定情報毎に複数の状態値を複製し、複製した複数の状態値を集計する処理を情報処理装置に実行させる。
【発明の効果】
【０００７】
一態様によれば、イベントデータを効率的に処理できる。
【図面の簡単な説明】
【０００８】
【図１】情報処理システムの概要を示す模式図である。
【図２】中央装置のハードウェア群を示すブロック図である。
【図３】情報処理装置のハードウェア群を示すブロック図である。
【図４】分割テーブルのレコードレイアウトの一例を示す説明図である。
【図５】出力テーブルのレコードレイアウトの一例を示す説明図である。
【図６】集計テーブルのレコードレイアウトの一例を示す説明図である。
【図７】ＣＰＵの処理手順の一例を示すフローチャートである。
【図８】Ｍａｐ処理の処理手順の一例を示すフローチャートである。
【図９】Ｍａｐ処理の処理手順の一例を示すフローチャートである。
【図１０】Ｒｅｄｕｃｅ処理の処理手順の一例を示すフローチャートである。
【図１１】実施の形態２に係る分割テーブルのレコードレイアウトの一例を示す説明図である。
【図１２】実施の形態２に係る出力テーブルのレコードレイアウトの一例を示す説明図である。
【図１３】実施の形態２に係るスタックテーブルのレコードレイアウトの一例を示す説明図である。
【図１４】実施の形態２に係る集計テーブルのレコードレイアウトの一例を示す説明図である。
【図１５】実施の形態２に係るＭａｐ処理の処理手順の一例を示すフローチャートである。
【図１６】実施の形態２に係るＲｅｄｕｃｅ処理の処理手順の一例を示すフローチャートである。
【図１７】実施の形態３に係る中央装置のハードウェア群を示すブロック図である。
【図１８】ＣＰＵが処理を行う前の実施の形態３に係る分割テーブルのレコードレイアウトの一例を示す説明図である。
【図１９】ＣＰＵが処理を行った後の実施の形態３に係る分割テーブルのレコードレイアウトの一例を示す説明図である。
【図２０】実施の形態３に係る集計テーブルのレコードレイアウトの一例を示す説明図である。
【図２１】実施の形態３に係るＭａｐ処理の処理手順の一例を示すフローチャートである。
【図２２】実施の形態３に係るＭａｐ処理の処理手順の一例を示すフローチャートである。
【図２３】実施の形態３に係るＲｅｄｕｃｅ処理の処理手順の一例を示すフローチャートである。
【図２４】実施の形態４に係る情報処理装置のハードウェア群を示すブロック図である。
【図２５】実施の形態４に係る中央装置の機能ブロック図である。
【図２６】実施の形態４に係る情報処理装置の機能ブロック図である。
【発明を実施するための形態】
【０００９】
実施の形態１
図１は情報処理システムの概要を示す模式図である。図１に示す情報処理システムは、中央装置（送信装置、情報機器）１、情報処理装置２を備える。中央装置１、情報処理装置２はインターネット、ＬＡＮ(Local Area Network)または携帯電話網等の通信網Ｎにより相互に接続されている。情報処理装置２は情報処理装置２Ａ、情報処理装置２Ｂ、情報処理装置２Ｃ等の複数の情報処理装置から構成されており、通信網Ｎを介して、中央装置１との間で情報の送受信を行っている。以下、一例として情報処理装置２は情報処理装置２Ａであるとして説明を行う。
【００１０】
図２は中央装置１のハードウェア群を示すブロック図である。中央装置１は生成したデータを情報処理装置２Ａ、情報処理装置２Ｂ、情報処理装置２Ｃ等の夫々に送信するコンピュータであり、例えばパーソナルコンピュータ、サーバコンピュータ等である。図１に示す中央装置１は、ＣＰＵ(Central Processing Unit)１１、記憶部１２、入力部１３、出力部１４、通信部（送信部）１５を備える。
【００１１】
ＣＰＵ１１は、バスを介してハードウェア各部と接続されている。ＣＰＵ１１は例えば一又は複数のＣＰＵ又はマルチコアＣＰＵ等を備える。ＣＰＵ１１は、記憶部１２に記憶されたプログラム１２Ｐに従いハードウェアの各部を制御する。
【００１２】
記憶部１２は、ＲＯＭ（Read Only Memory）及びＲＡＭ（Random Access Memory）を備えている。ＲＯＭは例えばＥＥＰＲＯＭ（Electrically Erasable Programmable ROM）又はフラッシュメモリ等の不揮発性のメモリ素子である。またＲＡＭはＳＲＡＭ（Static Random Access Memory）又はＤＲＡＭ（Dynamic Random Access Memory）等の揮発性メモリ素子で構成されている。記憶部１２は、ＣＰＵ１１が処理を行う際に必要とする種々のデータ、ＣＰＵ１１が実行するプログラム１２Ｐを格納する。
【００１３】
入力部１３はマウス、キーボード又はタッチパネル等の入力デバイスであり、受け付けた操作情報をＣＰＵ１１へ出力する。出力部１４は表示装置（図示せず）に表示させる画像データを出力する。通信部１５は、例えば無線ＬＡＮカード又は携帯電話用通信モジュール等であり、通信網Ｎを介して各種情報を情報処理装置２に送信する。
【００１４】
図３は情報処理装置２のハードウェア群を示すブロック図である。情報処理装置２は中央装置１から受信した情報を処理するコンピュータであり、例えばＤＢサーバコンピュータ、サーバコンピュータ等である。中央装置１から情報を受信した情報処理装置２Ａ、情報処理装置２Ｂ、情報処理装置２Ｃ等の夫々は並列処理を行っている。図２に示す情報処理装置２は、ＣＰＵ２１、記憶部２２、入力部２３、出力部２４、通信部（受信部）２５を備える。
【００１５】
ＣＰＵ２１は、バスを介してハードウェア各部と接続されている。ＣＰＵ２１は例えば一又は複数のＣＰＵ又はマルチコアＣＰＵ等を備える。ＣＰＵ２１は、記憶部２２に記憶されたプログラム２２Ｐに従いハードウェアの各部を制御する。
【００１６】
記憶部２２は、ＲＯＭ、ＲＡＭ及びハードディスクを備えている。ＲＯＭは例えばＥＥＰＲＯＭ又はフラッシュメモリ等の不揮発性のメモリ素子である。またＲＡＭはＳＲＡＭ又はＤＲＡＭ等の揮発性メモリ素子で構成されている。記憶部２２は、ＣＰＵ２１が処理を行う際に必要とする種々のデータ、ＣＰＵ２１が実行するプログラム２２Ｐ、分割テーブルＴ１、出力テーブルＴ２、集計テーブルＴ３、スタックテーブルＴ４を格納する。
【００１７】
入力部２３はマウス、キーボード又はタッチパネル等の入力デバイスであり、受け付けた操作情報をＣＰＵ２１へ出力する。出力部２４は表示装置に表示させる画像データを出力する。通信部２５は、例えば有線ＬＡＮ、無線ＬＡＮカード又は携帯電話用通信モジュール等であり、通信網Ｎを介して各種情報を中央装置１に送信する。
【００１８】
図４は分割テーブルＴ１のレコードレイアウトの一例を示す説明図である。分割テーブルＴ１は情報機器から出力される出力データを示すイベントデータの状態を示す状態値（値）を複数含む該イベントデータが複数に分割された分割データを記憶したテーブルである。情報機器とは例えばネットワーク機器又は位置情報を処理する携帯端末等である。分割テーブルＴ１はＩＤ列、値列を備える。ＩＤ列には主キーであるＩＤが記憶されている。ＩＤとは一の状態値を数字により特定する特定番号である。値列には複数のＩＤにより特定される複数の状態値が記憶されている。
【００１９】
ＣＰＵ１１は入力部１３からイベントデータの入力を受け付ける。ＣＰＵ１１は入力されたイベントデータに基づいて、分割テーブルＴ１を生成する。具体的にはＣＰＵ１１は入力されたイベントデータを関連する値毎にＩＤ及び値を分割することにより複数の分割テーブルＴ１を生成する。ＣＰＵ１１は生成した複数の分割テーブルＴ１の夫々を情報処理装置２Ａ、情報処理装置２Ｂ、情報処理装置２Ｃ等の夫々に送信する。ＣＰＵ１１は通信部１５からＭａｐ処理命令を送信する。
【００２０】
図５は出力テーブルＴ２のレコードレイアウトの一例を示す説明図である。以下に、ＣＰＵ２１が行う処理を図５を参照しながら説明する。ＣＰＵ２１は通信部２５でＭａｐ処理命令を受信する。ＣＰＵ２１は受信した処理対象の分割データに複数含まれ、値の夫々を特定する特定情報毎に複数の値を複製する。すなわちＣＰＵ２１は複数の特定番号により特定される複数の状態値を、各特定番号から各特定番号に共通の所定の数を加算した特定番号まで対応づけて複製する。具体的にはＣＰＵ２１は読み込んだ値を読み込んだＩＤの位置から所定の数まで出力テーブルＴ２に出力する。所定の数とは例えば、中央装置１の入力部１３で入力された数値であり、複合イベント処理のウィンドウに対応する。中央装置１のＣＰＵ１１は入力された数値を通信部１５から送信し、情報処理装置２は中央装置１から送信された数値を通信部２５で受信する。なお、所定の数は予め記憶部１２又は記憶部２２に記憶された数値であってもよい。ＣＰＵ２１は分割テーブルＴ１の次のＩＤ及び次のＩＤに対応づけられた値を読み込む。ＣＰＵ２１は分割テーブルＴ１の行数分のＩＤ及び値を読み込むまで以上の処理を繰り返す。
【００２１】
ＣＰＵ２１は出力テーブルＴ２にＭａｐ処理を行う。Ｍａｐ処理とは出力テーブルＴ２をＩＤ毎に分割し、ＩＤ毎に分割した出力テーブルＴ２を他の情報処理装置２に送信する処理である。また、本実施形態における情報処理装置２は他の情報処理装置２からＩＤ毎に分割した出力テーブルＴ２を受信する。
【００２２】
ＣＰＵ２１が行う具体的な処理は以下の通りである。ＣＰＵ２１は所定の数を３として通信部２５で受信する。なお、所定の数は中央装置１の入力部１３で入力された数である。ＣＰＵ２１は分割テーブルＴ１の１行目からＩＤが１であり、値が１０であるデータを読み込む。ＣＰＵ２１は出力テーブルＴ２においてＩＤ１〜３に対応づけられた値１列に１０を出力する。ＣＰＵ２１は分割テーブルＴ１の２行目からＩＤが２であり、値が５であるデータを読み込む。ＣＰＵ２１は出力テーブルＴ２においてＩＤ２〜４に対応づけられた値２列に５を出力する。ＣＰＵ２１は分割テーブルＴ１の３行目からＩＤが３であり、値が３であるデータを読み込む。ＣＰＵ２１は出力テーブルＴ２においてＩＤ３〜５に対応づけられた値３列に３を出力する。
【００２３】
ＣＰＵ２１はＭａｐ処理を行い、ＩＤ毎に出力テーブルＴ２を分割し、他の情報処理装置２Ｂ、２Ｃ等に分割した出力テーブルＴ２を送信する。また、ＣＰＵ２１は他の情報処理装置２Ｂ、２Ｃ等からＩＤ毎に分割した出力テーブルＴ２を受信する。
【００２４】
図６は集計テーブルＴ３のレコードレイアウトの一例を示す説明図である。集計テーブルＴ３は出力テーブルＴ２の値を集計したテーブルである。集計テーブルＴ３はＩＤ列、値列を備える。ＩＤ列には主キーであるＩＤが記憶されている。値列には出力テーブルＴ２の同一のＩＤにおける値の和を集計した値が記憶されている。
【００２５】
以下に、ＣＰＵ２１が行う処理を図５、図６を参照しながら説明する。ＣＰＵ２１はＲｅｄｕｃｅ処理を行う。Ｒｅｄｕｃｅ処理とは、同一のＩＤ値を持つテーブル要素の集計を行う処理である。ＣＰＵ２１は複製した複数の状態値を集計するに際し、複製した複数の状態値の和を同一の特定番号毎に集計する。具体的にはＣＰＵ２１は近傍の情報処理装置毎に出力テーブルＴ２の同一のＩＤにおける値の和をＩＤ毎に集計し、値列の各行にＩＤ毎に集計した値の和を記憶する。
【００２６】
ＣＰＵ２１が行う具体的な処理は以下の通りである。ＣＰＵ２１は他の情報処理装置２からＩＤ毎に分割した出力テーブルＴ２の一部を受信する。ＣＰＵ２１は出力テーブルＴ２の値１列の１行目が１０であるため、集計テーブルＴ３の合計列の１行目に１０を記憶する。ＣＰＵ２１は出力テーブルＴ２の値１列の２行目の１０と、値２列の２行目の５との和を集計し、集計テーブルＴ３の合計列の２行目に集計した値の和である１５を記憶する。ＣＰＵ２１は出力テーブルＴ２の値２列の３行目が１０、値３列の３行目が５及び値４列の３行目が３の和を集計し、集計テーブルＴ３の合計列の３行目に集計した値の和である１８を記憶する。
【００２７】
次に、情報処理システムの動作について説明する。図７はＣＰＵ２１の処理手順の一例を示すフローチャートである。以下、情報処理装置２Ａ、情報処理装置２Ｂ、情報処理装置２Ｃ等の夫々のＣＰＵ２１は同様の内容の並列処理を行う。具体的には情報処理装置２Ａ、情報処理装置２Ｂ、情報処理装置２Ｃ等の夫々のＣＰＵ２１はＭａｐ処理及びＲｅｄｕｃｅ処理を並列処理で行う。情報処理装置２Ａ、情報処理装置２Ｂ、情報処理装置２Ｃ等の夫々のＣＰＵ２１は所定の数及び一の分割テーブルＴ１を受信する（ステップＳ１）。ＣＰＵ２１はＭａｐ処理を行う（ステップＳ２）。ＣＰＵ２１はＲｅｄｕｃｅ処理を行う（ステップＳ３）。
【００２８】
図８〜９はＭａｐ処理の処理手順の一例を示すフローチャートである。ＣＰＵ２１は分割テーブルＴ１を読み込む（ステップＳ１１）。ＣＰＵ２１は分割テーブルＴ１にＩＤが記憶されているか否かを判定する（ステップＳ１２）。ＣＰＵ２１は分割テーブルＴ１にＩＤが記憶されていると判定した場合（ステップＳ１２：ＹＥＳ）、ステップＳ１４に処理を移す。ＣＰＵ２１は分割テーブルＴ１にＩＤが記憶されていないと判定した場合（ステップＳ１２：ＮＯ）、分割テーブルＴ１のＩＤ列にＩＤを割り当てる（ステップＳ１３）。具体的にはＣＰＵ２１は分割テーブルＴ１のＩＤ列の各行に行番号を割り当てる。
【００２９】
ＣＰＵ２１は分割テーブルＴ１の先頭の行のＩＤ及びＩＤに対応づけられた値を読み込む（ステップＳ１４）。ＣＰＵ２１は分割テーブルＴ１の行数分のＩＤ及び値を読み込んだか否かを判定する（ステップＳ１５）。ＣＰＵ２１は分割テーブルＴ１の行数分のＩＤ及び値を読み込んでいないと判定した場合（ステップＳ１５：ＮＯ）、読み込んだ値を読み込んだＩＤの位置からＩＤに所定の数を加算したＩＤまで出力テーブルＴ２に出力する（ステップＳ１６）。
【００３０】
ＣＰＵ２１は分割テーブルＴ１の次のＩＤ及び次のＩＤに対応づけられた値を読み込み（ステップＳ１７）、処理をステップＳ１５に移す。ＣＰＵ２１は分割テーブルＴ１の行数分のＩＤ及びＩＤに対応づけられた値を読み込んだと判定した場合（ステップＳ１５：ＹＥＳ）、他の情報処理装置２に出力テーブルＴ２を出力し（ステップＳ１８）、Ｍａｐ処理を終了する。
【００３１】
図１０はＲｅｄｕｃｅ処理の処理手順の一例を示すフローチャートである。ＣＰＵ２１は他の情報処理装置２から出力テーブルＴ２を受信する（ステップＳ２１）。ＣＰＵ２１は同一のＩＤにおける値の和を集計する（ステップＳ２２）。ＣＰＵ２１は一の情報処理装置２にＩＤ及び集計した値の和を集計テーブルＴ３に出力し（ステップＳ２３）、Ｒｅｄｕｃｅ処理を終了する。
【００３２】
本実施の形態では、ＣＰＵ２１がＩＤ毎に分割データに含まれる複数の値を複製し、複製した分割テーブルＴ１の複数の値の和を集計することで、値の集計を効率的に実施できる。
【００３３】
本実施の形態では、ＣＰＵ２１が読み込んだ値を読み込んだＩＤの位置から所定の数まで出力テーブルＴ２に出力し、出力した値を同一のＩＤ毎に和を集計することで、値の集計をより効率的に実施できる。
【００３４】
なお、本実施の形態では、読み込んだＩＤの位置からＩＤに所定の数を加算したＩＤまで出力テーブルＴ２に出力したが、読み込んだＩＤの位置からＩＤに所定の数を減算したＩＤまで出力してもよい。
【００３５】
なお、本実施の形態における中央処理装置１の作用及び動作は情報処理装置２が行ってもよい。
【００３６】
実施の形態２
図１１は実施の形態２に係る分割テーブルＴ１のレコードレイアウトの一例を示す説明図である。図１２は実施の形態２に係る出力テーブルＴ２のレコードレイアウトの一例を示す説明図である。図１３は実施の形態２に係るスタックテーブルＴ４のレコードレイアウトの一例を示す説明図である。スタックテーブルＴ４とは分割テーブルＴ１の値を一時的に記憶するテーブルである。以下、特に説明する構成、作用以外の構成及び作用は実施の形態１と同等であり、簡潔のため記載を省略する。図１１Ａは実施の形態２に係る分割テーブルＴ１のレコードレイアウトの一例を示す説明図である。図１１Ｂは実施の形態２に係る他の分割テーブルＴ１のレコードレイアウトの一例を示す説明図である。実施の形態２に係る分割テーブルＴ１及び他の分割テーブルＴ１は同一のイベントデータから生成されたテーブルであり、情報処理装置２Ａ、情報処理装置２Ｂ、情報処理装置２Ｃ等の夫々に記憶されている。
【００３７】
以下に、ＣＰＵ２１が行う処理を図１１、図１２を参照しながら説明する。ＣＰＵ２１は分割テーブルＴ１のＩＤ列のＩＤが連続（連番）であるか否かを判定する。ＩＤ列のＩＤが連続であるか否かとは、夫々の行において前の行にＩＤから１を減算した値が無いことを意味する。ＣＰＵ２１は分割テーブルＴ１のＩＤ列のＩＤが連続であると判定した場合、ＣＰＵ２１は読み込んだ値を読み込んだＩＤの位置から所定の数まで出力テーブルＴ２に出力する。
【００３８】
ＣＰＵ２１は分割テーブルＴ１のＩＤ列のＩＤが連続でないと判定した場合、複数の特定番号及び該複数の特定番号により特定される複数の値を記憶する。すなわちＣＰＵ２１はＩＤ及び値をスタックテーブルＴ４に記憶する。ＣＰＵ２１は所定の数に基づくＩＤがスタックテーブルＴ４に記憶されているか否かを判定する。所定の数に基づくＩＤとは、読み込んだＩＤから所定の数より１を減算したＩＤを示す。なお、所定の数に基づくＩＤとは、読み込んだＩＤから所定の数を減算したＩＤであってもよい。ＣＰＵ２１は所定の数に基づくＩＤがスタックテーブルＴ４に記憶されていると判定した場合、ＣＰＵ２１はスタックテーブルＴ４に記憶したＩＤの数が所定の数以上であるか否かを判定する。ＣＰＵ２１はスタックテーブルＴ４に記憶したＩＤの数が所定の数以上であると判定した場合、記憶したＩＤ及び値のうち、最初のＩＤ及び値を削除する。
【００３９】
ＣＰＵ２１は所定の数に基づくＩＤが記憶されていないと判定した場合、他の情報処理装置２へ他の分割テーブルＴ１の送信要求を行う。他の分割テーブルＴ１とはイベントデータから複数に分割した複数の分割テーブルＴ１の内、一の分割テーブルＴ１を受信した情報処理装置２が現時点において受信していない分割テーブルＴ１である。
【００４０】
他の情報処理装置２は他の分割テーブルＴ１を送信し、一の分割テーブルＴ１を受信した情報処理装置２のＣＰＵ２１は他の分割テーブルＴ１を受信（取得）する。ＣＰＵ２１は他の分割テーブルＴ１のＩＤ及び値を出力テーブルＴ２に出力する。
【００４１】
ＣＰＵ２１はスタックテーブルＴ４に記憶されたＩＤを出力する。ＣＰＵ２１は分割テーブルＴ１の次のＩＤ及び次のＩＤに対応づけられた値を読み込む。ＣＰＵ２１は分割テーブルＴ１の行数分のＩＤ及び値を読み込むまで以上の処理を繰り返す。
【００４２】
ＣＰＵ２１は上記の処理を行った後、Ｍａｐ処理を行う。実施の形態２におけるＭａｐ処理は出力テーブルＴ２を値列毎に分割し、値列毎に分割した出力テーブルＴ２を他の情報処理装置２に送信する処理である。また、実施の形態２における情報処理装置２は他の情報処理装置２から値列毎に分割した出力テーブルＴ２を受信する。
【００４３】
ＣＰＵ２１が行う具体的な処理は以下の通りである。ＣＰＵ２１は通信部２５で所定の数を３として受信する。ＣＰＵ２１は分割テーブルＴ１の１行目からＩＤが３であり、値が３であるデータを読み込む。ＣＰＵ２１は分割テーブルＴ１のＩＤ列のＩＤが連続でないと判定する。ＣＰＵ２１はスタックテーブルＴ４のＩＤ列の１行目に３を記憶し、値列の１行目に３を記憶する。
【００４４】
ＣＰＵ２１はＩＤの１がスタックテーブルＴ４が記憶されていないと判定する。ＣＰＵ２１は他の分割テーブルＴ１にＩＤの１があると判定する。ＣＰＵ２１は他の分割テーブルＴ１の値列の１行目の１０を出力テーブルＴ２の値１列の１行目に出力し、他の分割テーブルＴ１のＩＤ列の１行目の１を出力テーブルＴ２のＩＤ列の１行目に出力する。ＣＰＵ２１は他の分割テーブルＴ１の値列の２行目の５を出力テーブルＴ２の値１列の２行目に出力し、他の分割テーブルＴ１のＩＤ列の２行目の２を出力テーブルＴ２のＩＤ列の２行目に出力する。ＣＰＵ２１はスタックテーブルＴ４の値列の３行目に記憶された３を出力テーブルＴ２の値１列の３行目に出力する。
【００４５】
ＣＰＵ２１は分割テーブルＴ１の２行目からＩＤが４であり、値が４であるデータを読み込む。ＣＰＵ２１は分割テーブルＴ１のＩＤ列のＩＤが連続でないと判定する。ＣＰＵ２１はスタックテーブルＴ４のＩＤ列の２行目に４を記憶し、値列の２行目に４を記憶する。ＣＰＵ２１は他の分割テーブルＴ１の値列の２行目の５を出力テーブルＴ２の値２列のＩＤの２に対応づけられた２行目に出力する。ＣＰＵ２１はスタックテーブルＴ４の３行目に記憶された３を出力テーブルＴ２の値２列の３行目に出力する。ＣＰＵ２１はスタックテーブルＴ４の４行目に記憶された４を出力テーブルＴ２の値２列の４行目に出力する。
【００４６】
ＣＰＵ２１は分割テーブルＴ１の３行目からＩＤが５であり、値が８であるデータを読み込む。ＣＰＵ２１は分割テーブルＴ１のＩＤ列のＩＤが連続でないと判定する。ＣＰＵ２１はスタックテーブルＴ４のＩＤ列の３行目に５を記憶し、値列の３行目に８を記憶する。ＣＰＵ２１はスタックテーブルＴ４の１行目に記憶された３を出力テーブルＴ２の値３列の３行目に出力する。ＣＰＵ２１はスタックテーブルＴ４の２行目に記憶された３を出力テーブルＴ２の値３列の４行目に出力する。ＣＰＵ２１はスタックテーブルＴ４の３行目に記憶された３を出力テーブルＴ２の値３列の３行目に出力する。
【００４７】
ＣＰＵ２１は分割テーブルＴ１の４行目からＩＤが６であり、値が２であるデータを読み込む。ＣＰＵ２１は分割テーブルＴ１のＩＤ列のＩＤが連続でないと判定する。ＣＰＵ２１はスタックテーブルＴ４のＩＤ列の４行目に６を記憶し、値列の４行目に２を記憶する。ＣＰＵ２１はスタックテーブルＴ４に記憶したＩＤの数が所定の数以上であると判定し、１行目のＩＤ及び値を削除する。ＣＰＵ２１はスタックテーブルＴ４の２行目に記憶された３を出力テーブルＴ２の値４列の４行目に出力する。ＣＰＵ２１はスタックテーブルＴ４の３行目に記憶された４を出力テーブルＴ２の値４列の５行目に出力する。ＣＰＵ２１はスタックテーブルＴ４の６行目に記憶された８を出力テーブルＴ２の値４列の６行目に出力する。
【００４８】
ＣＰＵ２１はＭａｐ処理を行い、値列毎に出力テーブルＴ２を分割し、他の情報処理装置２Ｂ、２Ｃ等に分割した出力テーブルＴ２を送信する。また、ＣＰＵ２１は他の情報処理装置２Ｂ、２Ｃ等から値列毎に分割した出力テーブルＴ２を受信する。
【００４９】
図１４は実施の形態２に係る集計テーブルＴ３のレコードレイアウトの一例を示す説明図である。以下に、ＣＰＵ２１が行う処理を図１２、図１４を参照しながら説明する。ＣＰＵ２１はＲｅｄｕｃｅ処理を行う。ＣＰＵ２１は取得した他の分割データに含まれる複数の値及び記憶した複数の値の和を集計する。すなわち、ＣＰＵ２１は同一の値列における値の和を集計する。ＣＰＵ２１は値列の最後のＩＤ及び集計した値の和を集計テーブルＴ３に出力する。
【００５０】
ＣＰＵ２１が行う具体的な処理は以下の通りである。ＣＰＵ２１は他の情報処理装置２からＩＤ毎に分割した出力テーブルＴ２の一部を受信する。ＣＰＵ２１は出力テーブルＴ２の値１列の１行目の１０、値１列の２行目の５、値１列の３行目が３との和を集計し、集計テーブルＴ３の合計列の１行目に集計した値の和である１８を記憶する。ＣＰＵ２１は出力テーブルＴ２の値１列の最後の行のＩＤが３であるため、集計テーブルＴ３のＩＤ列の１行目に３を記憶する。
【００５１】
ＣＰＵ２１は出力テーブルＴ２の値２列の２行目の５、値２列の３行目の３、値２列の４行目が４との和を集計し、集計テーブルＴ３の合計列の２行目に集計した値の和である１２を記憶する。ＣＰＵ２１は出力テーブルＴ２の値２列の最後の行のＩＤが４であるため、集計テーブルＴ３のＩＤ列の２行目に４を記憶する。
【００５２】
ＣＰＵ２１は出力テーブルＴ２の値３列の３行目の３、値３列の４行目の４、値３列の５行目が８との和を集計し、集計テーブルＴ３の合計列の３行目に集計した値の和である１５を記憶する。ＣＰＵ２１は出力テーブルＴ２の値３列の最後の行のＩＤが５であるため、集計テーブルＴ３のＩＤ列の３行目に５を記憶する。
【００５３】
ＣＰＵ２１は出力テーブルＴ２の値４列の４行目が４であり、値４列の５行目が８であり、値４列の６行目が２であるため、集計テーブルＴ３の合計列の４行目に１４を記憶する。ＣＰＵ２１は出力テーブルＴ２の値４列の最後の行のＩＤが６であるため、集計テーブルＴ３のＩＤ列の４行目に６を記憶する。
【００５４】
次に、実施の形態２に係る情報処理システムの動作について説明する。図１５は実施の形態２に係るＭａｐ処理の処理手順の一例を示すフローチャートである。ステップＳ１〜１４の処理は上述の実施の形態１に係る情報処理システムと同様であるので、簡潔のため説明を省略する。ＣＰＵ２１はステップＳ１４の処理を終了した後、分割テーブルＴ１のＩＤ列のＩＤが連続であるか否かを判定する（ステップＳ３１）。ＣＰＵ２１は分割テーブルＴ１のＩＤ列のＩＤが連続であると判定した場合（ステップＳ３１：ＹＥＳ）、読み込んだ値を読み込んだＩＤから読み込んだＩＤに所定の数を加算したＩＤまで出力テーブルＴ２に出力する（ステップＳ３２）。
【００５５】
ＣＰＵ２１は分割テーブルＴ１のＩＤ列のＩＤが連続でないと判定した場合（ステップＳ３１：ＮＯ）、ＩＤ及び値をスタックテーブルＴ４に記憶する（ステップＳ３３）。ＣＰＵ２１は所定の数に基づくＩＤがスタックテーブルＴ４に記憶されているか否かを判定する（ステップＳ３４）。ＣＰＵ２１は所定の数に基づくＩＤが記憶されていると判定した場合（ステップＳ３４：ＹＥＳ）、ステップＳ３８に処理を移す。ＣＰＵ２１は読み込んだＩＤから所定の数に基づくＩＤが記憶されていないと判定した場合（ステップＳ３４：ＮＯ）、中央装置１へ他の分割テーブルＴ１の送信要求を行う（ステップＳ３５）。
【００５６】
他の情報処理装置２のＣＰＵ２１は他の分割テーブルＴ１を送信し、一の分割テーブルＴ１を受信した情報処理装置２のＣＰＵ２１は他の分割テーブルＴ１を受信する（ステップＳ３６）。ＣＰＵ２１は他の分割テーブルＴ１のＩＤ及び値を出力テーブルＴ２に出力する（ステップＳ３７）。
【００５７】
ＣＰＵ２１はステップＳ３４又はステップＳ３７を終了した後、スタックテーブルＴ４に記憶したＩＤの数が所定の数以上であるか否かを判定する（ステップＳ３８）。ＣＰＵ２１はスタックテーブルＴ４に記憶したＩＤの数が所定の数以上でないと判定した場合（ステップＳ３８：ＮＯ）、処理をステップＳ４０に移す。ＣＰＵ２１はスタックテーブルＴ４に記憶したＩＤの数が所定の数以上であると判定した場合（ステップＳ３８：ＹＥＳ）、記憶したＩＤ及び値のうち、スタックテーブルＴ４の先頭のＩＤ及び値を削除する（ステップＳ３９）。ＣＰＵ２１はスタックテーブルＴ４に記憶されたＩＤを出力する（ステップＳ４０）。
【００５８】
ＣＰＵ２１は分割テーブルＴ１の次の行のＩＤ及びＩＤに対応づけられた値を読み込む（ステップＳ４１）。ＣＰＵ２１は分割テーブルＴ１の行数分のＩＤ及び値を読み込んだか否かを判定する（ステップＳ４２）。ＣＰＵ２１は分割テーブルＴ１の行数分のＩＤ及び値を読み込んでいないと判定した場合（ステップＳ４２：ＮＯ）、処理をステップＳ３１に移す。ＣＰＵ２１は分割テーブルＴ１の行数分のＩＤ及び値を読み込んだと判定した場合（ステップＳ４２：ＹＥＳ）、Ｍａｐ処理を終了する。
【００５９】
図１６は実施の形態２に係るＲｅｄｕｃｅ処理の処理手順の一例を示すフローチャートである。ＣＰＵ２１は他の情報処理装置２から出力テーブルＴ２を受信する（ステップＳ４３）。ＣＰＵ２１は同一の値列における値の和を集計する（ステップＳ４４）。ＣＰＵ２１は値列の最後のＩＤ及び集計した値の和を集計テーブルＴ３に出力し（ステップＳ４５）、Ｒｅｄｕｃｅ処理を終了する。
【００６０】
本実施の形態では、ＣＰＵ２１が中央装置１から他の分割テーブルＴ１を受信することにより、記憶部２２に記憶した分割テーブルＴ１に値がなくとも値の和を集計することができる。
【００６１】
実施の形態３
図１７は実施の形態３に係る中央装置１のハードウェア群を示すブロック図である。以下、特に説明する構成、作用以外の構成及び作用は実施の形態１と同等であり、簡潔のため記載を省略する。中央装置１はさらに計時部１６を備える。計時部１６は、現在の時点、例えば日付及び時刻を計時し、ＣＰＵ１１の要求に従って、計時結果をＣＰＵ１１に出力する。
【００６２】
図１８はＣＰＵ２１が処理を行う前の実施の形態３に係る分割テーブルＴ１のレコードレイアウトの一例を示す説明図である。分割テーブルＴ１はさらに時刻列、値列、差分列、累積差分列、複製列を備える。時刻列には一の値を時刻により特定する特定時刻（特定情報）が記憶される。イベントデータに関連付けられた時刻とは例えば、中央装置１にイベントデータが入力された時刻又は予めイベントデータに記憶された時刻等である。中央装置１にイベントデータが入力された時刻とは例えば、イベントデータが入力された際に計時部１６から取得した時刻である。差分列には対応づけられた時刻と他の行の時刻との差分が記憶される。累積差分列には複数の差分同士の和である累積差分が記憶される。すなわち累積差分列には対応づけられた時刻と他の行の時刻との差分にさらに対応づけられた差分を加算した累積差分が記憶される。複製列には複製済みであるか否かを示す複製情報が記憶される。複製列には例えば、複製済み、未複製が記憶される。複製済みとは値が複製されていることを意味する。未複製は値が複製されていないことを意味する。差分列及び累積差分列は初期設定として「０：００」が記憶されている。「０：００」とは０時０分を意味する。なお、本実施形態における分割テーブルＴ１はＩＤ列を備えていないが、ＩＤ列を備えてもよい。値列には時刻により特定される状態値が記憶されている。
【００６３】
図１９はＣＰＵ２１が処理を行った後の実施の形態３に係る分割テーブルＴ１のレコードレイアウトの一例を示す説明図である。図１９Ａは１行目を複製した分割テーブルＴ１のレコードレイアウトの一例を示す説明図である。図１９Ｂは３行目を複製した分割テーブルＴ１のレコードレイアウトの一例を示す説明図である。図１９Ｃは２行目を複製した分割テーブルＴ１のレコードレイアウトの一例を示す説明図である。図１９Ｄは５行目を複製済みにした分割テーブルＴ１のレコードレイアウトの一例を示す説明図である。図１９Ｅは６行目を複製済みにした分割テーブルＴ１のレコードレイアウトの一例を示す説明図である。図１９Ｆは３行目を複製済みにした分割テーブルＴ１のレコードレイアウトの一例を示す説明図である。以下に、ＣＰＵ２１が行う処理を図１７、図１８を参照しながら説明する。ＣＰＵ２１は分割テーブルＴ１の先頭の行及び次の行の値及び時刻を読み込む。
【００６４】
ＣＰＵ２１は分割テーブルＴ１の複製列を参照し、分割テーブルＴ１の値が全て複製済みであるか否かを判定する。ＣＰＵ２１は分割テーブルＴ１の値が全て複製済みでないと判定した場合、最後に読み込んだ時刻と１つ前の行の時刻との差分が分割テーブルＴ１の差分列に記憶されていないか否かを判定する。ＣＰＵ２１は最後に読み込んだ時刻と１つ前に読み込んだ時刻との差分が分割テーブルＴ１の差分列に記憶されていないと判定した場合、複数の特定時刻同士の差分を計算する。すなわちＣＰＵ２１は最後に読み込んだ時刻と１つ前に読み込んだ時刻との差分を計算する。ＣＰＵ２１は最後に読み込んだ時刻と１つ前に読み込んだ時刻との差分が０を超えたか否かを判定する。ＣＰＵ２１は最後に読み込んだ時刻と１つ前に読み込んだ時刻との差分が０を超えなかったと判定した場合、最後に読み込んだ時刻の値を複製済みとして分割テーブルＴ１の複製列に記憶する。
【００６５】
ＣＰＵ２１は最後に読み込んだ時刻と１つ前に読み込んだ時刻との差分が０を超えなかったと判定した場合、計算した差分を分割テーブルＴ１に記憶する。ＣＰＵ２１は計算した差分は所定の数以上であるか否かを判定する。なお、本実施の形態においては所定の数は入力部１３にて入力された時刻である。ＣＰＵ２１は計算した差分は所定の数以上でないと判定した場合、１つ前に読み込んだ時刻及び時刻に対応づけられた値を分割テーブルＴ１における最後に読み込んだ行の前の行に複製する。ＣＰＵ２１は複製した時刻を分割テーブルＴ１における最後に読み込んだ時刻に更新する。ＣＰＵ２１は複製した時刻の累積差分に１つ前に読み込んだ時刻と最後に読み込んだ時刻との差分を加算する。
【００６６】
ＣＰＵ２１は１つ前に読み込んだ値を複製済みとして分割テーブルＴ１の複製列に記憶する。ＣＰＵ２１は次の行の値、時刻を読み込む。
【００６７】
ＣＰＵ２１は最後に読み込んだ時刻と１つ前に読み込んだ時刻との差分が分割テーブルＴ１の差分列に記憶されていると判定した場合、読み込んだ値が複製済みか否か判定する。ＣＰＵ２１は読み込んだ値が複製済みであると判定した場合、複数の差分又は複数の差分同士の和のいずれか１つが所定の数以上であるか否かを判定する。すなわちＣＰＵ２１は差分又は累積差分が所定の数以上であるか否かを判定する。
【００６８】
ＣＰＵ２１は差分又は累積差分が所定の数以上でないと判定した場合、一の分割データに含まれる複数の値を複製する。すなわちＣＰＵ２１は読み込んだ時刻及び値を最後に読み込んだ行の前の行に複製する。ＣＰＵ２１は複製した時刻に差分を加算する。ＣＰＵ２１は最後に読み込んだ値を複製済みとして分割テーブルＴ１の複製列に記憶する。ＣＰＵ２１は分割テーブルＴ１における最後に読み込んだ行の次の行があるか否か判定する。ＣＰＵ２１は分割テーブルＴ１における最後に読み込んだ行の次の行があると判定した場合、次の行の値、時刻を読み込む。ＣＰＵ２１は分割テーブルＴ１における最後に読み込んだ行の次の行がないと判定した場合、先頭の行の値、時刻を読み込む。ＣＰＵ２１は分割テーブルＴ１の値が全て複製済みであると判定するまで以上の処理を繰り返す。
【００６９】
ＣＰＵ２１は出力テーブルＴ２にＭａｐ処理を行う。実施の形態３におけるＭａｐ処理は出力テーブルＴ２を差分毎に分割し、差分毎に分割した出力テーブルＴ２を他の情報処理装置に送信する処理である。また、実施の形態２における情報処理装置２は他の情報処理装置２から差分毎に分割した出力テーブルＴ２を受信する。
【００７０】
ＣＰＵ２１が行う具体的な処理は以下の通りである。なお、図１９において所定の数は「０：０８」としている。ＣＰＵ２１は分割テーブルＴ１の１行目の時刻「０：００」及び値１０並びに２行目の時刻「０：０３」及び値５を読み込む。ＣＰＵ２１は分割テーブルＴ１の値が全て複製済みでないと判定する。ＣＰＵ２１は「０：０３」と「０：００」との差分が分割テーブルＴ１の差分列に記憶されていないと判定し、「０：０３」と「０：００」との差分「０：０３」を計算する。
【００７１】
ＣＰＵ２１は「０：０３」を分割テーブルＴ１の差分列の１行目に記憶する。ＣＰＵ２１は「０：０３」が８分以上でないと判定する。ＣＰＵ２１は「０：００」及び値１０を分割テーブルＴ１の２行目に複製する。ＣＰＵ２１は２行目の「０：００」を「０：０３」に更新する。ＣＰＵ２１は分割テーブルＴ１の累積差分列の２行目に「０：０３」を加算する。ＣＰＵ２１は分割テーブルＴ１の複製列の１行目に「複製済み」を記憶する（図１９Ａ）。
【００７２】
ＣＰＵ２１は４行目の時刻「０：１０」及び値３を読み込む。ＣＰＵ２１は分割テーブルＴ１の値が全て複製済みでないと判定する。ＣＰＵ２１は「０：１０」と「０：０３」との差分が分割テーブルＴ１の差分列に記憶されていないと判定し、「０：１０」と「０：０３」との差分「０：０７」を計算する。
【００７３】
ＣＰＵ２１は「０：０７」を分割テーブルＴ１の差分列の２行目及び３行目に記憶する。ＣＰＵ２１は「０：０７」が８分以上でないと判定する。ＣＰＵ２１は「０：０３」及び値５を分割テーブルＴ１の４行目に複製する。ＣＰＵ２１は「０：０３」を「０：１０」に更新する。ＣＰＵ２１は分割テーブルＴ１の累積差分列の４行目に「０：０７」を加算する。ＣＰＵ２１は分割テーブルＴ１の複製列の３行目に「複製済み」を記憶する（図１９Ｂ）。
【００７４】
ＣＰＵ２１は２行目の時刻「０：０３」及び値１０を読み込む。ＣＰＵ２１は分割テーブルＴ１の差分列に「０：０７」が記憶されていると判定する。ＣＰＵ２１は読み込んだ値が複製済みでないと判定する。ＣＰＵ２１は差分又は累積差分が８分以上でないと判定する。ＣＰＵ２１は「０：０３」及び値１０を分割テーブルＴ１の３行目に複製する。ＣＰＵ２１は「０：０３」に差分「０：０７」を加算する。ＣＰＵ２１は分割テーブルＴ１の複製列の２行目に「複製済み」を記憶する（図１９Ｃ）。
【００７５】
ＣＰＵ２１は５行目の時刻「０：１０」及び値５を読み込む。ＣＰＵ２１は分割テーブルＴ１の差分列に「０：０７」が記憶されていると判定する。ＣＰＵ２１は読み込んだ値が複製済みでないと判定する。ＣＰＵ２１は差分又は累積差分が８分以上であると判定する。ＣＰＵ２１は差分が０を超えていないと判定する。ＣＰＵ２１は分割テーブルＴ１の複製列の５行目に「複製済み」を記憶する（図１９Ｄ）。
【００７６】
ＣＰＵ２１は６行目の時刻「０：１０」及び値３を読み込む。ＣＰＵ２１は「０：１０」と「０：１０」との差分が分割テーブルＴ１の差分列に記憶されていないと判定し、「０：１０」と「０：１０」との差分「０：００」を計算する。ＣＰＵ２１は差分が０を超えていないと判定する。ＣＰＵ２１は分割テーブルＴ１の複製列の５行目に「複製済み」を記憶する（図１９Ｅ）。
【００７７】
ＣＰＵ２１は３行目の時刻「０：１０」及び値１０を読み込む。ＣＰＵ２１は分割テーブルＴ１の差分列に「０：１０」が記憶されていると判定する。ＣＰＵ２１は読み込んだ値が複製済みでないと判定する。ＣＰＵ２１は差分又は累積差分が８分以上であると判定する。ＣＰＵ２１は分割テーブルＴ１の複製列の６行目に「複製済み」を記憶する（図１９Ｆ）。
【００７８】
ＣＰＵ２１はＭａｐ処理を行い、差分毎に出力テーブルＴ２を分割し、他の情報処理装置２Ｂ、２Ｃ等に分割した出力テーブルＴ２を送信する。また、ＣＰＵ２１は他の情報処理装置２Ｂ、２Ｃ等から差分毎に分割した出力テーブルＴ２を受信する。
【００７９】
図２０は実施の形態３に係る集計テーブルＴ３のレコードレイアウトの一例を示す説明図である。以下に、ＣＰＵ２１が行う処理を図１９Ｆ、２０を参照しながら説明する。ＣＰＵ２１はＲｅｄｕｃｅ処理を行う。ＣＰＵ２１は複数の値の和を同一の特定時刻毎に集計する。すなわちＣＰＵ２１は分割テーブルＴ１における同一の時刻における値の和を集計する。ＣＰＵ２１は集計した値の和を集計テーブルＴ３に出力する。
【００８０】
ＣＰＵ２１が行う具体的な処理は以下の通りである。ＣＰＵ２１は他の情報処理装置２からＩＤ毎に分割した出力テーブルＴ２の一部を受信する。図１９Ｆに示すように、ＣＰＵ２１は「０：００」がある行は分割テーブルＴ１の値１列の１行目であるため、分割テーブルＴ１の値１列の１行目の１０を集計テーブルＴ３の合計列の１行目に記憶する。
【００８１】
ＣＰＵ２１は「０：０３」がある行は分割テーブルＴ１の値１列の２、４行目であるため、分割テーブルＴ１の値１列の２行目の１０、４行目の５の和である１５を集計テーブルＴ３の合計列の２行目に記憶する。
【００８２】
ＣＰＵ２１は「０：１０」がある行は分割テーブルＴ１の値１列の３、５、６行目であるため、分割テーブルＴ１の値１列の３行目の１０、５行目の５、６行目の３の和である１８を集計テーブルＴ３の合計列の３行目に記憶する。
【００８３】
次に、実施の形態３に係る情報処理システムの動作について説明する。図２１〜図２２は実施の形態３に係るＭａｐ処理の処理手順の一例を示すフローチャートである。ステップＳ１〜１４の処理は上述の実施の形態２に係る情報処理システムと同様であるので、簡潔のため説明を省略する。ＣＰＵ２１はステップＳ１４の処理を終了した後、分割テーブルＴ１の先頭の行及び次の行の値及び時刻を読み込む（ステップＳ５１）。
【００８４】
ＣＰＵ２１は分割テーブルＴ１の複製列を参照し、分割テーブルＴ１の値が全て複製済みであるか否かを判定する（ステップＳ５２）。ＣＰＵ２１は分割テーブルＴ１の値が全て複製済みでないと判定した場合（ステップＳ５２：ＮＯ）、最後に読み込んだ時刻と１つ前の行の時刻との差分が分割テーブルＴ１の差分列に記憶されていないか否かを判定する（ステップＳ５３）。ＣＰＵ２１は最後に読み込んだ時刻と１つ前に読み込んだ時刻との差分が分割テーブルＴ１の差分列に記憶されていないと判定した場合（ステップＳ５３：ＹＥＳ）、最後に読み込んだ時刻と１つ前に読み込んだ時刻との差分を計算する（ステップＳ５４）。
【００８５】
ＣＰＵ２１は最後に読み込んだ時刻と１つ前に読み込んだ時刻との差分が０を超えたか否かを判定する（ステップＳ５５）。ＣＰＵ２１は最後に読み込んだ時刻と１つ前に読み込んだ時刻との差分が０を超えなかったと判定した場合（ステップＳ５５：ＮＯ）、最後に読み込んだ時刻の値を複製済みとして分割テーブルＴ１の複製列に記憶する（ステップＳ５６）。ＣＰＵ２１は最後に読み込んだ時刻と１つ前に読み込んだ時刻との差分が０を超えたと判定した場合（ステップＳ５５：ＹＥＳ）、集計した差分を分割テーブルＴ１に記憶する（ステップＳ５７）。ＣＰＵ２１は集計した差分は所定の数以上であるか否かを判定する（ステップＳ５８）。ＣＰＵ２１は集計した差分は所定の数以上であると判定した場合（ステップＳ５８：ＹＥＳ）、処理をステップＳ６２に移す。ＣＰＵ２１は集計した差分は所定の数以上でないと判定した場合（ステップＳ５８：ＮＯ）、１つ前に読み込んだ時刻及び時刻に対応づけられた値を分割テーブルＴ１における最後に読み込んだ行の１つ前の行に複製する（ステップＳ５９）。ＣＰＵ２１は複製した時刻を分割テーブルＴ１における最後に読み込んだ時刻に更新する（ステップＳ６０）。ＣＰＵ２１は複製した時刻の累積差分に１つ前に読み込んだ時刻と最後に読み込んだ時刻との差分を加算する（ステップＳ６１）。
【００８６】
ＣＰＵ２１はステップＳ５６、ステップＳ５８又はステップＳ６１を終了した後、１つ前に読み込んだ値を複製済みとして分割テーブルＴ１の複製列に記憶する（ステップＳ６２）。ＣＰＵ２１は分割テーブルＴ１における最後に読み込んだ行の次の行があるか否か判定する（ステップＳ６３）。ＣＰＵ２１は分割テーブルＴ１における最後に読み込んだ行の次の行があると判定した場合（ステップＳ６３：ＹＥＳ）、次の行の値、時刻を読み込み（ステップＳ６４）、処理をステップＳ５２に移す。ＣＰＵ２１は分割テーブルＴ１における最後に読み込んだ行の次の行がないと判定した場合（ステップＳ６３：ＮＯ）、先頭の行の値、時刻を読み込み（ステップＳ６５）、処理をステップＳ５２に移す。
【００８７】
ＣＰＵ２１は最後に読み込んだ時刻と１つ前に読み込んだ時刻との差分が分割テーブルＴ１の差分列に記憶されていると判定した場合（ステップＳ５３：ＮＯ）、読み込んだ値が複製済みか否か判定する（ステップＳ６６）。ＣＰＵ２１は読み込んだ値が複製済みであると判定した場合（ステップＳ６６：ＹＥＳ）、処理をステップＳ７２に移す。ＣＰＵ２１は読み込んだ値が複製済みでないと判定した場合（ステップＳ６６：ＮＯ）、差分又は累積差分が所定の数以上であるか否かを判定する（ステップＳ６７）。ＣＰＵ２１は差分又は累積差分が所定の数以上であると判定した場合（ステップＳ６７：ＹＥＳ）、処理をステップＳ７１に移す。
【００８８】
ＣＰＵ２１は差分又は累積差分が所定の数以上でないと判定した場合（ステップＳ６７：ＮＯ）、分割テーブルＴ１の差分が０を超えたか否かを判定する（ステップＳ６８）。ＣＰＵ２１は分割テーブルＴ１の差分が０を超えていないと判定した場合（ステップＳ６８：ＮＯ）、処理をステップＳ７１に移す。ＣＰＵ２１は分割テーブルＴ１の差分が０を超えたと判定した場合（ステップＳ６８：ＹＥＳ）、読み込んだ時刻及び値を最後に読み込んだ行の１つ前の行に複製する（ステップＳ６９）。ＣＰＵ２１は複製した時刻に差分を加算する（ステップＳ７０）。ＣＰＵ２１はステップＳ６７、ステップＳ６８又はステップＳ７０の処理を終了した後、最後に読み込んだ値を複製済みとして分割テーブルＴ１の複製列に記憶する（ステップＳ７１）。ＣＰＵ２１はステップＳ６６又はステップＳ７１の処理を終了した後、分割テーブルＴ１における最後に読み込んだ行の次の行があるか否か判定する（ステップＳ７２）。ＣＰＵ２１は分割テーブルＴ１における最後に読み込んだ行の次の行があると判定した場合（ステップＳ７２：ＹＥＳ）、次の行の値、時刻を読み込み（ステップＳ７３）、処理をステップＳ５２に移す。ＣＰＵ２１は分割テーブルＴ１における最後に読み込んだ行の次の行がないと判定した場合（ステップＳ７２：ＮＯ）、先頭の行の値、時刻を読み込み（ステップＳ７４）、処理をステップＳ５２に移す。
【００８９】
ＣＰＵ２１は分割テーブルＴ１の値が全て複製済みであると判定した場合（ステップＳ５２：ＹＥＳ）、Ｍａｐ処理を終了する。
【００９０】
図２３は実施の形態３に係るＲｅｄｕｃｅ処理の処理手順の一例を示すフローチャートである。ＣＰＵ２１は他の情報処理装置２から出力テーブルＴ２を受信する（ステップＳ７５）。ＣＰＵ２１は同一の時刻における値の和を集計する（ステップＳ７６）。ＣＰＵ２１は集計した値の和を集計テーブルＴ３に出力し（ステップＳ７７）、Ｒｅｄｕｃｅ処理を終了する。
【００９１】
本実施の形態では、時刻に対応づけられた値同士の差分を計算し、同一の時刻毎に値の和を集計することでランダムな値であっても時刻を基準に集計することができる。
【００９２】
実施の形態４
以下本発明の実施の形態４をその実施の形態を示す図面に基づいて詳述する。図２４は実施の形態４に係る情報処理装置２のハードウェア群を示すブロック図である。以下、特に説明する構成、作用以外の構成及び作用は実施の形態３と同等であり、簡潔のため記載を省略する。
【００９３】
情報処理装置２を動作させるためのプログラムは、ディスクドライブ等の読み取り部２６にＣＤ−ＲＯＭ、ＤＶＤ（Digital Versatile Disc）ディスク、メモリーカード、又はＵＳＢ（Universal Serial Bus）メモリ等の可搬型記録媒体２６Ａを読み取らせて記憶部２２に記憶してもよい。また当該プログラムを記憶したフラッシュメモリ等の半導体メモリ２６Ｂを情報処理装置２内に実装しても良い。通信部２５は、例えば無線ＬＡＮカード又は携帯電話用通信モジュール等であり、通信網Ｎを介して他のサーバコンピュータに接続されている。当該プログラムは、通信部２５によりインターネット等の通信網Ｎを介して接続される他のサーバコンピュータ（図示せず）からダウンロードすることも可能である。以下にその内容を説明する。
【００９４】
図２４に示す情報処理装置２は、上述した各種ソフトウェア処理を実行するプログラムを、可搬型記録媒体２６Ａ又は半導体メモリ２６Ｂから読み取り、あるいは、通信網Ｎを介して他のサーバコンピュータ（図示せず）からダウンロードする。当該プログラムは、プログラム２２Ｐとしてインストールされ、記憶部２２にロードして実行される。これより上述した情報処理装置２として機能する。
【００９５】
図２５は実施の形態４に係る中央装置１の機能ブロック図である。ＣＰＵ１１がプログラム１２Ｐを実行することにより、中央装置１は以下のように動作する。分割部１１Ａは情報機器から出力される出力データの状態を示す状態値を複数含む該出力データを複数に分割する。通信部１５は分割部１１Ａで前記出力データが複数に分割された分割データの内の１つを送信する。
【００９６】
図２６は実施の形態４に係る情報処理装置２の機能ブロック図である。ＣＰＵ２１がプログラム２２Ｐを実行することにより、情報処理装置２は以下のように動作する。
通信部２５は分割データを受信する。複製部２１Ａは通信部２５で受信した処理対象の分割データに複数含まれ、状態値の夫々を特定する特定情報毎に複数の状態値を複製する。集計部２１Ｂは複製部２１Ａで複製した複数の状態値を集計する。
【００９７】
（付記１）
情報機器から出力される出力データの状態を示す状態値を複数含む該出力データが複数に分割された分割データの内の１つを処理する情報処理装置に用いられるプログラムであって、
処理対象の分割データに複数含まれ、前記状態値の夫々を特定する特定情報毎に複数の状態値を複製し、
複製した複数の状態値を集計する処理を情報処理装置に実行させるプログラム。
【００９８】
（付記２）
前記特定情報は一の状態値を数字により特定する連番の特定番号であり、
該複数の特定番号により特定される複数の状態値を、各特定番号から各特定番号に共通の所定の数を加算した特定番号まで対応づけて複製し、
複製した複数の状態値を集計するに際し、複製した複数の状態値の和を同一の特定番号毎に集計する
付記１に記載のプログラム。
【００９９】
（付記３）
前記特定情報は一の状態値を数字により特定する特定番号であり、
前記分割データに含まれる特定番号が連番であるか否かを判定し、
該特定番号が連番でないと判定した場合、複数の特定番号及び該複数の特定番号により特定される複数の状態値を記憶し、
前記複数の特定番号を所定の数減算した特定番号が前記分割データにあるか否かを判定し、
前記複数の特定番号を所定の数減算した特定番号が前記分割データにないと判定した場合、他の分割データを取得し、
取得した他の分割データに含まれる複数の状態値及び記憶した複数の状態値の和を集計する
付記１に記載のプログラム。
【０１００】
（付記４）
前記特定情報は一の状態値を時刻により特定する特定時刻であり、
該複数の特定時刻同士の差分を計算し、
計算した複数の差分同士の和を計算し、
計算した複数の差分又は複数の差分同士の和のいずれか１つが所定の数以上であるか否かを判定し、
前記複数の差分又は前記複数の差分同士の和のいずれか１つが所定の数以上でないと判定した場合、前記一の分割データに含まれる複数の状態値を複製し、
複製した複数の状態値を集計するに際し、該複数の状態値の和を同一の特定時刻毎に集計する
付記１から付記３のいずれか１つに記載のプログラム。
【０１０１】
（付記５）
情報機器から出力される出力データの状態を示す状態値を複数含む該出力データが複数に分割された分割データの内の１つを処理する情報処理装置であって、
処理対象の分割データに複数含まれ、前記状態値の夫々を特定する特定情報毎に複数の状態値を複製する複製部と、
該複製部で複製した複数の状態値を集計する集計部と
を備える情報処理装置。
【０１０２】
（付記６）
情報機器から出力される出力データの状態を示す状態値を複数含む該出力データが複数に分割された分割データの内の１つを処理する情報処理装置を用いた情報処理方法であって、
処理対象の分割データに複数含まれ、前記状態値を特定する特定情報毎に複数の状態値を複製し、
複製した複数の状態値を集計する情報処理方法。
【０１０３】
（付記７）    
情報処理装置と通信網を介して該情報処理装置にデータを送信する送信装置とを備える情報処理システムであって、
前記送信装置は、
情報機器から出力される出力データの状態を示す状態値を複数含む該出力データを複数に分割する分割部と、
該分割部で前記出力データが複数に分割された分割データの内の１つを送信する送信部とを備え、
前記情報処理装置は、
前記分割データを受信する受信部と、
該受信部で受信した処理対象の分割データに複数含まれ、前記状態値の夫々を特定する特定情報毎に複数の状態値を複製する複製部と、
該複製部で複製した複数の状態値を集計する集計部と
を備える情報処理システム。
【０１０４】
今回開示された実施の形態はすべての点で例示であって、制限的なものではないと考えられるべきである。本発明の範囲は、上記した意味ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１０５】
１  中央装置（送信装置、情報機器）
１１  ＣＰＵ
１２  記憶部
１２Ｐ  プログラム
１３  入力部
１４  出力部
１５  通信部（送信部）
２  情報処理装置
２１  ＣＰＵ
２２  記憶部
２２Ｐ  プログラム
２３  入力部
２４  出力部
２５  通信部（受信部）
Ｔ１  分割テーブル
Ｔ２  出力テーブル
Ｔ３  集計テーブル
Ｔ４  スタックテーブル
１１Ａ  分割部
２１Ａ  複製部
２１Ｂ  集計部
【図１】
2015215842.tif 000003
【図２】
2015215842.tif 000004
【図３】
2015215842.tif 000005
【図４】
2015215842.tif 000006
【図５】
2015215842.tif 000007
【図６】
2015215842.tif 000008
【図７】
2015215842.tif 000009
【図８】
2015215842.tif 000010
【図９】
2015215842.tif 000011
【図１０】
2015215842.tif 000012
【図１１】
2015215842.tif 000013
【図１２】
2015215842.tif 000014
【図１３】
2015215842.tif 000015
【図１４】
2015215842.tif 000016
【図１５】
2015215842.tif 000017
【図１６】
2015215842.tif 000018
【図１７】
2015215842.tif 000019
【図１８】
2015215842.tif 000020
【図１９】
2015215842.tif 000021
【図２０】
2015215842.tif 000022
【図２１】
2015215842.tif 000023
【図２２】
2015215842.tif 000024
【図２３】
2015215842.tif 000025
【図２４】
2015215842.tif 000026
【図２５】
2015215842.tif 000027
【図２６】
2015215842.tif 000028