(57)【要約】【課題】イベント条件が完全に一致しない処理ルールに対しても、設定される振り分けルールの数を少なくするイベント処理負荷分散システム等を提供する。【解決手段】イベント処理分散制御装置１０１が、処理ルール受信部２００と、処理すべきイベントの条件を示すイベント条件を記録する処理ルール振り分け記録部２０５と、処理サーバに新規の処理ルールを割り当てる処理ルール振り分け部２０１とを有すると共に、既存の振り分けルールと新規に受信した処理ルールとの間の差分の許容範囲を記録する振り分けルール許容差記録部２０７と、この差分が許容範囲以内である場合に、この新規発生イベントが含まれるように既存の振り分けルールを更新する振り分けルール決定部２０３とを有する。【選択図】図１
2012185673.tif 000002
【特許請求の範囲】
【請求項１】
複数の他のコンピュータで動作する各アプリケーションに対してイベント処理結果を通知する複数の処理サーバと、
前記複数の処理サーバに対して予め設定された複数のイベント発生源において発生したイベントを振り分けるコンテキスト依存振り分け装置と、
前記複数の処理サーバに対して前記イベントの内容を示すコンテキストに基づく処理ルールを設定し、前記複数の処理サーバが前記処理ルールを実行するために必要な前記イベントが適切に分配されるように振り分けルールを前記コンテキスト依存振り分け装置に記憶させるイベント処理分散制御装置と備えたイベント処理負荷分散システムであって、
前記イベント処理分散制御装置は、
前記各アプリケーションから前記処理ルールを受信する処理ルール受信部と、
この受信された処理ルールに含まれる処理すべきイベントの条件を示すイベント条件を、前記処理サーバごとに少なくとも記録する処理ルール振り分け記録部と、
前記処理ルール受信部が新規に処理ルールを受信した場合に、前記処理ルール振り分け記録部を参照して、前記処理サーバにこの処理ルールを割り当てる処理ルール振り分け部とを有すると共に、
既存の前記振り分けルールに含まれるコンテキストと前記新規に受信した処理ルールに含まれるコンテキストとの間の差分の許容範囲を記録する振り分けルール許容差記録部と、
前記新規に受信した処理ルールに含まれるコンテキストと既存の前記振り分けルールに含まれるコンテキストとの間の差分が前記許容範囲以内である場合に、この新規に受信した処理ルールが含まれるように前記既存の振り分けルールを更新する振り分けルール決定部と
を有することを特徴とするイベント処理負荷分散システム。
【請求項２】
前記イベント処理分散制御装置の前記処理ルール振り分け部が、
前記振り分けルール決定部による前記既存の振り分けルールの更新に応じて、前記新規に受信した処理ルールをこの既存の振り分けルールにある前記処理サーバと同一の前記処理サーバに割り当てる機能を有することを特徴とする、請求項１に記載のイベント処理負荷分散システム。
【請求項３】
前記イベント処理分散制御装置の前記振り分けルール決定部が、
更新された前記振り分けルールに含まれるコンテキストと、記憶されているその他の前記振り分けルールに含まれるコンテキストとの間の差分が前記許容範囲以内である場合に、これらの振り分けルールを統一するよう更新する機能を有することを特徴とする、請求項２に記載のイベント処理負荷分散システム。
【請求項４】
前記処理ルールに含まれるコンテキストの差分の前記許容範囲が、数値もしくはソート順の文字列で示されることを特徴とする、請求項１ないし３のうちいずれか１項に記載のイベント処理負荷分散システム。
【請求項５】
複数の他のコンピュータで動作する各アプリケーションに対してイベント処理結果を通知する複数の処理サーバと前記複数の処理サーバに対して予め設定された複数のイベント発生源において発生したイベントを振り分けるコンテキスト依存振り分け装置とにネットワークを介して接続され、前記複数の処理サーバに前記イベントの内容を示すコンテキストに基づく処理ルールを設定すると共に前記複数の処理サーバが前記処理ルールを実行するために必要な前記イベントが適切に分配されるように振り分けルールを前記コンテキスト依存振り分け装置に記憶させるイベント処理分散制御装置であって、
前記各アプリケーションから前記処理ルールを受信する処理ルール受信部と、
この受信された処理ルールに含まれる処理すべきイベントの条件を示すイベント条件を、前記処理サーバごとに少なくとも記録する処理ルール振り分け記録部と、
前記処理ルール受信部が新規に処理ルールを受信した場合に、前記処理ルール振り分け記録部を参照して、前記処理サーバにこの処理ルールを割り当てる処理ルール振り分け部とを有すると共に、
既存の前記振り分けルールに含まれるコンテキストと前記新規に受信した処理ルールに含まれるコンテキストとの間の差分の許容範囲を記録する振り分けルール許容差記録部と、
前記新規に受信した処理ルールに含まれるコンテキストと既存の前記振り分けルールに含まれるコンテキストとの間の差分が前記許容範囲以内である場合に、この新規発生イベントが含まれるように前記既存の振り分けルールを更新する振り分けルール決定部と
を有することを特徴とするイベント処理負荷分散制御装置。
【請求項６】
複数の他のコンピュータで動作する各アプリケーションに対してイベント処理結果を通知する複数の処理サーバと、
前記複数の処理サーバに対して予め設定された複数のイベント発生源において発生したイベントを振り分けるコンテキスト依存振り分け装置と、
前記複数の処理サーバに対して前記イベントの内容を示すコンテキストに基づく処理ルールを設定し、前記複数の処理サーバが前記処理ルールを実行するために必要な前記イベントが適切に分配されるように振り分けルールを前記コンテキスト依存振り分け装置に記憶させるイベント処理分散制御装置と備えたイベント処理負荷分散システムにあって、
前記アプリケーションから新規の前記処理ルールを前記イベント処理分散制御装置の処理ルール受信部が受信し、
この新規の処理ルールの受信に応じて、予め記録された処理すべきイベントの条件を示すイベント条件に基づいて前記イベント処理分散制御装置の処理ルール振り分け部が前記処理サーバにこの処理ルールを割り当て、
既存の前記振り分けルールに含まれるコンテキストと前記新規に受信した処理ルールに含まれるコンテキストとの間の差分が予め記録された許容範囲以内である場合に、この新規に受信した処理ルールが含まれるように前記イベント処理分散制御装置の振り分けルール決定部が前記既存の振り分けルールを更新する
ことを特徴とするイベント処理負荷分散制御方法。
【請求項７】
複数の他のコンピュータで動作する各アプリケーションに対してイベント処理結果を通知する複数の処理サーバと、
前記複数の処理サーバに対して予め設定された複数のイベント発生源において発生したイベントを振り分けるコンテキスト依存振り分け装置と、
前記複数の処理サーバに対して前記イベントの内容を示すコンテキストに基づく処理ルールを設定し、前記複数の処理サーバが前記処理ルールを実行するために必要な前記イベントが適切に分配されるように振り分けルールを前記コンテキスト依存振り分け装置に記憶させるイベント処理分散制御装置と備えたイベント処理負荷分散システムにあって、
前記イベント処理分散制御装置が備えるコンピュータに、
前記アプリケーションから新規の前記処理ルールを受信する手順、
この新規の処理ルールの受信に応じて、予め記録された処理すべきイベントの条件を示すイベント条件に基づいて前記処理サーバにこの処理ルールを割り当てる手順、
および既存の前記振り分けルールに含まれるコンテキストと前記新規に受信した処理ルールに含まれるコンテキストとの間の差分が予め記録された許容範囲以内である場合に、この新規に受信した処理ルールが含まれるように前記既存の振り分けルールを更新する手順
を実行させることを特徴とするイベント処理負荷分散制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はイベント処理負荷分散システム、イベント処理負荷分散制御装置、制御方法およびプログラムに関し、特にイベントの振り分けの処理をより軽快に行うことを可能とするイベント処理負荷分散システム等に関する。
【背景技術】
【０００２】
ＲＦＩＤ（Radio Frequency IDentification）タグおよびリーダを利用した技術は、たとえば非接触ＩＣカードなどのように、一部で既に普及が始まっているものがある。さらに、多数のセンサ付き端末を空間に配置したセンサネットワークについての研究も進められている。これらのネットワークでは、ＲＦＩＤリーダや各種センサなどのデバイス（以後イベント発生源という）によって発生されるイベントをサーバが受信して、必要な処理を行う。
【０００３】
より具体的には、たとえばイベント発生源が各地に配置された気温、気圧、風向などのセンサである場合、これらのセンサが定期的に送信する各々の測定値がイベントとなり、このイベントにはその測定値と共に、測定値の種類や測定場所などを示すデータがコンテキスト（内容）として含まれる。これらのイベントを処理するアプリケーションは、たとえば「全国の気温の変動」「特定地域の気温・気圧・風向の変動」などのように自らが必要とするイベントを受信し、受信したイベントに基づく処理、たとえば「気象情報の集計」や「気象予測」などを行うことができる。
【０００４】
また、イベント発生源が自動車に搭載された情報端末である場合、これらの情報端末は各車の位置、移動速度、移動方向、エンジンやバッテリの状態などをイベントとして送信する。このイベントには各々の値と、それらの種類や自車のＩＤ（IDentifer、識別子）などを示すデータがコンテキストとして含まれる。これらのイベントを処理するアプリケーションは、たとえば「特定地点付近にいる車」「特定の状態にある車」などのように自らが必要とするイベントを受信し、受信したイベントに基づく処理、たとえば「特定地点付近の車に、その地点の店の紹介」「特定の状態にある車に、その状態に対応するサービスの紹介」などを行うことができる。
【０００５】
そして、イベント発生源が物流システムでトラックやベルトコンベアなどに配置されたＲＦＩＤリーダである場合、これらのＲＦＩＤリーダは特定の荷物に装着されたＲＦＩＤタグのＩＤと、ＲＦＩＤリーダ自らのＩＤをコンテキストとして含めたイベントを送信する。これらのイベントを処理するアプリケーションは、「特定のタグＩＤの荷物」などのように自らが必要とするイベントを受信し、受信したイベントに基づく処理、たとえば「特定のタグＩＤの荷物の追跡」などを行うことができる。
【０００６】
このようなシステムは、今後の社会において新しいインフラになりうるものとして急速に研究が進められている。しかしながら、イベント発生源としては膨大な台数のデバイスが必要であり、それらのデバイスから受信するイベントも膨大なデータ量となる。
【０００７】
図１５は、第１の既存技術に係るイベント処理システム９０１の構成について示す説明図である。このイベント処理システム９０１では、複数台のイベント発生源９０２ａ〜ｆで発生されるイベントを、処理ルールを記憶した１台の処理サーバ９０３が受信して、この処理サーバ９０３で実行される複数のアプリケーション９０４ａ〜ｆがこれらのイベントに対して処理を行う。
【０００８】
このイベント処理システム９０１では、明らかに処理サーバ９０３が処理のボトルネックとなるので、該システムの処理能力を増やすことが困難であり、従ってイベント発生源の個数、コンテキストの種類、イベントの測定頻度などのような該システムの規模を増大させることが困難である。
【０００９】
図１６は、第２の既存技術に係るイベント処理システム９１１の構成について示す説明図である。このイベント処理システム９１１では、ウェブサービスのようなサーバ−クライアント方式を前提として、各クライアント９１２ａ〜ｆからの処理要求を複数のサーバ９１３ａ〜ｂに転送する振り分け器９１４を配置している。
【００１０】
振り分け器９１４は、ＴＣＰコネクションやクッキーなどを参照して、同一クライアント９１２ａ〜ｆからの処理要求は同一のサーバ９１３ａ〜ｂで処理されるように転送処理を行っている。しかしながら、この構造も、振り分け器９１４が処理においてネックになっているという問題を本質的に解決するものではない。
【００１１】
図１７は、特許文献１に記載された第３の既存技術に係るイベント処理システム９２１の構成について示す説明図である。このイベント処理システム９２１では、複数台のイベント発生源９２２ａ〜ｈで発生されるイベントを処理する複数台の処理サーバ９２３ａ〜ｆを配置し、この処理サーバ９２３ａ〜ｆの前段にコンテキスト依存振り分け器９２４を配置している。
【００１２】
そして、イベント処理分散制御装置９２５が、処理サーバ９２３ａ〜ｆが設定された処理ルールを実行するために必要なイベントが適切に分配されるよう、コンテキスト依存振り分け器９２４に振り分けルールを設定している。これによって、処理サーバ９２３ａ〜ｆは各々のイベントを適切にアプリケーション９２６ａ〜ｈに転送して処理させることができる。
【先行技術文献】
【特許文献】
【００１３】
【特許文献１】特許第４１６１９９８号公報
【発明の概要】
【発明が解決しようとする課題】
【００１４】
特許文献１に記載の技術では、イベント処理分散制御装置９２５はアプリケーション９２６ａ〜ｈから設定されたイベント処理ルールのイベント条件の各々に対して、コンテキスト依存振り分け器９２４に振り分けルールを設定する。そのため、この技術では処理サーバ９２３ａ〜ｆの１台ごとに設定されるイベント処理ルールの数を減少させることはできる。
【００１５】
しかしながら、コンテキスト依存振り分け器９２４に設定される振り分けルールはイベント条件の数に比例して増加してしまうという課題がある。例えば、「ｔａｇＩＤ＝１」というイベント条件をコンテキストとして含むイベント処理ルールと「ｔａｇＩＤ＝３」というイベント条件をコンテキストとして含むイベント処理ルールがあった場合、コンテキスト依存振り分け器９２４はそれら「ｔａｇＩＤ＝１」と「ｔａｇＩＤ＝３」の各々に対して別個の振り分けルールを設定する。
【００１６】
前述したように、イベント処理システムは膨大な台数のイベント発生源から受信する膨大な量のイベントを処理しなければならない。そのためには、各処理サーバ９２３ａ〜ｆに設定されるイベント処理ルールが少ないことはもちろん、コンテキスト依存振り分け器９２４に設定される振り分けルールの数が少ない方が望ましい。しかしながら、この技術ではイベント条件が完全には一致しないイベント処理ルールに対して、設定される振り分けルールの数を少なくすることは困難である。
【００１７】
本発明の目的は、イベント条件が完全に一致しない処理ルールに対しても、設定される振り分けルールの数を少なくして、イベントの振り分けの処理をより軽快に行うことを可能とするイベント処理負荷分散システム、イベント処理負荷分散制御装置、制御方法およびプログラムを提供することにある。
【課題を解決するための手段】
【００１８】
上記目的を達成するため、本発明に係るイベント処理負荷分散システムは、複数の他のコンピュータで動作する各アプリケーションに対してイベント処理結果を通知する複数の処理サーバと、複数の処理サーバに対して予め設定された複数のイベント発生源において発生したイベントを振り分けるコンテキスト依存振り分け装置と、複数の処理サーバに対してイベントの内容を示すコンテキストに基づく処理ルールを設定し、複数の処理サーバが処理ルールを実行するために必要なイベントが適切に分配されるように振り分けルールをコンテキスト依存振り分け装置に記憶させるイベント処理分散制御装置と備えたイベント処理負荷分散システムであって、イベント処理分散制御装置は、各アプリケーションから処理ルールを受信する処理ルール受信部と、この受信された処理ルールに含まれる処理すべきイベントの条件を示すイベント条件を、処理サーバごとに少なくとも記録する処理ルール振り分け記録部と、処理ルール受信部が新規に処理ルールを受信した場合に、処理ルール振り分け記録部を参照して、処理サーバにこの処理ルールを割り当てる処理ルール振り分け部とを有すると共に、既存の振り分けルールに含まれるコンテキストと新規に受信した処理ルールに含まれるコンテキストとの間の差分の許容範囲を記録する振り分けルール許容差記録部と、新規に受信した処理ルールに含まれるコンテキストと既存の振り分けルールに含まれるコンテキストとの間の差分が許容範囲以内である場合に、この新規に受信した処理ルールが含まれるように既存の振り分けルールを更新する振り分けルール決定部とを有することを特徴とする。
【００１９】
上記目的を達成するため、本発明に係るイベント処理負荷分散制御装置は、複数の他のコンピュータで動作する各アプリケーションに対してイベント処理結果を通知する複数の処理サーバと複数の処理サーバに対して予め設定された複数のイベント発生源において発生したイベントを振り分けるコンテキスト依存振り分け装置とにネットワークを介して接続され、複数の処理サーバにイベントの内容を示すコンテキストに基づく処理ルールを設定すると共に複数の処理サーバが処理ルールを実行するために必要なイベントが適切に分配されるように振り分けルールをコンテキスト依存振り分け装置に記憶させるイベント処理分散制御装置であって、各アプリケーションから処理ルールを受信する処理ルール受信部と、この受信された処理ルールに含まれる処理すべきイベントの条件を示すイベント条件を、処理サーバごとに少なくとも記録する処理ルール振り分け記録部と、処理ルール受信部が新規に処理ルールを受信した場合に、処理ルール振り分け記録部を参照して、処理サーバにこの処理ルールを割り当てる処理ルール振り分け部とを有すると共に、既存の振り分けルールに含まれるコンテキストと新規に受信した処理ルールに含まれるコンテキストとの間の差分の許容範囲を記録する振り分けルール許容差記録部と、新規に受信した処理ルールに含まれるコンテキストと既存の振り分けルールに含まれるコンテキストとの間の差分が許容範囲以内である場合に、この新規発生イベントが含まれるように既存の振り分けルールを更新する振り分けルール決定部とを有することを特徴とする。
【００２０】
上記目的を達成するため、本発明に係るイベント処理負荷分散制御方法は、複数の他のコンピュータで動作する各アプリケーションに対してイベント処理結果を通知する複数の処理サーバと、複数の処理サーバに対して予め設定された複数のイベント発生源において発生したイベントを振り分けるコンテキスト依存振り分け装置と、複数の処理サーバに対してイベントの内容を示すコンテキストに基づく処理ルールを設定し、複数の処理サーバが処理ルールを実行するために必要なイベントが適切に分配されるように振り分けルールをコンテキスト依存振り分け装置に記憶させるイベント処理分散制御装置と備えたイベント処理負荷分散システムにあって、アプリケーションから新規の処理ルールをイベント処理分散制御装置の処理ルール受信部が受信し、この新規の処理ルールの受信に応じて、予め記録された処理すべきイベントの条件を示すイベント条件に基づいてイベント処理分散制御装置の処理ルール振り分け部が処理サーバにこの処理ルールを割り当て、既存の振り分けルールに含まれるコンテキストと新規に受信した処理ルールに含まれるコンテキストとの間の差分が予め記録された許容範囲以内である場合に、この新規に受信した処理ルールが含まれるようにイベント処理分散制御装置の振り分けルール決定部が既存の振り分けルールを更新することを特徴とする。
【００２１】
上記目的を達成するため、本発明に係るイベント処理負荷分散制御プログラムは、複数の他のコンピュータで動作する各アプリケーションに対してイベント処理結果を通知する複数の処理サーバと、複数の処理サーバに対して予め設定された複数のイベント発生源において発生したイベントを振り分けるコンテキスト依存振り分け装置と、複数の処理サーバに対してイベントの内容を示すコンテキストに基づく処理ルールを設定し、複数の処理サーバが処理ルールを実行するために必要なイベントが適切に分配されるように振り分けルールをコンテキスト依存振り分け装置に記憶させるイベント処理分散制御装置と備えたイベント処理負荷分散システムにあって、イベント処理分散制御装置が備えるコンピュータに、アプリケーションから新規の処理ルールを受信する手順、この新規の処理ルールの受信に応じて、予め記録された処理すべきイベントの条件を示すイベント条件に基づいて処理サーバにこの処理ルールを割り当てる手順、および既存の振り分けルールに含まれるコンテキストと新規に受信した処理ルールに含まれるコンテキストとの間の差分が予め記録された許容範囲以内である場合に、この新規に受信した処理ルールが含まれるように既存の振り分けルールを更新する手順を実行させることを特徴とする。
【発明の効果】
【００２２】
本発明は、上述したように、新規に受信した処理ルールと既存の振り分けルールとを比較して、それらに含まれるコンテキストの間の差分が許容範囲以内である場合にその新規の処理ルールを含めるよう既存の振り分けルールを更新するように構成したので、新規の処理ルールに該当するイベントを既存の振り分けルールに該当するイベントと同一の処理サーバにイベントを振り分けることができる。
【００２３】
これによって、イベント条件が完全に一致しない処理ルールに対しても、設定される振り分けルールの数を少なくして、イベントの振り分けの処理をより軽快に行うことが可能であるという優れた特徴を持つイベント処理負荷分散システム、イベント処理負荷分散制御装置、制御方法およびプログラムを提供することができる。
【図面の簡単な説明】
【００２４】
【図１】図２に示したイベント処理負荷分散システムの、各機能部の動作をより観念的に示したものである。
【図２】本発明の第１の実施形態に係るイベント処理負荷分散システムの構成について示す説明図である。
【図３】図２に示した各装置の、主にハードウェアとしての構成について示す説明図である。図３（ａ）はイベント発生源の、図３（ｂ）はアプリケーション実行装置ａの、図３（ｃ）は処理サーバの、図３（ｄ）はコンテキスト依存振り分け装置の、図３（ｅ）はイベント処理分散制御装置の、各々の構成についてそれぞれ示す。
【図４】ＲＦＩＤリーダであるイベント発生源が発生するイベントの一例について示す説明図である。
【図５】図１に示した処理サーバの各々に予め設定されている処理ルールについて示す説明図である。
【図６】図１に示したコンテキスト依存振り分け器に予め設定されている振り分けルールについて示す説明図である。
【図７】処理ルール振り分け部が新たな処理ルールを設定する処理サーバを選択する動作について示すフローチャートである。
【図８】図１に示した振り分けルール許容差データに予め設定されている内容について示す説明図である。
【図９】図９は、図５に示した処理ルール振り分けデータの記録に、新たに処理ルールｒｕｌｅ９についての情報を追加した状態について示す説明図である。
【図１０】図１に示した振り分けルール決定部が振り分けルールを決定し、コンテキスト依存振り分け器に設定する手順について示すフローチャートである。
【図１１】図６に示した振り分けルールに、ステップＳ２０５の処理で、振り分けルール決定部が変更を加えた状態について示す説明図である。
【図１２】本発明の第２の実施形態に係るイベント処理負荷分散システムの構成について示す説明図である。
【図１３】図１２で示したイベント処理負荷分散制御装置のより詳しい構成について示す説明図である。
【図１４】図１３で示した振り分けルール決定部の動作について示す説明図である。図１４（ａ）は、設定された振り分けルールの一例を示し、図１４（ｂ）は、この振り分けルールが変更された状態の例を示す。
【図１５】第１の既存技術に係るイベント処理システムの構成について示す説明図である。
【図１６】第２の既存技術に係るイベント処理システムの構成について示す説明図である。
【図１７】特許文献１に記載された第３の既存技術に係るイベント処理システムの構成について示す説明図である。
【発明を実施するための形態】
【００２５】
（第１の実施形態）
以下、本発明の第１の実施形態の構成について添付図１〜３に基づいて説明する。
最初に、本実施形態の基本的な内容について説明し、その後でより具体的な内容について説明する。
本実施形態に係るイベント処理負荷分散システム１は、複数の他のコンピュータで動作する各アプリケーション１０６ａ，ｂ，…に対してイベント処理結果を通知する複数の処理サーバ１０４ａ，ｂ，…と、複数の処理サーバに対して予め設定された複数のイベント発生源において発生したイベントを振り分けるコンテキスト依存振り分け装置１０３と、複数の処理サーバに対してイベントの内容を示すコンテキストに基づく処理ルールを設定し、複数の処理サーバが処理ルールを実行するために必要なイベントが適切に分配されるように振り分けルールをコンテキスト依存振り分け装置に記憶させるイベント処理分散制御装置１０１と有するイベント処理負荷分散システムである。イベント処理分散制御装置１０１は、各アプリケーションから処理ルールを受信する処理ルール受信部２００と、この受信された処理ルールに含まれる処理すべきイベントの条件を示すイベント条件を、処理サーバごとに少なくとも記録する処理ルール振り分け記録部（処理ルール振り分けデータ２０５）と、処理ルール受信部が新規に処理ルールを受信した場合に、処理ルール振り分け記録部を参照して、処理サーバにこの処理ルールを割り当てる処理ルール振り分け部２０１とを有すると共に、既存の振り分けルールに含まれるコンテキストと新規に受信した処理ルールに含まれるコンテキストとの間の差分の許容範囲を記録する振り分けルール許容差記録部（振り分けルール許容差データ２０７）と、新規に受信した処理ルールに含まれるコンテキストと既存の振り分けルールに含まれるコンテキストとの間の差分が許容範囲以内である場合に、この新規に受信した処理ルールが含まれるように既存の振り分けルールを更新する振り分けルール決定部２０３とを有する。
【００２６】
また、イベント処理分散制御装置１０１の処理ルール振り分け部２０１は、振り分けルール決定部による既存の振り分けルールの更新に応じて、新規に受信した処理ルールをこの既存の振り分けルールにある処理サーバと同一の処理サーバに割り当てる機能を有する。そして、処理ルールに含まれるコンテキストの差分の許容範囲は、数値もしくはソート順の文字列で示される。
【００２７】
以上の構成を備えることにより、イベント処理負荷分散システム１は、設定される振り分けルールの数を少なくして、イベントの振り分けの処理をより軽快に行うことが可能となる。
以下、これをより詳細に説明する。
【００２８】
図２は、本発明の第１の実施形態に係るイベント処理負荷分散システム１の構成について示す説明図である。イベント処理負荷分散システム１は、ＲＦＩＤリーダやセンサなどのようなデバイスである複数のイベント発生源１０５ａ，ｂ，…、複数の処理サーバ１０４ａ，ｂ，…、アプリケーション１０６ａ，ｂ，…を各々動作させるアプリケーション実行装置１１６ａ，ｂ，…、コンテキスト依存振り分け装置１１３、およびイベント処理分散制御装置１０１が、同一のネットワーク１１０に接続されて構成される。
【００２９】
アプリケーション実行装置１１６ａ，ｂ，…、処理サーバ１０４ａ，ｂ，…、コンテキスト依存振り分け装置１１３、およびイベント処理分散制御装置１０１は全て、別個に動作するコンピュータであるが、物理的な装置としての区分はこの例にはこだわらず、この中で２台以上を１つのコンピュータで実現してもよいし、逆に１台を２台以上のコンピュータに分割して実現してもよい。
【００３０】
図３は、図２に示した各装置の、主にハードウェアとしての構成について示す説明図である。図３（ａ）はイベント発生源１０５ａの、図３（ｂ）はアプリケーション実行装置１１６ａの、図３（ｃ）は処理サーバ１０４ａの、図３（ｄ）はコンテキスト依存振り分け装置１１３の、図３（ｅ）はイベント処理分散制御装置１０１の、各々の構成についてそれぞれ示す。
【００３１】
図３（ａ）に示すイベント発生源１０５ａは、その各々がセンサ１０５ａ１とプロセッサ１０５ａ２、そして通信手段１０５ａ３を備え、各々のセンサで検知した内容を通信手段によって処理サーバ１０４ａ，ｂ，…で処理可能な形式にして送出する。こうして送出されるデータを、ここでは発生情報（イベント）という。このイベントには、その内容の種類を示すコンテキストが含まれている。他のイベント発生源１０５ｂ，…も、全てイベント発生源１０５ａと同一の構成を有する。
【００３２】
図３（ｂ）に示すアプリケーション実行装置１１６ａは、その各々がプロセッサ１１６ａ１を備え、各々アプリケーション１０６ａを実行する。また通信手段１１６ａ２を備え、各々がネットワーク１１０を介して他のコンピュータとデータ通信を行う。他のアプリケーション実行装置１１６ｂ，…も、全てアプリケーション実行装置１１６ａと同一の構成を有する。
【００３３】
図３（ｃ）に示す処理サーバ１０４ａは、その各々がプロセッサ１０４ａ１を備え、各々がコンピュータプログラムを実行することにより、イベント処理部１０４ａ２として機能する。また通信手段１０４ａ３を各々備え、各々がネットワーク１１０を介して他のコンピュータとデータ通信を行う。そして、イベント処理分散制御装置１０１から与えられた処理ルール１０８ａを記憶する記憶手段１０４ａ４も備える。他の処理サーバ１０４ｂ，…も、全て処理サーバ１０４ａと同一の構成を有する。
【００３４】
図３（ｄ）に示すコンテキスト依存振り分け装置１１３は、プロセッサ１１３ａを備え、このプロセッサ１１３ａで振り分けプログラムが実行されることにより、コンテキスト依存振り分け器１０３として機能する。また通信手段１１３ｂを備え、ネットワーク１１０を介して他のコンピュータとデータ通信を行う。さらに、イベント処理分散制御装置１０１から与えられた振り分けルール１０７を記憶する記憶手段１１３ｃも備える。
【００３５】
図３（ｅ）に示すイベント処理分散制御装置１０１は、プロセッサ１０１ａを備え、このプロセッサ１０１ａでイベント処理分散制御プログラムが実行されることにより、後述する処理ルール受信部２００、処理ルール振り分け部２０１、処理ルール送信部２０２、振り分けルール決定部２０３、振り分けルール送信部２０４の各々として機能する。
【００３６】
また、イベント処理分散制御装置１０１は、通信手段１０１ｂおよび記憶手段１０１ｃも備える。通信手段１０１ｂは、ネットワーク１１０を介して他のコンピュータとデータ通信を行う。記憶手段１０１ｃには、処理ルール振り分けデータ２０５、振り分けルールデータ２０６、および振り分けルール許容差データ２０７が予め記憶されている。これらについても後述する。
【００３７】
図１は、図２に示したイベント処理負荷分散システム１の、各機能部の動作をより観念的に示したものである。太い矢印はイベントの送受信を、細い矢印は処理ルールおよび振り分けルールの送受信を各々示している。
【００３８】
このイベント処理負荷分散システム１では、各々動作しているアプリケーション１０６ａ，ｂ，…がイベント処理分散制御装置１０１に対して、イベント発生源１０５ａ，ｂ，…からの発生情報（イベント）の処理を行うための処理ルールを送信し、処理サーバ１０４ａ，ｂ，…は要求された処理ルールに従って、イベントの内容（コンテキスト）に従って処理を行い、その処理結果をアプリケーションに通知するシステムである。処理ルールは、イベントの内容（コンテキスト）に基づいて処理を行うものとして構成されている。
【００３９】
このイベント処理負荷分散システム１では、各イベントの処理に係る付加を分散するために、複数の処理サーバ１０４ａ，ｂ，…を配置し、イベント処理分散制御装置１０１…が各々の処理サーバに別個のアプリケーションのためのイベント処理ルールを設定する。それに従って、イベント処理分散制御装置がコンテキスト依存振り分け器１０３に、各処理サーバ１０４ａ，ｂ，…が処理すべきイベントがそのサーバに分配されるようにコンテキストに基づいた振り分けルールを設定する。これによって、処理サーバ１０４ａ，ｂ，…の負荷分散を実現する。
【００４０】
なお、処理サーバ１０４ａ，ｂ，…、アプリケーション１０６ａ，ｂ，…、およびイベント発生源１０５ａ，ｂ，…の台数には特に制限はない。図１には、処理サーバとして１０４ａ〜ｆという６台を配置した例を示しており、各々の処理サーバ１０４ａ〜ｆをＥＰ１〜６という番号でいう。
【００４１】
イベント処理分散制御装置１０１で、処理ルール受信部２００は、各アプリケーション１０６ａ，ｂ，…から処理ルールを受信する。処理ルール振り分け部２０１は、処理ルール受信部２００が受信した処理ルールをどの処理サーバ１０４ａ〜ｆに送信するかを決定する。処理ルール送信部２０５は、処理ルール振り分け部２０１が決定した処理サーバ１０４ａ〜ｆに、その処理ルール１０８ａ〜ｆを送信する。送信した処理ルール１０８ａ〜ｆは、各々の処理サーバ１０４ａ〜ｆに記憶される。
【００４２】
これと同時に、処理ルール振り分け部２０１は、送信先を決定したイベント処理ルール１０８ａ〜ｆに含まれる情報のうち、少なくとも処理するイベントのイベント条件とそれに対応する処理サーバ１０４ａ〜ｆについて、処理ルール振り分けデータ２０５に記録する。
【００４３】
振り分けルール決定部２０３は、処理ルール振り分け部２０１による振り分け結果に基づき、コンテキスト依存振り分け器１０３に設定する振り分けルール（以後単に振り分けルールという）１０７を決定する。振り分けルール送信部２０４は、決定されたその振り分けルール１０７をコンテキスト依存振り分け器１０３に送信する。送信した振り分けルール１０７は、コンテキスト依存振り分け器１０３に記憶される。
【００４４】
これと同時に、振り分けルール決定部２０３は、決定した該振り分けルール１０７に含まれる情報のうち、少なくとも振り分けるイベントのイベント条件と振り分け先の処理サーバを、振り分けルールデータ２０６に記録する。
【００４５】
そして上記の処理ルール振り分け部２０１および振り分けルール決定部２０３による処理で、振り分けルールが許容されるイベント条件の範囲が予め記憶されている振り分けルール許容差データ２０７が使用される。
【００４６】
より具体的には、たとえばイベント発生源１０５ａ，ｂ，…が各地に配置された気温、気圧、風向などのセンサである場合、これらのセンサが定期的に送信する各々の測定値がイベントとなり、このイベントにはその測定値と共に、測定値の種類や測定場所などを示すデータがコンテキストとして含まれる。コンテキスト依存振り分け器１０３は、発生した各イベントをたとえば「地域ごと」「測定値の種類ごと」などのような基準で各処理サーバ１０４ａ，ｂ，…に振り分けて送信する。各処理サーバ１０４ａ，ｂ，…では、受信したイベントの集計および記憶を行う。
【００４７】
アプリケーション１０６ａ，ｂ，…は、たとえば「全国の気温」「特定地域の気温・気圧・風向」などのように自らが必要とするイベントを処理ルールとしてイベント処理分散制御装置１０１に対して送信し、この処理ルールに該当するイベントを受信し、受信したイベントに基づく処理、たとえば気象情報の集計や気象予測などを行うことができる。
【００４８】
また、イベント発生源１０５ａ，ｂ，…が自動車に搭載された情報端末である場合、これらの情報端末は各車の位置、移動速度、移動方向、エンジンやバッテリの状態などをイベントとして送信する。このイベントには各々の値と、それらの種類などを示すデータがコンテキストとして含まれる。コンテキスト依存振り分け器１０３は、発生した各イベントを「値の種類ごと」などのような基準で各処理サーバ１０４ａ，ｂ，…に振り分けて送信する。各処理サーバ１０４ａ，ｂ，…では、受信したイベントの集計および記憶を行う。
【００４９】
アプリケーション１０６ａ，ｂ，…は、たとえば「特定地点付近にいる車」「特定の状態にある車」などのような処理ルールをイベント処理分散制御装置１０１に対して送信し、この処理ルールに該当するイベントを受信し、受信したイベントに基づく処理、たとえば「特定地点付近の車に、その地点の店の紹介」「特定の状態にある車に、その状態に対応するサービスの紹介」などを行うことができる。
【００５０】
そして、イベント発生源１０５ａ，ｂ，…が物流システムでトラックやベルトコンベアなどに配置されたＲＦＩＤリーダである場合、これらのＲＦＩＤリーダは特定の荷物に装着されたＲＦＩＤタグのＩＤと、ＲＦＩＤリーダ自らのＩＤをコンテキストとして含めたイベントを送信する。コンテキスト依存振り分け器１０３は、発生した各イベントを「各ＲＦＩＤタグのＩＤごと」などのような基準で各処理サーバ１０４ａ，ｂ，…に振り分けて送信する。各処理サーバ１０４ａ，ｂ，…では、受信したイベントの集計および記憶を行う。
【００５１】
アプリケーション１０６ａ，ｂ，…は、たとえば「特定のタグＩＤごと」などのような処理ルールをイベント処理分散制御装置１０１に対して送信し、この処理ルールに該当するイベントを受信し、受信したイベントに基づく処理、たとえば「特定のタグＩＤの荷物の追跡」などを行うことができる。以後、本実施形態ではこの例について説明する。
【００５２】
図４は、ＲＦＩＤリーダであるイベント発生源１０５ａ，ｂ，…が発生するイベントの一例について示す説明図である。このイベントは、ＲＦＩＤタグのＩＤである「ｔａｇＩＤ」と、ＲＦＩＤリーダのＩＤである「ｒｅａｄｅｒＩＤ」とを、コンテキストとして含む。この図４は、イベント発生源の発生するイベントの一例について述べているに過ぎず、イベントの形式やそこに含まれるコンテキストなどは任意に定義することができる。
【００５３】
図５は、図１に示した処理サーバ１０４ａ〜ｆの各々に予め設定されている処理ルール１０８ａ〜ｆについて示す説明図である。即ち、処理サーバＥＰ１（１０４ａ）にはｔａｇＩＤ＝１であるイベントを処理する処理ルールｒｕｌｅ１（１０８ａ）が、処理サーバＥＰ２（１０４ｂ）にはｔａｇＩＤ＝１１であるイベントを処理する処理ルールｒｕｌｅ２（１０８ｂ）が、予め設定されている。
【００５４】
また、処理サーバＥＰ３（１０４ｃ）にはｔａｇＩＤ＝２１であるイベントを処理する処理ルールｒｕｌｅ３（１０８ｃ）が、処理サーバＥＰ４（１０４ｄ）にはｔａｇＩＤ＝３１であるイベントを処理する処理ルールｒｕｌｅ４（１０８ｄ）が、処理サーバＥＰ５（１０４ｅ）にはｔａｇＩＤ＝４１であるイベントを処理する処理ルールｒｕｌｅ５（１０８ｅ）が、予め設定されている。
【００５５】
そして処理サーバＥＰ６（１０４ｆ）にはｔａｇＩＤ＝５１であるイベントを処理する処理ルールｒｕｌｅ６（１０８ｅ）とｔａｇＩＤ＝５２であるイベントを処理する処理ルールｒｕｌｅ７６（１０８ｅ）とｔａｇＩＤ＝５４であるイベントを処理する処理ルールｒｕｌｅ８（１０８ｅ）が、予め設定されている。図５に示した情報は、処理ルール振り分けデータ２０５に記録されている。
【００５６】
図６は、図１に示したコンテキスト依存振り分け器１０３に予め設定されている振り分けルール１０７について示す説明図である。即ち、ｔａｇＩＤ＝１のイベントは処理サーバＥＰ１（１０４ａ）へ、ｔａｇＩＤ＝１１のイベントは処理サーバＥＰ２（１０４ｂ）へ、ｔａｇＩＤ＝２１のイベントは処理サーバＥＰ３（１０４ｃ）へ、ｔａｇＩＤ＝３１のイベントは処理サーバＥＰ４（１０４ｄ）へ、ｔａｇＩＤ＝４１のイベントは処理サーバＥＰ５（１０４ｅ）へ、ｔａｇＩＤ＝５１〜５４のイベントは処理サーバＥＰ６（１０４ｆ）へ振り分けるという振り分けルール１０７が、予め設定されている。図６の情報は振り分けルールデータ２０６に記録されている。
【００５７】
ここで、ここにアプリケーション１０６ａから新たにｔａｇＩＤ＝３のイベントを処理する処理ルールｒｕｌｅ９が設定された場合について説明する。図７は、処理ルール振り分け部２０１が新たな処理ルールを設定する処理サーバ１０４ａ〜ｆを選択する動作について示すフローチャートである。
【００５８】
動作を開始した処理ルール振り分け部２０１は、各々の処理サーバ１０４ａ〜ｆに設定されている処理ルール数の最小値を求める（ステップＳ１０１）。本例の場合、図５に示された状態で処理ルール数の最小値は１である
処理ルール振り分け部２０１は、これに続いて、処理ルール数がこの最小値に対して一定値以下の差である処理サーバを選択する（ステップＳ１０２）。本例では処理ルール数の最小値は１であるので、この一定値も「１」とする。すると設定ルール数が３である処理サーバＥＰ６（１０４ｆ）が候補から外れる。
【００５９】
処理ルール振り分け部２０１は、これに続いて、選択された処理サーバの数が１であるか２以上であるかについて判断する（ステップＳ１０３）。ここで処理サーバ数が１であればその処理サーバをルール設定先として処理を終了するが、本例では５なのでステップＳ１０４に進む。
【００６０】
処理ルール振り分け部２０１は、これに続いて、今回設定する処理ルールのイベント条件と選択された処理サーバに設定済のイベント条件を比較し、一致する処理サーバの台数を確認する（ステップＳ１０４）。そして、その一致する処理サーバの台数が０か１か２以上かについて判断する（ステップＳ１０５）。一致する処理サーバの台数が１であれば、その処理サーバをルール設定先として処理を終了する。２以上であれば、ステップＳ１０６に進む。
【００６１】
本例では、今回設定する処理ルールｒｕｌｅ９のイベント条件はｔａｇＩＤ＝３なので、一致する処理サーバの台数は０となる。この場合、ステップＳ１０８に進んで、処理ルール振り分け部２０１は、今回設定する処理ルールのイベント条件と設定先候補の処理サーバに設定済のイベント条件を比較し、一定範囲内にあるイベント条件を持つ処理サーバを選択する（ステップＳ１０８）。
【００６２】
図８は、図１に示した振り分けルール許容差データ２０７に予め設定されている内容について示す説明図である。イベント条件についての許容範囲は、振り分けルール許容差データ２０７にイベントの属性値種別ごとに記録されている。ｔａｇＩＤについての許容範囲は「３」である。本例では、今回設定する処理ルールｒｕｌｅ９のイベント条件はｔａｇＩＤ＝３なので、ステップＳ１０８の処理では、ｔａｇＩＤ＝１というイベント条件の処理ルールｒｕｌｅ１を設定されている処理サーバＥＰ１（１０４ａ）が候補に残る。
【００６３】
そして処理ルール振り分け部２０１は、ステップＳ１０５と同様に、候補に残った処理サーバの台数が０か１か２以上かについて判断する（ステップＳ１０９）。候補に残った処理サーバの台数が１であれば、その処理サーバをルール設定先として処理を終了する。２以上であれば、ステップＳ１０６に進む。
【００６４】
ステップＳ１０９の処理で、処理サーバ数が０の場合には、一手戻って、処理ルール振り分け部２０１は、選択された処理サーバの中で設定されている処理ルール数が最も少ない処理サーバを設定先として選択する。もしそのような処理サーバが複数ある場合、定められた規則（ランダムなど）でその中から１つ処理サーバを選択し、それをルール設定先とする。
【００６５】
ステップＳ１０５またはＳ１０９で、選択可能な処理サーバが２台以上ある場合には、処理ルール振り分け部２０１は、それらの処理サーバの中で設定されている処理ルール数が最も少ない処理サーバを設定先として選択する（ステップＳ１０６）。これに該当する処理サーバが複数ある場合には、処理ルール振り分け部２０１は、定められた規則（ランダムなど）でその中から１つ処理サーバを選択し、それをルール設定先とする（ステップＳ１０７）。以上で、処理ルール振り分け部２０１による処理は終了する。
【００６６】
本例では、ステップＳ１０９で処理サーバＥＰ１（１０４ａ）が１つ候補に残っているため、このフローに該当し、処理サーバＥＰ１（１０４ａ）がルール設定先となる。すると処理ルール振り分け部２０１は、処理ルール送信部２０２経由で処理ルールｒｕｌｅ９を処理サーバＥＰ１（１０４ａ）に設定する。
【００６７】
そして、処理ルール振り分け部２０１は、処理ルール振り分けデータ２０５に記録されている情報に処理ルールｒｕｌｅ９についての情報を追加する。図９は、図５に示した処理ルール振り分けデータ２０５の記録に、新たに処理ルールｒｕｌｅ９についての情報を追加した状態について示す説明図である。
【００６８】
図１０は、図１に示した振り分けルール決定部２０３が振り分けルールを決定し、コンテキスト依存振り分け器１０３に設定する手順について示すフローチャートである。以後、図９に示した処理ルール振り分け部２０１が処理ルール振り分けデータ２０５に新たな処理ルールｒｕｌｅ９を追加した状態の例で説明する。振り分けルール決定部２０３は、図６に示した振り分けルールデータ２０６の記録内容を参照しながら振り分けルール１０７を設定する。
【００６９】
振り分けルール決定部２０３はまず、処理ルール振り分け部２０１から新たに設定した処理ルールの情報を受信する（ステップＳ２０１）。具体的には、少なくとも処理ルールのイベント条件と設定先の処理サーバＩＤを受信する。本例の場合、ｒｕｌｅ９のイベント条件のｔａｇＩＤ＝３と設定先の処理サーバＥＰ１（１０４ａ）についての情報を受信する。
【００７０】
振り分けルール決定部２０３は、これに応じて動作を開始し、振り分けルールデータ２０６を参照して、該受信した処理サーバと同じ振り分け先の振り分けルールを検索する（ステップＳ２０２）。本例では処理サーバＥＰ１（１０４ａ）が相当するので振り分けルール名称「ｄｉｓｐ＿ｒｕｌｅ１」がこれに該当する。
【００７１】
振り分けルール決定部２０３は、これに続いて、検索された振り分けルールの中に該受信したイベント条件と一致するイベント条件を持つ振り分けルールがあるか否かを検索する（ステップＳ２０３）。該当する振り分けルールがあった場合（ステップＳ２０３がイエス）には、新たな振り分けルールを設定せずに処理を終了する。該当する振り分けルールが無い場合（ステップＳ２０３がノー）には、ステップＳ２０４に進む。
【００７２】
本例では、受信したイベント条件がｔａｇＩＤ＝３であり、検索された振り分けルール名称「ｄｉｓｐ＿ｒｕｌｅ１」のイベント条件がｔａｇＩＤ＝１であるので、ステップＳ２０３の判断はノーとなり、処理はＳ２０４に進む。
【００７３】
振り分けルール決定部２０３は、検索された振り分けルールの中に該受信したイベント条件から、振り分けルール許容差データ２０７に指定されている一定範囲内にあるイベント条件を持つ振り分けルールがあるか否かを検索する（ステップＳ２０４）。ここで図８に示した振り分けルール許容差データ２０７には、ｔａｇＩＤについての「一定範囲」は「３」である。
【００７４】
そのような振り分けルールが存在しない場合、ステップＳ２０４の判断はノーとなって、処理がステップＳ２０６に進む。この場合、振り分けルール決定部２０３は、該受信したイベント条件を該受信した処理サーバに振り分けるように新たな振り分けルールを生成し、振り分けルール送信部２０４を介してコンテキスト依存振り分け器１０３に設定して（ステップＳ２０６）処理を終了する。
【００７５】
本例では、受信したイベント条件がｔａｇＩＤ＝３で検索された振り分けルールｄｉｓｐ＿ｒｕｌｅ１のイベント条件がｔａｇＩＤ＝１で一定範囲にあるので、ステップＳ２０４の判断はイエスとなって、処理がステップＳ２０５に進む。この場合、振り分けルール決定部２０３は、検索された振り分けルール名称「ｄｉｓｐ＿ｒｕｌｅ１」のイベント条件を拡幅し、受信したイベント条件も含むように変更して、振り分けルール送信部２０４を介してコンテキスト依存振り分け器１０３に再設定して（ステップＳ２０５）処理を終了する。
【００７６】
より具体的には、振り分けルール決定部２０３はステップＳ２０５の処理で、振り分けルール名称「ｄｉｓｐ＿ｒｕｌｅ１」のイベント条件「ｔａｇＩＤ＝１」を「ｔａｇＩＤ＝［１…３］」に変更して再設定する。また、振り分けルール記録部に記録されている情報も、この設定結果に合わせて変更する。図１１は、図６に示した振り分けルール１０７に、ステップＳ２０５の処理で、振り分けルール決定部２０３がこの変更を加えた状態について示す説明図である。
【００７７】
（第１の実施形態の全体的な動作）
次に、上記の実施形態の全体的な動作について説明する。本実施形態に係るイベント処理負荷分散制御方法は、複数の他のコンピュータで動作する各アプリケーション１０６ａ，ｂ，…に対してイベント処理結果を通知する複数の処理サーバ１０４ａ，ｂ，…と、複数の処理サーバに対して予め設定された複数のイベント発生源において発生したイベントを振り分けるコンテキスト依存振り分け装置１０３と、複数の処理サーバに対してイベントの内容を示すコンテキストに基づく処理ルールを設定し、複数の処理サーバが処理ルールを実行するために必要なイベントが適切に分配されるように振り分けルールをコンテキスト依存振り分け装置に記憶させるイベント処理分散制御装置と備えたイベント処理負荷分散システム１０１と有するイベント処理負荷分散システム１にあって、アプリケーションから新規の処理ルールをイベント処理分散制御装置の処理ルール受信部が受信し、この新規の処理ルールの受信に応じて、予め記録された処理すべきイベントの条件を示すイベント条件に基づいてイベント処理分散制御装置の処理ルール振り分け部が処理サーバにこの処理ルールを割り当て（図７・ステップＳ１０１〜１１０）、既存の振り分けルールに含まれるコンテキストと新規に受信した処理ルールに含まれるコンテキストとの間の差分が予め記録された許容範囲以内である場合に、この新規に受信した処理ルールが含まれるようにイベント処理分散制御装置の振り分けルール決定部が既存の振り分けルールを更新する（図１０・ステップＳ２０４〜２０６）。
【００７８】
ここで、上記各動作ステップについては、これをコンピュータで実行可能にプログラム化し、これらを前記各ステップを直接実行するコンピュータであるイベント処理分散制御装置１０１に実行させるようにしてもよい。本プログラムは、非一時的な記録媒体、例えば、ＤＶＤ、ＣＤ、フラッシュメモリ等に記録されてもよい。その場合、本プログラムは、記録媒体からコンピュータによって読み出され、実行される。
この動作により、本実施形態は以下のような効果を奏する。
【００７９】
特許文献１に記載の既存技術では別個の振り分けルールとして設定されていた類似する処理ルールが、本実施形態によれば、許容範囲以内であれば同一の振り分けルールとして設定される。多くの場合、ｔａｇＩＤなどのようなコンテキストの数値が近いイベントは、なるべく同一の処理サーバで処理された方が、効率的な処理が可能である。
【００８０】
従って、本実施形態によれば、コンテキスト依存振り分け装置１０３に設定される振り分けルールの数を、既存技術に比べて削減することができ、同一の計算機リソースでより多くのイベント処理ルール、イベントを収容することができる。そして、イベント処理負荷分散システム１全体を軽快に動作させ、処理能力を向上させることができる。
【００８１】
（第２の実施形態）
本発明の第２の実施形態は、前述した第１の実施形態の構成に加えて、イベント処理分散制御装置４０１の振り分けルール決定部５０３が、更新された振り分けルールに含まれるコンテキストが、記憶されているその他の振り分けルールに含まれるコンテキストとの間の差分が許容範囲以内である場合に、これらの振り分けルールを統一するよう更新する機能を有する構成とした。
【００８２】
この構成によれば、前述した第１の実施形態の効果に加えて、振り分けルールを更新した結果、類似したコンテキストを持つようになった振り分けルールをさらに統合して、振り分けルールの総数をさらに削減することが可能となる。
以下、これをより詳しく説明する。
【００８３】
図１２は、本発明の第２の実施形態に係るイベント処理負荷分散システム３０１の構成について示す説明図である。イベント処理負荷分散システム３０１は、図１〜３で説明した第１の実施形態に係るイベント処理負荷分散システム１と比べて、イベント処理負荷分散制御装置１０１が別のイベント処理負荷分散制御装置４０１に置換されているだけで、これ以外の要素は全て同一である。
【００８４】
図１３は、図１２で示したイベント処理負荷分散制御装置４０１のより詳しい構成について示す説明図である。イベント処理負荷分散制御装置４０１は、図３で示したイベント処理負荷分散制御装置１０１とハードウェア的には同一であり、ソフトウェア的にも振り分けルール決定部２０３が別の振り分けルール決定部５０３に置換されているだけである。
【００８５】
振り分けルール決定部５０３は、振り分けルール決定部２０３の動作を行う機能に加えて、新たなイベント処理ルールを追加した結果、複数の振り分けルールが振り分けルール許容差記録部に指定されている範囲内に重なる場合、それらを結合して１つの振り分けルールとするという機能を有する。
【００８６】
図１４は、図１３で示した振り分けルール決定部５０３の動作について示す説明図である。図１４（ａ）および（ｂ）は、振り分けルールデータ２０６の記録内容の変化を示している。図１４（ａ）は、処理サーバＥＰ１（１０４ａ）に「ｔａｇＩＤ＝１」または「ｔａｇＩＤ＝５」に該当するイベントを振り分けるという振り分けルールとして設定されているという例を示している。ちなみに振り分けルール許容差データ２０７に記録されているｔａｇＩＤについての「許容範囲」は、図８に示したものと同様に「３」である。
【００８７】
このとき、第１の実施形態で説明した動作が行われ、新たに「ｔａｇＩＤ＝３」に該当するイベントを処理サーバＥＰ１（１０４ａ）に振り分ける内容が振り分けルールデータ２０６に追加され、「ｔａｇＩＤ＝１」のルールが「ｔａｇＩＤ＝［１…３］」に変更された。
【００８８】
これによって、「ｔａｇＩＤ＝５」も、「ｔａｇＩＤ＝［１…３］」の条件との差分が許容範囲（＝３）以内となる。従って、振り分けルール決定部５０３は、この「ｔａｇＩＤ＝５」も含めて「ｔａｇＩＤ＝［１…５］」となるよう、振り分けルールデータ２０６を更新する。図１４（ｂ）は、このように更新された振り分けルールデータ２０６を示している。
【００８９】
これとは逆に、振り分けルール決定部５０３は、「ｔａｇＩＤ＝３」に該当するイベントを振り分ける内容が振り分けルールデータ２０６から削除された場合には、振り分けルールデータ２０６を図１４（ｂ）に示した状態から元の図１４（ａ）に戻すようにすることもできる。
【００９０】
（実施形態の拡張１）
以上で説明した第１および第２の実施形態は、必要に応じて適宜拡張することができる。
たとえば、イベントに含まれるコンテキストは、数値だけではなく文字列を含む場合がある。その場合、図８の「株銘柄」「人名」の項目として示したように、たとえば「頭文字が同一」（「株銘柄＝ＡＢ×」などのように）「ソート順で頭文字が３文字以内」（「人名＝Ａ××」と「人名＝Ｃ○○」などのように）というように許容範囲を指定することができる。
【００９１】
これを正規表現で記述した場合、これまで「株銘柄＝ＡＢＣ」であるイベントのみを特定の処理サーバに振り分けるように振り分け条件を設定していたところに、「株銘柄＝ＡＢＥ」であるイベントもこれと同一の処理サーバに振り分けるようにする場合には、振り分け条件を「株銘柄＝＾ＡＢ［Ｃ−Ｅ］＄」とするように振り分けルールデータ２０６を更新する。
【００９２】
また、これまで「人名＝ＡＢＣ」であるイベントのみを特定の処理サーバに振り分けるように振り分け条件を設定していたところに、「人名＝ＣＥＦ」であるイベントもこれと同一の処理サーバに振り分けるようにする場合には、振り分け条件を「人名＝＾［Ａ−Ｃ］［Ｂ−Ｅ］［Ｃ−Ｆ］＄」とするように振り分けルールデータ２０６を更新する。
【００９３】
（実施形態の拡張２）
また、本発明は特許文献１に記載の既存技術の改良であるので、この文献に記載された複数の実施形態の各々に対して適用することが可能である。たとえば、同文献の第２の実施形態と同様に、複数のコンテキスト依存振り分け装置を配置し、さらにコンテキスト非依存振り分け装置を追加することもできる。そして、同文献の第４の実施形態と同様に、コンテキスト非依存振り分け装置を二重化して、障害発生による影響を回避できるようにすることもできる。
【００９４】
これまで本発明について図面に示した特定の実施形態をもって説明してきたが、本発明は図面に示した実施形態に限定されるものではなく、本発明の効果を奏する限り、これまで知られたいかなる構成であっても採用することができる。
【００９５】
上述した実施形態について、その新規な技術内容の要点をまとめると、以下のようになる。なお、上記実施形態の一部または全部は、新規な技術として以下のようにまとめられるが、本発明は必ずしもこれに限定されるものではない。
【００９６】
（付記１）  複数の他のコンピュータで動作する各アプリケーションに対してイベント処理結果を通知する複数の処理サーバと、
前記複数の処理サーバに対して予め設定された複数のイベント発生源において発生したイベントを振り分けるコンテキスト依存振り分け装置と、
前記複数の処理サーバに対して前記イベントの内容を示すコンテキストに基づく処理ルールを設定し、前記複数の処理サーバが前記処理ルールを実行するために必要な前記イベントが適切に分配されるように振り分けルールを前記コンテキスト依存振り分け装置に記憶させるイベント処理分散制御装置と備えたイベント処理負荷分散システムであって、
前記イベント処理分散制御装置は、
前記各アプリケーションから前記処理ルールを受信する処理ルール受信部と、
この受信された処理ルールに含まれる処理すべきイベントの条件を示すイベント条件を、前記処理サーバごとに少なくとも記録する処理ルール振り分け記録部と、
前記処理ルール受信部が新規に処理ルールを受信した場合に、前記処理ルール振り分け記録部を参照して、前記処理サーバにこの処理ルールを割り当てる処理ルール振り分け部とを有すると共に、
既存の前記振り分けルールに含まれるコンテキストと前記新規に受信した処理ルールに含まれるコンテキストとの間の差分の許容範囲を記録する振り分けルール許容差記録部と、
前記新規に受信した処理ルールに含まれるコンテキストと既存の前記振り分けルールに含まれるコンテキストとの間の差分が前記許容範囲以内である場合に、この新規に受信した処理ルールが含まれるように前記既存の振り分けルールを更新する振り分けルール決定部と
を有することを特徴とするイベント処理負荷分散システム。
【００９７】
（付記２）  前記イベント処理分散制御装置の前記処理ルール振り分け部が、
前記振り分けルール決定部による前記既存の振り分けルールの更新に応じて、前記新規に受信した処理ルールをこの既存の振り分けルールにある前記処理サーバと同一の前記処理サーバに割り当てる機能を有することを特徴とする、付記１に記載のイベント処理負荷分散システム。
【００９８】
（付記３）  前記イベント処理分散制御装置の前記振り分けルール決定部が、
更新された前記振り分けルールに含まれるコンテキストと、記憶されているその他の前記振り分けルールに含まれるコンテキストとの間の差分が前記許容範囲以内である場合に、これらの振り分けルールを統一するよう更新する機能を有することを特徴とする、付記２に記載のイベント処理負荷分散システム。
【００９９】
（付記４）  前記処理ルールに含まれるコンテキストの差分の前記許容範囲が、数値もしくはソート順の文字列で示されることを特徴とする、付記１ないし３のうちいずれか１項に記載のイベント処理負荷分散システム。
【０１００】
（付記５）  複数の他のコンピュータで動作する各アプリケーションに対してイベント処理結果を通知する複数の処理サーバと前記複数の処理サーバに対して予め設定された複数のイベント発生源において発生したイベントを振り分けるコンテキスト依存振り分け装置とにネットワークを介して接続され、前記複数の処理サーバに前記イベントの内容を示すコンテキストに基づく処理ルールを設定すると共に前記複数の処理サーバが前記処理ルールを実行するために必要な前記イベントが適切に分配されるように振り分けルールを前記コンテキスト依存振り分け装置に記憶させるイベント処理分散制御装置であって、
前記各アプリケーションから前記処理ルールを受信する処理ルール受信部と、
この受信された処理ルールに含まれる処理すべきイベントの条件を示すイベント条件を、前記処理サーバごとに少なくとも記録する処理ルール振り分け記録部と、
前記処理ルール受信部が新規に処理ルールを受信した場合に、前記処理ルール振り分け記録部を参照して、前記処理サーバにこの処理ルールを割り当てる処理ルール振り分け部とを有すると共に、
既存の前記振り分けルールに含まれるコンテキストと前記新規に受信した処理ルールに含まれるコンテキストとの間の差分の許容範囲を記録する振り分けルール許容差記録部と、
前記新規に受信した処理ルールに含まれるコンテキストと既存の前記振り分けルールに含まれるコンテキストとの間の差分が前記許容範囲以内である場合に、この新規発生イベントが含まれるように前記既存の振り分けルールを更新する振り分けルール決定部と
を有することを特徴とするイベント処理負荷分散制御装置。
【０１０１】
（付記６）  複数の他のコンピュータで動作する各アプリケーションに対してイベント処理結果を通知する複数の処理サーバと、
前記複数の処理サーバに対して予め設定された複数のイベント発生源において発生したイベントを振り分けるコンテキスト依存振り分け装置と、
前記複数の処理サーバに対して前記イベントの内容を示すコンテキストに基づく処理ルールを設定し、前記複数の処理サーバが前記処理ルールを実行するために必要な前記イベントが適切に分配されるように振り分けルールを前記コンテキスト依存振り分け装置に記憶させるイベント処理分散制御装置と備えたイベント処理負荷分散システムにあって、
前記アプリケーションから新規の前記処理ルールを前記イベント処理分散制御装置の処理ルール受信部が受信し、
この新規の処理ルールの受信に応じて、予め記録された処理すべきイベントの条件を示すイベント条件に基づいて前記イベント処理分散制御装置の処理ルール振り分け部が前記処理サーバにこの処理ルールを割り当て、
既存の前記振り分けルールに含まれるコンテキストと前記新規に受信した処理ルールに含まれるコンテキストとの間の差分が予め記録された許容範囲以内である場合に、この新規に受信した処理ルールが含まれるように前記イベント処理分散制御装置の振り分けルール決定部が前記既存の振り分けルールを更新する
ことを特徴とするイベント処理負荷分散制御方法。
【０１０２】
（付記７）  複数の他のコンピュータで動作する各アプリケーションに対してイベント処理結果を通知する複数の処理サーバと、
前記複数の処理サーバに対して予め設定された複数のイベント発生源において発生したイベントを振り分けるコンテキスト依存振り分け装置と、
前記複数の処理サーバに対して前記イベントの内容を示すコンテキストに基づく処理ルールを設定し、前記複数の処理サーバが前記処理ルールを実行するために必要な前記イベントが適切に分配されるように振り分けルールを前記コンテキスト依存振り分け装置に記憶させるイベント処理分散制御装置と備えたイベント処理負荷分散システムにあって、
前記イベント処理分散制御装置が備えるコンピュータに、
前記アプリケーションから新規の前記処理ルールを受信する手順、
この新規の処理ルールの受信に応じて、予め記録された処理すべきイベントの条件を示すイベント条件に基づいて前記処理サーバにこの処理ルールを割り当てる手順、
および既存の前記振り分けルールに含まれるコンテキストと前記新規に受信した処理ルールに含まれるコンテキストとの間の差分が予め記録された許容範囲以内である場合に、この新規に受信した処理ルールが含まれるように前記既存の振り分けルールを更新する手順
を実行させることを特徴とするイベント処理負荷分散制御プログラム
【産業上の利用可能性】
【０１０３】
本発明は、ＲＦＩＤネットワークやセンサネットワークに適用することができる。
【符号の説明】
【０１０４】
１、３０１  イベント処理負荷分散システム
１０１、４０１  イベント処理分散制御装置
１０３  コンテキスト依存振り分け器
１０４ａ，１０４ｂ，…  処理サーバ
１０５ａ，１０５ｂ，…  イベント発生源
１０６ａ，１０６ｂ，…  アプリケーション
１０７  振り分けルール
１０８ａ，１０８ｂ，…  処理ルール
１１０  ネットワーク
１１３  コンテキスト依存振り分け装置
１１６ａ，１１６ｂ  アプリケーション実行装置
２００  処理ルール受信部
２０１  処理ルール振り分け部
２０２  処理ルール送信部
２０３、５０３  振り分けルール決定部
２０４  振り分けルール送信部
２０５  処理ルール振り分けデータ
２０６  振り分けルールデータ
２０７  振り分けルール許容差データ
【図１】
2012185673.tif 000003
【図２】
2012185673.tif 000004
【図３】
2012185673.tif 000005
【図４】
2012185673.tif 000006
【図５】
2012185673.tif 000007
【図６】
2012185673.tif 000008
【図７】
2012185673.tif 000009
【図８】
2012185673.tif 000010
【図９】
2012185673.tif 000011
【図１０】
2012185673.tif 000012
【図１１】
2012185673.tif 000013
【図１２】
2012185673.tif 000014
【図１３】
2012185673.tif 000015
【図１４】
2012185673.tif 000016
【図１５】
2012185673.tif 000017
【図１６】
2012185673.tif 000018
【図１７】
2012185673.tif 000019