(57)【要約】      （修正有）【課題】利用者の能力に依存せず、実測値に基づいた処理方式を選択し、処理時間を効率的にできる処理基盤自動選択システムを提供する。【解決手段】データを処理する第１のデータ処理手段と第１のデータ処理手段と処理方法が相違する第２の処理手段とに自動的に振り分ける機能を有するデータ処理手段選択システムで、処理時間記録手段、処理振分ルール作成手段、処理振分ルール適用手段を有し、処理時間記録手段は、第１のデータ処理手段においてデータを処理する第１の処理時間、第２のデータ処理手段においてデータを処理する第２の処理時間を記憶し、処理振分ルール作成手段は、第１、第２の処理時間から処理時間が短い方の第１又は第２のデータ処理手段を予測し、処理を振り分ける処理振分ルールを作成し、処理振分ルール適用手段は、クライアントからのデータを処理振分ルールに基づいて第１又は第２のデータ処理手段に振り分ける。【選択図】図１
2015108993.tif 000002
【特許請求の範囲】
【請求項１】
高頻度で入力される大量のデータを処理する第１のデータ処理基盤装置と、
大量データに対する処理を複数のデータ処理部にて並列的に処理する第２のデータ処理基盤装置と
を有するデータ処理基盤自動選択システムであって、
データ処理基盤自動選択システムは、さらに、
前記第１および第２のデータ処理基盤装置で実行したデータ処理の処理時間を記録する処理時間記録部と、
前記記録した処理時間を利用して処理時間が短くなる第１および第２のデータ処理基盤を予測し、前記データ処理を振り分ける処理振分ルールを作成するルール作成部と、
前記作成した処理振分ルールに従い、クライアント側から入力されたデータの処理を処理時間が短い方の前記第１または第２のデータ処理基盤装置に振り分けるルール適用部と、
を有することを特徴とするデータ処理基盤自動選択システム。
【請求項２】
請求項１記載のデータ処理基盤自動選択システムにおいて、
前記第１のデータ処理基盤装置は、前記入力データを複合イベント処理するサーバからなり、前記第２のデータ処理基盤装置は、前記入力データを並列分散処理する複数のサーバからなり、
前記処理振分ルール部は、
前記予測した処理時間と実際の処理時間の差が大きくなった場合に前記処理振分ルールの再作成を行うルール処理振分ルール更新部を有する
ことを特徴とするデータ処理基盤自動選択システム。
【請求項３】
高頻度で入力される大量のデータを高速に処理する複合イベント処理方式の第１のデータ処理基盤装置と、
大量のデータを複数に分割し、当該複数に分割したデータの処理を複数の処理サーバで並列的に実行する並列分散処理方式の第２のデータ処理基盤装置と、
を有するデータ処理基盤自動選択システムにおいて
前記大量のデータが入力された際に前記第１のデータ処理基盤装置および第２のデータ処理基盤装置で並列に処理を実行し、当該処理実行時の処理時間を含む処理実行履歴を処理実行履歴部に蓄積する手段と、
前記蓄積した処理実行履歴から処理時間の短くなると予測した第１または第２のデータ処理基盤装置に処理を振り分けるためのルールを生成し、データを振分ける機能を含む、手段を
有することを特徴とするデータ処理基盤自動選択システム。
【請求項４】
請求項３に記載のデータ処理基盤自動選択システムにおいて、
前記処理実行履歴部は、
データサイズ、到着間隔、処理基盤、実行中処理数、ＣＰＵ利用率、メモリ利用率、処理時間の要素を有する
ことを特徴とするデータ処理基盤自動選択システム。
【請求項５】
請求項３に記載のデータ処理基盤自動選択システムにおける処理振分ルール作成方法であって、
前記データ処理基盤選択システムのルールを生成し、振分ける機能を含む手段は、処理振分ルールを回帰分析方法により生成し、振分けるものであり、
前記第１および第２のデータ処理基盤装置の処理実行履歴を入力として回帰分析し、当該回帰分析から処理時間を予測するモデルを作成し、
作成したモデルで予測した処理時間をもとに処理時間の短い、前記第１または第２のデータ処理基盤装置へ処理を振り分ける
ことを特徴とする処理振分ルール作成方法。
【請求項６】
請求項３に記載のデータ処理基盤自動選択システムにおける処理振分ルール作成方法であって、
前記データ処理基盤選択システムのルールを生成し、振分ける機能を含む手段は、前記処理振分ルールを決定ツリー方法により生成し、振分けるものであり、
第１及び第２のデータ処理基盤装置の処理実行履歴を入力として決定ツリー分析を行い、当該決定ツリー分析から処理を集合に分類するルールを作成し、
集合ごとに前記第１および第２のデータ処理基盤装置の予測処理時間を求め、
予測した処理時間の短い第１または第１のデータ処理基盤装置へ処理を振り分ける
ことを特徴とする処理振分ルール作成方法。
【請求項７】
請求項３に記載のデータ処理基盤自動選択システムにおける処理振分ルール作成方法であって、
前記データ処理基盤選択システムのルールを生成し、振分ける機能を含む手段は、前記処理振分ルールをサポートベクターマシンにより生成し、振分けるものであり、
第１及び第２のデータ処理基盤装置の処理実行履歴を入力として前記第１または第２のデータ処理基盤装置を判別する判別器を作成し、
前記判別器により判別された第１または第２の処理基盤装置へ処理を振り分ける
ことを特徴とする処理振分ルール作成方法。
【請求項８】
高頻度で入力される大量のデータを高速に処理する複合イベント処理方式の第１のデータ処理基盤装置と、
大量のデータを複数に分割し、当該複数に分解したデータの処理を複数の処理サーバで並列的に実行する並列分散処理方式の第２のデータ処理基盤装置と、
を処理振分ルールに基づいて、データの処理を前記第１または第２のデータ処理基盤装置の一方に振り分ける処理基盤自動選択システムにおける処理振分ルール作成方法であって、
入力されたデータの処理を前記第１または第２の処理基盤装置に振り分ける際、
前記第１および第２のデータ処理基盤装置において、前記入力されたデータの処理と同一の処理パラメータの処理が実行されている場合は、前記第１および第２のデータ処理基盤装置で記録された処理時間をもとに処理時間の短い第１または第２のデータ処理基盤装置へ処理を振り分け、
前記入力されたデータの処理と同一の処理パラメータの処理が実行されていない場合は前記処理振分ルールにより、前記第１または第２のデータ処理基盤装置に処理を振り分ける
ことを特徴とするデータ処理基盤選択システム。
【請求項９】
クライアントからのデータを受け、当該データを処理する第１のデータ処理手段、又は当該第１のデータ処理手段とは処理方法が相違する第２のデータ処理手段に自動的に振り分ける機能を有するデータ処理基盤選択システムであって、
処理時間記録手段、処理振分ルール作成手段、処理振分ルール適用手段、を有し、
前記処理時間記録手段は、
前記第１のデータ処理手段において前記データを処理する第１の処理時間、前記第２のデータ処理手段において前記データを処理する第２の処理時間、を記憶し、
前記処理振分ルール作成手段は、
前記第１、第２の処理時間から処理時間が短い方の前記第１又は第２のデータ処理手段を予測し、処理を振り分ける処理振分ルールを作成し、
前記処理振分ルール適用手段は、
前記クライアントからのデータを前記処理振分ルールに基づいて前記第１又は第２のデータ処理手段に振り分ける
ことを特徴とするデータ処理基盤選択システム。
【請求項１０】
請求項９に記載のデータ処理基盤選択システムにおいて、
前記処理振分ルールが、回帰分析、決定ツリー分析、サポートベクターマシン、の何れかを使用した処理振分ルールであることを特徴とするデータ処理基盤選択システム。
【請求項１１】
請求項９に記載のデータ処理基盤選択システムにおいて、
前記処理振分ルール適用手段は、
前記クライアントからのデータを前記処理振分ルールに基づいて前記第１又は第２のデータ処理手段に振り分けたあと、前記処理時間が予測処理時間＋許容誤差を超えた場合、前記処理振分ルールを更新し、前記データを前記第２又は第１の処理手段に振り分け、
前記予測処理時間は前記処理時間の過去から回帰分析、決定ツリー分析、サポートベクターマシン、何れかの統計手法を用いて予測した時間であり、前記許容誤差は前記処理時間と前記予測時間の差で許容できる誤差の値である、
ことを特徴とするデータ処理基盤選択システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ処理基盤自動選択システム及びデータ処理基盤自動選択システムにおける処理振分ルール作成方法に関する。
更に詳しくは、複数のデータ処理方式、つまり処理特性が異なるデータ処理方式、例えば、複合イベント処理実行基盤装置と並列分散処理実行基盤装置のデータ処理実行基盤装置の何れか一方を選択して、所望のデータ処理を実行することが可能なデータ処理基盤自動選択システム、その処理振分ルール作成方法に関する。
【背景技術】
【０００２】
本件技術分野の背景技術として、大量データを効率よく短時間でバッチ処理する方式として、並列分散処理が知られている（非特許文献１）。
この並列分散処理とは、複数に分散されたデータ処理を複数のデータ処理サーバにおいて同時に並列的に処理する方式である。
また、高頻度で入力されるデータを効率よく処理する方式として、複合イベント処理が知られている（非特許文献２）。
複合イベント処理とは、時々刻々と発生する大量のデータを高速に処理する方式である。
【０００３】
また、本件技術分野の背景技術として、特開２０１２−７９２４０号公報（特許文献１）がある。この公報には、「複数の条件についての成立状態を検知してイベント処理を発生させる複合イベント処理装置であって、複合イベント検出条件式の変更に際し、前記変更の前後の複合イベント条件式を比較する比較部と、前記比較結果に基づいて変更箇所を特定する特定部と、前記特定された変更箇所を含む複合イベント検出条件式について変更前後の複合イベント条件式を並行して動作させる並行動作部とを備えた複合イベント処理装置」が記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１２−７９２４０号公報
【非特許文献】
【０００５】
【非特許文献１】Jeffrey  Dean  and  Sanjay  Ghemawat,  “MapReduce:  Simplified  Data  Processing  on  Large  Clusters”,OSDI’04,2004
【非特許文献２】Luckham  and  David  C.,”Event  Processing  for  Business:  Organizing  the  Real-Time  Enterprise.”Hoboken,New  Jersey:John  Wiley  &  Sons,Inc.p3.2012
【発明の開示】
【発明が解決しようとする課題】
【０００６】
前記非特許文献１に記載された並列分散処理に関する技術は、大量データが一括で入力される際に、データの処理を高速に行うことには適している。しかし、少量データが頻繁に入力されるような場合は、処理ごとに前処理の時間が発生し、結果として処理結果を得るまでの時間が長くなる。
【０００７】
一方、非特許文献２に記載された複合イベント処理に関する技術は、少量データがストリームで入力される際に、データを効率よく高速に処理を行うことには適している。しかし、大量のデータを一括で処理する際には、処理が追いつかなくなり、結果として処理結果を得るまでの時間が長くなる。
【０００８】
この２つの技術は１回に処理するデータのサイズや処理の発生頻度等により、どちらの処理時間が短くなるかが変わる。
【０００９】
以上のことから、従来、一般的には、どちらの技術を使うかの判断は属人的に人手に頼っているのが現状である。しかし、この場合であっても、知識や経験のない初心者がどちらの技術を使うべきか判断するのが困難である。
【００１０】
特許文献１の複合イベント処理装置は、複合イベント処理のイベント検出ルールを動的に変更する方法が示されている。しかし、特許文献１の複合イベント処理装置は、イベント検出ルールを変更する際に複合イベント処理を停止し、この停止をもってイベント検出漏れを防ぐことを目的としている。
従って、変更するイベント検出ルールを自動で作成し、処理時間の短くなる処理方式を自動で選択すること、例えば、並列分散処理と複合イベント処理の２つのデータ処理方式を使い分けし、どちらか一方に処理を振り分け、処理時間の短くなるデータ処理方式を自動で選択することまでは考慮されていない。
【００１１】
そこで、本発明は、利用者の能力に依存せず、実測値に基づいたデータ処理方式の選択を可能にすることができ、処理時間を効率的に短縮することができるデータ処理基盤自動選択システム、データ処理基盤自動選択システムにおける処理振分ルール作成方法を提供する。
【課題を解決するための手段】
【００１２】
前記課題を達成するために、本発明は、データ処理を実行したときの時間を記録する手段と、当該記録したデータ処理の時間から未知の処理に対する処理時間を予測するモデルを作成する手段と、当該作成したモデルを利用し、未知の処理の処理時間を予測する手段と、予測した処理時間により処理を振り分けるためルールを作成し、当該ルールを基に処理を所望のデータ処理基盤装置に振り分ける手段を有する。
【００１３】
さらに、予測した処理時間と実測の処理時間の差がある程度大きくなった場合には、処理を振り分けるルールを再作成する手段を有する。
【００１４】
例えば、本発明のデータ処理基盤自動選択システムは、
高頻度で入力される大量のデータを処理する第１のデータ処理基盤装置と、
大量データに対する処理を複数のデータ処理部にて並列的に処理する第２のデータ処理基盤装置と
を有するデータ処理基盤自動選択システムであって、
データ処理基盤自動選択システムは、さらに、
前記第１および第２のデータ処理基盤装置で実行したデータ処理の処理時間を記録する処理時間記録部と、
前記記録した処理時間を利用して処理時間が短くなる第１および第２のデータ処理基盤を予測し、前記データ処理を振り分ける処理振分ルールを作成するルール作成部と、
前記作成した処理振分ルールに従い、クライアント側から入力されたデータの処理を処理時間が短い方の前記第１または第２のデータ処理基盤装置に振り分けるルール適用部と、
を有することを特徴とする。
【００１５】
本発明のデータ処理基盤自動選択システムにおいて、
前記第１のデータ処理基盤装置は、前記入力データを複合イベント処理するサーバからなり、前記第２のデータ処理基盤装置は、前記入力データを並列分散処理する複数のサーバからなり、
前記処理振分ルール部は、
前記予測した処理時間と実際の処理時間の差が大きくなった場合に前記処理振分ルールの再作成を行うルール処理振分ルール更新部を有する
ことを特徴とする。
【００１６】
また、本発明のデータ処理基盤自動選択システムは、
高頻度で入力される大量のデータを高速に処理する複合イベント処理方式の第１のデータ処理基盤装置と、
大量のデータを複数に分割し、当該複数に分割したデータの処理を複数の処理サーバで並列的に実行する並列分散処理方式の第２のデータ処理基盤装置と、
を有するデータ処理基盤自動選択システムであって、
前記大量のデータが入力された際に前記第１のデータ処理基盤装置および第２のデータ処理基盤装置で並列に処理を実行し、当該処理実行時の処理時間を含む処理実行履歴を処理実行履歴部に蓄積し、
前記蓄積した処理実行履歴から処理時間の短くなると予測した第１または第２のデータ処理基盤装置に処理を振り分けるためのルールを作成する機能を有する
ことを特徴とする。
【００１７】
本発明のデータ処理基盤自動選択システムにおいて、
前記処理実行履歴部は、
データサイズ、到着間隔、処理基盤、実行中処理数、ＣＰＵ利用率、メモリ利用率、処理時間の要素を有する
ことを特徴とする。
【００１８】
本発明のデータ処理基盤自動選択システムにおける処理振分ルール作成方法は、
前記データ処理基盤選択システムのルールを生成し、振分ける機能を含む手段は、処理振分ルールを回帰分析方法により生成し、振分けるものであり、
前記第１および第２のデータ処理基盤装置の処理実行履歴を入力として回帰分析し、当該回帰分析から処理時間を予測するモデルを作成し、
作成したモデルで予測した処理時間をもとに処理時間の短い、前記第１または第２のデータ処理基盤装置へ処理を振り分ける
ことを特徴とする。
【００１９】
本発明のデータ処理基盤自動選択システムにおける処理振分ルール作成方法は、
前記データ処理基盤選択システムのルールを生成し、振分ける機能を含む手段は、
処理振分ルールを決定ツリー方法により生成し、振分けるものであり、
第１及び第２のデータ処理基盤装置の処理実行履歴を入力として決定ツリー分析を行い、当該決定ツリー分析から処理を集合に分類するルールを作成し、
集合ごとに前記第１および第２のデータ処理基盤装置の予測処理時間を求め、
予測した処理時間の短い第１または第１のデータ処理基盤装置へ処理を振り分ける
ことを特徴とする。
【００２０】
本発明のデータ処理基盤自動選択システムにおける処理振分ルール作成方法は、
前記データ処理基盤選択システムのルールを生成し、振分ける機能を含む手段は、処理振分ルールをサポートベクターマシンにより生成し、振分けるものであり、
第１及び第２のデータ処理基盤装置の処理実行履歴を入力として前記第１または第２のデータ処理基盤装置を判別する判別器を作成し、
前記判別器により判別された第１または第２の処理基盤装置へ処理を振り分ける
ことを特徴とする。
【００２１】
本発明は高頻度で入力される大量のデータを高速に処理する複合イベント処理方式の第１のデータ処理基盤装置と、
大量のデータを複数に分割し、当該複数に分解したデータの処理を複数の処理サーバで並列的に実行する並列分散処理方式の第２のデータ処理基盤装置と、
を処理振分ルールに基づいて、データの処理を前記第１または第２のデータ処理基盤装置の一方に振り分ける処理基盤自動選択システムにおける処理振分ルール作成方法であって、
入力されたデータの処理を前記第１または第２の処理基盤装置に振り分ける際、
前記第１および第２のデータ処理基盤装置において、前記入力されたデータの処理と同一の処理パラメータの処理が実行されている場合は、前記第１および第２のデータ処理基盤装置で記録された処理時間をもとに処理時間の短い第１または第２のデータ処理基盤装置へ処理を振り分け、
前記入力されたデータの処理と同一の処理パラメータの処理が実行されていない場合は前記処理振分ルールにより、前記第１または第２のデータ処理基盤装置に処理を振り分ける
ことを特徴とする。
【００２２】
本発明のデータ処理基盤選択システムは、
クライアントからのデータを受け、当該データを処理する第１のデータ処理手段、又は当該第１のデータ処理手段とは処理方法が相違する第２のデータ処理手段に自動的に振り分ける機能を有するデータ処理基盤選択システムであって、
処理時間記録手段、処理振分ルール作成手段、処理振分ルール適用手段、を有し、
前記処理時間記録手段は、
前記第１のデータ処理手段において前記データを処理する第１の処理時間、前記第２のデータ処理手段において前記データを処理する第２の処理時間、を記憶し、
前記処理振分ルール作成手段は、
前記第１、第２の処理時間から処理時間が短い方の前記第１又は第２のデータ処理手段を予測し、処理を振り分ける処理振分ルールを作成し、
前記処理振分ルール適用手段は、
前記クライアントからのデータを前記処理振分ルールに基づいて前記第１又は第２のデータ処理手段に振り分ける
ことを特徴とする。
【００２３】
本発明のデータ処理基盤選択システムにおいて、
前記処理振分ルールが、回帰分析、決定ツリー分析、サポートベクターマシン、の何れかを使用した処理振分ルールであることを特徴とする。
【００２４】
本発明のデータ処理基盤選択システムにおいて、
前記処理振分ルール適用手段は、
前記クライアントからのデータを前記処理振分ルールに基づいて前記第１又は第２のデータ処理手段に振り分けたあと、前記処理時間が予測処理時間＋許容誤差を超えた場合、前記処理振分ルールを更新し、前記データを前記第２又は第１の処理手段に振り分け、
前記予測処理時間は前記処理時間の過去から回帰分析、決定ツリー分析、サポートベクターマシン、何れかの統計手法を用いて予測した時間であり、前記許容誤差は前記処理時間と前記予測時間の差で許容できる誤差の値である、
ことを特徴とする。
【発明の効果】
【００２５】
本発明によれば、複数の異なる特性のデータ処理方式の中から、利用者の能力に依存しないで、何れか一方のデータ処理方式を自動的に選択することができ、例えば、複合イベント処理と並列分散処理の２つの処理方式の中から処理時間が短いと思われる適切な一方を自動的に選択でき、データ処理を効率的に実行することが可能なデータ処理基盤自動選択システム、その処理振分ルール作成方法を提供することができる。
上述した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
【図面の簡単な説明】
【００２６】
【図１】図１は、本発明のデータ処理基盤自動選択システムの基本構成例を示すブロック図である。
【図２】図２は、本発明の処理振分ルール生成部及び処理振分ルール適用部における処理による状態遷移を説明する模式図である。
【図３】図３は、本発明の処理振分ルール生成部における処理振り分けルールの作成例を示すフローチャートである。
【図４】図４は、処理実行履歴表の一例を示す図である。
【図５】図５は、本発明の処理振分ルール適用部における処理振り分けルールの適用例を示すフローチャートである。
【図６】図６は、処理振分ルール適用部において振分先の処理実行基盤を決定する処理基盤決定表の一例を示す図である。
【図７】図７は、本発明の処理振分ルール適用部における処理振り分けルール更新例を示すフローチャートである。
【図８】図８は、本発明の処理振分ルール適用部における処理振り分けルールの一例として回帰分析を使った処理振り分けルールである。
【図９】図９は、本発明の処理振分ルール適用部における処理振り分けルールの他の例として決定ツリー分析を使った処理振り分けルールである。
【図１０】図１０は、本発明の処理振分ルール適用部における処理振り分けルールの更に他の例としてサポートベクターマシン（ＳＶＭ）を利用した処理振り分けルールである。
【発明を実施するための形態】
【００２７】
以下、実施例を、図面を用いて説明する。本発明は大量のデータ、例えば、ペタバイト級以上のサイズのデータやギガバイト級以上のストリーミングデータを処理する上で有効であるが、必ずしも本例で記述するデータ量に特定する必要はない。
【実施例】
【００２８】
図１は本発明のデータ処理基盤自動選択システムの基本構成例を示すブロック図である。
同図において、本発明にかかるデータ処理基盤自動選択システム１１０は、演算処理装置（ＣＰＵ）、記憶装置を含む計算機から構成する。そして、データ処理基盤自動選択システム１１０は、ネットワークを介してクライアント１００に接続し、また、ネットワークを介して複数の異なる特性の処理方式、例えば、複合イベント処理実行基盤装置（第１のデータ処理実行基盤装置）及び並列分散処理実行基盤装置（第２のデータ処理実行基盤装置）の両データ処理実行基盤装置１２０、１３０に接続する。
【００２９】
データ処理基盤自動選択システム１１０の演算処理装置は、情報送受信部１１６、処理時間記録部１１１、振分ルール生成部１１２、振分ルール適用部１１３、などを有し、記憶装置は、処理実行履歴部（処理実行履歴ＤＢ）１１４、振分ルール格納部（振分ルールＤＢ）１１５、などを有する。
【００３０】
情報送受信部１１６は、クライアント１００からのデータＤｉ及び当該データの処理要求や処理回数、などの指令情報を受ける。また、クライアント１００のデータＤｉを複合イベント処理実行基盤装置１２０及び並列分散処理実行基盤装置１３０に送信し、当該両装置おけるデータ処理に要するそれぞれの処理時間を受ける機能を有する。
【００３１】
処理時間記録部１１１は、複合イベント処理実行基盤装置１２０の複合イベント処理実行部１２１及び並列分散処理実行基盤装置１３０の並列分散処理実行部１３１により実行されたそれぞれのデータ処理のデータサイズ、処理データ間の到着間隔などのパラメータ（処理パラメータ）、及びデータ処理の実行開始から実行結果を得るまでの時間（処理時間）を処理実行履歴ＤＢ１１４に記録する機能を有する。
【００３２】
振分ルール生成部１１２は、処理実行履歴ＤＢ１１４に記録された処理パラメータと処理時間をもとに、所定の条件化（処理時間≦予測処理時間＋許容誤差）において、クライアント１００から入力されたデータＤｉの処理を、複合イベント処理実行基盤、並列分散処理実行基盤装置のどちらか一方の処理基盤装置側で実行させるか決定するためのルール（処理振り分けルール）を生成する機能を有する。また、一度振分けた後、所定の条件（処理時間＞予測処理時間＋許容誤差）の下で処理振分ルール更新を行う機能を有する。これらの機能の詳細については後述する。
【００３３】
振分ルール適用部１１３は、振分ルール生成部１１２により、作成した処理振り分けルールをもとに処理基盤装置を決定し、当該決定した処理基盤装置側にデータＤｉの処理を振り分ける機能を有する。
【００３４】
複合イベント処理実行基盤装置１２０は、ＣＰＵを含むサーバからなり、複合イベント処理実行部１２１、処理時間通知部１２２を有する。
【００３５】
複合イベント処理実行部１２１は、データＤｉに対して、複合イベント処理を実行する機能を有する。
【００３６】
処理時間通知部１２２は、複合イベント処理実行部１２１で実行されたデータ処理の処理時間を測定し、その処理時間を処理基盤選択システム１１０に送信し、通知する機能を有する。
【００３７】
また、並列分散処理実行基盤装置１３０も同様にＣＰＵを含む複数のサーバからなり、並列分散処理実行部１３１、処理時間通知部１３２を有する。
【００３８】
そして、並列分散処理実行部１３１は、データＤｉに対して、並列分散処理を実行する機能を有する。
【００３９】
処理時間通知部１３２は、並列分散処理実行部１３１で実行されたデータ処理の処理時間を測定し、その処理時間を処理基盤選択システム１１０に送信し、通知する機能を有する。
【００４０】
本発明では、利用者（クライアント側）の能力に依存せず、処理特性の異なる複合イベント処理基盤装置側と並列分散処理基盤装置側の一方の選択を行うため、複合イベント処理基盤装置側と並列分散処理基盤装置側で実行した処理時間を処理実行履歴としてＤＢ１１４に記録し、記録した処理時間をもとに予測した処理時間でデータ処理を複合イベント処理基盤装置側と並列分散処理基盤装置側のどちらか一方に振り分けている。
【００４１】
図２は、本発明の処理振分ルール生成部１１２及び処理振分ルール適用部１１３における処理による状態遷移を説明する模式図である。
【００４２】
同図において、初期状態としてデータ処理の振り分けを行うための振り分けルールの作成を実施する。
しかる後、作成した処理振分ルールを適用して、クライアント１００側から入力されたデータ処理を複合イベント処理基盤装置側と並列分散処理基盤装置側のどちらか一方に振り分ける。
【００４３】
この処理振分ルール適用中に、例えば、クライアント側から処理内容の変更等があり、作成した処理振分ルールが適当でなくなることを防ぐため、誤差の閾値を設定し、実際の処理時間と予測処理時間の誤差が大きくなった場合、つまり上述した条件の処理時間＞予測処理時間＋許容誤差を満たす場合には、処理振分ルールを更新する。
【００４４】
以下、その処理手順について説明する。
まず、図２において、開始状態（ステップＳ２００）から、処理振り分けルール作成状態（ステップＳ２０１）に移行した場合、処理振り分けルール作成状態（ステップＳ２０１）は初期状態において、上述した処理振分ルールの作成を行う。
【００４５】
処理振り分けルール作成状態（ステップＳ２０１）においては、処理振分ルールの作成が完了しているか否かを示すフラグ（処理振り分けルール作成完了フラグ）がｆａｌｓｅの間は、処理振分ルールの作成を続ける。
【００４６】
処理振り分けルール作成状態（ステップＳ２０１）は、処理振り分けルール作成完了フラグがｔｒｕｅになったら、処理振り分けルール適用状態（ステップＳ２０２）に移行する。
【００４７】
処理振り分けルール適用状態（ステップＳ２０２）においては、作成した処理振分ルールを適用し、入力されたデータの処理を振り分ける処理基盤装置（複合イベント処理実行基盤装置、又は並列分散処理実行基盤装置）を決定し、データ処理の振り分けを行う。
【００４８】
この処理振り分けルール適用状態（ステップＳ２０２）において、処理時間が予測処理時間＋許容誤差以内（処理時間≦予測処理時間＋許容誤差）である間は、この振分ルール適用を継続する。
【００４９】
予測処理時間とは、過去の処理時間から、例えば、回帰分析等の統計手法を用いていて予測した処理時間である。許容誤差とは、処理時間と予測処理時間の差で許容できる誤差の値で、任意に設定する。
【００５０】
処理振り分けルール作成状態（ステップＳ２０１）において、処理時間が予測処理時間＋許容誤差を超えた場合（処理時間＞予測処理時間＋許容誤差）には、処理振り分けルール更新状態（ステップＳ２０３）に移行する。
【００５１】
例えば、処理時間が５秒、予測処理時間が３秒、許容誤差が３秒であった場合は、処理振り分けルール適用状態（ステップＳ２０２）を継続し、処理時間が７秒、予測処理時間が３秒、許容誤差が３秒であった場合は、処理振り分けルール更新状態（ステップＳ２０３）に移行する。
【００５２】
処理振り分けルール更新状態（ステップＳ２０３）においては、処理時間と予測処理時間の誤差が大きくなった場合に処理振り分けルールの更新を行う。
【００５３】
つまり、処理振り分けルール更新状態（ステップＳ２０３）においては、処理振り分けルール作成完了フラグがｆａｌｓｅの間は継続し、処理振り分けルール作成完了フラグがｔｒｕｅになったら、処理振り分けルール適用状態（ステップＳ２０２）に移行する。
【００５４】
以上の処理により、処理振り分けルールの適当でなくなることを防ぎつつ、処理を複合イベント処理と並列分散処理のどちらか一方に振り分けることが可能になる。
【００５５】
図３は、本発明の処理振分ルール生成部における処理振り分けルールの作成例を示すフローチャートである。同図において、以下、処理振り分けルール作成状態（ステップ２０１）の処理フローを説明する。
【００５６】
本処理フローは、最初の処理振り分けルールを作成するための処理フローである。初期状態では処理振分ルールを作成するための処理実行履歴がないため、処理実行履歴を蓄積するために、データ処理を複合イベント処理、並列分散処理の両方で実行して処理実行履歴を蓄積し、その処理実行履歴をもとに処理振分ルールを作成する。
【００５７】
まず、ステップＳ３０１にて、処理振り分けルール作成完了フラグをｆａｌｓｅに設定する。
【００５８】
次に、ステップＳ３０２にて、処理振分ルール作成のための処理実行回数Ｎを設定する。処理実行回数Ｎは、処理振分ルール作成のために必要な学習データを得るための処理の実行回数である。そして、このＮは任意に設定が可能である。Ｎを小さくすると、処理振分ルール作成にかかる時間が短くなるが、処理基盤装置を選択する精度が低くなる。その一方、Ｎを大きくすると、処理振分ルール作成にかかる時間が大きくなるが、処理基盤を選択する精度が高くなる。
【００５９】
次に、ステップＳ３０３にて、クライアント１００側から入力された処理数ｉをカウントする。入力処理数ｉは０に設定しておく。
【００６０】
しかる後、データ処理基盤選択システム１１０は、ステップＳ３０４にて、クライアント１００から処理要求と処理対象となるデータＤｉを受け取る。
【００６１】
処理対象のデータＤｉを受け取ったら、データ処理基盤選択システム１１０は、まず、一方の複合イベント処理実行基盤装置１２０に処理を振り分ける。
【００６２】
複合イベント処理実行基盤装置１２０は、複合イベント処理実行部１２１にて、振り分けられたデータの処理を実行し、処理時間通知部１２２を介して、その処理時間を処理基盤選択システム１１０側に通知する。
【００６３】
データ処理基盤選択システム１１０は、ステップＳ３０５にて、その処理時間記録部１１１により、通知された処理時間と処理パラメータを、処理実行履歴ＤＢ１１４に記録する。
次に、データ処理基盤選択システム１１０は、他方の並列分散処理実行基盤１３０に処理を振り分ける。
【００６４】
並列分散処理実行基盤１３０は、並列分散処理実行部１３１にて、振り分けられたデータの処理を実行し、処理時間通知部１３２を介して処理時間をデータ処理基盤選択システム１１０側に通知する。
【００６５】
データ処理基盤選択システム１１０は、ステップＳ３０６にて、その処理時間記録部１１１により、通知された処理時間と処理パラメータを、処理実行履歴ＤＢ１１４に記録する。処理実行履歴ＤＢ１１４に記録される処理実行履歴については後述する。
【００６６】
その後、ステップＳ３０７にて、入力処理数ｉを１加算する。
【００６７】
次に、ステップＳ３０８にて、入力処理数ｉと処理実行回数Ｎを比較する。当該ステップにて、入力処理数ｉ＜処理実行回数Ｎのときは、ステップＳ３０４に戻り、ステップＳ３０４からステップＳ３０７を繰り返し行う。
【００６８】
入力処理数ｉ≧処理実行回数Ｎの時は、振分ルール生成部１１２は、ステップＳ３０９にて、処理実行履歴ＤＢ１１４に記録された処理時間と処理パラメータをもとに処理振分ルールを作成し、当該ルールを振分ルールＤＢ１１５に記録する。
【００６９】
処理振り分けルールの作成が完了したら、ステップＳ３１０にて、処理振り分けルール作成完了フラグをｔｒｕｅにして処理を終了する。
【００７０】
以上の処理フローにより、最初の処理振分ルールを作成することができる。
【００７１】
図４は処理実行履歴ＤＢ１１４に記録される処理実行履歴の一例を示す図である。
同図において、処理実行履歴ＤＢ１１４のテーブル４０１には、フィールドとして、処理ＩＤ４０１１、データサイズ４０１２、到着間隔４０１３、処理基盤４０１４、実行中処理数４０１５、ＣＰＵ利用率４０１６、メモリ利用率４０１７、処理時間４０１８、の各項目を有する。
【００７２】
処理ＩＤ４０１１は処理を一意に識別するための記号（０００１、０００２、・・・０００５）である。
【００７３】
データサイズ４０１２は処理対象である入力データのデータサイズ（３０ＭＢ、３０ＭＢ、・・・１ｋＢ）である。
【００７４】
到着間隔４０１３は１つ前の処理が到着した時間から、現在の処理が到着するまでの経過時間（０．５ｓ、０，５ｓ、・・・０．３ｓ）である。
【００７５】
処理基盤４０１４は処理を実行した基盤（複合イベント処理、並列分散処理）のいずれかの値が格納される。実行中処理数４０１５は処理基盤において実行中である処理数（０、０・・・０）である。
【００７６】
ＣＰＵ利用率４０１６は、処理基盤のサーバのＣＰＵ利用率（０−５０％、０−５０％、・・・０−５０％）である。複数台のサーバがある場合は、各サーバのＣＰＵ利用率の平均値とする。
【００７７】
メモリ利用率４０１７は、処理基盤を構成するサーバのメモリ利用率（０−５０％、０−５０％、・・・０−５０％）である。複数台のサーバがある場合は、各サーバのメモリ利用率の平均値とする。
【００７８】
処理時間４０１８は各基盤から通知された処理時間（２０ｓ、１５ｓ、・・・０．２ｓ）を格納する。
【００７９】
例えば、処理実行履歴ＤＢ１１４のテーブル４０１の１行目（♯１）の処理ＩＤ（０００１）は、前回の処理から０．５秒後に到着した処理で、入力データサイズは３０ＭＢ、複合イベント処理実行基盤１２０で実行中の処理は０個で、ＣＰＵ利用率、メモリ利用率ともに０−５０％のときの処理時間は２０秒であるということを意味する。
【００８０】
図５は発明の処理振分ルール適用部における処理振り分けルールの適用例を示すフローチャートである。
同図において、以下の処理振り分けルール適用状態（ステップＳ２０２）の処理フローについて説明する。
【００８１】
本処理フローは、処理を処理時間の短い処理基盤へ振り分けるため、入力された処理と同一のパラメータの処理が既に処理実行履歴にあり、どちらのほうが、処理時間が短いかわかっている場合は、その処理基盤に処理を振り分け、わからない場合には、処理振分ルールを適用し、処理時間が短いと予測される処理基盤へ処理を振り分ける。
【００８２】
まず、データ処理基盤選択システム１１０は、ステップＳ５０１にて、クライアント１００から処理要求を受け取る。
【００８３】
次に、ステップＳ５０２にて、受け取った処理の処理パラメータが同一の処理が処理基盤決定表６０１に登録されているか検索する。
【００８４】
処理基盤決定表６０１とは、同一の処理パラメータで、複合イベント処理実行基盤装置１２０及び並列分散処理実行基盤装置１３０において、それぞれでの処理時間が計測されている場合に、処理時間を比較して処理時間が短い処理基盤をその処理パラメータでの処理基盤として登録する表である。処理基盤決定表６０１については後述する。
【００８５】
処理基盤決定表６０１への行の登録について、処理実行履歴ＤＢ１１４を例に説明すると、処理実行履歴ＤＢ１１４の１行目と２行目のように、処理基盤以外のすべての処理パラメータが同一である行が登録された場合、その行の処理時間を比較して処理時間の短い処理基盤を処理基盤決定表６０１の振り分け処理基盤に登録する。
【００８６】
処理基盤決定表６０１に、同一パラメータの処理が記録されている場合は、処理基盤決定表６０１に従い、ステップＳ５０３において、処理を振り分ける。
【００８７】
処理基盤決定表６０１に同一のパラメータの処理が記録されていない場合は、処理振分ルールに従い、ステップＳ５０４にて、処理を振り分ける。
【００８８】
次に、ステップＳ５０５にて、処理が複合イベント処理実行基盤装置１２０、並列分散処理実行基盤装置１３０、いずれかに振り分けられた処理基盤で処理を実行する。
【００８９】
ステップＳ５０６にて、処理基盤で実行したら処理時間をデータ処理基盤選択システム１１０に通知して、処理実行履歴ＤＢ１１４に記録する。
【００９０】
次いで、ステップＳ５０７にて、処理実行履歴ＤＢ１１４のテーブル４０１に記録したら、処理基盤決定表６０１への登録条件を満たしている行、つまり処理基盤以外のすべての処理パラメータが同一である行が登録されているかを調べる。
ここで、登録条件を満たしている行があれば、ステップＳ５０８にて、処理基盤決定表６０１に登録を行う。しかるのち、登録条件を満たしている行がなければ、処理を終了する。
【００９１】
以上の処理フローにより、入力された処理を処理時間の短くなると予想される処理基盤へ振り分けることができる。
【００９２】
図６は処理基盤決定表の例を示す図である。
同図において、処理基盤決定表６０１は、フィールドとして、処理ＩＤ６０１１、データサイズ６０１２、到着間隔６０１３、実行中処理数６０１４、ＣＰＵ利用率６０１５、メモリ利用率６０１６、振り分け処理基盤６０１７、の各項目を有する。
【００９３】
データサイズ６０１２、到着間隔６０１３、実行中処理数６０１４、ＣＰＵ利用率６０１５、メモリ利用率６０１６は、すべて処理実行履歴ＤＢ１１４と同一の意味である。
【００９４】
振分処理基盤６０１７は処理を振り分ける基盤を格納している。例えば、処理基盤決定表６０１の１行目（処理ＩＤ０００１）は、データサイズ６０１２が３０ＭＢ、到着間隔６０１３が０．５秒、実行中処理数６０１４が０個、ＣＰＵ利用率６０１５が０−５０％、メモリ利用率６０１６が０−５０％で処理が入力された時は、並列分散処理実行基盤装置１３０に処理を振り分けることを意味している。
【００９５】
図７は本発明の処理振分ルール適用部における処理振り分けルール更新例を示すフローチャートである。
同図において、処理振り分けルール更新状態（ステップ２０３）の処理について説明する。
【００９６】
本処理フローは、予測処理時間と実際の処理時間の誤差が大きくなったとき、処理振分ルールが適当でなくなったと判断して処理振分ルールを更新するために実行する。処理振分ルール適用状態で記録した処理実行履歴をもとに処理振分ルールを再作成する。
【００９７】
まず、ステップＳ７０１にて、処理振分けルール作成完了フラグをｆａｌｓｅに設定する。
【００９８】
次に、ステップＳ７０２にて、処理振分ルール適用状態（ステップＳ２０２参照）で処理実行履歴ＤＢ１１４のテーブル４０１に記録した処理パラメータと処理時間をもとに処理振り分けルールを再作成する。
【００９９】
処理振分ルールの再作成が完了したら、ステップＳ７０３にて、処理振り分けルール作成完了フラグをｔｒｕeに設定して処理を終了する。
【０１００】
以上の処理フローにより、処理振り分けルールを更新することができ、常に処理に適したルールを適用することが可能となる。
【０１０１】
次に、本発明の処理振分ルール適用部における処理振分ルールについて説明する。処理振分ルールとしては、例えば、（１）回帰分析を用いた処理振分ルール、（２）決定ツリー分析を使った処理振分ルール、（３）サポートベクターマシン（ＳＶＭ）を利用した処理振分ルール、を用いる。
【０１０２】
以下、これらのルールについて説明する。
（１）回帰分析を用いた処理振分ルール
図８は本発明の処理振分ルール適用部における処理振り分けルールの一例を示す図である。
【０１０３】
同図において、回帰分析により、複合イベント処理、並列分散処理、それぞれの予測処理時間を求める回帰モデルを作成し、予測処理時間を比較して予測処理時間の短いほうへ処理を振り分けるルールを作成する。
【０１０４】
回帰分析とは、何らかの変化する値があるとき、その変動の原因を統計的に究明し、その関係を表す回帰モデルと呼ばれる数式を求めることである。
【０１０５】
回帰分析に処理振り分けルールを作成するためには、まず、処理実行履歴ＤＢ１１４のテーブル４０１に記録されているデータから、複合イベント処理での処理時間Ｔ１を予測するための数式（８０１）を求める。
【０１０６】
【数１】
2015108993.tif 000003
数式８０１
【０１０７】
数式（８０１）では、複合イベント処理での処理時間Ｔ１を予測するためにデータサイズｘ１、到着間隔ｘ２、実行中処理数ｘ３、ＣＰＵ利用率ｘ４、メモリ利用率ｘ５の変数を用いているが、これは一例であり予測に利用する変数は様々に変化しうる。
同様にして、並列分散処理での処理時間Ｔ２を予測するための数式（８０２）を求める。
【０１０８】
【数２】
2015108993.tif 000004
数式８０２
【０１０９】
この２つの数式（８０１、８０２）も用いて処理振り分けルール（８０３）を作成する。
例えば、入力された処理の処理パラメータを数式（８０１、８０２）に代入し、Ｔ１、Ｔ２を求め、Ｔ１＞Ｔ２であれば、並列分散処理基盤のほうが、処理時間が短いと予測できるため、並列分散処理実行基盤装置１３０に処理を振り分ける。
【０１１０】
ここで、Ｔ１≦Ｔ２であれば、複合イベント処理のほうが、処理時間が短いと予測できるため、複合イベント処理実行基盤装置１２０に処理を振り分けるという処理振分けルールを作成する。
【０１１１】
以上により、回帰モデルで求めた予測処理時間をもとに、複合イベント処理と並列分散処理のいずれかに処理を振り分けることが可能となる。
【０１１２】
（２）決定ツリー分析を使った処理振分ルール
図９は本発明の処理振分ルール適用部における処理振り分けルールの他の例を示す図である。
【０１１３】
同図において、決定ツリー分析により、処理を集合に分類し、分類ごとに振り分ける処理基盤を決めることで処理を振り分けるルールを作成する。
【０１１４】
決定ツリー分析とは、全体の集合を条件により分割していき、全体の集合を特徴のあるいくつかの集合に分類する手法で、集合の分割を木構造で表現する。決定木を使った処理振分ルール９０１では、木の節には集合を分割する条件が設定され、葉にはそれぞれ分割された集合がどちらの処理基盤に処理を振り分けるかが設定される。
【０１１５】
例えば、処理振り分けルール９０１の左から一つ目の葉９０２に分類された処理は、並列分散処理実行基盤側に処理が振り分けられ、左から３番目の葉９０３に分類された処理は複合イベント処理実行基盤装側に処理が振り分けられる。
【０１１６】
処理振り分けルール適用状態（図２のステップＳ２０２参照）から処理振り分けルール更新状態（図２のステップＳ２０３参照）への移行条件の確認に必要な予測処理時間は、集合に含まれる要素の処理時間の平均値とする。決定木の作成アルゴリズムは様々考案されており、ここではそのアルゴリズムは特に問わない。
【０１１７】
例えば、Ｃ４．５（Quinlan.  J.  R,”C4.5:  Programs  for  Machine  Learning”,  Morgan  Kaufmann  Publishers,  1993.）、CART（L.Breiman,  J.H.Friedman,  R.A.Olshen  and  C.J.Stone,  "Classification  and  Regression  Trees",  Wadsworth,  1984）、CHAID（Kass,  Gordon  V.  ,“An Exploratory  Technique  for  Investigating  Large  Quantities  of  Categorical  Data”,  Applied  Statistics,  Vol.29,
No.2 (1980),  pp.119-127,1980）等のアルゴリズムがある。
【０１１８】
以上により、決定ツリー分析で作成した分類をもとに、複合イベント処理と並列分散処理のいずれかに処理を振り分けることが可能となる。
【０１１９】
（３）サポートベクターマシン（ＳＶＭ）を利用した処理振分ルール
図１０は本発明の処理振分ルール適用部における処理振り分けルールの更に他の例を示す図である。
【０１２０】
同図において、サポートベクターマシンにより、判別器を作成し、判別器を用いて振り分ける処理基盤を決定する。
【０１２１】
ＳＶＭとは、事前に与えられたデータから識別器を作成し、その識別器を利用して未知のデータの識別を行う手法である。
【０１２２】
処理振分ルールを作成するには、まず、事前に与えられている処理の処理パラメータ
【数３】
2015108993.tif 000005
を利用して判別器１００１を作成する。
【数４】
2015108993.tif 000006
【０１２３】
この判別器では、データサイズ、到着間隔、実行中処理数、ＣＰＵ利用率、メモリ利用率を与えると＋１もしくは−１が出力される。この判別器を利用して、以下の処理振分ルール１００２を作成する。
【０１２４】
ここで
ｆ（ｘ）＝＋１ならば、並列分散処理実行基盤側に処理を振り分ける。
ｆ（ｘ）＝−１ならば、複合イベント処理実行基盤側に処理を振り分ける。
【０１２５】
処理振分ルール１００２では、判別器１００１の出力結果が＋１ならば、並列分散処理実行基盤側に処理を振り分ける。
【０１２６】
判別器１００１の出力結果が−１ならば、複合イベント処理実行基盤側に処理を振り分ける。ＳＶＭでの判別器１００１の作成アルゴリズムは改良が多く加えられており様々存在するが、ここでは特に作成アルゴリズムは問わない。
【０１２７】
例えば、参考文献（Cortes,  Corinna;  and  Vapnik,  Vladimir  N.  "Support-Vector  Networks",  Machine  Learning,  20,  1995.）で提案されているアルゴリズム等がある。
【０１２８】
以上により、サポートベクターマシンで作成した判別器をもとに、複合イベント処理と並列分散処理のいずれかに処理を振り分けることが可能となる。
【０１２９】
以上述べた実施例によれば、処理時間をもとに複合イベント処理と並列分散処理どちらに処理を振り分けるか自動で決定するため利用者の能力に依存しない処理の振り分けを実現することができる。
【０１３０】
また、予測処理時間と実際の処理時間との誤差が大きくなったことを検出してルールを更新することで、処理内容の変化や処理基盤の処理能力の変化に対応した処理の振り分けが可能となる。
【０１３１】
なお、本発明は上述した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上述した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、等の記録装置、または、ＩＣカード、ＳＤカード、ＤＶＤ等の記録媒体に置くことができる。
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
【産業上の利用可能性】
【０１３２】
複合イベント処理と並列分散処理の両方が実行可能な基盤製品における処理基盤選択機能に活用できる。
【符号の説明】
【０１３３】
１００  クライアント
１１０  データ処理基盤選択システム
１１１  処理時間記録部
１１２  振分ルール生成部
１１３  振分ルール適用部
１１４  処理実行履歴ＤＢ
１１５  振分ルールＤＢ
１２０  複合イベント処理実行基盤装置
１２１  複合イベント処理実行部
１２２  処理時間通知部
１３０  並列分散処理実行基盤装置
１３１  並列分散処理実行部
１３２  処理時間通知部
【図１】
2015108993.tif 000007
【図２】
2015108993.tif 000008
【図３】
2015108993.tif 000009
【図４】
2015108993.tif 000010
【図５】
2015108993.tif 000011
【図６】
2015108993.tif 000012
【図７】
2015108993.tif 000013
【図８】
2015108993.tif 000014
【図９】
2015108993.tif 000015
【図１０】
2015108993.tif 000016