(57)【要約】  ランデブーノードの負荷を軽減してシステム上のボトルネックを解消できるイベント配信システムを提供することを目的とする。本発明に係るイベント配信システムは、パブリッシャーノード、サブスクライバーノード、ランデブーノード及びブローカーノードを備え、ランデブーノードは、パブリッシャーノードが発信したイベント情報のトラヒック量を監視するトラヒック監視手段と、トラヒック量が所定値を超えたときにイベント情報の中から負荷分散の実行対象となる特定イベント情報を決定する特定イベント決定手段と、を有し、ブローカーノードは、自ノードが、特定イベント情報の配信ルートの集約点ノード又は分岐点ノードであるかを検出するルート検出手段と、集約点ノード及び分岐点ノードを経由し、ランデブーノードを回避する特定イベント情報の新たな配信ルートを構築するルート構築手段と、を有する。
2010092751.tif 000002
【特許請求の範囲】
【請求項１】
発生したイベントの内容を含むイベント情報及び前記イベントを広告する広告情報を発信するパブリッシャーノードと、
前記イベントのうち所望のイベントのイベント情報を受信するための要求情報を発信するサブスクライバーノードと、
前記イベントに関する情報管理を行うランデブーノードと、
前記パブリッシャーノードが発信した前記イベント情報及び前記広告情報、並びに前記サブスクライバーノードが発信した前記要求情報、を転送するブローカーノードと、
を備え、
前記ランデブーノードは、
前記パブリッシャーノードが発信した前記イベント情報のトラヒック量を監視するトラヒック監視手段と、
前記トラヒック監視手段が監視するトラヒック量が所定値を超えたときに、前記イベント情報の中から負荷分散の実行対象となる特定イベント情報を決定する特定イベント決定手段と、を有し、
前記ブローカーノードは、
自ノードが、前記特定イベント情報の現在の配信ルートを変更するための集約点ノード又は分岐点ノードであるかを検出するルート検出手段と、
前記ルート検出手段が検出した前記集約点ノード及び前記分岐点ノードを経由し、前記ランデブーノードを回避する前記特定イベント情報の新たな配信ルートを構築するルート構築手段と、
を有するイベント配信システム。
【請求項２】
前記イベント情報が複数の階層からなる識別要素で構成されており、
前記ランデブーノードの前記特定イベント決定手段は、
前記識別要素の階層のうち上位から少なくとも２つの階層の識別要素で前記イベント情報の種別を識別する上位イベント識別手段と、
前記上位イベント識別手段が識別した前記イベント情報の種別毎にトラヒック量を計測するトラヒック計測手段と、
前記トラヒック計測手段が計測した前記イベント情報の種別毎のトラヒック量の中で大きいほうから少なくとも１つを前記特定イベント情報として決定するイベント検出手段と、を含むことを特徴とする請求項１に記載のイベント配信システム。
【請求項３】
前記イベント情報が複数の階層からなる識別要素で構成されており、
前記ランデブーノードの前記特定イベント決定手段は、
前記識別要素の階層のうち最下位の階層の識別要素で前記イベント情報の種別を識別する下位イベント識別手段と、
前記下位イベント識別手段が識別した前記イベント情報の種別毎にトラヒック量を計測するトラヒック計測手段と、
前記トラヒック計測手段が計測した前記イベント情報の種別毎のトラヒック量の中で大きいほうから少なくとも１つを前記特定イベント情報として決定するイベント検出手段と、を含むことを特徴とする請求項１又は請求項２に記載のイベント配信システム。
【請求項４】
前記ランデブーノードは、
前記特定イベント決定手段が決定した前記特定イベント情報に関する前記広告情報を取得する情報取得手段と、
前記情報取得手段が取得した前記広告情報を含むイベント配信ルート変更メッセージを生成するメッセージ生成手段と、
前記メッセージ生成手段が生成した前記イベント配信ルート変更メッセージを前記サブスクライバーノード側にある前記ブローカーノードへ送信する下流側メッセージ送信手段を含むメッセージ送信手段と、をさらに有することを特徴とする請求項１乃至請求項３のいずれか１項に記載のイベント配信システム。
【請求項５】
前記ブローカーノードの前記ルート検出手段は、
前記ランデブーノードから前記イベント配信ルート変更メッセージを受信したときに、前記要求情報が保持される要求情報テーブルを走査する要求情報テーブル走査手段と、
前記要求情報テーブル走査手段が走査した前記要求情報テーブルに前記特定イベント情報に関する隣接転送先が複数登録されている場合に自ノードが前記分岐点ノードであると判定する分岐点判定手段と、
自ノードが前記分岐点ノードであると前記分岐点判定手段が判定したときに自ノードの識別子を分岐点ノード識別子として前記ランデブーノードへ通知する通知手段と、を含むことを特徴とする請求項４に記載のイベント配信システム。
【請求項６】
前記ランデブーノードのメッセージ送信手段は、
前記ブローカーノードから前記分岐点ノード識別子が通知されたときに、前記分岐点ノード識別子を前記メッセージ生成手段が生成した前記イベント配信ルート変更メッセージに付加して前記パブリッシャーノード側にある前記ブローカーノードへ送信する上流側メッセージ送信手段をさらに含むことを特徴とする請求項５に記載のイベント配信システム。
【請求項７】
前記ブローカーノードの前記ルート検出手段は、
前記ランデブーノードから前記分岐点ノード識別子が付加された前記イベント配信ルート変更メッセージを受信したときに、前記広告情報が保持される広告情報テーブルを走査する広告情報テーブル走査手段と、
前記広告情報テーブル走査手段が走査した前記広告情報テーブルに前記特定イベント情報に関する隣接転送先が複数登録されている場合に自ノードが前記集約点ノードであると判定する集約点判定手段と、をさらに含むことを特徴とする請求項６に記載のイベント配信システム。
【請求項８】
前記ブローカーノードの前記ルート構築手段は、
自ノードが前記集約点ノードであると前記集約点判定手段が判定したときに、前記広告情報テーブルに登録された隣接転送先を前記分岐点ノード識別子に書き換えて、前記新たな配信ルートを構築することを特徴とする請求項７に記載のイベント配信システム。
【請求項９】
パブリッシャーノードで発生したイベントの内容を含むイベント情報をサブスクライバーノードへ配信するイベント配信システムに含まれ、
自ノードを通過する前記イベント情報のトラヒック量を監視するトラヒック監視手段と、
前記トラヒック監視手段が監視するトラヒック量が所定値を超えたときに、前記イベント情報の中から負荷分散の実行対象となる特定イベント情報を決定する特定イベント決定手段と、を有するランデブーノード。
【請求項１０】
前記イベント情報が複数の階層からなる識別要素で構成されており、
前記特定イベント決定手段は、
前記識別要素の階層のうち上位から少なくとも２つの階層の識別要素で前記イベント情報の種別を識別する上位イベント識別手段と、
前記上位イベント識別手段が識別した前記イベント情報の種別毎にトラヒック量を計測するトラヒック計測手段と、
前記トラヒック計測手段が計測した前記イベント情報の種別毎のトラヒック量の中で大きいほうから少なくとも１つを前記特定イベント情報として決定するイベント検出手段と、を含むことを特徴とする請求項９に記載のランデブーノード。
【請求項１１】
前記イベント情報が複数の階層からなる識別要素で構成されており、
前記特定イベント決定手段は、
前記識別要素の階層のうち最下位の階層の識別要素で前記イベント情報の種別を識別する下位イベント識別手段と、
前記下位イベント識別手段が識別した前記イベント情報の種別毎にトラヒック量を計測するトラヒック計測手段と、
前記トラヒック計測手段が計測した前記イベント情報の種別毎のトラヒック量の中で大きいほうから少なくとも１つを前記特定イベント情報として決定するイベント検出手段と、を含むことを特徴とする請求項９又は請求項１０に記載のランデブーノード。
【請求項１２】
前記特定イベント決定手段が決定した前記特定イベント情報に関する広告情報を取得する情報取得手段と、
前記情報取得手段が取得した前記広告情報を含むイベント配信ルート変更メッセージを生成するメッセージ生成手段と、
前記メッセージ生成手段で生成した前記イベント配信ルート変更メッセージを前記イベント配信システムに含まれるブローカーノードへ送信するメッセージ送信手段と、をさらに有することを特徴とする請求項９乃至請求項１１のいずれか１項に記載のランデブーノード。
【請求項１３】
前記メッセージ送信手段は、
前記メッセージ生成手段が生成した前記イベント配信ルート変更メッセージを前記サブスクライバーノード側にある前記ブローカーノードへ送信する下流側メッセージ送信手段を含むことを特徴とする請求項１２に記載のランデブーノード。
【請求項１４】
前記メッセージ送信手段は、
前記イベント配信ルート変更メッセージの送信先の前記ブローカーノードのうち少なくとも１つから分岐点ノード識別子が通知されたときに、前記分岐点ノード識別子を前記イベント配信ルート変更メッセージに付加して前記パブリッシャーノード側にある前記ブローカーノードへ送信する上流側メッセージ送信手段を含むことを特徴とする請求項１３に記載のランデブーノード。
【請求項１５】
パブリッシャーノードで発生したイベントの内容を含むイベント情報をサブスクライバーノードへ配信するイベント配信システムに含まれ、
自ノードが、前記イベント情報の中から負荷分散の実行対象となる特定イベント情報の現在の配信ルートを変更するための集約点ノード又は分岐点ノードであるかを検出するルート検出手段と、
前記ルート検出手段が検出した前記集約点ノード及び前記分岐点ノードを経由し、前記イベント配信システムに含まれるランデブーノードを回避する前記特定イベント情報の新たな配信ルートを構築するルート構築手段と、を有するブローカーノード。
【請求項１６】
前記ルート検出手段は、
前記ランデブーノードからイベント配信ルート変更メッセージを受信したときに、前記サブスクライバーノードが発信した前記イベント情報を要求する要求情報が保持される要求情報テーブルを走査する要求情報テーブル走査手段と、
前記要求情報テーブル走査手段が走査した前記要求情報テーブルに前記特定イベント情報に関する隣接転送先が複数登録されている場合に自ノードが前記分岐点ノードであると判定する分岐点判定手段と、
自ノードが前記分岐点ノードであると前記分岐点判定手段が判定したときに自ノードの識別子を分岐点ノード識別子として前記ランデブーノードへ通知する通知手段と、を含むことを特徴とする請求項１５に記載のブローカーノード。
【請求項１７】
前記ルート検出手段は、
前記ランデブーノードから前記分岐点ノード識別子が付加された前記イベント配信ルート変更メッセージを受信したときに、前記パブリッシャーノードが発信した前記イベントを広告する広告情報が保持される広告情報テーブルを走査する広告情報テーブル走査手段と、
前記広告情報テーブル走査手段が走査した前記広告情報テーブルに前記特定イベント情報に関する隣接転送先が複数登録されている場合に自ノードが前記集約点ノードであると判定する集約点判定手段と、を含むことを特徴とする請求項１６に記載のブローカーノード。
【請求項１８】
前記ルート構築手段は、
自ノードが前記集約点ノードであると前記集約点判定手段が判定したときに、前記広告情報テーブルに登録された隣接転送先を前記分岐点ノード識別子に書き換えて、前記新たな配信ルートを構築することを特徴とする請求項１７に記載のブローカーノード。
【請求項１９】
発生したイベントに関する情報管理を行うランデブーノードにおける、発生したイベントの内容を含むイベント情報及び前記イベントを広告する広告情報を発信するパブリッシャーノードが発信した前記イベント情報のトラヒック量を監視し、
前記トラヒック量の監視する処理で監視されるトラヒック量が所定値を超えたときに、前記イベント情報の中から負荷分散の実行対象となる特定イベント情報を決定する特定イベントを決定し、
前記特定イベント決定する処理で決定された前記特定イベント情報の現在の配信ルートを変更するための集約点ノードと分岐点ノードを、前記パブリッシャーノードが発信した前記イベント情報及び前記広告情報、並びに所望の前記イベント情報を受信するための要求情報を発信するサブスクライバーノードが発信した前記要求情報、を転送するブローカーノードの中から検出するルート検出処理をし、
前記ルート検出処理により検出された前記集約点ノードと前記分岐点ノードを経由し、前記ランデブーノードを回避する前記特定イベント情報の新たな配信ルートを構築するルート構築処理をする、ことを特徴とするイベント配信システムの負荷分散方法。
【請求項２０】
前記イベント情報が複数の階層からなる識別要素で構成されており、
前記特定イベント決定する処理では、
前記識別要素の階層のうち上位から少なくとも２つの階層の識別要素で前記イベント情報の種別を識別する上位イベントの識別処理をし、
前記上位イベントの識別処理で識別された前記イベント情報の種別毎にトラヒック量を計測し、
前記トラフィック量の計測処理で計測された前記イベント情報の種別毎のトラヒック量の中で大きいほうから少なくとも１つを前記特定イベント情報として決定するイベント検出処理を行うことを特徴とする請求項１９に記載のイベント配信システムの負荷分散方法。
【請求項２１】
前記イベント情報が複数の階層からなる識別要素で構成されており、
前記特定イベント決定する処理では、
前記識別要素の階層のうち最下位の階層の識別要素で前記イベント情報の種別を識別する下位イベントの識別処理をし、
前記イベントの識別処理で識別された前記イベント情報の種別毎にトラヒック量を計測し、
前記トラヒック量の計測処理で計測された前記イベント情報の種別毎のトラヒック量の中で大きいほうから少なくとも１つを前記特定イベント情報として決定するイベント検出処理を行うことを特徴とする請求項１９又は請求項２０に記載のイベント配信システムの負荷分散方法。
【請求項２２】
前記特定イベント決定する処理の後に、
前記特定イベント決定する処理で決定された前記特定イベント情報に関する前記広告情報を取得する情報取得処理をし、
前記情報取得処理で取得された前記広告情報を含むイベント配信ルート変更メッセージを生成し、
イベント配信ルート変更メッセージを生成する処理で生成された前記イベント配信ルート変更メッセージを前記ランデブーノードの前記サブスクライバーノード側にある前記ブローカーノードへ送信する下流側メッセージ送信処理を行うことを特徴とする請求項２１に記載のイベント配信システムの負荷分散方法。
【請求項２３】
前記下流側メッセージ送信処理の後に、
前記ランデブーノードの前記サブスクライバーノード側にある前記ブローカーノードが前記イベント配信ルート変更メッセージを受信したときに、前記要求情報が保持される前記ブローカーノードの要求情報テーブルを走査し、前記要求情報テーブルに前記特定イベント情報に関する隣接転送先が複数登録されている前記ブローカーノードを前記分岐点ノードと判定し、自ノードの識別子を分岐点ノード識別子として前記ランデブーノードへ通知する、前記ルート検出処理における分岐点判定処理を行うことを特徴とする請求項２２に記載のイベント配信システムの負荷分散方法。
【請求項２４】
前記分岐点判定処理の後に、
前記分岐点判定処理で前記分岐点ノードと判定された前記ブローカーノードの識別子を分岐点ノード識別子として、前記イベント配信ルート変更メッセージに付加して前記ランデブーノードの前記パブリッシャーノード側にある前記ブローカーノードへ送信する、前記メッセージ送信処理における上流側メッセージ送信処理を行うことを特徴とする請求項２３に記載のイベント配信システムの負荷分散方法。
【請求項２５】
前記上流側メッセージ送信処理の後に、
前記ランデブーノードの前記パブリッシャーノード側にある前記ブローカーノードが前記分岐点ノード識別子が付加された前記イベント配信ルート変更メッセージを受信したときに、前記広告情報が保持される前記ブローカーノードの広告情報テーブルを走査し、前記広告情報テーブルに前記特定イベント情報に関する隣接転送先が複数登録されている前記ブローカーノードを前記集約点ノードと判定する、前記ルート検出処理における集約点判定処理を行うことを特徴とする請求項２４に記載のイベント配信システムの負荷分散方法。
【請求項２６】
前記ルート構築処理では、前記ルート検出ステップで検出された前記集約点ノードとなる前記ブローカーノードの前記広告情報テーブルに登録された隣接転送先を前記分岐点ノード識別子に書き換えて、前記新たな配信ルートを構築することを特徴とする請求項２５に記載のイベント配信システムの負荷分散方法。
【請求項２７】
パブリッシャーノードで発生したイベントの内容を含むイベント情報をサブスクライバーノードへ配信するイベント配信システムに含まれるランデブーノードが自ノードを通過する前記イベント情報のトラヒック量を監視し、
前記トラヒック監視する処理で監視されるトラヒック量が所定値を超えたときに、前記イベント情報の中から負荷分散の実行対象となる特定イベント情報を決定することを特徴とするランデブーノードの負荷分散方法。
【請求項２８】
前記イベント情報が複数の階層からなる識別要素で構成されており、
前記特定イベント情報を決定する処理では、
前記識別要素の階層のうち上位から少なくとも２つの階層の識別要素で前記イベント情報の種別を識別する上位イベント識別処理をし、
前記上位イベント識別処理により識別された前記イベント情報の種別毎にトラヒック量を計測するトラヒック計測処理をし、
前記トラヒック計測処理により計測された前記イベント情報の種別毎のトラヒック量の中で大きいほうから少なくとも１つを前記特定イベント情報として決定するイベント検出処理を行うことを特徴とする請求項２７に記載のランデブーノードの負荷分散方法。
【請求項２９】
前記イベント情報が複数の階層からなる識別要素で構成されており、
前記特定イベント情報を決定する処理では、
前記識別要素の階層のうち最下位の階層の識別要素で前記イベント情報の種別を識別する下位イベント識別処理をし、
前記下位イベント識別処理で識別された前記イベント情報の種別毎にトラヒック量を計測するトラヒック計測処理をし、
前記トラヒック計測処理で計測された前記イベント情報の種別毎のトラヒック量の中で大きいほうから少なくとも１つを前記特定イベント情報として決定するイベント検出処理を行うことを特徴とする請求項２７又は請求項２８に記載のランデブーノードの負荷分散方法。
【請求項３０】
前記特定イベント情報を決定する処理の後に、
前記特定イベント情報を決定する処理で決定された前記特定イベント情報に関する前記広告情報を取得する情報取得処理をし、
前記情報取得処理で取得された前記広告情報を含むイベント配信ルート変更メッセージを生成し、
イベント配信ルート変更メッセージを生成する処理で生成された前記イベント配信ルート変更メッセージを前記イベント配信システムに含まれるブローカーノードへ送信することを特徴とする請求項２７乃至請求項２９のいずれか１項に記載のランデブーノードの負荷分散方法。
【請求項３１】
前記イベント配信ルート変更メッセージを前記ブローカーノードへ送信する処理では、
生成された前記イベント配信ルート変更メッセージを前記サブスクライバーノード側にある前記ブローカーノードへ送信する下流側メッセージ送信処理を行うことを特徴とする請求項３０に記載のランデブーノードの負荷分散方法。
【請求項３２】
前記イベント配信ルート変更メッセージを前記ブローカーノードへ送信する処理では、
前記イベント配信ルート変更メッセージの送信先の前記ブローカーノードのうち少なくとも１つから分岐点ノード識別子が通知されたときに、前記分岐点ノード識別子を前記イベント配信ルート変更メッセージに付加して前記パブリッシャーノード側にある前記ブローカーノードへ送信する上流側メッセージ送信処理を行うことを特徴とする請求項３１に記載のランデブーノードの負荷分散方法。
【請求項３３】
パブリッシャーノードで発生したイベントの内容を含むイベント情報をサブスクライバーノードへ配信するイベント配信システムに含まれるブローカーノードが、パブリッシャーノードで発生したイベントの内容を含むイベント情報の中から負荷分散の実行対象となる特定イベント情報の現在の配信ルートを変更するための集約点ノード又は分岐点ノードであるかを検出するルート検出処理をし、
前記ルート検出処理で検出された前記集約点ノード及び前記分岐点ノードを経由し、前記パブリッシャーノードで発生した前記イベント情報を前記サブスクライバーノードへ配信するイベント配信システム内に含まれるランデブーノードを回避する前記特定イベント情報の新たな配信ルートを構築するルート構築処理を行うブローカーノードの配信ルート構築方法。
【請求項３４】
前記ルート検出処理では、
前記ランデブーノードからイベント配信ルート変更メッセージを受信したときに、前記サブスクライバーノードが発信した前記イベント情報を要求する要求情報が保持される要求情報テーブルを走査し、前記要求情報テーブルに前記特定イベント情報に関する隣接転送先が複数登録されている場合に自ノードを前記分岐点ノードと判定し、自ノードの識別子を分岐点ノード識別子として前記ランデブーノードへ通知する分岐点判定処理を行うことを特徴とする請求項３３に記載のブローカーノードの配信ルート構築方法。
【請求項３５】
前記ルート検出処理では、
前記ランデブーノードから前記分岐点ノード識別子が付加された前記イベント配信ルート変更メッセージを受信したときに、前記パブリッシャーノードが発信した前記イベントを広告する広告情報が保持される広告情報テーブルを走査し、前記広告情報テーブルに前記特定イベント情報に関する隣接転送先が複数登録されている場合に自ノードを前記集約点ノードと判定する集約点判定処理を行うことを特徴とする請求項３４に記載のブローカーノードの配信ルート構築方法。
【請求項３６】
前記ルート構築処理では、
自ノードが前記集約点ノードであると前記集約点判定処理で判定されたときに、前記広告情報テーブルに登録された隣接転送先を前記分岐点ノード識別子に書き換えて、前記新たな配信ルートを構築することを特徴とする請求項３５に記載のブローカーノードの配信ルート構築方法。
【請求項３７】
ランデブーノードのトラヒック監視手段が、自ノードを通過するパブリッシャーノードで発生したイベントの内容を含むイベント情報のトラヒック量を監視するトラヒック監視処理と、
前記ランデブーノードの特定イベント決定手段が、前記トラヒック監視手段が監視するトラヒック量が所定値を超えたときに、前記イベント情報の中から負荷分散の実行対象となる特定イベント情報を決定する特定イベント決定処理と、をコンピュータに実行させるための負荷分散プログラムが格納された記憶媒体。
【請求項３８】
前記イベント情報が複数の階層からなる識別要素で構成されており、
前記特定イベント決定処理では、
前記特定イベント決定手段に含まれる上位イベント識別手段が、前記識別要素の階層のうち上位から少なくとも２つの階層の識別要素で前記イベント情報の種別を識別する上位イベント識別処理と、
前記特定イベント決定手段に含まれるトラヒック計測手段が、前記上位イベント識別手段が識別した前記イベント情報の種別毎にトラヒック量を計測するトラヒック計測処理と、
前記特定イベント決定手段に含まれるイベント検出手段が、前記トラヒック計測手段が計測した前記イベント情報の種別毎のトラヒック量の中で大きいほうから少なくとも１つを前記特定イベント情報として決定するイベント検出処理と、をコンピュータに実行させることを特徴とする請求項３７に記載の負荷分散プログラムが格納された記憶媒体。
【請求項３９】
前記イベント情報が複数の階層からなる識別要素で構成されており、
前記特定イベント決定処理では、
前記特定イベント決定手段に含まれる下位イベント識別手段が、前記識別要素の階層のうち最下位の階層の識別要素で前記イベント情報の種別を識別する下位イベント識別処理と、
前記特定イベント決定手段に含まれるトラヒック計測手段が、前記下位イベント識別手段が識別した前記イベント情報の種別毎にトラヒック量を計測するトラヒック計測処理と、
前記特定イベント決定手段に含まれるイベント検出手段が、前記トラヒック計測手段が計測した前記イベント情報の種別毎のトラヒック量の中で大きいほうから少なくとも１つを前記特定イベント情報として決定するイベント検出処理と、をコンピュータに実行させることを特徴とする請求項３７又は請求項３８に記載の負荷分散プログラムが格納された記憶媒体。
【請求項４０】
前記特定イベント決定処理の後に、
前記ランデブーノードの情報取得手段が、前記特定イベント決定ステップで決定された前記特定イベント情報に関する広告情報を取得する情報取得処理と、
前記ランデブーノードのメッセージ生成手段が、前記情報取得手段が取得した前記広告情報を含むイベント配信ルート変更メッセージを生成するメッセージ生成処理と、
前記ランデブーノードのメッセージ送信手段が、前記メッセージ生成手段が生成した前記イベント配信ルート変更メッセージを前記イベント配信システムに含まれるブローカーノードへ送信するメッセージ送信処理と、をコンピュータに実行させることを特徴とする請求項３７乃至請求項３９のいずれか１項に記載の負荷分散プログラムが格納された記憶媒体。
【請求項４１】
前記メッセージ送信処理では、
前記メッセージ送信手段に含まれる下流側メッセージ送信手段が、前記メッセージ生成手段が生成した前記イベント配信ルート変更メッセージを前記サブスクライバーノード側にある前記ブローカーノードへ送信する下流側メッセージ送信処理をコンピュータに実行させることを特徴とする請求項４０に記載の負荷分散プログラムが格納された記憶媒体。
【請求項４２】
前記メッセージ送信処理では、
前記メッセージ送信手段に含まれる上流側メッセージ送信手段が、前記イベント配信ルート変更メッセージの送信先の前記ブローカーノードのうち少なくとも１つから分岐点ノード識別子が通知されたときに、前記分岐点ノード識別子を前記イベント配信ルート変更メッセージに付加して前記パブリッシャーノード側にある前記ブローカーノードへ送信する上流側メッセージ送信処理をコンピュータに実行させることを特徴とする請求項４１に記載の負荷分散プログラムが格納された記憶媒体。
【請求項４３】
ブローカーノードに含まれるルート検出手段が、自ノードがパブリッシャーノードで発生したイベントの内容を含むイベント情報の中から負荷分散の実行対象となる特定イベント情報の現在の配信ルートを変更するための集約点ノード又は分岐点ノードであるかを検出するルート検出処理と、
前記ブローカーノードに含まれるルート構築手段が、前記ルート検出手段が検出した前記集約点ノード及び前記分岐点ノードを経由し、前記イベント配信システムに含まれるランデブーノードを回避する前記特定イベント情報の新たな配信ルートを構築するルート構築処理と、をコンピュータに実行させることを特徴とする配信ルート構築プログラムが格納された記憶媒体。
【請求項４４】
前記ルート検出処理では、
前記ルート検出手段に含まれる要求情報テーブル走査手段が、前記ランデブーノードからイベント配信ルート変更メッセージを受信したときに、前記イベント情報の配信先であるサブスクライバーノードが発信した前記イベント情報を要求する要求情報が保持される要求情報テーブルを走査し、
前記ルート検出手段に含まれる分岐点判定手段が、前記要求情報テーブルに前記特定イベント情報に関する隣接転送先が複数登録されている場合に自ノードが前記分岐点ノードであると判定し、
前記ルート検出手段に含まれる通知手段が、自ノードの識別子を分岐点ノード識別子として前記ランデブーノードへ通知する分岐点判定処理、をコンピュータに実行させることを特徴とする請求項４３に記載の配信ルート構築プログラムが格納された記憶媒体。
【請求項４５】
前記ルート検出処理では、
前記ルート検出手段に含まれる広告情報テーブル走査手段が、前記ランデブーノードから前記分岐点ノード識別子が付加された前記イベント配信ルート変更メッセージを受信したときに、前記パブリッシャーノードが発信した前記イベントを広告する広告情報が保持される広告情報テーブルを走査し、
前記ルート検出手段に含まれる集約点判定手段が、前記広告情報テーブルに前記特定イベント情報に関する隣接転送先が複数登録されている場合に自ノードを前記集約点ノードと判定する集約点判定処理をコンピュータに実行させることを特徴とする請求項４４に記載の配信ルート構築プログラムが格納された記憶媒体。
【請求項４６】
前記ルート構築処理では、
前記ルート構築手段が、自ノードが前記集約点ノードであると前記集約点判定処理で判定されたときに、前記広告情報テーブルに登録された隣接転送先を前記分岐点ノード識別子に書き換えて、前記新たな配信ルートを構築するように、コンピュータに実行させることを特徴とする請求項４５に記載の配信ルート構築プログラムが格納された記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ある観測対象の状態変化が発生した時に、その状態変化を情報化するとともに、その情報の配信を希望する受信者へ状態変化を通知するイベント配信システム、そのランデブーノード、これらの負荷分散方法及び負荷分散プログラムが格納された記憶媒体、並びにイベント配信システムのブローカーノード、その配信ルート構築方法及び配信ルート構築プログラムが格納された記憶媒体に関する。
【背景技術】
【０００２】
ある観測対象の状態変化が発生した時に、その状態変化を情報化するとともに、その情報の配信を希望する受信者へ状態変化を通知するイベント配信システムが知られている（例えば、非特許文献１を参照。）。図１は、関連するイベント配信システムの一例である。図１のイベント配信システムは、パブリッシャーノード（Ｐ１，Ｐ２）と、ブローカーノード（Ｂ１〜Ｂ５）と、イベント配信ツリーの頂点となるランデブーノードＲと、サブスクライバーノード（Ｓ１，Ｓ２）と、から構成されている。図１のイベント配信システムは次のように動作する。【０００３】
イベントを発信しようとするパブリッシャーノードＰ１は、最初にイベントの広告を行う。図１に示されているようにこの広告処理は、パブリッシャーノードＰ１が、広告情報ａ１をランデブーノードＲへ送信することで実行される。ブローカーノードＢ１は、パブリッシャーノードＰ１から広告情報ａ１を受信した時に、広告用のルーティングテーブルを作成する。すなわち、
送信元（パブリッシャーノードＰ１）−転送先（ランデブーノードＲ）
という設定を作成する。ここで作成したイベント配信パスのルートＲｔ１
（パブリッシャーノードＰ１）−（ブローカーノードＢ１）−（ランデブーノードＲ）
は、パブリッシャーノードＰ１がイベント情報ｐ１を発信する場合に使用される。【０００４】
イベントを発信しようとするパブリッシャーノードＰ２も、同様の処理、つまり広告情報ａ２をランデブーノードＲへ広告する。この広告情報ａ２は、ブローカーノードＢ２においてランデブーノードＲへの送信が終端されている。これは、広告情報ａ１と広告情報ａ２が包含関係にある場合、例えば同種のイベントを広告した場合に発生する。図１では広告情報ａ１が既に
（ブローカーノードＢ１）−（ランデブーノードＲ）
への配信ルートを広告していることから、広告情報ａ２のためのブローカーノードＢ１からランデブーノードＲへの配信ルートは、広告情報ａ１で設定した配信ルートが利用される。【０００５】
一方、広告されたイベントを受信しようとするサブスクライバーノードＳ１は、イベントを受信するために要求情報ｓ１をランデブーノードＲへ送信する。この要求情報ｓ１は、図１のルートＲｔ２
（サブスクライバーノードＳ１）−（ブローカーノードＢ３）−（ブローカーノードＢ１）
を通ってランデブーノードＲへ到達する。また、この要求情報ｓ１は、ブローカーノードＢ２へも転送されている。これは、イベント情報ｐ１を広告しようとしている広告情報ａ２とイベント情報ｐ１を受信しようとしている要求情報ｓ１の条件とが一致したことで発生している。より詳細に説明すると、この要求情報ｓ１が転送される経路上にあるブローカーノードＢ３及びブローカーノードＢ１では、広告情報ａ１をランデブーノードＲへ転送する際に構築したルーティングテーブルを参照する。この参照において、広告しようとしているイべントと受信しようとしているイベントの条件が一致すれば、要求情報ｓ１は、広告情報ａ１で構築したルートを逆に辿って転送される。つまり図１では、要求情報ｓ１は、ブローカーノードＢ１からブローカーノードＢ２へ転送されている。図１には記載されていないが、この処理に基づき広告情報ａ２で広告されたイベントは、パブリッシャーノードＰ２において状態変化が発生した時に、イベント情報ｐ２として、
（パブリッシャーノードＰ２）−（ブローカーノードＢ２）−（ブローカーノードＢ１）−（ブローカーノードＢ３）−（サブスクライバーノードＳ１）
という配信ルートを通って配信される。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】Ｐｅｔｅｒ  Ｒ．  Ｐｉｅｔｚｕｃｈ著「Ｈｅｒｍｅｓ：  Ａ  ｓｃａｌａｂｌｅ  ｅｖｅｎｔ−ｂａｓｅｄ  ｍｉｄｄｌｅｗａｒｅ」Ｃｏｍｐｕｔｅｒ  Ｌａｂｏｒａｔｏｒｙ，  Ｕｎｉｖｅｒｓｉｔｙ  ｏｆ  Ｃａｍｂｒｉｄｇｅ、  ２００４年７月、４．３．５章
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかし、上述のイベント配信システムには、ランデブーノードがシステム上のボトルネックになりやすいという課題があった。その理由は次の通りである。【０００８】
図１のイベント配信システムは、ランデブーノードＲの負荷が大きくなるルートを構築することがある。例えば、パブリッシャーノードＰ１からサブスクライバーノードＳ２へイベント情報ｐ１を配信する場合、図１に示されたようなルートＲｔ３
（パブリッシャーノードＰ１）−（ブローカーノードＢ１）−（ランデブーノードＲ）
−（ブローカーノードＢ５）−（サブスクライバーノードＳ２）
を構築してしまうことがある。これは、要求情報ｓ２をランデブーノードＲヘ転送する過程において、広告情報ａ１で構築されたルートＲｔ１のような配信パスが検出されなかった場合に発生する。【０００９】
ランデブーノードは、イベント広告およびイベント受信登録のイベント情報管理を行うための機能が集中している。ここに、上述のようにランデブーノードを経由するイベント配信ルートが形成されれば、ランデブーノードの負荷が増大し、ランデブーノードの処理能力が低下するためである。【００１０】
したがって、本発明の目的は、上記課題を解決するための技術を提供することである。すなわち、本発明は、ランデブーノードの負荷を軽減してシステム上のボトルネックを解消できるイベント配信システム、ランデブーノード、ブローカーノード、イベント配信システムの負荷分散方法、ランデブーノードの負荷分散方法、ブローカーノードの配信ルート構築方法、負荷分散プログラムが格納された記憶媒体、及び配信ルート構築プログラムが格納された記憶媒体を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明は、ランデブーノードを避けてイベント情報を配信するための配信ルートを構築することでランデブーノードヘの負荷を軽減することとした。【００１２】
具体的には、本発明に係るイベント配信システムは、発生したイベントの内容を含むイベント情報及び前記イベントを広告する広告情報を発信するパブリッシャーノードと、前記イベントのうち所望のイベントのイベント情報を受信するための要求情報を発信するサブスクライバーノードと、前記イベントに関する情報管理を行うランデブーノードと、前記パブリッシャーノードが発信した前記イベント情報及び前記広告情報、並びに前記サブスクライバーノードが発信した前記要求情報、を転送するブローカーノードと、を備え、前記ランデブーノードは、前記パブリッシャーノードが発信した前記イベント情報のトラヒック量を監視するトラヒック監視手段と、前記トラヒック監視手段が監視するトラヒック量が所定値を超えたときに、前記イベント情報の中から負荷分散の実行対象となる特定イベント情報を決定する特定イベント決定手段と、を有し、前記ブローカーノードは、自ノードが、前記特定イベント情報の現在の配信ルートを変更するための集約点ノード又は分岐点ノードであるかを検出するルート検出手段と、前記ルート検出手段が検出した前記集約点ノード及び前記分岐点ノードを経由し、前記ランデブーノードを回避する前記特定イベント情報の新たな配信ルートを構築するルート構築手段と、を備えるものである。【００１３】
前記ランデブーノードは、パブリッシャーノードで発生したイベントの内容を含むイベント情報をサブスクライバーノードへ配信するイベント配信システムに含まれ、自ノードを通過する前記イベント情報のトラヒック量を監視するトラヒック監視手段と、前記トラヒック監視手段が監視するトラヒック量が所定値を超えたときに、前記イベント情報の中から負荷分散の実行対象となる特定イベント情報を決定する特定イベント決定手段と、を有する。【００１４】
前記ブローカーノードは、パブリッシャーノードで発生したイベントの内容を含むイベント情報をサブスクライバーノードへ配信するイベント配信システムに含まれ、自ノードが、前記イベント情報の中から負荷分散の実行対象となる特定イベント情報の現在の配信ルートを変更するための集約点ノード又は分岐点ノードであるかを検出するルート検出手段と、前記ルート検出手段が検出した前記集約点ノード及び前記分岐点ノードを経由し、前記イベント配信システムに含まれるランデブーノードを回避する前記特定イベント情報の新たな配信ルートを構築するルート構築手段と、を有する。【００１５】
また、本発明に係るイベント配信システムの負荷分散方法は、発生したイベントに関する情報管理を行うランデブーノードにおける、発生したイベントの内容を含むイベント情報及び前記イベントを広告する広告情報を発信するパブリッシャーノードが発信した前記イベント情報のトラヒック量を監視し、前記トラヒック量の監視する処理で監視されるトラヒック量が所定値を超えたときに、前記イベント情報の中から負荷分散の実行対象となる特定イベント情報を決定する特定イベントを決定し、前記特定イベント決定する処理で決定された前記特定イベント情報の現在の配信ルートを変更するための集約点ノードと分岐点ノードを、前記パブリッシャーノードが発信した前記イベント情報及び前記広告情報、並びに所望の前記イベント情報を受信するための要求情報を発信するサブスクライバーノードが発信した前記要求情報、を転送するブローカーノードの中から検出するルート検出処理をし、前記ルート検出処理により検出された前記集約点ノードと前記分岐点ノードを経由し、前記ランデブーノードを回避する前記特定イベント情報の新たな配信ルートを構築するルート構築処理をするものである。【００１６】
さらに、本発明に係る負荷分散プログラムの記録媒体は、ランデブーノードのトラヒック監視手段が、自ノードを通過するパブリッシャーノードで発生したイベントの内容を含むイベント情報のトラヒック量を監視するトラヒック監視処理と、前記ランデブーノードの特定イベント決定手段が、前記トラヒック監視手段が監視するトラヒック量が所定値を超えたときに、前記イベント情報の中から負荷分散の実行対象となる特定イベント情報を決定する特定イベント決定処理と、をコンピュータに実行させるための負荷分散プログラムを格納するものである。
【発明の効果】
【００１７】
本発明は、ランデブーノードの負荷を軽減してシステム上のボトルネックを解消できるイベント配信システム、その負荷分散方法及び負荷分散プログラムが格納された記憶媒体を提供することができる。
【図面の簡単な説明】
【００１８】
【図１】関連するイベント配信システムの概略構成図である。
【図２】本発明に係るイベント配信システムの概略構成図である。
【図３】本発明に係るイベント配信システムにおいて配信ルートの設定を説明するシーケンスチャートである。
【図４】本発明に係るイベント配信システムにおいて配信ルートの変更を説明するシーケンスチャートである。
【図５】本発明に係るイベント配信システムのブローカーノードが持つ広告情報テーブルを説明する図である。
【図６】本発明に係るイベント配信システムのブローカーノードが持つ要求情報テーブルを説明する図である。
【図７】本発明に係るイベント配信システムの実施例を説明する概略構成図である。
【図８】本発明に係るイベント配信システムの実施例で配信されるイベント情報の例である。
【図９】本発明に係るイベント配信システムの実施例で配信される広告情報の例である。
【図１０】本発明に係るイベント配信システムの実施例で配信される要求情報の例である。
【図１１】本発明に係るイベント配信システムの実施例においてブローカーノードが持つ広告情報テーブルを説明する図である。
【図１２】本発明に係るイベント配信システムの実施例においてブローカーノードが持つ要求情報テーブルを説明する図である。
【図１３】本発明に係るイベント配信システムの実施例においてランデブーノードのトラヒック量を説明する図である。
【図１４】本発明に係るイベント配信システムの実施例においてランデブーノードが生成及び送信する下流側イベント配信ルート変更メッセージの例である。
【図１５】本発明に係るイベント配信システムの実施例においてブローカーノードが応答する応答メッセージの例である。
【図１６】本発明に係るイベント配信システムの実施例においてランデブーノードが生成及び送信する上流側イベント配信ルート変更メッセージの例である。
【図１７】本発明に係るイベント配信システムの実施例においてブローカーノードが配信ルート変更時に用いる下流側イベント配信ルート変更メッセージの例である。
【図１８】本発明に係るランデブーノードの構成を説明するブロック図である。
【図１９】本発明に係るブローカーノードの構成を説明するブロック図である。
【図２０】本発明に係るイベント配信システムの動作を説明するフローチャートである。
【図２１】本発明に係るイベント配信システムの分岐点判定手順の具体的手順を説明する図である。
【図２２】本発明に係るイベント配信システムの集約点判定手順の具体的手順を説明する図である。
【発明を実施するための形態】
【００１９】
添付の図面を参照して本発明の実施の形態を説明する。以下に説明する実施の形態は本発明の構成の例であり、本発明は、以下の実施の形態に制限されるものではない。なお、本明細書及び図面において符号が同じ構成要素は、相互に同一のものを示すものとする。    
【００２０】
図２は、本実施形態のイベント配信システムの概略構成図である。本イベント配信システムは、イベント配信ネットワーク１０１と、それに接続する端末群で構成される。イベント配信ネットワーク１０１は、イベント情報をルーティングするブローカーノード（Ｂ２１〜Ｂ２６）及びランデブーノードＲ３１を含む。イベント配信ネットワーク１０１は、例えば、端末群を裾とし、ランデブーノードＲ３１を頂点としたマルチキャストツリー状のネットワークである。端末群は、イベント情報（ｐ１、ｐ２）及び広告情報（ａ１、ａ２）を発信するパブリッシャーノード（Ｐ１１，Ｐ１２）と、イベントを要求する要求情報（ｓ１、ｓ２）を発信し、イベント情報（ｐ１、ｐ２）を受信するサブスクライバーノード（Ｓ４１，Ｓ４２）と、を含む。
【００２１】
図２のイベント配信システムでは端末群は次のように接続されている。パブリッシャーノードＰ１１はブローカーノードＢ２１に接続している。パブリッシャーノードＰ１２はブローカーノードＢ２２に接続している。サブスクライバーノードＳ４１はブローカーノードＢ２６に接続している。サブスクライバーノードＳ４２はブローカーノードＢ２５に接続している。図２において、太い実線矢印は、パブリッシャーノード（Ｐ１１、Ｐ１２）から発信されたイベント情報（ｐ１、ｐ２）の配信ルートを示している。イベント情報は、ブローカーノードＢ２３で集約され、ランデブーノードＲ３１を経由し、ブローカーノードＢ２４で分岐された。イベント情報は、ブローカーノードＢ２４での分岐後、ブローカーノードＢ２６を経由してサブスクライバーノードＳ４１へ配信されるか、ブローカーノードＢ２５を経由してサブスクライバーノードＳ４２へ配信されている。
【００２２】
本イベント配信システムは、図１のイベント配信システムで説明したように配信ルートを構築する。そして、本イベント配信システムは、特に図２の破線で示したブローカーノードＢ２３からブローカーノードＢ２４への配信ルートを新たに構築する。本イベント配信システムは、新たな配信ルートで、ランデブーノードＲ３１を介さない配信ルートを実現し、ランデブーノードＲ３１への負荷を軽減する。
【００２３】
図１８は、ランデブーノードＲ３１の構成を説明するブロック図である。ランデブーノードＲ３１は、最小構成として、自ノードを通過する前記イベント情報のトラヒック量を監視するトラヒック監視手段１１と、トラヒック監視手段１１が監視するトラヒック量が所定値を超えたときに、イベント情報の中から負荷分散の実行対象となる特定イベント情報を決定する特定イベント決定手段１２と、を有している。
【００２４】
ここで、特定イベント決定手段１２は、イベント情報の識別要素の階層のうち上位から少なくとも２つの階層の識別要素でイベント情報の種別を識別する上位イベント識別部２１ａと、識別要素の階層のうち最下位の階層の識別要素でイベント情報の種別を識別する下位イベント識別部２１ｂと、上位イベント識別部２１ａ又は下位イベント識別部２１ｂが識別したイベント情報の種別毎にトラヒック量を計測するトラヒック計測部２２と、トラヒック計測部２２が計測したイベント情報の種別毎のトラヒック量の中で大きいほうから少なくとも１つを特定イベント情報として決定するイベント検出部２３と、を含む。
【００２５】
ランデブーノードＲ３１は、特定イベント決定手段１２が決定した特定イベント情報に関する広告情報を取得する情報取得手段１３と、情報取得手段１３が取得した広告情報を含むイベント配信ルート変更メッセージを生成するメッセージ生成手段１４と、メッセージ生成手段１４で生成した前記イベント配信ルート変更メッセージをイベント配信システムに含まれるブローカーノード（Ｂ２１〜Ｂ２６）へ送信するメッセージ送信手段１５と、をさらに有してもよい。
【００２６】
メッセージ送信手段１５は、メッセージ生成手段１４が生成したイベント配信ルート変更メッセージをサブスクライバーノード（Ｓ４１，Ｓ４２）側にあるブローカーノード（Ｂ２４〜Ｂ２６）へ送信する下流側メッセージ送信部２４と、ブローカーノード（Ｂ２４〜Ｂ２６）のうち少なくとも１つから分岐点ノード識別子が通知されたときに、分岐点ノード識別子をイベント配信ルート変更メッセージに付加してパブリッシャーノード（Ｐ１１，Ｐ１２）側にあるブローカーノード（Ｂ２１〜Ｂ２３）へ送信する上流側メッセージ送信部２５と、を含む。
【００２７】
ランデブーノードＲ３１の動作を以下に説明する。
【００２８】
ランデブーノードＲ３１は、パブリッシャーノード（Ｐ１１、Ｐ１２）から送られてくる広告情報（ａ１，ａ２）を保持する手段１を有する。広告情報（ａ１，ａ２）は、イベントの型情報、および属性情報を含む。
【００２９】
ランデブーノードＲ３１は、サブスクライバーノード（Ｓ４１、Ｓ４２）から送られてくる要求情報（ｓ１、ｓ２）を保持する手段２を有する。要求情報（ｓ１、ｓ２）は、要求するイベントのイベントタイプ、属性情報、およびフィルタ条件が含まれる。
【００３０】
ランデブーノードＲ３１は、イベントの型単位、またはイベントの型＋属性情報で、ランデブーノードＲ３１を通過する個々のイベント情報を識別する手段３を有する。
【００３１】
ランデブーノードＲ３１は、手段３で識別したイベント毎にトラヒック量を監視する手段４を有する。例えば、あるイベント情報に着目した時に、ランデブーノードＲ３１を通過するイベント数（ｅｖｅｎｔ／ｓ）をトラヒック量として取り扱う。
【００３２】
ランデブーノードＲ３１は、あるイベント情報のトラヒック量が一定量を超過したことを検出し、このイベントを特定イベント情報に決定する手段５を有する。
【００３３】
ランデブーノードＲ３１は、手段５でトラヒック量の超過を検出した場合に、該イベント情報の配信ルートを変更するための上流側イベント配信ルート変更メッセージを生成し、パブリッシャーノード（Ｐ１１、Ｐ１２）側へ送信する手段６を有する。詳細には、上流側イベント配信ルート変更メッセージは、後述する手段１３で通知された分岐点ノードの識別情報が含まれる。
【００３４】
ランデブーノードＲ３１は、手段５でトラヒック量の超過を検出した場合に、下流側イベント配信ルート変更メッセージを生成し、サブスクライバーノード（Ｓ４１、Ｓ４２）側へ送信する手段７を有する。
【００３５】
図１９は、ブローカーノード（Ｂ２１〜Ｂ２６）の構成を説明するブロック図である。ブローカーノード（Ｂ２１〜Ｂ２６）は、最小構成として、自ノードが、イベント情報の中から負荷分散の実行対象となる特定イベント情報の現在の配信ルートを変更するための集約点ノード又は分岐点ノードであるかを検出するルート検出手段５３と、ルート検出手段５３が検出した集約点ノード及び分岐点ノードを経由し、ランデブーノードＲ３１を回避する特定イベント情報の新たな配信ルートを構築するルート構築手段５４と、を有している。
【００３６】
ここで、ルート検出手段５３は、ランデブーノードＲ３１からイベント配信ルート変更メッセージを受信したときに、サブスクライバーノード（Ｓ４１，Ｓ４２）が発信したイベント情報を要求する要求情報が保持される要求情報テーブル５１を走査する要求情報テーブル走査部６１と、要求情報テーブル走査部６１が走査した要求情報テーブル５１に特定イベント情報に関する隣接転送先が複数登録されている場合に自ノードが分岐点ノードであると判定する分岐点判定部６２と、自ノードが分岐点ノードであると分岐点判定部６２が判定したときに自ノードの識別子を分岐点ノード識別子としてランデブーノードＲ３１へ通知する通知部６３と、を含む。
【００３７】
さらに、ルート検出手段５３は、ランデブーノードＲ３１から分岐点ノード識別子が付加されたイベント配信ルート変更メッセージを受信したときに、パブリッシャーノード（Ｐ１１，Ｐ１２）が発信したイベントを広告する広告情報が保持される広告情報テーブル５２を走査する広告情報テーブル走査部６４と、広告情報テーブル走査部６４が走査した広告情報テーブル５２に特定イベント情報に関する隣接転送先が複数登録されている場合に自ノードが集約点ノードであると判定する集約点判定部６５と、を含む。
【００３８】
また、ルート構築手段５４は、自ノードが集約点ノードであると集約点判定部６５が判定したときに、広告情報テーブル５２に登録された隣接転送先を分岐点ノード識別子に書き換えて、新たな配信ルートを構築する。
【００３９】
ブローカーノード（Ｂ２１〜Ｂ２６）の動作を以下に説明する。ブローカーノード（Ｂ２１〜Ｂ２６）は、図１で説明したブローカーノード（Ｂ１〜Ｂ５）に対して以下の手段をさらに有することを特徴としている。
【００４０】
ブローカーノード（Ｂ２１〜Ｂ２６）は、広告情報（ａ１，ａ２）を受信した際に、その送信元、隣接転送先及び該広告情報を広告情報テーブルに保持する手段８を有する。
【００４１】
ブローカーノード（Ｂ２１〜Ｂ２６）は、要求情報（ｓ１、ｓ２）を受信した際に、その送信元、隣接転送先及び該要求情報を要求情報テーブルに保持する手段９を有する。
【００４２】
ランデブーノードＲ３１よりサブスクライバーノード（Ｓ４１、Ｓ４２）側にあるブローカーノード（Ｂ２４〜Ｂ２６）は、下流側イベント配信ルート変更メッセージを受信した際に、要求情報テーブルを参照する手段１０を有する。
【００４３】
ブローカーノード（Ｂ２４〜Ｂ２６）は、手段１０で要求情報テーブルを参照した結果、ブローカーノードＢ２５のような分岐点ノードであることを検出する手段１１を有する。例えば、下流側イベント配信ルート変更メッセージの内容と要求情報テーブルの内容（例えば、イベントのイベントタイプ、属性情報）が一致し、さらに隣接転送先が複数登録されていた場合に自ノードが分岐点ノードであると判定する。
【００４４】
ブローカーノード（Ｂ２４〜Ｂ２６）は、自ノードが分岐点ノードである場合に下流側イベント配信ルート変更メッセージの転送を終端する手段１２を有する。
【００４５】
ブローカーノード（Ｂ２４〜Ｂ２６）は、手段１１により自ノードが分岐点ノードであると判定した場合に、自ノードの識別情報、例えば、ノード識別子、ＩＤ又はアドレスをランデブーノードＲ３１ヘ通知する手段１３を有する。
【００４６】
ランデブーノードＲ３１よりパブリッシャーノード（Ｐ１１、Ｐ１２）側にあるブローカーノード（Ｂ２１〜Ｂ２３）は、上流側イベント配信ルート変更情報を受信した際に、広告情報テーブルを参照する手段１４を有する。
【００４７】
ブローカーノード（Ｂ２１〜Ｂ２３）は、手段１４で広告情報テーブルを参照した結果、ブローカーノードＢ２３のような集約点ノードであることを検出する手段１５を有する。例えば、広告情報テーブルの送信元に複数のブローカーノードが登録されていた場合に自ノードが集約点ノードであると判定する。
【００４８】
ブローカーノード（Ｂ２１〜Ｂ２３）は、自ノードが集約点ノードである場合に上流側イベント配信ルート変更メッセージの転送を終端する手段１６を有する。
【００４９】
ブローカーノード（Ｂ２１〜Ｂ２３）は、手段１５により自ノードが集約点ノードであると判定した場合に、ランデブーノードＲ３１から通知された分岐点ノードに対してイベントを配信するルートを新たに設定する手段１７を有する。具体的には、上流側イベント配信ルート変更情報に分岐点ノードの情報が含まれており、ブローカーノード（Ｂ２１〜Ｂ２３）は、広告情報テーブルの隣接転送先を分岐点ノードに変更する。
【００５０】
なお、本明細書において、手段１は情報取得手段１３、手段３は上位イベント識別部２１ａ又は下位イベント識別部２１ｂ、手段４はトラヒック計測部２２、手段５はイベント検出部２３及び特定イベント決定手段１２、手段６は上流側メッセージ送信部２５、手段７はメッセージ生成手段１４及び下流側メッセージ送信部２４、手段１０は要求情報テーブル走査部６１、手段１１は分岐点判定部６２、手段１３は通知部５３、手段１４は広告情報テーブル走査部６４、手段１５は集約点判定部６５、手段１７はルート構築手段５４と記載する場合がある。また、手段１１と手段１５とでルート検出手段５３に相当する。なお、トラヒック計測部２２はトラヒック監視手段１１が監視しているトラヒック量のデータからイベント毎のトラヒック量を計算する構成でもよい。
【００５１】
図２０は、本実施形態のイベント配信システムの動作を説明するフローチャートである。本イベント配信システムの負荷分散方法は、最小限のステップとして、トラヒック監視ステップＳｔ０１、特定イベント決定ステップＳｔ０２、ルート検出ステップＳｔ０６、及びルート構築ステップＳｔ０７を順に行う。本イベント配信システムの負荷分散方法は、特定イベント決定ステップＳｔ０２の後に、情報取得ステップＳｔ０３、メッセージ生成ステップＳｔ０４、メッセージ送信ステップＳｔ０５を順に行い、ルート検出ステップＳｔ０６を行ってもよい。なお、後述するように、メッセージ送信ステップＳｔ０５とルート検出ステップＳｔ０６とは交互に行われる。
【００５２】
このうち、トラヒック監視ステップＳｔ０１と特定イベント決定ステップＳｔ０２とが、ランデブーノードＲ３１が行う負荷分散方法の最小限のステップである。ランデブーノードＲ３１の負荷分散方法は、特定イベント決定ステップＳｔ０２の後に情報取得ステップＳｔ０３と、メッセージ生成ステップＳｔ０４と、メッセージ送信ステップＳｔ０５と、を順に行ってもよい。
【００５３】
また、ルート検出ステップＳｔ０６とルート構築ステップＳｔ０７とがブローカーノード（Ｂ２１〜Ｂ２６）が行う配信ルート構築方法の最小限のステップである。
【００５４】
以下に、図２及び図２０を用いてイベント配信システムがランデブーノードを回避してイベント情報を配信するイベント配信システムの負荷分散方法、ランデブーノードの負荷分散方法、及びブローカーノードの配信ルート構築方法をより詳細に説明する。トラヒック監視ステップＳｔ０１では、ランデブーノードＲ３１のトラヒック監視手段１１が、ランデブーノードＲ３１における、パブリッシャーノード（Ｐ１１，Ｐ１２）が発信したイベント情報のトラヒック量を監視する。そして、ランデブーノードＲ３１のトラヒック量が所定値を超えたときに、特定イベント決定ステップＳｔ０２に進む。
【００５５】
特定イベント決定ステップＳｔ０２では、ランデブーノードＲ３１のトラヒック量が所定値を超えたときに、イベント情報の中から負荷分散の実行対象となる特定イベント情報を決定する。ルート検出ステップＳｔ０６では、ブローカーノード（Ｂ２１〜Ｂ２６）のルート検出手段５３が、特定イベント情報の現在の配信ルートを変更するための集約点ノードと分岐点ノードをブローカーノードの中から検出する。ルート構築ステップＳｔ０７では、ブローカーノード（Ｂ２１〜Ｂ２６）のルート構築手段５４が、集約点ノードと分岐点ノードを経由し、ランデブーノードＲ３１を回避する特定イベント情報の新たな配信ルートを構築する。
【００５６】
イベント情報が複数の階層からなる識別要素で構成されている場合、特定イベント決定ステップＳｔ０２で次のように特定イベント情報を決定する。上位イベント識別手順Ｐｒ０１ａで、特定イベント決定手段１２に含まれる上位イベント識別部２１ａが、識別要素の階層のうち上位から少なくとも２つの階層の識別要素でイベント情報の種別を識別する。また、下位イベント識別手順Ｐｒ０１ｂで、特定イベント決定手段１２に含まれる下位イベント識別部２１ｂが、識別要素の階層のうち最下位の階層の識別要素でイベント情報の種別を識別してもよい。
【００５７】
トラヒック計測手順Ｐｒ０２で、特定イベント決定手段１２に含まれるトラヒック計測部２２が、上位イベント識別部２１ａ又は下位イベント識別部２１ｂが識別したイベント情報の種別毎にトラヒック量を計測する。イベント検出手順Ｐｒ０３で、特定イベント決定手段１２に含まれるイベント検出部２３が、イベント情報の種別毎のトラヒック量の中で大きいほうから少なくとも１つを特定イベント情報として決定する。
【００５８】
続いて、特定イベント決定ステップＳｔ０２からルート構築ステップＳｔ０７までの間の動作を詳細に説明する。イベント配信システムは、特定イベント決定ステップＳｔ０２の後に、ランデブーノードＲ３１の情報取得手段１３が、特定イベント情報に関する広告情報を取得する情報取得ステップＳｔ０３と、ランデブーノードＲ３１のメッセージ生成手段１４が、その広告情報を含むイベント配信ルート変更メッセージを生成するメッセージ生成ステップＳｔ０４と、を順に行う。
【００５９】
イベント配信システムは、メッセージ生成ステップＳｔ０４の後に、下流側メッセージ送信手順Ｐｒ０４と上流側メッセージ送信手順Ｐｒ０６が含まれるメッセージ送信ステップＳｔ０５、分岐点判定手順Ｐｒ０５と集約点判定手順Ｐｒ０７が含まれるルート検出ステップＳｔ０６を行う。
【００６０】
詳細には、ランデブーノードＲ３１は、メッセージ生成ステップＳｔ０４の後に、下流側メッセージ送信手順Ｐｒ０４において、メッセージ送信手段１５に含まれる下流側メッセージ送信部２４でイベント配信ルート変更メッセージをブローカーノード（Ｂ２４〜Ｂ２６）へ送信する。
【００６１】
ブローカーノード（Ｂ２４〜Ｂ２６）は、イベント配信ルート変更メッセージを受信したときに、分岐点判定手順Ｐｒ０５を行う。図２１は、分岐点判定手順Ｐｒ０５の具体的手順を説明する図である。ブローカーノード（Ｂ２４〜Ｂ２６）は、要求情報テーブル走査過程Ｐｓ１１においてルート検出手段５３に含まれる分岐点判定部６２で要求情報が保持される要求情報テーブル５１を走査し、隣接転送先確認過程Ｐｓ１２において要求情報テーブル５１に特定イベント情報に関する隣接転送先が複数登録されているかどうかを確認する。ブローカーノード（Ｂ２４〜Ｂ２６）は、要求情報テーブル５１に特定イベント情報に関する隣接転送先が複数登録されている場合に判定過程Ｐｓ１３で自ノードを分岐点ノードと判定する。さらに、ブローカーノード（Ｂ２４〜Ｂ２６）は、送信過程Ｐｓ１４でランデブーノードＲ３１に自ノードの識別子を送信する。
【００６２】
続いて、ランデブーノードＲ３１は、上流側メッセージ送信手順Ｐｒ０６において、メッセージ送信手段１５に含まれる上流側メッセージ送信部２５で、分岐点ノードと判定されたブローカーノードの識別子を分岐点ノード識別子としてイベント配信ルート変更メッセージに付加し、ブローカーノード（Ｂ２１〜Ｂ２３）へ送信する。
【００６３】
ブローカーノード（Ｂ２１〜Ｂ２３）は、分岐点ノード識別子が付加されたイベント配信ルート変更メッセージを受信したときに、集約点判定手順Ｐｒ０７を行う。図２２は、集約点判定手順Ｐｒ０７の具体的手順を説明する図である。ブローカーノード（Ｂ２１〜Ｂ２３）は、広告情報テーブル走査過程Ｐｓ２１においてルート検出手段５３に含まれる集約点判定部６５で広告情報が保持される広告情報テーブル５２を走査し、隣接転送先確認過程Ｐｓ２２において広告情報テーブル５２に特定イベント情報に関する隣接転送先が複数登録されているかどうかを確認する。ブローカーノード（Ｂ２１〜Ｂ２３）は、広告情報テーブル５２に特定イベント情報に関する隣接転送先が複数登録されている場合に判定過程Ｐｓ２３で自ノードを集約点ノードと判定する。
【００６４】
イベント配信システムは、集約点判定手順Ｐｒ０７の後にルート構築ステップＳｔ０７を行う。具体的には、集約点ノードとなるブローカーノードが、自ノードの広告情報テーブル５２に登録された隣接転送先を分岐点ノード識別子に書き換えることで新たな配信ルートを構築する。
【００６５】
例えば、上述したイベント配信システムの負荷分散方法、ランデブーノードの負荷分散方法、及びブローカーノードの配信ルート構築方法は、コンピュータが読み取り可能な負荷分散プログラム、及び配信ルート構築プログラムとして作成し、コンピュータに実行させることで実現することができる。コンピュータが負荷分散プログラム、及び配信ルート構築プログラムを実行することで、イベント配信システムはランデブーノードＲ３１を介さない新たなイベント配信ルートを形成することができる。
【００６６】
コンピュータが読み取り可能な負荷分散プログラム、及び配信ルート構築プログラムとして実現する場合、コンピュータプログラムは、記憶媒体に記録して提供することも可能であり、また、インターネットその他の通信媒体を介して伝送することにより提供することも可能である。また、記憶媒体には、例えば、フレキシブルディスク、ハードディスク、磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＤＶＤ、ＲＯＭカートリッジ、バッテリバックアップ付きＲＡＭメモリカートリッジ、フラッシュメモリカートリッジ、不揮発性ＲＡＭカートリッジ等が含まれる。また、通信媒体には、電話回線等の有線通信媒体、マイクロ波回線等の無線通信媒体等が含まれる。
【００６７】
次に、図３及び図４のフローチャートを参照して本実施形態の全体の動作についてより詳細に説明する。本実施形態では、パブリッシャーノード（Ｐ１１、Ｐ１２）が、同じイベントタイプ、属性情報を持つイベント情報（ｐ１、ｐ２）を発生させるものとして説明する。
【００６８】
図３において、最初にパブリッシャーノードＰ１１は、ランデブーノードＲ３１に広告情報を送信するために、隣接ノードであるブローカーノードＢ２１に広告情報ａ１を送信する。広告情報ａ１を受信したブローカーノードＢ２１は、手段８により広告情報ａ１を保持する。具体的には、自ノードがブローカーノードＢ２１、送信先がランデブーノードＲ３１であるため、手段８で広告情報テーブルに保持される情報は、送信元としてパブリッシャーノードＰ１１、隣接転送先としてブローカーノードＢ２３、及び広告情報ａ１に含まれる情報である。次に広告情報ａ１は、隣接転送先のブローカーノードＢ２３へ転送される。
【００６９】
ブローカーノードＢ２３は、ブローカーノードＢ２１から転送されてきた広告情報ａ１をブローカーノードＢ２１の説明と同様に処理する。ただし、自ノードがブローカーノードＢ２３、送信先がランデブーノードＲ３１であるため、手段８で広告情報テーブルに保持される情報は、送信元としてブローカーノードＢ２１、隣接転送先としてランデブーノードＲ３１、及び広告情報ａ１に含まれる情報である。以上のように広告情報ａ１を用いて、
（パブリッシャーノードＰ１１）−（ブローカーノードＢ２１）−（ブローカーノードＢ２３）−（ランデブーノードＲ３１）
というイベント配信ルートが構築される。
【００７０】
次にパブリッシャーノードＰ１２からランデブーノードＲ３１へのイベント配信ルートの構築について述べる。ここで、パブリッシャーノードＰ１２は、パブリッシャーノードＰ１１と同種のイベントを発生させると想定する。図３において、パブリッシャーノードＰ１２は、ランデブーノードＲ３１に広告情報ａ２を送信するために、隣接ノードであるブローカーノードＢ２２に広告情報ａ２を送信する。広告情報ａ２を受信したブローカーノードＢ２２は、手段８で広告情報ａ２を保持する。ここで、自ノードがブローカーノードＢ２２、送信先がランデブーノードＲ３１であるため、手段８で広告情報テーブルに保持される情報は、送信元としてパブリッシャーノードＰ１２、隣接転送先としてブローカーノードＢ２３、及び広告情報ａ２に含まれる情報である。次に広告情報ａ２は、隣接転送先のブローカーノードＢ２３へ転送される。
【００７１】
ブローカーノードＢ２３は、ブローカーノードＢ２２から転送されてきた広告情報ａ２をブローカーノードＢ２２の説明と同様に処理する。ただし、自ノードがブローカーノードＢ２３、送信先がランデブーノードＲ３１であるため、手段８で広告情報テーブルに保持される情報は、送信元としてブローカーノードＢ２２、隣接転送先としてランデブーノードＲ３１である。しかし、広告情報ａ１の処理において、既に
（パブリッシャーノードＰ１１）−（ブローカーノードＢ２１）−（ブローカーノードＢ２３）−（ランデブーノードＲ３１）
というイベント配信ルートが構築されている。このため、広告情報ａ２の処理では、既存の設定内容の送信元情報に、ブローカーノードＢ２２を加えるのみとなる。以上のように広告情報ａ２を用いて、
（パブリッシャーノードＰ１２）−（ブローカーノードＢ２２）−（ブローカーノードＢ２３）−（ランデブーノードＲ３１）
というイベント配信ルートが構築される。
【００７２】
手段８で構築されるブローカーノードＢ２３の広告情報テーブルを図５に示す。広告情報（Ａｄｖ１１、Ａｄｖ１２）が上記説明の広告情報ａ１であり、広告情報（Ａｄｖ２１、Ａｄｖ２２）が上記説明の広告情報ａ２である。個々の広告情報は、イベントタイプ名で分類され、さらに広告情報に含まれる要素と属性情報で細分化されている。そして各広告情報の送信元および送信先が、各フィールドに記載される。例えば広告情報Ａｄｖ１１の送信元はブローカーノードＢ２１であり、隣接転送先はランデブーノードＲ３１であることが記載されている。
【００７３】
次にサブスクライバー側の処理について説明する。図３において、最初にサブスクライバーノードＳ４１は、ランデブーノードＲ３１に要求情報ｓ１を送信するために、隣接ノードであるブローカーノードＢ２５に要求情報ｓ１を送信する。要求情報ｓ１を受信したブローカーノードＢ２５は、手段９を用いて要求情報ｓ１を保持する。ここで、自ノードがブローカーノードＢ２５、送信先がランデブーノードＲ３１であるため、手段９で要求情報テーブルに保持される情報は、送信元としてサブスクライバーノードＳ４１、隣接転送先としてブローカーノードＢ２４、及び要求情報ｓ１に含まれる情報である。次に要求情報ｓ１は、隣接転送先のブローカーノードＢ２４へ転送される。
【００７４】
ブローカーノードＢ２４は、ブローカーノードＢ２５から転送されてきた要求情報ｓ１をブローカーノードＢ２５の説明と同様に処理する。ただし、自ノードがブローカーノードＢ２４、送信先がランデブーノードＲ３１であるため、手段９で要求情報テーブルに保持される情報は、送信元としてブローカーノードＢ２５、隣接転送先としてランデブーノードＲ３１、及び要求情報ｓ１に含まれる情報である。以上のように要求情報を用いて、
（サブスクライバーノードＳ４１）−（ブローカーノードＢ２５）−（ブローカーノードＢ２４）−（ランデブーノードＲ３１）
というルートが構築される。実際にイベントが配信される処理では、要求情報ｓ１のルートの逆を辿ることでイベント配信が行われる。
【００７５】
手段９で構築されるブローカーノードＢ２４の要求情報テーブルを図６に示す。要求情報（Ｓｕｂ１１、Ｓｕｂ１２）が上記説明の要求情報ｓ１であり、広告情報（Ｓｕｂ２１、Ｓｕｂ２２）が上記説明の要求情報ｓ２である。個々の要求情報は、イベントタイプ名で分類され、さらに要求情報に含まれる要素と属性情報で細分化されている。そして各要求情報の送信元および送信先が、各フィールドに記載される。例えば要求情報Ｓｕｂ１１の送信元はブローカーノードＢ２５であり、隣接転送先はランデブーノードＲ３１であることが記載されている。
【００７６】
次に、本実施形態のイベント配信ルートの再構築について説明する。ここで、既に構築されたイベント配信ルートでイベント配信が行われていると仮定する。ランデブーノードＲ３１は、自ノードを通過するイベント情報を手段３で識別し、さらに手段４でそのトラヒック量を監視している。ここで、あるイベント情報のトラヒック量が一定以上となった場合、図４に示すようにランデブーノードＲ３１は、手段５でイベント配信ルートの変更処理を開始する。最初にランデブーノードＲ３１は、手段７でブローカーノードＢ２４に対して、下流側イベント配信ルート変更メッセージｍｄを生成、送信する。
【００７７】
次にブローカーノードＢ２４は、手段１０で自身が保持している要求情報を参照し、手段１４で自ノードが分岐点ノードであるかどうかを判定する。図２の例においてブローカーノードＢ２４は分岐点ノードであるので、ブローカーノードＢ２４は、手段１５で下流側イベント配信ルート変更メッセージｍｄを終端する。そして、ブローカーノードＢ２４は、手段１６で自ノードの識別情報をランデブーノードＲ３１に通知する。以上の処理で、ランデブーノードＲ３１はサブスクライバーノード側の配信ルート変更ポイントを特定する。
【００７８】
次に、ランデブーノードＲ３１は、パブリッシャーノード側のイベント配信ルートの変更ポイントを特定する。最初にランデブーノードＲ３１は、手段６でブローカーノードＢ２３に対して、上流側イベント配信ルート変更メッセージｍｕを生成、送信する。
【００７９】
続いてブローカーノードＢ２３は、手段１４で、自身が保持している広告情報を参照し、手段１５で自ノードか集約点ノードであるかどうかを判定する。図２の例においてブローカーノードＢ２３は集約点ノードであるので、ブローカーノードＢ２３は、手段１６で上流側イベント配信ルート変更メッセージｍｕの転送が終端される。そして、ブローカーノードＢ２３は、手段１７で広告情報テーブルの隣接転送先をランデブーノードＲ３１からブローカーノードＢ２４へ変更する。
【００８０】
以上の処理で、変更前のイベント配信ルートは、ランデブーノードＲ３１を経由する配信ルートを、図２の破線で示されたブローカーノードＢ２３からブローカーノードＢ２４へ転送される配信ルートヘ変更することができる。
【００８１】
具体的な動作例を以下に説明する。図７は、ＤＨＴ（Ｄｉｓｔｒｉｂｕｔｅｄ  Ｈａｓｈ  Ｔａｂｌｅ）を用いたオーバーレイネットワーク２０２上に、本発明に係るイベント配信ネットワーク２０１を構築したイベント配信システムの概略構成図である。図７において、ブローカーノード（Ｂ１２１〜Ｂ１２６）は、各々オーバーレイノード（Ｎ１５１〜Ｎ１５６）上でアプリケーションプログラムとして動作する。ランデブーノードＲ１３１は、オーバーレイノードＮ１５７上でアプリケーションプログラムとして動作する。
【００８２】
パブリッシャーノード（Ｐ１１１〜Ｐ１１３）は、各々インターネット２０３に接続する端末（１７１〜１７３）上で動作するアプリケーションである。端末（１７１〜１７３、１９１、１９２）は、例えばＰＣ（Personal Computer）、インターネット接続可能な携帯電話、又はセンサー端末である。図７では、パブリッシャーノードＰ１１１は、例えばＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）を用いてＢ１２１へ接続し、パブリッシャーノードＰ１１２も同様に、ブローカーノードＢ１２２へ接続する。ＴＣＰ／ＩＰの使用は、あくまで一例であって、他にＵＤＰ／ＩＰ（User Datagram Protocol/Internet Protocol）やＨＴＴＰ（HyperText Transfer Protocol）でも良い。このような通信クライアントは、図７において通信クライアント（Ｔ１６１〜Ｔ１６５）として図示されている。そして、パブリッシャーノード（Ｐ１１１、Ｐ１１２）は、図８で示したようなイベント情報を、前記ＴＣＰ／ＩＰやＨＴＴＰといった通信プロトコルを用いて送信する。
【００８３】
次にイベント情報について説明する。本実施例において、個々のイベント情報は、複数の要素情報、または要素情報に付与される属性情報で表現される。そしてイベント情報に含まれる要素情報又は属性情報に、数値、文字および文字列等のデータを付与することで、１つのイベント情報が生成される。例えば、気温に関するイベント情報は、図８のようなＸＭＬ（eXtensible Markup Language）形式で表現できる。この例は、気温２０度以上のイベント情報を示している。ここではイベントタイプの名前が属性情報として（Ｎａｍｅ＝"ＴｅｍｐｅｒａｔｕｒｅＭｏｒｅＴｈａｎ２０"）で表現されている。この名前は、本発明におけるシステム内においてグローバル・ユニークである。次にイベントタイプの詳細な属性情報として、場所情報である東京駅、そして実際の観測ポイントを示すＧＰＳ情報が定義されている。前記ＧＰＳ情報は、さらに緯度、経度情報に詳細化されており、北緯３５度、東経１３９度のように表現されている。また、観測されたイベント情報は、"Ｎｏｔｉｆｉｃａｔｉｏｎ"要素として表現されており、ここでは２１度が示されている。
【００８４】
イベント情報の生成は、周期的、又はある一定条件を満足したりした時に発生する。つまり、毎秒気温情報をイベント情報として発信する場合もあれば、また気温２０度以上の状態の時に毎秒イベント情報を生成し、それ以下であった時にはイベント情報を生成しないというような場合もあり得る。図８の例では、気温２０度超の時にイベントが発生することを意味するために、"ＴｅｍｐｅｒａｔｕｒｅＭｏｒｅＴｈａｎ２０"というイベント名で表した。
【００８５】
このようなイベント情報が利用可能なことを、パブリッシャーノード（Ｐ１１１、Ｐ１１２、Ｐ１１３）は、図９に示すような広告情報で広告する。パブリッシャーノードＰ１１１が発した広告情報は、ブローカーノードＢ１２１、ブローカーノードＢ１２３及びランデブーノードＲ１３１に保持される。またパブリッシャーノードＰ１１２が発した広告情報はブローカーノードＢ１２２、ブローカーノードＢ１２３及びランデブーノードＲ１３１に保持される。
【００８６】
一方で、このようなイベント情報を受信したいサブスクライバーノード（Ｓ１４１、Ｓ１４２）は、図１０に示すような要求情報よって受信登録を行う。サブスクライバーノードＳ１４１が発した要求情報は、ブローカーノードＢ１２６、ブローカーノードＢ１２４及びランデブーノードＲ１３１が保持する。またサブスクライバーノードＳ１４２が発した要求情報はブローカーノードＢ１２５、ブローカーノードＢ１２４及びランデブーノードＲ１３１が保持する。図１０では、パブリッシャーノードＰ１１１が発したＸＰａｔｈ（XML Path Language）を用いた要求情報を示している。ここでは、イベント名が"ＴｅｍｐｅｒａｔｕｒｅＭｏｒｅＴｈａｎ２０"、場所が東京駅、かつＧＰＳ位置のＩＤが０００１であるポイントから観測されたデータの受信登録を示している。
【００８７】
次に、オーバーレイネットワーク２０２上で実施される、広告情報を含む広告メッセージ及び要求情報を含む要求メッセージのルーティング、またイベント情報を含むイベントメッセージのルーティングについて簡単に説明する。オーバーレイネットワーク２０２は、例えばＰａｓｔｒｙやＣｈｏｒｄ等の技術で構成される。オーバーレイネットワーク２０２において、個々のノードは、固有のＩＤ（ノードＩＤ）を持ち、そのノードＩＤに基づき個々のノードが識別されている。メッセージルーティングは、このノードＩＤを使って行われる。本実施例でのノードＩＤのＩＤ長は１２８ビットと仮定する。
【００８８】
広告メッセージや要求メッセージをルーティングするためには、送信先となるノードＩＤが必要となる。このノードＩＤは、イベント名をハッシュして得られる（例えば、非特許文献１を参照。）。ハッシュ値の長さを１２８ビットとすると、イベント名は１２８ビット長のデータに変換される。そして１２８ビット長のデータＩＤが、前記オーバーレイネットワーク２０２で扱う広告メッセージや要求メッセージの送信先情報として使用される。
【００８９】
例えば、パブリッシャーノードＰ１１１が広告情報をブローカーノードＢ１２１へ送信したい場合、ブローカーノードＢ１２１はイベントタイプ要素（ＥｖｅｎｔＴｙｐｅ）を参照し、そこに記載されている属性情報（Ｎａｍｅ＝"ＴｅｍｐｅｒａｔｕｒｅＭｏｒｅＴｈａｎ２０"）をハッシュし、１２８ビット長のデータＩＤに変換する。そして、ブローカーノードＢ１２１はデータＩＤをオーバーレイネットワーク上の広告情報の送信先情報として使用する。オーバーレイネットワーク上では、広告情報が１２８ビット長のデータＩＤと数値的に一致するノードＩＤを持つオーバーレイノード、または数値的に近いノードＩＤを持つオーバーレイノードにルーティングされる。そして、その広告情報が到達したオーバーレイノード上で動作しているブローカーノード、つまり図７ではオーバーレイノードＮ１５７が、ランデブーノードＲ１３１として設定（アサイン）される。より具体的には、ブローカーノードＢ１２１が送信した広告情報は、
（ブローカーノードＢ１２１／オーバーレイノードＮ１５１）−（ブローカーノードＢ１２３／オーバーレイノードＮ１５３）−（ランデブーノードＲ１３１／オーバーレイノードＮ１５７）
というルートを通ってルーティングされる。
【００９０】
一方、要求情報の転送も同様である。図７では、最初にサブスクライバーノードＳ１４１が要求情報を生成し、そしてブローカーノードＢ１２６に転送する。次にブローカーノードＢ１２６は、イベントタイプ（ＥｖｅｎｔＴｙｐｅ）の各要素を参照し、そこに記載されている属性情報（Ｎａｍｅ＝"ＴｅｍｐｅｒａｔｕｒｅＭｏｒｅＴｈａｎ２０"）をハッシュし、１２８ビット長のデータＩＤに変換する。そして、データＩＤをオーバーレイネットワーク上の要求情報の送信先情報として使用する。オーバーレイネットワーク上では、前記要求情報を１２８ビット長のデータＩＤと数値的に一致するノードＩＤを持つオーバーレイノード、または数値的に近いノードＩＤを持つオーバーレイノードにルーティングする。同じイベント名をハッシュしたのであるから、同じＩＤが得られ、その結果、前記要求情報は、ランデブーノードＲ１３１／Ｎ１５７ヘルーティングされることとなる。
【００９１】
パブリッシャーノードＰ１１１やパブリッシャーノードＰ１１２から発信される図８に記載のイベント情報を含んだイベントメッセージのルーティングも同様である。
【００９２】
次にランデブーノードの負荷分散について説明する。図７では、複数のパブリッシャーノード（Ｐ１１１、Ｐ１１２、Ｐ１１３）が、同じイベント名のイベント情報を発信するモデルを図示している。つまり、パブリッシャーノード（Ｐ１１１、Ｐ１１２、Ｐ１１３）は、同じイベント名"ＴｅｍｐｅｒａｔｕｒｅＭｏｒｅＴｈａｎ２０"を使用している。その結果、これらの端末から発信されたイベント情報は、同じランデブーノードＲ１３１を介して、サブスクライバーノード（Ｓ１４１またはＳ１４２）へ配信される。このようなパブリッシャーが数多く存在すれば、ランデブーノードＲ１３１を通る前記イベントトラヒックが増加し、その結果、ランデブーノードＲ１３１が高負荷となる可能性がある。
【００９３】
そこで、ランデブーノードＲ１３１は、イベント情報のトラヒック（例えば、ランデブーノードＲ１３１を通過するイベント数）を監視するトラヒック監視手段を有する。また、ランデブーノードＲ１３１は、高負荷時に、その原因となるイベント情報（特定イベント情報）を特定する特定イベント決定手段を有する。さらに、ランデブーノードＲ１３１は、特定イベント情報をルーティングできる他の配信ルートを探し出すルート検出手段と、探し出した他の配信ルートを新たに構築し、特定イベント情報をルーティングするルート構築手段を有する。図７のイベント配信システムは、このように特定イベント情報をランデブーノードＲ１３１を経由しない新たな配信ルートでルーティングすることでランデブーノードＲ１３１への負荷を軽減する。
【００９４】
負荷分散対象となる特定イベント情報は、特定イベント決定手段で次のように特定される。ここで、イベント情報が複数の階層からなる識別要素で構成されているとする。特定イベント決定手段は、識別要素の階層のうち上位から少なくとも２つの階層の識別要素でイベント情報の種別を識別する上位イベント識別部と、上位イベント識別部が識別したイベント情報の種別毎にトラヒック量を計測するトラヒック計測部と、トラヒック計測部が計測した前記イベント情報の種別毎のトラヒック量の中で大きいほうから少なくとも１つを特定イベント情報として決定するイベント検出部と、を含む。
【００９５】
各イベント情報は、例えば図１３に示すようなツリー形式で管理される。第１レベルは、属性情報を（Ｎａｍｅ＝"ＴｅｍｐｅｒａｔｕｒｅＭｏｒｅＴｈａｎ２０"）としており、このイベントタイプの総トラヒック量を監視する階層である。つまり第１レベルのトラヒック量は、属性情報が（Ｎａｍｅ＝"ＴｅｍｐｅｒａｔｕｒｅＭｏｒｅＴｈａｎ２０"）のイベント情報の総トラヒック量であり、第２レベルの３つのイベント情報のトラヒック量の総和である。第２レベルは、詳細化された要素情報であるＰｌａｃｅやＧｌｏｂａｌＰｏｓｉｔｉｏｎといった要素情報で区別される階層である。ここでは東京駅、横浜駅、川崎駅を例とした。第３レベルは、第２レベルをさらに詳細化した要素情報で区別される階層である。例えば、東京駅において、ＧｌｏｂａｌＰｏｓｉｔｉｏｎの属性情報であるデータＩＤの値、またはＡｒｅａＯｆＬａｔｉｔｕｄｅ、ＤｅｇｒｅｅＯｆＬａｔｉｔｕｄｅ、ＡｒｅａＯｆＬｏｎｇｉｔｕｄｅ、ＤｅｇｒｅｅＯｆＬｏｎｇｉｔｕｄｅの要素情報で区別される階層である。数値は、それぞれの階層における要素情報で区別されるイベント情報のトラヒック量を示している。
【００９６】
ランデブーノードＲ１３１は、上位イベント識別部で各要素情報に基づきイベント情報を区別する。ランデブーノードＲ１３１は、第１レベルの要素情報で区別されるイベント情報のトラヒック量が一定量以上になった場合に、負荷分散のための処理を開始する。ランデブーノードＲ１３１は、トラヒック計測部で第２レベルの要素情報で区別されるイベント情報のトラヒック量を走査し、イベント検出部で最大トラヒックのイベント情報を特定する。図１３の場合、横浜駅の気温イベント情報のトラヒック量が最大であり、これが負荷分散対象の特定イベント情報となる。
【００９７】
次にランデブーノードＲ１３１の情報取得手段は、特定イベント決定手段が決定した特定イベント情報に関する広告情報を取得する。続いてランデブーノードＲ１３１のメッセージ生成手段は、情報取得手段が取得した広告情報を含む下流側イベント配信ルート変更メッセージを生成する。さらにランデブーノードＲ１３１の下流側メッセージ送信手段は、これをサブスクライバーノード側にあるブローカーノードへ送信する。
【００９８】
具体的には、ランデブーノードＲ１３１は、この特定イベント情報に対する下流側イベント配信ルート変更メッセージを生成し、ブローカーノードＢ１２４へ送信する。この下流側イベント配信ルート変更メッセージには、配信ルートの変更点を特定するための情報が含まれる。つまり、図１３の場合、横浜駅の気温イベントが負荷分散対象であるため、図１４に示すように第２レベルまでの属性情報が含まれる。
【００９９】
ここで、ブローカーノードＢ１２４の要求情報テーブル走査部は、ランデブーノードＲ１３１から下流側イベント配信ルート変更メッセージを受信したときに、要求情報が保持される要求情報テーブルを走査する。次にブローカーノードＢ１２４の分岐点判定部は、要求情報テーブル走査部が走査した要求情報テーブルに特定イベント情報に関する隣接転送先が複数登録されている場合に自ノードが分岐点ノードであると判定する。さらにブローカーノードＢ１２４の通知部は、自ノードが分岐点ノードであると分岐点判定部が判定したときに自ノードの識別子を分岐点ノード識別子としてランデブーノードＲ１３１へ通知する。
【０１００】
具体的には、ブローカーノードＢ１２４は、自ノードが特定イベント情報の分岐点ノードである場合、下流側イベント配信ルート変更メッセージの転送を終了する。分岐点ノードであるか否かは、ブローカーノードＢ１２４が図１２記載の要求情報テーブルを参照し、複数の隣接転送先の存在の有無で判定する。ブローカーノードＢ１２４は、複数の隣接転送先が存在すれば自ノードが分岐点ノードであると判定する。図７のブローカーノードＢ１２４／オーバーレイノードＮ１５４は分岐点ノードに該当する。
【０１０１】
自ノードが分岐点と判定したブローカーノードＢ１２４／オーバーレイノードＮ１５４は、例えば図１５に示すようにオーバーレイノードＮ１５４のノードＩＤを含む応答メッセージをランデブーノードＲ１３１へ通知する。
【０１０２】
そしてランデブーノードＲ１３１の上流側メッセージ送信手段は、ブローカーノードＢ１２４から分岐点ノード識別子が通知されたときに、分岐点ノード識別子を下流側イベント配信ルート変更メッセージに付加して上流側イベント配信ルート変更メッセージを作成し、パブリッシャーノード側にあるブローカーノードへ送信する。
【０１０３】
具体的には、ランデブーノードＲ１３１は、上流側イベント配信ルート変更メッセージを生成し、ブローカーノードＢ１２３へ送信する。この上流側イベント配信ルート変更メッセージには、例えば図１６に示すように、負荷分散の対象となるイベント情報を識別するための情報、つまりイベントタイプ（Ｎａｍｅ＝"ＴｅｍｐｅｒａｔｕｒｅＭｏｒｅＴｈａｎ２０"）と属性情報（Ｐｌａｃｅ="ＹｏｋｏｈａｍａＳｔａｔｉｏｎ"）、そしてルート変更先の情報、つまりオーバーレイノードＮ１５４が含まれる。
【０１０４】
ブローカーノードＢ１２３の広告情報テーブル走査部は、ランデブーノードＲ１３１から上流側イベント配信ルート変更メッセージを受信したときに、広告情報が保持される広告情報テーブルを走査する。そして、ブローカーノードＢ１２３の集約点判定部は、広告情報テーブル走査部が走査した広告情報テーブルに特定イベント情報に関する隣接転送先が複数登録されている場合に自ノードが前記集約点ノードであると判定する。
【０１０５】
図７のように、ブローカーノードＢ１２３は特定イベント情報の集約点ノードである。したがって、ブローカーノードＢ１２３は上流側イベント配信ルート変更メッセージを終端する。集約点ノードであるか否かは、ブローカーノードＢ１２３が図１１記載のルーティングテーブルを参照し、複数の隣接転送先の存在の有無で判定する。ブローカーノードＢ１２３は、複数の隣接転送先が存在すれば自ノードが集約点ノードであると判定する。図７のブローカーノードＢ１２３／オーバーレイノードＮ１５３は集約点ノードに該当する。
【０１０６】
ブローカーノードＢ１２３のルート構築手段は、自ノードが集約点ノードであると集約点判定部が判定したときに、広告情報テーブルに登録された隣接転送先を分岐点ノード識別子に書き換えて、新たな配信ルートを構築する。
【０１０７】
具体的には、ブローカーノードＢ１２３／オーバーレイノードＮ１５３は、自身が持つ広告情報テーブルを更新する。つまり広告情報テーブルの隣接転送先は、変更前がランデブーノードＲ１３１であり、変更後がブローカーノードＢ１２４となる。以上の結果、パブリッシャーノード（Ｐ１１１、Ｐ１１２）が送信したイベント情報は、
（ブローカーノードＢ１２３）−（ブローカーノードＢ１２４）
というルートを通して配信されるようになり、ランデブーノードＲ１３１を回避するようになる。その結果、図１３に示したランデブーノードＲ１３１は、負荷が２４５から８５に軽減される。
【０１０８】
以上の実施形態で、１つのイベント情報を特定イベント情報として負荷分散するイベント配信システムを説明した。しかし、本イベント配信システムは、ランデブーノードＲ１３１において一定の負荷軽減が満足されるまで、この処理を順次繰り返すことで、複数のイベント情報の負荷分散も可能である。また前述の実施形態は、１回の処理において、最大トラヒック量のイベント情報のみを負荷分散対象としたが、この限りではない。本イベント配信システムは、トラヒック量が最大、２番目、３番目というように複数のイベント情報を対象とし、同処理を同時並行的に行うことも可能である。個々のイベント情報の負荷分散処理は互いに疎な関係であり、必ずしも順次行う必要はない。
【０１０９】
また、特定イベント情報の別の発見方法もある。すなわち、特定イベント決定手段は、識別要素の階層のうち最下位の階層の識別要素でイベント情報の種別を識別する下位イベント識別部と、下位イベント識別部が識別したイベント情報の種別毎にトラヒック量を計測するトラヒック計測部と、トラヒック計測部が計測したイベント情報の種別毎のトラヒック量の中で大きいほうから少なくとも１つを特定イベント情報として決定するイベント検出部と、を含む。
【０１１０】
例えば、下位イベント識別部は個々の詳細なイベント情報の属性情報に基づくトラヒック量で分類してもよい。図１３において、トラヒック計測部は下位イベント識別部が識別した最下位に記載されている属性情報（ＧｌｏｂａｌＰｏｓｉｔｉｏｎＩＤ）の個々のイベント情報のトラヒック量を調査する。そして、イベント検出部が最大トラヒック量のイベント情報を特定イベント情報として決定する。その後、ルート構築手段が特定イベント情報の配信ルートをランデブーノードＲ１３１を回避する新たな配信ルートヘ変更し、負荷分散処理を完了する。例えば、ランデブーノードＲ１３１は、図１７の下流側イベント配信ルート変更メッセージを用い、特定イベント決定手段で横浜駅内のＧｌｏｂａｌＰｏｓｉｔｉｏｎＩＤ＝"０００１"の気温イベントを特定イベント情報に決定すれば、ランデブーノードＲ１３１の負荷が２４５から１４５に軽減される。
【０１１１】
さらに負荷分散が必要であれば、本イベント配信システムは、同処理を繰り返し第２、第３順位にソートされたイベント情報を順に負荷分散していくことで、ランデブーノードＲ１３１に対する負荷をさらに軽減することができる。個々の負荷分散処理は互いに疎な関係であり、必ずしも順次行う必要はない。例えば３つのイベント情報を負荷分散したい場合、本イベント配信システムは、本処理を順次３度繰り返し実行してもよく、また同時並行処理しても良い。
【０１１２】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。本願発明の構成や詳細には、発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【０１１３】
この出願は、２００９年２月１６日に出願された日本出願特願２００９−０３２５９９を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【産業上の利用可能性】
【０１１４】
本発明によれば、例えばパブリッシャー機能を各種センサーに配備し、前記センサーが検出したイベント情報を利用するアプリケーションにサブスクライバー機能を配備し、それらを本発明のイベント配信ネットワークで構築することで、様々なイベント情報を、様々なアプリケーションで利用することができる。センサーからのイベントトラヒックが増加し、ランデブーノードヘの負荷が高くなった場合でも、本発明により負荷を分散することができる。
【符号の説明】
【０１１５】
Ｐ１、Ｐ２、Ｐ１１、Ｐ１２、Ｐ１１１、Ｐ１１２、Ｐ１１３：パブリッシャーノード
Ｂ１〜Ｂ５、Ｂ２１〜Ｂ２６、Ｂ１２１〜Ｂ１２６：ブローカーノード
Ｒ、Ｒ３１、Ｒ１３１：ランデブーノード
Ｓ１、Ｓ２、Ｓ４１、Ｓ４２、Ｓ１４１、Ｓ１４２：サブスクライバーノード
１１：トラヒック監視手段
１２：特定イベント決定手段
１３：情報取得手段
１４：メッセージ生成手段
１５：メッセージ送信手段
２１ａ：上位イベント識別部
２１ｂ：下位イベント識別部
２２：トラヒック計測部
２３：イベント検出部
２４：上流側メッセージ送信部
２５：下流側メッセージ送信部
５１：要求情報テーブル
５２：広告情報テーブル
５３：ルート検出手段
５４：ルート構築手段
６１：要求情報テーブル走査部
６２：分岐点判定部
６３：通知部
６４：広告情報テーブル走査部
６５：分岐点判定部
Ｓｔ００：開始ステップ
Ｓｔ０１：トラヒック監視ステップ
Ｓｔ０２：特定イベント決定ステップ
Ｓｔ０３：情報取得ステップ
Ｓｔ０４：メッセージ生成ステップ
Ｓｔ０５：メッセージ送信ステップ
Ｓｔ０６：ルート検出ステップ
Ｓｔ０７：ルート構築ステップ
Ｓｔ０８：終了ステップ
Ｐｒ０１ａ：上位イベント識別手順
Ｐｒ０１ｂ：下位イベント識別手順
Ｐｒ０２：トラヒック計測手順
Ｐｒ０３：イベント検出手順
Ｐｒ０４：下流側メッセージ送信手順
Ｐｒ０５：分岐点判定手順
Ｐｒ０６：上流側メッセージ送信手順
Ｐｒ０７：集約点判定手順
Ｐｓ１１：要求情報テーブル走査過程
Ｐｓ１２：隣接転送先確認過程
Ｐｓ１３：判定過程
Ｐｓ１４：送信過程
Ｐｓ２１：広告情報テーブル走査過程
Ｐｓ２２：隣接転送先確認過程
Ｐｓ２３：判定過程
Ｎ１５１〜Ｎ１５６：オーバーレイノード
Ｔ１６１〜Ｔ１６５：通信クライアント
１７１〜１７３、１９１、１９２：端末
１８１〜１８７：物理ノード
２０１：イベント配信ネットワーク
２０２：オーバーレイネットワーク
２０３：インターネット
Ｒｔ１、Ｒｔ２、Ｒｔ３：ルート
ｐ１、ｐ２：イベント情報
ａ１、ａ２：広告情報
ｓ１、ｓ２：要求情報
【図１】
2010092751.tif 000003
【図２】
2010092751.tif 000004
【図３】
2010092751.tif 000005
【図４】
2010092751.tif 000006
【図５】
2010092751.tif 000007
【図６】
2010092751.tif 000008
【図７】
2010092751.tif 000009
【図８】
2010092751.tif 000010
【図９】
2010092751.tif 000011
【図１０】
2010092751.tif 000012
【図１１】
2010092751.tif 000013
【図１２】
2010092751.tif 000014
【図１３】
2010092751.tif 000015
【図１４】
2010092751.tif 000016
【図１５】
2010092751.tif 000017
【図１６】
2010092751.tif 000018
【図１７】
2010092751.tif 000019
【図１８】
2010092751.tif 000020
【図１９】
2010092751.tif 000021
【図２０】
2010092751.tif 000022
【図２１】
2010092751.tif 000023
【図２２】
2010092751.tif 000024
【手続補正書】
【提出日】平成23年7月20日(2011.7.20)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
発生したイベントの内容を含むイベント情報及び前記イベントを広告する広告情報を発信するパブリッシャーノードと、
前記イベントのうち所望のイベントのイベント情報を受信するための要求情報を発信するサブスクライバーノードと、
前記イベントに関する情報管理を行うランデブーノードと、
前記パブリッシャーノードが発信した前記イベント情報及び前記広告情報、並びに前記サブスクライバーノードが発信した前記要求情報、を転送するブローカーノードと、
を備え、
前記ランデブーノードは、
前記パブリッシャーノードが発信した前記イベント情報のトラヒック量を監視するトラヒック監視手段と、
前記トラヒック監視手段が監視するトラヒック量が所定値を超えたときに、前記イベント情報の中から負荷分散の実行対象となる特定イベント情報を決定する特定イベント決定手段と、を有し、
前記ブローカーノードは、
自ノードが、前記特定イベント情報の現在の配信ルートを変更するための集約点ノード又は分岐点ノードであるかを検出するルート検出手段と、
前記ルート検出手段が検出した前記集約点ノード及び前記分岐点ノードを経由し、前記ランデブーノードを回避する前記特定イベント情報の新たな配信ルートを構築するルート構築手段と、
を有するイベント配信システム。
【請求項２】
前記イベント情報が複数の階層からなる識別要素で構成されており、
前記ランデブーノードの前記特定イベント決定手段は、
前記識別要素の階層のうち上位から少なくとも２つの階層の識別要素で前記イベント情報の種別を識別する上位イベント識別手段と、
前記上位イベント識別手段が識別した前記イベント情報の種別毎にトラヒック量を計測するトラヒック計測手段と、
前記トラヒック計測手段が計測した前記イベント情報の種別毎のトラヒック量の中で大きいほうから少なくとも１つを前記特定イベント情報として決定するイベント検出手段と、を含むことを特徴とする請求項１に記載のイベント配信システム。
【請求項３】
前記イベント情報が複数の階層からなる識別要素で構成されており、
前記ランデブーノードの前記特定イベント決定手段は、
前記識別要素の階層のうち最下位の階層の識別要素で前記イベント情報の種別を識別する下位イベント識別手段と、
前記下位イベント識別手段が識別した前記イベント情報の種別毎にトラヒック量を計測するトラヒック計測手段と、
前記トラヒック計測手段が計測した前記イベント情報の種別毎のトラヒック量の中で大きいほうから少なくとも１つを前記特定イベント情報として決定するイベント検出手段と、を含むことを特徴とする請求項１又は請求項２に記載のイベント配信システム。
【請求項４】
前記ランデブーノードは、
前記特定イベント決定手段が決定した前記特定イベント情報に関する前記広告情報を取得する情報取得手段と、
前記情報取得手段が取得した前記広告情報を含むイベント配信ルート変更メッセージを生成するメッセージ生成手段と、
前記メッセージ生成手段が生成した前記イベント配信ルート変更メッセージを前記サブスクライバーノード側にある前記ブローカーノードへ送信する下流側メッセージ送信手段を含むメッセージ送信手段と、をさらに有することを特徴とする請求項１乃至請求項３のいずれか１項に記載のイベント配信システム。
【請求項５】
前記ブローカーノードの前記ルート検出手段は、
前記ランデブーノードから前記イベント配信ルート変更メッセージを受信したときに、前記要求情報が保持される要求情報テーブルを走査する要求情報テーブル走査手段と、
前記要求情報テーブル走査手段が走査した前記要求情報テーブルに前記特定イベント情報に関する隣接転送先が複数登録されている場合に自ノードが前記分岐点ノードであると判定する分岐点判定手段と、
自ノードが前記分岐点ノードであると前記分岐点判定手段が判定したときに自ノードの識別子を分岐点ノード識別子として前記ランデブーノードへ通知する通知手段と、を含むことを特徴とする請求項４に記載のイベント配信システム。
【請求項６】
前記ランデブーノードのメッセージ送信手段は、
前記ブローカーノードから前記分岐点ノード識別子が通知されたときに、前記分岐点ノード識別子を前記メッセージ生成手段が生成した前記イベント配信ルート変更メッセージに付加して前記パブリッシャーノード側にある前記ブローカーノードへ送信する上流側メッセージ送信手段をさらに含むことを特徴とする請求項５に記載のイベント配信システム。
【請求項７】
前記ブローカーノードの前記ルート検出手段は、
前記ランデブーノードから前記分岐点ノード識別子が付加された前記イベント配信ルート変更メッセージを受信したときに、前記広告情報が保持される広告情報テーブルを走査する広告情報テーブル走査手段と、
前記広告情報テーブル走査手段が走査した前記広告情報テーブルに前記特定イベント情報に関する隣接転送先が複数登録されている場合に自ノードが前記集約点ノードであると判定する集約点判定手段と、をさらに含むことを特徴とする請求項６に記載のイベント配信システム。
【請求項８】
前記ブローカーノードの前記ルート構築手段は、
自ノードが前記集約点ノードであると前記集約点判定手段が判定したときに、前記広告情報テーブルに登録された隣接転送先を前記分岐点ノード識別子に書き換えて、前記新たな配信ルートを構築することを特徴とする請求項７に記載のイベント配信システム。
【請求項９】
パブリッシャーノードで発生したイベントの内容を含むイベント情報をサブスクライバーノードへ配信するイベント配信システムに含まれ、
自ノードを通過する前記イベント情報のトラヒック量を監視するトラヒック監視手段と、
前記トラヒック監視手段が監視するトラヒック量が所定値を超えたときに、前記イベント情報の中から負荷分散の実行対象となる特定イベント情報を決定する特定イベント決定手段と、を有するランデブーノード。
【請求項１０】
前記イベント情報が複数の階層からなる識別要素で構成されており、
前記特定イベント決定手段は、
前記識別要素の階層のうち上位から少なくとも２つの階層の識別要素で前記イベント情報の種別を識別する上位イベント識別手段と、
前記上位イベント識別手段が識別した前記イベント情報の種別毎にトラヒック量を計測するトラヒック計測手段と、
前記トラヒック計測手段が計測した前記イベント情報の種別毎のトラヒック量の中で大きいほうから少なくとも１つを前記特定イベント情報として決定するイベント検出手段と、を含むことを特徴とする請求項９に記載のランデブーノード。
【請求項１１】
前記イベント情報が複数の階層からなる識別要素で構成されており、
前記特定イベント決定手段は、
前記識別要素の階層のうち最下位の階層の識別要素で前記イベント情報の種別を識別する下位イベント識別手段と、
前記下位イベント識別手段が識別した前記イベント情報の種別毎にトラヒック量を計測するトラヒック計測手段と、
前記トラヒック計測手段が計測した前記イベント情報の種別毎のトラヒック量の中で大きいほうから少なくとも１つを前記特定イベント情報として決定するイベント検出手段と、を含むことを特徴とする請求項９又は請求項１０に記載のランデブーノード。
【請求項１２】
前記特定イベント決定手段が決定した前記特定イベント情報に関する広告情報を取得する情報取得手段と、
前記情報取得手段が取得した前記広告情報を含むイベント配信ルート変更メッセージを生成するメッセージ生成手段と、
前記メッセージ生成手段で生成した前記イベント配信ルート変更メッセージを前記イベント配信システムに含まれるブローカーノードへ送信するメッセージ送信手段と、をさらに有することを特徴とする請求項９乃至請求項１１のいずれか１項に記載のランデブーノード。
【請求項１３】
前記メッセージ送信手段は、
前記メッセージ生成手段が生成した前記イベント配信ルート変更メッセージを前記サブスクライバーノード側にある前記ブローカーノードへ送信する下流側メッセージ送信手段を含むことを特徴とする請求項１２に記載のランデブーノード。
【請求項１４】
前記メッセージ送信手段は、
前記イベント配信ルート変更メッセージの送信先の前記ブローカーノードのうち少なくとも１つから分岐点ノード識別子が通知されたときに、前記分岐点ノード識別子を前記イベント配信ルート変更メッセージに付加して前記パブリッシャーノード側にある前記ブローカーノードへ送信する上流側メッセージ送信手段を含むことを特徴とする請求項１３に記載のランデブーノード。
【請求項１５】
パブリッシャーノードで発生したイベントの内容を含むイベント情報をサブスクライバーノードへ配信するイベント配信システムに含まれ、
自ノードが、前記イベント情報の中から負荷分散の実行対象となる特定イベント情報の現在の配信ルートを変更するための集約点ノード又は分岐点ノードであるかを検出するルート検出手段と、
前記ルート検出手段が検出した前記集約点ノード及び前記分岐点ノードを経由し、前記イベント配信システムに含まれるランデブーノードを回避する前記特定イベント情報の新たな配信ルートを構築するルート構築手段と、を有するブローカーノード。
【請求項１６】
前記ルート検出手段は、
前記ランデブーノードからイベント配信ルート変更メッセージを受信したときに、前記サブスクライバーノードが発信した前記イベント情報を要求する要求情報が保持される要求情報テーブルを走査する要求情報テーブル走査手段と、
前記要求情報テーブル走査手段が走査した前記要求情報テーブルに前記特定イベント情報に関する隣接転送先が複数登録されている場合に自ノードが前記分岐点ノードであると判定する分岐点判定手段と、
自ノードが前記分岐点ノードであると前記分岐点判定手段が判定したときに自ノードの識別子を分岐点ノード識別子として前記ランデブーノードへ通知する通知手段と、を含むことを特徴とする請求項１５に記載のブローカーノード。
【請求項１７】
前記ルート検出手段は、
前記ランデブーノードから前記分岐点ノード識別子が付加された前記イベント配信ルート変更メッセージを受信したときに、前記パブリッシャーノードが発信した前記イベントを広告する広告情報が保持される広告情報テーブルを走査する広告情報テーブル走査手段と、
前記広告情報テーブル走査手段が走査した前記広告情報テーブルに前記特定イベント情報に関する隣接転送先が複数登録されている場合に自ノードが前記集約点ノードであると判定する集約点判定手段と、を含むことを特徴とする請求項１６に記載のブローカーノード。
【請求項１８】
前記ルート構築手段は、
自ノードが前記集約点ノードであると前記集約点判定手段が判定したときに、前記広告情報テーブルに登録された隣接転送先を前記分岐点ノード識別子に書き換えて、前記新たな配信ルートを構築することを特徴とする請求項１７に記載のブローカーノード。
【請求項１９】
発生したイベントに関する情報管理を行うランデブーノードにおける、発生したイベントの内容を含むイベント情報及び前記イベントを広告する広告情報を発信するパブリッシャーノードが発信した前記イベント情報のトラヒック量を監視し、
前記トラヒック量の監視する処理で監視されるトラヒック量が所定値を超えたときに、前記イベント情報の中から負荷分散の実行対象となる特定イベント情報を決定する特定イベントを決定し、
前記特定イベント決定する処理で決定された前記特定イベント情報の現在の配信ルートを変更するための集約点ノードと分岐点ノードを、前記パブリッシャーノードが発信した前記イベント情報及び前記広告情報、並びに所望の前記イベント情報を受信するための要求情報を発信するサブスクライバーノードが発信した前記要求情報、を転送するブローカーノードの中から検出するルート検出処理をし、
前記ルート検出処理により検出された前記集約点ノードと前記分岐点ノードを経由し、前記ランデブーノードを回避する前記特定イベント情報の新たな配信ルートを構築するルート構築処理をする、ことを特徴とするイベント配信システムの負荷分散方法。
【請求項２０】
前記イベント情報が複数の階層からなる識別要素で構成されており、
前記特定イベント決定する処理では、
前記識別要素の階層のうち上位から少なくとも２つの階層の識別要素で前記イベント情報の種別を識別する上位イベントの識別処理をし、
前記上位イベントの識別処理で識別された前記イベント情報の種別毎にトラヒック量を計測し、
前記トラフィック量の計測処理で計測された前記イベント情報の種別毎のトラヒック量の中で大きいほうから少なくとも１つを前記特定イベント情報として決定するイベント検出処理を行うことを特徴とする請求項１９に記載のイベント配信システムの負荷分散方法。
【請求項２１】
前記イベント情報が複数の階層からなる識別要素で構成されており、
前記特定イベント決定する処理では、
前記識別要素の階層のうち最下位の階層の識別要素で前記イベント情報の種別を識別する下位イベントの識別処理をし、
前記イベントの識別処理で識別された前記イベント情報の種別毎にトラヒック量を計測し、
前記トラヒック量の計測処理で計測された前記イベント情報の種別毎のトラヒック量の中で大きいほうから少なくとも１つを前記特定イベント情報として決定するイベント検出処理を行うことを特徴とする請求項１９又は請求項２０に記載のイベント配信システムの負荷分散方法。
【請求項２２】
前記特定イベント決定する処理の後に、
前記特定イベント決定する処理で決定された前記特定イベント情報に関する前記広告情報を取得する情報取得処理をし、
前記情報取得処理で取得された前記広告情報を含むイベント配信ルート変更メッセージを生成し、
イベント配信ルート変更メッセージを生成する処理で生成された前記イベント配信ルート変更メッセージを前記ランデブーノードの前記サブスクライバーノード側にある前記ブローカーノードへ送信する下流側メッセージ送信処理を行うことを特徴とする請求項２１に記載のイベント配信システムの負荷分散方法。
【請求項２３】
前記下流側メッセージ送信処理の後に、
前記ランデブーノードの前記サブスクライバーノード側にある前記ブローカーノードが前記イベント配信ルート変更メッセージを受信したときに、前記要求情報が保持される前記ブローカーノードの要求情報テーブルを走査し、前記要求情報テーブルに前記特定イベント情報に関する隣接転送先が複数登録されている前記ブローカーノードを前記分岐点ノードと判定し、自ノードの識別子を分岐点ノード識別子として前記ランデブーノードへ通知する、前記ルート検出処理における分岐点判定処理を行うことを特徴とする請求項２２に記載のイベント配信システムの負荷分散方法。
【請求項２４】
前記分岐点判定処理の後に、
前記分岐点判定処理で前記分岐点ノードと判定された前記ブローカーノードの識別子を分岐点ノード識別子として、前記イベント配信ルート変更メッセージに付加して前記ランデブーノードの前記パブリッシャーノード側にある前記ブローカーノードへ送信する、前記メッセージ送信処理における上流側メッセージ送信処理を行うことを特徴とする請求項２３に記載のイベント配信システムの負荷分散方法。
【請求項２５】
前記上流側メッセージ送信処理の後に、
前記ランデブーノードの前記パブリッシャーノード側にある前記ブローカーノードが前記分岐点ノード識別子が付加された前記イベント配信ルート変更メッセージを受信したときに、前記広告情報が保持される前記ブローカーノードの広告情報テーブルを走査し、前記広告情報テーブルに前記特定イベント情報に関する隣接転送先が複数登録されている前記ブローカーノードを前記集約点ノードと判定する、前記ルート検出処理における集約点判定処理を行うことを特徴とする請求項２４に記載のイベント配信システムの負荷分散方法。
【請求項２６】
前記ルート構築処理では、前記ルート検出ステップで検出された前記集約点ノードとなる前記ブローカーノードの前記広告情報テーブルに登録された隣接転送先を前記分岐点ノード識別子に書き換えて、前記新たな配信ルートを構築することを特徴とする請求項２５に記載のイベント配信システムの負荷分散方法。
【請求項２７】
パブリッシャーノードで発生したイベントの内容を含むイベント情報をサブスクライバーノードへ配信するイベント配信システムに含まれるランデブーノードが自ノードを通過する前記イベント情報のトラヒック量を監視し、
前記トラヒック監視する処理で監視されるトラヒック量が所定値を超えたときに、前記イベント情報の中から負荷分散の実行対象となる特定イベント情報を決定することを特徴とするランデブーノードの負荷分散方法。
【請求項２８】
前記イベント情報が複数の階層からなる識別要素で構成されており、
前記特定イベント情報を決定する処理では、
前記識別要素の階層のうち上位から少なくとも２つの階層の識別要素で前記イベント情報の種別を識別する上位イベント識別処理をし、
前記上位イベント識別処理により識別された前記イベント情報の種別毎にトラヒック量を計測するトラヒック計測処理をし、
前記トラヒック計測処理により計測された前記イベント情報の種別毎のトラヒック量の中で大きいほうから少なくとも１つを前記特定イベント情報として決定するイベント検出処理を行うことを特徴とする請求項２７に記載のランデブーノードの負荷分散方法。
【請求項２９】
前記イベント情報が複数の階層からなる識別要素で構成されており、
前記特定イベント情報を決定する処理では、
前記識別要素の階層のうち最下位の階層の識別要素で前記イベント情報の種別を識別する下位イベント識別処理をし、
前記下位イベント識別処理で識別された前記イベント情報の種別毎にトラヒック量を計測するトラヒック計測処理をし、
前記トラヒック計測処理で計測された前記イベント情報の種別毎のトラヒック量の中で大きいほうから少なくとも１つを前記特定イベント情報として決定するイベント検出処理を行うことを特徴とする請求項２７又は請求項２８に記載のランデブーノードの負荷分散方法。
【請求項３０】
前記特定イベント情報を決定する処理の後に、
前記特定イベント情報を決定する処理で決定された前記特定イベント情報に関する前記広告情報を取得する情報取得処理をし、
前記情報取得処理で取得された前記広告情報を含むイベント配信ルート変更メッセージを生成し、
イベント配信ルート変更メッセージを生成する処理で生成された前記イベント配信ルート変更メッセージを前記イベント配信システムに含まれるブローカーノードへ送信することを特徴とする請求項２７乃至請求項２９のいずれか１項に記載のランデブーノードの負荷分散方法。
【請求項３１】
前記イベント配信ルート変更メッセージを前記ブローカーノードへ送信する処理では、
生成された前記イベント配信ルート変更メッセージを前記サブスクライバーノード側にある前記ブローカーノードへ送信する下流側メッセージ送信処理を行うことを特徴とする請求項３０に記載のランデブーノードの負荷分散方法。
【請求項３２】
前記イベント配信ルート変更メッセージを前記ブローカーノードへ送信する処理では、
前記イベント配信ルート変更メッセージの送信先の前記ブローカーノードのうち少なくとも１つから分岐点ノード識別子が通知されたときに、前記分岐点ノード識別子を前記イベント配信ルート変更メッセージに付加して前記パブリッシャーノード側にある前記ブローカーノードへ送信する上流側メッセージ送信処理を行うことを特徴とする請求項３１に記載のランデブーノードの負荷分散方法。
【請求項３３】
パブリッシャーノードで発生したイベントの内容を含むイベント情報をサブスクライバーノードへ配信するイベント配信システムに含まれるブローカーノードが、パブリッシャーノードで発生したイベントの内容を含むイベント情報の中から負荷分散の実行対象となる特定イベント情報の現在の配信ルートを変更するための集約点ノード又は分岐点ノードであるかを検出するルート検出処理をし、
前記ルート検出処理で検出された前記集約点ノード及び前記分岐点ノードを経由し、前記パブリッシャーノードで発生した前記イベント情報を前記サブスクライバーノードへ配信するイベント配信システム内に含まれるランデブーノードを回避する前記特定イベント情報の新たな配信ルートを構築するルート構築処理を行うブローカーノードの配信ルート構築方法。
【請求項３４】
前記ルート検出処理では、
前記ランデブーノードからイベント配信ルート変更メッセージを受信したときに、前記サブスクライバーノードが発信した前記イベント情報を要求する要求情報が保持される要求情報テーブルを走査し、前記要求情報テーブルに前記特定イベント情報に関する隣接転送先が複数登録されている場合に自ノードを前記分岐点ノードと判定し、自ノードの識別子を分岐点ノード識別子として前記ランデブーノードへ通知する分岐点判定処理を行うことを特徴とする請求項３３に記載のブローカーノードの配信ルート構築方法。
【請求項３５】
前記ルート検出処理では、
前記ランデブーノードから前記分岐点ノード識別子が付加された前記イベント配信ルート変更メッセージを受信したときに、前記パブリッシャーノードが発信した前記イベントを広告する広告情報が保持される広告情報テーブルを走査し、前記広告情報テーブルに前記特定イベント情報に関する隣接転送先が複数登録されている場合に自ノードを前記集約点ノードと判定する集約点判定処理を行うことを特徴とする請求項３４に記載のブローカーノードの配信ルート構築方法。
【請求項３６】
前記ルート構築処理では、
自ノードが前記集約点ノードであると前記集約点判定処理で判定されたときに、前記広告情報テーブルに登録された隣接転送先を前記分岐点ノード識別子に書き換えて、前記新たな配信ルートを構築することを特徴とする請求項３５に記載のブローカーノードの配信ルート構築方法。
【請求項３７】
ランデブーノードのトラヒック監視手段が、自ノードを通過するパブリッシャーノードで発生したイベントの内容を含むイベント情報のトラヒック量を監視するトラヒック監視処理と、
前記ランデブーノードの特定イベント決定手段が、前記トラヒック監視手段が監視するトラヒック量が所定値を超えたときに、前記イベント情報の中から負荷分散の実行対象となる特定イベント情報を決定する特定イベント決定処理と、をコンピュータに実行させるための負荷分散プログラム。
【請求項３８】
前記イベント情報が複数の階層からなる識別要素で構成されており、
前記特定イベント決定処理では、
前記特定イベント決定手段に含まれる上位イベント識別手段が、前記識別要素の階層のうち上位から少なくとも２つの階層の識別要素で前記イベント情報の種別を識別する上位イベント識別処理と、
前記特定イベント決定手段に含まれるトラヒック計測手段が、前記上位イベント識別手段が識別した前記イベント情報の種別毎にトラヒック量を計測するトラヒック計測処理と、
前記特定イベント決定手段に含まれるイベント検出手段が、前記トラヒック計測手段が計測した前記イベント情報の種別毎のトラヒック量の中で大きいほうから少なくとも１つを前記特定イベント情報として決定するイベント検出処理と、をコンピュータに実行させることを特徴とする請求項３７に記載の負荷分散プログラム。
【請求項３９】
前記イベント情報が複数の階層からなる識別要素で構成されており、
前記特定イベント決定処理では、
前記特定イベント決定手段に含まれる下位イベント識別手段が、前記識別要素の階層のうち最下位の階層の識別要素で前記イベント情報の種別を識別する下位イベント識別処理と、
前記特定イベント決定手段に含まれるトラヒック計測手段が、前記下位イベント識別手段が識別した前記イベント情報の種別毎にトラヒック量を計測するトラヒック計測処理と、
前記特定イベント決定手段に含まれるイベント検出手段が、前記トラヒック計測手段が計測した前記イベント情報の種別毎のトラヒック量の中で大きいほうから少なくとも１つを前記特定イベント情報として決定するイベント検出処理と、をコンピュータに実行させることを特徴とする請求項３７又は請求項３８に記載の負荷分散プログラム。
【請求項４０】
前記特定イベント決定処理の後に、
前記ランデブーノードの情報取得手段が、前記特定イベント決定ステップで決定された前記特定イベント情報に関する広告情報を取得する情報取得処理と、
前記ランデブーノードのメッセージ生成手段が、前記情報取得手段が取得した前記広告情報を含むイベント配信ルート変更メッセージを生成するメッセージ生成処理と、
前記ランデブーノードのメッセージ送信手段が、前記メッセージ生成手段が生成した前記イベント配信ルート変更メッセージを前記イベント配信システムに含まれるブローカーノードへ送信するメッセージ送信処理と、をコンピュータに実行させることを特徴とする請求項３７乃至請求項３９のいずれか１項に記載の負荷分散プログラム。
【請求項４１】
前記メッセージ送信処理では、
前記メッセージ送信手段に含まれる下流側メッセージ送信手段が、前記メッセージ生成手段が生成した前記イベント配信ルート変更メッセージを前記サブスクライバーノード側にある前記ブローカーノードへ送信する下流側メッセージ送信処理をコンピュータに実行させることを特徴とする請求項４０に記載の負荷分散プログラム。
【請求項４２】
前記メッセージ送信処理では、
前記メッセージ送信手段に含まれる上流側メッセージ送信手段が、前記イベント配信ルート変更メッセージの送信先の前記ブローカーノードのうち少なくとも１つから分岐点ノード識別子が通知されたときに、前記分岐点ノード識別子を前記イベント配信ルート変更メッセージに付加して前記パブリッシャーノード側にある前記ブローカーノードへ送信する上流側メッセージ送信処理をコンピュータに実行させることを特徴とする請求項４１に記載の負荷分散プログラム。
【請求項４３】
ブローカーノードに含まれるルート検出手段が、自ノードがパブリッシャーノードで発生したイベントの内容を含むイベント情報の中から負荷分散の実行対象となる特定イベント情報の現在の配信ルートを変更するための集約点ノード又は分岐点ノードであるかを検出するルート検出処理と、
前記ブローカーノードに含まれるルート構築手段が、前記ルート検出手段が検出した前記集約点ノード及び前記分岐点ノードを経由し、前記イベント配信システムに含まれるランデブーノードを回避する前記特定イベント情報の新たな配信ルートを構築するルート構築処理と、をコンピュータに実行させることを特徴とする配信ルート構築プログラム。
【請求項４４】
前記ルート検出処理では、
前記ルート検出手段に含まれる要求情報テーブル走査手段が、前記ランデブーノードからイベント配信ルート変更メッセージを受信したときに、前記イベント情報の配信先であるサブスクライバーノードが発信した前記イベント情報を要求する要求情報が保持される要求情報テーブルを走査し、
前記ルート検出手段に含まれる分岐点判定手段が、前記要求情報テーブルに前記特定イベント情報に関する隣接転送先が複数登録されている場合に自ノードが前記分岐点ノードであると判定し、
前記ルート検出手段に含まれる通知手段が、自ノードの識別子を分岐点ノード識別子として前記ランデブーノードへ通知する分岐点判定処理、をコンピュータに実行させることを特徴とする請求項４３に記載の配信ルート構築プログラム。
【請求項４５】
前記ルート検出処理では、
前記ルート検出手段に含まれる広告情報テーブル走査手段が、前記ランデブーノードから前記分岐点ノード識別子が付加された前記イベント配信ルート変更メッセージを受信したときに、前記パブリッシャーノードが発信した前記イベントを広告する広告情報が保持される広告情報テーブルを走査し、
前記ルート検出手段に含まれる集約点判定手段が、前記広告情報テーブルに前記特定イベント情報に関する隣接転送先が複数登録されている場合に自ノードを前記集約点ノードと判定する集約点判定処理をコンピュータに実行させることを特徴とする請求項４４に記載の配信ルート構築プログラム。
【請求項４６】
前記ルート構築処理では、
前記ルート構築手段が、自ノードが前記集約点ノードであると前記集約点判定処理で判定されたときに、前記広告情報テーブルに登録された隣接転送先を前記分岐点ノード識別子に書き換えて、前記新たな配信ルートを構築するように、コンピュータに実行させることを特徴とする請求項４５に記載の配信ルート構築プログラム。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０００１
【補正方法】変更
【補正の内容】
【０００１】
本発明は、ある観測対象の状態変化が発生した時に、その状態変化を情報化するとともに、その情報の配信を希望する受信者へ状態変化を通知するイベント配信システム、そのランデブーノード、これらの負荷分散方法及び負荷分散プログラム、並びにイベント配信システムのブローカーノード、その配信ルート構築方法及び配信ルート構築プログラムに関する。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００１０
【補正方法】変更
【補正の内容】
【００１０】
したがって、本発明の目的は、上記課題を解決するための技術を提供することである。すなわち、本発明は、ランデブーノードの負荷を軽減してシステム上のボトルネックを解消できるイベント配信システム、ランデブーノード、ブローカーノード、イベント配信システムの負荷分散方法、ランデブーノードの負荷分散方法、ブローカーノードの配信ルート構築方法、負荷分散プログラム、及び配信ルート構築プログラムを提供することを目的とする。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００１６
【補正方法】変更
【補正の内容】
【００１６】
さらに、本発明に係る負荷分散プログラムは、ランデブーノードのトラヒック監視手段が、自ノードを通過するパブリッシャーノードで発生したイベントの内容を含むイベント情報のトラヒック量を監視するトラヒック監視処理と、前記ランデブーノードの特定イベント決定手段が、前記トラヒック監視手段が監視するトラヒック量が所定値を超えたときに、前記イベント情報の中から負荷分散の実行対象となる特定イベント情報を決定する特定イベント決定処理と、をコンピュータに実行させるためのものである。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００１７
【補正方法】変更
【補正の内容】
【００１７】
本発明は、ランデブーノードの負荷を軽減してシステム上のボトルネックを解消できるイベント配信システム、その負荷分散方法及び負荷分散プログラムを提供することができる。
【国際調査報告】
2010092751.tif 000025
2010092751.tif 000026
2010092751.tif 000027
2010092751.tif 000028