[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP5664098B2 - 複合イベント分散装置、複合イベント分散方法および複合イベント分散プログラム - Google Patents

複合イベント分散装置、複合イベント分散方法および複合イベント分散プログラム Download PDF

Info

Publication number
JP5664098B2
JP5664098B2 JP2010226086A JP2010226086A JP5664098B2 JP 5664098 B2 JP5664098 B2 JP 5664098B2 JP 2010226086 A JP2010226086 A JP 2010226086A JP 2010226086 A JP2010226086 A JP 2010226086A JP 5664098 B2 JP5664098 B2 JP 5664098B2
Authority
JP
Japan
Prior art keywords
rule
event
distribution
unit
processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2010226086A
Other languages
English (en)
Other versions
JP2012079242A (ja
Inventor
喜則 坂本
喜則 坂本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2010226086A priority Critical patent/JP5664098B2/ja
Priority to US13/193,701 priority patent/US8533731B2/en
Publication of JP2012079242A publication Critical patent/JP2012079242A/ja
Application granted granted Critical
Publication of JP5664098B2 publication Critical patent/JP5664098B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5022Workload threshold

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、複合イベント分散装置、複合イベント分散方法および複合イベント分散プログラムに関する。
近年、システム上で発生するデータなどをストリームとしてリアルタイムにモニタリングし、発生したデータパターンに応じて特定の処理を実行する複合イベント処理(CEP(Complex Event Processing))が広まっている。なお、複合イベント処理は、ESP(Event Stream Processing)と呼ぶ場合もあるが、ここでは、ESPも包含してCEPと総称する。
例えば、複合イベント処理として、株価や為替の変動をストリームとして受信し、変動パターンに応じて自動的に取引を実行することなどがある。また、屋内外に設置された温度センサが検知した温度をストリームとして受信し、温度変化に応じて自動的にスクリンプラーを作動させることなどがある。
複合イベント処理では、受信したストリームと、クエリやルールなどと呼ばれる条件式とを突合させてイベントを検出し、検出したイベントが実行される。一例として、複合イベント処理を実行するサーバは、事象A、事象B、事象Cを連続して検出した場合にイベントXを実行するルールXと、事象A、事象B、事象Dを所定時間内に受信した場合にはイベントYを実行するルールYとを記憶する。
そして、サーバは、受信したストリームから事象を検出してメモリ等に中間データとして格納する。その後、サーバは、中間データとして事象A、事象B、事象Cが連続して格納された場合には、イベントXを実行する。また、サーバは、中間データとして事象A、事象B、事象Dが所定時間内に格納された場合には、イベントYを実行する。
「ITアーキテクト Vol.25」、p128-p132、IDGジャパン、2009年
しかしながら、従来の技術では、処理性能が劣化する場合があるという課題があった。
例えば、複数のルールを有する複合イベント処理では、処理負荷を軽減し、ストリームからリアルタイムにイベントを検出するために、複数のサーバ又は仮想マシン(VM:Virtual Machine)を用いて実行される。また、サーバ間又はVM間では、メモリ又は仮想メモリを共有しないので、中間データ等を共有で管理できない。このため、従来の技術では、関連するルールを同一サーバ又はVM上に割り当てて、複合イベント処理を開始していた。
ところが、複合イベント処理を開始した後、あるルールで検出されるイベントが多発した場合、又はストリーム負荷が高くなった場合、このルールが割り当てられたサーバでは、イベントの実行処理が多発して処理負荷が高くなる。この結果、イベントが多発したサーバでは、ストリームからイベントを検出する処理が遅延し、リアルタイムにイベントを実行できない事象が発生する。つまり、特定のイベントの検出が多発した場合、複合イベント処理全体の処理性能が劣化することとなる。
1つの側面では、処理性能の劣化を防止することができる複合イベント分散装置、複合イベント分散方法および複合イベント分散プログラムを提供することを目的とする。
第1の案では、複合イベント分散装置は、複数の情報処理手段それぞれが実行する、イベントを特定する条件式にそれぞれ基づいてストリームから検出されたイベントへの、複数の複合イベント処理に対し、前記複数の複合イベント処理間の関連度を、前記複数の複合イベント処理それぞれに対応づけられた前記条件式の実行実績に基づき算出する算出部を有する。複合イベント分散装置は、前記複数の情報処理手段それぞれが動作するサーバにおける、前記複数の情報処理手段それぞれの前記サーバの資源の使用状況に基づき算出される処理負荷状況を取得する取得部を有する。複合イベント分散装置は、前記取得部によって取得された処理負荷状況に基づいて、処理分散対象の情報処理手段を検出する検出部を有する。複合イベント分散装置は、前記検出部によって処理分散対象の情報処理手段が検出された場合、前記算出部によって算出された前記複数の複合イベント処理の関連度に基づいて、前記複数の情報処理手段の少なくとも1つに前記複合イベント処理を分散させる分散部を有する。
処理性能の劣化を防止することができる。
図1は、実施例1に係るサーバの構成を示すブロック図である。 図2は、CEPの動作について説明する図である。 図3は、実施例1に係る複合イベント処理の分散化を説明する図である。 図4は、実施例2に係る複合イベント処理の分散化を説明する図である。 図5は、実施例2に係るサーバの構成を示すブロック図である。 図6は、VMのルール管理簿に記憶される情報の例を示す図である。 図7は、VMのCEP状態管理簿に記憶される中間データの例を示す図である。 図8は、ルール関連度管理簿に記憶される情報の例を示す図である。 図9は、配信リスト/ストリーム負荷管理簿に記憶される情報の例を示す図である。 図10は、資源負荷管理簿に記憶される情報の例を示す図である。 図11は、実施例2に係るサーバにおける分散化処理の流れを示すフローチャートである。 図12は、実施例2に係る移動元VMにおける分散化処理の流れを示すフローチャートである。 図13は、実施例2に係る移動先VMにおける分散化処理の流れを示すフローチャートである。 図14は、実施例3に係る複合イベント処理の分散化を説明する図である。 図15は、実施例3に係るルール関連度管理簿に記憶される情報の例を示す図である。 図16は、実施例3に係る配信リスト/ストリーム負荷管理簿に記憶される情報の例を示す図である。 図17は、実施例3に係る資源負荷管理簿に記憶される情報の例を示す図である。 図18は、物理サーバごとにCEPエンジンを搭載したシステム構成図である。 図19は、複合イベント分散プログラムを実行するコンピュータシステムの例を示す図である。
以下に、本願の開示する複合イベント分散装置、複合イベント分散方法および複合イベント分散プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
図1は、実施例1に係るサーバの構成を示すブロック図である。図1に示すサーバ1は、システム上で発生するデータなどをストリームとしてリアルタイムにモニタリングし、発生したデータパターンに応じて特定の処理を実行する複合イベント処理(CEP(Complex Event Processing))を実行するコンピュータである。なお、後述する実施例において例示したサーバの数、VMの数、ルールの数、要素の数は、あくまで例示であり、これに限定されるものではない。
例えば、サーバ1は、株価や為替の変動、各種センサにより検出されたデータ、Webサーバ上でHTTP(HyperText Transfer Protocol)トラフィックなどをデータストリームとして受信する。そして、サーバ1は、受信したデータストリームから事象を検出し、検出した事象の組み合わせによってイベントを特定し、特定したイベントを実行する。一例として、サーバ1は、株価や為替のデータストリームから、株価が所定値以上となったことや為替が所定値安となったことを連続して検出した場合に、取引を自動的に実行する。
ここで、図2を用いてCEP処理を具体的に説明する。図2は、CEPの動作について説明する図である。各種センサから受信されたデータストリームは、前処理を施され、時間やイベント数等の所定幅を示すウインドウの範囲内で各種条件が成立するかを判定される。図2においてE1〜Enは、各種の条件を示しており、E1〜Enのうち、いくつかの条件の成立状態の組み合わせが複合イベント条件(ルール)となる。そして、ルールが満たされた場合には、対応するイベント処理が発生する。
ルールが有する条件とその条件の組み合わせは、メモリ等に登録されている。また、ある時点において複合イベント条件が有する条件がどれだけ満たされているかは、中間状態管理として管理されている。この中間状態管理は、各VMの仮想メモリ上に展開しておけばよい。また、サーバ1は、各VMなどの性能、資源量、制約を管理する。具体的には、CPU、メモリ、ネットワーク、リアルタイム性などを管理する。
このようなサーバ1は、算出部1aと取得部1bと検出部1cと分散部1dとを有し、仮想マシン1(VM1)でCEP処理を実行する。具体的には、図3の左図のように、VM1は、イベントを検出する事象の組み合わせで形成される条件式として、ルール1とルール2、ルール3を保持する。つまり、VM1は、サーバ1に入力されるデータストリームから検出した事象からルール1を特定できた場合には、ルール1によって特定されるイベントを実行する。また、VM1は、サーバ1に入力されるデータストリームから検出した事象からルール2を特定できた場合には、ルール2によって特定されるイベントを実行する。同様に、VM1は、サーバ1に入力されるデータストリームから検出した事象からルール3を特定できた場合には、ルール3によって特定されるイベントを実行する。
このような状態において、サーバ1の算出部1aは、VM各々が実行する、イベントを特定する条件式に基づいてストリームからイベントを検出するCEP処理の関連度を算出する。続いて、取得部1bは、VM各々の負荷状況を取得する。続いて、検出部1cは、取得部1bによって取得された負荷状況に基づいて、処理負荷が所定値を超えるVMを検出する。そして、分散部1dは、算出部1aによって算出されたCEP処理の関連度に基づいて、VM各々にCEP処理を分散させる。
図3を用いて一例を説明する。図3は、実施例1に係る複合イベント処理の分散化を説明する図である。図3に示すように、サーバ1では、VM1においてルール1およびルール2、ルール3を用いたCEP処理が実行されており、VM2においてはCEP処理が実行されていない。このような状態において、サーバ1は、VM1のCPU(Central Processing Unit)使用率が閾値以上になったことを検出する。なお、VM2は、動作している状態であってもよく、動作可能に設定された未動作のVMであってもよい。
すると、サーバ1は、VM1で実行されるCEP処理間の関連度を算出する。例えば、サーバ1は、各ルールの実行回数/全データストリーム、又は、データストリームから検出された全事象の数、各ルール間の通信回数、各ルール間の通信率などを算出する。そして、サーバ1は、ルール1とルール2の関連度よりも、ルール2とルール3の関連度の方が、関連度が大きいと算出したとする。
この場合、サーバ1は、図3に示すように、VM1が保持しているルール2とルール3をVM2に移動させる。つまり、サーバ1は、VM1で実行されるルール2に基づくCEP処理と、ルール2に基づくCEP処理と関係の強いルール3に基づくCEP処理とをVM2に移動させる。なお、VM2が未動作の場合には、ルールの移行の前処理として、動作させる。
この結果、サーバ1は、CEP処理を実行するVMの処理負荷が許容範囲を超えた場合に、関係性の強いCEP処理を集約することができ、また、CEP処理を集約することでルール間を跨った通信処理を低減することができる。したがって、実施例1に係るサーバ1は、CEP処理性能の劣化を防止できる。
実施例2では、複合イベント処理の関連度として、各VMが保持するルール間の関連度に基づいて、ルールを動的に移動させて複合イベント処理を分散化する例について説明する。ここでは、実施例2の全体構成、サーバの構成、処理の流れ、実施例2による効果を順に説明する。
[全体構成]
図4は、実施例2に係る複合イベント処理の分散化を説明する図である。図4の(a)に示すように、実施例2に係るサーバ10は、VM1とVM2とのそれぞれでCEP処理を実行する。具体的には、VM1は、条件式として、ルール1とルール2を保持する。VM2は、条件式としてルール3とルール4を保持する。なお、初期段階で、各VMにルールを割り振る手法としては、ルールの関係性等に基づいて、管理者が手動で割り振ることができる。例えば、関連度の強い2つのルールを予め選択してVMに格納し、各VMが2つのルールを用いてCEP処理を実行させるようにする。また、初期段階でどのVMにどのルールを割り振るかについては、管理者等により、任意に設定できる。
つまり、VM1は、サーバ10に入力されるデータストリームから検出した事象からルール1を特定できた場合には、ルール1によって特定されるイベントを実行する。また、VM1は、サーバ10に入力されるデータストリームから検出した事象からルール2を特定できた場合には、ルール2によって特定されるイベントを実行する。
同様に、VM2は、サーバ10に入力されるデータストリームから検出した事象からルール3を特定できた場合には、ルール3によって特定されるイベントを実行する。また、VM2は、サーバ10に入力されるデータストリームから検出した事象からルール4を特定できた場合には、ルール4によって特定されるイベントを実行する。
このような状態において、サーバ10は、例えばVM1とVM2との間でやり取りされる通信量が閾値以上になったなどVMの負荷が許容範囲を超えたことを検出する。すると、サーバ10は、算出してある関連度から、ルール1〜ルール4の各ルール間の関連度を確認する。そして、サーバ10は、ルール1とルール2の関連度が他のルール間よりも強いと算出したとする。
この場合、図4の(b)に示すように、サーバ10は、VM2が保持するルール3をVM1に移動させる。つまり、サーバ10は、VM2で実行されるルール3に基づくCEP処理をVM1に移動させる。このようにして、CEP処理を分散させて、処理性能の劣化を防止する。
[サーバの構成]
図5は、実施例2に係るサーバの構成を示すブロック図である。図5に示すように、サーバ10は、通信制御I/F部11と仮想領域12とメモリ17とプロセッサ18とを有する。
通信制御I/F部11は、サーバ10と他の装置との間の通信を制御するインタフェースである。例えば、通信制御I/F部11は、株価や為替の変動、各種センサにより検出されたデータ、Webサーバ上でHTTPトラフィックなどをデータストリームとして受信してプロセッサ18に出力する。
仮想領域12は、プロセッサ18によって作成された複数のVMを起動する領域であり、任意な数のVMを起動することができる。実施例2では、図5に示すように、仮想領域12では、VM1とVM2が実行されている。
VM1は、仮想メモリ13と仮想プロセッサ14とを有し、仮想マシンを動作制御する。仮想メモリ13は、VM1を実行するために、サーバ10のメモリ17における所定領域を仮想的に割り当てた領域であり、ルール管理簿13aとCEP状態管理簿13bとを有する。
ルール管理簿13aは、VM1が実行するCEP処理、言い換えると、VM1がイベントの検出に用いるルールを記憶するデータベースである。図6は、VMのルール管理簿に記憶される情報の例を示す図である。図6に示すように、ルール管理簿13aは、「ルール名、要素リスト、イベント」を対応付けて記憶する。ここで記憶される「ルール名」は、ルールを一意に識別するルールの名称であり、「要素リスト」は、ルールを構成する要素を示し、「イベント」は、実行されるイベントを示す。
一例として、図6の場合、「ルール1」は、事象Aを検出する「要素A」と事象Bを検出する「要素B」と事象Cを検出する「要素C」で構成される。そして、ルール1は、事象A、事象B、事象Cが順番に検出された場合に、「イベント1」を実行することを示している。なお、実施例2では、VM1のルール管理簿13aは、「ルール1、要素A→要素B→要素C、イベント1」と、「ルール2、要素A→要素B→要素D、イベント2」を保持しているものとする。
CEP状態管理簿13bは、実行中のCEP処理の状態を記憶するデータベースであり、サーバ10が通知されたウインドウサイズと中間データを記憶する。図7は、VMのCEP状態管理簿に記憶される中間データの例を示す図である。図7に示すように、CEP状態管理簿13bは、「項番、中間データ、関連ルール」を対応付けて記憶する。ここで記憶される「項番」は、記憶されるデータに一意に割り振られた番号であり、「中間データ」は、現時点で検出されている事象(要素)示し、「関連ルール」は、現時点での中間データが含まれるルールを示す。
一例として、図7の場合、「項番=1」として、「ルール1」の要素の1つである「要素A」が検出されており、「項番=2」として、「ルール1」と「ルール2」の要素である「要素A」と「要素B」が連続して検出されていることを示している。なお、ここでは中間データをテーブルで管理する場合について説明したが、これに限定されるものではなく、例えばツリー構造等で管理することもできる。
仮想プロセッサ14は、VM1を実行するために、サーバ10のプロセッサ18における所定処理能力を仮想的に割り当てたプロセッサであり、CEPエンジン14aとルール転送部14bとを有する。
CEPエンジン14aは、CEP処理を実行する処理部である。例えば、CEPエンジン14aは、サーバ10に入力されたデータストリームを、プロセッサ18を介して受信して仮想メモリ13等に格納する。続いて、CEPエンジン14aは、仮想メモリ13に格納されるデータストリームからウインドウサイズのデータを読み出す。そして、CEPエンジン14aは、読み出したデータのうち、ルール管理簿13aに記憶されるルールを構成する各要素と一致するデータを中間データとしてCEP状態管理簿13bに格納する。このようにして、CEPエンジン14aは、データストリームから事象を検出して、中間データを生成する。
また、CEPエンジン14aは、CEP状態管理簿13bに記憶される中間データがルール管理簿13aに記憶されるルールと一致した場合には、一致したルールによって指定されるイベントを実行する。例えば、CEPエンジン14aは、CEP状態管理簿13bに記憶される中間データとして事象A〜事象Cが連続して検出されたことを示す「要素A→要素B→要素C」が格納される場合、ルール1と一致するので、ルール1によって指定されたイベント1を実行する。そして、CEPエンジン14aは、当該中間データをCEP状態管理簿13bから削除する。
ルール転送部14bは、プロセッサ18からルールの移動指示を受信した場合、対象ルールおよび対象ルールに関する各種情報を移動先VMに移動させる。例えば、ルール転送部14bは、ルール1をVM2に移動させる転送指示をプロセッサ18から受信したとする。この場合、ルール転送部14bは、ルール管理簿13aに記憶されるルール1をVM2のルール管理簿15aにコピーするとともに、CEP状態管理簿13bの「関連ルール」が「ルール1」となっている情報をVM2のCEP状態管理簿15bにコピーする。その後、ルール転送部14bは、コピー先とコピー元でコピーした各情報の同期を取った後に、コピー元の情報を削除する。
VM2は、VM1と同様、仮想メモリ15と仮想プロセッサ16とを有する。なお、仮想メモリ15は、VM1の仮想メモリ13と同様の機能を有し、仮想プロセッサ16は、VM1の仮想プロセッサ14と同様の機能を有するので、ここでは詳細な説明は省略する。ただし、実施例2では、VM2のルール管理簿15aは、「ルール3、要素E→要素F→要素C、イベント3」と、「ルール4、要素G→要素H→要素I、イベント4」を保持しているものとする。
図5に戻り、メモリ17は、プロセッサ18による各種処理に必要なデータおよびプログラム、指定されたウインドウサイズ等を格納するメモリであり、ルール関連度管理簿17aと配信リスト/ストリーム負荷管理簿17bと資源負荷管理簿17cとを有する。なお、メモリ17は、必ずしもメモリである必要はなく、半導体メモリ素子、または、ハードディスクなどの記憶装置であってもよい。
ルール関連度管理簿17aは、ルール間の関連度を記憶するデータベースである。図8は、ルール関連度管理簿に記憶される情報の例を示す図である。図8に示すように、ルール関連度管理簿17aは、「ルール名、要素リスト/イベント、ルール関連度、関連度の強さ、資源負荷状況(CPU使用率、メモリ使用率、ネットワーク使用率)」を対応付けて記憶する。
ここで記憶される「ルール名」は、ルールを一意に識別するルールの名称であり、「要素リスト/イベント」は、ルールを構成する事象と実行対象となるイベントを示す。「ルール関連度」には、関連性の強さとして、ルール内の要素の重複数を基に算出された<関連ルール数(関連要素数)>が格納される。「関連度の強さ」は、関連する全てのルールを、関連度の低い順にリストした情報である。「CPU使用率」は、当該ルールを実行するのに使用された仮想プロセッサの使用率であり、「メモリ使用率」は、当該ルールを実行するのに使用された仮想メモリの使用率である。「ネットワーク使用率」は、当該ルールの実行時に使用されたネットワークの使用率である。
一例として、図8の場合、「要素A→要素B→要素C/イベント1」である「ルール1」は、「要素A、要素B、要素C」のいずれかを要素とする他ルールが<2>つあり、他ルールと重複している要素(事象)が(3)つあることを示す。また、「ルール1」は、ルール2と最も関連度が強く、次にルール3と関連度が強い。ルール1のCPU使用率が「43%」であり、メモリ使用率が「40%」であり、ネットワーク使用率が「70%」であることを示している。
また、「要素A→要素B→要素D/イベント2」である「ルール2」は、「要素A、要素B、要素D」のいずれかを要素とする他ルールが<1>つあり、他ルールと重複している要素(事象)が(2)つあることを示す。また、「ルール2」は、ルール1と最も関連度が強い。また、ルール2のCPU使用率が「60%」であり、メモリ使用率が「50%」であり、ネットワーク使用率が「40%」であることを示している。
また、「要素E→要素F→要素C/イベント3」である「ルール3」は、「要素E、要素D、要素C」のいずれかを要素とする他ルールが<1>つあり、他ルールと重複している要素(事象)が(1)つあることを示す。また、「ルール3」は、ルール1と最も関連度が強い。また、ルール3のCPU使用率が「10%」であり、メモリ使用率が「12%」であり、ネットワーク使用率が「30%」であることを示している。
また、「要素G→要素H→要素I/イベント4」である「ルール4」は、「要素G、要素H、要素I」のいずれかを要素とする他ルールが<0>であり、他ルールと重複している要素(事象)が(0)であることを示す。また、ルール4のCPU使用率が「20%」であり、メモリ使用率が「35%」であり、ネットワーク使用率が「10%」であることを示している。
なお、ルール関連度管理簿17aに記憶される「ルール名、要素リスト/イベント」は、管理者等によって設定される値である。「ルール関連度」は、システム起動時に、後述する関連度算出部18aが算出した値であり、ルールが変更された場合に更新される。「資源負荷状況」は、システム起動時は空白であり、システム起動後に、後述する資源負荷計測部18cによって計測された値であり、随時更新される。
図5に戻り、配信リスト/ストリーム負荷管理簿17bは、ルールの配信先VMや配信されたルールの全ストリームに対する割合等を記憶するデータベースである。図9は、配信リスト/ストリーム負荷管理簿に記憶される情報の例を示す図である。図9に示すように、配信リスト/ストリーム負荷管理簿17bは、「ルール名、配信先リスト、ストリーム負荷」を対応付けて記憶する。
ここで記憶される「ルール名」は、ルールを一意に識別するルールの名称であり、「配信先リスト」は、当該ルールを保持する、当該ルールに基づいてCEP処理を実行するVMを示す。「ストリーム負荷」は、全ストリームにおいて当該ルールが適合した割合や頻度を示す。なお、「ルール名」と「配信先リスト」は、後述する分散実行部18fによって格納および更新される。「ストリーム負荷」は、システム起動時は空白であり、システム起動後に、後述するストリーム負荷計測部18dによって計測された値であり、随時更新される。
一例として、図9の場合、「ルール1」は、「VM1」に保持され、全ストリームに対して「40%」の割合で適合していることを示す。「ルール2」は、「VM1」に保持され、全ストリームに対して「10%」の割合で適合していることを示す。「ルール3」は、「VM2」に保持され、全ストリームに対して「30%」の割合で適合していることを示す。
資源負荷管理簿17cは、ルールが配信されてCEP処理を実行するVMの処理負荷を記憶するデータベースである。図10は、資源負荷管理簿に記憶される情報の例を示す図である。図10に示すように、資源負荷管理簿17cは、「VM名、ルールリスト、資源負荷状況(CPU使用率、メモリ使用率、ネットワーク使用率)」を対応付けて記憶する。
ここで記憶される「VM名」は、サーバ10の仮想領域12で稼動するVMを識別するVMの名称であり、「ルールリスト」は、VMが保持するルールのリストを示す。「CPU使用率」は、VMにおける仮想プロセッサの使用率であり、「メモリ使用率」は、VMにおける仮想メモリの使用率である。「ネットワーク使用率」は、VM間のネットワークの使用率である。なお、「VM名」と「ルールリスト」は、後述する分散実行部18fによって格納および更新される。「資源負荷状況」は、システム起動時は空白であり、システム起動後に、後述する資源負荷計測部18cによって計測された値であり、随時更新される。
一例として、図10の場合、「VM1」は、「ルール1」と「ルール2」とを保持してCEP処理を実行し、現時点の「CPU負荷率」が「30%」、「メモリ使用率」が「31%」、「ネットワーク使用率」が「80%」であることを示す。また、「VM2」は、「ルール3」と「ルール4」とを保持してCEP処理を実行し、現時点の「CPU負荷率」が「55%」、「メモリ使用率」が「45%」、「ネットワーク使用率」が「40%」であることを示す。
図5に戻り、プロセッサ18は、OS(Operating System)などの制御プログラム、各種の処理手順などを規定したプログラムおよび所要データを格納するための内部メモリを有するCPUなどである。プロセッサ18は、関連度算出部18aとストリーム受信部18bと資源負荷計測部18cとストリーム負荷計測部18dと分散決定部18eと分散実行部18fとを有し、これらによって各種処理を実行する。
関連度算出部18aは、ルール間の関連度を算出してルール関連度管理簿17aに格納する。例えば、関連度算出部18aは、システムが起動された場合や管理者等から関連度を算出する指示を受信した場合に、ルール間の関連度を算出する。
一例として、ルール1〜ルール4が図8に示す要素で形成される場合について説明する。この場合、関連度算出部18aは、ルール1を形成する要素Aがルール2に含まれ、要素Bがルール2に含まれ、要素Cがルール3に含まれることにより、ルール関連度の「関連要素数」を「3」とする。また、関連度算出部18aは、ルール1における「要素A→要素B」とする要素間の繋がりが、ルール2に含まれていることを検出する。さらに、関連度算出部18aは、ルール1では「要素C」が3番目の要素であり、このことがルール3でも同様であることを検出する。この結果、関連度算出部18aは、「関連ルール数」を「2」とする。したがって、関連度算出部18aは、ルール1のルール関連度として、図8に示すように、<関連ルール数(関連要素数)>に<2(3)>と格納する。また、関連度算出部18aは、要素Aと要素Bの2つがルール2に含まれおり、要素Cの1つがルール3に含まれていることより、「関連度の強さ」として「ルール3→ルール2」を格納する。つまり、ルール1は、ルール2、ルール3の順番で関連度が強い。
また、関連度算出部18aは、ルール2を形成する要素Aがルール1に含まれ、要素Bもルール1に含まれ、要素Dがいずれのルールにも含まれていないことにより、ルール関連度の「関連要素数」を「2」とする。また、関連度算出部18aは、ルール2における「要素A→要素B」とする要素間の繋がりが、ルール1に含まれていることを検出する。この結果、関連度算出部18aは、「関連ルール数」を「1」とする。したがって、関連度算出部18aは、ルール2のルール関連度として、図8に示すように、<関連ルール数(関連要素数)>に<1(2)>と格納する。また、関連度算出部18aは、要素Aと要素Bの2つがルール1に含まれていることより、「関連度の強さ」として「ルール1」を格納する。
また、関連度算出部18aは、ルール3を形成する要素Cがルール1に含まれ、要素Eと要素Fがいずれのルールにも含まれていないことにより、ルール関連度の「関連要素数」を「1」とする。また、関連度算出部18aは、ルール3において「要素C」が3番目の要素であり、このことがルール1にも含まれていることを検出する。この結果、関連度算出部18aは、「関連ルール数」を「1」とする。したがって、関連度算出部18aは、ルール3のルール関連度として、図8に示すように、<関連ルール数(関連要素数)>に<1(1)>と格納する。また、関連度算出部18aは、要素Cがルール1に含まれていることより、「関連度の強さ」として「ルール1」を格納する。
また、関連度算出部18aは、ルール4を形成するいずれの要素もいずれのルールに含まれていないことにより、ルール関連度の「関連要素数」を「0」とする。また、関連度算出部18aは、ルール4の要素の順番や要素間の繋がりもいずれのルールにも含まれていないと検出する。この結果、関連度算出部18aは、「関連ルール数」を「0」とする。したがって、関連度算出部18aは、ルール4のルール関連度として、図8に示すように、<関連ルール数(関連要素数)>に<0(0)>と格納する。
図5に戻り、ストリーム受信部18bは、通信制御I/F部11を介して受信したデータストリームをメモリ17に格納するとともに、当該データストリームを複製して、VM1とVM2のそれぞれに送信する。別の手法としては、ストリーム受信部18bは、配信リスト/ストリーム負荷管理簿17bを参照し、ルール1またはルール3に関するデータストリームをVM1に送信し、ルール2またはルール4に関するデータストリームをVM2に送信することもできる。つまり、ストリーム受信部18bは、各VMに対して、VMが保持するルールに関係するデータのみを送信することもできる。
資源負荷計測部18cは、各VMの資源負荷状況と各ルールの資源負荷状況とを計測して、ルール関連度管理簿17aと資源負荷管理簿17cに格納する。例えば、資源負荷計測部18cは、5分ごとなど予め指定されたタイミングで、VM1とVM2のそれぞれから「CPU使用率」と「メモリ使用率」と「ネットワーク使用率」とを取得して資源負荷管理簿17cに格納する。
つまり、資源負荷計測部18cは、サーバ10内のプロセッサ18における処理性能の数十%ずつが割り当てられた仮想プロセッサ14と仮想プロセッサ16のそれぞれが、割り当てられたプロセッサ処理性能のうちどのくらいを使用しているかを取得する。同様に、資源負荷計測部18cは、サーバ10内のメモリ17の領域の数十%ずつが割り当てられた仮想メモリ13と仮想メモリ15のそれぞれが、割り当てられた領域のうちどのくらいを使用しているかを取得する。また、資源負荷計測部18cは、VM1またはVM2が使用しているネットワーク帯域の割合を取得する。
また、資源負荷計測部18cは、5分ごとなど予め指定されたタイミングで、VM1の仮想プロセッサ14が各ルールをどのくらい保持しているか、言い換えると、各ルールを処理対象として処理を実行しているかを取得してルール関連度管理簿17aに格納する。同様に、資源負荷計測部18cは、5分ごとなど予め指定されたタイミングで、VM2の仮想プロセッサ16が各ルールをどのくらい保持しているかを取得してルール関連度管理簿17aに格納する。
なお、資源負荷計測部18cが資源負荷状況を取得する手法としては、既知の様々な手法を用いることができ、例えば監視ソフトウエア等を用いることもできる。また、資源負荷計測部18cは、各VMから資源負荷状況を取得することもでき、各VMが定期的に収集した資源負荷状況を取得するようにしてもよい。
図5に戻り、ストリーム負荷計測部18dは、配信されたルールの全ストリームに対する割合等を計測して、配信リスト/ストリーム負荷管理簿17bに格納する。例えば、ストリーム負荷計測部18dは、「ルール1が実行された回数/ストリームから検出された全事象の数」や「ルール1が実行された回数/全ルールの実行回数」等から、各ルールごとに「ストリーム負荷」を算出する。なお、各ルールの実行回数は、VM等で計数して各仮想メモリ等に格納しておいてもよく、ストリーム負荷計測部18dが計測してメモリ17に格納しておいてもよい。
分散決定部18eは、処理負荷が所定値を超えるVMが検出された場合、ルール間の関連度に基づいて、VM各々にルールを移動させる。例えば、分散決定部18eは、ルール関連度管理簿17aまたは資源負荷管理簿17cに記憶される資源負荷状況が閾値超えるVMが存在する場合に、当該VMを処理負荷が所定値を超えるVMとして検出する。また、分散決定部18eは、配信リスト/ストリーム負荷管理簿17bに記憶されるストリーム負荷が閾値を超えるルールが検出された場合、当該ルールを保持するVMを処理負荷が所定値を超えるVMとして検出する。例えば、分散決定部18eは、ネットワーク使用率が70%以上であるVMを検出した場合、処理負荷が高いVMが検出されたとする。
続いて、分散決定部18eは、ルール関連度管理簿17aに記憶される「ルール関連度」に基づいてルールの移動先を決定する。一例として、分散決定部18eは、「ルール関連度」における「関連ルール数」または「関連要素数」の最大値が2以上となるルールをVM1に集約し、2未満となるルールをVM2に集約するなどと決定する。別の例としては、分散決定部18eは、「ルール関連度」における『「関連ルール数」×「関連要素数」』が1以上となるルールをVM1に集約し、1未満となるルールをVM2に集約するなどと決定する。別例としては、分散決定部18eは、「ルール関連度」における『「関連ルール数」×「関連要素数」』が2以上となるルールのうち、関連度の強さを参照して、関連し合うルール(例えば、ルール1とルール2)をVM1に集約し、その他のルールをVM2に集約するなどと決定する。
ここで、分散決定部18eは、上述した手法等により、ルール1とルール2とルール3をVM1に集約し、ルール4をVM2に集約すると決定したとする。この場合、分散決定部18eは、図10に示した資源負荷管理簿17cを参照して、VM1にはルール1とルール2が保持されており、VM2にはルール3とルール4が保持されていることにより、ルール3を移動対象と決定する。そして、分散決定部18eは、移動対象としてルール3が決定されたことを分散実行部18fに通知する。
なお、分散決定部18eが分散させるルールを決定する手法が上述した手法以外にも、例えば、ストリーム負荷や資源負荷等を用いる手法など様々な手法を用いることができるが、他の手法については実施例4等で説明するので、ここでは省略する。
図5に戻り、分散実行部18fは、分散決定部18eによって決定された分散ルールに基づいてルールを移動させる。例えば、分散実行部18fは、分散ルールとして、ルール3をVM2からVM1に移動させることを受信したとする。この場合、分散実行部18fは、VM2のルール転送部16bに対して、ルール3およびルール3に関する各種情報をVM1に移動させる指示を送信する。
そして、分散実行部18fは、VM1のルール転送部14bまたはVM2のルール転送部16bから、移動が正常に完了した通知を受信すると、配信リスト/ストリーム負荷管理簿17bの配信リストや資源負荷管理簿17cのルールリストを更新する。
[処理の流れ]
次に、図11〜図13を用いて、実施例2に係るサーバにおける各種処理を説明する。図11は、実施例2に係るサーバにおける分散化処理の流れを示すフローチャートである。図12は、実施例2に係る移動元VMにおける分散化処理の流れを示すフローチャートであり、図13は、実施例2に係る移動先VMにおける分散化処理の流れを示すフローチャートである。
(サーバにおける分散化処理の流れ)
図11に示すように、サーバ10の関連度算出部18aは、システムが起動されると(ステップS101Yes)、各ルール間の関連度を算出して、ルール関連度管理簿17aに格納する(ステップS102)。
その後、資源負荷計測部18cやストリーム負荷計測部18dは、各VMの負荷状況や各ルールの負荷状況を取得して、負荷状況を監視する(ステップS103)。そして、分散決定部18eは、処理負荷が所定値を超えるVMが検出された場合(ステップS104Yes)、選択論理を決定する(ステップS105)。
つまり、分散決定部18eは、ルールを分散させる選択条件を管理者等から受け付けて、受け付けた選択条件に基づいて、ルールの分散を決定する。なお、上述した例では、「ルール関連度」に基づいて決定する手法を例示したが、ここでは、「負荷状況」と「ルール関連度」に基づいて決定する例で説明する。
そして、分散決定部18eは、閾値越え資源を多く消費するルールを複数選択する(ステップS106)。続いて、分散決定部18eは、選択したルールの関連度から、比重を用いて分散効率を計算する(ステップS107)。
その後、分散決定部18eは、計算した分散効率が最大であった場合(ステップS108Yes)、計算した分散効率となる分散化ルールを決定する(ステップS109)。続いて、分散決定部18eは、決定した分散化ルールに基づいて、移動対象となるルールと移動先VMと移動元VMとを決定する(ステップS110)。
そして、分散実行部18fは、分散決定部18eによって決定された分散ルールに基づいて、移動元VMに対して移動資源の切り離しを指示する(ステップS111)。つまり、分散実行部18fは、移動元VMに対して、移動対象のルールを移動先VMに移動させる指示を送信する。
また、分散実行部18fは、分散決定部18eによって決定された分散ルールに基づいて、移動先VMに対して移動資源の受け入れを指示する(ステップS112)。つまり、分散実行部18fは、移動先VMに対して、移動対象のルールを移動元VMから受信する指示を送信する。
その後、ルールの移動、つまり、CEP処理の分散化が終了すると(ステップS113Yes)、ステップS103以降の処理を実行する。
(移動元VMにおける分散化処理の流れ)
図12に示すように、移動元VMのルール転送部は、サーバ10からルールの資源切り離し指示を受信すると、指定されたルールの資源を分離する(ステップS201)。例えば、ルール転送部は、移動対象ルールをCEP処理対象外として、仮想メモリ等から分離する。
続いて、移動元VMのルール転送部は、排他/同期処理を開始し(ステップS202)、移動先VMに指定されたルールおよび管理資源を転送する(ステップS203)。例えば、ルール転送部は、移動対象ルールによるCEP処理を停止する排他制御を実行し、ルール管理簿に記憶される移動対象のルールおよびCEP状態管理簿に記憶される「関連ルール」が移動対象ルールとなっている情報を移動先VMにコピーする。
そして、移動元VMのルール転送部は、移動先VMへのルールおよび管理資源の転送が終了すると(ステップS204Yes)、排他/同期処理を終了する(ステップS205)。
(移動先VMにおける分散化処理の流れ)
図13に示すように、移動先VMのルール転送部は、サーバ10からルールの資源受け入れ指示を受信すると、排他/同期処理を開始する(ステップS301)。例えば、ルール転送部は、移動実行中のルールに対するCEP処理を停止する排他制御を実行する。
そして、移動先VMのルール転送部は、指定されたルールおよび管理資源を移動先VMから授受する(ステップS302)。例えば、ルール転送部は、受信したルールをルール管理簿に格納するとともに、受信した関連ルール等をCEP状態管理簿に格納する。
そして、移動先VMのルール転送部は、移動先VMからのルールおよび管理資源の転送が終了すると(ステップS303Yes)、排他/同期処理を解除し(ステップS304)、サーバ10のプロセッサ18に完了通知を送信する(ステップS305)。
[実施例2による効果]
このように、実施例2によれば、資源負荷状況に基づき、CEPのルール単位に、別VMに動的に移動することができ、同一VM上のCEP処理が資源的に厳しくなった場合、動的に負荷分散することができる。また、CEP処理負荷が増大した場合、ルール間の関連性と、CEP処理負荷割合を基に、最も分離オーバヘッドが少なくかつ負荷を分散できる組合せを選択し、それらを別VMに移動することができる。
実施例3では、複合イベント処理の関連度として、各ルールを形成する要素間の関連度に基づいて、ルールを要素に分割して動的に移動させて複合イベント処理を分散化する例について説明する。
図14は、実施例3に係る複合イベント処理の分散化を説明する図である。図14の(a)に示すように、実施例3に係るサーバ10は、VM1とVM2を動作させており、VM1でCEP処理を実行する。具体的には、VM1は、条件式として、要素A→要素B→要素Cで形成されるルール1と、要素A→要素B→要素Dで形成されるルール2とを保持する。また、VM1は、条件式として、要素E→要素F→要素Cで形成されるルール3と、要素G→要素H→要素Iで形成されるルール4を保持する。なお、要素間の矢印は、要素の連続性を示し、例えば要素A→要素B→要素Cの場合、要素A、要素B、要素Cが連続して実行された場合にルール1に適合することを示す。
つまり、VM1は、サーバ10に入力されるデータストリームから検出した事象からルール1を特定できた場合には、ルール1によって特定されるイベントを実行する。また、VM1は、サーバ10に入力されるデータストリームから検出した事象からルール2を特定できた場合には、ルール2によって特定されるイベントを実行する。
同様に、VM1は、サーバ10に入力されるデータストリームから検出した事象からルール2を特定できた場合には、ルール3によって特定されるイベントを実行する。また、VM1は、サーバ10に入力されるデータストリームから検出した事象からルール4を特定できた場合には、ルール4によって特定されるイベントを実行する。
このような状態において、サーバ10は、例えばVM1のCPU使用率等が所定値以上となったなどVM1の負荷が許容範囲を超えたことを検出する。すると、サーバ10は、ルール1〜ルール4の各ルールを形成する要素の組み合わせ数および/またはルールにおける要素間の繋がりに基づいて、要素間の関連度を算出する。
そして、例えば図14の(b)に示すように、サーバ10は、関連度の強い要素Aと要素BをVM1で動作させ、他の要素と特に関連度が強くない要素C〜要素IをVM2で動作させるように、要素を移動させる。
次に、図15〜図17を用いて、要素間の関連度に基づいて、ルールを要素に分割して動的に移動させる具体例を説明する。図15は、実施例3に係るルール関連度管理簿に記憶される情報の例を示す図である。図16は、実施例3に係る配信リスト/ストリーム負荷管理簿に記憶される情報の例を示す図である。図17は、実施例3に係る資源負荷管理簿に記憶される情報の例を示す図である。
図15に示すように、サーバ10のルール関連度管理簿17aは、「要素名、要素関連度、ルール関連度、資源負荷状況(CPU使用率、メモリ使用率、ネットワーク使用率)」を対応付けて記憶する。
ここで記憶される「要素名」は、ルールを形成する要素を識別する要素の名称である。「要素関連度」は、関連性の強さとして、ルール内の要素の重複数を基に算出された<要素組み合わせ数&(要素の「入」+「出」数)>が格納される。なお、要素の「入」+「出」とは、「要素A→要素B→要素C」の「要素B」に着目した場合、「入」が「要素A」側で「出」が「要素C」側となる。
「ルール関連度」は、当該要素を構成要素とするルールを示し、「CPU使用率」は、当該要素を実行するのに使用された仮想プロセッサの使用率であり、「メモリ使用率」は、当該要素を実行するのに使用された仮想メモリの使用率である。「ネットワーク使用率」は、当該要素の実行時に使用されたネットワークの使用率である。
ここで、関連度算出部18aが図15を生成する処理を具体的に説明する。ここでは、実施例2と同様のルール1〜ルール4を用いることとする。つまり、「ルール1」は、「要素A→要素B→要素C」で形成され、「ルール2」は、「要素A→要素B→要素D」で形成されるものとする。また、「ルール3」は、「要素E→要素F→要素C」で形成され、「ルール4」は、「要素G→要素H→要素I」で形成されるものとする。
まず、要素Aについて説明する。関連度算出部18aは、「要素A→要素B」の組み合わせがルール1とルール2に含まれ、さらに、「要素A→要素B」において要素Aの「入」が1つあることを検出する。この結果、関連度算出部18aは、「要素A」の「要素関連度」に<2&1:(A→B)>を格納するとともに、<2&1:(A→B)>に対応付けて「ルール関連度」に「ルール1/2」を格納する。
続いて、関連度算出部18aは、「要素A→要素B→要素C」の組み合わせがルール1に含まれ、さらに、「要素A→要素B→要素C」において要素Aの「入」が1つあることを検出する。この結果、関連度算出部18aは、「要素A」の「要素関連度」に<1&1:(A→B)→C>を格納するとともに、<1&1:(A→B)→C>に対応付けて「ルール関連度」に「ルール1」を格納する。
続いて、関連度算出部18aは、「要素A→要素B→要素D」の組み合わせがルール2に含まれ、さらに、「要素A→要素B→要素C」において要素Aの「入」が1つあることを検出する。この結果、関連度算出部18aは、「要素A」の「要素関連度」に<1&1:(A→B)→D>を格納するとともに、<1&1:(A→B)→D>に対応付けて「ルール関連度」に「ルール2」を格納する。
次に、要素Bについて説明する。関連度算出部18aは、「要素A→要素B」の組み合わせがルール1とルール2に含まれ、さらに、「要素A→要素B」において要素Bの「出」が1つあることを検出する。この結果、関連度算出部18aは、「要素B」の「要素関連度」に<2&1:(A→B)>を格納するとともに、<2&1:(A→B)>に対応付けて「ルール関連度」に「ルール1/2」を格納する。
続いて、関連度算出部18aは、「要素A→要素B→要素C」の組み合わせがルール1に含まれ、さらに、「要素A→要素B→要素C」において要素Bの「入」が1つかつ「出」が1つであることを検出する。この結果、関連度算出部18aは、「要素B」の「要素関連度」に<1&2:A→B→C>を格納するとともに、<1&2:A→B→C>に対応付けて「ルール関連度」に「ルール1」を格納する。
続いて、関連度算出部18aは、「要素A→要素B→要素D」の組み合わせがルール2に含まれ、さらに、「要素A→要素B→要素D」において要素Bの「入」が1つかつ「出」が1つであることを検出する。この結果、関連度算出部18aは、「要素B」の「要素関連度」に<1&2:A→B→D>を格納するとともに、<1&2:A→B→D>に対応付けて「ルール関連度」に「ルール2」を格納する。
次に、要素Cについて説明する。関連度算出部18aは、「要素A→要素B→要素C」の組み合わせがルール1に含まれ、さらに、「要素A→要素B→要素C」において要素Cの「入」が1つあることを検出する。この結果、関連度算出部18aは、「要素C」の「要素関連度」に<1&1:A→(B→C)>を格納するとともに、<1&1:A→(B→C)>に対応付けて「ルール関連度」に「ルール1」を格納する。
続いて、関連度算出部18aは、「要素E→要素F→要素C」の組み合わせがルール3に含まれ、さらに、「要素E→要素F→要素C」において要素Cの「入」が1つあることを検出する。この結果、関連度算出部18aは、「要素C」の「要素関連度」に<1&1:E→(F→C)>を格納するとともに、<1&1:E→(F→C)>に対応付けて「ルール関連度」に「ルール3」を格納する。
次に、要素Dについて説明する。関連度算出部18aは、「要素A→要素B→要素D」の組み合わせがルール2に含まれ、さらに、「要素A→要素B→要素D」において要素Dの「入」が1つあることを検出する。この結果、関連度算出部18aは、「要素D」の「要素関連度」に<1&1:A→(B→D)>を格納するとともに、<1&1:A→(B→D)>に対応付けて「ルール関連度」に「ルール2」を格納する。
上述した手法を用いて、関連度算出部18aは、ルール1〜ルール4が有する要素A〜要素Iについて、要素関連度およびルール関連度を算出して、ルール関連度管理簿17aを生成する。なお、「資源負荷状況」は、システム起動時は空白であり、システム起動後に、資源負荷計測部18cによって計測された値であり、随時更新される。
また、サーバ10の配信リスト/ストリーム負荷管理簿17bは、図16に示すように、「要素名、配信先リスト、ストリーム負荷」を対応付けて記憶する。ここで記憶される「要素名」は、ルールを形成する要素を一意に識別する要素の名称であり、「配信先リスト」は、当該要素を保持するVMを示す。「ストリーム負荷」は、全ストリームにおいて当該要素(事象)が適合した割合や頻度を示す。なお、「要素名」と「配信先リスト」は、分散実行部18fによって格納および更新される。「ストリーム負荷」は、システム起動時は空白であり、システム起動後に、ストリーム負荷計測部18dによって計測された値であり、随時更新される。
一例として、図16の場合、「要素A」は、「VM1」に保持され、全ストリームに対して「40%」の割合で適合していることを示す。「要素B」は、「VM1」に保持され、全ストリームに対して「10%」の割合で適合していることを示す。「要素C」は、「VM1」に保持され、全ストリームに対して「30%」の割合で適合していることを示す。
また、サーバ10の資源負荷管理簿17cは、図17の(a)に示すように、「VM名、リスト、資源負荷状況(CPU使用率、メモリ使用率、ネットワーク使用率)」を対応付けて記憶する。ここで記憶される「VM名」は、サーバ10の仮想領域12で稼動するVMを識別するVMの名称であり、「リスト」は、VMが保持するルール又は要素のリストを示す。「CPU使用率」は、VMにおける仮想プロセッサの使用率であり、「メモリ使用率」は、VMにおける仮想メモリの使用率である。「ネットワーク使用率」は、VM間のネットワークの使用率である。なお、「VM名」と「リスト」は、分散実行部18fによって格納および更新される。「資源負荷状況」は、システム起動時は空白であり、システム起動後に、資源負荷計測部18cによって計測された値であり、随時更新される。
そして、資源負荷管理簿17cが図17の(a)の状態で、分散決定部18eは、処理負荷が所定値を超えるVMが検出された場合、要素間の関連度に基づいて、VM各々に要素を移動させる。例えば、分散決定部18eは、ルール関連度管理簿17aの<要素組み合わせ数&(要素の「入」+「出」数)>の最大値が2以上である要素を1つのVMに移動させると決定したとする。この場合、分散決定部18eは、要素Aと要素BとをVM1に移動させ、他の要素をVM2に移動させる指示を分散実行部18fに通知する。例えば、分散決定部18eは、関連度が小さい方を選択する。
別例としては、分散決定部18eは、ルール関連度管理簿17aの「要素組み合わせ数と(要素の「入」+「出」数)との乗算結果が2以上」である要素を1つのVMに移動させると決定したとする。この場合、分散決定部18eは、<2&1>を有する要素Aと要素BとをVM1に移動させ、他の要素をVM2に移動させる指示を分散実行部18fに通知する。例えば、関連度が強い要素は、出来るだけ一つのVMで実行させるよう処理を行う。つまり、負荷が大きいものの中で、関連度が小さい方を選択する。
このようして、分散決定部18eは、要素Aと要素BとをVM1に移動させ、他の要素をVM2に移動させると決定したとする。この場合、分散実行部18fは、VM1とVM2のそれぞれに対して、要素Aと要素BをVM1に集約し、要素C〜要素IをVM2に集約する指示を送信する。すると、VM1およびVM2は、要素Aと要素Bと要素Aに関連する情報と要素Bに関連する情報とをVM1に移動させ、要素C〜要素Iと要素C〜要素Iに関連する情報をVM2に移動させる。
そして、分散実行部18fは、VM1またはVM2から移動完了通知を受信した場合、図17の(b)に示すように、VM1のリスト「ルール1/ルール2/ルール3/ルール4」から「要素A、要素B」に更新する。同様に、分散実行部18fは、VM2のリストとして「要素C〜要素I」を生成する。さらに、分散実行部18fは、図16に示した要素ごとの「配信先リスト」を更新する。
このように、実施例3によれば、CEP処理負荷が増大した場合、要素間の関連性と、CEP処理負荷割合を基に、最も分離オーバヘッドが少なく、かつ負荷を分散できる要素の組合せを選択し、各VMに移動させることができる。
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下に異なる実施例を説明する。
(サーバへの適用)
実施例1〜3では、サーバ内のVMでCEP処理を実行する例で説明したが、これに限定されるものではなく、物理サーバでCEP処理を実行する場合でも同様に処理することができる。図18は、物理サーバごとにCEPエンジンを搭載したシステム構成図である。図18に示すように、このシステムは、サーバAとサーバBとサーバCとサーバDとサーバ(マネージャ)とが相互に通信可能に接続されている。
このうち、サーバAとサーバBとサーバCとサーバDは、CEP処理を実行するサーバである。つまり、サーバAとサーバBとサーバCとサーバDは、図5に示したVM1やVM2と同様の機能を有し、保持するルール又は要素に基づいてイベントを実行するサーバである。また、サーバ(マネージャ)は、各サーバのCEP処理を管理するサーバである。つまり、サーバ(マネージャ)は、図5に示したプロセッサ18の各機能部とメモリ17の各データベースを有する。そして、サーバ(マネージャ)は、サーバAとサーバBとサーバCとサーバDの少なくとも1台の負荷が所定値以上になった場合に、実施例1〜3と同様の手法を用いて、ルール又は要素の分散を実行する。
(分散ルールの決定手法)
実施例1〜3で説明した分散ルール、言い換えると、移動対象となるルール又は要素の決定手法以外にも様々な手法を用いることができる。ここでは、移動対象となるルールを決定する例について説明するが、要素の場合も同様に実行できる。一例としては、実施例2と実施例3とを併用することもできる。
例えば、「ルール関連度」、「資源負荷状況」、「ストリーム負荷状況」各々の比重を与えて、分散値を算出し、算出した分散値が大きいものから順に、一つ、又は複数を1つのVMに移動させることもできる。一例として、「ルール関連度」の比重を3、「資源負荷状況」の比重を2、「ストリーム負荷状況」の比重1とする。
この場合、分散決定部18eは、「ルール関連度」として「関連ルール数×関連要素数×3」を算出する。また、分散決定部18eは、「資源負荷状況」として、『「CPU使用率、メモリ使用率、ネットワーク使用率」のうち閾値を越えるものの数×2』を算出する。また、分散決定部18eは、「ストリーム負荷状況」として、『閾値を超える「ストリーム負荷状況」の数×1』を算出する。そして、分散決定部18eは、算出した各値を加算した結果を分散値と算出し、算出した分散値に基づいて、ルールの分散を決定する。
また、別の手法としては、「ルール関連度」、「資源負荷状況」、「ストリーム負荷状況」のうち、どの値を優先させるのか、どの値を用いるのかを管理者から受け付けた上で、上述した処理を実行することもできる。つまり、「ルール関連度」、「資源負荷状況」、「ストリーム負荷状況」の組み合わせ、比重の値等は、任意に設定することができる。
また、分散決定部18eは、算出されたCPUなどの資源の消費状況に基づいて、資源の消費が所定値以上である条件式のうち、ルール間の関連度が低いルール各々を別々のVMに移動させることで、CEP処理を負荷分散させることもできる。同様に、分散決定部18eは、算出されたCPUなどの資源の消費状況に基づいて、資源の消費が所定値以上である要素のうち、要素間の関連度が低い条件式各々を別々のVMに移動させることで、CEP処理を負荷分散させることもできる。なお、資源の消費としては、図8や図15に示したルールごとの消費量または要素ごとの消費量を用いることができる。
なお、閾値越え資源を多く消費するルールで、かつ、ルール関連性が低い(<*(*)>が小さい)ルールを選択するのが負荷分散上、優位である。同様に、要素間関連性が最も低く(<?&?>が最も小さく)、閾値越え資源を最も消費する要素を選択するのが、負荷分散上、優位である。
(負荷削減時の戻し)
例えば、実施例2や実施例3で説明したルールや要素を分散させた後、処理負荷が正常に戻った場合には、分散前の状態に戻すこともできる。なお、分散前の状態は、メモリ等に格納しておけばよい。一例としては、統合と分散化で「閾値」は別々に設定し、過去の実績をフィードバックして、起動タイミングを決定する。例えば、移動前の情報をメモリ等に格納しておき、処理が高くなったVMの処理負荷が所定値まで軽減した場合に、移動前の状態にルールを移動させたり、要素を組み合わせてルールに戻したりすることもできる。また、図8に示した関連度の強さに基づいて、例えば、分散させたルールを関連度の強いルールと弱いルールとに分けて、それぞれを別々のVMで実行させるようにしてもよい。
(システム)
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともできる。あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、例えば図6〜図10、図15〜図17等に示した各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、例えば分散決定部18eと分散実行部18fとを統合するなど各装置の分散・統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
(プログラム)
ところで、上記の実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することができる。そこで、以下では、上記の実施例と同様の機能を有するプログラムを実行するコンピュータシステムの一例を説明する。
図19は、複合イベント分散プログラムを実行するコンピュータシステムの例を示す図である。図19に示すように、コンピュータシステム100は、バス100aにCPU105、ROM(Read Only Memory)104、RAM(Random Access Memory)101が接続される。また、コンピュータシステム100は、バス100aにNIC(Network Interface Card)102、HDD(Hard Disk Drive)103が接続されている。
また、HDD103には、図5に示したルール関連度管理簿17aに対応するルール関連度管理テーブル103aが設けられる。同様に、HDD103には、配信リスト/ストリーム負荷管理簿17bに対応する配信リスト/ストリーム負荷管理テーブル103bが設けられる。同様に、HDD103には、資源負荷管理簿17cに対応する資源負荷管理テーブル103cが設けられる。
ROM104は、関連度算出プログラム104a、ストリーム受信プログラム104b、資源負荷計測プログラム104c、ストリーム負荷計測プログラム104d、分散決定プログラム104e、分散実行プログラム104fを保持する。タンジブル(tangible)な記録媒体の例としてROM104を例に挙げたが、HDD、RAM、CDROM等の他のタンジブルなコンピュータ読み取り可能な記録媒体に各種プログラムを格納しておき、コンピュータに読み取らせることとしてもよい。なお、タンジブルな記憶媒体を遠隔地に配置し、コンピュータが、そのタンジブルな記憶媒体にアクセスすることでプログラムを取得して利用してもよい。また、その際、取得したプログラムをそのコンピュータ自身のタンジブルな記録媒体に格納して用いてもよい。
CPU105は、関連度算出プログラム104aを読み出して実行することで、関連度算出部18aと同様の動作を関連度算出プロセス105aとして実現する。また、CPU105は、ストリーム受信プログラム104bを読み出して実行することで、ストリーム受信部18bと同様の動作をストリーム受信プロセス105bとして実現する。CPU105は、資源負荷計測プログラム104cを読み出して実行することで、資源負荷計測部18cと同様の動作を資源負荷計測プロセス105cとして実現する。
CPU105は、ストリーム負荷計測プログラム104dを読み出して実行することで、ストリーム負荷計測部18dと同様の動作をストリーム負荷計測プロセス105dとして実現する。CPU105は、分散決定プログラム104eを読み出して実行することで、分散決定部18eと同様の動作を分散決定プロセス105eとして実現する。CPU105は、分散実行プログラム104fを読み出して実行することで、分散実行部18fと同様の動作を分散実行プロセス105fとして実現する。このようにROM104に保持した各種プログラムは、複合イベント分散プログラムの一部として機能し、コンピュータ100は、ROM104から各種プログラムを読み出して実行すること複合イベント分散方法を実行する複合イベント分散装置として動作する。
1 サーバ
1a 算出部
1b 取得部
1c 検出部
1d 分散部
10 サーバ
11 通信制御I/F部
12 仮想領域
13、15 仮想メモリ
13a、15a ルール管理簿
13b、15b CEP状態管理簿
14、16 仮想プロセッサ
14a、16a CEPエンジン
14b、16b ルール転送部
17 メモリ
17a ルール関連度管理簿
17b 配信リスト/ストリーム負荷管理簿
17c 資源負荷管理簿
18 プロセッサ
18a 関連度算出部
18b ストリーム受信部
18c 資源負荷計測部
18d ストリーム負荷計測部
18e 分散決定部
18f 分散実行部

Claims (9)

  1. 複数の情報処理手段それぞれが実行する、イベントを特定する条件式にそれぞれ基づいてストリームから検出されたイベントへの、複数の複合イベント処理に対し、前記複数の複合イベント処理間の関連度を、前記複数の複合イベント処理それぞれに対応づけられた前記条件式の実行実績に基づき算出する算出部と、
    前記複数の情報処理手段それぞれが動作するサーバにおける、前記複数の情報処理手段それぞれの前記サーバの資源使用状況に基づき算出される処理負荷状況をそれぞれ取得する取得部と、
    前記取得部によって取得された処理負荷状況に基づいて、処理分散対象の情報処理手段を検出する検出部と、
    前記検出部によって処理分散対象の情報処理手段が検出された場合、前記算出部によって算出された前記複数の複合イベント処理間の関連度に基づいて、前記複数の情報処理手段の少なくとも1つに前記複合イベント処理を分散させる分散部と、
    を有することを特徴とする複合イベント分散装置。
  2. 前記算出部は、前記複数の複合イベント処理間の関連度として、前記条件式を構成する要素の重複数に基づいて、前記条件式間の関連度を算出し、
    前記分散部は、前記算出部によって算出された前記条件式間の関連度に基づいて、前記複数の情報処理手段の少なくとも1つに前記条件式によりイベントを特定させて、前記複合イベント処理を分散させることを特徴とする請求項1に記載の複合イベント分散装置。
  3. 前記算出部は、前記複数の複合イベント処理間の関連度として、要素の順番が規定される前記条件式を構成する前記要素の重複数および/または前記条件式における前記要素順番の重複数に基づいて、前記要素間の関連度を算出し、
    前記分散部は、前記条件式各々を要素に分割し、前記算出部によって算出された前記要素間の関連度に基づいて、前記情報処理手段の少なくとも1つに前記分割した要素によりイベントを特定させて、前記複合イベント処理を分散させることを特徴とする請求項1または2に記載の複合イベント分散装置。
  4. 前記分散部は、前記算出部によって算出された前記条件式間の関連度が第1の閾値以上である条件式または前記算出部によって算出された前記要素間の関連度が第2の閾値以上である要素が集約するように、前記条件式または要素を前記情報処理手段いずれか1つに移動させて、前記複合イベント処理を分散させることを特徴とする請求項2または3に記載の複合イベント分散装置。
  5. 前記算出部は、前記条件式ごとに、各条件式により前記複合イベント処理を実行する各情報処理手段について前記処理負荷状況を算出し、
    前記分散部は、前記算出部によって算出された各処理負荷状況が所定値以上の条件式のうち、前記算出部によって算出された前記条件式間の関連度が第1の閾値未満である条件式各々に対応する複合イベント処理を異なる情報処理手段で実行させて、前記複合イベント処理を分散させることを特徴とする請求項1に記載の複合イベント分散装置。
  6. 前記算出部は、前記条件式を構成する要素ごとに、当該要素によって特定される事象の検出処理を実行する各情報処理手段について前記処理負荷状況を算出し、
    前記分散部は、前記算出部によって算出された資源の消費状況が所定値以上の要素のうち、前記算出部によって算出された前記要素間の関連度が第2の閾値未満である要素各々に対応する複合イベント処理を異なる情報処理手段で実行させて、前記複合イベント処理を分散させることを特徴とする請求項1に記載の複合イベント分散装置。
  7. 前記分散部は、前記検出部によって検出された情報処理手段の前記処理負荷状況が所定値未満となった場合には、分散させた複合イベント処理を分散前の状態に戻すことを特徴とする請求項5に記載の複合イベント分散装置。
  8. コンピュータが実行する制御方法であって、
    複数の情報処理手段それぞれが実行する、イベントを特定する条件式にそれぞれ基づいてストリームから検出されたイベントへの、複数の複合イベント処理に対し、前記複数の複合イベント処理間の関連度を、前記複数の複合イベント処理それぞれに対応づけられた前記条件式の実行実績に基づき算出し、
    前記複数の情報処理手段それぞれが動作するサーバにおける、前記複数の情報処理手段それぞれの前記サーバの資源使用状況に基づき算出される処理負荷状況をそれぞれ取得し、
    前記取得した処理負荷状況に基づいて、処理分散対象の情報処理手段を検出し、
    前記処理分散対象の情報処理手段を検出した場合、前記算出した前記複数の複合イベント処理間の関連度に基づいて、前記複数の情報処理手段の少なくとも1つに前記複合イベント処理を分散させることを特徴とする複合イベント分散方法。
  9. コンピュータに、
    複数の情報処理手段それぞれが実行する、イベントを特定する条件式にそれぞれ基づいてストリームから検出されたイベントへの、複数の複合イベント処理に対し、前記複数の複合イベント処理間の関連度を、前記複数の複合イベント処理それぞれに対応づけられた前記条件式の実行実績に基づき算出し、
    前記複数の情報処理手段それぞれが動作するサーバにおける、前記複数の情報処理手段それぞれの前記サーバの資源使用状況に基づき算出される処理負荷状況をそれぞれ取得し、
    前記取得した処理負荷状況に基づいて、処理分散対象の情報処理手段を検出し、
    前記処理分散対象の情報処理手段を検出した場合、前記算出した前記複数の複合イベント処理間の関連度に基づいて、前記複数の情報処理手段の少なくとも1つに前記複合イベント処理を分散させることを特徴とする複合イベント分散プログラム。
JP2010226086A 2010-10-05 2010-10-05 複合イベント分散装置、複合イベント分散方法および複合イベント分散プログラム Expired - Fee Related JP5664098B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2010226086A JP5664098B2 (ja) 2010-10-05 2010-10-05 複合イベント分散装置、複合イベント分散方法および複合イベント分散プログラム
US13/193,701 US8533731B2 (en) 2010-10-05 2011-07-29 Apparatus and method for distrubuting complex events based on correlations therebetween

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010226086A JP5664098B2 (ja) 2010-10-05 2010-10-05 複合イベント分散装置、複合イベント分散方法および複合イベント分散プログラム

Publications (2)

Publication Number Publication Date
JP2012079242A JP2012079242A (ja) 2012-04-19
JP5664098B2 true JP5664098B2 (ja) 2015-02-04

Family

ID=45890946

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010226086A Expired - Fee Related JP5664098B2 (ja) 2010-10-05 2010-10-05 複合イベント分散装置、複合イベント分散方法および複合イベント分散プログラム

Country Status (2)

Country Link
US (1) US8533731B2 (ja)
JP (1) JP5664098B2 (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5927871B2 (ja) 2011-11-30 2016-06-01 富士通株式会社 管理装置、情報処理装置、管理プログラム、管理方法、プログラムおよび処理方法
WO2014034060A1 (ja) * 2012-08-30 2014-03-06 日本電気株式会社 イベント処理制御装置、ノード装置、イベント処理システム、及び、イベント処理制御方法
CN103699474A (zh) * 2012-09-27 2014-04-02 鸿富锦精密工业(深圳)有限公司 存储设备监控系统及方法
US20150278722A1 (en) * 2012-10-17 2015-10-01 Nec Corporation Event processing device, event processing method, and event processing program
JP6062034B2 (ja) 2013-03-19 2017-01-18 株式会社日立製作所 処理制御システム、処理制御方法、および処理制御プログラム
US9264310B2 (en) * 2013-04-12 2016-02-16 International Business Machines Corporation Monitoring and distributing event processing within a complex event processing environment
JP6248523B2 (ja) 2013-10-07 2017-12-20 富士通株式会社 データ処理管理方法、情報処理装置およびデータ処理管理プログラム
JP2015119472A (ja) * 2013-11-18 2015-06-25 株式会社リコー 選択システム、通信管理システム、通信システム、プログラム、及び選択方法
JP6344009B2 (ja) * 2014-03-28 2018-06-20 富士通株式会社 情報処理装置,プログラム,情報処理方法
JP6274007B2 (ja) * 2014-05-16 2018-02-07 富士通株式会社 ルール生成プログラム、情報処理装置、およびルール生成方法
US9921881B2 (en) * 2014-05-27 2018-03-20 Sybase, Inc. Optimizing performance in CEP systems via CPU affinity
US9633087B2 (en) 2014-06-06 2017-04-25 Software Ag Systems and/or methods for capability-aware dynamic distributed event processing
JP6428012B2 (ja) * 2014-07-16 2018-11-28 富士通株式会社 分散処理プログラム、分散処理管理装置及び分散処理方法
JP6547342B2 (ja) 2015-03-16 2019-07-24 日本電気株式会社 分散処理制御装置
US9910714B2 (en) * 2015-06-29 2018-03-06 Advanced Micro Devices, Inc. Scriptable dynamic load balancing in computer systems
US20180176089A1 (en) * 2016-12-16 2018-06-21 Sap Se Integration scenario domain-specific and leveled resource elasticity and management
CN113448555B (zh) * 2021-06-30 2024-04-09 深信服科技股份有限公司 关联分析方法、装置、设备及存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7099350B2 (en) * 2001-04-24 2006-08-29 Atitania, Ltd. Method and apparatus for converting data between two dissimilar systems
US8130916B2 (en) 2009-01-07 2012-03-06 International Business Machines Corporation Dynamically improving performance of an interactive voice response (IVR) system using a complex events processor (CEP)
WO2010107103A1 (ja) * 2009-03-17 2010-09-23 日本電気株式会社 イベント処理システム、イベント処理方法、ローカルシステム、ディスパッチャ、及びプログラム記憶媒体

Also Published As

Publication number Publication date
JP2012079242A (ja) 2012-04-19
US8533731B2 (en) 2013-09-10
US20120084788A1 (en) 2012-04-05

Similar Documents

Publication Publication Date Title
JP5664098B2 (ja) 複合イベント分散装置、複合イベント分散方法および複合イベント分散プログラム
CN109218355B (zh) 负载均衡引擎,客户端,分布式计算系统以及负载均衡方法
EP2437168B1 (en) Method and device for balancing load of multiprocessor system
JP5815512B2 (ja) リソース管理方法、計算機システムおよびプログラム
JP5914245B2 (ja) 多階層の各ノードを考慮した負荷分散方法
US20200225984A1 (en) Computing node job assignment for distribution of scheduling operations
US10972555B2 (en) Function based dynamic traffic management for network services
JP6519111B2 (ja) データ処理制御方法、データ処理制御プログラムおよびデータ処理制御装置
US10891164B2 (en) Resource setting control device, resource setting control system, resource setting control method, and computer-readable recording medium
US11411799B2 (en) Scalable statistics and analytics mechanisms in cloud networking
CN106681839B (zh) 弹性计算动态分配方法
CN109614227A (zh) 任务资源调配方法、装置、电子设备及计算机可读介质
US10282245B1 (en) Root cause detection and monitoring for storage systems
JP2017037492A (ja) 分散処理プログラム、分散処理方法および分散処理装置
KR20200080458A (ko) 클라우드 멀티-클러스터 장치
JP5957965B2 (ja) 仮想化システム、負荷分散装置、負荷分散方法、及び負荷分散プログラム
US20150365474A1 (en) Computer-readable recording medium, task assignment method, and task assignment apparatus
JP2011192187A (ja) 管理装置、管理方法およびプログラム
US10223189B1 (en) Root cause detection and monitoring for storage systems
US10594620B1 (en) Bit vector analysis for resource placement in a distributed system
US11726758B2 (en) Efficient scaling of a container-based application in a distributed computing system
JP5388134B2 (ja) 計算機システム、及び、移動データ決定方法
Ibrahim et al. Improving mapreduce performance with progress and feedback based speculative execution
JP6063882B2 (ja) 仮想マシン配置システム及び方法
JP6098167B2 (ja) 仮想マシン管理プログラム及びその方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130805

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140304

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140311

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140512

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20140708

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141008

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20141020

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20141111

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141124

R150 Certificate of patent or registration of utility model

Ref document number: 5664098

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees