(57)【要約】【課題】高負荷経路に基づく複合イベントの処理装置及びその方法の提供。【解決手段】メッセージ転送経路に対するログパターンを分析して高負荷経路を識別する高負荷経路探索部と、前記識別された高負荷経路に基づいてパーティションを生成するパーティション生成部と、を備えることを特徴とする高負荷経路に基づく複合イベントの処理装置。【選択図】図１
2016081495.tif 000002
【特許請求の範囲】
【請求項１】
メッセージ転送経路に対するログパターンを分析して高負荷経路を識別する高負荷経路探索部と、
前記識別された高負荷経路に基づいてパーティションを生成するパーティション生成部と、
を備えることを特徴とする高負荷経路に基づく複合イベントの処理装置。
【請求項２】
メッセージ転送経路に対するログを記録するログ記録部をさらに備え、
前記ログ記録部は、前記メッセージ転送経路の繰り返し回数またはネットワーク通信量に応じて作業負荷を異ならせて設定することを特徴とする請求項１に記載の高負荷経路に基づく複合イベントの処理装置。
【請求項３】
前記高負荷経路探索部は、前記ログパターンを分析して、所定の回数以上繰り返されるメッセージ転送経路、あるいは、所定の時間以上の実行時間がかかるメッセージ転送経路を高負荷経路として識別することを特徴とする請求項１に記載の高負荷経路に基づく複合イベントの処理装置。
【請求項４】
前記パーティション生成部は、高負荷経路の場合に高負荷経路を作業者の数で割ってパーティションを生成し、高負荷経路ではない場合には各パーティションと連結されるエッジの数を考慮して各パーティションにノードを割り当てることを特徴とする請求項１に記載の高負荷経路に基づく複合イベントの処理装置。
【請求項５】
前記パーティション生成部において生成されたパーティションに基づいて複合イベントを処理する複合イベント処理部をさらに備えることを特徴とする請求項１に記載の高負荷経路に基づく複合イベントの処理装置。
【請求項６】
複合イベントの処理装置が高負荷経路に基づいて複合イベントの処理を行うための高負荷経路に基づく複合イベントの処理方法において、
（ａ）メッセージ転送経路に対するログパターンを分析して高負荷経路を識別するステップと、
（ｂ）前記識別された高負荷経路に基づいてパーティションを生成するステップと、
を含むことを特徴とする高負荷経路に基づく複合イベントの処理方法。
【請求項７】
前記ステップ（ａ）前に、
メッセージ転送経路に対するログを記録するステップをさらに含むことを特徴とする請求項６に記載の高負荷経路に基づく複合イベントの処理方法。
【請求項８】
前記高負荷経路は、所定の回数以上繰り返されるメッセージ転送経路であるか、あるいは、所定の時間以上の実行時間がかかるメッセージ転送経路であることを特徴とする請求項６に記載の高負荷経路に基づく複合イベントの処理方法。
【請求項９】
前記ステップ（ｂ）は、
高負荷経路の場合に高負荷経路を作業者の数で割ってパーティションを生成し、高負荷経路ではない場合には各パーティションと連結されるエッジの数を考慮して各パーティションにノードを割り当てることを特徴とすることを特徴とする請求項６に記載の高負荷経路 高負荷経路に基づく複合イベントの処理方法。
【請求項１０】
前記ステップ（ｂ）後に、
前記生成されたパーティションに基づいて複合イベントを処理するステップをさらに含むことを特徴とする請求項６に記載の高負荷経路に基づく複合イベントの処理方法。
【請求項１１】
複合イベントの処理装置により起動されるとき、
（ａ）メッセージ転送経路に対するログパターンを分析して高負荷経路を識別するステップと、
（ｂ）前記識別された高負荷経路に基づいてパーティションを生成するステップと、
を含むことを特徴とする高負荷経路に基づく複合イベントの処理方法を実行するためのプログラムが書き込まれたコンピュータにて読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、高負荷経路に基づく複合イベントの処理装置及びその方法に係り、さらに詳しくは、メッセージ転送経路に対するログパターンを分析して高負荷経路を識別し、識別された高負荷経路に基づいてパーティションを生成する高負荷経路に基づく複合イベントの処理装置及びその方法に関する。
【背景技術】
【０００２】
最近のインターネットの発展には目を見張るものがあり、これに伴い、ネチズンにより一日につき数多くのデータが生成されて流通されており、最近、多くの企業、特に、検索エンジン会社とウェブポータルとの間で、このような膨大な量のデータをできる限り多く収集及び蓄積し、収集されたデータのうちできる限り早く意味のある情報を取り出すことが企業の競争力になっている。
【０００３】
この理由から、多くの企業は、安価に大規模のクラスターを構築して、大容量の分散管理及び作業分散並列処理技術に取り組んでいる。
【０００４】
複数の単一のイベントから収集されたデータに基づいて状態遷移図に基づく複合イベント処理が行われる。このとき、状態遷移図上の各ノード及びエッジの処理頻度が異なるため、作業負荷が偏る場合がある。
【０００５】
一方、作業負荷の振り分けのためのパーティショニング技法として、ノードのＩＤに基づいてパーティショニングを行うハッシュパーティショニング技法が利用されている。
【０００６】
しかしながら、ノードのＩＤに基づくパーティショニングを利用するため、各ノードの作業負荷への影響が全く考慮されず、しかも、複合イベント処理の作業負荷の経時変化に柔軟に対応することができないため、複合イベント処理の分散／並列化を効果的に行うのに限界がある。
【０００７】
【特許文献１】大韓民国登録特許第１０７６７６２号（プロセス割り当て装置及びその動作方法）
【発明の開示】
【発明が解決しようとする課題】
【０００８】
本発明の目的は、高負荷経路を中心として作業負荷を効果的に振り分けることのできる高負荷経路に基づく複合イベントの処理装置及びその方法を提供するところにある。
【０００９】
本発明の他の目的は、累積されたログパターンに基づいて高負荷経路を識別し、これを用いて動的にパーティショニング基準を更新することのできる高負荷経路に基づく複合イベントの処理装置及びその方法を提供するところにある。
【課題を解決するための手段】
【００１０】
上述した目的を達成するために、本発明の一側面によれば、メッセージ転送経路に対するログパターンを分析して高負荷経路を識別する高負荷経路探索部と、前記識別された高負荷経路に基づいてパーティションを生成するパーティション生成部と、を備えることを特徴とする高負荷経路に基づく複合イベントの処理装置が提供される。
【００１１】
好ましくは、前記高負荷経路に基づく複合イベントの処理装置は、メッセージ転送経路に対するログを記録するログ記録部をさらに備え、前記ログ記録部は、前記メッセージ転送経路の繰り返し回数またはネットワーク通信量に応じて作業負荷を異ならせて設定する。
【００１２】
また、好ましくは、前記高負荷経路探索部は、前記ログパターンを分析して、所定の回数以上繰り返されるメッセージ転送経路、あるいは、所定の時間以上の実行時間がかかるメッセージ転送経路を高負荷経路として探索する。
【００１３】
さらに、好ましくは、前記パーティション生成部は、高負荷経路の場合に高負荷経路を作業者（ｗｏｒｋｅｒ）の数で割ってパーティションを生成し、高負荷経路ではない場合に各パーティションと連結されるエッジの数を考慮して各パーティションにノードを割り当てる。
【００１４】
さらに、好ましくは、前記高負荷経路に基づく複合イベントの処理装置は、前記パーティション生成部において生成されたパーティションに基づいて複合イベントを処理する複合イベント処理部をさらに備える。
【００１５】
上述した目的を達成するために、本発明の他の側面によれば、複合イベントの処理装置が高負荷経路に基づいて複合イベントの処理を行うための高負荷経路に基づく複合イベントの処理方法において、（ａ）メッセージ転送経路に対するログパターンを分析して高負荷経路を識別するステップと、（ｂ）前記識別された高負荷経路に基づいてパーティションを生成するステップと、を含むことを特徴とする高負荷経路に基づく複合イベントの処理方法が提供される。
【００１６】
好ましくは、前記高負荷経路に基づく複合イベントの処理方法は、前記ステップ（ａ）前に、メッセージ転送経路に対するログを記録するステップをさらに含む。
【００１７】
さらに、好ましくは、前記高負荷経路は、所定の回数以上繰り返されるメッセージ転送経路、あるいは、所定の時間以上の実行時間がかかるメッセージ転送経路である。
【００１８】
さらに、好ましくは、前記ステップ（ｂ）においては、高負荷経路の場合に高負荷経路を作業者の数で割ってパーティションを生成し、高負荷経路ではない場合に各パーティションと連結されるエッジの数を考慮して各パーティションにノードを割り当てる。
【００１９】
さらに、好ましくは、前記高負荷経路に基づく複合イベントの処理方法は、前記ステップ（ｂ）後に、前記生成されたパーティションに基づいて複合イベントを処理するステップをさらに含む。
【００２０】
上述した目的を達成するために、本発明のさらに他の側面によれば、複合イベントの処理装置により起動されるとき、（ａ）メッセージ転送経路に対するログパターンを分析して高負荷経路を識別するステップと、（ｂ）前記識別された高負荷経路に基づいてパーティションを生成するステップと、を含むことを特徴とする高負荷経路に基づく複合イベントの処理方法を実行するためのプログラムが書き込まれたコンピュータにて読み取り可能な記録媒体が提供される。
【発明の効果】
【００２１】
本発明によれば、高負荷経路を中心として作業負荷を効果的に振り分けることにより、複合イベント処理の分散／並列化を効果的に行うことができる。
【００２２】
また、動的にパーティショニング基準を更新することにより、複合イベント処理の作業負荷の経時変化に柔軟に対応することができる。
【図面の簡単な説明】
【００２３】
【図１】本発明の実施形態による高負荷経路に基づく複合イベントの処理装置を概略的に示す図である。
【図２】本発明の実施形態による複合イベントの処理装置が複合イベントを処理するための方法を示す図である。
【図３】本発明の実施形態によるパーティションの生成方法を説明するための画面例示図である。
【発明を実施するための最良の態様】
【００２４】
以下、添付図面に基づき、本発明に係る「高負荷経路に基づく複合イベントの処理装置及びその方法」について詳細に説明する。ここで説明する実施形態は、本発明の技術的思想を当業者に容易に理解させるために提供されるものであり、これらにより本発明が限定されることはない。なお、添付図面に示す事項は、本発明の実施形態を容易に説明するために図式化したものであり、実際に実現される形態とは異なる場合がある。
【００２５】
一方、後述する各構成要素は、本発明を実現するための例に過ぎない。このため、本発明の他の実現に際しては、本発明の思想及び範囲を逸脱しない範囲内において他の構成要素が使用可能である。また、各構成要素は、単にハードウェアまたはソフトウェアの構成のみにより実現されてもよいが、同じ機能を行う様々なハードウェア及びソフトウェアの構成の組み合わせにより実現されてもよい。なお、一つのハードウェアまたはソフトウェアにより２以上の構成要素が一緒に実現されてもよい。
【００２６】
これらに加えて、ある構成要素を「備える」という表現は、「開放型」の表現であり、当該構成要素が存在することを単に指し示すだけであり、さらなる構成要素を排除するものと理解されてはならない。
【００２７】
図１は、本発明の実施形態による高負荷経路に基づく複合イベントの処理装置を概略的に示す図である。
【００２８】
図１を参照すると、高負荷経路に基づく複合イベントの処理装置（以下、複合イベントの処理装置と称する。）１００は、ログ記録部１１０と、高負荷経路探索部１２０と、パーティション生成部１３０と、複合イベント処理部１４０とを備える。
【００２９】
ログ記録部１１０は、メッセージ転送経路に対するログを記録する。このとき、ログ記録部１１０は、状態遷移図の形でメッセージ転送経路に対するログを記録し、メッセージ転送経路の繰り返し回数、ネットワーク通信量などに応じて作業負荷を異ならせて設定する。例えば、経路の繰り返し頻度が高ければ、作業負荷を高く設定する。
【００３０】
ログ記録部１１０は、様々なイベントソースから好適な方法によりイベントデータを収集する機能を行う。すなわち、ログ記録部１１０は、イベントソースの負荷及び開発しやすさを考慮し、ＯｐｅｎＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ Ｐｒｏｇｒａｍｍｉｎｇ Ｉｎｔｅｒｆａｃｅ）を用いたリアルタイムサーバー（Ｅｖｅｎｔ Ｑｕｅｕｅ）転送方式、ＪＭＳ（Ｊａｖａ Ｍｅｓｓａｇｅ Ｓｅｒｖｉｃｅ）を用いたリアルタイムサーバー転送方式などのオプションを考慮して構成する。
【００３１】
ログ記録部１１０は、イベント妥当性点検（Ｅｖｅｎｔ Ｖａｌｉｄａｔｉｏｎ）、イベント形式変換（Ｅｖｅｎｔ  Ｆｏｒｍａｔｔｅｒ）、エラー処理（Ｅｒｒｏｒ Ｐｒｏｃｅｓｓｉｎｇ）、イベントソースとの通信モニターリング（Ｓｔａｔｕｓ Ｍｏｎｉｔｏｒｉｎｇ）などの機能を行う。
【００３２】
高負荷経路探索部１２０は、ログ記録部１１０に格納されたメッセージ転送経路に対するログパターンを分析して高負荷経路を識別する。
【００３３】
高負荷経路探索部１２０は、ログパターンを分析して、所定の回数以上繰り返されるメッセージ転送経路、作業負荷が所定のしきい値を超えるメッセージ転送経路及び所定の時間以上の実行時間がかかるメッセージ転送経路などを高負荷経路として識別する。すなわち、高負荷経路探索部１２０は、処理経路が頻繁に繰り返されるか、あるいは、処理経路を実行するのに長い時間がかかるなど、複合イベントの処理に高費用がかかる障害区間を高負荷経路として探索する。
【００３４】
このとき、高負荷経路探索部１２０は、１日、１週間、１ヶ月などユーザーが予め設定した周期に基づいてログパターンを分析して、高負荷経路を探索する。なお、高負荷経路探索部１２０は、期間とは無関係に、ユーザーの強制的な命令により特定の時点までのログパターンのみを分析する。
【００３５】
パーティション生成部１３０は、高負荷経路探索部１２０において探索された高負荷経路に基づいてパーティションを生成する。
【００３６】
すなわち、パーティション生成部１３０は、高負荷経路の場合に高負荷経路を作業者の数で割ってパーティションを生成する。
【００３７】
パーティション生成部１３０は、高負荷経路ではない場合にはエッジの数を計算して最も多く連結されているパーティションにノードを割り当てる。エッジとは、ノードとノードとの間に通信が行われることを意味するものであり、例えば、ノードとノードとの連結線により表示される。エッジが最も多く連結されているパーティションにノードを割り当てることにより、物理的に異なる個所に存在するパーティション間の通信量を低減することができる。
【００３８】
パーティション生成部１３０は、高負荷経路ではない場合にメッセージ転送経路を作業者の数で割り、作業量が公平に振り分けられるようにパーティションを生成する。次いで、パーティション生成部１３０は、パーティションと連結されるエッジの数を考慮して各パーティションにノードを割り当てる。このとき、パーティション生成部１３０は、各パーティションに連結されているノードの平均数に見合う分だけ、当該パーティションにノードを割り当てる。パーティション生成部１３０は、全体のパーティションにノードを割り当てた後、未割り当てのノードはエッジとは無関係に、順次に各パーティションに割り当てる。
【００３９】
複合イベント処理部１４０は、パーティション生成部１３０において生成されたパーティションに基づいて複合イベントを処理する。
【００４０】
複合イベント処理部１４０は、パーティション別に割り当てられた各ノードに対して定義された内容に基づいてイベントを処理し、アクションプランを生成する。すなわち、複合イベント処理部１４０は、キューからのデータの取り出し、データのイベント処理形態への変換、単純または複合イベントの処理、ルールの判断、判断結果によるアクションプランの生成などの機能を行う。
【００４１】
次いで、複合イベント処理部１４０は、前記生成されたアクションプランを定義されたアクションプランの処理内容に基づいて実行する機能を行う。また、複合イベント処理部１４０は、アクションプランを自動的にまたは手動的に実行したり、実行現況をモニターリングしたりする機能と、アクションプランを管理する機能及びこれをビジネスイベントとマッピングする機能を行う。
【００４２】
このような複合イベント処理部１４０は、イベントの処理のために様々なキュー及びプロセッサーを用いる。それぞれのキュー及びプロセッサーは、メモリにおいて全ての作業を行い、このような過程を通じて複合イベント処理システムサーバーの負荷を最小化させ、データの一貫性を維持する。
【００４３】
複合イベント処理部１４０は、収集されたデータをビジネスイベント化して処理する機能を行い、様々なタイプのイベント属性に対する汎用的な処理を行う。イベントソースから取り出したデータは、各種のプロセッサー及びキューの作業を通じてイベントの判断及びアクションを行うのに用いられる。
【００４４】
イベントの発生に必要なデータが存在しない場合に、待ちイベント（Ａｗａｉｔｉｎｇ Ｅｖｅｎｔ）の状態に移行し、イベントの発生に必要なデータが存在する場合に、後続作業を行う。
【００４５】
連結イベントにおけるアクションは、プロセッサーキュー（Ｐｒｏｃｅｓｓ Ｑｕｅｕｅ）にイベントの発生を引き渡すことである。
【００４６】
本発明の実施形態においては、ルールエンジンを用いて処理する単純イベントだけではなく、集計イベント、ストリームイベント、参照イベント、連結イベント、待ちイベントなど定義可能なあらゆる類型のイベントを、複合イベント処理システムを用いて処理する。
【００４７】
すなわち、本発明の実施形態による複合イベント処理部１４０は、複数の単純イベントからなる複合イベントと、単純イベント及び参照イベントからなる複合イベントと、単純イベント及びストリームイベントからなる複合イベントと、単純イベント及び連結イベントからなる複合イベントなど複数のイベントの組み合わせである様々な複合イベントを処理する。
【００４８】
一方、ログ記録部１１０と、高負荷経路探索部１２０と、パーティション生成部１３０及び複合イベント処理部１４０のそれぞれは、コンピューティング装置上においてプログラムを実行するために必要とされるプロセッサーなどによりそれぞれ実現される。このように、ログ記録部１１０と、高負荷経路探索部１２０と、パーティション生成部１３０及び複合イベント処理部１４０は、物理的に独立したそれぞれの構成要素により実現され、一つのプロセッサー内において機能的に区別されるように実現される。
【００４９】
複合イベントの処理装置１００が備えるこれらの構成要素は、ハードウェア、ソフトウェアまたはこれらの組み合わせにより実現され、一つのハードウェアまたはソフトウェアにより２以上の構成要素が同時に実現される。
【００５０】
このような複合イベントの処理装置１００は、様々な通信規格を用いて他の電子装置と通信を行い、且つ、様々なデータ処理演算を行う電子装置により実現される。例えば、複合イベントの処理装置１００はサーバー装置として実現され、このようなサーバー装置に加えて、様々な電子装置として実現される。なお、複合イベントの処理装置１００は、単一の電子装置として実現されてもよく、２以上の電子装置が組み合わせられた装置として実現されてもよい。
【００５１】
図２は、本発明の実施形態による複合イベントの処理装置が複合イベントを処理するための方法を示す図であり、図３は、本発明の実施形態によるパーティションの生成方法を説明するための画面例示図である。
【００５２】
図２を参照すると、複合イベントの処理装置は、メッセージ転送経路に対するログパターンを分析して高負荷経路を識別する（ステップＳ２０２）。このとき、複合イベントの処理装置は、ユーザーが設定した周期に相当するログパターンを分析して所定の回数以上繰り返されるか、あるいは、所定の時間以上の実行時間がかかるメッセージ転送経路を高負荷経路として識別する。
【００５３】
複合イベントの処理装置は、識別された高負荷経路に基づいてパーティションを生成する（ステップＳ２０４）。このとき、複合イベントの処理装置は、高負荷経路の場合に高負荷経路を作業者の数で割ってパーティションを生成し、高負荷経路ではない場合には各パーティションと連結されるエッジの数を考慮して各パーティションにノードを割り当てる。
【００５４】
次いで、複合イベントの処理装置は、生成されたパーティションに基づいて複合イベントを処理する（ステップＳ２０６）。
【００５５】
複合イベントの処理装置がパーティションを生成する方法について図３を参照して説明する。このとき、作業者の数が４人であることを想定して説明する。
【００５６】
図３の（ａ）に示す状態遷移図の複合イベントが収集された場合、複合イベントの処理装置は、（ａ）を（ｂ）のような高負荷経路に基づく状態遷移図に変換する。
【００５７】
（ｂ）のような状態遷移図から明らかなように、複合イベントの処理装置は、既に設定された所定のしきい値を超える「Ｓ４−Ｃ１−Ｃ５−Ｃ８」、「Ｓ５−Ｃ２−Ｃ５−Ｃ８」、「Ｓ５−Ｃ２−Ｃ６−Ｃ８」、「Ｓ６−Ｃ２−Ｃ５−Ｃ８」及び「Ｓ６−Ｃ２−Ｃ６−Ｃ８」を高負荷経路として識別する。
【００５８】
次いで、複合イベントの処理装置は、高負荷経路を作業者の数である４で割って作業量が公平に振り分けられるように、（ｃ）のようにパーティションを生成する。高負荷経路ではない場合には、複合イベントの処理装置は、（ｄ）のようにパーティションにノードを割り当てる。
【００５９】
一方、上述した本発明に係る高負荷経路に基づく複合イベントの処理装置及びその方法は、これを起動するためのプログラム、アプリケーション、システムファイルにより実現され、本発明は、このようなプログラムなどが書き込まれたコンピュータにて読み取り可能な記録媒体として実現される。
【００６０】
このような複合イベントを処理するための方法はプログラムとして作成可能であり、プログラムを構成するコード及びコードセグメントは当該分野におけるプログラマーにより容易に推論可能である。なお、複合イベントを処理するための方法に関するプログラムは電子装置にて読み取り可能な情報記録媒体に格納され、電子装置により読み取られて起動される。
【００６１】
このように、本発明が属する技術分野における当業者は、本発明がその技術的思想や必須的特徴を変更することなく他の具体的な形態として実施可能であるということが理解できる筈である。よって、上述した実施形態はあらゆる面において例示的なものであり、限定的なものではないと理解されるべきである。本発明の範囲は前記詳細な説明よりは後述する特許請求の範囲によって開示され、特許請求の範囲の意味及び範囲並びにその等価概念から導き出されるあらゆる変更または変形された形態が本発明の範囲に含まれるものと解釈されるべきである。
【符号の説明】
【００６２】
１００：複合イベントの処理装置
１１０：ログ記録部
１２０：高負荷経路探索部
１３０：パーティション生成部
１４０：複合イベント処理部
【図１】
2016081495.tif 000003
【図２】
2016081495.tif 000004
【図３】
2016081495.tif 000005