(57)【特許請求の範囲】
【請求項１】
ディスパッチャから送信される各イベントを処理するための情報処理の内容を含む処理ルールを記憶する処理ルール記憶部と、
前記ディスパッチャからイベントとともに負荷分散サーバを識別するサーバ識別子を受け取ると、前記イベントに対応する処理ルールを、前記サーバ識別子で識別される前記負荷分散サーバが備える処理ルール記憶部から読み出す処理ルール検索部と、
他の負荷分散サーバのサーバ識別子と、前記ディスパッチャからイベントとともに受け取ったサーバ識別子とを少なくとも含む情報である代理処理要求を前記ディスパッチャに送信する負荷監視部と、
を備える、
負荷分散サーバ。
【請求項２】
請求項１に記載の負荷分散サーバであって、
前記処理ルール検索部は、イベントが処理される条件を示すイベント条件と負荷分散サーバを識別するサーバ識別子とを対応付けたディスパッチルールを識別するディスパッチルール識別子およびイベントを前記ディスパッチャから受け取り、
前記負荷監視部は、他の負荷分散サーバのサーバ識別子と前記ディスパッチルール識別子とを含む情報である前記代理処理要求を前記ディスパッチャに送信する、
負荷分散サーバ。
【請求項３】
請求項２に記載の負荷分散サーバであって、
前記負荷監視部は、前記負荷分散サーバが受信したイベントの処理による当該負荷分散サーバの負荷を特定し、特定した前記負荷が第一の閾値を超えた場合に前記代理処理要求を前記ディスパッチャに送信する、負荷分散サーバ。
【請求項４】
請求項２または３に記載の負荷分散サーバであって、
前記負荷監視部は、前記負荷分散サーバが受信したイベントごとに各イベントの処理による前記負荷分散サーバの負荷を特定し、あるイベントに対して特定した前記負荷が第二の閾値を超えた場合に、当該イベントとともに送信されてきたディスパッチルールのディスパッチルール識別子を含む前記代理処理要求を前記ディスパッチャに送信する、負荷分散サーバ。
【請求項５】
請求項３または４に記載の負荷分散サーバであって、
前記負荷監視部は、他の負荷分散サーバに、特定した前記負荷を示す情報と自負荷分散サーバのサーバ識別子とを送信し、
前記負荷監視部は、他の負荷分散サーバから、負荷を示す情報とサーバ識別子とを受信すると、所定の第三の閾値以下である当該負荷を示す情報とともに送られてきたサーバ識別子を含む前記代理処理要求を前記ディスパッチャに送信する、負荷分散サーバ。
【請求項６】
請求項２ないし５のいずれか１項に記載の負荷分散サーバであって、
前記負荷監視部は、代理処理させるイベントとともに受け取ったディスパッチルール識別子と前記他の負荷分散サーバを識別するサーバ識別子と当該イベントを代理処理させる割合を示す情報とを含む前記代理処理要求を前記ディスパッチャに送信する、負荷分散サーバ。
【請求項７】
請求項５に記載の負荷分散サーバであって、
前記負荷監視部は、前記負荷を示す情報に基づいて、イベントを代理処理させる割合を算出し、前記イベント条件と前記サーバ識別子と前記算出された割合を示す情報とを含む前記代理処理要求を前記ディスパッチャに送信する、負荷分散サーバ。
【請求項８】
請求項１ないし７のいずれか１項に記載の負荷分散サーバであって、
前記負荷分散サーバは、
各イベントの処理状況を示す情報であるステートを記憶するステート記憶部を備え、
前記処理ルール検索部は、前記ディスパッチャからイベントを受け取ると、当該イベントに対応する第１の前記ステートを前記ステート記憶部から読み出し、当該イベントの処理結果に応じて当該イベントに対応する前記第１の前記ステートを更新し、
前記処理ルール検索部は、前記ディスパッチャからイベントとともにイベント処理サーバを識別するサーバ識別子を受け取ると、前記イベントに対応する第２の前記ステートを、前記サーバ識別子で識別される前記負荷分散サーバが備えるステート記憶部から読み出し、前記負荷分散サーバによる当該イベントの処理結果に応じて当該イベントに対応する前記第２の前記ステートを更新する、負荷分散サーバ。
【請求項９】
イベントを処理する負荷分散サーバと、当該イベントを前記負荷分散サーバに送信するディスパッチャとを備え、
前記負荷分散サーバは、
前記ディスパッチャから送信される各イベントを処理するための情報を含む処理ルールを記憶する処理ルール記憶部と、
イベントが処理される条件を示すイベント条件と前記負荷分散サーバを識別するサーバ識別子とを対応付けた情報を含むディスパッチルールを識別するディスパッチルール識別子と、負荷分散サーバを識別するサーバ識別子と、を含む情報である代理処理要求を前記ディスパッチャに送信する負荷監視部と、
前記ディスパッチャからイベントとサーバ識別子とを受信すると、当該イベントに対応する処理ルールを、当該サーバ識別子で識別される負荷分散サーバが備える前記処理ルール記憶部から読み出す処理ルール検索部とを備え、
前記ディスパッチャは、
ディスパッチルールを、当該ディスパッチルールのディスパッチルール識別子と対応付けて記憶するディスパッチルール記憶部と、
前記負荷分散サーバから代理処理要求を受信すると、当該代理処理要求に含まれるディスパッチルール識別子で識別されるディスパッチルールに当該代理処理要求に含まれるサーバ識別子を対応付けて前記ディスパッチルール記憶部に記憶する負荷分散制御部と、
イベントを受信し、受信したイベントが満たすイベント条件を含むディスパッチルールを前記ディスパッチルール記憶部から読み出し、読み出したディスパッチルールに、サーバ識別子が対応付けられていた場合に、当該サーバ識別子で識別される負荷分散サーバに、前記読み出したディスパッチルールに含まれるサーバ識別子と、前記受信したイベントとを送信するイベント転送部とを備える負荷分散システム。
【請求項１０】
ディスパッチャから送信される各イベントを処理するための情報処理の内容を含む処理ルールを記憶部に記憶し、
前記ディスパッチャからイベントとともにサーバを識別するサーバ識別子を受け取ると、前記イベントに対応する処理ルールを、前記サーバ識別子で識別される前記サーバが備える記憶部から読み出し、
他の負荷分散サーバのサーバ識別子と、前記ディスパッチャからイベントとともに受け取ったサーバ識別子とを少なくとも含む情報である代理処理要求を前記ディスパッチャに送信する、負荷分散方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、負荷分散システムおよび負荷分散方法に関し、特にRFID(Radio Frequency IDentification)、センサのようなデバイスなどから大量に発生するイベントの処理負荷を各サーバに分散させるシステムに関する。
【背景技術】
【０００２】
デバイスなどから大量に発生するイベントを処理するシステムとして、特許文献１に開示されている発明がある。図１６は、特許文献１のシステムを示した図である。特許文献１に記載されたシステムは、イベント処理分散制御部(EP-CTL)、イベント振り分け部(ディスパッチャ)および複数の負荷分散サーバ(EP#a、EP#b、EP#c、およびEP#d)から構成される。このシステムの動作は以下のとおりである。イベント処理をシステムに要求するアプリケーション(APP)は、イベントを処理するための処理ルールをイベント処理分散制御部(EP-CTL)に送信する（ステップＳ１６０１）。処理ルールを受信したイベント処理分散制御部は、以下の条件をすべて満たすように処理ルールを適切な負荷分散サーバに設定する（ステップＳ１６０２）。第一の条件は、各負荷分散サーバの負荷が均等になることである。第二の条件は、所定の関係を満たすイベントに関するイベント処理は、同じ負荷分散サーバで行われることである。またイベント処理分散制御部は、イベント振り分け部に対して、以下の条件を満たすようにイベント振り分けルール(ディスパッチルール)を設定する（ステップＳ１６０３）。前述の条件とは、ディスパッチャが受け取るイベントが、そのイベントに関する処理ルールを設定された負荷分散サーバに送られることである。ディスパッチャは、デバイスなどのイベント発生源(Dev)から発生したイベントを受け取る（ステップＳ１６０４）。そしてディスパッチャは、イベント振り分けルールに基づいて、受け取ったイベントに関する処理ルールが設定された負荷分散サーバにそのイベントを転送する（ステップＳ１６０５）。イベントを受け取った負荷分散サーバは、設定された処理ルールに基づき処理を行い、その処理結果をアプリケーションに通知する（ステップＳ１６０６）。
【０００３】
特許文献２には、複数の情報処理装置を備えるグリッドコンピューティングシステムが開示されている。特許文献２に記載されたシステムは、各情報処理装置が自身の処理能力およびジョブの処理内容に基づいて情報処理装置自身でジョブを実行するか否か判断する。そして各情報処理装置が、自身でそのジョブを実行しないと判断した場合にそのジョブの実行要求を他の情報処理装置に転送する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第４１６１９９８号
【特許文献２】国際公開ＷＯ２００５／１１１７９８号
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１では、負荷分散サーバにおける負荷分散を実現するために、イベント処理分散制御部が、アプリケーションから送られる複数の処理ルールの配置をまとめて計算して負荷分散サーバに設定する。特許文献１に記載の技術は、一つの装置でまとめて処理ルールの配置を設定するので、処理ルールの割り当てに必要な計算や処理ルールの各負荷分散サーバへの設定に時間がかかる。したがって特許文献１に記載の技術は、短期的なイベントの処理負荷の変動に対処することが困難である。
【０００６】
特許文献２では、各情報処理装置が同様の情報処理を行うことを前提としている。したがって情報処理装置がアプリケーションから複数のイベント処理に対する処理ルールを受け取った際、イベント負荷分散制御部は、これらの処理ルールの配置をまとめて計算して負荷分散サーバに設定する。特許文献２に記載の技術は、処理ルールの割り当てに必要な計算や処理ルールの各負荷分散サーバへの設定に時間がかかる。したがって特許文献２に記載の技術は、短期的なイベントの処理負荷の変動に対処することが困難である。
【０００７】
［発明の目的］
本発明の目的の一つは、上記課題を解決し、短期的なイベントの処理負荷の変動に対処することができるイベント処理システム、イベント処理装置、イベント処理方法およびイベント処理プログラムを提供することにある。
【課題を解決するための手段】
【０００８】
本発明の一態様における第一の負荷分散サーバは、ディスパッチャから送信される各イベントを処理するための情報処理の内容を含む処理ルールを記憶する処理ルール記憶部と、前記ディスパッチャからイベントとともに負荷分散サーバを識別するサーバ識別子を受け取ると、前記イベントに対応する処理ルールを、前記サーバ識別子で識別される前記負荷分散サーバが備える処理ルール記憶部から読み出す処理ルール検索部とを備える。
【０００９】
また、本発明の一態様における第一の負荷分散システムは、イベントを処理する負荷分散サーバと、当該イベントを前記負荷分散サーバに送信するディスパッチャとを備え、前記負荷分散サーバは、前記ディスパッチャから送信される各イベントを処理するための情報を含む処理ルールを記憶する処理ルール記憶部と、イベントが処理される条件を示すイベント条件と前記負荷分散サーバを識別するサーバ識別子とを対応付けた情報を含むディスパッチルールを識別するディスパッチルール識別子と、負荷分散サーバを識別するサーバ識別子と、を含む情報である代理処理要求を前記ディスパッチャに送信する負荷監視部と、前記ディスパッチャからイベントとサーバ識別子とを受信すると、当該イベントに対応する処理ルールを、当該サーバ識別子で識別される負荷分散サーバが備える前記処理ルール記憶部から読み出す処理ルール検索部とを備え、前記ディスパッチャは、ディスパッチルールを、当該ディスパッチルールのディスパッチルール識別子と対応付けて記憶するディスパッチルール記憶部と、前記負荷分散サーバから代理処理要求を受信すると、当該代理処理要求に含まれるディスパッチルール識別子で識別されるディスパッチルールに当該代理処理要求に含まれるサーバ識別子を対応付けて前記ディスパッチルール記憶部に記憶する負荷分散制御部と、イベントを受信し、受信したイベントが満たすイベント条件を含むディスパッチルールを前記ディスパッチルール記憶部から読み出し、読み出したディスパッチルールに、サーバ識別子が対応付けられていた場合に、当該サーバ識別子で識別される負荷分散サーバに、前記読み出したディスパッチルールに含まれるサーバ識別子と、前記受信したイベントとを送信するイベント転送部とを備える。
【００１０】
本発明の一態様における第一の負荷分散方法は、ディスパッチャから送信される各イベントを処理するための情報処理の内容を含む処理ルールを記憶部に記憶し、前記ディスパッチャからイベントとともにサーバを識別するサーバ識別子を受け取ると、前記イベントに対応する処理ルールを、前記サーバ識別子で識別される前記サーバが備える記憶部から読み出す。
【００１１】
本発明の一態様における第一の負荷分散プログラムは、コンピュータに、ディスパッチャから送信される各イベントを処理するための情報を含む処理ルールを記憶部に記憶する処理と、前記ディスパッチャからイベントとともにサーバを識別するサーバ識別子を受け取ると、前記イベントに対応する処理ルールを、前記サーバ識別子で識別される前記サーバが備える記憶部から読み出す処理とを実行させる。
【００１２】
本発明の一態様における第一の負荷分散プログラムを記録した記録媒体は、コンピュータに、ディスパッチャから送信される各イベントを処理するための情報を含む処理ルールを記憶部に記憶する処理と、前記ディスパッチャからイベントとともにサーバを識別するサーバ識別子を受け取ると、前記イベントに対応する処理ルールを、前記サーバ識別子で識別される前記サーバが備える記憶部から読み出す処理とを実行させるための負荷分散プログラム、を記録する。
【発明の効果】
【００１３】
本発明の効果の一つは、 短期的なイベントの処理負荷の変動に対応できることである。
【図面の簡単な説明】
【００１４】
【図１】図１は、本発明の第一の実施の形態における負荷分散サーバの構成を示すブロック図である。
【図２】図２は、イベントの一例を示す図である。
【図３】図３は、処理ルールの一例を示す図である。
【図４】図４は、本発明の第一の実施の形態における負荷分散サーバの動作の概要の一例を示すフローチャートである。
【図５】図５は、本発明の第二の実施の形態における負荷分散システムの構成を示すブロック図である。
【図６】図６は、本発明の第二の実施の形態における負荷分散サーバの構成を示すブロック図である。
【図７】図７は、本発明の第二の実施の形態におけるディスパッチャの構成を示すブロック図である。
【図８】図８は、本発明の第二の実施の形態における負荷分散システムにおいて、負荷分散サーバがイベントの処理を行うための処理ルールを読み出す動作の概要の一例を示すフローチャートである。
【図９】図９は、ディスパッチャが負荷分散サーバに送信する情報のフォーマットの一例を示す図である。
【図１０】図１０は、ディスパッチャが負荷分散サーバに送信する情報のフォーマットの一例を示す図である。
【図１１】図１１は、本発明の第二の実施の形態において、負荷分散システムの負荷分散サーバが代理処理要求をディスパッチャに送信する動作の概要の一例を示すフローチャートである。
【図１２】図１２は、代理処理要求の一例を示す図である。
【図１３】図１３は、本発明の第三の実施の形態における負荷分散システムの構成を示すブロック図である。
【図１４】図１４は、本発明の第三の実施の形態における負荷分散サーバの構成を示すブロック図である。
【図１５】図１５は、ある時点での、各負荷分散サーバの処理負荷をそれぞれ示した図である。
【図１６】図１６は、関連技術におけるシステムの構成を示すブロック図である。
【発明を実施するための形態】
【００１５】
本発明を実施するための形態について図面を参照して詳細に説明する。なお、各図面および明細書記載の各実施の形態において、同様の機能を備える構成要素には同様の符号が与えられている。
【００１６】
［第一の実施の形態］
図１は、本発明の第一の実施の形態における負荷分散サーバ９０の構成を示すブロック図である。
【００１７】
図１を参照すると、本発明の第一の実施の形態における負荷分散サーバ９０は、処理ルール検索部９３と、処理ルール記憶部９５と、を備える。処理ルール検索部９３は、処理ルール記憶部９５と接続されている。
【００１８】
＝＝＝処理ルール記憶部９５＝＝＝
処理ルール記憶部９５は、各イベント６０１を処理するための情報を含む処理ルールを記憶する。
【００１９】
ここで、イベント６０１とは、例えばＲＦＩＤ（Radio Frequency IDentification）システムやセンサのような一または複数のデバイスにおいて生成される各情報のことである。また、イベント６０１は、図示しないディスパッチャから負荷分散サーバ９０に送信される。
【００２０】
例えば図２に示されるように、イベント６０１は、イベントの内容を示すイベントタイプ６０２と、ペア６０３とを含む。ペア６０３は、属性名６０３−１と属性値６０３−２とを含む。イベントは、一または複数のペア６０３を含む。例えば図２によれば、イベントは、イベントタイプ６０２として「衝撃」を含む。またイベントは、属性名６０３−１として「センサＩＤ」、「衝撃値」、「場所」および「時刻」を含む。またイベントは、属性名６０３−１に対応する属性値６０３−２として、「ＩＤ１」、「５０Ｇ」、「東京都港区芝」および「１０：１０：２５」を含む。これらは例示であって、イベントタイプ６０２、属性名６０３−１および属性値６０３−２が上述の値に限られるものではない。
【００２１】
処理ルールは、例えば特許文献１に記載されている技術と同様の情報であってもよい。例えば、処理ルールは、ルールの名称、処理すべきイベントの条件（イベント条件）、およびイベントに対する処理内容の具体的な記述を含む。ルールの名称とは、各処理ルールの名称を表す。イベント条件とは、この処理ルールが適用されるイベントの条件を示す。例えば、イベント条件は、「イベントに含まれる所定の属性名６０３−１に対する属性値６０３−２がある値の場合にこの処理ルールが実行される」ことを示す情報を含む。
【００２２】
図３は、処理ルール３の一例を示した図である。図３を参照すると、行０００１は、処理ルール３の名称（"Rule_A"）を示している。行０００２は、この処理ルールが適用されるイベントの条件を示している。図３の例では、行０００２は、処理されるイベントが"tag_kind"という、ＲＦＩＤタグの種別を示すフィールドを含み、かつ、そのフィールドの値が４である場合に、この処理ルールがそのイベントに適用される、というイベント条件を示している。
【００２３】
行０００３以下の行は、処理の内容を示している。行０００４は、処理ルールに記載された処理が開始される際に行われる、初期値の設定処理を示す。行０００５は、配列型のイベントを格納する配列を示す"eventlog"という、記憶領域が確保されることを示している。行０００６は、格納されているイベントの数を示す"event_count"という、整数変数が０にクリアされることを示している。
【００２４】
処理ルール記憶部９５は、図示しないイベント処理分散制御部（ＥＰ−ＣＴＬ）から処理ルールを受信し、受信した各処理ルールを記憶してもよい。ＥＰ−ＣＴＬは特許文献１に記載された技術が適用された装置であっても良い。
【００２５】
ＥＰ−ＣＴＬは、外部装置から処理ルールを受信し、受信した各処理ルールを所定のアルゴリズムに基づいて各負荷分散サーバ９０に配信する。所定のアルゴリズムには例えば特許文献１に記載された方法が適用されうる。
【００２６】
＝＝＝処理ルール検索部９３＝＝＝
第一に、処理ルール検索部９３は、図示しないディスパッチャからイベントを受け取ると、そのイベントに対応する処理ルールを処理ルール記憶部９５から読み出す。例えば処理ルール検索部９３は、イベントに含まれる各情報が処理ルール記憶部９５に記憶されている各処理ルールのイベント条件を満たすか否かによって読み出す処理ルールを特定してもよい。
【００２７】
第二に、処理ルール検索部９３は、前述のディスパッチャからイベントとともに負荷分散サーバ９０を識別するサーバ識別子を受け取る。そして処理ルール検索部９３は、受け取ったイベントに対応する処理ルールを、受け取ったサーバ識別子で識別される負荷分散サーバ９０が備える処理ルール記憶部９５から読み出す。すなわち、処理ルール記憶部９５は、他の負荷分散サーバ９０から参照可能である。例えば処理ルール検索部９３は、イベントに含まれる各情報が、他の負荷分散サーバ９０が備える処理ルール記憶部９５に記憶されている各処理ルールのイベント条件を満たすか否かによって読み出す処理ルールを特定してもよい。
【００２８】
図４は、本発明の第一の実施の形態における負荷分散サーバ９０の動作の概要の一例を示すフローチャートである。
【００２９】
まず、処理ルール記憶部９５は、処理ルールを記憶する（ステップＳ９０１）。次に、処理ルール検索部９３は、図示しないディスパッチャからイベントを受け取る。そして処理ルール検索部９３は、受け取ったイベントに対応する処理ルールを処理ルール記憶部９５から読み出す（ステップＳ９０２）。
【００３０】
処理ルール検索部９３は、前述のディスパッチャからイベントとともに負荷分散サーバ９０を識別するサーバ識別子を受け取る。そして、処理ルール検索部９３は、受け取ったイベントに対応する処理ルールを、受け取ったサーバ識別子で識別できる負荷分散サーバ９０が備える処理ルール記憶部９５から読み出す（ステップＳ９０３）。
【００３１】
本発明の第一の実施の形態における負荷分散サーバ９０は、あらかじめ各イベントを処理するための情報を含む処理ルールを処理ルール記憶部９５に記憶する。そして負荷分散サーバ９０は、ディスパッチャからイベントを受け取ると、そのイベントに対応する処理ルールを処理ルール記憶部９５から読み出す。一方負荷分散サーバ９０は、ディスパッチャからイベントとともに負荷分散サーバ９０を識別するサーバ識別子を受け取ると、以下の動作を行う。すなわち負荷分散サーバ９０は、受け取ったサーバ識別子で識別される負荷分散サーバ９０が備える処理ルール記憶部９５から、受け取ったイベントに対応する処理ルールを読み出す。
【００３２】
本発明の第一の実施の形態における負荷分散サーバ９０は、他の負荷分散サーバ９０の処理ルールを読み出すことができる。よって、例えば短期的に一つの負荷分散サーバ９０におけるイベントの処理負荷が大きくなり、その負荷分散サーバ９０で行われる一部の処理を他の負荷分散サーバ９０に代行して処理させる場合がある。このような場合でも、各負荷分散サーバ９０は、この各負荷分散サーバ９０が記憶する処理ルールを変更しなくてもそれぞれが処理するイベントの量を適切に調節しながら各イベントを処理することができる。
【００３３】
各関連技術において、各負荷分散サーバ間で処理ルールを変更させることは、大変時間がかかっていた。そのため各関連技術では、時間のかかるイベント処理の再配置のために必要な計算時間がかかる。また各関連技術では、処理ルールの検索ツリーの再構築のために必要な計算時間がかかる。しかし、本発明の第一の実施の形態における負荷分散サーバ９０によれば、処理ルールを負荷分散サーバ９０間で変更する必要がないので、この処理による時間がかかることはない。よって、本発明の第一の実施の形態における負荷分散サーバ９０は、各負荷分散サーバ９０での短期間における処理負荷の変動に適切に対処することができる。
【００３４】
［第二の実施の形態］
図５は、本発明の第二の実施の形態における負荷分散システム１０００の構成を示すブロック図である。
【００３５】
図５を参照すると、本発明の第二の実施の形態における負荷分散システム１０００は、ディスパッチャ３００とサーバ２００（サーバ２００ａおよび２００ｂ）とを備える。サーバ２００のそれぞれは、ディスパッチャ３００と接続されている。ディスパッチャ３００は、サーバ２００のそれぞれと接続されている。
【００３６】
＜サーバ２００＞
サーバ２００は、複数の負荷分散サーバ１００（図５の例では、負荷分散サーバ１００ａ、１００ｂ、１００ｃおよび１００ｄ）を備える。図５を参照すると、サーバ２００ａは、負荷分散サーバ１００ａおよび負荷分散サーバ１００ｂを備えている。サーバ２００ｂは、負荷分散サーバ１００ｃおよび負荷分散サーバ１００ｄを備えている。
【００３７】
＜負荷分散サーバ１００＞
図６は、本発明の第二の実施の形態における負荷分散サーバ１００の構成を示すブロック図である。
【００３８】
図６を参照すると、負荷分散サーバ１００は、イベント処理部１０２と処理ルール検索部１０３と負荷監視部１０４と処理ルール記憶部１０５とステート記憶部１０６とを備える。イベント処理部１０２は、処理ルール検索部１０３と負荷監視部１０４とステート記憶部１０６とそれぞれ接続されている。処理ルール検索部１０３は、イベント処理部１０２と処理ルール記憶部１０５とそれぞれ接続されている。負荷監視部１０４は、イベント処理部１０２と接続されている。処理ルール記憶部１０５は、処理ルール検索部１０３と接続されている。ステート記憶部１０６は、イベント処理部１０２と接続されている。
【００３９】
＝＝＝処理ルール記憶部１０５＝＝＝
処理ルール記憶部１０５は、図示しない外部装置（例えば特許文献１におけるイベント処理分散制御部）から処理ルールを受信し、記憶する。処理ルールは、第一の実施の形態における処理ルールと同様であってもよい。その他の特徴は、第一の実施の形態における処理ルール記憶部９５と同様である。
【００４０】
＝＝＝ステート記憶部１０６＝＝＝
ステート記憶部１０６は、後述のイベント処理部１０２が処理したイベント６０１に関する処理結果を記憶する。この処理結果（ステート）は後述のイベント処理部１０２に読み出され、または更新される。このステートは、イベント処理部１０２が各イベント６０１を処理した結果または処理した状況を示す情報である。
【００４１】
＝＝＝イベント処理部１０２＝＝＝
イベント処理部１０２は、後述のディスパッチャ３００からイベント６０１とディスパッチルールを識別するディスパッチルール識別子とを受信する。そしてイベント処理部１０２は、受信したイベント６０１とディスパッチルール識別子とを後述の処理ルール検索部１０３に渡す。ディスパッチルールは、後で説明される。
【００４２】
イベント処理部１０２は、後述の処理ルール検索部１０３から処理ルールを受け取ると、その処理ルールに含まれるイベントに対する処理内容に基づき前述のイベント６０１を処理し、その処理結果を図示しない外部装置に送信する。イベント処理部１０２が、イベント６０１を処理する際に、このイベント６０１の過去の処理結果を参照する必要がある場合がある。このような場合にはイベント処理部１０２は、ステート記憶部１０６からイベント６０１の過去の処理結果（ステート）を読み出し、所望の処理を行う。また、イベント処理部１０２は、今後のイベント６０１の処理のために今回の処理結果（ステート）を記憶する必要がある場合に、ステート記憶部１０６に今回の処理結果を記憶する。例えば、イベント処理部１０２が行う情報処理の内容が、「イベント６０１に含まれる所定の属性値の平均を取る」である場合に、イベント処理部１０２は、イベント６０１に関する所定の属性値の平均に関する情報をステート記憶部１０６から読み出す。そしてイベント処理部１０２は、イベント６０１に含まれる所定の属性値とステート記憶部１０６から読み出した情報とに基づいて所望の平均値を算出する。そしてイベント処理部１０２は、算出した平均値をステート記憶部１０６に記憶する。
【００４３】
イベント処理部１０２は、後述のディスパッチャ３００から、イベント６０１とディスパッチルールを識別するディスパッチルール識別子と負荷分散サーバ１００を識別するサーバ識別子とを受信する。そしてイベント処理部１０２は、受信したイベント６０１とディスパッチルール識別子とサーバ識別子とを後述の処理ルール検索部１０３に渡す。
【００４４】
イベント処理部１０２は、後述の処理ルール検索部１０３から処理ルールを受け取ると、その処理ルールに含まれるイベントに対する処理内容に基づき前述のイベント６０１を処理し、その処理結果を図示しない外部装置に送信する。イベント処理部１０２が、イベント６０１を処理する際に、このイベント６０１の過去の処理結果を参照する必要がある場合がある。このような場合にはイベント処理部１０２は、前述のサーバ識別子で識別される負荷分散サーバ１００が備えるステート記憶部１０６からイベント６０１の過去の処理結果を読み出し、所望の処理を行う。また、イベント処理部１０２は、今後のイベント６０１の処理のために今回の処理結果を記憶する必要がある場合に、前述のサーバ識別子で識別される負荷分散サーバ１００が備えるステート記憶部１０６に今回の処理結果を記憶する。以下、「前述のサーバ識別子で識別される負荷分散サーバ１００」は、「代理処理要求元サーバ」とも表される。
【００４５】
＝＝＝処理ルール検索部１０３＝＝＝
処理ルール検索部１０３は、イベント処理部１０２からイベント６０１とディスパッチルール識別子とを受け取ると、イベント６０１に対応する処理ルールを処理ルール記憶部１０５から読み出す。そして処理ルール検索部１０３は、読み出した処理ルールをイベント処理部１０２に返す。
【００４６】
また、処理ルール検索部１０３は、イベント処理部１０２からイベント６０１とディスパッチルール識別子とサーバ識別子とを受け取ると、以下の動作を実行する。すなわち処理ルール検索部１０３は、受け取ったイベント６０１に対応する処理ルールを、受け取ったサーバ識別子で識別される負荷分散サーバ１００が備える処理ルール記憶部１０５から読み出す。そして処理ルール検索部１０３は、読み出した処理ルールをイベント処理部１０２に返す。以下、前述の「受け取ったサーバ識別子で識別される負荷分散サーバ１００」は、「代理処理要求元サーバ」とも表される。
【００４７】
＝＝＝負荷監視部１０４＝＝＝
負荷監視部１０４は、イベント処理部１０２におけるイベント６０１の処理負荷を監視している。処理負荷とは、例えば負荷分散サーバ１００が使用しているＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）コアのＣＰＵ使用率などが挙げられる。負荷監視部１０４は、負荷分散サーバ１００の処理負荷が所定の第一の閾値を超えたことを検知すると、後述のディスパッチャ３００に対して代理処理要求を送信する。
【００４８】
代理処理要求は、ディスパッチルール識別子とある負荷分散サーバ１００を識別するサーバ識別子とを含む。このディスパッチルール識別子は、代理処理させたいイベント６０１とともにこの負荷分散サーバ１００が受信したディスパッチルール識別子である。また、このサーバ識別子は、代理処理させたい負荷分散サーバ１００を識別するサーバ識別子である。以下、「代理処理させたい負荷分散サーバ１００」は、「代理サーバ」とも表される。
【００４９】
代理処理要求は、代理処理するイベント６０１に対するイベントトラフィックの割合を含んでもよい。また、代理処理要求は、サーバ識別子とイベントトラフィックの割合とを複数含んでもよい。例えば、サーバ２００が備えるＣＰＵコアの数が複数であり、かつサーバ２００に含まれる負荷分散サーバ１００が複数ある場合には、代理処理要求は、サーバ２００内に含まれる他の負荷分散サーバ１００のサーバ識別子を複数含むことが可能である。またこの場合、代理処理要求は、そのサーバ識別子ごとにイベントトラフィックの割合を含んでもよい。
【００５０】
負荷監視部１０４は、イベントトラフィックの割合を、自身を含む負荷分散サーバ１００や他の負荷分散サーバ１００のＣＰＵコアのＣＰＵ使用率に基づいて算出してもよい。
【００５１】
＜ディスパッチャ３００＞
図７は、本発明の第二の実施の形態におけるディスパッチャ３００の構成を示すブロック図である。
【００５２】
図７を参照すると、ディスパッチャ３００は、イベント転送部３０２とディスパッチルール検索部３０３と負荷分散制御部３０４とディスパッチルール記憶部３０５とを備える。イベント転送部３０２は、ディスパッチルール検索部３０３と接続されている。ディスパッチルール検索部３０３は、イベント転送部３０２とディスパッチルール記憶部３０５とそれぞれ接続されている。負荷分散制御部３０４は、ディスパッチルール記憶部３０５と接続されている。ディスパッチルール記憶部３０５は、ディスパッチルール検索部３０３と負荷分散制御部３０４とそれぞれ接続されている。
【００５３】
＝＝＝ディスパッチルール記憶部３０５＝＝＝
ディスパッチルール記憶部３０５は、ディスパッチルールをそのディスパッチルールを識別するディスパッチルール識別子と対応付けて記憶する。ディスパッチルールとは、イベント６０１が処理される条件を示すイベント条件と負荷分散サーバ１００のサーバ識別子とを対応付けたルールを含む情報である。
【００５４】
イベント条件とは、そのディスパッチルールに含まれるサーバ識別子で識別される負荷分散サーバ１００が処理するイベントが満たす条件を示す。例えば、イベント条件は、「イベント６０１に含まれる所定の属性名６０３−１に対する属性値６０３−２がある値の場合に、この負荷分散サーバ１００ｘは、そのイベント６０１を処理する」といった情報を含む。
【００５５】
ディスパッチルール記憶部３０５は、図示しない外部装置（例えば特許文献１におけるイベント処理分散制御部）からディスパッチルールを受信し、記憶してもよい。
【００５６】
＝＝＝イベント転送部３０２＝＝＝
イベント転送部３０２は、図示しないデバイスからイベント６０１を受信する。そしてイベント転送部３０２は、受信したイベント６０１をディスパッチルール検索部３０３に渡す。デバイスとは、ＲＦＩＤ（Radio Frequency IDentification）システムやセンサのような一または複数のデバイスであってもよい。
【００５７】
イベント転送部３０２は、後述のディスパッチルール検索部３０３からディスパッチルールに含まれていたサーバ識別子とそのディスパッチルールのディスパッチルール識別子とを受け取る。そして、イベント転送部３０２は、ディスパッチルールに含まれていたサーバ識別子で識別される負荷分散サーバ１００に、受信したイベント６０１と受け取ったディスパッチルール識別子とを送信する。
【００５８】
またイベント転送部３０２は、後述のディスパッチルール検索部３０３からディスパッチルールに含まれていたサーバ識別子とそのディスパッチルールのディスパッチルール識別子と代理サーバのサーバ識別子とを受け取る。そして、イベント転送部３０２は、受け取ったサーバ識別子で識別される負荷分散サーバ１００（代理サーバ）に対して、受信したイベント６０１と受け取ったディスパッチルール識別子とディスパッチルールに含まれていたサーバ識別子とを送信する。代理サーバとは、後述の負荷分散制御部３０４が受け取る代理処理要求に含まれるサーバ識別子で識別される負荷分散サーバ１００のことである。
【００５９】
またイベント転送部３０２は、後述のディスパッチルール検索部３０３からディスパッチルールに含まれていたサーバ識別子とそのディスパッチルールのディスパッチルール識別子と代理サーバのサーバ識別子とイベントトラフィックの割合とを受け取ってもよい。この場合、イベント転送部３０２は、代理サーバのサーバ識別子で識別される各負荷分散サーバ１００に対して、それぞれ受信したイベント６０１のうちイベントトラフィックの割合の分の情報を送信する。またイベント転送部３０２は、受け取ったディスパッチルール識別子と、ディスパッチルールに含まれていたサーバ識別子とを前述の情報とともに代理サーバである負荷分散サーバ１００に送信する。さらにイベント転送部３０２は、そのディスパッチルールに含まれていたサーバ識別子で識別される負荷分散サーバ１００に、受信したイベント６０１のうち前述の代理サーバに送信しなかった分の情報と、受け取ったディスパッチルール識別子とを送信する。
【００６０】
＝＝＝ディスパッチルール検索部３０３＝＝＝
ディスパッチルール検索部３０３は、イベント転送部３０２からイベント６０１を受け取る。そして、ディスパッチルール検索部３０３は、イベント６０１に対応するディスパッチルールとそのディスパッチルールのディスパッチルール識別子とをディスパッチルール記憶部３０５から読み出す。そしてディスパッチルール検索部３０３は、読み出したディスパッチルールに含まれるサーバ識別子とそのディスパッチルールのディスパッチルール識別子とをイベント転送部３０２に返す。
【００６１】
ディスパッチルール検索部３０３がディスパッチルール記憶部３０５から読み出すディスパッチルールに代理サーバのサーバ識別子が対応付けられていた場合、ディスパッチルール検索部３０３は、以下の処理を行う。すなわちディスパッチルール検索部３０３は、
ディスパッチルールに含まれるサーバ識別子とそのディスパッチルールのディスパッチルール識別子と代理サーバのサーバ識別子とをイベント転送部３０２に返す。
【００６２】
ディスパッチルール検索部３０３がディスパッチルール記憶部３０５から読み出すディスパッチルールに、代理サーバのサーバ識別子とイベントトラフィックの割合とが対応付けられていた場合、ディスパッチルール検索部３０３は、以下の処理を行う。すなわちディスパッチルール検索部３０３は、ディスパッチルールに含まれるサーバ識別子とそのシスパッチルールのディスパッチルール識別子と代理サーバのサーバ識別子とイベントトラフィックの割合とをイベント転送部３０２に返す。
【００６３】
＝＝＝負荷分散制御部３０４＝＝＝
負荷分散制御部３０４は、負荷分散サーバ１００から代理処理要求を受信する。そして負荷分散制御部３０４は、受信した代理処理要求に含まれるディスパッチルール識別子で識別されるディスパッチルールに、受信した代理処理要求に含まれるサーバ識別子を対応付けてディスパッチルール記憶部３０５に記憶する。このサーバ識別子は、代理サーバのサーバ識別子である。
【００６４】
代理処理要求にイベントトラフィックの割合が含まれている場合に、負荷分散制御部３０４は、受信した代理処理要求に含まれるサーバ識別子とイベントトラフィックの割合とを特定する。そして負荷分散制御部３０４は、特定のディスパッチルールに、前述のサーバ識別子とイベントトラフィックの割合とをそれぞれ対応付けてディスパッチルール記憶部３０５に記憶する。特定のディスパッチルールとは、受信した代理処理要求に含まれるディスパッチルール識別子で識別されるディスパッチルールである。
【００６５】
図８は、本発明の第二の実施の形態における負荷分散システム１０００において、負荷分散サーバ１００がイベントの処理を行うための処理ルールを読み出す動作の概要の一例を示すフローチャートである。
【００６６】
まず、図示しない外部装置が所定のルール分配アルゴリズムに基づいて各負荷分散サーバ１００に処理ルールを送信する。また、この外部装置は、所定のアルゴリズムに基づいてディスパッチルールを生成し、ディスパッチャ３００に送信する。この処理方法として、特許文献１に記載された方法などが適用されうる。
【００６７】
処理ルール記憶部１０５は、受信した処理ルールを記憶する（ステップＳ８０１）。
【００６８】
次に、図示しないデバイスがディスパッチャ３００にイベント６０１を送信する。ディスパッチャ３００のイベント転送部３０２は、イベント６０１を受信する（ステップＳ８０２）。イベント転送部３０２は、受信したイベント６０１をディスパッチルール検索部３０３に渡す。
【００６９】
ディスパッチルール検索部３０３は、受け取ったイベント６０１に含まれる情報に基づいてディスパッチルール記憶部３０５を検索する。そしてディスパッチルール検索部３０３は、イベント６０１に含まれる情報が満たすイベント条件を含むディスパッチルールがディスパッチルール記憶部３０５に記憶されているか否か判定する（ステップＳ８０３）。
【００７０】
イベント６０１に含まれる情報が満たすイベント条件を含むディスパッチルールがディスパッチルール記憶部３０５に存在する場合（ステップＳ８０３の“Ｙｅｓ”）、ディスパッチルール検索部３０３は、以下の動作を実行する。すなわちディスパッチルール検索部３０３は、そのディスパッチルールに代理サーバのサーバ識別子が対応付けられて記憶されているか否か判定する（ステップＳ８０４）。一方、イベント６０１に含まれる情報が満たすイベント条件を含むディスパッチルールがディスパッチルール記憶部３０５に存在しない場合（ステップＳ８０３の“Ｎｏ”）、負荷分散システム１０００の処理は、ステップＳ８０２に戻る。
【００７１】
ディスパッチルール検索部３０３が読み出したディスパッチルールに代理サーバのサーバ識別子が対応付けられて記憶されていない場合（ステップＳ８０４の“Ｎｏ”）、ディスパッチルール検索部３０３は、以下の動作を実行する。すなわちディスパッチルール検索部３０３は、当該ディスパッチルールに含まれるサーバ識別子とそのディスパッチルールのディスパッチルール識別子とをイベント転送部３０２に渡す。
【００７２】
イベント転送部３０２は、ディスパッチルール検索部３０３から受け取ったディスパッチルール識別子と外部装置から受信したイベント６０１とを、特定の負荷分散サーバ１００に送信する（ステップＳ８０５）。特定の負荷分散サーバ１００とは、ディスパッチルール識別子で識別されるディスパッチルールに含まれていたサーバ識別子で識別される負荷分散サーバ１００のことである。本実施の形態では、イベント転送部３０２は、例えば負荷分散サーバ１００ａに前述のディスパッチルール識別子とイベント６０１とを送信すると仮定する。図９は、ディスパッチャ３００が負荷分散サーバ１００ａに転送する情報のフォーマットを示す図である。図９を参照すると、ディスパッチャ３００が負荷分散サーバ１００ａに送信する情報は、イベント６０１に、そのイベント６０１が満たすイベント条件を含むディスパッチルールのディスパッチルール識別子７０１が付加されている。
【００７３】
負荷分散サーバ１００ａのイベント処理部１０２は、ディスパッチャ３００からイベントとディスパッチルール識別子とを受信する（ステップＳ８０６）。イベント処理部１０２は、受信したイベントを処理ルール検索部１０３に渡す。
【００７４】
処理ルール検索部１０３は、受け取ったイベントに含まれる情報に基づいて処理ルール記憶部１０５を検索する。そして処理ルール検索部１０３は、イベント６０１に含まれる情報が満たすイベント条件を含む処理ルールが処理ルール記憶部１０５に存在するか否か判定する（ステップＳ８０７）。イベント６０１に含まれる情報が満たすイベント条件を含む処理ルールが処理ルール記憶部１０５に存在する場合（ステップＳ８０７の“Ｙｅｓ”）、処理ルール検索部１０３は、その処理ルールをイベント処理部１０２に渡す。一方、イベント６０１に含まれる情報が満たすイベント条件を含む処理ルールが処理ルール記憶部１０５に存在しない場合（ステップＳ８０７の“Ｎｏ”）、負荷分散システム１０００の処理は終了する。
【００７５】
イベント処理部１０２は、イベント処理部１０２が行うイベントの処理が、過去のイベント処理に関する情報を必要とするか否か判定する（ステップＳ８０８）。イベント処理部１０２が行うイベントの処理が、過去のイベント処理に関する情報を必要とする場合（ステップＳ８０８の“Ｙｅｓ”）、イベント処理部１０２は、ステート記憶部１０６に記憶されている、所定の処理結果を読み出す（ステップＳ８０９）。そして負荷分散システム１０００の処理は、ステップＳ８１０へ進む。イベント処理部１０２が行うイベントの処理が、過去のイベント処理に関する情報を必要としない場合、（ステップＳ８０８の“Ｎｏ”）、負荷分散システム１０００の処理は、ステップＳ８１０へ進む。
【００７６】
イベント処理部１０２は、受け取った処理ルールに基づいて受信したイベントを処理する。そしてイベント処理部１０２は、処理結果を図示しない外部装置が実行するアプリケーションに送信する（ステップＳ８１０）。イベント処理部１０２は、イベント処理部１０２が行うイベントの処理結果が、今後の処理に必要となるか否か判定する（ステップＳ８１１）。イベント処理部１０２が行うイベントの処理結果が、今後の処理に必要となる場合（ステップＳ８１１の“Ｙｅｓ”）、イベント処理部１０２は、その処理結果をステート記憶部１０６に記憶する（ステップＳ８１２）。一方、イベント処理部１０２が行うイベントの処理結果が、今後の処理に必要とならない場合（ステップＳ８１１の“Ｎｏ”）、負荷分散システム１０００の処理は終了する。
【００７７】
一方、イベント６０１に含まれる情報が満たすイベント条件を含むディスパッチルールに代理サーバのサーバ識別子が対応付けられて記憶されている場合（ステップＳ８０４の“Ｙｅｓ”）、ディスパッチルール検索部３０３は、以下の動作を実行する。すなわちディスパッチルール検索部３０３は、前述のディスパッチルールに含まれるサーバ識別子とそのディスパッチルールのディスパッチルール識別子と代理サーバのサーバ識別子とをイベント転送部３０２に渡す。また、当該ディスパッチルールにイベントトラフィックの割合が対応付けて記憶されている場合、そのディスパッチルール検索部３０３は、イベントトラフィックの割合もイベント転送部３０２に渡す。
【００７８】
イベント転送部３０２は、ディスパッチルール識別子とサーバ識別子とイベント６０１とを、代理サーバのサーバ識別子で識別される負荷分散サーバ１００へ送信する（ステップＳ８１３）。このディスパッチルール識別子は、ディスパッチルール検索部３０３から受け取ったディスパッチルール識別子である。サーバ識別子は、前述のディスパッチルール識別子で識別されるディスパッチルールに含まれていたサーバ識別子である。またイベント６０１は、図示しない外部装置から受信したイベントである。本実施の形態では、イベント転送部３０２は、例えば負荷分散サーバ１００ｂに前述のディスパッチルール識別子とサーバ識別子とイベント６０１とを送信すると仮定する。以下、この負荷分散サーバ１００ｂは、代理サーバとも表される。図１０は、ディスパッチャ３００が負荷分散サーバ１００ｂ（代理サーバ）に転送する情報のフォーマットを示す図である。図１０を参照すると、ディスパッチャ３００が負荷分散サーバ１００ｂに送信する情報は、イベント６０１に、ディスパッチルール識別子７０１とサーバ識別子１２０２とが付加されている。ディスパッチルール識別子７０１は、そのイベントが満たすイベント条件を含むディスパッチルールのディスパッチルール識別子である。サーバ識別子１２０２は、本来そのイベントを処理する負荷分散サーバ１００ａのサーバ識別子である。以下、この負荷分散サーバ１００ａは、代理処理要求元サーバとも表される。
【００７９】
負荷分散サーバ１００ｂ（代理サーバ）のイベント処理部１０２は、ディスパッチャ３００からイベント６０１とディスパッチルール識別子７０１とサーバ識別子１２０２とを受信する（ステップＳ８１４）。イベント処理部１０２は、受信したイベント６０１とサーバ識別子１２０２とを処理ルール検索部１０３に渡す。
【００８０】
処理ルール検索部１０３は、受け取ったイベント６０１に含まれる情報に基づいて、サーバ識別子１２０２で識別される負荷分散サーバ１００ａ（代理処理要求元サーバ）の処理ルール記憶部１０５を検索する。そして処理ルール検索部１０３は、イベント６０１に含まれる情報が満たすイベント条件を含む処理ルールが処理ルール記憶部１０５に存在するか否か判定する（ステップＳ８１５）。イベント６０１に含まれる情報が満たすイベント条件を含む処理ルールが処理ルール記憶部１０５に存在する場合（ステップＳ８１５の“Ｙｅｓ”）、処理ルール検索部１０３は、その処理ルールをイベント処理部１０２に渡す。一方、イベント６０１に含まれる情報が満たすイベント条件を含む処理ルールが処理ルール記憶部１０５に存在しない場合（ステップＳ８１５の“Ｎｏ”）、負荷分散システム１０００の処理は終了する。
【００８１】
イベント処理部１０２は、イベント処理部１０２が行うイベント６０１の処理が、過去のイベント処理に関する情報を必要とするか否か判定する（ステップＳ８１６）。イベント処理部１０２が行うイベント６０１の処理が、過去のイベント処理に関する情報を必要とする場合（ステップＳ８１６の“Ｙｅｓ”）、イベント処理部１０２は、以下の動作を実行する。すなわちイベント処理部１０２は、処理するイベント６０１とともに受け取ったサーバ識別子１２０２で識別される負荷分散サーバ１００ａ（代理処理要求元サーバ）のステート記憶部１０６に記憶されている、所定の処理結果（ステート）を読み出す（ステップＳ８１７）。イベント処理部１０２が行うイベント６０１の処理が、過去のイベント処理に関する情報を必要としない場合、（ステップＳ８１６の“Ｎｏ”）、負荷分散システム１０００の処理は、ステップＳ８１８へ進む。
【００８２】
イベント処理部１０２は、受け取った処理ルールに基づいて受信したイベント６０１を処理する。そしてイベント処理部１０２は、処理結果を図示しない外部装置が実行するアプリケーションに送信する（ステップＳ８１８）。イベント処理部１０２は、イベント処理部１０２が行うイベントの処理結果が、今後の処理に必要となるか否か判定する（ステップＳ８１９）。イベント処理部１０２が行うイベント６０１の処理結果が、今後の処理に必要となる場合（ステップＳ８１９の“Ｙｅｓ”）、イベント処理部１０２は、以下の動作を実行する。すなわちイベント処理部１０２は、イベントの処理結果を、その処理結果を処理したイベント６０１とともに受け取ったサーバ識別子１２０２で識別される負荷分散サーバ１００ａ（代理処理要求元サーバ）のステート記憶部１０６に記憶する（ステップＳ８２０）。一方、イベント処理部１０２が行うイベントの処理結果が、今後の処理に必要とならない場合（ステップＳ８１９の“Ｎｏ”）、負荷分散システム１０００の処理は終了する。
【００８３】
図１１は、本発明の第二の実施の形態において、負荷分散システム１０００の負荷分散サーバ１００が代理処理要求をディスパッチャ３００に送信する動作の概要の一例を示すフローチャートである。
【００８４】
負荷分散サーバ１００ａの負荷監視部１０４は、イベント処理部１０２がイベント処理を行う際、負荷分散サーバ１００ａ（代理処理要求元サーバ）の処理負荷が所定の閾値を超えたか否かを監視する（ステップＳ１１０１）。負荷監視部１０４は、処理負荷が所定の閾値を超えたと判定した場合に（ステップＳ１１０１の“Ｙｅｓ”）、ディスパッチャ３００に代理処理要求を送信する（ステップＳ１１０２）。図１２は、負荷監視部１０４がディスパッチャ３００に送信する代理処理要求１２０１の例を示す図である。図１２を参照すると、代理処理要求１２０１は、ディスパッチルールのディスパッチルール識別子７０１と、代理サーバのサーバ識別子１２０２と、代理処理するイベントトラフィックの割合１２０３とが含まれている。本実施の形態では、代理サーバのサーバ識別子１２０２は、負荷分散サーバ１００ｂ（代理サーバ）のサーバ識別子であると仮定する。
【００８５】
ディスパッチルール識別子７０１は、高負荷の原因となっているイベントに対応するディスパッチルールを識別する。サーバ識別子１２０２は、代理処理を要求する対象である代理サーバを識別する。イベントトラフィックの割合１２０３は、代理処理されるイベントのイベントトラフィックの量をイベントのデータ量に基づいて示した情報である。ディスパッチャ３００から負荷分散サーバ１００に送信されるイベント６０１は、そのイベントが満たすイベント条件を含むディスパッチルールのディスパッチルール識別子７０１が付加される。したがって負荷監視部１０４は、代理処理要求１２０１が含むディスパッチルール識別子７０１を特定できる。
【００８６】
一方、負荷監視部１０４が、処理負荷が所定の閾値を超えていないと判定した場合には（ステップＳ１１０１の“Ｎｏ”）、負荷分散システム１０００の処理は、ステップＳ１１０１に戻る。
【００８７】
ディスパッチャ３００の負荷分散制御部３０４は、負荷分散サーバ１００ａから代理処理要求１２０１を受信する（ステップＳ１１０３）。そして負荷分散制御部３０４は、受信した代理処理要求１２０１に含まれるディスパッチルール識別子７０１と代理サーバの識別子１２０２とイベントトラフィックの割合１２０３とを特定する。そして負荷分散制御部３０４は、特定したディスパッチルール識別子で識別されるディスパッチルールに、特定したサーバ識別子１２０２とイベントトラフィックの割合１２０３とを対応付けてディスパッチルール記憶部３０５に記憶する（ステップＳ１１０４）。
【００８８】
本発明の第二の実施の形態における負荷分散システム１０００は、第一の負荷分散サーバ１００が、第二の負荷分散サーバ１００の処理ルールを読み出す。そしてその第一の負荷分散サーバ１００は、読み出したルールに基づいて第二の負荷分散サーバ１００が処理すると定められていたイベントを代理処理する。したがって、負荷分散システム１０００は、各負荷分散サーバ１００が備えるイベントの処理ルールを変更させることなく、各負荷分散サーバ１００でのイベントの処理負荷を平均化できる。よって、例えば一つの負荷分散サーバ１００におけるイベントの処理負荷が大きくなり、その負荷分散サーバ１００で行われる一部の処理を他の負荷分散サーバ１００に代行して処理させる場合がある。このような場合でも、負荷分散システム１０００は、各負荷分散サーバ１００が記憶する処理ルールを変更しなくてもよい。
【００８９】
また、第二の実施の形態における負荷分散システム１０００が備える各負荷分散サーバ１００の負荷監視部１０４は、負荷分散サーバ１００が処理するイベントの処理負荷を監視している。そして負荷監視部１０４は、この処理負荷が所定の第一の閾値を超えたことを検知すると、他の負荷分散サーバ１００にイベントを代理処理させるための情報である代理処理要求１２０１をディスパッチャ３００に送信する。つまり、各負荷分散サーバ１００は、自サーバの処理負荷をそれぞれ監視している。各負荷分散サーバ１００の処理負荷を平均化するために、１つの装置がすべての負荷分散サーバ１００の処理負荷を監視しない。したがって、第二の実施の形態における負荷分散システム１０００は、各負荷分散サーバ１００の処理負荷の平均化のために必要となる計算量を大きく削減することができる。
【００９０】
また、第二の実施の形態における負荷分散システム１０００が備える各負荷分散サーバ１００は、他の負荷分散サーバ１００が備えるＣＰＵコアのＣＰＵ使用率などに基づいて、代理処理させるイベントトラフィックの割合を決定または変更する。この構成により、各負荷分散サーバ１００の処理負荷を平均化するために、１つの装置がすべての負荷分散サーバ１００の処理負荷を監視しない。したがって、第二の実施の形態における負荷分散システム１０００は、各負荷分散サーバ１００の処理負荷の平均化のために必要となる計算量を大きく削減することができる。さらに、各負荷分散サーバ１００は、各負荷分散サーバ１００の処理負荷に応じてイベントトラフィックの割合を特定する。よって第二の実施の形態における負荷分散システム１０００は、少ない計算量でかつ効率よく各負荷分散サーバ１００の負荷分散を実現することができる。
【００９１】
［第二の実施の形態の第一の変形例］
第二の実施の形態において、負荷監視部１０４は、負荷分散サーバ１００が処理するイベントごとに処理負荷を特定してもよい。この場合、負荷監視部１０４は、イベントごとに特定した処理負荷のうち、所定の第二の閾値を超えた処理負荷のイベントを特定してもよい。さらに負荷監視部１０４は、特定したイベントとともにディスパッチャ３００から送られてきたディスパッチルール識別子７０１を前述の代理処理要求１２０１に含ませてもよい。
【００９２】
第二の実施の形態の第一の変形例の負荷分散サーバ１００は、高負荷の原因となっているイベントとともに送られてくるディスパッチルール識別子７０１を前述の代理処理要求１２０１に含めてディスパッチャ３００へ送信する。つまり負荷分散サーバ１００は、高負荷の原因となっているイベントを優先して他の負荷分散サーバ１００に代理処理させる。したがって第二の実施の形態の第一の変形例における負荷分散システム１０００は、少ない計算量でかつ効率よく各負荷分散サーバ１００の負荷分散を実現することができる。
【００９３】
［第二の実施の形態の第二の変形例］
第二の実施の形態では、イベント処理部１０２は、ディスパッチャ３００からイベント６０１を受け取る、という構成であった。一方、第二の実施の形態の第二の変形例では、処理ルール検索部１０３は、ディスパッチャ３００からイベント６０１を受け取る、という構成であってもよい。そして負荷分散サーバ１００は、イベント処理部１０２を備える代わりに、図示しない外部装置がイベント処理部１０２を備える、という構成であってもよい。すなわち、第二の実施の形態の第二の変形例では、負荷分散サーバ１００はイベント処理部１０２を備えなくてもよい。
【００９４】
また、第二の実施の形態では、ディスパッチルール検索部３０３は、イベント転送部３０２からイベントを受け取り、受け取ったイベントに基づいてディスパッチルール記憶部３０５を検索する構成であった。第二の実施の形態の第二の変形例では、ディスパッチルール検索部３０３の代わりにイベント転送部３０２が、図示しない外部装置から受信したイベントに基づいてディスパッチルール記憶部３０５を検索してもよい。この場合、ディスパッチャ３００は、ディスパッチルール検索部３０３を備えなくてもよい。
【００９５】
第二の実施の形態の第二の変形例における負荷分散システムは、第二の実施の形態における負荷分散システムと同様の効果を奏する。
【００９６】
［第二の実施の形態の第三の変形例］
第二の実施の形態では、負荷分散サーバ１００ａが同じサーバ２００（サーバ２００ａ）にある負荷分散サーバ１００ｂに対して代理処理を行わせる代理処理要求をディスパッチャ３００に送信していた。負荷分散サーバ１００ａは、例えば異なるサーバ２００（サーバ２００ｂ）にある負荷分散サーバ（例えば負荷分散サーバ１００ｃ）に対して代理処理を行わせる代理処理要求をディスパッチャ３００に送信してもよい。
【００９７】
第二の実施の形態の第三の変形例における負荷分散システムは、第一のサーバ２００が備える第一の負荷分散サーバ１００が、第二のサーバ２００が備える第二の負荷分散サーバ１００の処理ルールを読み出す。そしてその第一の負荷分散サーバ１００は、読み出したルールに基づいて第二の負荷分散サーバ１００が処理すると定められていたイベントを代理処理する。したがって、負荷分散システム１０００は、各負荷分散サーバ１００が備えるイベントの処理ルールを変更させることなく、各負荷分散サーバ１００でのイベントの処理負荷を平均化できる。よって、例えば一つの負荷分散サーバ１００におけるイベントの処理負荷が大きくなり、その負荷分散サーバ１００で行われる一部の処理を他のサーバ２００が備える負荷分散サーバ１００に代行して処理させる場合がある。このような場合でも、負荷分散システム１０００は、各負荷分散サーバ１００が記憶する処理ルールを変更しなくてもよい。
【００９８】
［第三の実施の形態］
図１３は、本発明の第三の実施の形態における負荷分散システム１００１の構成を示すブロック図である。
【００９９】
図１３を参照すると、本発明の第三の実施の形態における負荷分散システム１００１は、ディスパッチャ３００とサーバ２０１とを備える。サーバ２０１は、ディスパッチャ３００と接続されている。ディスパッチャ３００は、サーバ２０１と接続されている。ディスパッチャ３００は第二の実施の形態におけるディスパッチャ３００と同様である。
【０１００】
＜サーバ２０１＞
サーバ２０１は、複数の負荷分散サーバ１０１（図１３の例では、負荷分散サーバ１０１ａ、１０１ｂ、１０１ｃおよび１０１ｄ）を備える点で第二の実施の形態におけるサーバ２００と構成が異なる。サーバ２０１の前述以外の構成は、第二の実施の形態におけるサーバ２００と同様である。
【０１０１】
＜負荷分散サーバ１０１＞
図１４は、本発明の第三の実施の形態における負荷分散サーバ１０１の構成を示すブロック図である。
【０１０２】
負荷分散サーバ１０１は、第二の実施の形態における負荷分散サーバ１００の負荷監視部１０４の代わりに負荷監視部１０７を備える点で、第二の実施の形態における負荷分散サーバ１００と構成が異なる。負荷分散サーバ１０１の前述以外の構成は、第二の実施の形態における負荷分散サーバ１００と同様である。
【０１０３】
＝＝＝負荷監視部１０７＝＝＝
負荷監視部１０７は、負荷分散サーバ１０１の処理負荷を特定する。そして、負荷監視部１０７は、他の負荷分散サーバ１０１に対して、前述の特定した処理負荷を示す情報を送信する。また、負荷監視部１０７は、他の負荷分散サーバ１０１から処理負荷を示す情報とその負荷分散サーバ１０１を識別するサーバ識別子とを受け取ると、それらを対応付けて図示しない記憶部に記憶する。そして、負荷監視部１０７は、負荷分散サーバ１０１の処理負荷が所定の第一の閾値を超えたことを検知すると、ディスパッチャ３００に対して代理処理要求を送信する。この際、負荷監視部１０７は、前述の処理負荷を示す情報のうち所定の第三の閾値以下である処理負荷を示す情報とともに送られてきたサーバ識別子を特定する。そして負荷監視部１０７は、特定したサーバ識別子のいずれかを前述の代理処理要求に含める。
【０１０４】
図１５は、ある時点での、各負荷分散サーバ１０１の処理負荷をそれぞれ示した図である。図１５は、各負荷分散サーバ１０１が代理処理要求を出力するか否かを判断するための負荷の基準として、閾値１５０１（第一の閾値）と上限値１５０２（第三の閾値）とを示している。また図１５は、負荷分散サーバ１０１ａの処理負荷１５０３、負荷分散サーバ１０１ｂの処理負荷１５０４、負荷分散サーバ１０１ｃの処理負荷１５０５および負荷分散サーバ１０１ｄの処理負荷１５０６をそれぞれ示している。
【０１０５】
図１５を参照すると、負荷分散サーバ１０１ｃの処理負荷１５０５が閾値１５０１を超えている。そこで負荷分散サーバ１０１ｃは、ディスパッチャ３００に代理処理要求を送信する。この場合、負荷分散サーバ１０１ｃは、代理処理要求に含めるサーバ識別子として、処理負荷が上限値１５０２を下回っている負荷分散サーバ１０１のサーバ識別子を選択する。図１５の例では、負荷分散サーバ１０１ａの処理負荷１５０３は上限値１５０２を超えているのでこのサーバのサーバ識別子は代理処理要求に含まれない。負荷分散サーバ１０１ｃは、上限値１５０２を下回る処理負荷を示す情報とともに送ってきたサーバ識別子、すなわち、負荷分散サーバ１０１ｂおよび１０１ｄのサーバ識別子を代理処理要求に含める。
【０１０６】
また負荷監視部１０７は、代理処理要求に含まれるサーバ識別子ごとにイベントトラフィックの割合を特定し、特定した情報を前述の代理処理要求に含める。イベントトラフィックの割合の特定方法としては、イベントの振り分け先（図１５の例では負荷分散サーバ１０１ｂおよび１０１ｄ）における処理負荷の比に基づいて前述の割合を定める方法がある。また、他の特定方法として、イベントの振り分け先における処理負荷の比とは無関係に一律の値を特定する方法がある。またサーバ識別子ごとに特定されるイベントトラフィックの割合の合計は、負荷分散サーバ１０１（図１５の例では負荷分散サーバ１０１ｃ）における処理負荷が上限値１５０２を上回った分を示す割合であってもよい。
【０１０７】
第三の実施の形態における負荷分散システム１００１は、負荷分散サーバ１０１のうちその負荷分散サーバ１０１の処理負荷が第三の閾値を下回っているサーバに対してイベントの代理処理要求を送信する。したがって、第三の実施の形態における負荷分散システム１００１は、負荷分散サーバ１０１が３以上ある場合でも、各負荷分散サーバ１０１の処理負荷に基づいて容易にイベントの代理処理を行う負荷分散サーバ１０１（代理サーバ）の特定ができる。また、第三の実施の形態における負荷分散システム１００１は、イベントを代理処理する負荷分散サーバ１０１の処理負荷がその代理処理を実行することにより第一の閾値を超えてしまう場合を排除できる。
【０１０８】
第三の実施の形態における負荷分散システム１００１は、ある時点での負荷分散サーバ１０１の処理負荷に応じて、代理処理するイベントトラフィックの割合を特定する。したがって、第三の実施の形態における負荷分散システム１００１は、イベントの代理処理によって生じうる負荷分散サーバ１０１の処理負荷の不均衡を解消しうる。つまり、第三の実施の形態における負荷分散システムは、ある負荷分散サーバ１０１がイベントの代理処理を行っても、その負荷分散サーバ１０１の処理負荷が必要以上に大きくなることがない。例えば負荷分散システム１００１は、ある負荷分散サーバ１０１がイベントの代理処理を行っても、その負荷分散サーバ１０１の処理負荷が所定の第一の閾値を超えないように、イベントが振り分けられる負荷分散サーバ１０１を特定することができる。
【０１０９】
以上、これまで述べてきた各実施の形態は、本発明の好適な実施形態であり、上記実施の形態のみに本発明の範囲を限定するものではない。各実施の形態は、本発明の要旨を逸脱しない範囲において種々の変更を施した形態での実施が可能である。
【０１１０】
また、本発明の各実施の形態における各構成要素は、その機能をハードウェア的に実現することはもちろん、コンピュータとプログラムとで実現することができる。プログラムは、磁気ディスクや半導体メモリなどのコンピュータ可読記録媒体に記録されて提供され、コンピュータの立ち上げ時などにコンピュータに読み取られる。この読み取られたプログラムは、そのコンピュータの動作を制御することにより、そのコンピュータを前述した各実施の形態における構成要素として機能させる。
【０１１１】
上記の実施の形態の一部または全部は、以下の付記のようにも記載されうるが、以下には限られない。
【０１１２】
（付記１）
ディスパッチャから送信される各イベントを処理するための情報処理の内容を含む処理ルールを記憶する処理ルール記憶部と、前記ディスパッチャからイベントとともに負荷分散サーバを識別するサーバ識別子を受け取ると、前記イベントに対応する処理ルールを、前記サーバ識別子で識別される前記負荷分散サーバが備える処理ルール記憶部から読み出す処理ルール検索部とを備える、負荷分散サーバ。
【０１１３】
（付記２）
付記１に記載の負荷分散サーバであって、前記処理ルール検索部は、イベントが処理される条件を示すイベント条件と負荷分散サーバを識別するサーバ識別子とを対応付けたディスパッチルールを識別するディスパッチルール識別子およびイベントを前記ディスパッチャから受け取り、前記負荷分散サーバは、他の負荷分散サーバのサーバ識別子と前記ディスパッチルール識別子とを含む情報である代理処理要求を前記ディスパッチャに送信する負荷監視部を備える、負荷分散サーバ。
【０１１４】
（付記３）
付記２に記載の負荷分散サーバであって、前記負荷監視部は、前記負荷分散サーバが受信したイベントの処理による当該負荷分散サーバの負荷を特定し、特定した前記負荷が第一の閾値を超えた場合に前記代理処理要求を前記ディスパッチャに送信する、負荷分散サーバ。
【０１１５】
（付記４）
付記２または３に記載の負荷分散サーバであって、前記負荷監視部は、前記負荷分散サーバが受信したイベントごとに各イベントの処理による前記負荷分散サーバの負荷を特定し、あるイベントに対して特定した前記負荷が第二の閾値を超えた場合に、当該イベントとともに送信されてきたディスパッチルールのディスパッチルール識別子を含む前記代理処理要求を前記ディスパッチャに送信する、負荷分散サーバ。
【０１１６】
（付記５）
付記３または４に記載の負荷分散サーバであって、前記負荷監視部は、他の負荷分散サーバに、特定した前記負荷を示す情報と自負荷分散サーバのサーバ識別子とを送信し、前記負荷監視部は、他の負荷分散サーバから、負荷を示す情報とサーバ識別子とを受信すると、所定の第三の閾値以下である当該負荷を示す情報とともに送られてきたサーバ識別子を含む前記代理処理要求を前記ディスパッチャに送信する、負荷分散サーバ。
【０１１７】
（付記６）
付記２ないし５のいずれか１項に記載の負荷分散サーバであって、前記負荷監視部は、代理処理させるイベントとともに受け取ったディスパッチルール識別子と前記他の負荷分散サーバを識別するサーバ識別子と当該イベントを代理処理させる割合を示す情報とを含む前記代理処理要求を前記ディスパッチャに送信する、負荷分散サーバ。
【０１１８】
（付記７）
付記５に記載の負荷分散サーバであって、前記負荷監視部は、前記負荷を示す情報に基づいて、イベントを代理処理させる割合を算出し、前記イベント条件と前記サーバ識別子と前記算出された割合を示す情報とを含む前記代理処理要求を前記ディスパッチャに送信する、負荷分散サーバ。
【０１１９】
（付記８）
付記１ないし７のいずれか１項に記載の負荷分散サーバであって、前記負荷分散サーバは、各イベントの処理状況を示す情報であるステートを記憶するステート記憶部を備え、前記処理ルール検索部は、前記ディスパッチャからイベントを受け取ると、当該イベントに対応するステートを前記ステート記憶部から読み出し、前記処理ルール検索部は、前記ディスパッチャからイベントとともにイベント処理サーバを識別するサーバ識別子を受け取ると、前記イベントに対応するステートを、前記サーバ識別子で識別される前記負荷分散サーバが備えるステート記憶部から読み出し、前記負荷分散サーバによる当該イベントの処理結果に応じて当該イベントに対応する前記ステートを更新する、負荷分散サーバ。
【０１２０】
（付記９）
イベントを処理する負荷分散サーバと、当該イベントを前記負荷分散サーバに送信するディスパッチャとを備え、前記負荷分散サーバは、前記ディスパッチャから送信される各イベントを処理するための情報を含む処理ルールを記憶する処理ルール記憶部と、イベントが処理される条件を示すイベント条件と前記負荷分散サーバを識別するサーバ識別子とを対応付けた情報を含むディスパッチルールを識別するディスパッチルール識別子と、負荷分散サーバを識別するサーバ識別子と、を含む情報である代理処理要求を前記ディスパッチャに送信する負荷監視部と、前記ディスパッチャからイベントとサーバ識別子とを受信すると、当該イベントに対応する処理ルールを、当該サーバ識別子で識別される負荷分散サーバが備える前記処理ルール記憶部から読み出す処理ルール検索部とを備え、前記ディスパッチャは、ディスパッチルールを、当該ディスパッチルールのディスパッチルール識別子と対応付けて記憶するディスパッチルール記憶部と、前記負荷分散サーバから代理処理要求を受信すると、当該代理処理要求に含まれるディスパッチルール識別子で識別されるディスパッチルールに当該代理処理要求に含まれるサーバ識別子を対応付けて前記ディスパッチルール記憶部に記憶する負荷分散制御部と、イベントを受信し、受信したイベントが満たすイベント条件を含むディスパッチルールを前記ディスパッチルール記憶部から読み出し、読み出したディスパッチルールに、サーバ識別子が対応付けられていた場合に、当該サーバ識別子で識別される負荷分散サーバに、前記読み出したディスパッチルールに含まれるサーバ識別子と、前記受信したイベントとを送信するイベント転送部とを備える負荷分散システム。
【０１２１】
（付記１０）
ディスパッチャから送信される各イベントを処理するための情報処理の内容を含む処理ルールを記憶部に記憶し、前記ディスパッチャからイベントとともにサーバを識別するサーバ識別子を受け取ると、前記イベントに対応する処理ルールを、前記サーバ識別子で識別される前記サーバが備える記憶部から読み出す、負荷分散方法。
【０１２２】
（付記１１）
コンピュータに、ディスパッチャから送信される各イベントを処理するための情報を含む処理ルールを記憶部に記憶する処理と、前記ディスパッチャからイベントとともにサーバを識別するサーバ識別子を受け取ると、前記イベントに対応する処理ルールを、前記サーバ識別子で識別される前記サーバが備える記憶部から読み出す処理とを実行させるための負荷分散プログラム。
【０１２３】
（付記１２）
付記９に記載の負荷分散システムであって、前記負荷監視部は、イベントが処理される条件を示すイベント条件と前記負荷分散サーバを識別するサーバ識別子と当該イベントを代理処理させる割合を示す情報とを含む前記代理処理要求を前記ディスパッチャに送信し、前記負荷分散制御部は、前記負荷分散サーバから前記代理処理要求を受け取ると、当該代理処理要求に含まれているディスパッチルール識別子で識別されるディスパッチルールに、前記代理処理させる割合を示す情報と、前記代理処理要求に含まれるサーバ識別子とを対応付けて前記ディスパッチルール記憶部に記憶し、前記イベント転送部は、前記ディスパッチルール記憶部から読み出したディスパッチルールに前記サーバ識別子と前記代理処理させる割合とを示す情報とが対応付けられていた場合に、当該サーバ識別子で識別される負荷分散サーバに、前記イベントのうち前記代理処理させる割合に基づいた情報量のデータを送信する負荷分散システム。
【０１２４】
（付記１３）
コンピュータに、ディスパッチャから送信される各イベントを処理するための情報を含む処理ルールを記憶部に記憶する処理と、前記ディスパッチャからイベントとともにサーバを識別するサーバ識別子を受け取ると、前記イベントに対応する処理ルールを、前記サーバ識別子で識別される前記サーバが備える記憶部から読み出す処理とを実行させるための負荷分散プログラムを記録した記録媒体。
【０１２５】
［産業上の利用可能性］
本発明の各実施の形態における負荷分散システムの活用例としては、RFIDやセンサからのイベントを利用したアプリケーションが挙げられる。このアプリケーションとは、例えば物流トレーサビリティやSCEM(Supply Chain Event Management)、天候や災害などの環境管理などが挙げられる。
【符号の説明】
【０１２６】
３    処理ルール
９０    負荷分散サーバ
１００    負荷分散サーバ
１００ａ    負荷分散サーバ
１００ｂ    負荷分散サーバ
１００ｃ    負荷分散サーバ
１００ｄ    負荷分散サーバ
１０１    負荷分散サーバ
１０１ａ    負荷分散サーバ
１０１ｂ    負荷分散サーバ
１０１ｃ    負荷分散サーバ
１０１ｄ    負荷分散サーバ
１０２    イベント処理部
９３    処理ルール検索部
１０３    処理ルール検索部
１０４    負荷監視部
１０７    負荷監視部
９５    処理ルール記憶部
１０５    処理ルール記憶部
１０６    ステート記憶部
３００    ディスパッチャ
３０２    イベント転送部
３０３    ディスパッチルール検索部
３０４    負荷分散制御部
３０５    ディスパッチルール記憶部
２００    サーバ
２００ａ    サーバ
２００ｂ    サーバ
２０１    サーバ
１０００    負荷分散システム
１００１    負荷分散システム
６０１    イベント
６０２    イベントタイプ
６０３    ペア
６０３−１    属性名
６０３−２    属性値
７０１    ディスパッチルール識別子
１２０１    代理処理要求
１２０２    サーバ識別子
１２０３    イベントトラフィックの割合
１５０１    閾値
１５０２    上限値
１５０３    処理負荷
１５０４    処理負荷
１５０５    処理負荷
１５０６    処理負荷
【図１】
0005560814.tif 000002
【図２】
0005560814.tif 000003
【図３】
0005560814.tif 000004
【図４】
0005560814.tif 000005
【図５】
0005560814.tif 000006
【図６】
0005560814.tif 000007
【図７】
0005560814.tif 000008
【図８】
0005560814.tif 000009
【図９】
0005560814.tif 000010
【図１０】
0005560814.tif 000011
【図１１】
0005560814.tif 000012
【図１２】
0005560814.tif 000013
【図１３】
0005560814.tif 000014
【図１４】
0005560814.tif 000015
【図１５】
0005560814.tif 000016
【図１６】
0005560814.tif 000017