(57)【特許請求の範囲】
【請求項１】
転送されてきたイベントを設定されたイベント処理ルールに従って処理し、処理結果を複数のアプリケーションへ通知する複数のイベント処理サーバと、
設定されたイベント転送ルールに従ってイベント発生源から受信したイベントを前記イベント処理サーバへ転送する複数のイベント振り分け器と、
前記複数のイベント処理サーバと前記複数のイベント振り分け器を管理し前記アプリケーションから受信したイベント処理ルールを前記イベント処理サーバに設定するイベント処理分散器と、
を有し、
前記アプリケーションが、前記イベント処理分散器から前記イベント処理サーバの情報が記載されているリストを入手し、該リストの中から前記アプリケーションとの応答時間が最短であるイベント処理サーバを選択し、選択した前記イベント処理サーバの情報を付加したイベント処理要求を前記イベント処理分散器に対して行う第１のイベント処理と、
前記イベント発生源が、前記イベント処理分散器から前記イベント振り分け器の情報が記載されているリストを入手し、該リストの中から前記イベント発生源との応答時間が最短であるイベント振り分け器を選択し、選択した前記イベント振り分け器に前記イベントを送信する第２のイベント処理と
を含むイベント処理システム。
【請求項２】
請求項１に記載のイベント処理システムにおいて、
前記複数のイベント処理サーバは、複数のデータセンター内に配置されているイベント処理システム。
【請求項３】
請求項１または２に記載のイベント処理システムにおいて、
前記イベント発生源が該イベント発生源との応答時間が最短であるイベント振り分け器を選択する際に、前記イベント発生源は、前記イベント振り分け器のリストに記載されている各イベント振り分け器への通信にかかる往復時間を計測し、往復時間の最も短いイベント振り分け器を選択するイベント処理システム。
【請求項４】
請求項１または２に記載のイベント処理システムにおいて、
前記イベント発生源が該イベント発生源との応答時間が最短であるイベント振り分け器を選択する際に、前記イベント発生源が前記イベント振り分け器のリストに記載されている各イベント振り分け器のアドレスのネットワークアドレス部を見て該イベント発生源に近いネットワークアドレスを持つイベント振り分け器を選択するイベント処理システム。
【請求項５】
請求項１乃至４いずれか１項に記載のイベント処理システムにおいて、
前記イベント発生源が、イベント送信を行う際に、前記イベント振り分け器の入手と該イベント発生源との応答時間が最短であるイベント振り分け器の選択は行わずに、以前に選択したイベント振り分け器の情報をキャッシュしておき、該キャッシュしたイベント振り分け器にイベントを送信するイベント処理システム。
【請求項６】
請求項２乃至５いずれか１項に記載のイベント処理システムにおいて、
前記イベント振り分け器と前記データセンター間に高速回線を有し、前記イベント振り分け器から前記イベント処理サーバへのイベント転送は前記高速回線を使用して行われるイベント処理システム。
【請求項７】
請求項１乃至６いずれか１項に記載のイベント処理システムにおいて、
前記イベント振り分け器の機能が前記イベント発生源の中に配置されているイベント処理システム。
【請求項８】
請求項２乃至７いずれか１項に記載のイベント処理システムにおいて、
前記アプリケーションから前記イベント処理要求を受信した前記イベント処理分散器は、前記イベント処理要求が付加され選択されたイベント処理サーバまたは前記選択されたイベント処理サーバと同じ前記データセンターに配置されている他のイベント処理サーバに前記イベント処理ルールを設定するイベント処理システム。
【請求項９】
請求項１乃至８いずれか１項に記載のイベント処理システムにおいて、
前記アプリケーションが、該アプリケーションとの応答時間が最短であるイベント処理サーバを選択する際に、前記アプリケーションは、前記イベント処理サーバのリストに記載されている各イベント処理サーバへの通信にかかる往復時間を計測し、該往復時間の最も短いイベント処理サーバを選択するイベント処理システム。
【請求項１０】
請求項２乃至８いずれか１項に記載のイベント処理システムにおいて、
前記アプリケーションが該アプリケーションとの応答時間が最短であるイベント処理サーバを選択する際に、前記アプリケーションは、前記イベント処理サーバのリストに記載されている前記各データセンターから一つずつ該データセンターに配置されているイベント処理サーバを抽出し、該抽出したイベント処理サーバへの通信にかかる往復時間を計測し、往復時間の最も短いイベント処理サーバを選択するイベント処理システム。
【請求項１１】
請求項１乃至８いずれか１項に記載のイベント処理システムにおいて、
前記アプリケーションが該アプリケーションとの応答時間が最短であるイベント処理サーバを選択する際に、前記アプリケーションは、前記イベント処理サーバのリストに記載されている各イベント処理サーバのアドレスのネットワークアドレス部を見て該アプリケーションに近いネットワークアドレスを持つイベント処理サーバを選択するイベント処理システム。
【請求項１２】
請求項１乃至８いずれか１項に記載のイベント処理システムにおいて、
前記アプリケーションが、イベント処理要求を行う際に、前記イベント処理サーバのリストの入手と、前記アプリケーションとの応答時間が最短であるイベント処理サーバの選択は行わずに、以前に選択したイベント処理サーバの情報をキャッシュしておいたイベントサーバのリストと、キャッシュしておいたイベント処理サーバの情報を付加して前記イベント処理分散器にイベント処理要求を行うイベント処理システム。
【請求項１３】
複数のイベント処理サーバは、転送されてきたイベントを設定されたイベント処理ルールに従って処理し、処理結果を複数のアプリケーションへ通知し、
複数のイベント振り分け器は、設定されたイベント転送ルールに従ってイベント発生源から受信したイベントを前記イベント処理サーバへ転送し、
イベント処理分散器は、前記複数のイベント処理サーバと前記複数のイベント振り分け器を管理し、前記アプリケーションから受信したイベント処理ルールを前記イベント処理サーバに設定し、
前記アプリケーションが、前記イベント処理分散器から前記イベント処理サーバの情報が記載されているリストを入手し、該リストの中から前記アプリケーションとの応答時間が最短であるイベント処理サーバを選択し、選択したイベント処理サーバの情報を付加したイベント処理要求を前記イベント処理分散器に対して行うイベント処理および、
前記イベント発生源は、前記イベント処理分散器から前記イベント振り分け器の情報が記載されているリストを入手し、該リストの中から前記アプリケーションとの応答時間が最短であるイベント振り分け器を選択し、選択したイベント振り分け器に前記イベントを送信するイベント処理を行うイベント処理方法。
【請求項１４】
請求項１３に記載のイベント処理方法において、
前記複数のイベント処理サーバが、複数のデータセンター内に配置され、
前記アプリケーションからイベント処理要求を受信した前記イベント処理分散器が、前記選択されたイベント処理サーバと同じ前記データセンターに配置されている他のイベント処理サーバに前記イベント処理ルールを設定するイベント処理方法。
【請求項１５】
請求項１３または１４に記載のイベント処理方法において、
前記イベント発生源が該イベント発生源との応答時間が最短であるイベント振り分け器を選択する際に、前記イベント発生源は、前記イベント振り分け器のリストに記載されている各イベント振り分け器への通信にかかる往復時間を計測し、往復時間の最も短いイベント振り分け器を選択するイベント処理方法。
【請求項１６】
請求項１３または１４に記載のイベント処理方法において、
前記イベント発生源が該イベント発生源との応答時間が最短であるイベント振り分け器を選択する際に、前記イベント発生源が前記イベント振り分け器のリストに記載されている各イベント振り分け器のアドレスのネットワークアドレス部を見て該イベント発生源に近いネットワークアドレスを持つイベント振り分け器を選択するイベント処理方法。
【請求項１７】
請求項１３または１４に記載のイベント処理方法において、
前記イベント発生源が、イベント送信を行う際に、前記イベント振り分け器の入手と該イベント発生源との応答時間が最短であるイベント振り分け器の選択は行わずに、以前に選択したイベント振り分け器の情報をキャッシュしておき、該キャッシュしたイベント振り分け器にイベントを送信するイベント処理方法。
【請求項１８】
請求項１３または１７に記載のイベント処理方法において、
前記アプリケーションからイベント処理要求を受信した前記イベント処理分散器が、該イベント処理要求を付加し、選択された前記イベント処理サーバに前記イベント処理ルールを設定するイベント処理方法。
【請求項１９】
請求項１３乃至１８いずれか１項に記載のイベント処理方法において、
前記アプリケーションが、該アプリケーションとの応答時間が最短であるイベント処理サーバを選択する際に、前記アプリケーションは、前記イベント処理サーバのリストに記載されている各イベント処理サーバへの通信にかかる往復時間を計測し、該往復時間の最も短いイベント処理サーバを選択するイベント処理方法。
【請求項２０】
請求項１４乃至１８のいずれか１項に記載のイベント処理方法において、
前記アプリケーションが該アプリケーションとの応答時間が最短であるイベント処理サーバを選択する際に、前記アプリケーションは、前記イベント処理サーバのリストに記載されている前記各データセンターから一つずつ該データセンターに配置されているイベント処理サーバを抽出し、該抽出したイベント処理サーバへの通信にかかる往復時間を計測し、往復時間の最も短いイベント処理サーバを選択するイベント処理方法。
【請求項２１】
請求項１３乃至１８いずれか１項に記載のイベント処理方法において、
前記アプリケーションが該アプリケーションとの応答時間が最短であるイベント処理サーバを選択する際に、前記アプリケーションは、前記イベント処理サーバのリストに記載されている各イベント処理サーバのアドレスのネットワークアドレス部を見て該アプリケーションに近いネットワークアドレスを持つイベント処理サーバを選択するイベント処理方法。
【請求項２２】
請求項１３乃至１８いずれか１項に記載のイベント処理方法において、
前記アプリケーションが、イベント処理要求を行う際に、前記イベント処理サーバのリストの入手と、前記アプリケーションとの応答時間が最短であるイベント処理サーバの選択は行わずに、以前に選択したイベント処理サーバの情報をキャッシュしておいたイベントサーバのリストと、キャッシュしておいたイベント処理サーバの情報を付加して前記イベント処理分散器にイベント処理要求を行うイベント処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理・配信に関し、特にＲＦＩＤセンサ等のデバイスなどから大量に発生する情報(イベント)の処理・配信に関する。
【背景技術】
【０００２】
関連技術として、たとえば、特許文献１がある。図５は、特許文献１のサーバ選択装置の機能ブロック図であり、サーバ選択装置５００は、サーバ選択手段５０１、距離取得手段５０２、及び残りリソース量取得手段５０３で構成されている。
【０００３】
別の関連技術として、特許文献２がある。図６は、特許文献２の負荷分散システム構成図であり、ネットワークシステム全体のシステム管理を行うために設けられた管理サーバ６１０と、クライアントに提供する情報を保持する情報提供サーバ６２０と、ネットワーク監視を行うとともにクライアントに提供する情報を保持する情報提供サーバでもあるネットワーク監視サーバ６３０と、ドメイン名を管理するＤＮＳ／ＤＡＰサーバ６０４と、時間を管理するＮＴＳサーバ６０５と、必要な情報を上記サーバから提供してもらうクライアントシステム６４０とが示されている。クライアントシステム６４０は、ＬＡＮ６４１に接続された入力装置１乃至複数台のクライアント端末６４２とクライアント端末用管理サーバ６４３等で構成されている。
【０００４】
さらに関連技術として、特許文献３がある。図７は、特許文献３の負荷分散振り分けシステムが示されている。イベント処理分散制御部７０１は、処理サーバ７０４ａ〜ｆに、アプリケーション７０６ａ〜ｆが要求するイベント処理の処理ルール７０８ａ〜ｆを設定する（矢印７１０ａ〜ｆ）。
【０００５】
アプリケーション７０６ａ〜ｈが要求するイベント処理の処理ルール７０８ａ〜ｆを設定する場合に、ＲＦＩＤシステムにおいて、アプリケーション７０６ａが、ある製品を製造するために必要な全ての部材のＲＦＩＤタグを全て検出したら通知することを、処理サーバ７０４ａの処理ルール７０８ａに「全ての部材のＲＦＩＤタグを全て検出したらアプリケーションに通知」というルールを設定する（矢印７１０ａ）。
【０００６】
次に、イベント処理分散制御部７０１は、設定された処理ルール７０８ａ〜ｆにより処理サーバが処理する必要のあるイベントがそのサーバに適切に振り分けられるように、コンテキスト依存振り分け器７０３に振り分けルール７０７を設定する（矢印７０９）。上記に示した例の場合、「その製品に関する部材のＲＦＩＤタグの検出イベントは処理サーバ７０４ａに転送する。」といったルールとなる。
【０００７】
デバイス７０５ａ〜ｆで発生したイベント７１１ａ〜ｆは、全てコンテキスト依存振り分け器７０３で受信される。デバイス７０５ａ〜ｆで発生したイベントを受信したコンテキスト依存振り分け器７０３は、そのイベントの内容（コンテキスト）を参照し、振り分けルール７０７に従って、それらを適切な処理サーバ７０４ａ〜ｆに転送する（矢印７１３ａ〜ｆ）。
【０００８】
コンテキスト依存振り分け器７０３によって振り分けられたイベント７１３ａ、７１３ｆを受信した処理サーバは、処理ルール７０７に従ってアプリケーション７０６ａ〜ｈに転送する（７１４ａ〜ｉ）。
このように、負荷分散振り分けシステムは、アプリケーションがシステムに対して、ＲＦＩＤリーダ、センサ等のデバイスからの発生情報（イベント）の処理を処理ルールとして要求し、システムは要求されたルールに従って、イベント内容（コンテキスト）に基づき処理し、結果をアプリケーションに通知するシステムを前提としている。処理ルールはイベント内容（コンテキスト）に基づいて処理するように構成されている。
【特許文献１】特開２００２−９１８４３号公報
【特許文献２】特開２００３−２５６３０３号公報
【特許文献３】特開２００６−３０９７０１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、上記特許文献記載の関連技術には、以下の点で改善の余地を有していた。特許文献１、２は大量のデータを扱う場合の負荷軽減のため、ユーザから近いサーバを選択することが書かれているが、イベント発生源、およびイベント振り分け器についての記載はない。特許文献３は、イベント処理装置についての記載はあるが、イベント転送遅延を改善したイベント処理システムの記載はない。
【００１０】
本発明はＲＦＩＤセンサ等のデバイスから大量に発生する情報(イベント)の処理・配信に係るものであり、この１つのイベント発生源は、複数回、場所を変えイベントを発生させる。また複数のイベントが同時に発生する場合があるが、色々な場所で同時に発生したイベントは、イベント振分け器との距離がばらつくことにより、同時に発生したものとして扱われない場合があった。このように、イベント転送遅延を改善するイベント処理システムについての開示はなかった。
【課題を解決するための手段】
【００１１】
本発明によれば、転送されてきたイベントを設定されたイベント処理ルールに従って処理し、処理結果を複数のアプリケーションへ通知する複数のイベント処理サーバと、
設定されたイベント転送ルールに従ってイベント発生源から受信したイベントをそのイベント処理サーバへ転送する複数のイベント振り分け器と、
その複数のイベント処理サーバとその複数のイベント振り分け器を管理しそのアプリケーションから受信したイベント処理ルールをそのイベント処理サーバに設定するイベント処理分散器と、
を有し、
そのアプリケーションが、そのイベント処理分散器からそのイベント処理サーバの情報が記載されているリストを入手し、そのリストの中からそのアプリケーションに近いイベント処理サーバを選択し、選択したイベント処理サーバの情報を付加したイベント処理要求をそのイベント処理分散器に対して行う第１のイベント処理と、
そのイベント発生源が、そのイベント処理分散器からそのイベント振り分け器の情報が記載されているリストを入手し、そのリストの中からそのイベント発生源に近いイベント振り分け器を選択し、選択したイベント振り分け器にそのイベントを送信する第２のイベント処理と
を含むイベント処理システム、が提供される。
【００１２】
また、この発明によれば、複数のイベント処理サーバは、転送されてきたイベントを設定されたイベント処理ルールに従って処理し、処理結果を複数のアプリケーションへ通知し、
複数のイベント振り分け器は、設定されたイベント転送ルールに従ってイベント発生源から受信したイベントをそのイベント処理サーバへ転送し、
イベント処理分散器は、その複数のイベント処理サーバとその複数のイベント振り分け器を管理し、そのアプリケーションから受信したイベント処理ルールをそのイベント処理サーバに設定し、
そのアプリケーションが、そのイベント処理分散器からそのイベント処理サーバの情報が記載されているリストを入手し、そのリストの中からそのアプリケーションに近いイベント処理サーバを選択し、選択したイベント処理サーバの情報を付加したイベント処理要求をそのイベント処理分散器に対して行うイベント処理および、
そのイベント発生源は、そのイベント処理分散器からそのイベント振り分け器の情報が記載されているリストを入手し、そのリストの中からそのアプリケーションに近いイベント振り分け器を選択し、選択したイベント振り分け器にそのイベントを送信するイベント処理を行うイベント処理方法。
【発明の効果】
【００１３】
本発明によれば、インターネットを介したイベント処理の処理時間を短縮する方法を提供することにより、イベント転送遅延を短くすることができる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明の実施の形態について、図面を用いて説明する。尚、すべての図面において、同様な構成要素には同様の符号を付し、適宜説明を省略する。
【００１５】
（第１の実施形態）
第１の実施形態にかかるイベント処理システムは、転送されてきたイベント１１７ａ，ｂを設定されたイベント処理ルール１１３に従って処理し、処理結果を複数のアプリケーション１０７へイベント処理結果１１８を通知する複数のイベント処理サーバ１０５ａ〜ｄと、設定されたイベント転送ルールに従ってイベント発生源１０６ａ，ｂから受信したイベント１１６ａ，ｂをイベント処理サーバ１０５ａ〜ｄへ転送する複数のイベント振り分け器１０４ａ，ｂと、イベント処理サーバ１０５ａ〜ｄとイベント振り分け器１０４ａ，ｂを管理しアプリケーション１０７から受信したイベント処理ルール１１３をイベント処理サーバ１０５ａ〜ｄに設定するイベント処理分散器１０３とを有する。
アプリケーション１０７は、イベント処理分散器１０３からイベント処理サーバ１０５ａ〜ｄの情報が記載されているイベント処理サーバリスト１１１を入手し、イベント処理サーバリスト１１１の中からアプリケーション１０７に近いイベント処理サーバ１０５ｄを選択し、選択したイベント処理サーバ１０５ｄの情報を付加したイベント処理ルール１１２の要求を前記イベント処理分散器１０３に対して行う第１のイベント処理と、イベント発生源１０６ａ，ｂが、イベント処理分散器１０３からイベント振り分け器１０４ａ，ｂの情報が記載されているイベント振り分け器リスト１１５ａ，ｂを入手し、イベント振り分け器リスト１１５ａ，ｂの中からイベント発生源１０６ａ，ｂに近いイベント振り分け器１０４ａ，ｂを選択し、選択したイベント振り分け器１０４ａ，ｂにイベント１１６ａ，ｂを送信する第２のイベント処理と、を含む。
【００１６】
図１において、ネットワーク１０１の複数の箇所にデータセンター１０２ａ，ｂが設置されており、そのデータセンター１０２ａ，ｂには、複数のイベント処理サーバ１０５ａ〜ｄがネットワーク１０１に接続されてもうけられている。またイベント処理分散器１０３および複数のイベント振り分け器１０４ａ，ｂは、ネットワーク１０１に接続されたいずれかの場所に設置されている。尚、イベント処理分散器１０３、複数のイベント振り分け器１０４ａ，ｂは、いずれかのデータセンター１０２ａ，ｂの中に設置されていても良い。
【００１７】
次に、図１を参照しての第１の実施例の動作の説明を行う。イベント処理を要求するアプリケーション１０７は、イベント処理を要求する前にイベント処理分散器１０３からアプリケーション１０７に渡されるイベント処理サーバリスト１１１を入手する。
【００１８】
ここで、イベント処理サーバ１０５ａ〜ｄのリスト２０１の例を図２に示す。イベント処理サーバ１０５ａ〜ｄのリスト２０１にはネットワーク１０１上にあるデータセンター１０２ａ〜ｂとそれぞれのデータセンター１０２ａ〜ｂ上にあるイベント処理サーバ１０５ａ〜ｄの名前もしくは識別子、それぞれのイベント処理サーバ１０５ａ〜ｄのアドレス（ＩＰアドレス、ＵＲＬ等）２０２ａ〜ｄが記述されている。またデータセンター１０２ａ，ｂ内にあるイベント処理サーバ１０５ａ〜ｄ以外のネットワーク機器(ルータ等)の情報を記載してもよい。
【００１９】
イベント処理サーバのリスト２０１を入手したアプリケーション１０７は、イベント処理サーバリスト２０１に記載されているイベント処理サーバ１０５ａ〜ｄとアプリケーション１０７との間のネットワーク１０１上の距離を測定する。この測定方法は、アプリケーション１０７が各イベント処理サーバ１０５a〜dのアドレス２０２ａ、ｂへPing（通信時間を測定し距離を得る。）を送信し、その応答時間を計算する方法などが在る（図示せず。）。この測定方法は、イベント処理サーバリスト２０１に載っている全てのイベント処理サーバ１０５ａ〜ｄに対して行っても良いし、各データセンター１０２ａ，ｂから一つ代表のイベント処理サーバ１０５ａ〜ｄ（例えば１０５ａ、ｃ）を選択し、その選択したデータセンター１０２ａ，ｃに対してのみ行ってもよい。また、該リストに各データセンター１０２ａ，ｂ内のイベント処理サーバ１０５ａ〜ｄ以外のネットワーク機器の情報が記載されている場合、それに対して、計測を行っても良い。
【００２０】
測定を完了したアプリケーション１０７がアプリケーション１０７から最短であると判断したイベント処理サーバ(例の場合１０５ｃまたは１０５ｄ)の情報とイベント処理ルール１１２を受信したイベント処理分散器１０３は、受信したイベント処理ルール１１２を設定するイベント処理サーバ１０５ｄを選択し、そのイベント処理サーバ１０５dにイベント処理ルール１１３を設定する。ここでイベント処理ルール１１３が設定されるイベント処理サーバ１０５ｄは、アプリケーション１０７から指定されたイベント処理サーバでもよいし、何らかの理由(負荷分散を行うためには他のイベント処理サーバに設定した方がよい、他のイベント処理サーバに同じイベントを扱う他のイベント処理ルールがすでに設定されており、そのイベント処理サーバに該イベント処理ルール１１３を設定した方が効率がよいなど）で指定されたイベント処理サーバより望ましいイベント処理サーバがある場合、同じデータセンター内にある他のイベント処理サーバでもよい。また、各データセンター１０２ａ，ｂ内のイベント処理サーバ１０５ａ〜ｄ以外のネットワーク機器に対して計測を行った場合、アプリケーション１０７は最短であると判断したデータセンター１０２ｂの情報を通知し、実際にイベント処理ルール１１３を設定するイベント処理サーバ１０５ｄの選択はイベント処理分散器１０３に任せてもよい。
【００２１】
同時にイベント処理分散器１０３は、そのイベント処理ルールで扱われるイベントがそのイベント処理ルールを設定されたイベント処理サーバ１０５ｄに転送されるように、イベント振り分け器に設定するイベント振り分けルール１１４ａ，ｂを設定する。
【００２２】
次に、イベントを発生させるイベント発生源１０６ａ，ｂはイベントを送出する前にイベント処理分散器１０３からイベント振り分け器１０４ａ，ｂのリスト１１５ａ，ｂを入手する。イベント振り分け器リスト１１５ａ，ｂにはネットワーク１０１内にあるイベント振り分け器１０４ａ，ｂの名前もしくは識別子とそれぞれのイベント振り分け器１０４ａ，ｂのアドレスが記述される（不図示）。
【００２３】
イベント振り分け器１０４ａ，ｂのリスト１１５ａ，ｂを入手したイベント発生源１０６ａ，ｂは、イベント振り分け器のリスト１１５ａ，ｂに記載されているイベント振り分け器１０４ａ，ｂとイベント発生源１０６ａ，ｂとの間のネットワーク１０１上の距離を測定する。この測定方法は、イベント発生源１０６ａ，ｂが各イベント振り分け器１０４ａ，ｂのアドレスへpingを送信し、その応答時間を計測する方法などがある。
【００２４】
測定を完了したイベント発生源１０６ａ，ｂはイベント発生源１０６ａ，ｂから最短であると判断したイベント振り分け器(１０６ａの場合１０４ａ、１０６ｂの場合１０４b)に向けてイベント１１６ａ，ｂを送信する。該イベント１１６ａ，ｂを受信したイベント振り分け器１０４ａ，ｂはイベント振り分けルール１１４ａ，ｂに基づいてイベント１１７ａ，ｂを処理ルール１１３が設定されているイベント処理サーバ１０５ｄに転送する。
該転送されたイベント１１７ａ，ｂを受信したイベント処理サーバ１０５ｄはイベント処理サーバ１０５ｄに設定されているイベント処理ルール１１３に基づき該イベント１１７ａ，ｂを処理し、イベント処理結果１１８を要求元のアプリケーション１０７へ通知する。
【００２５】
上記動作例ではイベント処理を要求するアプリケーション１０７が処理を要求するたびにアプリケーション１０７とイベント処理サーバ１０５ａ〜ｄとの間のネットワーク上の距離を測定することになるが、一度測定したらその測定情報をキャッシュしておき、２回目以降のイベント処理要求の時は計測を省略してもよい。同様に上記動作例ではイベントを発生するイベント発生源１０６ａ，ｂは、イベントを発生するたびにイベント発生源１０６ａ，ｂとイベント振り分け器１０４ａ，ｂとの間のネットワーク１０１上の距離を測定することになるが、一度測定したらその測定情報をキャッシュしておき、２回目以降のイベント発生の時は計測を省略してもよい。
【００２６】
また、上記動作例ではイベント処理を要求するアプリケーション１０７やイベントを発生するイベント発生源１０６ａ，ｂは、実際にイベント発生源１０６ａ，ｂとイベント処理サーバ１０５ａ〜ｄやイベント振り分け器１０４ａ，ｂの間のネットワーク１０１上の距離を測定しているが、実際に測定は行わず入手したイベント処理サーバのリスト１１１やイベント振り分け器リスト１１５ａ，ｂに記載されているアドレスのネットワークアドレス部を見て、イベント発生源１０６ａ，ｂと近いネットワークアドレスのイベント処理サーバ１０５ａ〜ｄやイベント振り分け器１０４ａ，ｂを選んでもよい。
【００２７】
本実施の形態によれば、イベントを送出するイベント発生源１０６ａ，ｂは、イベント送出前にイベント処理分散器１０３からイベント振り分け器１０４ａ，ｂのリスト１１５ａ，ｂを受け取り、そのリストを基にイベント発生源１０６ａ，ｂから近いイベント振り分け器１０４ａまたは１０４ｂを選択し、選択したイベント振り分け器宛にイベント１１６ａまたは１１６ｂを送信することにより、イベント転送遅延を短くすることができる。
【００２８】
また、複数のイベント処理サーバ１０５ａ〜ｄを複数のデータセンター１０２ａ，ｂに配置し、イベント処理を要求するアプリケーション１０７が、イベント処理要求前にイベント処理分散器１０３からイベント処理サーバリスト１１１を受け取り、そのリストを基にアプリケーション１０７に近いイベント処理サーバを選択し、イベント処理分散器１０３に、選択したイベント処理サーバ１０５ａ〜ｄを指定してイベント処理ルール１１２を要求する。イベント処理分散器１０３は、指定されたイベント処理サーバを考慮しながらイベント処理サーバ１０５ｄを選択し、イベント処理ルール１１３を設定することにより、そのアプリケーション１０７に近いイベント処理サーバ１０５ｄにそのアプリケーション１０７のイベント処理ルールを配置することができ、イベント処理結果の通知の遅延を短くすることができる。
【００２９】
（第２の実施形態）
図３に第２の実施例を示す。
第２の実施形態では各イベント振り分け器３０４ａ，ｂと各データセンター３０２ａ，ｂの間に高速専用回線３０８ａａ〜ｂｂを設置し、各イベント振り分け器３０４ａ，ｂからイベント処理サーバ３０５ａ〜ｄへのイベント振り分け器からイベント処理サーバへ転送されるイベント３１７ａ，ｂは高速専用回線３０８ａａ〜ｂｂを使用して行われる。これによりイベント振り分け器３０４ａ，ｂとデータセンター３０２ａ，ｂが地理的に離れた場所にあっても、イベント振り分け器３０４ａ，ｂ-イベント処理サーバ３０５ａ〜ｄ間で高速なイベント転送が可能になる。
【００３０】
（第３の実施形態）
図４に第３の実施形態を示す。
第３の実施形態ではイベント振り分け器４０４ａ，ｂがイベント発生源４０６ａ，ｂの中に配置されている。これによりイベント発生源４０６ａ，ｂはネットワーク４０１上の最短の距離にあるイベント振り分け器を探す必要がなくなる。また、イベント振り分けの負荷を各イベント発生源４０６ａ，ｂに分散させることができる。  
【００３１】
以上、図面を参照して本発明の実施形態について述べたが、これらは本発明の例示であり、上記以外の様々な構成を採用することもできる。
以下、参考形態の例を付記する。
１．  転送されてきたイベントを設定されたイベント処理ルールに従って処理し、処理結果を複数のアプリケーションへ通知する複数のイベント処理サーバと、
設定されたイベント転送ルールに従ってイベント発生源から受信したイベントを前記イベント処理サーバへ転送する複数のイベント振り分け器と、
前記複数のイベント処理サーバと前記複数のイベント振り分け器を管理し前記アプリケーションから受信したイベント処理ルールを前記イベント処理サーバに設定するイベント処理分散器と、
を有し、
前記アプリケーションが、前記イベント処理分散器から前記イベント処理サーバの情報が記載されているリストを入手し、該リストの中から前記アプリケーションに近いイベント処理サーバを選択し、選択した前記イベント処理サーバの情報を付加したイベント処理要求を前記イベント処理分散器に対して行う第１のイベント処理と、
前記イベント発生源が、前記イベント処理分散器から前記イベント振り分け器の情報が記載されているリストを入手し、該リストの中から前記イベント発生源に近いイベント振り分け器を選択し、選択した前記イベント振り分け器に前記イベントを送信する第２のイベント処理と、
を含むイベント処理システム。
２．  １に記載のイベント処理システムにおいて、
前記複数のイベント処理サーバは、複数のデータセンター内に配置されているイベント処理システム。
３．  １または２に記載のイベント処理システムにおいて、
前記イベント発生源が該イベント発生源に近いイベント振り分け器を選択する際に、前記イベント発生源は、前記イベント振り分け器のリストに記載されている各イベント振り分け器への通信にかかる往復時間を計測し、往復時間の最も短いイベント振り分け器を選択するイベント処理システム。
４．  １または２に記載のイベント処理システムにおいて、
前記イベント発生源が該イベント発生源に近いイベント振り分け器を選択する際に、前記イベント発生源が前記イベント振り分け器のリストに記載されている各イベント振り分け器のアドレスのネットワークアドレス部を見て該イベント発生源に近いネットワークアドレスを持つイベント振り分け器を選択するイベント処理システム。
５．  １乃至４いずれかに記載のイベント処理システムにおいて、
前記イベント発生源が、イベント送信を行う際に、前記イベント振り分け器の入手と該イベント発生源に近いイベント振り分け器の選択は行わずに、以前に選択したイベント振り分け器の情報をキャッシュしておき、該キャッシュしたイベント振り分け器にイベントを送信するイベント処理システム。
６．  ２乃至５いずれかに記載のイベント処理システムにおいて、
前記イベント振り分け器と前記データセンター間に高速回線を有し、前記イベント振り分け器から前記イベント処理サーバへのイベント転送は前記高速回線を使用して行われるイベント処理システム。
７．  １乃至６いずれかに記載のイベント処理システムにおいて、
前記イベント振り分け器の機能が前記イベント発生源の中に配置されているイベント処理システム。
８．  ２乃至７いずれかに記載のイベント処理システムにおいて、
前記アプリケーションから前記イベント処理要求を受信した前記イベント処理分散器は、前記イベント処理要求が付加され選択されたイベント処理サーバまたは前記選択されたイベント処理サーバと同じ前記データセンターに配置されている他のイベント処理サーバに前記イベント処理ルールを設定するイベント処理システム。
９．  １乃至８いずれかに記載のイベント処理システムにおいて、
前記アプリケーションが、該アプリケーションに近いイベント処理サーバを選択する際に、前記アプリケーションは、前記イベント処理サーバのリストに記載されている各イベント処理サーバへの通信にかかる往復時間を計測し、該往復時間の最も短いイベント処理サーバを選択するイベント処理システム。
１０．  ２乃至８いずれかに記載のイベント処理システムにおいて、
前記アプリケーションが該アプリケーションに近いイベント処理サーバを選択する際に、前記アプリケーションは、前記イベント処理サーバのリストに記載されている前記各データセンターから一つずつ該データセンターに配置されているイベント処理サーバを抽出し、該抽出したイベント処理サーバへの通信にかかる往復時間を計測し、往復時間の最も短いイベント処理サーバを選択するイベント処理システム。
１１．  １乃至８いずれかに記載のイベント処理システムにおいて、
前記アプリケーションが該アプリケーションに近いイベント処理サーバを選択する際に、前記アプリケーションは、前記イベント処理サーバのリストに記載されている各イベント処理サーバのアドレスのネットワークアドレス部を見て該アプリケーションに近いネットワークアドレスを持つイベント処理サーバを選択するイベント処理システム。
１２．  １乃至８いずれかに記載のイベント処理システムにおいて、
前記アプリケーションが、イベント処理要求を行う際に、前記イベント処理サーバのリストの入手と、前記アプリケーションに近いイベント処理サーバの選択は行わずに、以前に選択したイベント処理サーバの情報をキャッシュしておいたイベントサーバのリストと、キャッシュしておいたイベント処理サーバの情報を付加して前記イベント処理分散器にイベント処理要求を行うイベント処理システム。
１３．  複数のイベント処理サーバは、転送されてきたイベントを設定されたイベント処理ルールに従って処理し、処理結果を複数のアプリケーションへ通知し、
複数のイベント振り分け器は、設定されたイベント転送ルールに従ってイベント発生源から受信したイベントを前記イベント処理サーバへ転送し、
イベント処理分散器は、前記複数のイベント処理サーバと前記複数のイベント振り分け器を管理し、前記アプリケーションから受信したイベント処理ルールを前記イベント処理サーバに設定し、
前記アプリケーションが、前記イベント処理分散器から前記イベント処理サーバの情報が記載されているリストを入手し、該リストの中から前記アプリケーションに近いイベント処理サーバを選択し、選択したイベント処理サーバの情報を付加したイベント処理要求を前記イベント処理分散器に対して行うイベント処理および、
前記イベント発生源は、前記イベント処理分散器から前記イベント振り分け器の情報が記載されているリストを入手し、該リストの中から前記アプリケーションに近いイベント振り分け器を選択し、選択したイベント振り分け器に前記イベントを送信するイベント処理を行うイベント処理方法。
１４．  １３に記載のイベント処理方法において、
前記複数のイベント処理サーバが、複数のデータセンター内に配置され、
前記アプリケーションからイベント処理要求を受信した前記イベント処理分散器が、前記選択されたイベント処理サーバと同じ前記データセンターに配置されている他のイベント処理サーバに前記イベント処理ルールを設定するイベント処理方法。
１５．  １３または１４に記載のイベント処理方法において、
前記イベント発生源が該イベント発生源に近いイベント振り分け器を選択する際に、前記イベント発生源は、前記イベント振り分け器のリストに記載されている各イベント振り分け器への通信にかかる往復時間を計測し、往復時間の最も短いイベント振り分け器を選択するイベント処理方法。
１６．  １３または１４に記載のイベント処理方法において、
前記イベント発生源が該イベント発生源に近いイベント振り分け器を選択する際に、前記イベント発生源が前記イベント振り分け器のリストに記載されている各イベント振り分け器のアドレスのネットワークアドレス部を見て該イベント発生源に近いネットワークアドレスを持つイベント振り分け器を選択するイベント処理方法。
１７．  １３または１４に記載のイベント処理方法において、
前記イベント発生源が、イベント送信を行う際に、前記イベント振り分け器の入手と該イベント発生源に近いイベント振り分け器の選択は行わずに、以前に選択したイベント振り分け器の情報をキャッシュしておき、該キャッシュしたイベント振り分け器にイベントを送信するイベント処理方法。
１８．  １３または１７に記載のイベント処理方法において、
前記アプリケーションからイベント処理要求を受信した前記イベント処理分散器が、該イベント処理要求を付加し、選択された前記イベント処理サーバに前記イベント処理ルールを設定するイベント処理方法。
１９．  １３乃至１８いずれかに記載のイベント処理方法において、
前記アプリケーションが、該アプリケーションに近いイベント処理サーバを選択する際に、前記アプリケーションは、前記イベント処理サーバのリストに記載されている各イベント処理サーバへの通信にかかる往復時間を計測し、該往復時間の最も短いイベント処理サーバを選択するイベント処理方法。
２０．  １４乃至１８のいずれかに記載のイベント処理方法において、
前記アプリケーションが該アプリケーションに近いイベント処理サーバを選択する際に、前記アプリケーションは、前記イベント処理サーバのリストに記載されている前記各データセンターから一つずつ該データセンターに配置されているイベント処理サーバを抽出し、該抽出したイベント処理サーバへの通信にかかる往復時間を計測し、往復時間の最も短いイベント処理サーバを選択するイベント処理方法。
２１．  １３乃至１８いずれかに記載のイベント処理方法において、
前記アプリケーションが該アプリケーションに近いイベント処理サーバを選択する際に、前記アプリケーションは、前記イベント処理サーバのリストに記載されている各イベント処理サーバのアドレスのネットワークアドレス部を見て該アプリケーションに近いネットワークアドレスを持つイベント処理サーバを選択するイベント処理方法。
２２．  １３乃至１８いずれかに記載のイベント処理方法において、
前記アプリケーションが、イベント処理要求を行う際に、前記イベント処理サーバのリストの入手と、前記アプリケーションに近いイベント処理サーバの選択は行わずに、以前に選択したイベント処理サーバの情報をキャッシュしておいたイベントサーバのリストと、キャッシュしておいたイベント処理サーバの情報を付加して前記イベント処理分散器にイベント処理要求を行うイベント処理方法。
【図面の簡単な説明】
【００３２】
【図１】本発明の第１の実施形態に係るイベント処理・配信システムの構成を示す図である。
【図２】本発明の第１の実施形態に係るイベント処理サーバ１０５ａ〜ｄのリストの例を示す図である。
【図３】本発明の第２の実施形態に係るイベント処理・配信システムの構成を示す図である。
【図４】本発明の第３の実施形態に係るイベント処理・配信システムの構成を示す図である。
【図５】従来のサーバ選択装置の機能ブロックを示す図である。
【図６】従来の負荷分散システム構成図を示す図である。
【図７】従来の負荷分散振り分けシステムの構成を示す図である。
【符号の説明】
【００３３】
１０１，３０１  ４０１    ネットワーク
１０２a,b、３０２a,b、４０２a,b    データセンター
１０３，３０３，４０３    イベント処理分散器
１０４a,b、３０４a,b、４０４ａ,ｂ    イベント振り分け器
１０５a〜ｄ、３０５ａ〜ｄ、４０５ａ〜ｄ    イベント処理サーバ
１０６ａ,ｂ、３０６ａ,ｂ、４０６ａ,ｂ    イベント発生源
１０７，３０７，４０７    アプリケーション
１１１，３１１，４１１    イベント処理分散器からアプリケーションに渡されるイベント処理サーバリスト
１１２，３１２，４１２    イベント処理ルール
１１３、３１３、４１３    イベント処理ルール
１１４a,b、３１４a,b、４１４a,b    イベント振り分けルール
１１５a,b、３１５a,b    イベント振り分け器リスト
１１６a,b、３１６a,b、    イベント発生源からイベント振り分け器に送信されるイベント
１１７a,b、３１７a,b、４１７a,b    イベント振り分け器からイベント処理サーバへ転送されるイベント
１１８、３１８、４１８    イベント処理結果
２０１    イベント処理分散器からアプリケーションに渡されるイベント処理サーバリスト
２０２a〜d    イベント処理サーバのアドレス
【図１】
0005470720.tif 000002
【図２】
0005470720.tif 000003
【図３】
0005470720.tif 000004
【図４】
0005470720.tif 000005
【図５】
0005470720.tif 000006
【図６】
0005470720.tif 000007
【図７】
0005470720.tif 000008