(57)【要約】【課題】個々の処理装置におけるモデルの記憶容量を増加させることなく、処理装置の負荷を分散する。【解決手段】共通部分判定部１６は、複数種の判定条件を各々含み、発生事象を表すイベント情報から事象を判別するための複数のモデルについて、判定条件の共通部分を判定する。モデル配送部１８は、同一の共通部分を含む複数のモデルの共通部分が複数の異常判別処理サーバ４２の第３記憶部４８に各々記憶されるようにモデルを配送する。イベント情報制御部３４は、入力されたイベント情報の属性に対応するモデルを判定し、判定したモデルが共通部分を含む場合は、以下の制御を行う。すなわち、判定したモデルのうちの共通部分が記憶された複数のサーバ４２のうち、個々のサーバ４２の処理負荷に応じて選択したサーバ４２で共通部分の処理が行われるように制御する。【選択図】図１
2018022281.tif 000002
【特許請求の範囲】
【請求項１】
発生した事象に関連する属性を含むイベント情報から、前記事象の状態を判別するための複数種の判定条件を含む、複数のモデルについて、互いに異なるモデル間の前記判定条件の共通部分を判定し、
内蔵記憶部に記憶したモデルを適用して処理の対象とする前記イベント情報の事象の状態を判別する複数の処理装置のそれぞれに、同一の前記共通部分を含む複数のモデルのうちの異なるモデルを含む１以上のモデルを記憶させ、
前記複数の処理装置のうち、前記同一の共通部分を含む複数のモデルのうち入力された前記イベント情報に含まれる前記属性に対応する第１のモデルを内蔵記憶部に格納する第１の処理装置を特定すると共に、前記第１のモデルに含まれる共通部分と同一の共通部分を含む第２のモデルを内蔵記憶部に格納する第２の処理装置を特定し、前記事象の状態を判別する処理を、前記第１の処理装置の負荷に応じて、前記第１の処理装置と前記第２の処理装置の何れに行わせるかを決定し、
決定した処理装置に、前記事象の状態を判別する処理を行わせる
処理をコンピュータに実行させるための負荷分散制御プログラム。
【請求項２】
前記複数のモデルに含まれる複数種の判定条件を、前記複数のモデルに含まれる複数の判定条件において判定処理を行う順に比較することで前記共通部分を判定し、
入力された前記イベント情報を、特定した前記第１の処理装置及び前記第２の処理装置のうち、前記第１の処理装置及び前記第２の処理装置の負荷に応じて選択した処理装置へ配送することで、当該処理装置で前記イベント情報の事象の状態を判別する処理のうち、少なくとも前記共通部分の処理を行わせる請求項１記載の負荷分散制御プログラム。
【請求項３】
前記処理装置へ配送する前記イベント情報に、前記第１のモデルの識別情報、及び、前記事象の状態の判別を開始する判定条件として前記第１のモデルに含まれる複数の判定条件において判定処理を行う順が先頭の判定条件を指し示す情報を設定した判定条件識別情報を付加し、
前記イベント情報が配送された前記処理装置は、前記内蔵記憶部に記憶した前記第１のモデル又は前記第２のモデルの前記共通部分のうち、前記判定条件識別情報が指し示す判定条件から前記事象の状態の判別を開始し、前記第２のモデルの前記共通部分だけでは前記事象の状態の判別が完了せず、かつ前記第１のモデルのうちの非共通部分が前記内蔵記憶部に記憶されていない場合に、前記第１のモデルのうちの非共通部分を前記内蔵記憶部に記憶した前記第１の処理装置へ、前記判定条件識別情報を更新した前記イベント情報を転送する請求項２記載の負荷分散制御プログラム。
【請求項４】
前記同一の前記共通部分を含むモデルの数が３以上の場合に、前記同一の前記共通部分を含むモデルの前記共通部分を、前記同一の前記共通部分を含むモデルの数よりも少ない前記処理装置の前記内蔵記憶部に記憶させる請求項１〜請求項３の何れか１項記載の負荷分散制御プログラム。
【請求項５】
発生した事象に関連する属性を含むイベント情報から、前記事象の状態を判別するための複数種の判定条件を含む、複数のモデルについて、互いに異なるモデル間の前記判定条件の共通部分を判定する共通部分判定部と、
内蔵記憶部に記憶したモデルを適用して処理の対象とする前記イベント情報の事象の状態を判別する複数の処理装置のそれぞれに、同一の前記共通部分を含む複数のモデルのうちの異なるモデルを含む１以上のモデルを記憶させるモデル配送部と、
前記複数の処理装置のうち、前記同一の共通部分を含む複数のモデルのうち入力された前記イベント情報に含まれる前記属性に対応する第１のモデルを内蔵記憶部に格納する第１の処理装置を特定すると共に、前記第１のモデルに含まれる共通部分と同一の共通部分を含む第２のモデルを内蔵記憶部に格納する第２の処理装置を特定し、前記事象の状態を判別する処理を、前記第１の処理装置の負荷に応じて、前記第１の処理装置と前記第２の処理装置の何れに行わせるかを決定し、決定した処理装置に、前記事象の状態を判別する処理を行わせる制御部と、
を含む負荷分散制御装置。
【請求項６】
発生した事象に関連する属性を含むイベント情報から、前記事象の状態を判別するための複数種の判定条件を含む、複数のモデルについて、互いに異なるモデル間の前記判定条件の共通部分を判定し、
内蔵記憶部に記憶したモデルを適用して処理の対象とする前記イベント情報の事象の状態を判別する複数の処理装置のそれぞれに、同一の前記共通部分を含む複数のモデルのうちの異なるモデルを含む１以上のモデルを記憶させ、
前記複数の処理装置のうち、前記同一の共通部分を含む複数のモデルのうち入力された前記イベント情報に含まれる前記属性に対応する第１のモデルを内蔵記憶部に格納する第１の処理装置を特定すると共に、前記第１のモデルに含まれる共通部分と同一の共通部分を含む第２のモデルを内蔵記憶部に格納する第２の処理装置を特定し、前記事象の状態を判別する処理を、前記第１の処理装置の負荷に応じて、前記第１の処理装置と前記第２の処理装置の何れに行わせるかを決定し、
決定した処理装置に、前記事象の状態を判別する処理を行わせる
処理をコンピュータが実行する負荷分散制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は負荷分散制御プログラム、負荷分散制御装置及び負荷分散制御方法に関する。
【背景技術】
【０００２】
仮想サーバ上で稼働されるシステムの負荷状況を複数の物理サーバから取得し、仮想サーバで稼働されるシステムの負荷容量を遺伝子配列で表現した遺伝的アルゴリズムに従って、物理サーバに掛かる負荷を割り付る第１の技術が提案されている。第１の技術は、割り付けた負荷を複数の物理サーバに分散させる。
【０００３】
また、少なくとも二の機能上同一のサービストランザクションと関連付けられるサービストランザクションリポジトリを決定し、サービストランザクションの各々が少なくとも一のデータ特徴と関連付けられている第２の技術も提案されている。第２の技術は、サービストランザクションリポジトリにおけるデータ特徴パターンを決定し、決定したデータ特徴パターンとサービスとを関連付けるサービスマップを決定する。
【０００４】
また、機器の保守計画を立てるための正確かつ十分な保守支援情報を提供する第３の技術も提案されている。第３の技術は、機器の推定残存率及び実績設置台数から経過期間毎の推定残存台数を算出し、推定残存台数及び実績修理件数から推定ハザード関数を算出して推定累積修理率を算出し、学習期間内のデータを用い予測モデルを適用して予測累積修理率を算出する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−２６９２５０号公報
【特許文献２】特開２００６−２６８８４８号公報
【特許文献３】特開２０１３−１１４６３６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
例えば第３の技術のように、発生した事象を各々表す複数のイベント情報から、発生した事象を判別するためのモデルをイベント情報の属性毎に学習により生成し、モデル生成後のイベント情報から対応するモデルを適用して事象を判別する技術が知られている。この技術において、時々刻々とイベント情報が発生する場合や、事象の状態の判別にリアルタイム性が要求される場合は、例えばサーバ等の処理装置を複数設け、複数の処理装置に互いに異なるモデルを割り当て、複数の処理装置に処理を分散させることが行われる。
【０００７】
また、上記技術の分野では、機械学習技術の応用により、モデル生成の単位であるイベント情報の属性の細分化も進んでおり、イベント情報の属性に対応するモデルをより多くのモデルの中から選択的に適用して、発生した事象の状態の判別を行う傾向にある。ユーザの端末操作の異常判別を例に挙げると、端末を操作したユーザ毎にモデルを生成していたのが、例えば、ユーザ毎・端末毎・日にちの種別(平日／休日)毎・操作時間帯毎にモデルを生成することで、異常判別の精度向上を期するようになってきている。イベント情報の属性を細分化する場合にも、モデルの数が増大することから、複数の処理装置に処理を分散させる構成が採用される。
【０００８】
但し、複数の処理装置に互いに異なるモデルを割り当てて処理を分散させたとしても、発生したイベント情報が表す事象の状態の判別に何れのモデルを適用するかはイベント情報の属性に応じて定まるので、各モデルの使用頻度が均一である保証はない。このため、モデルの使用頻度の偏りを原因として複数の処理装置の負荷に偏りが生じ、何れかの処理装置の負荷が許容量を超えてしまう場合がある。
【０００９】
この課題は、個々の処理装置に搭載される記憶部を、全てのモデルを記憶できる記憶容量として全てのモデルを記憶させることで、個々の処理装置を、何れのモデルを用いた処理でも実行できるようにすれば、理論的には解決可能である。しかし、モデルの数が増大傾向にある中で、内蔵記憶部を上記の記憶容量とすることは現実的ではない。また、各モデルの過去の使用頻度に基づき、負荷が平準化されるように各処理装置へのモデルの割り当てを調整することも考えられるが、各モデルの今後の使用頻度が過去と同様になるという保証はないので、上記の課題は解決できない。そして、前述した第１の技術〜第３の技術は、個々の処理装置におけるモデルの記憶容量を増加させることなく、処理装置の負荷を分散させ、負荷が許容量を超えてしまうことを抑制する、という課題を解決できるものではない。
【００１０】
一つの側面では、個々の処理装置におけるモデルの記憶容量を増加させることなく、処理装置の負荷を分散させることが目的である。
【課題を解決するための手段】
【００１１】
一つの実施態様では、発生した事象に関連する属性を含むイベント情報から、前記事象の状態を判別するための複数種の判定条件を含む、複数のモデルについて、互いに異なるモデル間の前記判定条件の共通部分を判定する。また、内蔵記憶部に記憶したモデルを適用して処理の対象とする前記イベント情報の事象の状態を判別する複数の処理装置のそれぞれに、同一の前記共通部分を含む複数のモデルのうちの異なるモデルを含む１以上のモデルを記憶させる。また、前記複数の処理装置のうち、前記同一の共通部分を含む複数のモデルのうち入力された前記イベント情報に含まれる前記属性に対応する第１のモデルを内蔵記憶部に格納する第１の処理装置を特定する。更に、前記第１のモデルに含まれる共通部分と同一の共通部分を含む第２のモデルを内蔵記憶部に格納する第２の処理装置を特定する。そして、前記事象の状態を判別する処理を、前記第１の処理装置の負荷に応じて、前記第１の処理装置と前記第２の処理装置の何れに行わせるかを決定し、決定した処理装置に、前記事象の状態を判別する処理を行わせる。
【発明の効果】
【００１２】
一つの側面として、個々の処理装置におけるモデルの記憶容量を増加させることなく、処理装置の負荷を分散できる、という効果を有する。
【図面の簡単な説明】
【００１３】
【図１】異常判別システムの概略構成を示すブロック図である。
【図２】イベント情報の一例を示す図表である。
【図３】モデルの一例を示す概念図である。
【図４】モデル情報の一例を示す図表である。
【図５】モデル属性情報の一例を示す図表である。
【図６】複数のモデルの共通部分の一例を示す概念図である。
【図７】モデル配置情報の一例を示す図表である。
【図８】配送用モデル配置情報の一例を示す図表である。
【図９】処理サーバ用モデル配置情報の一例を示す図表である。
【図１０】イベント情報配送サーバから異常判別処理サーバへ配送されるイベント情報の一例を示す図表である。
【図１１】各サーバとして機能するコンピュータの概略構成を示すブロック図である。
【図１２】モデル共通部分判定処理の一例を示すフローチャートである。
【図１３】モデル共通部分判定処理の一例を示すフローチャートである。
【図１４】モデル配送処理の一例を示すフローチャートである。
【図１５】イベント情報配送処理の一例を示すフローチャートである。
【図１６】異常判別処理の一例を示すフローチャートである。
【図１７】モデル共通部分判定処理によって判定されたモデルの共通部分の一例を示す概念図である。
【図１８】モデル配送処理による個々の異常判別処理サーバへのモデルの配置の一例を示す概念図である。
【図１９】イベント情報配送処理による異常判別処理サーバへのイベント情報の配送の一例を示す概念図である。
【図２０】異常判別処理により或る異常判別処理サーバが別の異常判別処理サーバへイベント情報を配送する場合の一例を示す概念図である。
【図２１】イベント情報配送サーバからイベント情報を配送する異常判別処理サーバを処理負荷に応じて切り替えることによる、異常判別処理サーバの処理負荷の推移の変化の一例を示す概念図である。
【図２２】複数のモデルの共通部分を１つの共通処理サーバに配置した場合を示す概念図である。
【図２３】モデルの配置の他の態様を示す概念図である。
【図２４】モデルの配置の他の態様を示す概念図である。
【発明を実施するための形態】
【００１４】
以下、図面を参照して開示の技術の実施形態の一例を詳細に説明する。なお、以下では、開示の技術における事象の状態の判別の一例として、ユーザの端末操作を表すイベント情報から、ユーザの端末操作の異常、例えばユーザの健康状態の異常や別のユーザによるなりすまし等を判別する態様を説明する。すなわち、前記イベント情報からユーザの端末操作の異常を判別するモデルを生成し、生成したモデルを適用してユーザの端末操作の異常を判別する態様を説明する。但し、開示の技術は以下で説明する態様に限定されるものではなく、判別対象の事象はユーザの端末操作以外であってもよいことは言うまでもない。
【００１５】
図１には本実施形態に係る異常判別システム１０が示されている。異常判別システム１０は、モデル学習サーバ１２、イベント情報配送サーバ３０及び複数の異常判別処理サーバ４２を含んでいる。モデル学習サーバ１２は、モデル学習部１４、モデル共通部分判定部１６、モデル配送部１８及び第１記憶部２０を含む。第１記憶部２０は、学習用イベント情報２２を予め記憶し、モデル学習部１４が生成したモデル情報２４及びモデル属性情報２６と、モデル共通部分判定部１６が生成したモデル配置情報２８を記憶する。
【００１６】
第１記憶部２０に学習用イベント情報２２として複数記憶されるイベント情報５２の一例を図２に示す。図２に示すイベント情報５２は、ユーザによって図示しない端末が操作させる毎に生成される情報であり、イベント情報５２自体を識別する「イベントＩＤ」、端末を操作したユーザを識別する「ユーザＩＤ」の各情報を含んでいる。また、イベント情報５２は、端末が操作された日にちが平日か休日かを表す「平日／休日」、端末が操作された時間帯が午前か午後かを表す「ＡＭ／ＰＭ」、ユーザが操作した端末を識別する「端末ＩＤ」の各情報を含んでいる。更に、イベント情報５２は、ユーザが端末を操作した場所を表す「場所」、イベント情報５２(ユーザによる端末操作)の属性情報である「属性ａ」「属性ｂ」「属性ｃ」「属性ｄ」の各情報を含んでいる。
【００１７】
なお、ユーザによる端末操作の属性情報の一例としては、例えば、キーボードの打鍵回数、打鍵されたキーの種類、マウス操作におけるクリック回数、指示座標の変化量及び変化方向などが挙げられるが、これらに限定されるものではない。なお、図２に示すイベント情報５２において、「イベントＩＤ」以外の情報は「イベント情報の属性」の一例である。
【００１８】
モデル学習部１４は、学習用イベント情報２２からイベント情報５２を１つずつ読み出し、読み出したイベント情報５２に基づき、ユーザの端末操作の異常を判別するためのモデル情報２４及びモデル属性情報２６を機械学習により生成する。一例として図３に示すように、モデル学習部１４が生成したモデル情報２４は、複数種の判定条件(図３ではその一部として条件1〜13を示す)を含み、各判定条件が木構造で連結され、ユーザの端末操作が正常か異常かを判別するためのモデルを表している。モデル情報２４が表すモデルに含まれる個々の判定条件は、イベント情報５２に含まれる何れか１つの属性情報を判定する判定条件であり、条件を満たした場合と満たさない場合とで異なる判定条件又は異常判別結果(「正常」又は「異常」)へ遷移する。本実施形態では、モデルに含まれる個々の判定条件を「ノード」と称する。モデル情報２４が表すモデルは、最上位のノードから「正常」又は「異常」の判別結果に到達する迄、各ノードの条件判定を順に行うことで、ユーザの端末操作が異常か否かを判別することができる。
【００１９】
図３に示すようなモデルを表すモデル情報２４は、一例として図４に示すように、モデルの各ノード毎に、個々のノードを識別する「ノードＩＤ」、個々のノードで判定対象とする属性を表す「判定属性名」の各情報を含んでいる。またモデル情報２４は、各ノード毎に、「条件を満たす場合の子ノードのノードＩＤ」、「条件を満たさない場合の子ノードのノードＩＤ」及び「共通部分保持モデルＩＤ境界リスト」の各情報も含んでいる。なお、「共通部分保持モデルＩＤ境界リスト」は、他のモデルと共通部分を有するモデルのうち、前記共通部分の境界に相当するノードに、前記共通部分を有する他のモデルのモデルＩＤを登録するためのリストであり、詳細は後述する。
【００２０】
一例として図４では、「ノードＩＤ」＝１の行が、「条件を満たす場合の子ノードのノードＩＤ」＝２、「条件を満たさない場合の子ノードのノードＩＤ」＝３になっている。これは、モデル内の「ノードＩＤ」＝１の判定が肯定された場合は「ノードＩＤ」＝２の判定を実行し、「ノードＩＤ」＝１の判定が否定された場合は「ノードＩＤ」＝３の判定を実行することを意味している。
【００２１】
また、図４では「ノードＩＤ」＝２の行が「条件を満たさない場合の子ノードのノードＩＤ」＝１になっている。本実施形態では「子ノードのノードＩＤ」＝１をユーザの端末操作＝「正常」に割り当てており、「ノードＩＤ」＝２の判定が否定された場合は、ユーザの端末操作は「正常」と判別される。また、図４では「ノードＩＤ」＝３の行が「条件を満たす場合の子ノードのノードＩＤ」＝０になっている。本実施形態では「子ノードのノードＩＤ」＝０をユーザの端末操作＝「異常」に割り当てており、「ノードＩＤ」＝３の判定が肯定された場合は、ユーザの端末操作は「異常」と判別される。
【００２２】
なお、本実施形態において、モデル学習部１４は、生成するモデルの各ノードのノードＩＤを、次の規則(1),(2)に従って付与する。
規則(1)：ノードＩＤ＝ｉの条件を満たす場合の子ノードのノードＩＤ＝２ｉ
規則(2)：ノードＩＤ＝ｉの条件を満たさない場合の子ノードのノードＩＤ＝２ｉ＋１
ノードＩＤを上記の規則(1),(2)に従って付与することで、後述する複数のモデルの共通部分に属する各ノードに同一のノードＩＤが付与される。但し、上記の規則(1),(2)は一例に過ぎず、他の規則を用いてもよい。
【００２３】
モデル学習部１４が生成するモデル属性情報２６は、モデル情報２４が表す全てのモデルの中から、入力されたイベント情報５２と属性情報の値が一致するモデルを抽出するための情報であり、個々のモデル毎の属性情報を含んでいる。モデル属性情報２６は、図５に示すように、個々のモデル毎に、個々のモデルを識別する「モデルＩＤ」、端末を操作したユーザを識別する「ユーザＩＤ」の各情報を含んでいる。また、モデル属性情報２６は、個々のモデル毎に、端末が操作された日にちが平日か休日かを表す「平日／休日」、端末が操作された時間帯が午前か午後かを表す「ＡＭ／ＰＭ」、ユーザが操作した端末を識別する「端末ＩＤ」の各情報を含んでいる。更に、モデル属性情報２６は、個々のモデル毎に、ユーザが端末を操作した場所を表す「場所」、個々のモデル情報が格納されたパス(ディレクトリ)を表す「モデルファイルパス」の各情報を含んでいる。
【００２４】
なお、モデル学習部１４が、イベント情報５２からモデル情報２４及びモデル属性情報２６を機械学習により生成する処理については公知の技術を利用可能であるので、本実施形態では詳細な説明を省略する。
【００２５】
モデル共通部分判定部１６は、モデル学習部１４が生成した複数のモデル情報２４が表す複数のモデルについて、各モデルに含まれる判定条件(ノード)の共通部分を判定する。一例として図６の左側に示すモデルと図６の右側に示すモデルとは、図６に破線で囲んで示す部分が同一であり、モデル共通部分判定部１６は、このような部分を複数のモデルの共通部分と判定する。また、モデル共通部分判定部１６は、複数のモデルの共通部分の判定結果に基づいて、各モデル情報を複数の異常判別処理サーバ４２のうちの何れに配置するかを決定し、モデル配置情報２８を生成する。
【００２６】
図７に示すように、モデル配置情報２８は、個々のモデル(モデル情報２４)毎に、「モデルＩＤ」、「共通部分保持モデルＩＤリスト」「独自部分配置サーバＩＤ」及び「共通部分配置サーバＩＤ」の各情報を含んでいる。
【００２７】
「共通部分保持モデルＩＤリスト」は、同一の共通部分を含むモデルＩＤのリストであり、例えば図７の１行目のリスト(1,2,3)は、モデルＩＤ＝1,2,3の各モデル(モデル情報２４)が同じ共通部分を含んでいることを表している。なお、共通部分を含まないモデル(モデル情報２４)については、「共通部分保持モデルＩＤリスト」に情報は設定されない。
【００２８】
「独自部分配置サーバＩＤ」は、モデル(モデル情報２４)のうち共通部分以外の非共通部分(本実施形態では「独自部分」と称する)を配置する異常判別処理サーバ４２のＩＤが設定される。例えば図７の４行目の「独自部分配置サーバＩＤ」＝3は、「モデルＩＤ」＝4のモデル(モデル情報２４)のうちの独自部分を、ＩＤ＝3の異常判別処理サーバ４２に配置することを意味している。
【００２９】
「共通部分配置サーバＩＤ」は、モデル(モデル情報２４)のうちの共通部分が配置される異常判別処理サーバ４２のＩＤが設定される。例えば図７の５行目の「共通部分配置サーバＩＤ」＝(1,3,4,5)は、「モデルＩＤ」＝5のモデル(モデル情報２４)のうちの共通部分が、ＩＤ＝1,3,4,5の異常判別処理サーバ４２に各々配置されることを意味している。なお、共通部分を含まないモデル(モデル情報２４)については「共通部分配置サーバＩＤ」に情報は設定されない。
【００３０】
モデル配送部１８は、モデル共通部分判定部１６によって生成されて第１記憶部２０に記憶されたモデル配置情報２８に基づいて、個々のモデル情報２４を配置先の異常判別処理サーバ４２へ各々配送する。また、モデル配送部１８は、モデル属性情報２６と、モデル配置情報２８のうちの「共通部分保持モデルＩＤリスト」を除いた情報(後述する配送用モデル配置情報４０)をイベント情報配送サーバ３０へ配送する。また、モデル配送部１８は、モデル配置情報２８を個々の異常判別処理サーバ４２に応じて編集し、編集後のモデル配置情報(後述する処理サーバ用モデル配置情報５０)を複数の異常判別処理サーバ４２のうちの対応する異常判別処理サーバ４２へ各々配送する。
【００３１】
イベント情報配送サーバ３０は、処理負荷取得部３２、イベント情報配送制御部３４及び第２記憶部３６を含む。第２記憶部３６は、処理負荷情報３８、モデル学習サーバ１２のモデル配送部１８から配送されたモデル属性情報２６及び配送用モデル配置情報４０(図８参照)を記憶する。処理負荷取得部３２は、個々の異常判別処理サーバ４２の処理負荷を表す情報を個々の異常判別処理サーバ４２から定期的に取得し、取得した処理負荷を処理負荷情報３８として第２記憶部３６に記憶させる。
【００３２】
イベント情報配送サーバ３０は、ユーザによって端末操作が行われる毎に生成されたイベント情報５２(図２参照)が入力される。イベント情報配送制御部３４は、イベント情報５２が入力される度に、入力されたイベント情報５２の属性情報(本実施形態では「ユーザＩＤ」「平日／休日」、「ＡＭ／ＰＭ」「端末ＩＤ」及び「場所」)をモデル属性情報２６と照合する。そして、イベント情報配送制御部３４は、照合結果に基づいて、入力されたイベント情報５２に対応するモデル(異常判別に適用するモデル)を判定し、判定したモデルのモデルＩＤをイベント情報５２に付加する(図１０も参照)。また、イベント情報配送制御部３４は、判定したモデルの独自部分が配置された異常判別処理サーバ４２のサーバＩＤを、「独自部分配置サーバＩＤ」としてイベント情報５２に付加する(図１０も参照)。
【００３３】
また、イベント情報配送制御部３４は、判定したモデルのモデルＩＤをキーにして配送用モデル配置情報４０を検索・参照し、判定したモデルが共通部分を含まない場合、判定したモデルが配置された異常判別処理サーバ４２へイベント情報５２を配送する。また、イベント情報配送制御部３４は、判定したモデルが共通部分を含む場合、判定したモデルの独自部分が配置された異常判別処理サーバ４２の処理負荷が許容量以下であれば、前記独自部分が配置された異常判別処理サーバ４２へイベント情報５２を配送する。一方、前記独自部分が配置された異常判別処理サーバ４２の処理負荷が許容量を越えている場合は、判定したモデルの共通部分が配置された複数の異常判別処理サーバ４２のうち、処理負荷が最も小さい異常判別処理サーバ４２へイベント情報５２を配送する。
【００３４】
複数の異常判別処理サーバ４２は同一の構成である。異常判別処理サーバ４２は、異常判別処理部４４、イベント情報転送部４６及び第３記憶部４８を含み、第３記憶部４８は、モデル学習サーバ１２のモデル配送部１８から配送されたモデル情報２４及び処理サーバ用モデル配置情報５０(図９参照)を記憶する。異常判別処理部４４は、イベント情報配送サーバ３０又は他の異常判別処理サーバ４２からイベント情報５２が配送されると、適用するモデルのモデルＩＤを判定し、判定したモデルＩＤのモデル情報２４を適用して、ユーザによる端末操作の異常を判別する。
【００３５】
また、適用するモデルが共通部分を含み、適用するモデルの共通部分だけでは異常の判別が完了せず、かつイベント情報５２に設定された「モデルＩＤ」のモデルの独自部分が自装置に配置されていない場合、イベント情報転送部４６は以下の処理を行う。すなわち、イベント情報転送部４６は、イベント情報５２に設定された「モデルＩＤ」のモデルの独自部分が配置された異常判別処理サーバ４２へイベント情報を転送する。なお、異常判別処理サーバ４２は開示の技術における処理装置の一例である。
【００３６】
モデル学習サーバ１２は、例えば図１１に示すコンピュータシステム６０の第１コンピュータ６２で実現することができる。第１コンピュータ６２はＣＰＵ６４、一時記憶領域としてのメモリ６６及び不揮発性の記憶部６８を含む。また、第１コンピュータ６２は、入出力装置を含む入出力部７０、記録媒体７２に対するデータの読み出し及び書き込みを行う読出書込装置(Ｒ／Ｗ)７４、及び、ネットワーク７８に接続される通信Ｉ／Ｆ７６を含む。ＣＰＵ６４、メモリ６６、記憶部６８、入出力部７０、Ｒ／Ｗ７４及び通信Ｉ／Ｆ７６は、バス７９を介して互いに接続されている。
【００３７】
記憶部６８はＨＤＤ(Hard Disk Drive)、ＳＳＤ(Solid State Drive)、フラッシュメモリ等によって実現される。記憶部６８には、第１コンピュータ６２をモデル学習サーバ１２として機能させるためのモデル学習プログラム８０が記憶されている。ＣＰＵ６４は、モデル学習プログラム８０を記憶部６８から読み出してメモリ６６に展開し、モデル学習プログラム８０が有するプロセスを順次実行する。
【００３８】
モデル学習プログラム８０は、モデル学習プロセス８２、モデル共通部分判定プロセス８４及びモデル配送プロセス８６を含む。ＣＰＵ６４は、モデル学習プロセス８２を実行することで、図１に示すモデル学習部１４として動作する。また、ＣＰＵ６４は、モデル共通部分判定プロセス８４を実行することで、図１に示すモデル共通部分判定部１６として動作する。また、ＣＰＵ６４は、モデル配送プロセス８６を実行することで、図１に示すモデル配送部１８として動作する。これにより、モデル学習プログラム８０を実行した第１コンピュータ６２が、モデル学習サーバ１２として機能することになる。
【００３９】
また、記憶部６８には学習用イベント情報記憶領域８８、モデル情報記憶領域９０、モデル属性情報記憶領域９２及びモデル配置情報記憶領域９４が設けられており、学習用イベント情報記憶領域８８には学習用イベント情報２２が予め記憶される。また、モデル情報記憶領域９０にはモデル情報２４が記憶され、モデル属性情報記憶領域９２にはモデル属性情報２６が記憶され、モデル配置情報記憶領域９４にはモデル配置情報２８が記憶される。これにより、記憶部６８は図１に示す第１記憶部２０として機能する。
【００４０】
イベント情報配送サーバ３０は、例えば図１１に示すコンピュータシステム６０の第２コンピュータ９６で実現することができる。第２コンピュータ９６はＣＰＵ９８、メモリ１００及び不揮発性の記憶部１０２を含む。また、第２コンピュータ９６は、入出力装置を含む入出力部１０４、記録媒体１０６に対するデータの読み出し及び書き込みを行うＲ／Ｗ１０８及びネットワーク７８に接続される通信Ｉ／Ｆ１１０を含む。ＣＰＵ９８、メモリ１００、記憶部１０２、入出力部１０４、Ｒ／Ｗ１０８及び通信Ｉ／Ｆ１１０は、バス１１１を介して互いに接続されている。
【００４１】
記憶部１０２はＨＤＤ、ＳＳＤ、フラッシュメモリ等によって実現される。記憶部１０２には、第２コンピュータ９６をイベント情報配送サーバ３０として機能させるためのイベント情報配送プログラム１１２が記憶されている。ＣＰＵ９８は、イベント情報配送プログラム１１２を記憶部１０２から読み出してメモリ１００に展開し、イベント情報配送プログラム１１２が有するプロセスを順次実行する。
【００４２】
イベント情報配送プログラム１１２は、処理負荷取得プロセス１１４及びイベント情報配送制御プロセス１１６を含む。ＣＰＵ９８は、処理負荷取得プロセス１１４を実行することで、図１に示す処理負荷取得部３２として動作する。また、ＣＰＵ９８は、イベント情報配送制御プロセス１１６を実行することで、図１に示すイベント情報配送制御部３４として動作する。これにより、イベント情報配送プログラム１１２を実行した第２コンピュータ９６が、イベント情報配送サーバ３０として機能することになる。
【００４３】
また、記憶部１０２には処理負荷情報記憶領域１１８、モデル属性情報記憶領域１２０及び配送用モデル配置情報記憶領域１２２が設けられており、処理負荷情報記憶領域１１８には処理負荷情報３８が記憶される。また、モデル属性情報記憶領域１２０にはモデル属性情報２６が記憶され、配送用モデル配置情報記憶領域１２２には配送用モデル配置情報４０が記憶される。これにより、記憶部１０２は図１に示す第２記憶部３６として機能する。
【００４４】
異常判別処理サーバ４２は、例えば図１１に示すコンピュータシステム６０に複数設けられた第３コンピュータ１２４の各々で実現することができる。複数の第３コンピュータ１２４は同一の構成である。第３コンピュータ１２４はＣＰＵ１２６、メモリ１２８及び不揮発性の記憶部１３０を含む。また、第３コンピュータ１２４は、入出力装置を含む入出力部１３２、記録媒体１３４に対するデータの読み出し及び書き込みを行うＲ／Ｗ１３６及びネットワーク７８に接続される通信Ｉ／Ｆ１３８を含む。ＣＰＵ１２６、メモリ１２８、記憶部１３０、入出力部１３２、Ｒ／Ｗ１３６及び通信Ｉ／Ｆ１３８は、バス１４０を介して互いに接続されている。
【００４５】
記憶部１３０はＨＤＤ、ＳＳＤ、フラッシュメモリ等によって実現される。記憶部１３０には、第３コンピュータ１２４を異常判別処理サーバ４２として機能させるための異常判別処理プログラム１４２が記憶されている。ＣＰＵ１２６は、異常判別処理プログラム１４２を記憶部１３０から読み出してメモリ１２８に展開し、異常判別処理プログラム１４２が有するプロセスを順次実行する。
【００４６】
異常判別処理プログラム１４２は、異常判別処理プロセス１４４及びイベント情報転送プロセス１４６を含む。ＣＰＵ１２６は、異常判別処理プロセス１４４を実行することで、図１に示す異常判別処理部４４として動作する。また、ＣＰＵ１２６は、イベント情報転送プロセス１４６を実行することで、図１に示すイベント情報転送部４６として動作する。これにより、異常判別処理プログラム１４２を実行した第３コンピュータ１２４が、異常判別処理サーバ４２として機能することになる。
【００４７】
また、記憶部１３０にはモデル情報記憶領域９０及び処理サーバ用モデル配置情報記憶領域９４が設けられ、モデル情報記憶領域９０にはモデル情報２４が記憶され、処理サーバ用モデル配置情報記憶領域９４には処理サーバ用モデル配置情報５０が記憶される。これにより、記憶部１３０は図１に示す第３記憶部４８として機能する。
【００４８】
なお、モデル学習プログラム８０、イベント情報配送プログラム１１２及び異常判別処理プログラム１４２は、開示の技術に係る負荷分散制御プログラムの一例である。また、モデル学習サーバ１２、イベント情報配送サーバ３０及び複数の異常判別処理サーバ４２は、開示の技術に係る負荷分散制御装置の一例である。
【００４９】
次に本実施形態の作用を説明する。第１コンピュータ６２の入出力部７０を介してモデルの学習が指示されると、第１コンピュータ６２のＣＰＵ６４は、記憶部６８からモデル学習プログラム８０を読み出して実行する。
【００５０】
ここで、モデル学習プログラム８０のうちのモデル学習プロセス８２がＣＰＵ６４によって実行されることで、モデル学習部１４はモデルを学習する処理を行う。すなわち、モデル学習部１４は、学習用イベント情報２２からイベント情報５２を１つずつ読み出し、読み出したイベント情報５２に基づき、ユーザの端末操作の異常を判別するためのモデル情報２４及びモデル属性情報２６を機械学習により生成する。そしてモデル学習部１４は、生成したモデル情報２４及びモデル属性情報２６を第１記憶部２０に記憶させる。
【００５１】
第１記憶部２０にモデル情報２４及びモデル属性情報２６が記憶されると、モデル学習プログラム８０のうちのモデル共通部分判定プロセス８４がＣＰＵ６４によって実行される。これにより、モデル共通部分判定部１６は図１２,１３に示すモデル共通部分判定処理を行う。以下、モデル共通部分判定処理を説明する。
【００５２】
モデル共通部分判定処理のステップ２００において、モデル共通部分判定部１６は、第１記憶部２０に記憶されている全てのモデル情報２４から一対の２つのモデル情報２４を任意に取り出したときの、モデルＩＤの組を全ての組合せについて生成する。そしてモデル共通部分判定部１６は、生成したモデルＩＤの組の全ての組合せを「共通部分判定モデルの組」のリストに登録する。
【００５３】
次のステップ２０１において、モデル共通部分判定部１６は、「共通部分判定モデルの組」のリストから、共通部分を未判定のモデルＩＤの１つの組を、共通部分判定対象のモデルＩＤの組として選択する。ステップ２０２において、モデル共通部分判定部１６は、第１記憶部２０に記憶されているモデル情報２４から、共通部分判定対象のモデルＩＤの組に含まれる各々のモデルＩＤが付与されたモデル情報２４を検索する。またモデル共通部分判定部１６は、該当する２つのモデル情報２４を第１記憶部２０から読み込む。そしてモデル共通部分判定部１６は、共通部分判定対象のモデルＩＤの組のうち、モデル配置情報２８(図７参照)に未登録のモデルＩＤをモデル配置情報２８に登録する。ステップ２０３において、モデル共通部分判定部１６は、判定対象のノードを指し示す「判定ノードＩＤ」に１を設定する。
【００５４】
ステップ２０４において、モデル共通部分判定部１６は、ステップ２０２で読み込んだ２つのモデル情報２４のうち、ノードＩＤが「判定ノードＩＤ」と一致するノードの情報を比較する。そして、比較したノードの情報に含まれる「判定属性名」「条件」「条件を満たす場合の子ノードのＩＤ」及び「条件を満たさない場合の子ノードのＩＤ」(図４も参照)が全て一致しているか否か判定する。
【００５５】
ステップ２０４の判定が否定された場合はステップ２０９へ移行し、ステップ２０９において、モデル共通部分判定部１６は、「判定ノードＩＤ」が１か否か判定する。ステップ２０４の判定が否定され、かつステップ２０９の判定が肯定された場合、現在の共通部分判定対象のモデルＩＤの組は、ノードＩＤ＝１のノードからモデル情報２４が相違していると判断できる。このため、ステップ２０９の判定が肯定された場合はステップ２１６へ移行する。
【００５６】
ステップ２１６において、モデル共通部分判定部１６は、モデル配置情報２８のうち、共通部分判定対象の個々のモデルＩＤに対応する２つの行のうちの「共通部分保持モデルＩＤリスト」に、各行に対応するモデル(自モデル)のモデルＩＤを各々登録する。そしてステップ２１８へ移行する。
【００５７】
一方、ステップ２０４の判定が肯定された場合、共通部分判定対象のモデルＩＤの組は、少なくとも１つのノードが一致していると判断できるので、ステップ２０４の判定が肯定された場合はステップ２０５へ移行する。ステップ２０５において、モデル共通部分判定部１６は、ステップ２０２で読み込んだモデル情報２４のうち「条件を満たす場合の子ノードのＩＤ」が、端末操作＝「正常」を意味する「１」、又は、端末操作＝「異常」を意味する「０」か否か判定する。
【００５８】
ステップ２０５の判定が否定された場合はステップ２０６へ移行する。ステップ２０６において、モデル共通部分判定部１６は、モデル情報２４に含まれるノードＩＤが「判定ノードＩＤ」と一致するノードの情報のうち「条件を満たす場合の子ノードのＩＤ」に設定されているノードＩＤを「判定ノードＩＤ」に設定する。ステップ２０６の処理を行うとステップ２０４に戻る。
【００５９】
また、ステップ２０５の判定が肯定された場合はステップ２０７へ移行する。ステップ２０７において、モデル共通部分判定部１６は、ステップ２０２で読み込んだモデル情報２４のうち「条件を満たさない場合の子ノードのＩＤ」が、端末操作＝「正常」を意味する「１」、又は、端末操作＝「異常」を意味する「０」か否か判定する。
【００６０】
ステップ２０７の判定が否定された場合はステップ２０８へ移行する。ステップ２０８において、モデル共通部分判定部１６は、モデル情報２４に含まれるノードＩＤが「判定ノードＩＤ」と一致するノードの情報のうち「条件を満たさない場合の子ノードのＩＤ」に設定されているノードＩＤを「判定ノードＩＤ」に設定する。ステップ２０８の処理を行うとステップ２０４に戻る。
【００６１】
従って、モデル共通部分判定部１６は、ステップ２０４が肯定されている間、ステップ２０４〜ステップ２０８を繰り返す。これにより、共通部分判定対象の２つのモデル情報２４に対し、まずは、各ノードの条件を満たす場合のルートを辿りながら、各ノードが一致しているか否かが照合される。
【００６２】
また、ステップ２０４の判定が１回以上肯定された後に、ステップ２０４の判定が否定された場合は、「判定ノードＩＤ」が１よりも大きくなることで、ステップ２０９の判定が否定され、ステップ２１０へ移行する。ステップ２１０において、モデル共通部分判定部１６は、共通部分判定対象の２つのモデル情報２４のうち、現在の「判定ノードＩＤ」の行のうちの「共通部分保持モデルＩＤ境界リスト」に、お互いのモデルＩＤを登録し、ステップ２１１へ移行する。
【００６３】
例えば共通部分判定対象の２つのモデルＩＤが３,７、「判定ノードＩＤ」＝５であるとすると、モデルＩＤ＝３のモデル情報２４のうち、「判定ノードＩＤ」＝５の行のうちの「共通部分保持モデルＩＤ境界リスト」にモデルＩＤ＝７を登録する。また、モデルＩＤ＝７のモデル情報２４のうち、「判定ノードＩＤ」＝５の行のうちの「共通部分保持モデルＩＤ境界リスト」にモデルＩＤ＝３を登録する。この例で登録する情報は、モデルＩＤ＝３,７のモデル情報２４のうち、「判定ノードＩＤ」＝１から「判定ノードＩＤ」＝５に至るルート上の各ノードが各々一致している、すなわち共通部分であることを表している。
【００６４】
ステップ２１１において、モデル共通部分判定部１６は、「判定ノードＩＤ」の親ノードが無いか否か判定する。ステップ２１１の判定が否定された場合はステップ２１２へ移行する。
【００６５】
ステップ２１２において、モデル共通部分判定部１６は、「判定ノードＩＤ」の親ノードの「条件を満たさない場合の子ノードのノードＩＤ」に設定されたノードＩＤが、「判定ノードＩＤ」と不一致で、かつ「０」でも「１」でもないか否か判定する。ステップ２１２の判定が肯定されるとステップ２１４へ移行する。ステップ２１４において、モデル共通部分判定部１６は、「判定ノードＩＤ」の親ノードの「条件を満たさない場合の子ノードのノードＩＤ」に設定されたノードＩＤを「判定ノードＩＤ」に設定し、ステップ２０４に戻る。
【００６６】
この場合、現在迄に把握されている共通部分の末端のノードから「判定ノードＩＤ」を１つ戻し、１つ戻した「判定ノードＩＤ」の「条件を満たさない場合の子ノード」から延びるルートに共通部分が有るか否かが確認される。
【００６７】
また、ステップ２０４の判定が否定されたときに、「判定ノードＩＤ」が１よりも大きい場合は、ステップ２０９の判定が否定されることで、ステップ２１２の判定が再度行われる。ここで、ステップ２１２の判定が否定された場合はステップ２１３へ移行し、ステップ２１３において、モデル共通部分判定部１６は、「判定ノードＩＤ」の親ノードのノードＩＤを「判定ノードＩＤ」に設定し、ステップ２１１に戻る。ステップ２１１,２１２,２１３はステップ２１１又はステップ２１２の判定が肯定される迄繰り返され、ステップ２１２の判定が肯定されるとステップ２１４で「判定ノードＩＤ」が更新される。これにより、共通部分判定対象の２つのモデルが、一例として図６の左右に示すモデルであったとすると、図６に破線で囲んで示す全範囲が共通部分として抽出されることになる。
【００６８】
共通部分判定対象の２つのモデルの共通部分の判定が完了すると、ステップ２１１の判定が肯定され、ステップ２１５へ移行する。  ステップ２１５において、モデル共通部分判定部１６は、モデル配置情報２８のうち、共通部分判定対象の個々のモデルＩＤに対応する２つの行のうちの「共通部分保持モデルＩＤリスト」に、判定対象の２つのモデルＩＤを各々登録する。
【００６９】
例えば、前述の例では、モデル配置情報２８のうちモデルＩＤ＝３の行のうちの「共通部分保持モデルＩＤリスト」にモデルＩＤ＝３,７を登録し、モデルＩＤ＝７の内の「共通部分保持モデルＩＤリスト」にモデルＩＤ＝３,７を登録する。従って、モデル配置情報２８の各行のうちの「共通部分保持モデルＩＤリスト」には、各行に対応するモデルと共通部分を有する全てのモデルのモデルＩＤが登録される。
【００７０】
ステップ２１５の処理を行うとステップ２１８へ移行する。ステップ２１８において、モデル共通部分判定部１６は、「共通部分判定モデルの組」のリストに登録したモデルＩＤの組の中に、共通部分を未判定のモデルＩＤの組が有るか否か判定する。ステップ２１８の判定が肯定された場合はステップ２０１へ戻り、ステップ２１８の判定が否定される迄、ステップ２０１〜ステップ２１８を繰り返す。
【００７１】
これにより、「共通部分判定モデルの組」のリストに登録した全てのモデルＩＤの組について、共通部分の判定が各々行われる。そして、上述した処理の結果、図１７に一例を示すように、複数のモデルの共通部分が判定・抽出される。図１７は、モデルＡ〜Ｈの８個のモデルのうち、モデルＡ〜Ｃの３個のモデルの共通部分が抽出されると共に、モデルＥ〜Ｈの４個のモデルの共通部分が抽出された例を示す。
【００７２】
全てのモデルＩＤの組について共通部分の判定が完了すると、ステップ２１８の判定が否定され、図１３に示すステップ２２８へ移行する。ステップ２２８において、モデル共通部分判定部１６は、モデル情報２４を配置する異常判別処理サーバ４２を指し示す「配置サーバＩＤ」に１を設定する。
【００７３】
次のステップ２３０において、モデル共通部分判定部１６は、モデル配置情報２８にモデルＩＤが登録されたモデルの中に、モデル配置情報２８の「独自部分配置サーバＩＤ」及び「共通部分配置サーバＩＤ」が未設定のモデルが有るか否か判定する。ステップ２３０の判定が最初に実行される時点では、「独自部分配置サーバＩＤ」及び「共通部分配置サーバＩＤ」は全てのモデルが未設定であるので、ステップ２３０の判定が肯定されてステップ２３２へ移行する。
【００７４】
ステップ２３２において、モデル共通部分判定部１６は、モデル配置情報２８の「独自部分配置サーバＩＤ」及び「共通部分配置サーバＩＤ」が未設定のモデルを１つ選択し、選択したモデルのモデルＩＤを「配置判定対象モデルＩＤ」に設定する。次のステップ２３４において、モデル共通部分判定部１６は、モデル配置情報２８のうちモデルＩＤが「配置判定対象モデルＩＤ」と一致する行の情報を、配置判定対象モデル情報としてモデル配置情報２８から抽出する。
【００７５】
ステップ２３６において、モデル共通部分判定部１６は、配置判定対象モデル情報の「共通部分保持モデルＩＤリスト」に設定されているモデルＩＤから、モデル配置情報２８において「独自部分配置サーバＩＤ」が未設定のモデルＩＤを１つ選択する。そしてモデル共通部分判定部１６は、モデル配置情報２８のうちモデルＩＤが選択したモデルＩＤに一致する行の「独自部分配置サーバＩＤ」に「配置サーバＩＤ」を設定する。またステップ２３８において、モデル共通部分判定部１６は、モデル配置情報２８のうちモデルＩＤが選択したモデルＩＤに一致する行の「共通部分配置サーバＩＤ」に「配置サーバＩＤ」を追加する。
【００７６】
次のステップ２４０において、モデル共通部分判定部１６は、配置判定対象モデル情報の「共通部分保持モデルＩＤリスト」に設定されているモデルＩＤの中に、モデル配置情報２８の「独自部分配置サーバＩＤ」が未設定のモデルＩＤが有るか否か判定する。ステップ２４０の判定が肯定された場合はステップ２４２へ移行し、ステップ２４２において、モデル共通部分判定部１６は、「配置サーバＩＤ」が異常判別処理サーバ４２の台数に達したか否か判定する。
【００７７】
ステップ２４２の判定が否定された場合はステップ２４４へ移行し、ステップ２４４において、モデル共通部分判定部１６は、「配置サーバＩＤ」を１だけインクリメントし、ステップ２３６へ戻る。また、ステップ２４２の判定が肯定された場合はステップ２４６へ移行し、ステップ２４６において、モデル共通部分判定部１６は、「配置サーバＩＤ」に１を設定し、ステップ２３６へ戻る。
【００７８】
これにより、ステップ２４０の判定が否定される迄、ステップ２３６〜ステップ２４６が繰り返される。従って、配置判定対象モデル情報の「共通部分保持モデルＩＤリスト」にモデルＩＤが設定され、モデル配置情報２８の「独自部分配置サーバＩＤ」が未設定の全モデルに対し、「独自部分配置サーバＩＤ」及び「共通部分配置サーバＩＤ」が各々設定される。
【００７９】
また、「配置サーバＩＤ」は１ずつインクリメントされるので、配置判定対象モデル情報の「共通部分保持モデルＩＤリスト」にモデルＩＤが設定されているモデル、すなわち同一の共通部分を有するモデルは、配置サーバＩＤが互いに相違される。但し、同一の共通部分を有するモデルの数＞異常判別処理サーバ４２の台数であれば、一部のモデルの配置サーバＩＤが重複する可能性はあるが、配置サーバＩＤがなるべく相違するように設定されることになる。
【００８０】
ステップ２４０の判定が否定された場合はステップ２４８へ移行する。ステップ２４８において、モデル共通部分判定部１６は、配置判定対象モデル情報の「共通部分配置サーバＩＤ」に設定されているサーバＩＤを抽出する。そしてモデル共通部分判定部１６は、モデル配置情報２８のうち、配置判定対象モデル情報の「共通部分保持モデルＩＤリスト」に設定されたモデルＩＤとモデルＩＤが一致する行の「共通部分配置サーバＩＤ」に、抽出したサーバＩＤを追加する。
【００８１】
次のステップ２５０において、モデル共通部分判定部１６は、「配置サーバＩＤ」が異常判別処理サーバ４２の台数に達したか否か判定する。ステップ２５０の判定が否定された場合はステップ２５２へ移行し、ステップ２５２において、モデル共通部分判定部１６は、「配置サーバＩＤ」を１だけインクリメントし、ステップ２３０へ戻る。また、ステップ２５０の判定が肯定された場合はステップ２５４へ移行し、ステップ２５４において、モデル共通部分判定部１６は、「配置サーバＩＤ」に１を設定し、ステップ２３０へ戻る。
【００８２】
これにより、ステップ２３０の判定が否定される迄、ステップ２３０〜ステップ２５４が繰り返され、モデル配置情報２８にモデルＩＤが登録された全てのモデルに対して「独自部分配置サーバＩＤ」及び「共通部分配置サーバＩＤ」が設定される。ステップ２３０の判定が否定されると、モデル共通部分判定処理を終了する。
【００８３】
モデル共通部分判定部１６がモデル共通部分判定処理を終了すると、モデル学習プログラム８０のうちのモデル配送プロセス８６がＣＰＵ６４によって実行されることで、モデル配送部１８は図１４に示すモデル配送処理を行う。
【００８４】
モデル配送処理のステップ２７０において、モデル配送部１８は、モデル配置情報２８にモデルＩＤが登録された全てのモデル情報２４を、モデル配置情報２８の「独自部分配置サーバＩＤ」に設定されたサーバＩＤの異常判別処理サーバ４２へ各々配送する。個々の異常判別処理サーバ４２は、モデル学習サーバ１２からモデル配送部１８によって配送されたモデル情報２４を第３記憶部４８に記憶させる。図１８には、図１７に示したモデルのモデル情報２４の一部が３台の異常判別処理サーバ４２に配置された例を示す。
【００８５】
次のステップ２７２において、モデル配送部１８は、モデル配置情報２８のうちの「共通部分保持モデルＩＤリスト」以外の情報と、モデル属性情報２６と、をイベント情報配送サーバ３０へ配送する。イベント情報配送サーバ３０は、モデル学習サーバ１２からモデル配送部１８によって配送された上記の情報を、第２記憶部３６に配送用モデル配置情報４０(図８も参照)及びモデル属性情報２６として各々記憶させる。
【００８６】
ステップ２７４において、モデル配送部１８は、モデル配置情報の配送対象の異常判別処理サーバ４２を指し示す「配送先サーバＩＤ」に１を設定する。ステップ２７６において、モデル配送部１８は、「配送先サーバＩＤ」が異常判別処理サーバ４２の台数以下か否か判定する。ステップ２７６の判定が肯定された場合はステップ２７８へ移行し、ステップ２７８において、モデル配送部１８は、モデル配置情報２８のうち「独自部分配置サーバＩＤ」が「配送先サーバＩＤ」に一致する行を、モデル配置情報２８から全て抽出する。
【００８７】
次のステップ２８０において、モデル配送部１８は、ステップ２７８でモデル配置情報２８から抽出した行のうちの１つの行を特定モデル配置情報として取り出す。ステップ２８２において、モデル配送部１８は、ステップ２８０で取り出した特定モデル配置情報のうちの「共通部分保持モデルＩＤリスト」に設定されているモデルＩＤの中から、モデルＩＤを１つ取り出す。ステップ２８４において、モデル配送部１８は、モデル配置情報２８のうち「モデルＩＤ」がステップ２８２で取り出したモデルＩＤと一致する特定の行の「独自部分配置サーバＩＤ」に設定されたサーバＩＤを取り出す。
【００８８】
ステップ２８６において、モデル配送部１８は、まず処理サーバ用モデル配置情報５０の１行分の情報を記憶するための領域をメモリ１２８上に確保する。図９に示すように、処理サーバ用モデル配置情報５０は、「モデルＩＤ」、「独自部分配置サーバＩＤ」及び「共通部分モデルＩＤ」の各情報項目を含んでいる。モデル配送部１８は、メモリ１２８上に確保した処理サーバ用モデル配置情報５０の１行分の領域のうちの「モデルＩＤ」に、ステップ２８２で取り出したモデルＩＤを設定する。またモデル配送部１８は、１行分の領域のうちの「独自部分配置サーバＩＤ」に、ステップ２８４で取り出した「独自部分配置サーバＩＤ」を設定し、「共通部分モデルＩＤ」に、ステップ２８０で取り出した行の「モデルＩＤ」を設定する。
【００８９】
ステップ２８８において、モデル配送部１８は、ステップ２８０で取り出した特定モデル配置情報のうちの「共通部分保持モデルＩＤリスト」に設定されている全てのモデルＩＤを取り出したか否か判定する。ステップ２８８の判定が否定された場合はステップ２８２へ戻り、ステップ２８８の判定が肯定される迄、ステップ２８２〜ステップ２８８を繰り返す。これにより、特定モデル配置情報のうちの「共通部分保持モデルＩＤリスト」にモデルＩＤが設定されている全てのモデルについて、処理サーバ用モデル配置情報５０の対応する行が設けられ、各情報が設定される。
【００９０】
ステップ２８８の判定が肯定された場合はステップ２９０へ移行し、ステップ２９０において、モデル配送部１８は、ステップ２７８でモデル配置情報２８から抽出した全ての行を特定モデル配置情報として取り出したか否か判定する。ステップ２９０の判定が否定された場合はステップ２８０へ戻り、ステップ２９０の判定が肯定される迄、ステップ２８０〜ステップ２９０を繰り返す。従って、モデル配置情報２８のうち「独自部分配置サーバＩＤ」が「配送先サーバＩＤ」に一致する各行について、「共通部分保持モデルＩＤリスト」内の全モデルに対応する行が処理サーバ用モデル配置情報５０に設けられ、各情報が設定される。これにより、サーバＩＤが「配送先サーバＩＤ」に一致する異常判別処理サーバ４２へ配送する処理サーバ用モデル配置情報５０が生成される。
【００９１】
ステップ２９０の判定が肯定されるとステップ２９２へ移行する。ステップ２９２において、モデル配送部１８は、メモリ１２８上に記憶している処理サーバ用モデル配置情報５０を、サーバＩＤが「配送先サーバＩＤ」に一致する異常判別処理サーバ４２へ配送する。サーバＩＤが「配送先サーバＩＤ」に一致する異常判別処理サーバ４２は、モデル学習サーバ１２からモデル配送部１８によって配送された処理サーバ用モデル配置情報５０を第３記憶部４８に記憶させる。
【００９２】
次のステップ２９４において、モデル配送部１８は、「配送先サーバＩＤ」を１だけインクリメントし、ステップ２７６に戻る。これにより、ステップ２７６の判定が肯定される迄、ステップ２７６〜ステップ２９４が繰り返され、全ての異常判別処理サーバ４２に対して、対応する処理サーバ用モデル配置情報５０の生成及び配送が行われる。そして、ステップ２７６の判定が否定されるとモデル配送処理を終了する。
【００９３】
また、第２コンピュータ９６の電源が投入されると、第２コンピュータ９６のＣＰＵ９８は、記憶部１０２からイベント情報配送プログラム１１２を読み出して実行する。ここで、イベント情報配送プログラム１１２のうちの処理負荷取得プロセス１１４がＣＰＵ９８によって実行されることで、イベント情報配送サーバ３０の処理負荷取得部３２は処理負荷取得処理を行う。すなわち、処理負荷取得部３２は、個々の異常判別処理サーバ４２から各々定期的に処理負荷を取得し、第２記憶部３６に記憶されている処理負荷情報３８を更新する処理を行う。
【００９４】
また、モデル学習サーバ１２で前述のモデル共通部分判定処理及びモデル配送処理が行われると、イベント情報配送サーバ３０の第２記憶部３６には処理負荷情報３８、モデル属性情報２６及び配送用モデル配置情報４０が記憶されている状態になる。この状態で、イベント情報配送サーバ３０にイベント情報５２が入力されると、イベント情報配送プログラム１１２のうちのイベント情報配送制御プロセス１１６がＣＰＵ９８によって実行される。これにより、イベント情報配送制御部３４は図１５に示すイベント情報配送制御処理を行う。
【００９５】
イベント情報配送制御処理のステップ３００において、イベント情報配送制御部３４は、モデル属性情報２６から、入力されたイベント情報５２と属性情報の値が一致するモデルＩＤを検索する。本実施形態において、属性情報には「ユーザＩＤ」「平日／休日」「ＡＭ／ＰＭ」「端末ＩＤ」「場所」の各情報が含まれる。そしてイベント情報配送制御部３４は、イベント情報配送サーバ３０に入力されたイベント情報５２に、モデル属性情報２６の検索によって抽出したモデルＩＤを「モデルＩＤ」(図１０参照)として付加する。
【００９６】
次のステップ３０２において、イベント情報配送制御部３４は、配送用モデル配置情報４０から、「モデルＩＤ」イベント情報５２の「モデルＩＤ」と一致する行の「独自部分配置サーバＩＤ」に設定されたサーバＩＤを取得する。そしてイベント情報配送制御部３４は、取得したサーバＩＤをイベント情報５２に「独自部分配置サーバＩＤ」(図１０参照)として付加する。
【００９７】
ステップ３０４において、イベント情報配送制御部３４は、サーバＩＤがイベント情報５２の「独自部分配置サーバＩＤ」に一致する異常判別処理サーバ４２の処理負荷を処理負荷情報３８から取得し、取得した処理負荷が許容量以下か否か判定する。ステップ３０４の判定が肯定された場合、サーバＩＤがイベント情報５２の「独自部分配置サーバＩＤ」に一致する異常判別処理サーバ４２は、今回のイベント情報５２を処理可能と判断できる。このため、ステップ３０４の判定が肯定された場合はステップ３０６へ移行する。ステップ３０６において、イベント情報配送制御部３４は、イベント情報配送先の異常判別処理サーバ４２を指し示す「イベント情報配送先サーバＩＤ」にイベント情報５２の「独自部分配置サーバＩＤ」を設定し、ステップ３１２へ移行する。
【００９８】
また、ステップ３０４の判定が否定された場合、サーバＩＤがイベント情報５２の「独自部分配置サーバＩＤ」に一致する異常判別処理サーバ４２が、今回のイベント情報５２を処理するのは適当でないと判断できる。このため、ステップ３０４の判定が否定された場合はステップ３０８へ移行する。ステップ３０８において、イベント情報配送制御部３４は、配送用モデル配置情報４０のうち「モデルＩＤ」がイベント情報５２の「モデルＩＤ」と一致する行から、「共通部分配置サーバＩＤ」に設定されたサーバＩＤを取得する。なお、「モデルＩＤ」が共通部分を含むモデル情報２４に対応している場合、上記処理で複数のサーバＩＤが取得される。
【００９９】
次のステップ３１０において、イベント情報配送制御部３４は、ステップ３０８でサーバＩＤを取得した全ての異常判別処理サーバ４２の処理負荷を処理負荷情報３８から取得する。そしてイベント情報配送制御部３４は、取得した処理負荷が最も小さい異常判別処理サーバ４２のサーバＩＤを「イベント情報配送先サーバＩＤ」に設定し、ステップ３１２へ移行する。
【０１００】
ステップ３１２において、イベント情報配送制御部３４は、イベント情報５２に「判定ノードＩＤ」(図１０参照)として「１」を設定する。ステップ３１４において、イベント情報配送制御部３４は、イベント情報配送先サーバＩＤの異常判別処理サーバ４２へイベント情報５２を配送し、イベント情報配送制御処理を終了する。
【０１０１】
上述したイベント情報配送制御処理を行うことによる、イベント情報配送サーバ３０から異常判別処理サーバ４２へのイベント情報５２の配送の一例を図１９に示す。
【０１０２】
図１９に示す例では、異常判別処理サーバ４２ＡにモデルＡ,Ｄのモデル情報２４が配置され、異常判別処理サーバ４２ＢにモデルＢ,Ｅのモデル情報２４が配置され、異常判別処理サーバ４２ＣにモデルＣ,Ｆのモデル情報２４が配置されている。なお、図１９において、モデルＡ〜Ｃは共通部分を有している。また、イベント情報配送サーバ３０から異常判別処理サーバ４２へ配送されるイベント情報５２の「Ａ」の表記は、イベント情報５２の「モデルＩＤ」に、モデルＡのモデルＩＤが設定されていることを意味している。
【０１０３】
図１９は、イベント情報配送サーバ３０から異常判別処理サーバ４２Ａへ向かう矢印を実線で示している。この矢印の実線が表すように、異常判別処理サーバ４２Ａの処理負荷が許容量以下の場合、「モデルＩＤ」にモデルＡのモデルＩＤが設定されたイベント情報５２は、モデルＡが配置された異常判別処理サーバ４２Ａへ配送される。
【０１０４】
一方、図１９は、イベント情報配送サーバ３０から異常判別処理サーバ４２Ｂ及び異常判別処理サーバ４２Ｃへ向かう矢印を一点鎖線で示している。この矢印の一点鎖線が表すように、異常判別処理サーバ４２Ａの処理負荷が許容量を超えた場合、「モデルＩＤ」にモデルＡのモデルＩＤが設定されたイベント情報５２は、モデルＡと共通部分を有するモデルＢが配置された異常判別処理サーバ４２Ｂへ配送される。或いは、モデルＡと共通部分を有するモデルＣが配置された異常判別処理サーバ４２Ｃへ配送される。これにより、異常判別処理サーバ４２Ａの処理負荷が許容量を超えることが防止され、異常判別処理サーバ４２Ａの処理負荷が異常判別処理サーバ４２Ｂ又は異常判別処理サーバ４２Ｃへ分散される。
【０１０５】
一方、モデル学習サーバ１２で前述のモデル共通部分判定処理及びモデル配送処理が行われると、異常判別処理サーバ４２の第３記憶部４８にはモデル情報２４及び処理サーバ用モデル配置情報５０が記憶されている状態になる。この状態で、異常判別処理サーバ４２にイベント情報配送サーバ３０又は他の異常判別処理サーバ４２からイベント情報５２が配送されると、異常判別処理プログラム１４２がＣＰＵ１２６によって実行される。これにより、異常判別処理部４４及びイベント情報転送部４６は図１６に示す異常判別処理を行う。
【０１０６】
異常判別処理のステップ３３０において、異常判別処理部４４は、処理サーバ用モデル配置情報５０のうち、「モデルＩＤ」が配送されたイベント情報５２の「モデルＩＤ」と一致する行を検索する。そして異常判別処理部４４は、検索で抽出した処理サーバ用モデル配置情報５０の行の中の「共通部分モデルＩＤ」に設定されているモデルＩＤを、配送されたイベント情報５２の異常判別処理に適用するモデルを指し示す「適用モデルＩＤ」に設定する。
【０１０７】
なお、イベント情報５２の「モデルＩＤ」に対応するモデルが共通部分を含まない場合には、「適用モデルＩＤ」はイベント情報５２の「モデルＩＤ」に一致する。一方、イベント情報５２の「モデルＩＤ」に対応するモデルが共通部分を含み、当該モデルの独自部分が自サーバ４２に配置されていない場合、「適用モデルＩＤ」は前記モデルと同じ共通部分を含み自サーバ４２に配置されたモデルのモデルＩＤが設定される。
【０１０８】
ステップ３３２において、異常判別処理部４４は、モデルＩＤが「適用モデルＩＤ」に一致するモデル情報２４から、「ノードＩＤ」が配送されたイベント情報５２の「判定ノードＩＤ」と一致する行を「判定ノード情報」として第３記憶部４８から取得する。なお、イベント情報５２の配送元がイベント情報配送サーバ３０であれば、イベント情報５２の「判定ノードＩＤ」＝１であるが、イベント情報５２の配送元が他の異常判別処理サーバ４２である場合はイベント情報５２の「判定ノードＩＤ」＞１になる。従って、この場合はイベント情報５２の配送元の異常判別処理サーバ４２で行われたユーザの端末操作の判別の続きが行われることになる。
【０１０９】
次のステップ３３４において、異常判別処理部４４は、ステップ３３２で取得した「判定ノード情報」のうちの「共通部分保持モデルＩＤ境界リスト」に、配送されたイベント情報５２の「モデルＩＤ」が含まれているか否か判定する。  ステップ３３４の判定が否定された場合はステップ３３６へ移行し、ステップ３３６において、異常判別処理部４４は、取得した「判定ノード情報」のうちの「判定属性名」及び「条件」で規定される条件判定を実施する。そしてステップ３３８において、異常判別処理部４４は、ステップ３３６で実施した条件判定で条件を満たしたか否か判定する。
【０１１０】
条件判定で条件を満たした場合は、ステップ３３８の判定が肯定されてステップ３４０へ移行する。ステップ３４０において、異常判別処理部４４は、「判定ノード情報」のうちの「条件を満たす場合の子ノードのノードＩＤ」に設定されたノードＩＤを「子ノードＩＤ」としてメモリ１２８に保持し、ステップ３４４へ移行する。
【０１１１】
一方、条件判定で条件を満たさなかった場合は、ステップ３３８の判定が否定されてステップ３４２へ移行する。ステップ３４２において、異常判別処理部４４は、「判定ノード情報」のうちの「条件を満たさない場合の子ノードのノードＩＤ」に設定されたノードＩＤを「子ノードＩＤ」としてメモリ１２８に保持し、ステップ３４４へ移行する。
【０１１２】
ステップ３４４において、異常判別処理部４４は、メモリ１２８に保持した「子ノードＩＤ」が、０か１かそれ以外かを判定する。先に説明したように、本実施形態では「子ノードのノードＩＤ」＝１をユーザの端末操作＝「正常」に割り当て、「子ノードのノードＩＤ」＝０をユーザの端末操作＝「異常」に割り当てている。従って、ステップ３４４の判定は、ユーザの端末操作が「正常」と判別できたか、ユーザの端末操作が「異常」と判別できたか、ユーザの端末操作の判別が未完了か、すなわち条件判定に続きがあるか、を判定している。
【０１１３】
メモリ１２８に保持した「子ノードＩＤ」が０,１以外の場合は、ユーザの端末操作の判別が未完了で条件判定に続きがあるので、ステップ３４４からステップ３４６へ移行する。ステップ３４６において、異常判別処理部４４は、メモリ１２８に保持した「子ノードＩＤ」をイベント情報５２の「判定ノードＩＤ」に設定し、ステップ３３２へ戻る。この場合、ユーザの端末操作の判別が継続される。
【０１１４】
また、メモリ１２８に保持した「子ノードＩＤ」＝１の場合、ユーザの端末操作が「正常」と判別できたことになるので、ステップ３４４からステップ３４８へ移行する。ステップ３４８において、異常判別処理部４４は、ユーザの端末操作を「正常」と判別し、正常時の処理を実行し、異常判別処理を終了する。正常時の処理としては、例えば判別結果が「正常」であることを表す情報を、イベント情報５２の「イベントＩＤ」と対応付けて所定のサーバへ送信する、或いは第３記憶部４８に記憶させる等の処理が挙げられる。
【０１１５】
また、メモリ１２８に保持した「子ノードＩＤ」＝０の場合、ユーザの端末操作が「異常」と判別できたことになるので、ステップ３４４からステップ３５０へ移行する。ステップ３５０において、異常判別処理部４４は、ユーザの端末操作を「異常」と判別し、異常時の処理を実行し、異常判別処理を終了する。異常時の処理としては、例えば判別結果が「異常」であることを表す情報を、イベント情報５２の「イベントＩＤ」及び「判定ノードＩＤ」と対応付け、アラーム情報として管理者の端末へ送信する等の処理が挙げられる。
【０１１６】
また、イベント情報５２の「モデルＩＤ」に対応するモデルが共通部分を含み、当該モデルの独自部分が自サーバ４２に配置されておらず、共通部分に含まれる条件判定だけではユーザの端末操作を判別できなかった場合は、ステップ３３４の判定が肯定される。ステップ３３４の判定が肯定された場合はステップ３５２へ移行する。
【０１１７】
ステップ３５２において、イベント情報転送部４６は、処理用モデル配置情報５０から「モデルＩＤ」がイベント情報５２の「モデルＩＤ」と一致する行を検索する。そしてイベント情報転送部４６は、検索により処理サーバ用モデル配置情報５０から抽出した行の「独自部分配置サーバＩＤ」に設定されているサーバＩＤを「独自配置サーバ」に設定する。次のステップ３５４において、イベント情報転送部４６は、サーバＩＤがステップ３５２で設定した「独自配置サーバ」の異常判別処理サーバ４２へイベント情報５２を配送し、異常判別処理を終了する。
【０１１８】
上述した異常判別処理を行うことによる、異常判別処理サーバ４２間のイベント情報５２の配送の一例を図２０に示す。図２０に示す例は、図１９と同様に異常判別処理サーバ４２ＡにモデルＡ,Ｄのモデル情報２４が配置され、異常判別処理サーバ４２ＢにモデルＢ,Ｅのモデル情報２４が配置され、異常判別処理サーバ４２ＣにモデルＣ,Ｆのモデル情報２４が配置されている。なお、図２０においても、モデルＡ〜Ｃは共通部分を有している。また、イベント情報配送サーバ３０から異常判別処理サーバ４２へ配送されるイベント情報５２の「Ａ」の表記は、イベント情報５２の「モデルＩＤ」に、モデルＡのモデルＩＤが設定されていることを意味している。
【０１１９】
図２０でも、図１９と同様に、異常判別処理サーバ４２Ａの処理負荷が許容量を超えた場合、「モデルＩＤ」にモデルＡのモデルＩＤが設定されたイベント情報５２は、モデルＡと共通部分を有するモデルＢが配置された異常判別処理サーバ４２Ｂへ配送される。或いは、モデルＡと共通部分を有するモデルＣが配置された異常判別処理サーバ４２Ｃへ配送される。
【０１２０】
ここで、イベント情報５２が配送された異常判別処理サーバ４２Ｂ又は異常判別処理サーバ４２Ｃにおいて、共通部分内の条件判定でユーザの端末操作を正常又は異常と判別できた場合には、異常判別処理サーバ４２間のイベント情報５２の配送は行われない。
【０１２１】
一方、異常判別処理サーバ４２Ｂ又は異常判別処理サーバ４２Ｃにおいて、共通部分内の条件判定ではユーザの端末操作を判別できなかった場合には、サーバ４２Ｂ又はサーバ４２Ｃからサーバ４２Ａへイベント情報５２が配送される。
【０１２２】
このときサーバ４２Ａへ配送されるイベント情報５２は「判定ノードＩＤ」がサーバ４２Ｂ又はサーバ４２Ｃによって更新されているので、サーバ４２Ａはサーバ４２Ｂ又はサーバ４２Ｃによるユーザの端末操作判別の続きを実行する。
【０１２３】
図２１には、サーバ４２Ａ,４２Ｂ,４２Ｃの処理負荷の推移の一例を示す。上述のように、サーバ４２Ａの処理負荷が許容量を超えた場合、本来はモデルＡを適用するイベント情報５２が、配送サーバ３０から、モデルＡと共通部分を有するモデルＢが配置されたサーバ４２Ｂ又はモデルＣが配置されたサーバ４２Ｃへ配送される。これにより、図２１にハッチングで強調して示すように、モデルＡの共通部分についての異常判別処理の処理負荷は、サーバ４２Ａの処理負荷を超える分だけサーバ４２Ｂ又はサーバ４２Ｃへ分散される。また、この処理負荷の分散は、モデルＡ〜Ｃが共通部分を有していることを利用しているので、サーバ４２Ｂやサーバ４２Ｃに記憶させるモデル情報２４の容量の増加を伴うことなく実現できる。
【０１２４】
ところで、複数のモデルの共通部分を判定した後、この共通部分を１つの処理サーバに配置することも、技術的には可能である。例として図２２には、モデルＡ,Ｂ,Ｃの共通部分を配置した共通処理サーバ４３Ａと、モデルＥ,Ｆ,Ｇ,Ｈの共通部分を配置した共通処理サーバ４３Ｂと、を設けた例を示す。なお、モデルＡの独自部分はサーバ４２Ａに、モデルＢ,Ｅの独自部分はサーバ４２Ｂに、モデルＣ,Ｆの独自部分はサーバ４２Ｃに各々配置されている。しかしながら、図２２に示す例では、例えばモデルＡを適用するイベント情報５２が多数発生した場合に、共通処理サーバ４３Ａとサーバ４２Ａの処理負荷が増大するが、他のサーバへは処理を分散することができない。モデルＡ以外のモデルを適用するイベント情報５２が多数発生した場合も同様である。
【０１２５】
これに対して本実施形態では、例えば図１９に示すように、共通部分を有するモデルＡ,Ｂ,Ｃを異なるサーバ４２Ａ,４２Ｂ,４２Ｃに配置しており、モデルＡ,Ｂ,Ｃの共通部分が複数のサーバ４２Ａ,４２Ｂ,４２Ｃに配置されている。これにより、例えばモデルＡを適用するイベント情報５２が多数発生した場合、サーバ４２Ａの処理負荷は増大するものの、モデルＡのうちの共通部分に関する処理についてはサーバ４２Ｂ,４２Ｃに分散させることができる。また、モデルＢ又モデルＣを適用するイベント情報５２が多数発生した場合も同様に処理負荷を分散させることができる。
【０１２６】
このように、本実施形態では、発生した事象に関連する属性を含むイベント情報５２から前記事象の状態を判別するための複数種の判定条件を含む複数のモデルについて、互いに異なるモデル間の前記判定条件の共通部分を判定する。また、第３記憶部４８に記憶したモデルを適用して処理の対象とするイベント情報５２の事象の状態を判別する複数の異常判別処理サーバ４２のそれぞれに、同一の前記共通部分を含む複数のモデルのうちの異なるモデルを含む１以上のモデルを記憶させる。また、複数の異常判別処理サーバ４２のうち、同一の共通部分を含む複数のモデルのうち入力されたイベント情報５２に含まれる前記属性に対応する第１のモデルを第３記憶部４８に格納する第１の異常判別処理サーバ４２を特定する。また、第１のモデルに含まれる共通部分と同一の共通部分を含む第２のモデルを第３記憶部４８に格納する第２の異常判別処理サーバ４２を特定する。そして、事象の状態を判別する処理を、第１の異常判別処理サーバ４２の負荷に応じて、第１の異常判別処理サーバ４２と第２の異常判別処理サーバ４２の何れに行わせるかを決定し、決定した異常判別処理サーバ４２に、事象の状態を判別する処理を行わせる。これにより、個々の異常判別処理サーバ４２におけるモデル情報２４の記憶容量を増加させることなく、異常判別処理サーバ４２の負荷を分散させることができる。
【０１２７】
また、本実施形態では、前記複数のモデルに含まれる複数種の判定条件を、複数のモデルに含まれる複数の判定条件において判定処理を行う順に比較することで共通部分を判定する。入力されたイベント情報５２を、特定した第１の異常判別処理サーバ４２及び第２の異常判別処理サーバ４２のうち、第１の異常判別処理サーバ４２及び第２の異常判別処理サーバ４２の負荷に応じて選択した異常判別処理サーバ４２へ配送する。すなわち、イベント情報５２の配送先の異常判別処理サーバ４２で、イベント情報５２の事象の状態を判別する処理のうち、少なくとも共通部分の処理を行わせる。これにより、複数のモデルの判定条件の連なりの途中に存在する共通部分を判定するなどの場合と比較して、共通部分の判定及びイベント情報５２の配送に関する処理が簡単になる。
【０１２８】
また、本実施形態では、イベント情報配送サーバ３０が、イベント情報５２に以下の情報を付加する。付加する情報は、第１のモデルの「モデルＩＤ」、及び、事象の状態の判別を開始する判定条件として第１のモデルに含まれる複数の判定条件において判定処理を行う順が先頭の判定条件を指し示す情報を設定した「判定ノードＩＤ」である。イベント情報５２が配送された異常判別処理サーバ４２は、第３記憶部４８に記憶した第１のモデル又は第２のモデルの共通部分のうち、「判定ノードＩＤ」が指し示す判定条件から事象の状態の判別を開始する。また、第２のモデルの共通部分だけでは事象の状態の判別が完了せず、かつ第１のモデルのうちの非共通部分が第３記憶部４８に記憶されていない場合に、イベント情報転送部４６が以下の処理を行う。すなわち、第１のモデルのうちの非共通部分を第３記憶部４８に記憶した第１の異常判別処理サーバ４２へ、「判定ノードＩＤ」を更新したイベント情報５２を転送する。これにより、モデルの共通部分と非共通部分(独自部分)が別の異常判別処理サーバ４２で処理される場合にも、異常判別処理サーバ４２の間での事象の状態の判別の引継ぎを含むインタフェースが簡単になる。
【０１２９】
なお、上記では１つのモデルを単位として異常判別処理サーバ４２にモデルを配置する態様を説明したが、これに限定されるものではない。例えば、共通部分を含むモデルについては、共通部分及び独自部分のそれぞれを単位として、異常判別処理サーバ４２にモデルを配置してもよく、同一の共通部分を含むｎ個のモデルの共通部分を、ｎ個未満の数の異常判別処理サーバ４２に配置してもよい。
【０１３０】
一態様として、モデルＡ〜Ｃが共通部分を含む場合に、図２３に示すように、サーバ４２ＡにモデルＡ〜Ｃの共通部分及びモデルＡ,Ｂの独自部分を配置し、サーバ４２ＢにモデルＡ〜Ｃの共通部分及びモデルＣの独自部分を配置する場合が挙げられる。この態様は、一例として、モデルＡ,Ｂを適用した異常判別の処理負荷が、モデルＣを適用した異常判別の処理負荷よりも比較的小さいと予想できる場合などに有効である。この態様においても、モデルＣを適用した異常判別の処理負荷が大きくなり、異常判別処理サーバ４２Ｂの処理負荷が許容値を越えた場合は、モデルＡ〜Ｃの共通部分を適用した異常判別を異常判別処理サーバ４２Ａによって行わせることができる。これにより、異常判別処理サーバ４２Ｂの負荷を分散させることができる。
【０１３１】
また、図２３に示す態様は、同一の共通部分を含むｎ個のモデルの共通部分を、ｎ個よりも少ない数の異常判別処理サーバ４２に配置しているので、複数の異常判別処理サーバ４２全体としての第３記憶部４８の記憶容量を節減することができる。また、上記の態様に限られるものでもなく、一例として図２４に示すように、モデルＡ〜Ｃに関して共通部分のみを配置したサーバ４２Ｃを設けてもよい。また、同一の共通部分を含むｎ個のモデルの共通部分を、ｎ個を超える数の異常判別処理サーバ４２に配置してもよい。
【０１３２】
また、上記では、異常判別システム１０が、モデル学習サーバ１２、イベント情報配送サーバ３０及び複数の異常判別処理サーバ４２を含んでいる態様を説明したが、これに限定されるものではない。例えば、１台のサーバをモデル学習サーバ１２及びイベント情報配送サーバ３０として各々機能させるようにしてもよい。
【０１３３】
また、上記では開示の技術に係る負荷分散制御プログラムの一例であるモデル学習プログラム８０、イベント情報配送プログラム１１２及び異常判別処理プログラム１４２が、記憶部６８,１０２,１３０に予め記憶（インストール）されている態様を説明した。しかし、開示の技術に係る負荷分散制御プログラムは、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭ、メモリカード等の記録媒体に記録されている形態で提供することも可能である。
【０１３４】
本明細書に記載された全ての文献、特許出願及び技術規格は、個々の文献、特許出願及び技術規格が参照により取り込まれることが具体的かつ個々に記された場合と同程度に、本明細書中に参照により取り込まれる。
【０１３５】
以上の実施形態に関し、更に以下の付記を開示する。
【０１３６】
（付記１）
発生した事象に関連する属性を含むイベント情報から、前記事象の状態を判別するための複数種の判定条件を含む、複数のモデルについて、互いに異なるモデル間の前記判定条件の共通部分を判定し、
内蔵記憶部に記憶したモデルを適用して処理の対象とする前記イベント情報の事象の状態を判別する複数の処理装置のそれぞれに、同一の前記共通部分を含む複数のモデルのうちの異なるモデルを含む１以上のモデルを記憶させ、
前記複数の処理装置のうち、前記同一の共通部分を含む複数のモデルのうち入力された前記イベント情報に含まれる前記属性に対応する第１のモデルを内蔵記憶部に格納する第１の処理装置を特定すると共に、前記第１のモデルに含まれる共通部分と同一の共通部分を含む第２のモデルを内蔵記憶部に格納する第２の処理装置を特定し、前記事象の状態を判別する処理を、前記第１の処理装置の負荷に応じて、前記第１の処理装置と前記第２の処理装置の何れに行わせるかを決定し、
決定した処理装置に、前記事象の状態を判別する処理を行わせる
処理をコンピュータに実行させるための負荷分散制御プログラム。
【０１３７】
（付記２）
発生した事象に関連する属性を含むイベント情報から、前記事象の状態を判別するための複数種の判定条件を含む、複数のモデルについて、互いに異なるモデル間の前記判定条件の共通部分を判定し、
内蔵記憶部に記憶したモデルを適用して処理の対象とする前記イベント情報の事象の状態を判別する複数の処理装置のそれぞれに、同一の前記共通部分を含む複数のモデルのうちの異なるモデルを含む１以上のモデルを記憶させ、
前記複数の処理装置のうち、前記同一の共通部分を含む複数のモデルのうち入力された前記イベント情報に含まれる前記属性に対応する第１のモデルを内蔵記憶部に格納する第１の処理装置を特定すると共に、前記第１のモデルに含まれる共通部分と同一の共通部分を含む第２のモデルを内蔵記憶部に格納する第２の処理装置を特定し、前記事象の状態を判別する処理を、前記第１の処理装置の負荷に応じて、前記第１の処理装置と前記第２の処理装置の何れに行わせるかを決定し、
決定した処理装置に、前記事象の状態を判別する処理を行わせる
処理をコンピュータが実行する負荷分散制御方法。
【０１３８】
（付記３）
前記複数のモデルに含まれる複数種の判定条件を、前記複数のモデルに含まれる複数の判定条件において判定処理を行う順に比較することで前記共通部分を判定し、
入力された前記イベント情報を、特定した前記第１の処理装置及び前記第２の処理装置のうち、前記第１の処理装置及び前記第２の処理装置の負荷に応じて選択した処理装置へ配送することで、当該処理装置で前記イベント情報の事象の状態を判別する処理のうち、少なくとも前記共通部分の処理を行わせる付記１記載の負荷分散制御プログラム、又は、付記２記載の負荷分散制御方法。
【０１３９】
（付記４）
前記処理装置へ配送する前記イベント情報に、前記第１のモデルの識別情報、及び、前記事象の状態の判別を開始する判定条件として前記第１のモデルに含まれる複数の判定条件において判定処理を行う順が先頭の判定条件を指し示す情報を設定した判定条件識別情報を付加し、
前記イベント情報が配送された前記処理装置は、前記内蔵記憶部に記憶した前記第１のモデル又は前記第２のモデルの前記共通部分のうち、前記判定条件識別情報が指し示す判定条件から前記事象の状態の判別を開始し、前記第２のモデルの前記共通部分だけでは前記事象の状態の判別が完了せず、かつ前記第１のモデルのうちの非共通部分が前記内蔵記憶部に記憶されていない場合に、前記第１のモデルのうちの非共通部分を前記内蔵記憶部に記憶した前記第１の処理装置へ、前記判定条件識別情報を更新した前記イベント情報を転送する付記３記載の負荷分散制御プログラム、又は、付記３記載の負荷分散制御方法。
【０１４０】
（付記５）
前記同一の前記共通部分を含むモデルの数が３以上の場合に、前記同一の前記共通部分を含むモデルの前記共通部分を、前記同一の前記共通部分を含むモデルの数よりも少ない前記処理装置の前記内蔵記憶部に記憶させる付記１、付記３及び付記４の何れか１項記載の負荷分散制御プログラム、又は、付記２〜付記４の何れか１項記載の負荷分散制御方法。
【０１４１】
（付記６）
発生した事象に関連する属性を含むイベント情報から、前記事象の状態を判別するための複数種の判定条件を含む、複数のモデルについて、互いに異なるモデル間の前記判定条件の共通部分を判定する共通部分判定部と、
内蔵記憶部に記憶したモデルを適用して処理の対象とする前記イベント情報の事象の状態を判別する複数の処理装置のそれぞれに、同一の前記共通部分を含む複数のモデルのうちの異なるモデルを含む１以上のモデルを記憶させるモデル配送部と、
前記複数の処理装置のうち、前記同一の共通部分を含む複数のモデルのうち入力された前記イベント情報に含まれる前記属性に対応する第１のモデルを内蔵記憶部に格納する第１の処理装置を特定すると共に、前記第１のモデルに含まれる共通部分と同一の共通部分を含む第２のモデルを内蔵記憶部に格納する第２の処理装置を特定し、前記事象の状態を判別する処理を、前記第１の処理装置の負荷に応じて、前記第１の処理装置と前記第２の処理装置の何れに行わせるかを決定し、決定した処理装置に、前記事象の状態を判別する処理を行わせる制御部と、
を含む負荷分散制御装置
【０１４２】
（付記７）
前記共通部分判定部は、前記複数のモデルに含まれる複数種の判定条件を、前記複数のモデルに含まれる複数の判定条件において判定処理を行う順に比較することで前記共通部分を判定し、
前記制御部は、入力された前記イベント情報を、特定した前記第１の処理装置及び前記第２の処理装置のうち、前記第１の処理装置及び前記第２の処理装置の負荷に応じて選択した処理装置へ配送することで、当該処理装置で前記イベント情報の事象の状態を判別する処理のうち、少なくとも前記共通部分の処理を行わせる付記６記載の負荷分散制御装置。
【０１４３】
（付記８）
前記制御部は、前記処理装置へ配送する前記イベント情報に、前記第１のモデルの識別情報、及び、前記事象の状態の判別を開始する判定条件として前記第１のモデルに含まれる複数の判定条件において判定処理を行う順が先頭の判定条件を指し示す情報を設定した判定条件識別情報を付加し、
前記イベント情報が配送された前記処理装置は、前記内蔵記憶部に記憶した前記第１のモデル又は前記第２のモデルの前記共通部分のうち、前記判定条件識別情報が指し示す判定条件から前記事象の状態の判別を開始する判別処理部と、
前記第２のモデルの前記共通部分だけでは前記事象の状態の判別が完了せず、かつ前記第１のモデルのうちの非共通部分が前記内蔵記憶部に記憶されていない場合に、前記第１のモデルのうちの非共通部分を前記内蔵記憶部に記憶した前記第１の処理装置へ、前記判定条件識別情報を更新した前記イベント情報を転送するイベント情報転送部と、
を含む付記７記載の負荷分散制御装置。
【０１４４】
（付記９）
前記同一の前記共通部分を含むモデルの数が３以上の場合に、前記同一の前記共通部分を含むモデルの前記共通部分を、前記同一の前記共通部分を含むモデルの数よりも少ない前記処理装置の前記内蔵記憶部に記憶させる付記６〜付記８の何れか１項記載の負荷分散制御装置。
【０１４５】
（付記１０）
発生した事象に関連する属性を含むイベント情報から、前記事象の状態を判別するための複数種の判定条件を含む、複数のモデルについて、互いに異なるモデル間の前記判定条件の共通部分が判定され、
内蔵記憶部に記憶したモデルを適用して処理の対象とする前記イベント情報の事象の状態を判別する複数の処理装置のそれぞれに、同一の前記共通部分を含む複数のモデルのうちの異なるモデルを含む１以上のモデルが記憶された前記処理装置に対して、
前記複数の処理装置のうち、前記同一の共通部分を含む複数のモデルのうち入力された前記イベント情報に含まれる前記属性に対応する第１のモデルを内蔵記憶部に格納する第１の処理装置を特定すると共に、前記第１のモデルに含まれる共通部分と同一の共通部分を含む第２のモデルを内蔵記憶部に格納する第２の処理装置を特定し、前記事象の状態を判別する処理を、前記第１の処理装置の負荷に応じて、前記第１の処理装置と前記第２の処理装置の何れに行わせるかを決定し、
決定した処理装置に、前記事象の状態を判別する処理を行わせる
処理をコンピュータに実行させるための負荷分散制御プログラム。
【符号の説明】
【０１４６】
１０…異常判別システム、１２…モデル学習サーバ、１４…モデル学習部、１６…モデル共通部分判定部、１８…モデル配送部、２０…第１記憶部、２２…学習用イベント情報、２４…モデル情報、２６…モデル属性情報、２８…モデル配置情報、３０…イベント情報配送サーバ、３２…処理負荷取得部、３４…イベント情報配送制御部、３６…第２記憶部、３８…処理負荷情報、４０…配送用モデル配置情報、４２…異常判別処理サーバ、４４…異常判別処理部、４６…イベント情報転送部、４８…第３記憶部、５０…処理サーバ用モデル配置情報、５２…イベント情報、６０…コンピュータシステム、６２…第１コンピュータ、６４…ＣＰＵ、６６…メモリ、６８…記憶部、７８…ネットワーク、８０…モデル学習プログラム、９６…第２コンピュータ、９８…ＣＰＵ、１００…メモリ、１０２…記憶部、１１２…イベント情報配送プログラム、１２４…第３コンピュータ、１２６…ＣＰＵ、１２８…メモリ、１３０…記憶部、１４２…異常判別処理プログラム
【図１】
2018022281.tif 000003
【図２】
2018022281.tif 000004
【図３】
2018022281.tif 000005
【図４】
2018022281.tif 000006
【図５】
2018022281.tif 000007
【図６】
2018022281.tif 000008
【図７】
2018022281.tif 000009
【図８】
2018022281.tif 000010
【図９】
2018022281.tif 000011
【図１０】
2018022281.tif 000012
【図１１】
2018022281.tif 000013
【図１２】
2018022281.tif 000014
【図１３】
2018022281.tif 000015
【図１４】
2018022281.tif 000016
【図１５】
2018022281.tif 000017
【図１６】
2018022281.tif 000018
【図１７】
2018022281.tif 000019
【図１８】
2018022281.tif 000020
【図１９】
2018022281.tif 000021
【図２０】
2018022281.tif 000022
【図２１】
2018022281.tif 000023
【図２２】
2018022281.tif 000024
【図２３】
2018022281.tif 000025
【図２４】
2018022281.tif 000026