JP5560814B2 - 負荷分散システム、負荷分散サーバおよび負荷分散方法 - Google Patents

負荷分散システム、負荷分散サーバおよび負荷分散方法 Download PDF

Info

Publication number
JP5560814B2
JP5560814B2 JP2010068544A JP2010068544A JP5560814B2 JP 5560814 B2 JP5560814 B2 JP 5560814B2 JP 2010068544 A JP2010068544 A JP 2010068544A JP 2010068544 A JP2010068544 A JP 2010068544A JP 5560814 B2 JP5560814 B2 JP 5560814B2
Authority
JP
Japan
Prior art keywords
event
server
processing
load
rule
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
JP2010068544A
Other languages
English (en)
Other versions
JP2011203845A (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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2010068544A priority Critical patent/JP5560814B2/ja
Publication of JP2011203845A publication Critical patent/JP2011203845A/ja
Application granted granted Critical
Publication of JP5560814B2 publication Critical patent/JP5560814B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Computer And Data Communications (AREA)

Description

本発明は、負荷分散システムおよび負荷分散方法に関し、特にRFID(Radio Frequency IDentification)、センサのようなデバイスなどから大量に発生するイベントの処理負荷を各サーバに分散させるシステムに関する。
デバイスなどから大量に発生するイベントを処理するシステムとして、特許文献1に開示されている発明がある。図16は、特許文献1のシステムを示した図である。特許文献1に記載されたシステムは、イベント処理分散制御部(EP-CTL)、イベント振り分け部(ディスパッチャ)および複数の負荷分散サーバ(EP#a、EP#b、EP#c、およびEP#d)から構成される。このシステムの動作は以下のとおりである。イベント処理をシステムに要求するアプリケーション(APP)は、イベントを処理するための処理ルールをイベント処理分散制御部(EP-CTL)に送信する(ステップS1601)。処理ルールを受信したイベント処理分散制御部は、以下の条件をすべて満たすように処理ルールを適切な負荷分散サーバに設定する(ステップS1602)。第一の条件は、各負荷分散サーバの負荷が均等になることである。第二の条件は、所定の関係を満たすイベントに関するイベント処理は、同じ負荷分散サーバで行われることである。またイベント処理分散制御部は、イベント振り分け部に対して、以下の条件を満たすようにイベント振り分けルール(ディスパッチルール)を設定する(ステップS1603)。前述の条件とは、ディスパッチャが受け取るイベントが、そのイベントに関する処理ルールを設定された負荷分散サーバに送られることである。ディスパッチャは、デバイスなどのイベント発生源(Dev)から発生したイベントを受け取る(ステップS1604)。そしてディスパッチャは、イベント振り分けルールに基づいて、受け取ったイベントに関する処理ルールが設定された負荷分散サーバにそのイベントを転送する(ステップS1605)。イベントを受け取った負荷分散サーバは、設定された処理ルールに基づき処理を行い、その処理結果をアプリケーションに通知する(ステップS1606)。
特許文献2には、複数の情報処理装置を備えるグリッドコンピューティングシステムが開示されている。特許文献2に記載されたシステムは、各情報処理装置が自身の処理能力およびジョブの処理内容に基づいて情報処理装置自身でジョブを実行するか否か判断する。そして各情報処理装置が、自身でそのジョブを実行しないと判断した場合にそのジョブの実行要求を他の情報処理装置に転送する。
特許第4161998号 国際公開WO2005/111798号
特許文献1では、負荷分散サーバにおける負荷分散を実現するために、イベント処理分散制御部が、アプリケーションから送られる複数の処理ルールの配置をまとめて計算して負荷分散サーバに設定する。特許文献1に記載の技術は、一つの装置でまとめて処理ルールの配置を設定するので、処理ルールの割り当てに必要な計算や処理ルールの各負荷分散サーバへの設定に時間がかかる。したがって特許文献1に記載の技術は、短期的なイベントの処理負荷の変動に対処することが困難である。
特許文献2では、各情報処理装置が同様の情報処理を行うことを前提としている。したがって情報処理装置がアプリケーションから複数のイベント処理に対する処理ルールを受け取った際、イベント負荷分散制御部は、これらの処理ルールの配置をまとめて計算して負荷分散サーバに設定する。特許文献2に記載の技術は、処理ルールの割り当てに必要な計算や処理ルールの各負荷分散サーバへの設定に時間がかかる。したがって特許文献2に記載の技術は、短期的なイベントの処理負荷の変動に対処することが困難である。
[発明の目的]
本発明の目的の一つは、上記課題を解決し、短期的なイベントの処理負荷の変動に対処することができるイベント処理システム、イベント処理装置、イベント処理方法およびイベント処理プログラムを提供することにある。
本発明の一態様における第一の負荷分散サーバは、ディスパッチャから送信される各イベントを処理するための情報処理の内容を含む処理ルールを記憶する処理ルール記憶部と、前記ディスパッチャからイベントとともに負荷分散サーバを識別するサーバ識別子を受け取ると、前記イベントに対応する処理ルールを、前記サーバ識別子で識別される前記負荷分散サーバが備える処理ルール記憶部から読み出す処理ルール検索部とを備える。
また、本発明の一態様における第一の負荷分散システムは、イベントを処理する負荷分散サーバと、当該イベントを前記負荷分散サーバに送信するディスパッチャとを備え、前記負荷分散サーバは、前記ディスパッチャから送信される各イベントを処理するための情報を含む処理ルールを記憶する処理ルール記憶部と、イベントが処理される条件を示すイベント条件と前記負荷分散サーバを識別するサーバ識別子とを対応付けた情報を含むディスパッチルールを識別するディスパッチルール識別子と、負荷分散サーバを識別するサーバ識別子と、を含む情報である代理処理要求を前記ディスパッチャに送信する負荷監視部と、前記ディスパッチャからイベントとサーバ識別子とを受信すると、当該イベントに対応する処理ルールを、当該サーバ識別子で識別される負荷分散サーバが備える前記処理ルール記憶部から読み出す処理ルール検索部とを備え、前記ディスパッチャは、ディスパッチルールを、当該ディスパッチルールのディスパッチルール識別子と対応付けて記憶するディスパッチルール記憶部と、前記負荷分散サーバから代理処理要求を受信すると、当該代理処理要求に含まれるディスパッチルール識別子で識別されるディスパッチルールに当該代理処理要求に含まれるサーバ識別子を対応付けて前記ディスパッチルール記憶部に記憶する負荷分散制御部と、イベントを受信し、受信したイベントが満たすイベント条件を含むディスパッチルールを前記ディスパッチルール記憶部から読み出し、読み出したディスパッチルールに、サーバ識別子が対応付けられていた場合に、当該サーバ識別子で識別される負荷分散サーバに、前記読み出したディスパッチルールに含まれるサーバ識別子と、前記受信したイベントとを送信するイベント転送部とを備える。
本発明の一態様における第一の負荷分散方法は、ディスパッチャから送信される各イベントを処理するための情報処理の内容を含む処理ルールを記憶部に記憶し、前記ディスパッチャからイベントとともにサーバを識別するサーバ識別子を受け取ると、前記イベントに対応する処理ルールを、前記サーバ識別子で識別される前記サーバが備える記憶部から読み出す。
本発明の一態様における第一の負荷分散プログラムは、コンピュータに、ディスパッチャから送信される各イベントを処理するための情報を含む処理ルールを記憶部に記憶する処理と、前記ディスパッチャからイベントとともにサーバを識別するサーバ識別子を受け取ると、前記イベントに対応する処理ルールを、前記サーバ識別子で識別される前記サーバが備える記憶部から読み出す処理とを実行させる。
本発明の一態様における第一の負荷分散プログラムを記録した記録媒体は、コンピュータに、ディスパッチャから送信される各イベントを処理するための情報を含む処理ルールを記憶部に記憶する処理と、前記ディスパッチャからイベントとともにサーバを識別するサーバ識別子を受け取ると、前記イベントに対応する処理ルールを、前記サーバ識別子で識別される前記サーバが備える記憶部から読み出す処理とを実行させるための負荷分散プログラム、を記録する。
本発明の効果の一つは、 短期的なイベントの処理負荷の変動に対応できることである。
図1は、本発明の第一の実施の形態における負荷分散サーバの構成を示すブロック図である。 図2は、イベントの一例を示す図である。 図3は、処理ルールの一例を示す図である。 図4は、本発明の第一の実施の形態における負荷分散サーバの動作の概要の一例を示すフローチャートである。 図5は、本発明の第二の実施の形態における負荷分散システムの構成を示すブロック図である。 図6は、本発明の第二の実施の形態における負荷分散サーバの構成を示すブロック図である。 図7は、本発明の第二の実施の形態におけるディスパッチャの構成を示すブロック図である。 図8は、本発明の第二の実施の形態における負荷分散システムにおいて、負荷分散サーバがイベントの処理を行うための処理ルールを読み出す動作の概要の一例を示すフローチャートである。 図9は、ディスパッチャが負荷分散サーバに送信する情報のフォーマットの一例を示す図である。 図10は、ディスパッチャが負荷分散サーバに送信する情報のフォーマットの一例を示す図である。 図11は、本発明の第二の実施の形態において、負荷分散システムの負荷分散サーバが代理処理要求をディスパッチャに送信する動作の概要の一例を示すフローチャートである。 図12は、代理処理要求の一例を示す図である。 図13は、本発明の第三の実施の形態における負荷分散システムの構成を示すブロック図である。 図14は、本発明の第三の実施の形態における負荷分散サーバの構成を示すブロック図である。 図15は、ある時点での、各負荷分散サーバの処理負荷をそれぞれ示した図である。 図16は、関連技術におけるシステムの構成を示すブロック図である。
本発明を実施するための形態について図面を参照して詳細に説明する。なお、各図面および明細書記載の各実施の形態において、同様の機能を備える構成要素には同様の符号が与えられている。
[第一の実施の形態]
図1は、本発明の第一の実施の形態における負荷分散サーバ90の構成を示すブロック図である。
図1を参照すると、本発明の第一の実施の形態における負荷分散サーバ90は、処理ルール検索部93と、処理ルール記憶部95と、を備える。処理ルール検索部93は、処理ルール記憶部95と接続されている。
===処理ルール記憶部95===
処理ルール記憶部95は、各イベント601を処理するための情報を含む処理ルールを記憶する。
ここで、イベント601とは、例えばRFID(Radio Frequency IDentification)システムやセンサのような一または複数のデバイスにおいて生成される各情報のことである。また、イベント601は、図示しないディスパッチャから負荷分散サーバ90に送信される。
例えば図2に示されるように、イベント601は、イベントの内容を示すイベントタイプ602と、ペア603とを含む。ペア603は、属性名603−1と属性値603−2とを含む。イベントは、一または複数のペア603を含む。例えば図2によれば、イベントは、イベントタイプ602として「衝撃」を含む。またイベントは、属性名603−1として「センサID」、「衝撃値」、「場所」および「時刻」を含む。またイベントは、属性名603−1に対応する属性値603−2として、「ID1」、「50G」、「東京都港区芝」および「10:10:25」を含む。これらは例示であって、イベントタイプ602、属性名603−1および属性値603−2が上述の値に限られるものではない。
処理ルールは、例えば特許文献1に記載されている技術と同様の情報であってもよい。例えば、処理ルールは、ルールの名称、処理すべきイベントの条件(イベント条件)、およびイベントに対する処理内容の具体的な記述を含む。ルールの名称とは、各処理ルールの名称を表す。イベント条件とは、この処理ルールが適用されるイベントの条件を示す。例えば、イベント条件は、「イベントに含まれる所定の属性名603−1に対する属性値603−2がある値の場合にこの処理ルールが実行される」ことを示す情報を含む。
図3は、処理ルール3の一例を示した図である。図3を参照すると、行0001は、処理ルール3の名称("Rule_A")を示している。行0002は、この処理ルールが適用されるイベントの条件を示している。図3の例では、行0002は、処理されるイベントが"tag_kind"という、RFIDタグの種別を示すフィールドを含み、かつ、そのフィールドの値が4である場合に、この処理ルールがそのイベントに適用される、というイベント条件を示している。
行0003以下の行は、処理の内容を示している。行0004は、処理ルールに記載された処理が開始される際に行われる、初期値の設定処理を示す。行0005は、配列型のイベントを格納する配列を示す"eventlog"という、記憶領域が確保されることを示している。行0006は、格納されているイベントの数を示す"event_count"という、整数変数が0にクリアされることを示している。
処理ルール記憶部95は、図示しないイベント処理分散制御部(EP−CTL)から処理ルールを受信し、受信した各処理ルールを記憶してもよい。EP−CTLは特許文献1に記載された技術が適用された装置であっても良い。
EP−CTLは、外部装置から処理ルールを受信し、受信した各処理ルールを所定のアルゴリズムに基づいて各負荷分散サーバ90に配信する。所定のアルゴリズムには例えば特許文献1に記載された方法が適用されうる。
===処理ルール検索部93===
第一に、処理ルール検索部93は、図示しないディスパッチャからイベントを受け取ると、そのイベントに対応する処理ルールを処理ルール記憶部95から読み出す。例えば処理ルール検索部93は、イベントに含まれる各情報が処理ルール記憶部95に記憶されている各処理ルールのイベント条件を満たすか否かによって読み出す処理ルールを特定してもよい。
第二に、処理ルール検索部93は、前述のディスパッチャからイベントとともに負荷分散サーバ90を識別するサーバ識別子を受け取る。そして処理ルール検索部93は、受け取ったイベントに対応する処理ルールを、受け取ったサーバ識別子で識別される負荷分散サーバ90が備える処理ルール記憶部95から読み出す。すなわち、処理ルール記憶部95は、他の負荷分散サーバ90から参照可能である。例えば処理ルール検索部93は、イベントに含まれる各情報が、他の負荷分散サーバ90が備える処理ルール記憶部95に記憶されている各処理ルールのイベント条件を満たすか否かによって読み出す処理ルールを特定してもよい。
図4は、本発明の第一の実施の形態における負荷分散サーバ90の動作の概要の一例を示すフローチャートである。
まず、処理ルール記憶部95は、処理ルールを記憶する(ステップS901)。次に、処理ルール検索部93は、図示しないディスパッチャからイベントを受け取る。そして処理ルール検索部93は、受け取ったイベントに対応する処理ルールを処理ルール記憶部95から読み出す(ステップS902)。
処理ルール検索部93は、前述のディスパッチャからイベントとともに負荷分散サーバ90を識別するサーバ識別子を受け取る。そして、処理ルール検索部93は、受け取ったイベントに対応する処理ルールを、受け取ったサーバ識別子で識別できる負荷分散サーバ90が備える処理ルール記憶部95から読み出す(ステップS903)。
本発明の第一の実施の形態における負荷分散サーバ90は、あらかじめ各イベントを処理するための情報を含む処理ルールを処理ルール記憶部95に記憶する。そして負荷分散サーバ90は、ディスパッチャからイベントを受け取ると、そのイベントに対応する処理ルールを処理ルール記憶部95から読み出す。一方負荷分散サーバ90は、ディスパッチャからイベントとともに負荷分散サーバ90を識別するサーバ識別子を受け取ると、以下の動作を行う。すなわち負荷分散サーバ90は、受け取ったサーバ識別子で識別される負荷分散サーバ90が備える処理ルール記憶部95から、受け取ったイベントに対応する処理ルールを読み出す。
本発明の第一の実施の形態における負荷分散サーバ90は、他の負荷分散サーバ90の処理ルールを読み出すことができる。よって、例えば短期的に一つの負荷分散サーバ90におけるイベントの処理負荷が大きくなり、その負荷分散サーバ90で行われる一部の処理を他の負荷分散サーバ90に代行して処理させる場合がある。このような場合でも、各負荷分散サーバ90は、この各負荷分散サーバ90が記憶する処理ルールを変更しなくてもそれぞれが処理するイベントの量を適切に調節しながら各イベントを処理することができる。
各関連技術において、各負荷分散サーバ間で処理ルールを変更させることは、大変時間がかかっていた。そのため各関連技術では、時間のかかるイベント処理の再配置のために必要な計算時間がかかる。また各関連技術では、処理ルールの検索ツリーの再構築のために必要な計算時間がかかる。しかし、本発明の第一の実施の形態における負荷分散サーバ90によれば、処理ルールを負荷分散サーバ90間で変更する必要がないので、この処理による時間がかかることはない。よって、本発明の第一の実施の形態における負荷分散サーバ90は、各負荷分散サーバ90での短期間における処理負荷の変動に適切に対処することができる。
[第二の実施の形態]
図5は、本発明の第二の実施の形態における負荷分散システム1000の構成を示すブロック図である。
図5を参照すると、本発明の第二の実施の形態における負荷分散システム1000は、ディスパッチャ300とサーバ200(サーバ200aおよび200b)とを備える。サーバ200のそれぞれは、ディスパッチャ300と接続されている。ディスパッチャ300は、サーバ200のそれぞれと接続されている。
<サーバ200>
サーバ200は、複数の負荷分散サーバ100(図5の例では、負荷分散サーバ100a、100b、100cおよび100d)を備える。図5を参照すると、サーバ200aは、負荷分散サーバ100aおよび負荷分散サーバ100bを備えている。サーバ200bは、負荷分散サーバ100cおよび負荷分散サーバ100dを備えている。
<負荷分散サーバ100>
図6は、本発明の第二の実施の形態における負荷分散サーバ100の構成を示すブロック図である。
図6を参照すると、負荷分散サーバ100は、イベント処理部102と処理ルール検索部103と負荷監視部104と処理ルール記憶部105とステート記憶部106とを備える。イベント処理部102は、処理ルール検索部103と負荷監視部104とステート記憶部106とそれぞれ接続されている。処理ルール検索部103は、イベント処理部102と処理ルール記憶部105とそれぞれ接続されている。負荷監視部104は、イベント処理部102と接続されている。処理ルール記憶部105は、処理ルール検索部103と接続されている。ステート記憶部106は、イベント処理部102と接続されている。
===処理ルール記憶部105===
処理ルール記憶部105は、図示しない外部装置(例えば特許文献1におけるイベント処理分散制御部)から処理ルールを受信し、記憶する。処理ルールは、第一の実施の形態における処理ルールと同様であってもよい。その他の特徴は、第一の実施の形態における処理ルール記憶部95と同様である。
===ステート記憶部106===
ステート記憶部106は、後述のイベント処理部102が処理したイベント601に関する処理結果を記憶する。この処理結果(ステート)は後述のイベント処理部102に読み出され、または更新される。このステートは、イベント処理部102が各イベント601を処理した結果または処理した状況を示す情報である。
===イベント処理部102===
イベント処理部102は、後述のディスパッチャ300からイベント601とディスパッチルールを識別するディスパッチルール識別子とを受信する。そしてイベント処理部102は、受信したイベント601とディスパッチルール識別子とを後述の処理ルール検索部103に渡す。ディスパッチルールは、後で説明される。
イベント処理部102は、後述の処理ルール検索部103から処理ルールを受け取ると、その処理ルールに含まれるイベントに対する処理内容に基づき前述のイベント601を処理し、その処理結果を図示しない外部装置に送信する。イベント処理部102が、イベント601を処理する際に、このイベント601の過去の処理結果を参照する必要がある場合がある。このような場合にはイベント処理部102は、ステート記憶部106からイベント601の過去の処理結果(ステート)を読み出し、所望の処理を行う。また、イベント処理部102は、今後のイベント601の処理のために今回の処理結果(ステート)を記憶する必要がある場合に、ステート記憶部106に今回の処理結果を記憶する。例えば、イベント処理部102が行う情報処理の内容が、「イベント601に含まれる所定の属性値の平均を取る」である場合に、イベント処理部102は、イベント601に関する所定の属性値の平均に関する情報をステート記憶部106から読み出す。そしてイベント処理部102は、イベント601に含まれる所定の属性値とステート記憶部106から読み出した情報とに基づいて所望の平均値を算出する。そしてイベント処理部102は、算出した平均値をステート記憶部106に記憶する。
イベント処理部102は、後述のディスパッチャ300から、イベント601とディスパッチルールを識別するディスパッチルール識別子と負荷分散サーバ100を識別するサーバ識別子とを受信する。そしてイベント処理部102は、受信したイベント601とディスパッチルール識別子とサーバ識別子とを後述の処理ルール検索部103に渡す。
イベント処理部102は、後述の処理ルール検索部103から処理ルールを受け取ると、その処理ルールに含まれるイベントに対する処理内容に基づき前述のイベント601を処理し、その処理結果を図示しない外部装置に送信する。イベント処理部102が、イベント601を処理する際に、このイベント601の過去の処理結果を参照する必要がある場合がある。このような場合にはイベント処理部102は、前述のサーバ識別子で識別される負荷分散サーバ100が備えるステート記憶部106からイベント601の過去の処理結果を読み出し、所望の処理を行う。また、イベント処理部102は、今後のイベント601の処理のために今回の処理結果を記憶する必要がある場合に、前述のサーバ識別子で識別される負荷分散サーバ100が備えるステート記憶部106に今回の処理結果を記憶する。以下、「前述のサーバ識別子で識別される負荷分散サーバ100」は、「代理処理要求元サーバ」とも表される。
===処理ルール検索部103===
処理ルール検索部103は、イベント処理部102からイベント601とディスパッチルール識別子とを受け取ると、イベント601に対応する処理ルールを処理ルール記憶部105から読み出す。そして処理ルール検索部103は、読み出した処理ルールをイベント処理部102に返す。
また、処理ルール検索部103は、イベント処理部102からイベント601とディスパッチルール識別子とサーバ識別子とを受け取ると、以下の動作を実行する。すなわち処理ルール検索部103は、受け取ったイベント601に対応する処理ルールを、受け取ったサーバ識別子で識別される負荷分散サーバ100が備える処理ルール記憶部105から読み出す。そして処理ルール検索部103は、読み出した処理ルールをイベント処理部102に返す。以下、前述の「受け取ったサーバ識別子で識別される負荷分散サーバ100」は、「代理処理要求元サーバ」とも表される。
===負荷監視部104===
負荷監視部104は、イベント処理部102におけるイベント601の処理負荷を監視している。処理負荷とは、例えば負荷分散サーバ100が使用しているCPU(Central Processing Unit)コアのCPU使用率などが挙げられる。負荷監視部104は、負荷分散サーバ100の処理負荷が所定の第一の閾値を超えたことを検知すると、後述のディスパッチャ300に対して代理処理要求を送信する。
代理処理要求は、ディスパッチルール識別子とある負荷分散サーバ100を識別するサーバ識別子とを含む。このディスパッチルール識別子は、代理処理させたいイベント601とともにこの負荷分散サーバ100が受信したディスパッチルール識別子である。また、このサーバ識別子は、代理処理させたい負荷分散サーバ100を識別するサーバ識別子である。以下、「代理処理させたい負荷分散サーバ100」は、「代理サーバ」とも表される。
代理処理要求は、代理処理するイベント601に対するイベントトラフィックの割合を含んでもよい。また、代理処理要求は、サーバ識別子とイベントトラフィックの割合とを複数含んでもよい。例えば、サーバ200が備えるCPUコアの数が複数であり、かつサーバ200に含まれる負荷分散サーバ100が複数ある場合には、代理処理要求は、サーバ200内に含まれる他の負荷分散サーバ100のサーバ識別子を複数含むことが可能である。またこの場合、代理処理要求は、そのサーバ識別子ごとにイベントトラフィックの割合を含んでもよい。
負荷監視部104は、イベントトラフィックの割合を、自身を含む負荷分散サーバ100や他の負荷分散サーバ100のCPUコアのCPU使用率に基づいて算出してもよい。
<ディスパッチャ300>
図7は、本発明の第二の実施の形態におけるディスパッチャ300の構成を示すブロック図である。
図7を参照すると、ディスパッチャ300は、イベント転送部302とディスパッチルール検索部303と負荷分散制御部304とディスパッチルール記憶部305とを備える。イベント転送部302は、ディスパッチルール検索部303と接続されている。ディスパッチルール検索部303は、イベント転送部302とディスパッチルール記憶部305とそれぞれ接続されている。負荷分散制御部304は、ディスパッチルール記憶部305と接続されている。ディスパッチルール記憶部305は、ディスパッチルール検索部303と負荷分散制御部304とそれぞれ接続されている。
===ディスパッチルール記憶部305===
ディスパッチルール記憶部305は、ディスパッチルールをそのディスパッチルールを識別するディスパッチルール識別子と対応付けて記憶する。ディスパッチルールとは、イベント601が処理される条件を示すイベント条件と負荷分散サーバ100のサーバ識別子とを対応付けたルールを含む情報である。
イベント条件とは、そのディスパッチルールに含まれるサーバ識別子で識別される負荷分散サーバ100が処理するイベントが満たす条件を示す。例えば、イベント条件は、「イベント601に含まれる所定の属性名603−1に対する属性値603−2がある値の場合に、この負荷分散サーバ100xは、そのイベント601を処理する」といった情報を含む。
ディスパッチルール記憶部305は、図示しない外部装置(例えば特許文献1におけるイベント処理分散制御部)からディスパッチルールを受信し、記憶してもよい。
===イベント転送部302===
イベント転送部302は、図示しないデバイスからイベント601を受信する。そしてイベント転送部302は、受信したイベント601をディスパッチルール検索部303に渡す。デバイスとは、RFID(Radio Frequency IDentification)システムやセンサのような一または複数のデバイスであってもよい。
イベント転送部302は、後述のディスパッチルール検索部303からディスパッチルールに含まれていたサーバ識別子とそのディスパッチルールのディスパッチルール識別子とを受け取る。そして、イベント転送部302は、ディスパッチルールに含まれていたサーバ識別子で識別される負荷分散サーバ100に、受信したイベント601と受け取ったディスパッチルール識別子とを送信する。
またイベント転送部302は、後述のディスパッチルール検索部303からディスパッチルールに含まれていたサーバ識別子とそのディスパッチルールのディスパッチルール識別子と代理サーバのサーバ識別子とを受け取る。そして、イベント転送部302は、受け取ったサーバ識別子で識別される負荷分散サーバ100(代理サーバ)に対して、受信したイベント601と受け取ったディスパッチルール識別子とディスパッチルールに含まれていたサーバ識別子とを送信する。代理サーバとは、後述の負荷分散制御部304が受け取る代理処理要求に含まれるサーバ識別子で識別される負荷分散サーバ100のことである。
またイベント転送部302は、後述のディスパッチルール検索部303からディスパッチルールに含まれていたサーバ識別子とそのディスパッチルールのディスパッチルール識別子と代理サーバのサーバ識別子とイベントトラフィックの割合とを受け取ってもよい。この場合、イベント転送部302は、代理サーバのサーバ識別子で識別される各負荷分散サーバ100に対して、それぞれ受信したイベント601のうちイベントトラフィックの割合の分の情報を送信する。またイベント転送部302は、受け取ったディスパッチルール識別子と、ディスパッチルールに含まれていたサーバ識別子とを前述の情報とともに代理サーバである負荷分散サーバ100に送信する。さらにイベント転送部302は、そのディスパッチルールに含まれていたサーバ識別子で識別される負荷分散サーバ100に、受信したイベント601のうち前述の代理サーバに送信しなかった分の情報と、受け取ったディスパッチルール識別子とを送信する。
===ディスパッチルール検索部303===
ディスパッチルール検索部303は、イベント転送部302からイベント601を受け取る。そして、ディスパッチルール検索部303は、イベント601に対応するディスパッチルールとそのディスパッチルールのディスパッチルール識別子とをディスパッチルール記憶部305から読み出す。そしてディスパッチルール検索部303は、読み出したディスパッチルールに含まれるサーバ識別子とそのディスパッチルールのディスパッチルール識別子とをイベント転送部302に返す。
ディスパッチルール検索部303がディスパッチルール記憶部305から読み出すディスパッチルールに代理サーバのサーバ識別子が対応付けられていた場合、ディスパッチルール検索部303は、以下の処理を行う。すなわちディスパッチルール検索部303は、
ディスパッチルールに含まれるサーバ識別子とそのディスパッチルールのディスパッチルール識別子と代理サーバのサーバ識別子とをイベント転送部302に返す。
ディスパッチルール検索部303がディスパッチルール記憶部305から読み出すディスパッチルールに、代理サーバのサーバ識別子とイベントトラフィックの割合とが対応付けられていた場合、ディスパッチルール検索部303は、以下の処理を行う。すなわちディスパッチルール検索部303は、ディスパッチルールに含まれるサーバ識別子とそのシスパッチルールのディスパッチルール識別子と代理サーバのサーバ識別子とイベントトラフィックの割合とをイベント転送部302に返す。
===負荷分散制御部304===
負荷分散制御部304は、負荷分散サーバ100から代理処理要求を受信する。そして負荷分散制御部304は、受信した代理処理要求に含まれるディスパッチルール識別子で識別されるディスパッチルールに、受信した代理処理要求に含まれるサーバ識別子を対応付けてディスパッチルール記憶部305に記憶する。このサーバ識別子は、代理サーバのサーバ識別子である。
代理処理要求にイベントトラフィックの割合が含まれている場合に、負荷分散制御部304は、受信した代理処理要求に含まれるサーバ識別子とイベントトラフィックの割合とを特定する。そして負荷分散制御部304は、特定のディスパッチルールに、前述のサーバ識別子とイベントトラフィックの割合とをそれぞれ対応付けてディスパッチルール記憶部305に記憶する。特定のディスパッチルールとは、受信した代理処理要求に含まれるディスパッチルール識別子で識別されるディスパッチルールである。
図8は、本発明の第二の実施の形態における負荷分散システム1000において、負荷分散サーバ100がイベントの処理を行うための処理ルールを読み出す動作の概要の一例を示すフローチャートである。
まず、図示しない外部装置が所定のルール分配アルゴリズムに基づいて各負荷分散サーバ100に処理ルールを送信する。また、この外部装置は、所定のアルゴリズムに基づいてディスパッチルールを生成し、ディスパッチャ300に送信する。この処理方法として、特許文献1に記載された方法などが適用されうる。
処理ルール記憶部105は、受信した処理ルールを記憶する(ステップS801)。
次に、図示しないデバイスがディスパッチャ300にイベント601を送信する。ディスパッチャ300のイベント転送部302は、イベント601を受信する(ステップS802)。イベント転送部302は、受信したイベント601をディスパッチルール検索部303に渡す。
ディスパッチルール検索部303は、受け取ったイベント601に含まれる情報に基づいてディスパッチルール記憶部305を検索する。そしてディスパッチルール検索部303は、イベント601に含まれる情報が満たすイベント条件を含むディスパッチルールがディスパッチルール記憶部305に記憶されているか否か判定する(ステップS803)。
イベント601に含まれる情報が満たすイベント条件を含むディスパッチルールがディスパッチルール記憶部305に存在する場合(ステップS803の“Yes”)、ディスパッチルール検索部303は、以下の動作を実行する。すなわちディスパッチルール検索部303は、そのディスパッチルールに代理サーバのサーバ識別子が対応付けられて記憶されているか否か判定する(ステップS804)。一方、イベント601に含まれる情報が満たすイベント条件を含むディスパッチルールがディスパッチルール記憶部305に存在しない場合(ステップS803の“No”)、負荷分散システム1000の処理は、ステップS802に戻る。
ディスパッチルール検索部303が読み出したディスパッチルールに代理サーバのサーバ識別子が対応付けられて記憶されていない場合(ステップS804の“No”)、ディスパッチルール検索部303は、以下の動作を実行する。すなわちディスパッチルール検索部303は、当該ディスパッチルールに含まれるサーバ識別子とそのディスパッチルールのディスパッチルール識別子とをイベント転送部302に渡す。
イベント転送部302は、ディスパッチルール検索部303から受け取ったディスパッチルール識別子と外部装置から受信したイベント601とを、特定の負荷分散サーバ100に送信する(ステップS805)。特定の負荷分散サーバ100とは、ディスパッチルール識別子で識別されるディスパッチルールに含まれていたサーバ識別子で識別される負荷分散サーバ100のことである。本実施の形態では、イベント転送部302は、例えば負荷分散サーバ100aに前述のディスパッチルール識別子とイベント601とを送信すると仮定する。図9は、ディスパッチャ300が負荷分散サーバ100aに転送する情報のフォーマットを示す図である。図9を参照すると、ディスパッチャ300が負荷分散サーバ100aに送信する情報は、イベント601に、そのイベント601が満たすイベント条件を含むディスパッチルールのディスパッチルール識別子701が付加されている。
負荷分散サーバ100aのイベント処理部102は、ディスパッチャ300からイベントとディスパッチルール識別子とを受信する(ステップS806)。イベント処理部102は、受信したイベントを処理ルール検索部103に渡す。
処理ルール検索部103は、受け取ったイベントに含まれる情報に基づいて処理ルール記憶部105を検索する。そして処理ルール検索部103は、イベント601に含まれる情報が満たすイベント条件を含む処理ルールが処理ルール記憶部105に存在するか否か判定する(ステップS807)。イベント601に含まれる情報が満たすイベント条件を含む処理ルールが処理ルール記憶部105に存在する場合(ステップS807の“Yes”)、処理ルール検索部103は、その処理ルールをイベント処理部102に渡す。一方、イベント601に含まれる情報が満たすイベント条件を含む処理ルールが処理ルール記憶部105に存在しない場合(ステップS807の“No”)、負荷分散システム1000の処理は終了する。
イベント処理部102は、イベント処理部102が行うイベントの処理が、過去のイベント処理に関する情報を必要とするか否か判定する(ステップS808)。イベント処理部102が行うイベントの処理が、過去のイベント処理に関する情報を必要とする場合(ステップS808の“Yes”)、イベント処理部102は、ステート記憶部106に記憶されている、所定の処理結果を読み出す(ステップS809)。そして負荷分散システム1000の処理は、ステップS810へ進む。イベント処理部102が行うイベントの処理が、過去のイベント処理に関する情報を必要としない場合、(ステップS808の“No”)、負荷分散システム1000の処理は、ステップS810へ進む。
イベント処理部102は、受け取った処理ルールに基づいて受信したイベントを処理する。そしてイベント処理部102は、処理結果を図示しない外部装置が実行するアプリケーションに送信する(ステップS810)。イベント処理部102は、イベント処理部102が行うイベントの処理結果が、今後の処理に必要となるか否か判定する(ステップS811)。イベント処理部102が行うイベントの処理結果が、今後の処理に必要となる場合(ステップS811の“Yes”)、イベント処理部102は、その処理結果をステート記憶部106に記憶する(ステップS812)。一方、イベント処理部102が行うイベントの処理結果が、今後の処理に必要とならない場合(ステップS811の“No”)、負荷分散システム1000の処理は終了する。
一方、イベント601に含まれる情報が満たすイベント条件を含むディスパッチルールに代理サーバのサーバ識別子が対応付けられて記憶されている場合(ステップS804の“Yes”)、ディスパッチルール検索部303は、以下の動作を実行する。すなわちディスパッチルール検索部303は、前述のディスパッチルールに含まれるサーバ識別子とそのディスパッチルールのディスパッチルール識別子と代理サーバのサーバ識別子とをイベント転送部302に渡す。また、当該ディスパッチルールにイベントトラフィックの割合が対応付けて記憶されている場合、そのディスパッチルール検索部303は、イベントトラフィックの割合もイベント転送部302に渡す。
イベント転送部302は、ディスパッチルール識別子とサーバ識別子とイベント601とを、代理サーバのサーバ識別子で識別される負荷分散サーバ100へ送信する(ステップS813)。このディスパッチルール識別子は、ディスパッチルール検索部303から受け取ったディスパッチルール識別子である。サーバ識別子は、前述のディスパッチルール識別子で識別されるディスパッチルールに含まれていたサーバ識別子である。またイベント601は、図示しない外部装置から受信したイベントである。本実施の形態では、イベント転送部302は、例えば負荷分散サーバ100bに前述のディスパッチルール識別子とサーバ識別子とイベント601とを送信すると仮定する。以下、この負荷分散サーバ100bは、代理サーバとも表される。図10は、ディスパッチャ300が負荷分散サーバ100b(代理サーバ)に転送する情報のフォーマットを示す図である。図10を参照すると、ディスパッチャ300が負荷分散サーバ100bに送信する情報は、イベント601に、ディスパッチルール識別子701とサーバ識別子1202とが付加されている。ディスパッチルール識別子701は、そのイベントが満たすイベント条件を含むディスパッチルールのディスパッチルール識別子である。サーバ識別子1202は、本来そのイベントを処理する負荷分散サーバ100aのサーバ識別子である。以下、この負荷分散サーバ100aは、代理処理要求元サーバとも表される。
負荷分散サーバ100b(代理サーバ)のイベント処理部102は、ディスパッチャ300からイベント601とディスパッチルール識別子701とサーバ識別子1202とを受信する(ステップS814)。イベント処理部102は、受信したイベント601とサーバ識別子1202とを処理ルール検索部103に渡す。
処理ルール検索部103は、受け取ったイベント601に含まれる情報に基づいて、サーバ識別子1202で識別される負荷分散サーバ100a(代理処理要求元サーバ)の処理ルール記憶部105を検索する。そして処理ルール検索部103は、イベント601に含まれる情報が満たすイベント条件を含む処理ルールが処理ルール記憶部105に存在するか否か判定する(ステップS815)。イベント601に含まれる情報が満たすイベント条件を含む処理ルールが処理ルール記憶部105に存在する場合(ステップS815の“Yes”)、処理ルール検索部103は、その処理ルールをイベント処理部102に渡す。一方、イベント601に含まれる情報が満たすイベント条件を含む処理ルールが処理ルール記憶部105に存在しない場合(ステップS815の“No”)、負荷分散システム1000の処理は終了する。
イベント処理部102は、イベント処理部102が行うイベント601の処理が、過去のイベント処理に関する情報を必要とするか否か判定する(ステップS816)。イベント処理部102が行うイベント601の処理が、過去のイベント処理に関する情報を必要とする場合(ステップS816の“Yes”)、イベント処理部102は、以下の動作を実行する。すなわちイベント処理部102は、処理するイベント601とともに受け取ったサーバ識別子1202で識別される負荷分散サーバ100a(代理処理要求元サーバ)のステート記憶部106に記憶されている、所定の処理結果(ステート)を読み出す(ステップS817)。イベント処理部102が行うイベント601の処理が、過去のイベント処理に関する情報を必要としない場合、(ステップS816の“No”)、負荷分散システム1000の処理は、ステップS818へ進む。
イベント処理部102は、受け取った処理ルールに基づいて受信したイベント601を処理する。そしてイベント処理部102は、処理結果を図示しない外部装置が実行するアプリケーションに送信する(ステップS818)。イベント処理部102は、イベント処理部102が行うイベントの処理結果が、今後の処理に必要となるか否か判定する(ステップS819)。イベント処理部102が行うイベント601の処理結果が、今後の処理に必要となる場合(ステップS819の“Yes”)、イベント処理部102は、以下の動作を実行する。すなわちイベント処理部102は、イベントの処理結果を、その処理結果を処理したイベント601とともに受け取ったサーバ識別子1202で識別される負荷分散サーバ100a(代理処理要求元サーバ)のステート記憶部106に記憶する(ステップS820)。一方、イベント処理部102が行うイベントの処理結果が、今後の処理に必要とならない場合(ステップS819の“No”)、負荷分散システム1000の処理は終了する。
図11は、本発明の第二の実施の形態において、負荷分散システム1000の負荷分散サーバ100が代理処理要求をディスパッチャ300に送信する動作の概要の一例を示すフローチャートである。
負荷分散サーバ100aの負荷監視部104は、イベント処理部102がイベント処理を行う際、負荷分散サーバ100a(代理処理要求元サーバ)の処理負荷が所定の閾値を超えたか否かを監視する(ステップS1101)。負荷監視部104は、処理負荷が所定の閾値を超えたと判定した場合に(ステップS1101の“Yes”)、ディスパッチャ300に代理処理要求を送信する(ステップS1102)。図12は、負荷監視部104がディスパッチャ300に送信する代理処理要求1201の例を示す図である。図12を参照すると、代理処理要求1201は、ディスパッチルールのディスパッチルール識別子701と、代理サーバのサーバ識別子1202と、代理処理するイベントトラフィックの割合1203とが含まれている。本実施の形態では、代理サーバのサーバ識別子1202は、負荷分散サーバ100b(代理サーバ)のサーバ識別子であると仮定する。
ディスパッチルール識別子701は、高負荷の原因となっているイベントに対応するディスパッチルールを識別する。サーバ識別子1202は、代理処理を要求する対象である代理サーバを識別する。イベントトラフィックの割合1203は、代理処理されるイベントのイベントトラフィックの量をイベントのデータ量に基づいて示した情報である。ディスパッチャ300から負荷分散サーバ100に送信されるイベント601は、そのイベントが満たすイベント条件を含むディスパッチルールのディスパッチルール識別子701が付加される。したがって負荷監視部104は、代理処理要求1201が含むディスパッチルール識別子701を特定できる。
一方、負荷監視部104が、処理負荷が所定の閾値を超えていないと判定した場合には(ステップS1101の“No”)、負荷分散システム1000の処理は、ステップS1101に戻る。
ディスパッチャ300の負荷分散制御部304は、負荷分散サーバ100aから代理処理要求1201を受信する(ステップS1103)。そして負荷分散制御部304は、受信した代理処理要求1201に含まれるディスパッチルール識別子701と代理サーバの識別子1202とイベントトラフィックの割合1203とを特定する。そして負荷分散制御部304は、特定したディスパッチルール識別子で識別されるディスパッチルールに、特定したサーバ識別子1202とイベントトラフィックの割合1203とを対応付けてディスパッチルール記憶部305に記憶する(ステップS1104)。
本発明の第二の実施の形態における負荷分散システム1000は、第一の負荷分散サーバ100が、第二の負荷分散サーバ100の処理ルールを読み出す。そしてその第一の負荷分散サーバ100は、読み出したルールに基づいて第二の負荷分散サーバ100が処理すると定められていたイベントを代理処理する。したがって、負荷分散システム1000は、各負荷分散サーバ100が備えるイベントの処理ルールを変更させることなく、各負荷分散サーバ100でのイベントの処理負荷を平均化できる。よって、例えば一つの負荷分散サーバ100におけるイベントの処理負荷が大きくなり、その負荷分散サーバ100で行われる一部の処理を他の負荷分散サーバ100に代行して処理させる場合がある。このような場合でも、負荷分散システム1000は、各負荷分散サーバ100が記憶する処理ルールを変更しなくてもよい。
また、第二の実施の形態における負荷分散システム1000が備える各負荷分散サーバ100の負荷監視部104は、負荷分散サーバ100が処理するイベントの処理負荷を監視している。そして負荷監視部104は、この処理負荷が所定の第一の閾値を超えたことを検知すると、他の負荷分散サーバ100にイベントを代理処理させるための情報である代理処理要求1201をディスパッチャ300に送信する。つまり、各負荷分散サーバ100は、自サーバの処理負荷をそれぞれ監視している。各負荷分散サーバ100の処理負荷を平均化するために、1つの装置がすべての負荷分散サーバ100の処理負荷を監視しない。したがって、第二の実施の形態における負荷分散システム1000は、各負荷分散サーバ100の処理負荷の平均化のために必要となる計算量を大きく削減することができる。
また、第二の実施の形態における負荷分散システム1000が備える各負荷分散サーバ100は、他の負荷分散サーバ100が備えるCPUコアのCPU使用率などに基づいて、代理処理させるイベントトラフィックの割合を決定または変更する。この構成により、各負荷分散サーバ100の処理負荷を平均化するために、1つの装置がすべての負荷分散サーバ100の処理負荷を監視しない。したがって、第二の実施の形態における負荷分散システム1000は、各負荷分散サーバ100の処理負荷の平均化のために必要となる計算量を大きく削減することができる。さらに、各負荷分散サーバ100は、各負荷分散サーバ100の処理負荷に応じてイベントトラフィックの割合を特定する。よって第二の実施の形態における負荷分散システム1000は、少ない計算量でかつ効率よく各負荷分散サーバ100の負荷分散を実現することができる。
[第二の実施の形態の第一の変形例]
第二の実施の形態において、負荷監視部104は、負荷分散サーバ100が処理するイベントごとに処理負荷を特定してもよい。この場合、負荷監視部104は、イベントごとに特定した処理負荷のうち、所定の第二の閾値を超えた処理負荷のイベントを特定してもよい。さらに負荷監視部104は、特定したイベントとともにディスパッチャ300から送られてきたディスパッチルール識別子701を前述の代理処理要求1201に含ませてもよい。
第二の実施の形態の第一の変形例の負荷分散サーバ100は、高負荷の原因となっているイベントとともに送られてくるディスパッチルール識別子701を前述の代理処理要求1201に含めてディスパッチャ300へ送信する。つまり負荷分散サーバ100は、高負荷の原因となっているイベントを優先して他の負荷分散サーバ100に代理処理させる。したがって第二の実施の形態の第一の変形例における負荷分散システム1000は、少ない計算量でかつ効率よく各負荷分散サーバ100の負荷分散を実現することができる。
[第二の実施の形態の第二の変形例]
第二の実施の形態では、イベント処理部102は、ディスパッチャ300からイベント601を受け取る、という構成であった。一方、第二の実施の形態の第二の変形例では、処理ルール検索部103は、ディスパッチャ300からイベント601を受け取る、という構成であってもよい。そして負荷分散サーバ100は、イベント処理部102を備える代わりに、図示しない外部装置がイベント処理部102を備える、という構成であってもよい。すなわち、第二の実施の形態の第二の変形例では、負荷分散サーバ100はイベント処理部102を備えなくてもよい。
また、第二の実施の形態では、ディスパッチルール検索部303は、イベント転送部302からイベントを受け取り、受け取ったイベントに基づいてディスパッチルール記憶部305を検索する構成であった。第二の実施の形態の第二の変形例では、ディスパッチルール検索部303の代わりにイベント転送部302が、図示しない外部装置から受信したイベントに基づいてディスパッチルール記憶部305を検索してもよい。この場合、ディスパッチャ300は、ディスパッチルール検索部303を備えなくてもよい。
第二の実施の形態の第二の変形例における負荷分散システムは、第二の実施の形態における負荷分散システムと同様の効果を奏する。
[第二の実施の形態の第三の変形例]
第二の実施の形態では、負荷分散サーバ100aが同じサーバ200(サーバ200a)にある負荷分散サーバ100bに対して代理処理を行わせる代理処理要求をディスパッチャ300に送信していた。負荷分散サーバ100aは、例えば異なるサーバ200(サーバ200b)にある負荷分散サーバ(例えば負荷分散サーバ100c)に対して代理処理を行わせる代理処理要求をディスパッチャ300に送信してもよい。
第二の実施の形態の第三の変形例における負荷分散システムは、第一のサーバ200が備える第一の負荷分散サーバ100が、第二のサーバ200が備える第二の負荷分散サーバ100の処理ルールを読み出す。そしてその第一の負荷分散サーバ100は、読み出したルールに基づいて第二の負荷分散サーバ100が処理すると定められていたイベントを代理処理する。したがって、負荷分散システム1000は、各負荷分散サーバ100が備えるイベントの処理ルールを変更させることなく、各負荷分散サーバ100でのイベントの処理負荷を平均化できる。よって、例えば一つの負荷分散サーバ100におけるイベントの処理負荷が大きくなり、その負荷分散サーバ100で行われる一部の処理を他のサーバ200が備える負荷分散サーバ100に代行して処理させる場合がある。このような場合でも、負荷分散システム1000は、各負荷分散サーバ100が記憶する処理ルールを変更しなくてもよい。
[第三の実施の形態]
図13は、本発明の第三の実施の形態における負荷分散システム1001の構成を示すブロック図である。
図13を参照すると、本発明の第三の実施の形態における負荷分散システム1001は、ディスパッチャ300とサーバ201とを備える。サーバ201は、ディスパッチャ300と接続されている。ディスパッチャ300は、サーバ201と接続されている。ディスパッチャ300は第二の実施の形態におけるディスパッチャ300と同様である。
<サーバ201>
サーバ201は、複数の負荷分散サーバ101(図13の例では、負荷分散サーバ101a、101b、101cおよび101d)を備える点で第二の実施の形態におけるサーバ200と構成が異なる。サーバ201の前述以外の構成は、第二の実施の形態におけるサーバ200と同様である。
<負荷分散サーバ101>
図14は、本発明の第三の実施の形態における負荷分散サーバ101の構成を示すブロック図である。
負荷分散サーバ101は、第二の実施の形態における負荷分散サーバ100の負荷監視部104の代わりに負荷監視部107を備える点で、第二の実施の形態における負荷分散サーバ100と構成が異なる。負荷分散サーバ101の前述以外の構成は、第二の実施の形態における負荷分散サーバ100と同様である。
===負荷監視部107===
負荷監視部107は、負荷分散サーバ101の処理負荷を特定する。そして、負荷監視部107は、他の負荷分散サーバ101に対して、前述の特定した処理負荷を示す情報を送信する。また、負荷監視部107は、他の負荷分散サーバ101から処理負荷を示す情報とその負荷分散サーバ101を識別するサーバ識別子とを受け取ると、それらを対応付けて図示しない記憶部に記憶する。そして、負荷監視部107は、負荷分散サーバ101の処理負荷が所定の第一の閾値を超えたことを検知すると、ディスパッチャ300に対して代理処理要求を送信する。この際、負荷監視部107は、前述の処理負荷を示す情報のうち所定の第三の閾値以下である処理負荷を示す情報とともに送られてきたサーバ識別子を特定する。そして負荷監視部107は、特定したサーバ識別子のいずれかを前述の代理処理要求に含める。
図15は、ある時点での、各負荷分散サーバ101の処理負荷をそれぞれ示した図である。図15は、各負荷分散サーバ101が代理処理要求を出力するか否かを判断するための負荷の基準として、閾値1501(第一の閾値)と上限値1502(第三の閾値)とを示している。また図15は、負荷分散サーバ101aの処理負荷1503、負荷分散サーバ101bの処理負荷1504、負荷分散サーバ101cの処理負荷1505および負荷分散サーバ101dの処理負荷1506をそれぞれ示している。
図15を参照すると、負荷分散サーバ101cの処理負荷1505が閾値1501を超えている。そこで負荷分散サーバ101cは、ディスパッチャ300に代理処理要求を送信する。この場合、負荷分散サーバ101cは、代理処理要求に含めるサーバ識別子として、処理負荷が上限値1502を下回っている負荷分散サーバ101のサーバ識別子を選択する。図15の例では、負荷分散サーバ101aの処理負荷1503は上限値1502を超えているのでこのサーバのサーバ識別子は代理処理要求に含まれない。負荷分散サーバ101cは、上限値1502を下回る処理負荷を示す情報とともに送ってきたサーバ識別子、すなわち、負荷分散サーバ101bおよび101dのサーバ識別子を代理処理要求に含める。
また負荷監視部107は、代理処理要求に含まれるサーバ識別子ごとにイベントトラフィックの割合を特定し、特定した情報を前述の代理処理要求に含める。イベントトラフィックの割合の特定方法としては、イベントの振り分け先(図15の例では負荷分散サーバ101bおよび101d)における処理負荷の比に基づいて前述の割合を定める方法がある。また、他の特定方法として、イベントの振り分け先における処理負荷の比とは無関係に一律の値を特定する方法がある。またサーバ識別子ごとに特定されるイベントトラフィックの割合の合計は、負荷分散サーバ101(図15の例では負荷分散サーバ101c)における処理負荷が上限値1502を上回った分を示す割合であってもよい。
第三の実施の形態における負荷分散システム1001は、負荷分散サーバ101のうちその負荷分散サーバ101の処理負荷が第三の閾値を下回っているサーバに対してイベントの代理処理要求を送信する。したがって、第三の実施の形態における負荷分散システム1001は、負荷分散サーバ101が3以上ある場合でも、各負荷分散サーバ101の処理負荷に基づいて容易にイベントの代理処理を行う負荷分散サーバ101(代理サーバ)の特定ができる。また、第三の実施の形態における負荷分散システム1001は、イベントを代理処理する負荷分散サーバ101の処理負荷がその代理処理を実行することにより第一の閾値を超えてしまう場合を排除できる。
第三の実施の形態における負荷分散システム1001は、ある時点での負荷分散サーバ101の処理負荷に応じて、代理処理するイベントトラフィックの割合を特定する。したがって、第三の実施の形態における負荷分散システム1001は、イベントの代理処理によって生じうる負荷分散サーバ101の処理負荷の不均衡を解消しうる。つまり、第三の実施の形態における負荷分散システムは、ある負荷分散サーバ101がイベントの代理処理を行っても、その負荷分散サーバ101の処理負荷が必要以上に大きくなることがない。例えば負荷分散システム1001は、ある負荷分散サーバ101がイベントの代理処理を行っても、その負荷分散サーバ101の処理負荷が所定の第一の閾値を超えないように、イベントが振り分けられる負荷分散サーバ101を特定することができる。
以上、これまで述べてきた各実施の形態は、本発明の好適な実施形態であり、上記実施の形態のみに本発明の範囲を限定するものではない。各実施の形態は、本発明の要旨を逸脱しない範囲において種々の変更を施した形態での実施が可能である。
また、本発明の各実施の形態における各構成要素は、その機能をハードウェア的に実現することはもちろん、コンピュータとプログラムとで実現することができる。プログラムは、磁気ディスクや半導体メモリなどのコンピュータ可読記録媒体に記録されて提供され、コンピュータの立ち上げ時などにコンピュータに読み取られる。この読み取られたプログラムは、そのコンピュータの動作を制御することにより、そのコンピュータを前述した各実施の形態における構成要素として機能させる。
上記の実施の形態の一部または全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1)
ディスパッチャから送信される各イベントを処理するための情報処理の内容を含む処理ルールを記憶する処理ルール記憶部と、前記ディスパッチャからイベントとともに負荷分散サーバを識別するサーバ識別子を受け取ると、前記イベントに対応する処理ルールを、前記サーバ識別子で識別される前記負荷分散サーバが備える処理ルール記憶部から読み出す処理ルール検索部とを備える、負荷分散サーバ。
(付記2)
付記1に記載の負荷分散サーバであって、前記処理ルール検索部は、イベントが処理される条件を示すイベント条件と負荷分散サーバを識別するサーバ識別子とを対応付けたディスパッチルールを識別するディスパッチルール識別子およびイベントを前記ディスパッチャから受け取り、前記負荷分散サーバは、他の負荷分散サーバのサーバ識別子と前記ディスパッチルール識別子とを含む情報である代理処理要求を前記ディスパッチャに送信する負荷監視部を備える、負荷分散サーバ。
(付記3)
付記2に記載の負荷分散サーバであって、前記負荷監視部は、前記負荷分散サーバが受信したイベントの処理による当該負荷分散サーバの負荷を特定し、特定した前記負荷が第一の閾値を超えた場合に前記代理処理要求を前記ディスパッチャに送信する、負荷分散サーバ。
(付記4)
付記2または3に記載の負荷分散サーバであって、前記負荷監視部は、前記負荷分散サーバが受信したイベントごとに各イベントの処理による前記負荷分散サーバの負荷を特定し、あるイベントに対して特定した前記負荷が第二の閾値を超えた場合に、当該イベントとともに送信されてきたディスパッチルールのディスパッチルール識別子を含む前記代理処理要求を前記ディスパッチャに送信する、負荷分散サーバ。
(付記5)
付記3または4に記載の負荷分散サーバであって、前記負荷監視部は、他の負荷分散サーバに、特定した前記負荷を示す情報と自負荷分散サーバのサーバ識別子とを送信し、前記負荷監視部は、他の負荷分散サーバから、負荷を示す情報とサーバ識別子とを受信すると、所定の第三の閾値以下である当該負荷を示す情報とともに送られてきたサーバ識別子を含む前記代理処理要求を前記ディスパッチャに送信する、負荷分散サーバ。
(付記6)
付記2ないし5のいずれか1項に記載の負荷分散サーバであって、前記負荷監視部は、代理処理させるイベントとともに受け取ったディスパッチルール識別子と前記他の負荷分散サーバを識別するサーバ識別子と当該イベントを代理処理させる割合を示す情報とを含む前記代理処理要求を前記ディスパッチャに送信する、負荷分散サーバ。
(付記7)
付記5に記載の負荷分散サーバであって、前記負荷監視部は、前記負荷を示す情報に基づいて、イベントを代理処理させる割合を算出し、前記イベント条件と前記サーバ識別子と前記算出された割合を示す情報とを含む前記代理処理要求を前記ディスパッチャに送信する、負荷分散サーバ。
(付記8)
付記1ないし7のいずれか1項に記載の負荷分散サーバであって、前記負荷分散サーバは、各イベントの処理状況を示す情報であるステートを記憶するステート記憶部を備え、前記処理ルール検索部は、前記ディスパッチャからイベントを受け取ると、当該イベントに対応するステートを前記ステート記憶部から読み出し、前記処理ルール検索部は、前記ディスパッチャからイベントとともにイベント処理サーバを識別するサーバ識別子を受け取ると、前記イベントに対応するステートを、前記サーバ識別子で識別される前記負荷分散サーバが備えるステート記憶部から読み出し、前記負荷分散サーバによる当該イベントの処理結果に応じて当該イベントに対応する前記ステートを更新する、負荷分散サーバ。
(付記9)
イベントを処理する負荷分散サーバと、当該イベントを前記負荷分散サーバに送信するディスパッチャとを備え、前記負荷分散サーバは、前記ディスパッチャから送信される各イベントを処理するための情報を含む処理ルールを記憶する処理ルール記憶部と、イベントが処理される条件を示すイベント条件と前記負荷分散サーバを識別するサーバ識別子とを対応付けた情報を含むディスパッチルールを識別するディスパッチルール識別子と、負荷分散サーバを識別するサーバ識別子と、を含む情報である代理処理要求を前記ディスパッチャに送信する負荷監視部と、前記ディスパッチャからイベントとサーバ識別子とを受信すると、当該イベントに対応する処理ルールを、当該サーバ識別子で識別される負荷分散サーバが備える前記処理ルール記憶部から読み出す処理ルール検索部とを備え、前記ディスパッチャは、ディスパッチルールを、当該ディスパッチルールのディスパッチルール識別子と対応付けて記憶するディスパッチルール記憶部と、前記負荷分散サーバから代理処理要求を受信すると、当該代理処理要求に含まれるディスパッチルール識別子で識別されるディスパッチルールに当該代理処理要求に含まれるサーバ識別子を対応付けて前記ディスパッチルール記憶部に記憶する負荷分散制御部と、イベントを受信し、受信したイベントが満たすイベント条件を含むディスパッチルールを前記ディスパッチルール記憶部から読み出し、読み出したディスパッチルールに、サーバ識別子が対応付けられていた場合に、当該サーバ識別子で識別される負荷分散サーバに、前記読み出したディスパッチルールに含まれるサーバ識別子と、前記受信したイベントとを送信するイベント転送部とを備える負荷分散システム。
(付記10)
ディスパッチャから送信される各イベントを処理するための情報処理の内容を含む処理ルールを記憶部に記憶し、前記ディスパッチャからイベントとともにサーバを識別するサーバ識別子を受け取ると、前記イベントに対応する処理ルールを、前記サーバ識別子で識別される前記サーバが備える記憶部から読み出す、負荷分散方法。
(付記11)
コンピュータに、ディスパッチャから送信される各イベントを処理するための情報を含む処理ルールを記憶部に記憶する処理と、前記ディスパッチャからイベントとともにサーバを識別するサーバ識別子を受け取ると、前記イベントに対応する処理ルールを、前記サーバ識別子で識別される前記サーバが備える記憶部から読み出す処理とを実行させるための負荷分散プログラム。
(付記12)
付記9に記載の負荷分散システムであって、前記負荷監視部は、イベントが処理される条件を示すイベント条件と前記負荷分散サーバを識別するサーバ識別子と当該イベントを代理処理させる割合を示す情報とを含む前記代理処理要求を前記ディスパッチャに送信し、前記負荷分散制御部は、前記負荷分散サーバから前記代理処理要求を受け取ると、当該代理処理要求に含まれているディスパッチルール識別子で識別されるディスパッチルールに、前記代理処理させる割合を示す情報と、前記代理処理要求に含まれるサーバ識別子とを対応付けて前記ディスパッチルール記憶部に記憶し、前記イベント転送部は、前記ディスパッチルール記憶部から読み出したディスパッチルールに前記サーバ識別子と前記代理処理させる割合とを示す情報とが対応付けられていた場合に、当該サーバ識別子で識別される負荷分散サーバに、前記イベントのうち前記代理処理させる割合に基づいた情報量のデータを送信する負荷分散システム。
(付記13)
コンピュータに、ディスパッチャから送信される各イベントを処理するための情報を含む処理ルールを記憶部に記憶する処理と、前記ディスパッチャからイベントとともにサーバを識別するサーバ識別子を受け取ると、前記イベントに対応する処理ルールを、前記サーバ識別子で識別される前記サーバが備える記憶部から読み出す処理とを実行させるための負荷分散プログラムを記録した記録媒体。
[産業上の利用可能性]
本発明の各実施の形態における負荷分散システムの活用例としては、RFIDやセンサからのイベントを利用したアプリケーションが挙げられる。このアプリケーションとは、例えば物流トレーサビリティやSCEM(Supply Chain Event Management)、天候や災害などの環境管理などが挙げられる。
3 処理ルール
90 負荷分散サーバ
100 負荷分散サーバ
100a 負荷分散サーバ
100b 負荷分散サーバ
100c 負荷分散サーバ
100d 負荷分散サーバ
101 負荷分散サーバ
101a 負荷分散サーバ
101b 負荷分散サーバ
101c 負荷分散サーバ
101d 負荷分散サーバ
102 イベント処理部
93 処理ルール検索部
103 処理ルール検索部
104 負荷監視部
107 負荷監視部
95 処理ルール記憶部
105 処理ルール記憶部
106 ステート記憶部
300 ディスパッチャ
302 イベント転送部
303 ディスパッチルール検索部
304 負荷分散制御部
305 ディスパッチルール記憶部
200 サーバ
200a サーバ
200b サーバ
201 サーバ
1000 負荷分散システム
1001 負荷分散システム
601 イベント
602 イベントタイプ
603 ペア
603−1 属性名
603−2 属性値
701 ディスパッチルール識別子
1201 代理処理要求
1202 サーバ識別子
1203 イベントトラフィックの割合
1501 閾値
1502 上限値
1503 処理負荷
1504 処理負荷
1505 処理負荷
1506 処理負荷

Claims (10)

  1. ディスパッチャから送信される各イベントを処理するための情報処理の内容を含む処理ルールを記憶する処理ルール記憶部と、
    前記ディスパッチャからイベントとともに負荷分散サーバを識別するサーバ識別子を受け取ると、前記イベントに対応する処理ルールを、前記サーバ識別子で識別される前記負荷分散サーバが備える処理ルール記憶部から読み出す処理ルール検索部と
    他の負荷分散サーバのサーバ識別子と、前記ディスパッチャからイベントとともに受け取ったサーバ識別子とを少なくとも含む情報である代理処理要求を前記ディスパッチャに送信する負荷監視部と、
    を備える、
    負荷分散サーバ。
  2. 請求項1に記載の負荷分散サーバであって、
    前記処理ルール検索部は、イベントが処理される条件を示すイベント条件と負荷分散サーバを識別するサーバ識別子とを対応付けたディスパッチルールを識別するディスパッチルール識別子およびイベントを前記ディスパッチャから受け取り、
    前記負荷監視部は、他の負荷分散サーバのサーバ識別子と前記ディスパッチルール識別子とを含む情報である前記代理処理要求を前記ディスパッチャに送信する、
    負荷分散サーバ。
  3. 請求項2に記載の負荷分散サーバであって、
    前記負荷監視部は、前記負荷分散サーバが受信したイベントの処理による当該負荷分散サーバの負荷を特定し、特定した前記負荷が第一の閾値を超えた場合に前記代理処理要求を前記ディスパッチャに送信する、負荷分散サーバ。
  4. 請求項2または3に記載の負荷分散サーバであって、
    前記負荷監視部は、前記負荷分散サーバが受信したイベントごとに各イベントの処理による前記負荷分散サーバの負荷を特定し、あるイベントに対して特定した前記負荷が第二の閾値を超えた場合に、当該イベントとともに送信されてきたディスパッチルールのディスパッチルール識別子を含む前記代理処理要求を前記ディスパッチャに送信する、負荷分散サーバ。
  5. 請求項3または4に記載の負荷分散サーバであって、
    前記負荷監視部は、他の負荷分散サーバに、特定した前記負荷を示す情報と自負荷分散サーバのサーバ識別子とを送信し、
    前記負荷監視部は、他の負荷分散サーバから、負荷を示す情報とサーバ識別子とを受信すると、所定の第三の閾値以下である当該負荷を示す情報とともに送られてきたサーバ識別子を含む前記代理処理要求を前記ディスパッチャに送信する、負荷分散サーバ。
  6. 請求項2ないし5のいずれか1項に記載の負荷分散サーバであって、
    前記負荷監視部は、代理処理させるイベントとともに受け取ったディスパッチルール識別子と前記他の負荷分散サーバを識別するサーバ識別子と当該イベントを代理処理させる割合を示す情報とを含む前記代理処理要求を前記ディスパッチャに送信する、負荷分散サーバ。
  7. 請求項5に記載の負荷分散サーバであって、
    前記負荷監視部は、前記負荷を示す情報に基づいて、イベントを代理処理させる割合を算出し、前記イベント条件と前記サーバ識別子と前記算出された割合を示す情報とを含む前記代理処理要求を前記ディスパッチャに送信する、負荷分散サーバ。
  8. 請求項1ないし7のいずれか1項に記載の負荷分散サーバであって、
    前記負荷分散サーバは、
    各イベントの処理状況を示す情報であるステートを記憶するステート記憶部を備え、
    前記処理ルール検索部は、前記ディスパッチャからイベントを受け取ると、当該イベントに対応する第1の前記ステートを前記ステート記憶部から読み出し、当該イベントの処理結果に応じて当該イベントに対応する前記第1の前記ステートを更新し、
    前記処理ルール検索部は、前記ディスパッチャからイベントとともにイベント処理サーバを識別するサーバ識別子を受け取ると、前記イベントに対応する第2の前記ステートを、前記サーバ識別子で識別される前記負荷分散サーバが備えるステート記憶部から読み出し、前記負荷分散サーバによる当該イベントの処理結果に応じて当該イベントに対応する前記第2の前記ステートを更新する、負荷分散サーバ。
  9. イベントを処理する負荷分散サーバと、当該イベントを前記負荷分散サーバに送信するディスパッチャとを備え、
    前記負荷分散サーバは、
    前記ディスパッチャから送信される各イベントを処理するための情報を含む処理ルールを記憶する処理ルール記憶部と、
    イベントが処理される条件を示すイベント条件と前記負荷分散サーバを識別するサーバ識別子とを対応付けた情報を含むディスパッチルールを識別するディスパッチルール識別子と、負荷分散サーバを識別するサーバ識別子と、を含む情報である代理処理要求を前記ディスパッチャに送信する負荷監視部と、
    前記ディスパッチャからイベントとサーバ識別子とを受信すると、当該イベントに対応する処理ルールを、当該サーバ識別子で識別される負荷分散サーバが備える前記処理ルール記憶部から読み出す処理ルール検索部とを備え、
    前記ディスパッチャは、
    ディスパッチルールを、当該ディスパッチルールのディスパッチルール識別子と対応付けて記憶するディスパッチルール記憶部と、
    前記負荷分散サーバから代理処理要求を受信すると、当該代理処理要求に含まれるディスパッチルール識別子で識別されるディスパッチルールに当該代理処理要求に含まれるサーバ識別子を対応付けて前記ディスパッチルール記憶部に記憶する負荷分散制御部と、
    イベントを受信し、受信したイベントが満たすイベント条件を含むディスパッチルールを前記ディスパッチルール記憶部から読み出し、読み出したディスパッチルールに、サーバ識別子が対応付けられていた場合に、当該サーバ識別子で識別される負荷分散サーバに、前記読み出したディスパッチルールに含まれるサーバ識別子と、前記受信したイベントとを送信するイベント転送部とを備える負荷分散システム。
  10. ディスパッチャから送信される各イベントを処理するための情報処理の内容を含む処理ルールを記憶部に記憶し、
    前記ディスパッチャからイベントとともにサーバを識別するサーバ識別子を受け取ると、前記イベントに対応する処理ルールを、前記サーバ識別子で識別される前記サーバが備える記憶部から読み出し、
    他の負荷分散サーバのサーバ識別子と、前記ディスパッチャからイベントとともに受け取ったサーバ識別子とを少なくとも含む情報である代理処理要求を前記ディスパッチャに送信、負荷分散方法。
JP2010068544A 2010-03-24 2010-03-24 負荷分散システム、負荷分散サーバおよび負荷分散方法 Expired - Fee Related JP5560814B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010068544A JP5560814B2 (ja) 2010-03-24 2010-03-24 負荷分散システム、負荷分散サーバおよび負荷分散方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010068544A JP5560814B2 (ja) 2010-03-24 2010-03-24 負荷分散システム、負荷分散サーバおよび負荷分散方法

Publications (2)

Publication Number Publication Date
JP2011203845A JP2011203845A (ja) 2011-10-13
JP5560814B2 true JP5560814B2 (ja) 2014-07-30

Family

ID=44880452

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010068544A Expired - Fee Related JP5560814B2 (ja) 2010-03-24 2010-03-24 負荷分散システム、負荷分散サーバおよび負荷分散方法

Country Status (1)

Country Link
JP (1) JP5560814B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5834998B2 (ja) * 2012-02-23 2015-12-24 富士通株式会社 イベント処理方法、イベント収集方法、イベント処理プログラム、イベント収集プログラム及び情報処理装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1151488C (zh) * 1998-10-02 2004-05-26 国际商业机器公司 通过一般分层对象进行有效语音导航的结构框架
JP2007257023A (ja) * 2006-03-20 2007-10-04 Nec Corp サーバ多重化システムおよびサーバ多重化方法

Also Published As

Publication number Publication date
JP2011203845A (ja) 2011-10-13

Similar Documents

Publication Publication Date Title
US10212246B2 (en) Proxy application with dynamic filter updating
US9853906B2 (en) Network prioritization based on node-level attributes
JP5299437B2 (ja) イベント処理システム、イベント処理方法、ルール分配装置、及びルール分配プログラム
CN102469033A (zh) 一种消息订阅系统以及消息发送方法
WO2014024863A1 (ja) 多階層の各ノードを考慮した負荷分散方法
US20080148272A1 (en) Job allocation program, method and apparatus
US10761888B2 (en) Method for deploying task to node based on execution completion point, task deployment apparatus and storage medium
JP2012065281A (ja) 通信プログラム、通信装置、通信方法、及び通信システム
EP3993346B1 (en) Method and device for distributed data storage
CN111917838B (zh) 基于微服务的处理方法及装置、存储介质、电子装置
EP2415213B1 (en) Smart routing
JP5560814B2 (ja) 負荷分散システム、負荷分散サーバおよび負荷分散方法
JP5754504B2 (ja) 管理装置、情報処理装置、情報処理システム及びデータ転送方法
US8978048B2 (en) Information processing system, control method, and non-transitory computer readable medium storing program
US9385940B2 (en) Distributed processing system, distributed processing device, routing table creation method and program recording medium
US20160041863A1 (en) System and abnormal condition detection method
US20150006620A1 (en) Scalable manufacturing facility management system
CN109831385B (zh) 一种消息处理方法、装置及电子设备
JPWO2010107107A1 (ja) イベント処理システム、イベント処理方法、ルール分配装置、及びプログラム記憶媒体
KR102013027B1 (ko) 피어 신뢰도 계산 방법 및 피어 평가 데이터의 업데이트 방법
Weinman Quantitative and qualitative economic benefits of fog
JP6815976B2 (ja) 変換装置、変換方法及びプログラム
JP6583927B2 (ja) 管理装置、管理方法、及び管理プログラム
KR20240059506A (ko) 가상 노드를 이용한 노드 관리 방법
JP6259406B2 (ja) データ管理装置及びデータ管理方法

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20110707

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130218

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131216

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140107

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140218

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: 20140513

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140526

R150 Certificate of patent or registration of utility model

Ref document number: 5560814

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees