JPWO2010092751A1 - イベント配信システム、ランデブーノード、ブローカーノード、イベント配信システムの負荷分散方法、ランデブーノードの負荷分散方法、ブローカーノードの配信ルート構築方法、負荷分散プログラム、及び配信ルート構築プログラム - Google Patents

イベント配信システム、ランデブーノード、ブローカーノード、イベント配信システムの負荷分散方法、ランデブーノードの負荷分散方法、ブローカーノードの配信ルート構築方法、負荷分散プログラム、及び配信ルート構築プログラム Download PDF

Info

Publication number
JPWO2010092751A1
JPWO2010092751A1 JP2010550431A JP2010550431A JPWO2010092751A1 JP WO2010092751 A1 JPWO2010092751 A1 JP WO2010092751A1 JP 2010550431 A JP2010550431 A JP 2010550431A JP 2010550431 A JP2010550431 A JP 2010550431A JP WO2010092751 A1 JPWO2010092751 A1 JP WO2010092751A1
Authority
JP
Japan
Prior art keywords
node
event
information
event information
rendezvous
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2010550431A
Other languages
English (en)
Inventor
浩史 傅寳
浩史 傅寳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Publication of JPWO2010092751A1 publication Critical patent/JPWO2010092751A1/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/302Route determination based on requested QoS
    • H04L45/306Route determination based on the nature of the carried application
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

ランデブーノードの負荷を軽減してシステム上のボトルネックを解消できるイベント配信システムを提供することを目的とする。本発明に係るイベント配信システムは、パブリッシャーノード、サブスクライバーノード、ランデブーノード及びブローカーノードを備え、ランデブーノードは、パブリッシャーノードが発信したイベント情報のトラヒック量を監視するトラヒック監視手段と、トラヒック量が所定値を超えたときにイベント情報の中から負荷分散の実行対象となる特定イベント情報を決定する特定イベント決定手段と、を有し、ブローカーノードは、自ノードが、特定イベント情報の配信ルートの集約点ノード又は分岐点ノードであるかを検出するルート検出手段と、集約点ノード及び分岐点ノードを経由し、ランデブーノードを回避する特定イベント情報の新たな配信ルートを構築するルート構築手段と、を有する。

Description

本発明は、ある観測対象の状態変化が発生した時に、その状態変化を情報化するとともに、その情報の配信を希望する受信者へ状態変化を通知するイベント配信システム、そのランデブーノード、これらの負荷分散方法及び負荷分散プログラムが格納された記憶媒体、並びにイベント配信システムのブローカーノード、その配信ルート構築方法及び配信ルート構築プログラムが格納された記憶媒体に関する。
ある観測対象の状態変化が発生した時に、その状態変化を情報化するとともに、その情報の配信を希望する受信者へ状態変化を通知するイベント配信システムが知られている(例えば、非特許文献1を参照。)。図1は、関連するイベント配信システムの一例である。図1のイベント配信システムは、パブリッシャーノード(P1,P2)と、ブローカーノード(B1〜B5)と、イベント配信ツリーの頂点となるランデブーノードRと、サブスクライバーノード(S1,S2)と、から構成されている。図1のイベント配信システムは次のように動作する。
イベントを発信しようとするパブリッシャーノードP1は、最初にイベントの広告を行う。図1に示されているようにこの広告処理は、パブリッシャーノードP1が、広告情報a1をランデブーノードRへ送信することで実行される。ブローカーノードB1は、パブリッシャーノードP1から広告情報a1を受信した時に、広告用のルーティングテーブルを作成する。すなわち、
送信元(パブリッシャーノードP1)−転送先(ランデブーノードR)
という設定を作成する。ここで作成したイベント配信パスのルートRt1
(パブリッシャーノードP1)−(ブローカーノードB1)−(ランデブーノードR)
は、パブリッシャーノードP1がイベント情報p1を発信する場合に使用される。
イベントを発信しようとするパブリッシャーノードP2も、同様の処理、つまり広告情報a2をランデブーノードRへ広告する。この広告情報a2は、ブローカーノードB2においてランデブーノードRへの送信が終端されている。これは、広告情報a1と広告情報a2が包含関係にある場合、例えば同種のイベントを広告した場合に発生する。図1では広告情報a1が既に
(ブローカーノードB1)−(ランデブーノードR)
への配信ルートを広告していることから、広告情報a2のためのブローカーノードB1からランデブーノードRへの配信ルートは、広告情報a1で設定した配信ルートが利用される。
一方、広告されたイベントを受信しようとするサブスクライバーノードS1は、イベントを受信するために要求情報s1をランデブーノードRへ送信する。この要求情報s1は、図1のルートRt2
(サブスクライバーノードS1)−(ブローカーノードB3)−(ブローカーノードB1)
を通ってランデブーノードRへ到達する。また、この要求情報s1は、ブローカーノードB2へも転送されている。これは、イベント情報p1を広告しようとしている広告情報a2とイベント情報p1を受信しようとしている要求情報s1の条件とが一致したことで発生している。より詳細に説明すると、この要求情報s1が転送される経路上にあるブローカーノードB3及びブローカーノードB1では、広告情報a1をランデブーノードRへ転送する際に構築したルーティングテーブルを参照する。この参照において、広告しようとしているイべントと受信しようとしているイベントの条件が一致すれば、要求情報s1は、広告情報a1で構築したルートを逆に辿って転送される。つまり図1では、要求情報s1は、ブローカーノードB1からブローカーノードB2へ転送されている。図1には記載されていないが、この処理に基づき広告情報a2で広告されたイベントは、パブリッシャーノードP2において状態変化が発生した時に、イベント情報p2として、
(パブリッシャーノードP2)−(ブローカーノードB2)−(ブローカーノードB1)−(ブローカーノードB3)−(サブスクライバーノードS1)
という配信ルートを通って配信される。
Peter R. Pietzuch著「Hermes: A scalable event−based middleware」Computer Laboratory, University of Cambridge、 2004年7月、4.3.5章
しかし、上述のイベント配信システムには、ランデブーノードがシステム上のボトルネックになりやすいという課題があった。その理由は次の通りである。
図1のイベント配信システムは、ランデブーノードRの負荷が大きくなるルートを構築することがある。例えば、パブリッシャーノードP1からサブスクライバーノードS2へイベント情報p1を配信する場合、図1に示されたようなルートRt3
(パブリッシャーノードP1)−(ブローカーノードB1)−(ランデブーノードR)
−(ブローカーノードB5)−(サブスクライバーノードS2)
を構築してしまうことがある。これは、要求情報s2をランデブーノードRヘ転送する過程において、広告情報a1で構築されたルートRt1のような配信パスが検出されなかった場合に発生する。
ランデブーノードは、イベント広告およびイベント受信登録のイベント情報管理を行うための機能が集中している。ここに、上述のようにランデブーノードを経由するイベント配信ルートが形成されれば、ランデブーノードの負荷が増大し、ランデブーノードの処理能力が低下するためである。
したがって、本発明の目的は、上記課題を解決するための技術を提供することである。すなわち、本発明は、ランデブーノードの負荷を軽減してシステム上のボトルネックを解消できるイベント配信システム、ランデブーノード、ブローカーノード、イベント配信システムの負荷分散方法、ランデブーノードの負荷分散方法、ブローカーノードの配信ルート構築方法、負荷分散プログラムが格納された記憶媒体、及び配信ルート構築プログラムが格納された記憶媒体を提供することを目的とする。
本発明は、ランデブーノードを避けてイベント情報を配信するための配信ルートを構築することでランデブーノードヘの負荷を軽減することとした。
具体的には、本発明に係るイベント配信システムは、発生したイベントの内容を含むイベント情報及び前記イベントを広告する広告情報を発信するパブリッシャーノードと、前記イベントのうち所望のイベントのイベント情報を受信するための要求情報を発信するサブスクライバーノードと、前記イベントに関する情報管理を行うランデブーノードと、前記パブリッシャーノードが発信した前記イベント情報及び前記広告情報、並びに前記サブスクライバーノードが発信した前記要求情報、を転送するブローカーノードと、を備え、前記ランデブーノードは、前記パブリッシャーノードが発信した前記イベント情報のトラヒック量を監視するトラヒック監視手段と、前記トラヒック監視手段が監視するトラヒック量が所定値を超えたときに、前記イベント情報の中から負荷分散の実行対象となる特定イベント情報を決定する特定イベント決定手段と、を有し、前記ブローカーノードは、自ノードが、前記特定イベント情報の現在の配信ルートを変更するための集約点ノード又は分岐点ノードであるかを検出するルート検出手段と、前記ルート検出手段が検出した前記集約点ノード及び前記分岐点ノードを経由し、前記ランデブーノードを回避する前記特定イベント情報の新たな配信ルートを構築するルート構築手段と、を備えるものである。
前記ランデブーノードは、パブリッシャーノードで発生したイベントの内容を含むイベント情報をサブスクライバーノードへ配信するイベント配信システムに含まれ、自ノードを通過する前記イベント情報のトラヒック量を監視するトラヒック監視手段と、前記トラヒック監視手段が監視するトラヒック量が所定値を超えたときに、前記イベント情報の中から負荷分散の実行対象となる特定イベント情報を決定する特定イベント決定手段と、を有する。
前記ブローカーノードは、パブリッシャーノードで発生したイベントの内容を含むイベント情報をサブスクライバーノードへ配信するイベント配信システムに含まれ、自ノードが、前記イベント情報の中から負荷分散の実行対象となる特定イベント情報の現在の配信ルートを変更するための集約点ノード又は分岐点ノードであるかを検出するルート検出手段と、前記ルート検出手段が検出した前記集約点ノード及び前記分岐点ノードを経由し、前記イベント配信システムに含まれるランデブーノードを回避する前記特定イベント情報の新たな配信ルートを構築するルート構築手段と、を有する。
また、本発明に係るイベント配信システムの負荷分散方法は、発生したイベントに関する情報管理を行うランデブーノードにおける、発生したイベントの内容を含むイベント情報及び前記イベントを広告する広告情報を発信するパブリッシャーノードが発信した前記イベント情報のトラヒック量を監視し、前記トラヒック量の監視する処理で監視されるトラヒック量が所定値を超えたときに、前記イベント情報の中から負荷分散の実行対象となる特定イベント情報を決定する特定イベントを決定し、前記特定イベント決定する処理で決定された前記特定イベント情報の現在の配信ルートを変更するための集約点ノードと分岐点ノードを、前記パブリッシャーノードが発信した前記イベント情報及び前記広告情報、並びに所望の前記イベント情報を受信するための要求情報を発信するサブスクライバーノードが発信した前記要求情報、を転送するブローカーノードの中から検出するルート検出処理をし、前記ルート検出処理により検出された前記集約点ノードと前記分岐点ノードを経由し、前記ランデブーノードを回避する前記特定イベント情報の新たな配信ルートを構築するルート構築処理をするものである。
さらに、本発明に係る負荷分散プログラムの記録媒体は、ランデブーノードのトラヒック監視手段が、自ノードを通過するパブリッシャーノードで発生したイベントの内容を含むイベント情報のトラヒック量を監視するトラヒック監視処理と、前記ランデブーノードの特定イベント決定手段が、前記トラヒック監視手段が監視するトラヒック量が所定値を超えたときに、前記イベント情報の中から負荷分散の実行対象となる特定イベント情報を決定する特定イベント決定処理と、をコンピュータに実行させるための負荷分散プログラムを格納するものである。
本発明は、ランデブーノードの負荷を軽減してシステム上のボトルネックを解消できるイベント配信システム、その負荷分散方法及び負荷分散プログラムが格納された記憶媒体を提供することができる。
関連するイベント配信システムの概略構成図である。 本発明に係るイベント配信システムの概略構成図である。 本発明に係るイベント配信システムにおいて配信ルートの設定を説明するシーケンスチャートである。 本発明に係るイベント配信システムにおいて配信ルートの変更を説明するシーケンスチャートである。 本発明に係るイベント配信システムのブローカーノードが持つ広告情報テーブルを説明する図である。 本発明に係るイベント配信システムのブローカーノードが持つ要求情報テーブルを説明する図である。 本発明に係るイベント配信システムの実施例を説明する概略構成図である。 本発明に係るイベント配信システムの実施例で配信されるイベント情報の例である。 本発明に係るイベント配信システムの実施例で配信される広告情報の例である。 本発明に係るイベント配信システムの実施例で配信される要求情報の例である。 本発明に係るイベント配信システムの実施例においてブローカーノードが持つ広告情報テーブルを説明する図である。 本発明に係るイベント配信システムの実施例においてブローカーノードが持つ要求情報テーブルを説明する図である。 本発明に係るイベント配信システムの実施例においてランデブーノードのトラヒック量を説明する図である。 本発明に係るイベント配信システムの実施例においてランデブーノードが生成及び送信する下流側イベント配信ルート変更メッセージの例である。 本発明に係るイベント配信システムの実施例においてブローカーノードが応答する応答メッセージの例である。 本発明に係るイベント配信システムの実施例においてランデブーノードが生成及び送信する上流側イベント配信ルート変更メッセージの例である。 本発明に係るイベント配信システムの実施例においてブローカーノードが配信ルート変更時に用いる下流側イベント配信ルート変更メッセージの例である。 本発明に係るランデブーノードの構成を説明するブロック図である。 本発明に係るブローカーノードの構成を説明するブロック図である。 本発明に係るイベント配信システムの動作を説明するフローチャートである。 本発明に係るイベント配信システムの分岐点判定手順の具体的手順を説明する図である。 本発明に係るイベント配信システムの集約点判定手順の具体的手順を説明する図である。
添付の図面を参照して本発明の実施の形態を説明する。以下に説明する実施の形態は本発明の構成の例であり、本発明は、以下の実施の形態に制限されるものではない。なお、本明細書及び図面において符号が同じ構成要素は、相互に同一のものを示すものとする。
図2は、本実施形態のイベント配信システムの概略構成図である。本イベント配信システムは、イベント配信ネットワーク101と、それに接続する端末群で構成される。イベント配信ネットワーク101は、イベント情報をルーティングするブローカーノード(B21〜B26)及びランデブーノードR31を含む。イベント配信ネットワーク101は、例えば、端末群を裾とし、ランデブーノードR31を頂点としたマルチキャストツリー状のネットワークである。端末群は、イベント情報(p1、p2)及び広告情報(a1、a2)を発信するパブリッシャーノード(P11,P12)と、イベントを要求する要求情報(s1、s2)を発信し、イベント情報(p1、p2)を受信するサブスクライバーノード(S41,S42)と、を含む。
図2のイベント配信システムでは端末群は次のように接続されている。パブリッシャーノードP11はブローカーノードB21に接続している。パブリッシャーノードP12はブローカーノードB22に接続している。サブスクライバーノードS41はブローカーノードB26に接続している。サブスクライバーノードS42はブローカーノードB25に接続している。図2において、太い実線矢印は、パブリッシャーノード(P11、P12)から発信されたイベント情報(p1、p2)の配信ルートを示している。イベント情報は、ブローカーノードB23で集約され、ランデブーノードR31を経由し、ブローカーノードB24で分岐された。イベント情報は、ブローカーノードB24での分岐後、ブローカーノードB26を経由してサブスクライバーノードS41へ配信されるか、ブローカーノードB25を経由してサブスクライバーノードS42へ配信されている。
本イベント配信システムは、図1のイベント配信システムで説明したように配信ルートを構築する。そして、本イベント配信システムは、特に図2の破線で示したブローカーノードB23からブローカーノードB24への配信ルートを新たに構築する。本イベント配信システムは、新たな配信ルートで、ランデブーノードR31を介さない配信ルートを実現し、ランデブーノードR31への負荷を軽減する。
図18は、ランデブーノードR31の構成を説明するブロック図である。ランデブーノードR31は、最小構成として、自ノードを通過する前記イベント情報のトラヒック量を監視するトラヒック監視手段11と、トラヒック監視手段11が監視するトラヒック量が所定値を超えたときに、イベント情報の中から負荷分散の実行対象となる特定イベント情報を決定する特定イベント決定手段12と、を有している。
ここで、特定イベント決定手段12は、イベント情報の識別要素の階層のうち上位から少なくとも2つの階層の識別要素でイベント情報の種別を識別する上位イベント識別部21aと、識別要素の階層のうち最下位の階層の識別要素でイベント情報の種別を識別する下位イベント識別部21bと、上位イベント識別部21a又は下位イベント識別部21bが識別したイベント情報の種別毎にトラヒック量を計測するトラヒック計測部22と、トラヒック計測部22が計測したイベント情報の種別毎のトラヒック量の中で大きいほうから少なくとも1つを特定イベント情報として決定するイベント検出部23と、を含む。
ランデブーノードR31は、特定イベント決定手段12が決定した特定イベント情報に関する広告情報を取得する情報取得手段13と、情報取得手段13が取得した広告情報を含むイベント配信ルート変更メッセージを生成するメッセージ生成手段14と、メッセージ生成手段14で生成した前記イベント配信ルート変更メッセージをイベント配信システムに含まれるブローカーノード(B21〜B26)へ送信するメッセージ送信手段15と、をさらに有してもよい。
メッセージ送信手段15は、メッセージ生成手段14が生成したイベント配信ルート変更メッセージをサブスクライバーノード(S41,S42)側にあるブローカーノード(B24〜B26)へ送信する下流側メッセージ送信部24と、ブローカーノード(B24〜B26)のうち少なくとも1つから分岐点ノード識別子が通知されたときに、分岐点ノード識別子をイベント配信ルート変更メッセージに付加してパブリッシャーノード(P11,P12)側にあるブローカーノード(B21〜B23)へ送信する上流側メッセージ送信部25と、を含む。
ランデブーノードR31の動作を以下に説明する。
ランデブーノードR31は、パブリッシャーノード(P11、P12)から送られてくる広告情報(a1,a2)を保持する手段1を有する。広告情報(a1,a2)は、イベントの型情報、および属性情報を含む。
ランデブーノードR31は、サブスクライバーノード(S41、S42)から送られてくる要求情報(s1、s2)を保持する手段2を有する。要求情報(s1、s2)は、要求するイベントのイベントタイプ、属性情報、およびフィルタ条件が含まれる。
ランデブーノードR31は、イベントの型単位、またはイベントの型+属性情報で、ランデブーノードR31を通過する個々のイベント情報を識別する手段3を有する。
ランデブーノードR31は、手段3で識別したイベント毎にトラヒック量を監視する手段4を有する。例えば、あるイベント情報に着目した時に、ランデブーノードR31を通過するイベント数(event/s)をトラヒック量として取り扱う。
ランデブーノードR31は、あるイベント情報のトラヒック量が一定量を超過したことを検出し、このイベントを特定イベント情報に決定する手段5を有する。
ランデブーノードR31は、手段5でトラヒック量の超過を検出した場合に、該イベント情報の配信ルートを変更するための上流側イベント配信ルート変更メッセージを生成し、パブリッシャーノード(P11、P12)側へ送信する手段6を有する。詳細には、上流側イベント配信ルート変更メッセージは、後述する手段13で通知された分岐点ノードの識別情報が含まれる。
ランデブーノードR31は、手段5でトラヒック量の超過を検出した場合に、下流側イベント配信ルート変更メッセージを生成し、サブスクライバーノード(S41、S42)側へ送信する手段7を有する。
図19は、ブローカーノード(B21〜B26)の構成を説明するブロック図である。ブローカーノード(B21〜B26)は、最小構成として、自ノードが、イベント情報の中から負荷分散の実行対象となる特定イベント情報の現在の配信ルートを変更するための集約点ノード又は分岐点ノードであるかを検出するルート検出手段53と、ルート検出手段53が検出した集約点ノード及び分岐点ノードを経由し、ランデブーノードR31を回避する特定イベント情報の新たな配信ルートを構築するルート構築手段54と、を有している。
ここで、ルート検出手段53は、ランデブーノードR31からイベント配信ルート変更メッセージを受信したときに、サブスクライバーノード(S41,S42)が発信したイベント情報を要求する要求情報が保持される要求情報テーブル51を走査する要求情報テーブル走査部61と、要求情報テーブル走査部61が走査した要求情報テーブル51に特定イベント情報に関する隣接転送先が複数登録されている場合に自ノードが分岐点ノードであると判定する分岐点判定部62と、自ノードが分岐点ノードであると分岐点判定部62が判定したときに自ノードの識別子を分岐点ノード識別子としてランデブーノードR31へ通知する通知部63と、を含む。
さらに、ルート検出手段53は、ランデブーノードR31から分岐点ノード識別子が付加されたイベント配信ルート変更メッセージを受信したときに、パブリッシャーノード(P11,P12)が発信したイベントを広告する広告情報が保持される広告情報テーブル52を走査する広告情報テーブル走査部64と、広告情報テーブル走査部64が走査した広告情報テーブル52に特定イベント情報に関する隣接転送先が複数登録されている場合に自ノードが集約点ノードであると判定する集約点判定部65と、を含む。
また、ルート構築手段54は、自ノードが集約点ノードであると集約点判定部65が判定したときに、広告情報テーブル52に登録された隣接転送先を分岐点ノード識別子に書き換えて、新たな配信ルートを構築する。
ブローカーノード(B21〜B26)の動作を以下に説明する。ブローカーノード(B21〜B26)は、図1で説明したブローカーノード(B1〜B5)に対して以下の手段をさらに有することを特徴としている。
ブローカーノード(B21〜B26)は、広告情報(a1,a2)を受信した際に、その送信元、隣接転送先及び該広告情報を広告情報テーブルに保持する手段8を有する。
ブローカーノード(B21〜B26)は、要求情報(s1、s2)を受信した際に、その送信元、隣接転送先及び該要求情報を要求情報テーブルに保持する手段9を有する。
ランデブーノードR31よりサブスクライバーノード(S41、S42)側にあるブローカーノード(B24〜B26)は、下流側イベント配信ルート変更メッセージを受信した際に、要求情報テーブルを参照する手段10を有する。
ブローカーノード(B24〜B26)は、手段10で要求情報テーブルを参照した結果、ブローカーノードB25のような分岐点ノードであることを検出する手段11を有する。例えば、下流側イベント配信ルート変更メッセージの内容と要求情報テーブルの内容(例えば、イベントのイベントタイプ、属性情報)が一致し、さらに隣接転送先が複数登録されていた場合に自ノードが分岐点ノードであると判定する。
ブローカーノード(B24〜B26)は、自ノードが分岐点ノードである場合に下流側イベント配信ルート変更メッセージの転送を終端する手段12を有する。
ブローカーノード(B24〜B26)は、手段11により自ノードが分岐点ノードであると判定した場合に、自ノードの識別情報、例えば、ノード識別子、ID又はアドレスをランデブーノードR31ヘ通知する手段13を有する。
ランデブーノードR31よりパブリッシャーノード(P11、P12)側にあるブローカーノード(B21〜B23)は、上流側イベント配信ルート変更情報を受信した際に、広告情報テーブルを参照する手段14を有する。
ブローカーノード(B21〜B23)は、手段14で広告情報テーブルを参照した結果、ブローカーノードB23のような集約点ノードであることを検出する手段15を有する。例えば、広告情報テーブルの送信元に複数のブローカーノードが登録されていた場合に自ノードが集約点ノードであると判定する。
ブローカーノード(B21〜B23)は、自ノードが集約点ノードである場合に上流側イベント配信ルート変更メッセージの転送を終端する手段16を有する。
ブローカーノード(B21〜B23)は、手段15により自ノードが集約点ノードであると判定した場合に、ランデブーノードR31から通知された分岐点ノードに対してイベントを配信するルートを新たに設定する手段17を有する。具体的には、上流側イベント配信ルート変更情報に分岐点ノードの情報が含まれており、ブローカーノード(B21〜B23)は、広告情報テーブルの隣接転送先を分岐点ノードに変更する。
なお、本明細書において、手段1は情報取得手段13、手段3は上位イベント識別部21a又は下位イベント識別部21b、手段4はトラヒック計測部22、手段5はイベント検出部23及び特定イベント決定手段12、手段6は上流側メッセージ送信部25、手段7はメッセージ生成手段14及び下流側メッセージ送信部24、手段10は要求情報テーブル走査部61、手段11は分岐点判定部62、手段13は通知部53、手段14は広告情報テーブル走査部64、手段15は集約点判定部65、手段17はルート構築手段54と記載する場合がある。また、手段11と手段15とでルート検出手段53に相当する。なお、トラヒック計測部22はトラヒック監視手段11が監視しているトラヒック量のデータからイベント毎のトラヒック量を計算する構成でもよい。
図20は、本実施形態のイベント配信システムの動作を説明するフローチャートである。本イベント配信システムの負荷分散方法は、最小限のステップとして、トラヒック監視ステップSt01、特定イベント決定ステップSt02、ルート検出ステップSt06、及びルート構築ステップSt07を順に行う。本イベント配信システムの負荷分散方法は、特定イベント決定ステップSt02の後に、情報取得ステップSt03、メッセージ生成ステップSt04、メッセージ送信ステップSt05を順に行い、ルート検出ステップSt06を行ってもよい。なお、後述するように、メッセージ送信ステップSt05とルート検出ステップSt06とは交互に行われる。
このうち、トラヒック監視ステップSt01と特定イベント決定ステップSt02とが、ランデブーノードR31が行う負荷分散方法の最小限のステップである。ランデブーノードR31の負荷分散方法は、特定イベント決定ステップSt02の後に情報取得ステップSt03と、メッセージ生成ステップSt04と、メッセージ送信ステップSt05と、を順に行ってもよい。
また、ルート検出ステップSt06とルート構築ステップSt07とがブローカーノード(B21〜B26)が行う配信ルート構築方法の最小限のステップである。
以下に、図2及び図20を用いてイベント配信システムがランデブーノードを回避してイベント情報を配信するイベント配信システムの負荷分散方法、ランデブーノードの負荷分散方法、及びブローカーノードの配信ルート構築方法をより詳細に説明する。トラヒック監視ステップSt01では、ランデブーノードR31のトラヒック監視手段11が、ランデブーノードR31における、パブリッシャーノード(P11,P12)が発信したイベント情報のトラヒック量を監視する。そして、ランデブーノードR31のトラヒック量が所定値を超えたときに、特定イベント決定ステップSt02に進む。
特定イベント決定ステップSt02では、ランデブーノードR31のトラヒック量が所定値を超えたときに、イベント情報の中から負荷分散の実行対象となる特定イベント情報を決定する。ルート検出ステップSt06では、ブローカーノード(B21〜B26)のルート検出手段53が、特定イベント情報の現在の配信ルートを変更するための集約点ノードと分岐点ノードをブローカーノードの中から検出する。ルート構築ステップSt07では、ブローカーノード(B21〜B26)のルート構築手段54が、集約点ノードと分岐点ノードを経由し、ランデブーノードR31を回避する特定イベント情報の新たな配信ルートを構築する。
イベント情報が複数の階層からなる識別要素で構成されている場合、特定イベント決定ステップSt02で次のように特定イベント情報を決定する。上位イベント識別手順Pr01aで、特定イベント決定手段12に含まれる上位イベント識別部21aが、識別要素の階層のうち上位から少なくとも2つの階層の識別要素でイベント情報の種別を識別する。また、下位イベント識別手順Pr01bで、特定イベント決定手段12に含まれる下位イベント識別部21bが、識別要素の階層のうち最下位の階層の識別要素でイベント情報の種別を識別してもよい。
トラヒック計測手順Pr02で、特定イベント決定手段12に含まれるトラヒック計測部22が、上位イベント識別部21a又は下位イベント識別部21bが識別したイベント情報の種別毎にトラヒック量を計測する。イベント検出手順Pr03で、特定イベント決定手段12に含まれるイベント検出部23が、イベント情報の種別毎のトラヒック量の中で大きいほうから少なくとも1つを特定イベント情報として決定する。
続いて、特定イベント決定ステップSt02からルート構築ステップSt07までの間の動作を詳細に説明する。イベント配信システムは、特定イベント決定ステップSt02の後に、ランデブーノードR31の情報取得手段13が、特定イベント情報に関する広告情報を取得する情報取得ステップSt03と、ランデブーノードR31のメッセージ生成手段14が、その広告情報を含むイベント配信ルート変更メッセージを生成するメッセージ生成ステップSt04と、を順に行う。
イベント配信システムは、メッセージ生成ステップSt04の後に、下流側メッセージ送信手順Pr04と上流側メッセージ送信手順Pr06が含まれるメッセージ送信ステップSt05、分岐点判定手順Pr05と集約点判定手順Pr07が含まれるルート検出ステップSt06を行う。
詳細には、ランデブーノードR31は、メッセージ生成ステップSt04の後に、下流側メッセージ送信手順Pr04において、メッセージ送信手段15に含まれる下流側メッセージ送信部24でイベント配信ルート変更メッセージをブローカーノード(B24〜B26)へ送信する。
ブローカーノード(B24〜B26)は、イベント配信ルート変更メッセージを受信したときに、分岐点判定手順Pr05を行う。図21は、分岐点判定手順Pr05の具体的手順を説明する図である。ブローカーノード(B24〜B26)は、要求情報テーブル走査過程Ps11においてルート検出手段53に含まれる分岐点判定部62で要求情報が保持される要求情報テーブル51を走査し、隣接転送先確認過程Ps12において要求情報テーブル51に特定イベント情報に関する隣接転送先が複数登録されているかどうかを確認する。ブローカーノード(B24〜B26)は、要求情報テーブル51に特定イベント情報に関する隣接転送先が複数登録されている場合に判定過程Ps13で自ノードを分岐点ノードと判定する。さらに、ブローカーノード(B24〜B26)は、送信過程Ps14でランデブーノードR31に自ノードの識別子を送信する。
続いて、ランデブーノードR31は、上流側メッセージ送信手順Pr06において、メッセージ送信手段15に含まれる上流側メッセージ送信部25で、分岐点ノードと判定されたブローカーノードの識別子を分岐点ノード識別子としてイベント配信ルート変更メッセージに付加し、ブローカーノード(B21〜B23)へ送信する。
ブローカーノード(B21〜B23)は、分岐点ノード識別子が付加されたイベント配信ルート変更メッセージを受信したときに、集約点判定手順Pr07を行う。図22は、集約点判定手順Pr07の具体的手順を説明する図である。ブローカーノード(B21〜B23)は、広告情報テーブル走査過程Ps21においてルート検出手段53に含まれる集約点判定部65で広告情報が保持される広告情報テーブル52を走査し、隣接転送先確認過程Ps22において広告情報テーブル52に特定イベント情報に関する隣接転送先が複数登録されているかどうかを確認する。ブローカーノード(B21〜B23)は、広告情報テーブル52に特定イベント情報に関する隣接転送先が複数登録されている場合に判定過程Ps23で自ノードを集約点ノードと判定する。
イベント配信システムは、集約点判定手順Pr07の後にルート構築ステップSt07を行う。具体的には、集約点ノードとなるブローカーノードが、自ノードの広告情報テーブル52に登録された隣接転送先を分岐点ノード識別子に書き換えることで新たな配信ルートを構築する。
例えば、上述したイベント配信システムの負荷分散方法、ランデブーノードの負荷分散方法、及びブローカーノードの配信ルート構築方法は、コンピュータが読み取り可能な負荷分散プログラム、及び配信ルート構築プログラムとして作成し、コンピュータに実行させることで実現することができる。コンピュータが負荷分散プログラム、及び配信ルート構築プログラムを実行することで、イベント配信システムはランデブーノードR31を介さない新たなイベント配信ルートを形成することができる。
コンピュータが読み取り可能な負荷分散プログラム、及び配信ルート構築プログラムとして実現する場合、コンピュータプログラムは、記憶媒体に記録して提供することも可能であり、また、インターネットその他の通信媒体を介して伝送することにより提供することも可能である。また、記憶媒体には、例えば、フレキシブルディスク、ハードディスク、磁気ディスク、光磁気ディスク、CD−ROM、DVD、ROMカートリッジ、バッテリバックアップ付きRAMメモリカートリッジ、フラッシュメモリカートリッジ、不揮発性RAMカートリッジ等が含まれる。また、通信媒体には、電話回線等の有線通信媒体、マイクロ波回線等の無線通信媒体等が含まれる。
次に、図3及び図4のフローチャートを参照して本実施形態の全体の動作についてより詳細に説明する。本実施形態では、パブリッシャーノード(P11、P12)が、同じイベントタイプ、属性情報を持つイベント情報(p1、p2)を発生させるものとして説明する。
図3において、最初にパブリッシャーノードP11は、ランデブーノードR31に広告情報を送信するために、隣接ノードであるブローカーノードB21に広告情報a1を送信する。広告情報a1を受信したブローカーノードB21は、手段8により広告情報a1を保持する。具体的には、自ノードがブローカーノードB21、送信先がランデブーノードR31であるため、手段8で広告情報テーブルに保持される情報は、送信元としてパブリッシャーノードP11、隣接転送先としてブローカーノードB23、及び広告情報a1に含まれる情報である。次に広告情報a1は、隣接転送先のブローカーノードB23へ転送される。
ブローカーノードB23は、ブローカーノードB21から転送されてきた広告情報a1をブローカーノードB21の説明と同様に処理する。ただし、自ノードがブローカーノードB23、送信先がランデブーノードR31であるため、手段8で広告情報テーブルに保持される情報は、送信元としてブローカーノードB21、隣接転送先としてランデブーノードR31、及び広告情報a1に含まれる情報である。以上のように広告情報a1を用いて、
(パブリッシャーノードP11)−(ブローカーノードB21)−(ブローカーノードB23)−(ランデブーノードR31)
というイベント配信ルートが構築される。
次にパブリッシャーノードP12からランデブーノードR31へのイベント配信ルートの構築について述べる。ここで、パブリッシャーノードP12は、パブリッシャーノードP11と同種のイベントを発生させると想定する。図3において、パブリッシャーノードP12は、ランデブーノードR31に広告情報a2を送信するために、隣接ノードであるブローカーノードB22に広告情報a2を送信する。広告情報a2を受信したブローカーノードB22は、手段8で広告情報a2を保持する。ここで、自ノードがブローカーノードB22、送信先がランデブーノードR31であるため、手段8で広告情報テーブルに保持される情報は、送信元としてパブリッシャーノードP12、隣接転送先としてブローカーノードB23、及び広告情報a2に含まれる情報である。次に広告情報a2は、隣接転送先のブローカーノードB23へ転送される。
ブローカーノードB23は、ブローカーノードB22から転送されてきた広告情報a2をブローカーノードB22の説明と同様に処理する。ただし、自ノードがブローカーノードB23、送信先がランデブーノードR31であるため、手段8で広告情報テーブルに保持される情報は、送信元としてブローカーノードB22、隣接転送先としてランデブーノードR31である。しかし、広告情報a1の処理において、既に
(パブリッシャーノードP11)−(ブローカーノードB21)−(ブローカーノードB23)−(ランデブーノードR31)
というイベント配信ルートが構築されている。このため、広告情報a2の処理では、既存の設定内容の送信元情報に、ブローカーノードB22を加えるのみとなる。以上のように広告情報a2を用いて、
(パブリッシャーノードP12)−(ブローカーノードB22)−(ブローカーノードB23)−(ランデブーノードR31)
というイベント配信ルートが構築される。
手段8で構築されるブローカーノードB23の広告情報テーブルを図5に示す。広告情報(Adv11、Adv12)が上記説明の広告情報a1であり、広告情報(Adv21、Adv22)が上記説明の広告情報a2である。個々の広告情報は、イベントタイプ名で分類され、さらに広告情報に含まれる要素と属性情報で細分化されている。そして各広告情報の送信元および送信先が、各フィールドに記載される。例えば広告情報Adv11の送信元はブローカーノードB21であり、隣接転送先はランデブーノードR31であることが記載されている。
次にサブスクライバー側の処理について説明する。図3において、最初にサブスクライバーノードS41は、ランデブーノードR31に要求情報s1を送信するために、隣接ノードであるブローカーノードB25に要求情報s1を送信する。要求情報s1を受信したブローカーノードB25は、手段9を用いて要求情報s1を保持する。ここで、自ノードがブローカーノードB25、送信先がランデブーノードR31であるため、手段9で要求情報テーブルに保持される情報は、送信元としてサブスクライバーノードS41、隣接転送先としてブローカーノードB24、及び要求情報s1に含まれる情報である。次に要求情報s1は、隣接転送先のブローカーノードB24へ転送される。
ブローカーノードB24は、ブローカーノードB25から転送されてきた要求情報s1をブローカーノードB25の説明と同様に処理する。ただし、自ノードがブローカーノードB24、送信先がランデブーノードR31であるため、手段9で要求情報テーブルに保持される情報は、送信元としてブローカーノードB25、隣接転送先としてランデブーノードR31、及び要求情報s1に含まれる情報である。以上のように要求情報を用いて、
(サブスクライバーノードS41)−(ブローカーノードB25)−(ブローカーノードB24)−(ランデブーノードR31)
というルートが構築される。実際にイベントが配信される処理では、要求情報s1のルートの逆を辿ることでイベント配信が行われる。
手段9で構築されるブローカーノードB24の要求情報テーブルを図6に示す。要求情報(Sub11、Sub12)が上記説明の要求情報s1であり、広告情報(Sub21、Sub22)が上記説明の要求情報s2である。個々の要求情報は、イベントタイプ名で分類され、さらに要求情報に含まれる要素と属性情報で細分化されている。そして各要求情報の送信元および送信先が、各フィールドに記載される。例えば要求情報Sub11の送信元はブローカーノードB25であり、隣接転送先はランデブーノードR31であることが記載されている。
次に、本実施形態のイベント配信ルートの再構築について説明する。ここで、既に構築されたイベント配信ルートでイベント配信が行われていると仮定する。ランデブーノードR31は、自ノードを通過するイベント情報を手段3で識別し、さらに手段4でそのトラヒック量を監視している。ここで、あるイベント情報のトラヒック量が一定以上となった場合、図4に示すようにランデブーノードR31は、手段5でイベント配信ルートの変更処理を開始する。最初にランデブーノードR31は、手段7でブローカーノードB24に対して、下流側イベント配信ルート変更メッセージmdを生成、送信する。
次にブローカーノードB24は、手段10で自身が保持している要求情報を参照し、手段14で自ノードが分岐点ノードであるかどうかを判定する。図2の例においてブローカーノードB24は分岐点ノードであるので、ブローカーノードB24は、手段15で下流側イベント配信ルート変更メッセージmdを終端する。そして、ブローカーノードB24は、手段16で自ノードの識別情報をランデブーノードR31に通知する。以上の処理で、ランデブーノードR31はサブスクライバーノード側の配信ルート変更ポイントを特定する。
次に、ランデブーノードR31は、パブリッシャーノード側のイベント配信ルートの変更ポイントを特定する。最初にランデブーノードR31は、手段6でブローカーノードB23に対して、上流側イベント配信ルート変更メッセージmuを生成、送信する。
続いてブローカーノードB23は、手段14で、自身が保持している広告情報を参照し、手段15で自ノードか集約点ノードであるかどうかを判定する。図2の例においてブローカーノードB23は集約点ノードであるので、ブローカーノードB23は、手段16で上流側イベント配信ルート変更メッセージmuの転送が終端される。そして、ブローカーノードB23は、手段17で広告情報テーブルの隣接転送先をランデブーノードR31からブローカーノードB24へ変更する。
以上の処理で、変更前のイベント配信ルートは、ランデブーノードR31を経由する配信ルートを、図2の破線で示されたブローカーノードB23からブローカーノードB24へ転送される配信ルートヘ変更することができる。
具体的な動作例を以下に説明する。図7は、DHT(Distributed Hash Table)を用いたオーバーレイネットワーク202上に、本発明に係るイベント配信ネットワーク201を構築したイベント配信システムの概略構成図である。図7において、ブローカーノード(B121〜B126)は、各々オーバーレイノード(N151〜N156)上でアプリケーションプログラムとして動作する。ランデブーノードR131は、オーバーレイノードN157上でアプリケーションプログラムとして動作する。
パブリッシャーノード(P111〜P113)は、各々インターネット203に接続する端末(171〜173)上で動作するアプリケーションである。端末(171〜173、191、192)は、例えばPC(Personal Computer)、インターネット接続可能な携帯電話、又はセンサー端末である。図7では、パブリッシャーノードP111は、例えばTCP/IP(Transmission Control Protocol/Internet Protocol)を用いてB121へ接続し、パブリッシャーノードP112も同様に、ブローカーノードB122へ接続する。TCP/IPの使用は、あくまで一例であって、他にUDP/IP(User Datagram Protocol/Internet Protocol)やHTTP(HyperText Transfer Protocol)でも良い。このような通信クライアントは、図7において通信クライアント(T161〜T165)として図示されている。そして、パブリッシャーノード(P111、P112)は、図8で示したようなイベント情報を、前記TCP/IPやHTTPといった通信プロトコルを用いて送信する。
次にイベント情報について説明する。本実施例において、個々のイベント情報は、複数の要素情報、または要素情報に付与される属性情報で表現される。そしてイベント情報に含まれる要素情報又は属性情報に、数値、文字および文字列等のデータを付与することで、1つのイベント情報が生成される。例えば、気温に関するイベント情報は、図8のようなXML(eXtensible Markup Language)形式で表現できる。この例は、気温20度以上のイベント情報を示している。ここではイベントタイプの名前が属性情報として(Name="TemperatureMoreThan20")で表現されている。この名前は、本発明におけるシステム内においてグローバル・ユニークである。次にイベントタイプの詳細な属性情報として、場所情報である東京駅、そして実際の観測ポイントを示すGPS情報が定義されている。前記GPS情報は、さらに緯度、経度情報に詳細化されており、北緯35度、東経139度のように表現されている。また、観測されたイベント情報は、"Notification"要素として表現されており、ここでは21度が示されている。
イベント情報の生成は、周期的、又はある一定条件を満足したりした時に発生する。つまり、毎秒気温情報をイベント情報として発信する場合もあれば、また気温20度以上の状態の時に毎秒イベント情報を生成し、それ以下であった時にはイベント情報を生成しないというような場合もあり得る。図8の例では、気温20度超の時にイベントが発生することを意味するために、"TemperatureMoreThan20"というイベント名で表した。
このようなイベント情報が利用可能なことを、パブリッシャーノード(P111、P112、P113)は、図9に示すような広告情報で広告する。パブリッシャーノードP111が発した広告情報は、ブローカーノードB121、ブローカーノードB123及びランデブーノードR131に保持される。またパブリッシャーノードP112が発した広告情報はブローカーノードB122、ブローカーノードB123及びランデブーノードR131に保持される。
一方で、このようなイベント情報を受信したいサブスクライバーノード(S141、S142)は、図10に示すような要求情報よって受信登録を行う。サブスクライバーノードS141が発した要求情報は、ブローカーノードB126、ブローカーノードB124及びランデブーノードR131が保持する。またサブスクライバーノードS142が発した要求情報はブローカーノードB125、ブローカーノードB124及びランデブーノードR131が保持する。図10では、パブリッシャーノードP111が発したXPath(XML Path Language)を用いた要求情報を示している。ここでは、イベント名が"TemperatureMoreThan20"、場所が東京駅、かつGPS位置のIDが0001であるポイントから観測されたデータの受信登録を示している。
次に、オーバーレイネットワーク202上で実施される、広告情報を含む広告メッセージ及び要求情報を含む要求メッセージのルーティング、またイベント情報を含むイベントメッセージのルーティングについて簡単に説明する。オーバーレイネットワーク202は、例えばPastryやChord等の技術で構成される。オーバーレイネットワーク202において、個々のノードは、固有のID(ノードID)を持ち、そのノードIDに基づき個々のノードが識別されている。メッセージルーティングは、このノードIDを使って行われる。本実施例でのノードIDのID長は128ビットと仮定する。
広告メッセージや要求メッセージをルーティングするためには、送信先となるノードIDが必要となる。このノードIDは、イベント名をハッシュして得られる(例えば、非特許文献1を参照。)。ハッシュ値の長さを128ビットとすると、イベント名は128ビット長のデータに変換される。そして128ビット長のデータIDが、前記オーバーレイネットワーク202で扱う広告メッセージや要求メッセージの送信先情報として使用される。
例えば、パブリッシャーノードP111が広告情報をブローカーノードB121へ送信したい場合、ブローカーノードB121はイベントタイプ要素(EventType)を参照し、そこに記載されている属性情報(Name="TemperatureMoreThan20")をハッシュし、128ビット長のデータIDに変換する。そして、ブローカーノードB121はデータIDをオーバーレイネットワーク上の広告情報の送信先情報として使用する。オーバーレイネットワーク上では、広告情報が128ビット長のデータIDと数値的に一致するノードIDを持つオーバーレイノード、または数値的に近いノードIDを持つオーバーレイノードにルーティングされる。そして、その広告情報が到達したオーバーレイノード上で動作しているブローカーノード、つまり図7ではオーバーレイノードN157が、ランデブーノードR131として設定(アサイン)される。より具体的には、ブローカーノードB121が送信した広告情報は、
(ブローカーノードB121/オーバーレイノードN151)−(ブローカーノードB123/オーバーレイノードN153)−(ランデブーノードR131/オーバーレイノードN157)
というルートを通ってルーティングされる。
一方、要求情報の転送も同様である。図7では、最初にサブスクライバーノードS141が要求情報を生成し、そしてブローカーノードB126に転送する。次にブローカーノードB126は、イベントタイプ(EventType)の各要素を参照し、そこに記載されている属性情報(Name="TemperatureMoreThan20")をハッシュし、128ビット長のデータIDに変換する。そして、データIDをオーバーレイネットワーク上の要求情報の送信先情報として使用する。オーバーレイネットワーク上では、前記要求情報を128ビット長のデータIDと数値的に一致するノードIDを持つオーバーレイノード、または数値的に近いノードIDを持つオーバーレイノードにルーティングする。同じイベント名をハッシュしたのであるから、同じIDが得られ、その結果、前記要求情報は、ランデブーノードR131/N157ヘルーティングされることとなる。
パブリッシャーノードP111やパブリッシャーノードP112から発信される図8に記載のイベント情報を含んだイベントメッセージのルーティングも同様である。
次にランデブーノードの負荷分散について説明する。図7では、複数のパブリッシャーノード(P111、P112、P113)が、同じイベント名のイベント情報を発信するモデルを図示している。つまり、パブリッシャーノード(P111、P112、P113)は、同じイベント名"TemperatureMoreThan20"を使用している。その結果、これらの端末から発信されたイベント情報は、同じランデブーノードR131を介して、サブスクライバーノード(S141またはS142)へ配信される。このようなパブリッシャーが数多く存在すれば、ランデブーノードR131を通る前記イベントトラヒックが増加し、その結果、ランデブーノードR131が高負荷となる可能性がある。
そこで、ランデブーノードR131は、イベント情報のトラヒック(例えば、ランデブーノードR131を通過するイベント数)を監視するトラヒック監視手段を有する。また、ランデブーノードR131は、高負荷時に、その原因となるイベント情報(特定イベント情報)を特定する特定イベント決定手段を有する。さらに、ランデブーノードR131は、特定イベント情報をルーティングできる他の配信ルートを探し出すルート検出手段と、探し出した他の配信ルートを新たに構築し、特定イベント情報をルーティングするルート構築手段を有する。図7のイベント配信システムは、このように特定イベント情報をランデブーノードR131を経由しない新たな配信ルートでルーティングすることでランデブーノードR131への負荷を軽減する。
負荷分散対象となる特定イベント情報は、特定イベント決定手段で次のように特定される。ここで、イベント情報が複数の階層からなる識別要素で構成されているとする。特定イベント決定手段は、識別要素の階層のうち上位から少なくとも2つの階層の識別要素でイベント情報の種別を識別する上位イベント識別部と、上位イベント識別部が識別したイベント情報の種別毎にトラヒック量を計測するトラヒック計測部と、トラヒック計測部が計測した前記イベント情報の種別毎のトラヒック量の中で大きいほうから少なくとも1つを特定イベント情報として決定するイベント検出部と、を含む。
各イベント情報は、例えば図13に示すようなツリー形式で管理される。第1レベルは、属性情報を(Name="TemperatureMoreThan20")としており、このイベントタイプの総トラヒック量を監視する階層である。つまり第1レベルのトラヒック量は、属性情報が(Name="TemperatureMoreThan20")のイベント情報の総トラヒック量であり、第2レベルの3つのイベント情報のトラヒック量の総和である。第2レベルは、詳細化された要素情報であるPlaceやGlobalPositionといった要素情報で区別される階層である。ここでは東京駅、横浜駅、川崎駅を例とした。第3レベルは、第2レベルをさらに詳細化した要素情報で区別される階層である。例えば、東京駅において、GlobalPositionの属性情報であるデータIDの値、またはAreaOfLatitude、DegreeOfLatitude、AreaOfLongitude、DegreeOfLongitudeの要素情報で区別される階層である。数値は、それぞれの階層における要素情報で区別されるイベント情報のトラヒック量を示している。
ランデブーノードR131は、上位イベント識別部で各要素情報に基づきイベント情報を区別する。ランデブーノードR131は、第1レベルの要素情報で区別されるイベント情報のトラヒック量が一定量以上になった場合に、負荷分散のための処理を開始する。ランデブーノードR131は、トラヒック計測部で第2レベルの要素情報で区別されるイベント情報のトラヒック量を走査し、イベント検出部で最大トラヒックのイベント情報を特定する。図13の場合、横浜駅の気温イベント情報のトラヒック量が最大であり、これが負荷分散対象の特定イベント情報となる。
次にランデブーノードR131の情報取得手段は、特定イベント決定手段が決定した特定イベント情報に関する広告情報を取得する。続いてランデブーノードR131のメッセージ生成手段は、情報取得手段が取得した広告情報を含む下流側イベント配信ルート変更メッセージを生成する。さらにランデブーノードR131の下流側メッセージ送信手段は、これをサブスクライバーノード側にあるブローカーノードへ送信する。
具体的には、ランデブーノードR131は、この特定イベント情報に対する下流側イベント配信ルート変更メッセージを生成し、ブローカーノードB124へ送信する。この下流側イベント配信ルート変更メッセージには、配信ルートの変更点を特定するための情報が含まれる。つまり、図13の場合、横浜駅の気温イベントが負荷分散対象であるため、図14に示すように第2レベルまでの属性情報が含まれる。
ここで、ブローカーノードB124の要求情報テーブル走査部は、ランデブーノードR131から下流側イベント配信ルート変更メッセージを受信したときに、要求情報が保持される要求情報テーブルを走査する。次にブローカーノードB124の分岐点判定部は、要求情報テーブル走査部が走査した要求情報テーブルに特定イベント情報に関する隣接転送先が複数登録されている場合に自ノードが分岐点ノードであると判定する。さらにブローカーノードB124の通知部は、自ノードが分岐点ノードであると分岐点判定部が判定したときに自ノードの識別子を分岐点ノード識別子としてランデブーノードR131へ通知する。
具体的には、ブローカーノードB124は、自ノードが特定イベント情報の分岐点ノードである場合、下流側イベント配信ルート変更メッセージの転送を終了する。分岐点ノードであるか否かは、ブローカーノードB124が図12記載の要求情報テーブルを参照し、複数の隣接転送先の存在の有無で判定する。ブローカーノードB124は、複数の隣接転送先が存在すれば自ノードが分岐点ノードであると判定する。図7のブローカーノードB124/オーバーレイノードN154は分岐点ノードに該当する。
自ノードが分岐点と判定したブローカーノードB124/オーバーレイノードN154は、例えば図15に示すようにオーバーレイノードN154のノードIDを含む応答メッセージをランデブーノードR131へ通知する。
そしてランデブーノードR131の上流側メッセージ送信手段は、ブローカーノードB124から分岐点ノード識別子が通知されたときに、分岐点ノード識別子を下流側イベント配信ルート変更メッセージに付加して上流側イベント配信ルート変更メッセージを作成し、パブリッシャーノード側にあるブローカーノードへ送信する。
具体的には、ランデブーノードR131は、上流側イベント配信ルート変更メッセージを生成し、ブローカーノードB123へ送信する。この上流側イベント配信ルート変更メッセージには、例えば図16に示すように、負荷分散の対象となるイベント情報を識別するための情報、つまりイベントタイプ(Name="TemperatureMoreThan20")と属性情報(Place="YokohamaStation")、そしてルート変更先の情報、つまりオーバーレイノードN154が含まれる。
ブローカーノードB123の広告情報テーブル走査部は、ランデブーノードR131から上流側イベント配信ルート変更メッセージを受信したときに、広告情報が保持される広告情報テーブルを走査する。そして、ブローカーノードB123の集約点判定部は、広告情報テーブル走査部が走査した広告情報テーブルに特定イベント情報に関する隣接転送先が複数登録されている場合に自ノードが前記集約点ノードであると判定する。
図7のように、ブローカーノードB123は特定イベント情報の集約点ノードである。したがって、ブローカーノードB123は上流側イベント配信ルート変更メッセージを終端する。集約点ノードであるか否かは、ブローカーノードB123が図11記載のルーティングテーブルを参照し、複数の隣接転送先の存在の有無で判定する。ブローカーノードB123は、複数の隣接転送先が存在すれば自ノードが集約点ノードであると判定する。図7のブローカーノードB123/オーバーレイノードN153は集約点ノードに該当する。
ブローカーノードB123のルート構築手段は、自ノードが集約点ノードであると集約点判定部が判定したときに、広告情報テーブルに登録された隣接転送先を分岐点ノード識別子に書き換えて、新たな配信ルートを構築する。
具体的には、ブローカーノードB123/オーバーレイノードN153は、自身が持つ広告情報テーブルを更新する。つまり広告情報テーブルの隣接転送先は、変更前がランデブーノードR131であり、変更後がブローカーノードB124となる。以上の結果、パブリッシャーノード(P111、P112)が送信したイベント情報は、
(ブローカーノードB123)−(ブローカーノードB124)
というルートを通して配信されるようになり、ランデブーノードR131を回避するようになる。その結果、図13に示したランデブーノードR131は、負荷が245から85に軽減される。
以上の実施形態で、1つのイベント情報を特定イベント情報として負荷分散するイベント配信システムを説明した。しかし、本イベント配信システムは、ランデブーノードR131において一定の負荷軽減が満足されるまで、この処理を順次繰り返すことで、複数のイベント情報の負荷分散も可能である。また前述の実施形態は、1回の処理において、最大トラヒック量のイベント情報のみを負荷分散対象としたが、この限りではない。本イベント配信システムは、トラヒック量が最大、2番目、3番目というように複数のイベント情報を対象とし、同処理を同時並行的に行うことも可能である。個々のイベント情報の負荷分散処理は互いに疎な関係であり、必ずしも順次行う必要はない。
また、特定イベント情報の別の発見方法もある。すなわち、特定イベント決定手段は、識別要素の階層のうち最下位の階層の識別要素でイベント情報の種別を識別する下位イベント識別部と、下位イベント識別部が識別したイベント情報の種別毎にトラヒック量を計測するトラヒック計測部と、トラヒック計測部が計測したイベント情報の種別毎のトラヒック量の中で大きいほうから少なくとも1つを特定イベント情報として決定するイベント検出部と、を含む。
例えば、下位イベント識別部は個々の詳細なイベント情報の属性情報に基づくトラヒック量で分類してもよい。図13において、トラヒック計測部は下位イベント識別部が識別した最下位に記載されている属性情報(GlobalPositionID)の個々のイベント情報のトラヒック量を調査する。そして、イベント検出部が最大トラヒック量のイベント情報を特定イベント情報として決定する。その後、ルート構築手段が特定イベント情報の配信ルートをランデブーノードR131を回避する新たな配信ルートヘ変更し、負荷分散処理を完了する。例えば、ランデブーノードR131は、図17の下流側イベント配信ルート変更メッセージを用い、特定イベント決定手段で横浜駅内のGlobalPositionID="0001"の気温イベントを特定イベント情報に決定すれば、ランデブーノードR131の負荷が245から145に軽減される。
さらに負荷分散が必要であれば、本イベント配信システムは、同処理を繰り返し第2、第3順位にソートされたイベント情報を順に負荷分散していくことで、ランデブーノードR131に対する負荷をさらに軽減することができる。個々の負荷分散処理は互いに疎な関係であり、必ずしも順次行う必要はない。例えば3つのイベント情報を負荷分散したい場合、本イベント配信システムは、本処理を順次3度繰り返し実行してもよく、また同時並行処理しても良い。
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。本願発明の構成や詳細には、発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
この出願は、2009年2月16日に出願された日本出願特願2009−032599を基礎とする優先権を主張し、その開示の全てをここに取り込む。
本発明によれば、例えばパブリッシャー機能を各種センサーに配備し、前記センサーが検出したイベント情報を利用するアプリケーションにサブスクライバー機能を配備し、それらを本発明のイベント配信ネットワークで構築することで、様々なイベント情報を、様々なアプリケーションで利用することができる。センサーからのイベントトラヒックが増加し、ランデブーノードヘの負荷が高くなった場合でも、本発明により負荷を分散することができる。
P1、P2、P11、P12、P111、P112、P113:パブリッシャーノード
B1〜B5、B21〜B26、B121〜B126:ブローカーノード
R、R31、R131:ランデブーノード
S1、S2、S41、S42、S141、S142:サブスクライバーノード
11:トラヒック監視手段
12:特定イベント決定手段
13:情報取得手段
14:メッセージ生成手段
15:メッセージ送信手段
21a:上位イベント識別部
21b:下位イベント識別部
22:トラヒック計測部
23:イベント検出部
24:上流側メッセージ送信部
25:下流側メッセージ送信部
51:要求情報テーブル
52:広告情報テーブル
53:ルート検出手段
54:ルート構築手段
61:要求情報テーブル走査部
62:分岐点判定部
63:通知部
64:広告情報テーブル走査部
65:分岐点判定部
St00:開始ステップ
St01:トラヒック監視ステップ
St02:特定イベント決定ステップ
St03:情報取得ステップ
St04:メッセージ生成ステップ
St05:メッセージ送信ステップ
St06:ルート検出ステップ
St07:ルート構築ステップ
St08:終了ステップ
Pr01a:上位イベント識別手順
Pr01b:下位イベント識別手順
Pr02:トラヒック計測手順
Pr03:イベント検出手順
Pr04:下流側メッセージ送信手順
Pr05:分岐点判定手順
Pr06:上流側メッセージ送信手順
Pr07:集約点判定手順
Ps11:要求情報テーブル走査過程
Ps12:隣接転送先確認過程
Ps13:判定過程
Ps14:送信過程
Ps21:広告情報テーブル走査過程
Ps22:隣接転送先確認過程
Ps23:判定過程
N151〜N156:オーバーレイノード
T161〜T165:通信クライアント
171〜173、191、192:端末
181〜187:物理ノード
201:イベント配信ネットワーク
202:オーバーレイネットワーク
203:インターネット
Rt1、Rt2、Rt3:ルート
p1、p2:イベント情報
a1、a2:広告情報
s1、s2:要求情報
本発明は、ある観測対象の状態変化が発生した時に、その状態変化を情報化するとともに、その情報の配信を希望する受信者へ状態変化を通知するイベント配信システム、そのランデブーノード、これらの負荷分散方法及び負荷分散プログラム、並びにイベント配信システムのブローカーノード、その配信ルート構築方法及び配信ルート構築プログラムに関する。
したがって、本発明の目的は、上記課題を解決するための技術を提供することである。すなわち、本発明は、ランデブーノードの負荷を軽減してシステム上のボトルネックを解消できるイベント配信システム、ランデブーノード、ブローカーノード、イベント配信システムの負荷分散方法、ランデブーノードの負荷分散方法、ブローカーノードの配信ルート構築方法、負荷分散プログラム、及び配信ルート構築プログラムを提供することを目的とする。
さらに、本発明に係る負荷分散プログラムは、ランデブーノードのトラヒック監視手段が、自ノードを通過するパブリッシャーノードで発生したイベントの内容を含むイベント情報のトラヒック量を監視するトラヒック監視処理と、前記ランデブーノードの特定イベント決定手段が、前記トラヒック監視手段が監視するトラヒック量が所定値を超えたときに、前記イベント情報の中から負荷分散の実行対象となる特定イベント情報を決定する特定イベント決定処理と、をコンピュータに実行させるためのものである。
本発明は、ランデブーノードの負荷を軽減してシステム上のボトルネックを解消できるイベント配信システム、その負荷分散方法及び負荷分散プログラムを提供することができる。

Claims (46)

  1. 発生したイベントの内容を含むイベント情報及び前記イベントを広告する広告情報を発信するパブリッシャーノードと、
    前記イベントのうち所望のイベントのイベント情報を受信するための要求情報を発信するサブスクライバーノードと、
    前記イベントに関する情報管理を行うランデブーノードと、
    前記パブリッシャーノードが発信した前記イベント情報及び前記広告情報、並びに前記サブスクライバーノードが発信した前記要求情報、を転送するブローカーノードと、
    を備え、
    前記ランデブーノードは、
    前記パブリッシャーノードが発信した前記イベント情報のトラヒック量を監視するトラヒック監視手段と、
    前記トラヒック監視手段が監視するトラヒック量が所定値を超えたときに、前記イベント情報の中から負荷分散の実行対象となる特定イベント情報を決定する特定イベント決定手段と、を有し、
    前記ブローカーノードは、
    自ノードが、前記特定イベント情報の現在の配信ルートを変更するための集約点ノード又は分岐点ノードであるかを検出するルート検出手段と、
    前記ルート検出手段が検出した前記集約点ノード及び前記分岐点ノードを経由し、前記ランデブーノードを回避する前記特定イベント情報の新たな配信ルートを構築するルート構築手段と、
    を有するイベント配信システム。
  2. 前記イベント情報が複数の階層からなる識別要素で構成されており、
    前記ランデブーノードの前記特定イベント決定手段は、
    前記識別要素の階層のうち上位から少なくとも2つの階層の識別要素で前記イベント情報の種別を識別する上位イベント識別手段と、
    前記上位イベント識別手段が識別した前記イベント情報の種別毎にトラヒック量を計測するトラヒック計測手段と、
    前記トラヒック計測手段が計測した前記イベント情報の種別毎のトラヒック量の中で大きいほうから少なくとも1つを前記特定イベント情報として決定するイベント検出手段と、を含むことを特徴とする請求項1に記載のイベント配信システム。
  3. 前記イベント情報が複数の階層からなる識別要素で構成されており、
    前記ランデブーノードの前記特定イベント決定手段は、
    前記識別要素の階層のうち最下位の階層の識別要素で前記イベント情報の種別を識別する下位イベント識別手段と、
    前記下位イベント識別手段が識別した前記イベント情報の種別毎にトラヒック量を計測するトラヒック計測手段と、
    前記トラヒック計測手段が計測した前記イベント情報の種別毎のトラヒック量の中で大きいほうから少なくとも1つを前記特定イベント情報として決定するイベント検出手段と、を含むことを特徴とする請求項1又は請求項2に記載のイベント配信システム。
  4. 前記ランデブーノードは、
    前記特定イベント決定手段が決定した前記特定イベント情報に関する前記広告情報を取得する情報取得手段と、
    前記情報取得手段が取得した前記広告情報を含むイベント配信ルート変更メッセージを生成するメッセージ生成手段と、
    前記メッセージ生成手段が生成した前記イベント配信ルート変更メッセージを前記サブスクライバーノード側にある前記ブローカーノードへ送信する下流側メッセージ送信手段を含むメッセージ送信手段と、をさらに有することを特徴とする請求項1乃至請求項3のいずれか1項に記載のイベント配信システム。
  5. 前記ブローカーノードの前記ルート検出手段は、
    前記ランデブーノードから前記イベント配信ルート変更メッセージを受信したときに、前記要求情報が保持される要求情報テーブルを走査する要求情報テーブル走査手段と、
    前記要求情報テーブル走査手段が走査した前記要求情報テーブルに前記特定イベント情報に関する隣接転送先が複数登録されている場合に自ノードが前記分岐点ノードであると判定する分岐点判定手段と、
    自ノードが前記分岐点ノードであると前記分岐点判定手段が判定したときに自ノードの識別子を分岐点ノード識別子として前記ランデブーノードへ通知する通知手段と、を含むことを特徴とする請求項4に記載のイベント配信システム。
  6. 前記ランデブーノードのメッセージ送信手段は、
    前記ブローカーノードから前記分岐点ノード識別子が通知されたときに、前記分岐点ノード識別子を前記メッセージ生成手段が生成した前記イベント配信ルート変更メッセージに付加して前記パブリッシャーノード側にある前記ブローカーノードへ送信する上流側メッセージ送信手段をさらに含むことを特徴とする請求項5に記載のイベント配信システム。
  7. 前記ブローカーノードの前記ルート検出手段は、
    前記ランデブーノードから前記分岐点ノード識別子が付加された前記イベント配信ルート変更メッセージを受信したときに、前記広告情報が保持される広告情報テーブルを走査する広告情報テーブル走査手段と、
    前記広告情報テーブル走査手段が走査した前記広告情報テーブルに前記特定イベント情報に関する隣接転送先が複数登録されている場合に自ノードが前記集約点ノードであると判定する集約点判定手段と、をさらに含むことを特徴とする請求項6に記載のイベント配信システム。
  8. 前記ブローカーノードの前記ルート構築手段は、
    自ノードが前記集約点ノードであると前記集約点判定手段が判定したときに、前記広告情報テーブルに登録された隣接転送先を前記分岐点ノード識別子に書き換えて、前記新たな配信ルートを構築することを特徴とする請求項7に記載のイベント配信システム。
  9. パブリッシャーノードで発生したイベントの内容を含むイベント情報をサブスクライバーノードへ配信するイベント配信システムに含まれ、
    自ノードを通過する前記イベント情報のトラヒック量を監視するトラヒック監視手段と、
    前記トラヒック監視手段が監視するトラヒック量が所定値を超えたときに、前記イベント情報の中から負荷分散の実行対象となる特定イベント情報を決定する特定イベント決定手段と、を有するランデブーノード。
  10. 前記イベント情報が複数の階層からなる識別要素で構成されており、
    前記特定イベント決定手段は、
    前記識別要素の階層のうち上位から少なくとも2つの階層の識別要素で前記イベント情報の種別を識別する上位イベント識別手段と、
    前記上位イベント識別手段が識別した前記イベント情報の種別毎にトラヒック量を計測するトラヒック計測手段と、
    前記トラヒック計測手段が計測した前記イベント情報の種別毎のトラヒック量の中で大きいほうから少なくとも1つを前記特定イベント情報として決定するイベント検出手段と、を含むことを特徴とする請求項9に記載のランデブーノード。
  11. 前記イベント情報が複数の階層からなる識別要素で構成されており、
    前記特定イベント決定手段は、
    前記識別要素の階層のうち最下位の階層の識別要素で前記イベント情報の種別を識別する下位イベント識別手段と、
    前記下位イベント識別手段が識別した前記イベント情報の種別毎にトラヒック量を計測するトラヒック計測手段と、
    前記トラヒック計測手段が計測した前記イベント情報の種別毎のトラヒック量の中で大きいほうから少なくとも1つを前記特定イベント情報として決定するイベント検出手段と、を含むことを特徴とする請求項9又は請求項10に記載のランデブーノード。
  12. 前記特定イベント決定手段が決定した前記特定イベント情報に関する広告情報を取得する情報取得手段と、
    前記情報取得手段が取得した前記広告情報を含むイベント配信ルート変更メッセージを生成するメッセージ生成手段と、
    前記メッセージ生成手段で生成した前記イベント配信ルート変更メッセージを前記イベント配信システムに含まれるブローカーノードへ送信するメッセージ送信手段と、をさらに有することを特徴とする請求項9乃至請求項11のいずれか1項に記載のランデブーノード。
  13. 前記メッセージ送信手段は、
    前記メッセージ生成手段が生成した前記イベント配信ルート変更メッセージを前記サブスクライバーノード側にある前記ブローカーノードへ送信する下流側メッセージ送信手段を含むことを特徴とする請求項12に記載のランデブーノード。
  14. 前記メッセージ送信手段は、
    前記イベント配信ルート変更メッセージの送信先の前記ブローカーノードのうち少なくとも1つから分岐点ノード識別子が通知されたときに、前記分岐点ノード識別子を前記イベント配信ルート変更メッセージに付加して前記パブリッシャーノード側にある前記ブローカーノードへ送信する上流側メッセージ送信手段を含むことを特徴とする請求項13に記載のランデブーノード。
  15. パブリッシャーノードで発生したイベントの内容を含むイベント情報をサブスクライバーノードへ配信するイベント配信システムに含まれ、
    自ノードが、前記イベント情報の中から負荷分散の実行対象となる特定イベント情報の現在の配信ルートを変更するための集約点ノード又は分岐点ノードであるかを検出するルート検出手段と、
    前記ルート検出手段が検出した前記集約点ノード及び前記分岐点ノードを経由し、前記イベント配信システムに含まれるランデブーノードを回避する前記特定イベント情報の新たな配信ルートを構築するルート構築手段と、を有するブローカーノード。
  16. 前記ルート検出手段は、
    前記ランデブーノードからイベント配信ルート変更メッセージを受信したときに、前記サブスクライバーノードが発信した前記イベント情報を要求する要求情報が保持される要求情報テーブルを走査する要求情報テーブル走査手段と、
    前記要求情報テーブル走査手段が走査した前記要求情報テーブルに前記特定イベント情報に関する隣接転送先が複数登録されている場合に自ノードが前記分岐点ノードであると判定する分岐点判定手段と、
    自ノードが前記分岐点ノードであると前記分岐点判定手段が判定したときに自ノードの識別子を分岐点ノード識別子として前記ランデブーノードへ通知する通知手段と、を含むことを特徴とする請求項15に記載のブローカーノード。
  17. 前記ルート検出手段は、
    前記ランデブーノードから前記分岐点ノード識別子が付加された前記イベント配信ルート変更メッセージを受信したときに、前記パブリッシャーノードが発信した前記イベントを広告する広告情報が保持される広告情報テーブルを走査する広告情報テーブル走査手段と、
    前記広告情報テーブル走査手段が走査した前記広告情報テーブルに前記特定イベント情報に関する隣接転送先が複数登録されている場合に自ノードが前記集約点ノードであると判定する集約点判定手段と、を含むことを特徴とする請求項16に記載のブローカーノード。
  18. 前記ルート構築手段は、
    自ノードが前記集約点ノードであると前記集約点判定手段が判定したときに、前記広告情報テーブルに登録された隣接転送先を前記分岐点ノード識別子に書き換えて、前記新たな配信ルートを構築することを特徴とする請求項17に記載のブローカーノード。
  19. 発生したイベントに関する情報管理を行うランデブーノードにおける、発生したイベントの内容を含むイベント情報及び前記イベントを広告する広告情報を発信するパブリッシャーノードが発信した前記イベント情報のトラヒック量を監視し、
    前記トラヒック量の監視する処理で監視されるトラヒック量が所定値を超えたときに、前記イベント情報の中から負荷分散の実行対象となる特定イベント情報を決定する特定イベントを決定し、
    前記特定イベント決定する処理で決定された前記特定イベント情報の現在の配信ルートを変更するための集約点ノードと分岐点ノードを、前記パブリッシャーノードが発信した前記イベント情報及び前記広告情報、並びに所望の前記イベント情報を受信するための要求情報を発信するサブスクライバーノードが発信した前記要求情報、を転送するブローカーノードの中から検出するルート検出処理をし、
    前記ルート検出処理により検出された前記集約点ノードと前記分岐点ノードを経由し、前記ランデブーノードを回避する前記特定イベント情報の新たな配信ルートを構築するルート構築処理をする、ことを特徴とするイベント配信システムの負荷分散方法。
  20. 前記イベント情報が複数の階層からなる識別要素で構成されており、
    前記特定イベント決定する処理では、
    前記識別要素の階層のうち上位から少なくとも2つの階層の識別要素で前記イベント情報の種別を識別する上位イベントの識別処理をし、
    前記上位イベントの識別処理で識別された前記イベント情報の種別毎にトラヒック量を計測し、
    前記トラフィック量の計測処理で計測された前記イベント情報の種別毎のトラヒック量の中で大きいほうから少なくとも1つを前記特定イベント情報として決定するイベント検出処理を行うことを特徴とする請求項19に記載のイベント配信システムの負荷分散方法。
  21. 前記イベント情報が複数の階層からなる識別要素で構成されており、
    前記特定イベント決定する処理では、
    前記識別要素の階層のうち最下位の階層の識別要素で前記イベント情報の種別を識別する下位イベントの識別処理をし、
    前記イベントの識別処理で識別された前記イベント情報の種別毎にトラヒック量を計測し、
    前記トラヒック量の計測処理で計測された前記イベント情報の種別毎のトラヒック量の中で大きいほうから少なくとも1つを前記特定イベント情報として決定するイベント検出処理を行うことを特徴とする請求項19又は請求項20に記載のイベント配信システムの負荷分散方法。
  22. 前記特定イベント決定する処理の後に、
    前記特定イベント決定する処理で決定された前記特定イベント情報に関する前記広告情報を取得する情報取得処理をし、
    前記情報取得処理で取得された前記広告情報を含むイベント配信ルート変更メッセージを生成し、
    イベント配信ルート変更メッセージを生成する処理で生成された前記イベント配信ルート変更メッセージを前記ランデブーノードの前記サブスクライバーノード側にある前記ブローカーノードへ送信する下流側メッセージ送信処理を行うことを特徴とする請求項21に記載のイベント配信システムの負荷分散方法。
  23. 前記下流側メッセージ送信処理の後に、
    前記ランデブーノードの前記サブスクライバーノード側にある前記ブローカーノードが前記イベント配信ルート変更メッセージを受信したときに、前記要求情報が保持される前記ブローカーノードの要求情報テーブルを走査し、前記要求情報テーブルに前記特定イベント情報に関する隣接転送先が複数登録されている前記ブローカーノードを前記分岐点ノードと判定し、自ノードの識別子を分岐点ノード識別子として前記ランデブーノードへ通知する、前記ルート検出処理における分岐点判定処理を行うことを特徴とする請求項22に記載のイベント配信システムの負荷分散方法。
  24. 前記分岐点判定処理の後に、
    前記分岐点判定処理で前記分岐点ノードと判定された前記ブローカーノードの識別子を分岐点ノード識別子として、前記イベント配信ルート変更メッセージに付加して前記ランデブーノードの前記パブリッシャーノード側にある前記ブローカーノードへ送信する、前記メッセージ送信処理における上流側メッセージ送信処理を行うことを特徴とする請求項23に記載のイベント配信システムの負荷分散方法。
  25. 前記上流側メッセージ送信処理の後に、
    前記ランデブーノードの前記パブリッシャーノード側にある前記ブローカーノードが前記分岐点ノード識別子が付加された前記イベント配信ルート変更メッセージを受信したときに、前記広告情報が保持される前記ブローカーノードの広告情報テーブルを走査し、前記広告情報テーブルに前記特定イベント情報に関する隣接転送先が複数登録されている前記ブローカーノードを前記集約点ノードと判定する、前記ルート検出処理における集約点判定処理を行うことを特徴とする請求項24に記載のイベント配信システムの負荷分散方法。
  26. 前記ルート構築処理では、前記ルート検出ステップで検出された前記集約点ノードとなる前記ブローカーノードの前記広告情報テーブルに登録された隣接転送先を前記分岐点ノード識別子に書き換えて、前記新たな配信ルートを構築することを特徴とする請求項25に記載のイベント配信システムの負荷分散方法。
  27. パブリッシャーノードで発生したイベントの内容を含むイベント情報をサブスクライバーノードへ配信するイベント配信システムに含まれるランデブーノードが自ノードを通過する前記イベント情報のトラヒック量を監視し、
    前記トラヒック監視する処理で監視されるトラヒック量が所定値を超えたときに、前記イベント情報の中から負荷分散の実行対象となる特定イベント情報を決定することを特徴とするランデブーノードの負荷分散方法。
  28. 前記イベント情報が複数の階層からなる識別要素で構成されており、
    前記特定イベント情報を決定する処理では、
    前記識別要素の階層のうち上位から少なくとも2つの階層の識別要素で前記イベント情報の種別を識別する上位イベント識別処理をし、
    前記上位イベント識別処理により識別された前記イベント情報の種別毎にトラヒック量を計測するトラヒック計測処理をし、
    前記トラヒック計測処理により計測された前記イベント情報の種別毎のトラヒック量の中で大きいほうから少なくとも1つを前記特定イベント情報として決定するイベント検出処理を行うことを特徴とする請求項27に記載のランデブーノードの負荷分散方法。
  29. 前記イベント情報が複数の階層からなる識別要素で構成されており、
    前記特定イベント情報を決定する処理では、
    前記識別要素の階層のうち最下位の階層の識別要素で前記イベント情報の種別を識別する下位イベント識別処理をし、
    前記下位イベント識別処理で識別された前記イベント情報の種別毎にトラヒック量を計測するトラヒック計測処理をし、
    前記トラヒック計測処理で計測された前記イベント情報の種別毎のトラヒック量の中で大きいほうから少なくとも1つを前記特定イベント情報として決定するイベント検出処理を行うことを特徴とする請求項27又は請求項28に記載のランデブーノードの負荷分散方法。
  30. 前記特定イベント情報を決定する処理の後に、
    前記特定イベント情報を決定する処理で決定された前記特定イベント情報に関する前記広告情報を取得する情報取得処理をし、
    前記情報取得処理で取得された前記広告情報を含むイベント配信ルート変更メッセージを生成し、
    イベント配信ルート変更メッセージを生成する処理で生成された前記イベント配信ルート変更メッセージを前記イベント配信システムに含まれるブローカーノードへ送信することを特徴とする請求項27乃至請求項29のいずれか1項に記載のランデブーノードの負荷分散方法。
  31. 前記イベント配信ルート変更メッセージを前記ブローカーノードへ送信する処理では、
    生成された前記イベント配信ルート変更メッセージを前記サブスクライバーノード側にある前記ブローカーノードへ送信する下流側メッセージ送信処理を行うことを特徴とする請求項30に記載のランデブーノードの負荷分散方法。
  32. 前記イベント配信ルート変更メッセージを前記ブローカーノードへ送信する処理では、
    前記イベント配信ルート変更メッセージの送信先の前記ブローカーノードのうち少なくとも1つから分岐点ノード識別子が通知されたときに、前記分岐点ノード識別子を前記イベント配信ルート変更メッセージに付加して前記パブリッシャーノード側にある前記ブローカーノードへ送信する上流側メッセージ送信処理を行うことを特徴とする請求項31に記載のランデブーノードの負荷分散方法。
  33. パブリッシャーノードで発生したイベントの内容を含むイベント情報をサブスクライバーノードへ配信するイベント配信システムに含まれるブローカーノードが、パブリッシャーノードで発生したイベントの内容を含むイベント情報の中から負荷分散の実行対象となる特定イベント情報の現在の配信ルートを変更するための集約点ノード又は分岐点ノードであるかを検出するルート検出処理をし、
    前記ルート検出処理で検出された前記集約点ノード及び前記分岐点ノードを経由し、前記パブリッシャーノードで発生した前記イベント情報を前記サブスクライバーノードへ配信するイベント配信システム内に含まれるランデブーノードを回避する前記特定イベント情報の新たな配信ルートを構築するルート構築処理を行うブローカーノードの配信ルート構築方法。
  34. 前記ルート検出処理では、
    前記ランデブーノードからイベント配信ルート変更メッセージを受信したときに、前記サブスクライバーノードが発信した前記イベント情報を要求する要求情報が保持される要求情報テーブルを走査し、前記要求情報テーブルに前記特定イベント情報に関する隣接転送先が複数登録されている場合に自ノードを前記分岐点ノードと判定し、自ノードの識別子を分岐点ノード識別子として前記ランデブーノードへ通知する分岐点判定処理を行うことを特徴とする請求項33に記載のブローカーノードの配信ルート構築方法。
  35. 前記ルート検出処理では、
    前記ランデブーノードから前記分岐点ノード識別子が付加された前記イベント配信ルート変更メッセージを受信したときに、前記パブリッシャーノードが発信した前記イベントを広告する広告情報が保持される広告情報テーブルを走査し、前記広告情報テーブルに前記特定イベント情報に関する隣接転送先が複数登録されている場合に自ノードを前記集約点ノードと判定する集約点判定処理を行うことを特徴とする請求項34に記載のブローカーノードの配信ルート構築方法。
  36. 前記ルート構築処理では、
    自ノードが前記集約点ノードであると前記集約点判定処理で判定されたときに、前記広告情報テーブルに登録された隣接転送先を前記分岐点ノード識別子に書き換えて、前記新たな配信ルートを構築することを特徴とする請求項35に記載のブローカーノードの配信ルート構築方法。
  37. ランデブーノードのトラヒック監視手段が、自ノードを通過するパブリッシャーノードで発生したイベントの内容を含むイベント情報のトラヒック量を監視するトラヒック監視処理と、
    前記ランデブーノードの特定イベント決定手段が、前記トラヒック監視手段が監視するトラヒック量が所定値を超えたときに、前記イベント情報の中から負荷分散の実行対象となる特定イベント情報を決定する特定イベント決定処理と、をコンピュータに実行させるための負荷分散プログラムが格納された記憶媒体。
  38. 前記イベント情報が複数の階層からなる識別要素で構成されており、
    前記特定イベント決定処理では、
    前記特定イベント決定手段に含まれる上位イベント識別手段が、前記識別要素の階層のうち上位から少なくとも2つの階層の識別要素で前記イベント情報の種別を識別する上位イベント識別処理と、
    前記特定イベント決定手段に含まれるトラヒック計測手段が、前記上位イベント識別手段が識別した前記イベント情報の種別毎にトラヒック量を計測するトラヒック計測処理と、
    前記特定イベント決定手段に含まれるイベント検出手段が、前記トラヒック計測手段が計測した前記イベント情報の種別毎のトラヒック量の中で大きいほうから少なくとも1つを前記特定イベント情報として決定するイベント検出処理と、をコンピュータに実行させることを特徴とする請求項37に記載の負荷分散プログラムが格納された記憶媒体。
  39. 前記イベント情報が複数の階層からなる識別要素で構成されており、
    前記特定イベント決定処理では、
    前記特定イベント決定手段に含まれる下位イベント識別手段が、前記識別要素の階層のうち最下位の階層の識別要素で前記イベント情報の種別を識別する下位イベント識別処理と、
    前記特定イベント決定手段に含まれるトラヒック計測手段が、前記下位イベント識別手段が識別した前記イベント情報の種別毎にトラヒック量を計測するトラヒック計測処理と、
    前記特定イベント決定手段に含まれるイベント検出手段が、前記トラヒック計測手段が計測した前記イベント情報の種別毎のトラヒック量の中で大きいほうから少なくとも1つを前記特定イベント情報として決定するイベント検出処理と、をコンピュータに実行させることを特徴とする請求項37又は請求項38に記載の負荷分散プログラムが格納された記憶媒体。
  40. 前記特定イベント決定処理の後に、
    前記ランデブーノードの情報取得手段が、前記特定イベント決定ステップで決定された前記特定イベント情報に関する広告情報を取得する情報取得処理と、
    前記ランデブーノードのメッセージ生成手段が、前記情報取得手段が取得した前記広告情報を含むイベント配信ルート変更メッセージを生成するメッセージ生成処理と、
    前記ランデブーノードのメッセージ送信手段が、前記メッセージ生成手段が生成した前記イベント配信ルート変更メッセージを前記イベント配信システムに含まれるブローカーノードへ送信するメッセージ送信処理と、をコンピュータに実行させることを特徴とする請求項37乃至請求項39のいずれか1項に記載の負荷分散プログラムが格納された記憶媒体。
  41. 前記メッセージ送信処理では、
    前記メッセージ送信手段に含まれる下流側メッセージ送信手段が、前記メッセージ生成手段が生成した前記イベント配信ルート変更メッセージを前記サブスクライバーノード側にある前記ブローカーノードへ送信する下流側メッセージ送信処理をコンピュータに実行させることを特徴とする請求項40に記載の負荷分散プログラムが格納された記憶媒体。
  42. 前記メッセージ送信処理では、
    前記メッセージ送信手段に含まれる上流側メッセージ送信手段が、前記イベント配信ルート変更メッセージの送信先の前記ブローカーノードのうち少なくとも1つから分岐点ノード識別子が通知されたときに、前記分岐点ノード識別子を前記イベント配信ルート変更メッセージに付加して前記パブリッシャーノード側にある前記ブローカーノードへ送信する上流側メッセージ送信処理をコンピュータに実行させることを特徴とする請求項41に記載の負荷分散プログラムが格納された記憶媒体。
  43. ブローカーノードに含まれるルート検出手段が、自ノードがパブリッシャーノードで発生したイベントの内容を含むイベント情報の中から負荷分散の実行対象となる特定イベント情報の現在の配信ルートを変更するための集約点ノード又は分岐点ノードであるかを検出するルート検出処理と、
    前記ブローカーノードに含まれるルート構築手段が、前記ルート検出手段が検出した前記集約点ノード及び前記分岐点ノードを経由し、前記イベント配信システムに含まれるランデブーノードを回避する前記特定イベント情報の新たな配信ルートを構築するルート構築処理と、をコンピュータに実行させることを特徴とする配信ルート構築プログラムが格納された記憶媒体。
  44. 前記ルート検出処理では、
    前記ルート検出手段に含まれる要求情報テーブル走査手段が、前記ランデブーノードからイベント配信ルート変更メッセージを受信したときに、前記イベント情報の配信先であるサブスクライバーノードが発信した前記イベント情報を要求する要求情報が保持される要求情報テーブルを走査し、
    前記ルート検出手段に含まれる分岐点判定手段が、前記要求情報テーブルに前記特定イベント情報に関する隣接転送先が複数登録されている場合に自ノードが前記分岐点ノードであると判定し、
    前記ルート検出手段に含まれる通知手段が、自ノードの識別子を分岐点ノード識別子として前記ランデブーノードへ通知する分岐点判定処理、をコンピュータに実行させることを特徴とする請求項43に記載の配信ルート構築プログラムが格納された記憶媒体。
  45. 前記ルート検出処理では、
    前記ルート検出手段に含まれる広告情報テーブル走査手段が、前記ランデブーノードから前記分岐点ノード識別子が付加された前記イベント配信ルート変更メッセージを受信したときに、前記パブリッシャーノードが発信した前記イベントを広告する広告情報が保持される広告情報テーブルを走査し、
    前記ルート検出手段に含まれる集約点判定手段が、前記広告情報テーブルに前記特定イベント情報に関する隣接転送先が複数登録されている場合に自ノードを前記集約点ノードと判定する集約点判定処理をコンピュータに実行させることを特徴とする請求項44に記載の配信ルート構築プログラムが格納された記憶媒体。
  46. 前記ルート構築処理では、
    前記ルート構築手段が、自ノードが前記集約点ノードであると前記集約点判定処理で判定されたときに、前記広告情報テーブルに登録された隣接転送先を前記分岐点ノード識別子に書き換えて、前記新たな配信ルートを構築するように、コンピュータに実行させることを特徴とする請求項45に記載の配信ルート構築プログラムが格納された記憶媒体。
JP2010550431A 2009-02-16 2010-01-22 イベント配信システム、ランデブーノード、ブローカーノード、イベント配信システムの負荷分散方法、ランデブーノードの負荷分散方法、ブローカーノードの配信ルート構築方法、負荷分散プログラム、及び配信ルート構築プログラム Pending JPWO2010092751A1 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2009032599 2009-02-16
JP2009032599 2009-02-16
PCT/JP2010/000371 WO2010092751A1 (ja) 2009-02-16 2010-01-22 イベント配信システム、ランデブーノード、ブローカーノード、イベント配信システムの負荷分散方法、ランデブーノードの負荷分散方法、ブローカーノードの配信ルート構築方法、負荷分散プログラムが格納された記憶媒体、及び配信ルート構築プログラムが格納された記憶媒体

Publications (1)

Publication Number Publication Date
JPWO2010092751A1 true JPWO2010092751A1 (ja) 2012-08-16

Family

ID=42561600

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010550431A Pending JPWO2010092751A1 (ja) 2009-02-16 2010-01-22 イベント配信システム、ランデブーノード、ブローカーノード、イベント配信システムの負荷分散方法、ランデブーノードの負荷分散方法、ブローカーノードの配信ルート構築方法、負荷分散プログラム、及び配信ルート構築プログラム

Country Status (5)

Country Link
US (1) US8798081B2 (ja)
EP (1) EP2398196A4 (ja)
JP (1) JPWO2010092751A1 (ja)
CN (1) CN102318286A (ja)
WO (1) WO2010092751A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9137189B2 (en) * 2011-03-24 2015-09-15 Red Hat, Inc. Providing distributed dynamic routing using a logical broker
US9313159B2 (en) 2011-03-24 2016-04-12 Red Hat, Inc. Routing messages exclusively to eligible consumers in a dynamic routing network
US9432218B2 (en) 2011-07-28 2016-08-30 Red Hat, Inc. Secure message delivery to a transient recipient in a routed network
US9276716B2 (en) * 2013-09-09 2016-03-01 Cisco Technology, Inc. Sensor data transport and consolidation within communication nodes in a network
US9871754B2 (en) * 2014-07-17 2018-01-16 Sohrab F. Modi Communicating messages between publishers and subscribers in a mesh routing network
JP6368624B2 (ja) * 2014-11-06 2018-08-01 日本電信電話株式会社 非同期メッセージングサーバ連携方式の評価装置及び評価方法
CN110912822B (zh) * 2019-12-20 2022-02-22 迈普通信技术股份有限公司 路径寻找方法、控制器、电子设备及可读存储介质

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7502752B1 (en) * 1997-08-07 2009-03-10 Citicorp Development Center, Inc. System and method for delivering financial services
US6182143B1 (en) * 1998-06-25 2001-01-30 International Business Machines Corporation Publish and subscribe data processing apparatus, method and computer program product with use of a stream to distribute local information between neighbors in a broker structure
US6850987B1 (en) * 1999-06-01 2005-02-01 Fastforward Networks, Inc. System for multipoint infrastructure transport in a computer network
US7742972B2 (en) * 1999-07-21 2010-06-22 Longitude Llc Enhanced parimutuel wagering
JP4183871B2 (ja) * 2000-01-26 2008-11-19 株式会社日立製作所 負荷分散方法及び装置
JP3563328B2 (ja) 2000-06-27 2004-09-08 日本電信電話株式会社 ルート制御システム
US7287089B1 (en) * 2000-10-25 2007-10-23 Thomson Financial Inc. Electronic commerce infrastructure system
US7330830B1 (en) * 2000-10-25 2008-02-12 Thomson Financial Inc. Distributed commerce system
US7406537B2 (en) * 2002-11-26 2008-07-29 Progress Software Corporation Dynamic subscription and message routing on a topic between publishing nodes and subscribing nodes
US6959393B2 (en) * 2002-04-30 2005-10-25 Threat Guard, Inc. System and method for secure message-oriented network communications
DE10301265A1 (de) 2003-01-15 2004-07-29 Siemens Ag Verfahren und Anordnung zum Routing von Datenpaketen in einem paketvermittelnden Datennetz
US7010538B1 (en) * 2003-03-15 2006-03-07 Damian Black Method for distributed RDSMS
CN1567891B (zh) 2003-06-20 2010-04-21 华为技术有限公司 一种实现对数据业务传输路径选择的方法
KR100694227B1 (ko) * 2005-12-27 2007-03-14 삼성전자주식회사 멀티캐스팅 제어 시스템 및 그 방법
US8214325B2 (en) * 2008-11-20 2012-07-03 Sap Ag Federating business event data within an enterprise network

Also Published As

Publication number Publication date
WO2010092751A1 (ja) 2010-08-19
CN102318286A (zh) 2012-01-11
EP2398196A4 (en) 2015-07-22
US8798081B2 (en) 2014-08-05
EP2398196A1 (en) 2011-12-21
US20110292804A1 (en) 2011-12-01

Similar Documents

Publication Publication Date Title
WO2010092751A1 (ja) イベント配信システム、ランデブーノード、ブローカーノード、イベント配信システムの負荷分散方法、ランデブーノードの負荷分散方法、ブローカーノードの配信ルート構築方法、負荷分散プログラムが格納された記憶媒体、及び配信ルート構築プログラムが格納された記憶媒体
Rehena et al. A modified SPIN for wireless sensor networks
EP3038327B1 (en) System and method for multi-source multicasting in content-centric networks
WO2009071008A1 (fr) Procédé, équipement et système de mise à jour d'une table de routage après une défaillance de nœud dans un réseau peer-to-peer
CN108848032B (zh) 一种支持多兴趣类型处理的命名对象网络实现方法
US9503358B2 (en) Distance-based routing in an information-centric network
TW201130371A (en) Methods and apparatus for combined peer to peer and wide area network based discovery
CN103312607A (zh) 一种传输路径选择方法及装置
CN104717238A (zh) 移动自组网中基于蚁群算法的分布式服务组合方法
Dad et al. Optimal path selection using dijkstra’s algorithm in cluster-based LEACH protocol
WO2022042505A1 (zh) 转发报文、发布转发指示信息和通告报文的方法及设备
Sheltami et al. A publish/subscribe middleware cost in wireless sensor networks: A review and case study
JPWO2009107511A1 (ja) 複合イベント検出/配信システム、複合イベント検出/配信方法、及び複合イベント検出/配信用プログラム
Johari et al. Routing protocols in delay tolerant networks: application-oriented survey
Leão et al. Latency and network lifetime trade-off in geographic multicast routing for multi-sink wireless sensor networks
JP2008158931A (ja) コンテンツ配信システム及び方法
Amuthadevi et al. Validation of multicast routing in cyber physical systems monitoring air quality
Pongthawornkamol et al. The analysis of publish/subscribe systems over mobile wireless ad hoc networks
CN102035663B (zh) 一种多域域间路由维护方法和***
Abada et al. A novel path selection and recovery mechanism for MANETs P2P file sharing applications
Reena et al. Wireless sensor network and its routing protocol: a survey paper
Hassan et al. Energy-efficient reliable packet delivery in variable-power wireless sensor networks
CN102761582A (zh) 对等网络中反馈式同侪选择方法与装置
Sharma et al. Performance analysis of flooding and spin in wireless sensor networks
Takeda et al. New structured p2p network with dynamic load balancing scheme