(57)【要約】  転送ノード（１０）には、イベント受信ノード（２２）のノード識別子のうちの特定の階層レベルまでの識別子から成る部分識別子がノード識別子として予め付与されている。イベント受信部（１１）は、イベント送信ノード（２１）からのイベントを受信する。部分識別子抽出部（１２）は、イベント送信元のイベント送信ノード（２１）の識別子から、レベル記憶部（１５）に記憶された階層レベルまでの部分識別子を抽出する。イベント送信部（１３）は、イベント配信先記憶部（１４）を検索して、部分識別子抽出部（１２）が抽出した部分識別子と対応付けて記憶されたイベント受信ノードの部分識別子を取得し、取得した部分識別子と同じノード識別子が設定される転送ノード（１０）又は通知ノード（２３）にイベントを送信する。
2011093492.tif 000002
【特許請求の範囲】
【請求項１】
階層構造を持ち、ノードを一意に識別するノード識別子が予め付与されている１以上のイベント送信ノード及びイベント受信ノードと、
前記イベント受信ノードのノード識別子に対応したノード識別子が予め付与されていると共に、特定のイベント送信ノードが送信したイベントを特定のイベント受信ノードに送信する旨を示すイベント配信ルールが登録され、前記イベント送信ノードから送信されたイベントを、前記登録されたイベント配信ルールに従って、対応するノード識別子を有するイベント受信ノードに送信する１以上の通知ノードと、
前記イベント受信ノードのノード識別子のうちの特定の階層レベルまでの識別子から成る部分識別子がノード識別子として予め付与されており、前記イベント送信ノードが送信したイベントを、前記ノード識別子の階層構造に従って前記通知ノードに向けて転送する複数の転送ノードとを備え、
前記転送ノードが、
前記イベント送信ノードからのイベントを受信するイベント受信手段と、
自転送ノードに付与された前記ノード識別子の階層レベルよりも１つ以上下位の階層レベルを記憶するレベル記憶部を参照し、イベント送信元のイベント送信ノードのノード識別子から、前記レベル記憶部に記憶された階層レベルまでの部分識別子を抽出する第１の部分識別子抽出手段と、
前記イベント送信ノードのノード識別子のうち前記レベル記憶部に記憶された階層レベルまでの部分識別子と、前記イベント受信ノードのノード識別子のうち前記レベル記憶部に記憶された階層レベルまでの部分識別子とを対応付けて記憶するイベント配信先記憶部を検索して、前記第１の部分識別子抽出手段が抽出した部分識別子と対応付けて記憶されたイベント受信ノードの部分識別子を取得し、該取得した部分識別子と同じノード識別子が付与されている転送ノード又は通知ノードに前記イベントを送信するイベント送信手段とを備えるイベント配信システム。
【請求項２】
前記転送ノードが、
前記通知ノードに登録されているイベント配信ルールから、当該イベントの送信元として指定されるイベント送信ノードのノード識別子、及び、当該イベントの送信先として指定されるイベント受信ノードのノード識別子をそれぞれ取り出し、取り出したそれぞれのノード識別子から、前記レベル記憶部に記憶される階層レベルまでの部分識別子を抽出する第２の部分識別子抽出手段と、
前記イベント配信先記憶部に、前記第２の部分識別子抽出手段によって抽出された、前記イベント送信ノードの部分識別子と、前記イベント受信ノードの部分識別子とを対応付けて格納するイベント配信先登録手段とを更に備える、請求項１に記載のイベント配信システム。
【請求項３】
前記転送ノードが、
前記通知ノードに登録すべきイベント配信ルールを受信する配信ルール受信手段と、
前記第２の部分識別子抽出手段によって抽出された前記イベント受信ノードの部分識別子と同じノード識別子が付与されている転送ノード又は通知ノードに、前記イベント配信ルールを送信する配信ルール送信手段とを更に備える、請求項２に記載のイベント配信システム。
【請求項４】
前記イベント配信先登録手段は、前記イベント配信先記憶部に、前記第２の部分識別子抽出手段によって抽出された前記イベント送信ノードの部分識別子が記憶済みであるか否かを調べ、記録済みであるときは、記録済みのイベント送信ノードの部分識別子と対応付けて記憶されるイベント受信ノードの部分識別子に、前記第２の部分識別子抽出手段によって抽出された前記イベント受信ノードの部分識別子を追加して格納する、請求項２又は３に記載のイベント配信システム。
【請求項５】
階層構造を持ち、ノードを一意に識別するノード識別子が予め付与されているイベント受信ノードのノード識別子のうちの特定の階層レベルまでの識別子から成る部分識別子がノード識別子として予め付与されているイベント配信ノードであって、
階層構造を持ち、ノードを一意に識別するノード識別子が予め付与されているイベント送信ノードからのイベントを受信するイベント受信手段と、
自転送ノードに付与された前記ノード識別子の階層レベルよりも１つ以上下位の階層レベルを記憶するレベル記憶部を参照し、イベント送信元のイベント送信ノードのノード識別子から、前記レベル記憶部に記憶された階層レベルまでの部分識別子を抽出する第１の部分識別子抽出手段と、
前記イベント送信ノードのノード識別子のうち前記レベル記憶部に記憶された階層レベルまでの部分識別子と、前記イベント受信ノードのノード識別子のうち前記レベル記憶部に記憶された階層レベルまでの部分識別子とを対応付けて記憶するイベント配信先記憶部を検索して、前記第１の部分識別子抽出手段が抽出した部分識別子と対応付けて記憶されたイベント受信ノードの部分識別子を取得し、該取得した部分識別子と同じノード識別子が付与されている他のイベント配信ノードに前記イベントを送信するイベント送信手段とを備えるイベント配信ノード。
【請求項６】
前記イベント受信ノードに対してイベントの送信を行うイベント配信ノードに登録されているイベント配信ルールから、当該イベントの送信元として指定されるイベント送信ノードのノード識別子、及び、当該イベントの送信先として指定されるイベント受信ノードのノード識別子をそれぞれ取り出し、取り出したそれぞれのノード識別子から、前記レベル記憶部に記憶される階層レベルまでの部分識別子を抽出する第２の部分識別子抽出手段と、
前記イベント配信先記憶部に、前記第２の部分識別子抽出手段によって抽出された、前記イベント送信ノードの部分識別子と、前記イベント受信ノードの部分識別子とを対応付けて格納するイベント配信先登録手段とを更に備える、請求項５に記載のイベント配信ノード。
【請求項７】
前記イベント配信ルールを受信する配信ルール受信手段と、
前記第２の部分識別子抽出手段によって抽出された前記イベント受信ノードの部分識別子と同じノード識別子が付与されている転送ノード又は通知ノードに、前記イベント配信ルールを送信する配信ルール送信手段とを更に備える、請求項６に記載のイベント配信ノード。
【請求項８】
階層構造を持ち、ノードを一意に識別するノード識別子が予め付与されている１以上のイベント受信ノードのノード識別子に対応したノード識別子が予め付与されていると共に、階層構造を持ち、ノードを一意に識別するノード識別子が予め付与されている１以上のイベント送信ノードのうちの特定のイベント送信ノードが送信したイベントを特定のイベント受信ノードに送信する旨を示すイベント配信ルールが登録され、前記イベント送信ノードから送信されたイベントを、前記登録されたイベント配信ルールに従って、対応するノード識別子を有するイベント受信ノードに送信する１以上の通知ノードと、
前記イベント受信ノードのノード識別子のうちの特定の階層レベルまでの識別子から成る部分識別子がノード識別子として予め付与されており、前記イベント送信ノードが送信したイベントを、前記ノード識別子の階層構造に従って前記通知ノードに向けて転送する複数の転送ノードとを備え、
前記転送ノードが、
前記イベント送信ノードからのイベントを受信するイベント受信手段と、
自転送ノードに付与された前記ノード識別子の階層レベルよりも１つ以上下位の階層レベルを記憶するレベル記憶部を参照し、イベント送信元のイベント送信ノードのノード識別子から、前記レベル記憶部に記憶された階層レベルまでの部分識別子を抽出する部分識別子抽出手段と、
前記イベント送信ノードのノード識別子のうち前記レベル記憶部に記憶された階層レベルまでの部分識別子と、前記イベント受信ノードのノード識別子のうち前記レベル記憶部に記憶された階層レベルまでの部分識別子とを対応付けて記憶するイベント配信先記憶部を検索して、前記部分識別子抽出手段が抽出した部分識別子と対応付けて記憶されたイベント受信ノードの部分識別子を取得し、該取得した部分識別子と同じノード識別子が付与されている転送ノード又は通知ノードに前記イベントを送信するイベント送信手段とを備えるイベント配信ネットワーク。
【請求項９】
コンピュータが、階層構造を持ち、ノードを一意に識別するノード識別子が予め付与されているイベント送信ノードからイベントを受信するステップと、
コンピュータが、階層構造を持ち、ノードを一意に識別するノード識別子が予め付与されているイベント受信ノードの前記ノード識別子のうちの特定の階層レベルまでの識別子から成る部分識別子がノード識別子として予め付与されているイベント配信ノードの前記ノード識別子の階層レベルよりも１つ以上下位の階層レベルを記憶するレベル記憶部を参照して、イベントの送信元のイベント送信ノードのノード識別子から、前記レベル記憶部に記憶された階層レベルまでの部分識別子を抽出するステップと、
コンピュータが、前記イベント送信ノードのノード識別子のうち前記レベル記憶部に記憶された階層レベルまでの部分識別子と、前記イベント受信ノードのノード識別子のうち前記レベル記憶部に記憶された階層レベルまでの部分識別子とを対応付けて記憶するイベント配信先記憶部を検索して、前記抽出された部分識別子と対応付けて記憶されたイベント受信ノードの部分識別子を取得するステップと、
コンピュータが、前記取得した部分識別子と同じノード識別子が付与されている他のイベント配信ノードに前記イベントを送信するステップとを有するイベント配信方法。
【請求項１０】
コンピュータに、
階層構造を持ち、ノードを一意に識別するノード識別子が予め付与されているイベント送信ノードからイベントを受信する処理と、
階層構造を持ち、ノードを一意に識別するノード識別子が予め付与されているイベント受信ノードの前記ノード識別子のうちの特定の階層レベルまでの識別子から成る部分識別子がノード識別子として予め付与されているイベント配信ノードの前記ノード識別子の階層レベルよりも１つ以上下位の階層レベルを記憶するレベル記憶部を参照して、イベントの送信元のイベント送信ノードのノード識別子から、前記レベル記憶部に記憶された階層レベルまでの部分識別子を抽出する処理と、
前記イベント送信ノードのノード識別子のうち前記レベル記憶部に記憶された階層レベルまでの部分識別子と、前記イベント受信ノードのノード識別子のうち前記レベル記憶部に記憶された階層レベルまでの部分識別子とを対応付けて記憶するイベント配信先記憶部を検索して、前記抽出された部分識別子と対応付けて記憶されたイベント受信ノードの部分識別子を取得する処理と、
前記取得された部分識別子と同じノード識別子が付与されている他のイベント配信ノードに前記イベントを送信する処理とを実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、イベント配信システム、イベント配信ネットワーク、イベント配信ノード、イベント配信方法、及び、コンピュータ読み取り可能な記録媒体に関し、更に詳しくは、イベント送信ノードが送信したイベントをイベント受信ノードに配信するためのイベント配信システム、イベント配信ネットワーク、イベント配信ノード、イベント配信方法、及び、そのためのプログラムを記録したコンピュータ読み取り可能な記録媒体に関する。
【背景技術】
【０００２】
特許文献１は、センサやＲＦＩＤ（Radio Frequency Identification）などのデバイスから送信されるイベントを配信するシステム（イベント配信システム）が記載された文献である。イベント配信システムは、イベントを配信するための通信ネットワーク内に、複数の処理サーバ（以下、イベント配信ノードとも呼ぶ）を有する。イベント配信ノードは、センサやＲＦＩＤなどのデバイス（以下、イベント送信ノードとも呼ぶ）が送信するイベントを、当該イベントを処理するアプリケーション（以下、イベント受信ノードとも呼ぶ）へ配信する。【０００３】
図９は、特許文献１に記載のイベント配信システムを示している。このイベント配信システムにおけるネッワーク（イベント配信ネットワーク）は、イベント処理分散制御装置２０１、振り分け器２０３、及び、複数の処理サーバ２０４を有する。各処理サーバ２０４には、イベント受信ノード（アプリケーション）２０６からの要求に応じて、処理ルール（イベント配信ルール）２０８が個別に設定されている。処理ルール２０８は、例えば、「全ての部材のＲＦＩＤタグを検出したらイベント受信ノードに通知」といったように、イベントを配信する上の条件が定義されたものである。【０００４】
イベント送信ノード２０５（デバイス）は、振り分け器２０３に対してイベントを送信する。処理サーバ２０４は、振り分け器２０３を介してイベントを受信し、処理ルール２０８に従ってイベントを処理する。処理サーバ２０４は、処理ルール２０８で定義される条件が満たされると、イベント処理結果をイベント受信ノード２０６へ通知する。【０００５】
イベント処理分散制御装置２０１は、イベント受信ノード２０６が要求するイベントの処理ルール２０８を処理サーバ２０４に設定する。また、イベント処理分散制御装置２０１は、振り分け器２０３が、処理ルール２０８を実行するために必要なイベントが適切に分配されるように、振り分け器２０３に対して、振り分けルール２０７を設定する。振り分け器２０３は、イベント送信ノード２０５からのイベントを受信すると、振り分けルール２０７に従って、当該イベントを処理すべき処理ルール２０８が設定された処理サーバ２０４にイベントを送信する。【０００６】
特許文献１のイベント配信システムは、イベント配信ノードを複数の処理サーバ２０４で構成し、それら複数台の処理サーバ２０４に登録される処理ルール２０８を適切に分配している。このようにすることで、イベント送信ノード２０５の数の増大や、イベント配信ネットワークに送信されるイベントの数の増大に対して、スケーラビリティを実現できる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００６−３０９７０１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ここで、複数のイベント配信ネットワークを設けたイベント配信システムを考える。図１０は、複数のイベント配信ネットワークを設けたイベント配信システムを示している。図１０の例では、イベント配信システム内に、イベント配信ネットワーク３０１を２つ設けている。各イベント配信ネットワーク３０１は、それぞれ、図９の振り分け器２０３と処理サーバ２０４とを含む。イベント配信ネットワーク３０１は、例えば国、地方、都道府県など、地域を分けて設けられる。イベント配信ネットワーク３０１は、配下のイベント送信ノード３０２が送信するイベントを、イベント受信ノード３０３へ配信する。【０００９】
図１０において、イベント送信ノード３０２が、どのイベント配信ネットワーク３０１に対してイベントを送信するかは、イベント送信ノード３０２が存在する場所などに依存して決まる。例えば、イベント送信ノード３０２が、ユーザが所持する携帯端末装置に付されたＲＦＩＤタグであるとした場合、ユーザがある地域から別の地域へ移動すると、それに伴って、イベント送信ノード３０２が移動する。イベント送信ノード３０２が移動すると、イベント送信ノード３０２がイベントを送信するイベント配信ネットワーク３０１が、移動の前後で変化することがある。【００１０】
イベント受信ノード３０３は、イベント配信ネットワーク３０１からイベントを受信するためには、処理ルールをイベント配信ネットワーク３０１内のイベント処理分散制御装置２０１（図９参照）を介して処理サーバ２０４に設定しておく必要がある。従って、イベント送信ノード３０２がイベントを送信するイベント配信ネットワーク３０１が変更になった場合、イベント受信ノード３０３は、移動先のイベント配信ネットワーク３０１内のイベント処理分散制御装置２０１を介して処理サーバ２０４へ、処理ルールを新たに登録し直す必要がある。【００１１】
上記した問題を解消するためには、イベント配信システムを構成する全てのイベント配信ネットワーク３０１に、処理ルールを登録しておけばよい。しかし、その場合、全てのイベント受信ノード３０３に関する処理ルールが、全てのイベント配信ネットワーク３０１に登録されるため、イベント配信ネットワーク３０１の増大に伴い、登録される処理ルールの数が増大するという問題が生じる。【００１２】
また、上記問題を解消するための構成として、全てのイベント送信ノード３０２が、全てのイベント配信ネットワーク３０１にイベントを送信する構成も考えられる。しかし、その場合、膨大なイベント送信に起因して、ネットワークの負荷増大が発生する。また、イベント送信ノード３０２が全てのイベント配信ネットワーク３０１にイベントを送信する構成であると、当該イベントを処理すべき処理ルールが設定された処理サーバ２０４を全く含まないイベント配信ネットワーク３０１にもイベントが送信されることになる。その場合、振り分け器２０３は、振り分け先がないにもかかわらず、振り分けルールを参照して振り分け先を調べなければならず、振り分け器２０３の処理負担が無用に大きくなってしまう。【００１３】
イベント配信システムが、単一のイベント配信ネットワーク３０１しか持たないのであれば、上記の問題は生じない。しかし、イベントは必ず振り分け器２０３を通るため、イベント送信ノード３０２の数が膨大となると、振り分け器２０３は、膨大な数のイベントイベントを処理しなければならず、振り分け器２０３の負荷は増大する。振り分け器２０３を複数台のサーバで構成すれば、負荷分散を図ることはできる。しかし、全てのイベント送信ノード３０２からのイベントを振り分け可能にするためには、振り分け器２０３を構成する複数台のサーバのそれぞれが、全てのイベント送信ノード３０２からのイベントを振り分けるための振り分けルールを記憶しなければならない。このため、イベント配信システムで管理しなくてはならない振り分けルールの数が増加し、その管理も煩雑となるという問題が生じる。【００１４】
上記した各問題点を解消するために、イベント配信システムを構成する各ノード（イベント送信ノード、イベント受信ノード、及び、イベント配信ノード）を識別するノード識別子に階層構造を導入したイベント配信システムを考えてみる。図１１は、各ノードに階層化構造のノード識別子が付与されたイベント配信システムを示している。イベント配信ノード４０１、イベント送信ノード４０２、及び、イベント受信ノード４０３には、それぞれ、各ノードを一意に識別するための階層化されたノード識別子が付与されている。図１１では、ノード識別子の階層の数は、４階層までとしている。また、図１１では、各階層のノード識別子は英数字を用いて構成され、階層の区切り文字として、“．”（ピリオド）を用いている。【００１５】
イベント配信ネットワーク４００は、階層化されたイベント送信ノード４０２のノード識別子に対応したイベント配信ノード４０１を含む。より詳細には、イベント配信ネットワーク４００は、木構造のルートに相当するイベント配信ノード４０１ａ（.）、イベント送信ノード４０２のノード識別子の階層レベル１でのノード識別子が設定されるイベント配信ノード４０１ｂ〜４０１ｄ（jp、cn、kr）、階層レベル２までのノード識別子が設定されるイベント配信ノード４０１ｅ〜４０１ｇ（jp.co、cn.co、kr.co）、及び、階層レベル３までのノード識別子が設定されるイベント配信ノード４０１ｈ〜４０１ｊ（jp.co.ex、cn.co.ex、kr.co.ex）を含む。また、イベント配信ネットワーク４００は、階層レベル４までのノード識別子が設定されるイベント配信ノード、つまり、イベント送信ノード４０２のノード識別子と同一のノード識別子を有するイベント配信ノード４０１ｋ〜４０１ｍ（jp.co.ex.src1、cn.co.ex.src1、kr.co.ex.src1）を含む。【００１６】
イベント配信システムにおける処理は、大きく分けて、イベント受信ノード４０３がイベント配信ネットワーク４００に対して、イベント配信ルールを登録する処理と、イベント配信ネットワーク４００が、イベント送信ノード４０２からのイベントをイベント受信ノード４０３へ送信する処理とがある。まず、イベントの配信を欲するイベント受信ノード４０３が、イベント配信ネットワーク４００に対してイベント配信ルールを登録する際の処理を説明する。ここでは、イベント受信ノード４０３ａ（jp.co.ex.dst1）が、イベント送信ノード４０２ｃ（kr.co.ex.src1）によりイベント配信ネットワーク４００に入力されるイベントの配信を欲するものとする。【００１７】
イベント受信ノード４０３ａ（jp.co.ex.dst1）は、イベント配信ルールを、イベント配信ノード４０１ａ（.）へ送信する。このイベント配信ルールは、イベント送信ノード４０２ｃ（kr.co.ex.src1）がイベントを送信したとき、そのイベントをイベント受信ノード４０３ａ（jp.co.ex.dst1）に送信する旨を示す。イベント配信ノード４０１ａ（.）は、受信したイベント配信ルールを、イベント配信ルールに含まれるイベント送信ノードのノード識別子に従って、下位の階層のイベント配信ノードへ転送する。イベント受信ノード４０３ａ（jp.co.ex.dst1）が送信したイベント配信ルールは、イベント送信ノード４０２ｃ（kr.co.ex.src1）からのイベントを欲する旨を示すので、イベント配信ノード４０１ａ（.）は、イベント配信ルールを、イベント配信ノード４０１ｄ（kr）へ送信する。【００１８】
イベント配信ノード４０１ｄ（kr）は、受信したイベント配信ルールを、イベント配信ノード４０１ｇ（kr.co）へ送信する。イベント配信ノード４０１ｇ（kr.co）は、受信したイベント配信ルールを、イベント配信ノード４０１ｊ（kr.co.ex）に送信する。イベント配信ノード４０１ｊ（kr.co.ex）は、受信したイベント配信ルールを、イベント配信ノード４０１ｍ（kr.co.ex.src1）に送信する。イベント配信ノード４０１ｍ（kr.co.ex.src1）は、イベント送信ノード４０２ｃ（kr.co.ex.src1）に対応したイベント配信ノードであるため、受信したイベント配信ルールを格納する。以上の流れは、図１１中では、破線で示す矢印に対応する。【００１９】
次いで、イベント送信ノードからイベント受信ノードまでのイベント転送を説明する。イベント送信ノード４０２ｃ（kr.co.ex.src1）は、イベントをイベント配信ノード４０１ａ（.）に送信する。イベント配信ノード４０１ａ（.）は、イベント送信元のイベント送信ノードのノード識別子に従って、イベントをイベント配信ノード４０１ｄ（kr）に送信する。イベント配信ノード４０１ｄ（kr）は、受信したイベントをイベント配信ノード４０１ｇ（kr.co）に送信する。イベント配信ノード４０１ｇ（kr.co）は、受信したイベントをイベント配信ノード４０１ｊ（kr.co.ex）に送信する。イベント配信ノード４０１ｊ（kr.co.ex）は、受信したイベントをイベント配信ノード４０１ｍ（kr.co.ex.src1）に送信する。以上の流れは、図１１中では、実線で示す矢印に対応する。【００２０】
イベント配信ノード４０１ｍ（kr.co.ex.src1）は、格納されたイベント配信ルールを検査し、イベント配信ルールで指定された条件が満たされるとき、イベント受信ノード４０３ａ（jp.co.ex.dst1）に、イベント送信ノード４０２ｃ（kr.co.ex.src1）からのイベントを送信する。イベント配信ノード４０１ｍ（kr.co.ex.src1）は、イベント配信ルールを格納するときに、例えば、イベント受信ノード４０３ａ（jp.co.ex.dst1）のアドレスを記憶しておき、それを参照して、イベント受信ノード４０３ａ（jp.co.ex.dst1）へイベントを送信する。或いは、イベント配信ネットワーク４００内に、各イベント受信ノード４０３のノード識別子に対応したイベント配信ノードを設けておき、そのイベント配信ノードからイベント受信ノード４０３ａ（jp.co.ex.dst1）へイベントを送信してもよい。その場合、イベント配信ノード４０１ｍ（kr.co.ex.src1）は、イベント配信ノード４０１ａ（.）にイベントを送信する。イベント配信ネットワーク４００では、イベント配信ノード４０１ａ（.）からイベント受信ノード４０３ａ（jp.co.ex.dst1）に対応したイベント配信ノードまでイベントを順次に転送し、最終的に、イベント受信ノード４０３ａ（jp.co.ex.dst1）に対応したイベント配信ノードから、イベント受信ノード４０３ａ（jp.co.ex.dst1）へイベントを送信する。【００２１】
図１１のイベント配信システムでは、イベント配信ノード４０１、イベント送信ノード４０２、及び、イベント受信ノード４０３に対して付与するノード識別子を階層化している。イベント配信ノード４０１は、イベント配信ネットワーク４００にイベントが入力されると、そのイベントに含まれる、当該イベントの送信元のイベント送信ノード４０２のノード識別子に基づいて、イベントを転送する。イベントを、イベント配信ノード４０１間で転送し、当該イベントの送信元のイベント送信ノード４０２に対するイベント配信ルールを格納するイベント配信ノード４０１に転送することで、全てのイベント配信ノード４０１にイベント配信ルールを格納することなしに、効率的なイベント配信を実現できる。【００２２】
しかしながら、図１１のイベント配信システムでは、あるイベント送信ノードがイベント配信ネットワーク４００に入力したイベントは、必ず、当該イベントの送信元のイベント送信ノードに対応するイベント配信ノードを経由して、イベント受信ノードに配信される。このため、あるイベント送信ノードから送信されるイベントの数が膨大である場合や、あるイベント送信ノードから送信されるイベントを欲するイベント受信ノードの数が膨大である場合には、そのイベント送信ノードに対応するイベント配信ノードの負荷が増大するという問題がある。【００２３】
本発明は、上記の問題点を解消し、特定のイベント配信ノードに負荷が集中することを避けることができるイベント配信システム、イベント配信ネットワーク、イベント配信ノード、イベント配信方法、及び、そのためのプログラムを記録したコンピュータ読み取り可能な記録媒体を提供することを目的とする。
【課題を解決するための手段】
【００２４】
本発明の第１の観点に係るイベント配信システムは、
階層構造を持ち、ノードを一意に識別するノード識別子が予め付与されている１以上のイベント送信ノード及びイベント受信ノードと、
前記イベント受信ノードのノード識別子に対応したノード識別子が予め付与されていると共に、特定のイベント送信ノードが送信したイベントを特定のイベント受信ノードに送信する旨を示すイベント配信ルールが登録され、前記イベント送信ノードから送信されたイベントを、前記登録されたイベント配信ルールに従って、対応するノード識別子を有するイベント受信ノードに送信する１以上の通知ノードと、
前記イベント受信ノードのノード識別子のうちの特定の階層レベルまでの識別子から成る部分識別子がノード識別子として予め付与されており、前記イベント送信ノードが送信したイベントを、前記ノード識別子の階層構造に従って前記通知ノードに向けて転送する複数の転送ノードとを備え、
前記転送ノードが、
前記イベント送信ノードからのイベントを受信するイベント受信手段と、
自転送ノードに付与された前記ノード識別子の階層レベルよりも１つ以上下位の階層レベルを記憶するレベル記憶部を参照し、イベント送信元のイベント送信ノードのノード識別子から、前記レベル記憶部に記憶された階層レベルまでの部分識別子を抽出する第１の部分識別子抽出手段と、
前記イベント送信ノードのノード識別子のうち前記レベル記憶部に記憶された階層レベルまでの部分識別子と、前記イベント受信ノードのノード識別子のうち前記レベル記憶部に記憶された階層レベルまでの部分識別子とを対応付けて記憶するイベント配信先記憶部を検索して、前記第１の部分識別子抽出手段が抽出した部分識別子と対応付けて記憶されたイベント受信ノードの部分識別子を取得し、該取得した部分識別子と同じノード識別子が付与されている転送ノード又は通知ノードに前記イベントを送信するイベント送信手段とを備える。【００２５】
本発明の第２の観点に係るイベント配信ノードは、
階層構造を持ち、ノードを一意に識別するノード識別子が予め付与されているイベント受信ノードのノード識別子のうちの特定の階層レベルまでの識別子から成る部分識別子がノード識別子として予め付与されているイベント配信ノードであって、
階層構造を持ち、ノードを一意に識別するノード識別子が予め付与されているイベント送信ノードからのイベントを受信するイベント受信手段と、
自転送ノードに付与された前記ノード識別子の階層レベルよりも１つ以上下位の階層レベルを記憶するレベル記憶部を参照し、イベント送信元のイベント送信ノードのノード識別子から、前記レベル記憶部に記憶された階層レベルまでの部分識別子を抽出する第１の部分識別子抽出手段と、
前記イベント送信ノードのノード識別子のうち前記レベル記憶部に記憶された階層レベルまでの部分識別子と、前記イベント受信ノードのノード識別子のうち前記レベル記憶部に記憶された階層レベルまでの部分識別子とを対応付けて記憶するイベント配信先記憶部を検索して、前記第１の部分識別子抽出手段が抽出した部分識別子と対応付けて記憶されたイベント受信ノードの部分識別子を取得し、該取得した部分識別子と同じノード識別子が付与されている他のイベント配信ノードに前記イベントを送信するイベント送信手段とを備える。【００２６】
本発明の第３の観点に係るイベント配信ネットワークは、
階層構造を持ち、ノードを一意に識別するノード識別子が予め付与されている１以上のイベント受信ノードのノード識別子に対応したノード識別子が予め付与されていると共に、階層構造を持ち、ノードを一意に識別するノード識別子が予め付与されている１以上のイベント送信ノードのうちの特定のイベント送信ノードが送信したイベントを特定のイベント受信ノードに送信する旨を示すイベント配信ルールが登録され、前記イベント送信ノードから送信されたイベントを、前記登録されたイベント配信ルールに従って、対応するノード識別子を有するイベント受信ノードに送信する１以上の通知ノードと、
前記イベント受信ノードのノード識別子のうちの特定の階層レベルまでの識別子から成る部分識別子がノード識別子として予め付与されており、前記イベント送信ノードが送信したイベントを、前記ノード識別子の階層構造に従って前記通知ノードに向けて転送する複数の転送ノードとを備え、
前記転送ノードが、
前記イベント送信ノードからのイベントを受信するイベント受信手段と、
自転送ノードに付与された前記ノード識別子の階層レベルよりも１つ以上下位の階層レベルを記憶するレベル記憶部を参照し、イベント送信元のイベント送信ノードのノード識別子から、前記レベル記憶部に記憶された階層レベルまでの部分識別子を抽出する部分識別子抽出手段と、
前記イベント送信ノードのノード識別子のうち前記レベル記憶部に記憶された階層レベルまでの部分識別子と、前記イベント受信ノードのノード識別子のうち前記レベル記憶部に記憶された階層レベルまでの部分識別子とを対応付けて記憶するイベント配信先記憶部を検索して、前記部分識別子抽出手段が抽出した部分識別子と対応付けて記憶されたイベント受信ノードの部分識別子を取得し、該取得した部分識別子と同じノード識別子が付与されている転送ノード又は通知ノードに前記イベントを送信するイベント送信手段とを備える。【００２７】
本発明の第４の観点に係るイベント配信方法は、
コンピュータが、階層構造を持ち、ノードを一意に識別するノード識別子が予め付与されているイベント送信ノードからイベントを受信するステップと、
コンピュータが、階層構造を持ち、ノードを一意に識別するノード識別子が予め付与されているイベント受信ノードの前記ノード識別子のうちの特定の階層レベルまでの識別子から成る部分識別子がノード識別子として予め付与されているイベント配信ノードの前記ノード識別子の階層レベルよりも１つ以上下位の階層レベルを記憶するレベル記憶部を参照して、イベントの送信元のイベント送信ノードのノード識別子から、前記レベル記憶部に記憶された階層レベルまでの部分識別子を抽出するステップと、
コンピュータが、前記イベント送信ノードのノード識別子のうち前記レベル記憶部に記憶された階層レベルまでの部分識別子と、前記イベント受信ノードのノード識別子のうち前記レベル記憶部に記憶された階層レベルまでの部分識別子とを対応付けて記憶するイベント配信先記憶部を検索して、前記抽出された部分識別子と対応付けて記憶されたイベント受信ノードの部分識別子を取得するステップと、
コンピュータが、前記取得した部分識別子と同じノード識別子が付与されている他のイベント配信ノードに前記イベントを送信するステップとを有する。【００２８】
本発明の第５の観点に係るコンピュータ読み取り可能な記録媒体は、
コンピュータに、
階層構造を持ち、ノードを一意に識別するノード識別子が予め付与されているイベント送信ノードからイベントを受信する処理と、
階層構造を持ち、ノードを一意に識別するノード識別子が予め付与されているイベント受信ノードの前記ノード識別子のうちの特定の階層レベルまでの識別子から成る部分識別子がノード識別子として予め付与されているイベント配信ノードの前記ノード識別子の階層レベルよりも１つ以上下位の階層レベルを記憶するレベル記憶部を参照して、イベントの送信元のイベント送信ノードのノード識別子から、前記レベル記憶部に記憶された階層レベルまでの部分識別子を抽出する処理と、
前記イベント送信ノードのノード識別子のうち前記レベル記憶部に記憶された階層レベルまでの部分識別子と、前記イベント受信ノードのノード識別子のうち前記レベル記憶部に記憶された階層レベルまでの部分識別子とを対応付けて記憶するイベント配信先記憶部を検索して、前記抽出された部分識別子と対応付けて記憶されたイベント受信ノードの部分識別子を取得する処理と、
前記取得された部分識別子と同じノード識別子が付与されている他のイベント配信ノードに前記イベントを送信する処理とを実行させるプログラムを記録している。
【発明の効果】
【００２９】
本発明によれば、上記従来の問題点を解消し、特定のイベント配信ノードに負荷が集中することを避けることができる。
【図面の簡単な説明】
【００３０】
【図１】本発明のイベント配信システムの概要を説明するための図である。
【図２】本発明の一実施形態に係るイベント配信システムの構成を示す図である。
【図３】イベント配信ノード（転送ノード）の構成を示すブロック図である。
【図４】転送ノードによる、イベント配信ルール受信時の動作手順を示すフローチャートである。
【図５】転送ノードによる、イベント受信時の動作手順を示すフローチャートである。
【図６】実施例のイベント配信システムにおけるイベント配信ルール転送時の様子を示す図である。
【図７】実施例のイベント配信システムにおける別のイベント配信ルールを転送する際の様子を示す図である。
【図８】実施例のイベント配信システムにおけるイベント送信ノードがイベントを送信した際の様子を示す図である。
【図９】特許文献１に記載のイベント配信システムを示す図である。
【図１０】複数のイベント配信ネットワークを設けたイベント配信システムを示す図である。
【図１１】各ノードが階層化されたノード識別子を有するイベント配信システムを示す図である。
【発明を実施するための形態】
【００３１】
本発明の実施形態の説明に先立って、本発明の概要を説明する。図１は、本発明のイベント配信システムを示している。本発明のイベント配信システムは、それぞれ１以上のイベント送信ノード２１、イベント受信ノード２２、及び、通知ノード２３を含む。また、本発明のイベント配信システムは、複数の転送ノード１０を含む。イベント送信ノード２１及びイベント受信ノード２２には、それぞれ、階層構造を持ち、各ノードを一意に識別するノード識別子が設定されている。通知ノード２３には、イベント受信ノード２２のノード識別子に対応したノード識別子が設定される。転送ノード１０には、イベント受信ノード２２のノード識別子のうちの特定の階層レベルまでの識別子から成る部分識別子がノード識別子として設定される。
【００３２】
各転送ノード１０及び各通知ノード２３は、イベント配信ネットワークにおいて、イベント送信ノード２１が送信したイベントをイベント受信ノード２２まで配信するノード（イベント配信ノード）として機能する。転送ノード１０は、イベント送信ノード２１が送信したイベントを、ノード識別子の階層構造に従って、通知ノード２３に向けて転送する。通知ノード２３は、特定のイベント送信ノード２１が送信したイベントを特定のイベント受信ノード２２に送信する旨を示すイベント配信ルール２４を記憶装置などに記憶している。通知ノード２３は、イベント配信ルール２４に従って、イベント送信ノード２１が送信したイベントを、自ノードのノード識別子に対応するノード識別子を有するイベント受信ノード２２に送信する。なお、イベント配信ルール２４は、通知ノード２３から参照可能であればよく、通知ノード２３内に記憶されている必要はない。
【００３３】
転送ノード１０は、イベント受信部１１と、部分識別子抽出部１２と、イベント送信部１３と、イベント配信先記憶部１４と、レベル記憶部１５と、を有する。レベル記憶部１５は、自転送ノード１０に設定されたノード識別子の階層レベルよりも１つ以上下位の階層レベルを記憶する。イベント配信先記憶部１４は、イベント送信ノード２１のノード識別子のうち、レベル記憶部１５に記憶された階層レベルまでの部分識別子と、イベント受信ノード２２のノード識別子のうち、レベル記憶部１５に記憶された階層レベルまでの部分識別子とを対応付けて記憶する。なお、イベント配信先記憶部１４及びレベル記憶部１５は、転送ノード１０の外部に構成されていてもよい。
【００３４】
イベント受信部１１は、イベント送信ノード２１から送信されたイベントを受信する。部分識別子抽出部（第１の部分識別子抽出手段）１２は、レベル記憶部１５を参照し、イベント送信元のイベント送信ノード２１のノード識別子から、レベル記憶部１５に記憶された階層レベルまでの部分識別子を抽出する。イベント送信部１３は、イベント配信先記憶部１４を検索して、部分識別子抽出部１２が抽出した部分識別子と対応付けて記憶されたイベント受信ノード２２の部分識別子を取得する。イベント送信部１３は、取得した部分識別子と同じノード識別子が設定された、他の転送ノード１０又は通知ノード２３に、イベントを送信する。
【００３５】
本発明では、イベント送信ノード２１、イベント受信ノード２２、通知ノード２３、及び、転送ノード１０のそれぞれに、階層構造を持つノード識別子を導入する。転送ノード１０は、イベント送信ノード２１から送信されたイベントを受信すると、イベント配信先記憶部１４から、イベント送信元のイベント送信ノードの部分識別子と対応付けて記憶されたイベント受信ノード２２の部分識別子を取得する。転送ノード１０は、受信したイベントを、イベント配信先記憶部１４から取得した部分識別子と同じノード識別子が設定された転送ノード１０又は通知ノード２３に送信する。転送ノード１０間でイベントを転送することで、イベントを、そのイベントを処理すべきイベント受信ノード２２に対応した通知ノード２３まで転送できる。
【００３６】
例えば、同一のイベント送信ノード２１が送信するイベントの配信を欲するイベント受信ノード２２が複数あるときを考える。当該イベント送信ノード２１がイベントを送信すると、イベント配信ネットワークでは、転送ノード１０間でノード識別子の階層構造に従ってイベントを送受信する。そして、当該イベントの配信を欲する複数のイベント受信ノード２２のそれぞれに対応したノード識別子が設定される通知ノード２３までイベントを転送する。仮に、イベントを、イベント送信ノードのノード識別子に対応するイベント配信ノード（通知ノード）へ転送したとすると、その通知ノードにて、複数のイベント受信ノードに対応したイベント配信ルールを検査する必要が生じる。本発明では、イベントの転送先を、イベント受信ノード２２のノード識別子に対応した通知ノード２３にしているため、あるイベント送信ノード２１が送信するイベントを欲するイベント受信ノード２２が複数ある場合でも、特定のイベント配信ノード（通知ノード２３）に負荷が集中することを避けることができる。
【００３７】
以下、図面を参照しつつ、本発明の実施形態を詳細に説明する。図２は、本発明の一実施形態に係るイベント配信システムを示している。このイベント配信システムは、イベント配信ネットワーク１００を含む。イベント配信ネットワーク１００は、イベント送信ノード１３１が送信したイベントを、イベント受信ノード１３２に配信する。イベント配信ネットワーク１００は、階層化された複数のイベント配信ノードを含む。イベント配信ノードは、イベントをイベント受信ノード１３２に送信する通知ノード１０２と、イベントを通知ノード１０２まで転送する転送ノード１０１とに大別される。イベント配信システムの全体的な構成は、図１１に示すイベント配信システムと同様である。
【００３８】
イベント送信ノード１３１及びイベント受信ノード１３２には、それぞれ、階層構造を持ち、ノードを一意に識別するノード識別子が設定されている。イベント配信ノードのうち、通知ノード１０２には、イベント受信ノード１３２のノード識別子に対応したノード識別子が設定される。また、イベント配信ノードのうち、転送ノード１０１には、イベント受信ノード１３２のノード識別子のうちの特定の階層レベルまでの識別子から成る部分識別子がノード識別子として設定される。イベント受信ノード１３２の識別子の階層数をｎとすれば、イベント配信ノードのうち、階層レベル０〜ｎ−１までの階層のイベント配信ノードが転送ノード１０１を構成し、階層レベルｎのイベント配信ノードが通知ノード１０２を構成する。各イベント配信ノード（転送ノード１０１、通知ノード１０２）は、プログラム制御で動作するコンピュータシステムで構成できる。
【００３９】
通知ノード１０２には、イベントを処理するためのイベント配信ルールが図示しない記憶装置に記憶されている。イベント配信ルールは、特定のイベント送信ノード１３１が送信したイベントを特定のイベント受信ノード１３２に送信する旨を示す。イベント配信ルールは、イベント送信元のイベント送信ノード１３１のノード識別子と、イベント送信先のイベント受信ノード１３２のノード識別子とを含む。また、イベント配信ルールは、イベントをイベント受信ノード１３２に送信する際の条件を含む。各通知ノード１０１には、自ノードに設定されたノード識別子と同じノード識別子のイベント受信ノード１３２をイベント送信先とするイベント配信ルールが登録される。
【００４０】
転送ノード１０１は、イベント送信ノード１３１が送信したイベントを、ノード識別子の階層構造に従って、そのイベントを処理すべきイベント配信ルールが登録された通知ノード１０２に向けて転送する。転送ノード１０１は、ノード識別子の階層構造において、次の階層レベルに位置付けられるノード識別子が設定された転送ノード１０１又は通知ノード１０２のアドレスを保持している。通知ノード１０２は、転送ノード１０１を介して、イベントを受信する。通知ノード１０２は、イベントを受信すると、図示しない検査部を用いて、当該イベントに関係するイベント配信ルールを検査する。通知ノード１０２は、イベント配信ルールで定義される条件が満たされるとき、図示しないイベント送信部を用いて、受信したイベントを、自ノードのノード識別子に対応するノード識別子を有するイベント受信ノード１３２に送信する。
【００４１】
図３は、転送ノード１０１の構成を示している。転送ノード１０１は、送受信部１１１、処理部１１２、イベント配信先記憶部１１３、及び、レベル記憶部１１４を有する。レベル記憶部１１４は、自転送ノード１０１に設定されたノード識別子の階層レベルよりも１つ下位の階層レベルを記憶する。つまり、レベル記憶部１１４は、自転送ノード１０１の階層レベルよりも１つ下位の階層レベルが、階層化されたノード識別子の階層において何階層目に位置づけられるかを示す情報を記憶する。イベント配信先記憶部１１３は、イベント送信ノード１３１のノード識別子の部分識別子と、１以上のイベント送信先となるイベント配信ノードのノード識別子（識別子リスト）とのペアを１エントリとするイベント配信先テーブルを記憶する。
【００４２】
ここで、部分識別子とは、ノード識別子から、ある階層レベルまでの部分を抽出した識別子である。イベント配信ノードのノード識別子は、イベント受信ノード１３２の部分識別子で構成されるため、イベント配信先記憶部１１３は、イベント送信ノード１３１のノード識別子の部分識別子と、１以上のイベント受信ノード１３２におけるノード識別子の部分識別子とを対応付けて記憶しているのと等価である。
【００４３】
送受信部１１１は、イベント受信部１１５、イベント送信部１１６、配信ルール受信部１１７、及び、配信ルール送信部１１８を含む。イベント受信部１１５は、イベント送信ノード１３１から送信されたイベント受信する。或いは、イベント受信部１１５は、自転送ノード１０１よりも階層レベルが上位のノード識別子が設定された転送ノード１０１から送信されたイベントを受信する。イベント受信部１１５は、イベントを受信すると、受信したイベントを処理部１１２に渡す。イベント送信部１１６は、処理部１１２からの指示に従って、自転送ノード１０１よりも階層レベルが下位の転送ノード１０１、又は、通知ノード１０２にイベントを送信する。
【００４４】
配信ルール受信部１１７は、イベント受信ノード１３２から送信されたイベント配信ルールを受信する。或いは、配信ルール受信部１１７は、自転送ノード１０１よりも階層レベルが上位のノード識別子が設定された転送ノード１０１から送信されたイベント配信ルールを受信する。配信ルール受信部１１７は、イベント配信ルールを受信すると、受信したイベント配信ルールを処理部１１２に渡す。配信ルール送信部１１８は、処理部１１２からの指示に従って、自転送ノード１０１よりも階層レベルが下位の転送ノード１０１、又は、通知ノード１０２に、イベント配信ルールを送信する。
【００４５】
処理部１１２は、部分識別子抽出部（第１の部分識別子抽出手段）１１９、転送先検索部１２０、部分識別子抽出部（第２の部分識別子抽出手段）１２１、及び、イベント配信先登録部１２２を含む。部分識別子抽出部１２１は、送受信部１１１からイベント配信ルールを受け取る。部分識別子抽出部１２１は、イベント配信ルールを受け取ると、当該イベント配信ルールに含まれるイベント送信ノード１３１及びイベント受信ノード１３２のノード識別子を取り出す。部分識別子抽出部１２１は、取り出したノード識別子のそれぞれから、レベル記憶部１１４に記憶されている階層レベルまでの部分識別子を抽出する。なお、レベル記憶部１１４に記憶される階層レベルが、ノード識別子の最下位の階層レベルを示すとき、抽出される部分識別子は、イベント送信ノード１３１及びイベント受信ノード１３２のノード識別子と等しい。本明細書においては、このような場合も、便宜上、部分識別子と呼ぶこととする。
【００４６】
部分識別子抽出部１２１は、イベント配信ルールから抽出した部分識別子をイベント配信先登録部１２２に渡す。イベント配信先登録部１２２は、イベント配信ルールから抽出されたイベント送信ノード１３１の部分識別子と、イベント受信ノード１３２の部分識別子とを対応付けてイベント配信先記憶部１１３に保存する。その際、イベント配信先登録部１２２は、イベント配信先記憶部１１３に、イベント送信ノード１３１のノード識別子から抽出された部分識別子が記憶済みであるか否か、つまり、イベント配信先テーブルに、イベント送信ノード１３１のノード識別子から抽出された部分識別子が格納されたエントリが既に存在するか否かを調べる。イベント配信先登録部１２２は、該当するエントリが存在すると判断すると、記録済みのイベント送信ノード１３１の部分識別子と対応付けて記憶されるイベント受信ノード１３２の識別子リストに、イベント受信ノード１３２のノード識別子から抽出された部分識別子を追加する。
【００４７】
部分識別子抽出部１２１は、イベント配信ルールから抽出したイベント受信ノード１３２の部分識別子を配信ルール送信部１１８に渡し、イベント配信ノードの送信を指示する。配信ルール送信部１１８は、当該指示を受けると、次の階層レベルに位置付けられるノード識別子が設定されたイベント配信ノードのうちで、部分識別子抽出部１２１から渡された部分識別子に対応するノード識別子が設定された転送ノード１０１又は通知ノード１０２に、イベント配信ルールを送信する。
【００４８】
部分識別子抽出部１１９は、送受信部１１１からイベントを受け取る。部分識別子抽出部１１９は、受け取ったイベントのイベント送信元のイベント送信ノード１３１のノード識別子を調べる。部分識別子抽出部１１９は、レベル記憶部１１４を参照し、イベント送信元のイベント送信ノード１３１のノード識別子から、レベル記憶部１１４に記憶された階層レベルまでの部分識別子を抽出する。部分識別子抽出部１１９は、抽出したイベント送信ノード１３１の部分識別子を転送先検索部１２０に渡す。
【００４９】
転送先検索部１２０は、イベント送信ノード１３１の部分識別子を受け取ると、イベント配信先記憶部１１３を検索し、受け取った部分識別子と対応付けて記憶されたイベント受信ノード１３２の部分識別子を取得する。転送先検索部１２０は、１つのイベント送信ノード１３１の部分識別子に対して、複数のイベント受信ノード１３２の部分識別子が記憶されているときは、それら複数のイベント受信ノード１３２の部分識別子を取得する。転送先検索部１２０は、取得したイベント受信ノード１３２の部分識別子をイベント送信部１１６に渡し、イベントの送信を指示する。イベント送信部１１６は、指示に従って、受け取った部分識別子と同じノード識別子が設定される転送ノード１０１又は通知ノード１０２にイベントを送信する。
【００５０】
図４は、転送ノード１０１がイベント配信ルールを受信したときの動作手順を示している。配信ルール受信部１１７は、イベント受信ノード１３２、又は、上位の階層レベルの転送ノード１０１から、イベント配信ルールを受信する（ステップＡ１）。配信ルール受信部１１７は、受信したイベント配信ルールを部分識別子抽出部１２１に送る。
【００５１】
部分識別子抽出部１２１は、イベント配信ルールを受け取ると、そのイベント配信ルールに含まれているイベント送信ノード１３１、及び、イベント受信ノード１３２のノード識別子を取り出す（ステップＡ２）。部分識別子抽出部１２１は、レベル記憶部１１４から、階層レベルの値を取得する。部分識別子抽出部１２１は、ステップＡ２で取り出したイベント送信ノード１３１のノード識別子、及び、イベント受信ノード１３２のノード識別子から、それぞれ、取得した階層レベルまでの部分識別子を抽出する（ステップＡ３）。
【００５２】
部分識別子抽出部１２１は、抽出したイベント送信ノード１３１及びイベント受信ノード１３２の部分識別子をイベント配信先登録部１２２に送る。イベント配信先登録部１２２は、受け取ったイベント送信ノード１３１の部分識別子を検索キーとして用い、イベント配信先記憶部１１３が格納するイベント配信先テーブルを検索する（ステップＡ４）。イベント配信先登録部１２２は、ステップＡ３で抽出されたイベント送信ノード１３１の部分識別子とイベント受信ノード１３２の部分識別子とのペアに合致するエントリが存在するか否かを判断する（ステップＡ５）。
【００５３】
イベント配信先登録部１２２は、イベント配信先テーブルに検索キーに合致するエントリ自体が存在しないときは、ステップＡ５で合致するエントリが存在しないと判断する。イベント配信先登録部１２２は、検索キーに合致するエントリが存在するときは、そのエントリの識別子リストの中に、ステップＡ３で抽出したイベント受信ノード１３２の部分識別子が含まれる否かを判断する。イベント配信先登録部１２２は、識別子リストの中に、抽出したイベント受信ノード１３２の部分識別子が含まれるときは、ステップＡ５で合致するエントリが存在すると判断し、含まれないときは、合致するエントリが存在しないと判断する。
【００５４】
イベント配信先登録部１２２は、ステップＡ５で合致するエントリが存在しないと判断すると（ステップＡ５；Ｎ）、イベント配信先記憶部１１３に、イベント送信ノード１３１の部分識別子とイベント受信ノード１３２の部分識別子とのペアを格納する（ステップＡ６）。その際、イベント配信先登録部１２２は、イベント配信先テーブルに、イベント送信ノード１３１の部分識別子に合致するエントリ自体が存在しないときは、新たなエントリを生成し、そのエントリに、イベント送信ノード１３１の部分識別子と、イベント受信ノード１３２の部分識別子とを対応付けて格納する。また、イベント配信先登録部１２２は、イベント配信先テーブルに、イベント送信ノード１３１の部分識別子に合致するエントリが存在しているときは、そのエントリの識別子リストに、抽出したイベント受信ノード１３２の部分識別子を追加する。
【００５５】
ステップＡ６の処理後、部分識別子抽出部１２１は、ステップＡ３で抽出したイベント受信ノード１３２の部分識別子を配信ルール送信部１１８に渡し、イベント配信ルールを、次のイベント配信ノードに送信するように指示する。配信ルール送信部１１８は、指示に従い、イベント配信ルールを、部分識別子抽出部１２１から受け取った部分識別子と同じノード識別子が設定されたイベント配信ノード（転送ノード１０１又は通知ノード１０２）、つまり、次の階層レベルのイベント配信ノードに送信する（ステップＡ７）。
【００５６】
イベント配信先登録部１２２は、ステップＡ５で合致するエントリが存在すると判断したときは（ステップＡ５；Ｙ）、イベント配信先記憶部１１３への部分識別子のペアの記憶を行わない。その場合、転送ノード１０１の処理は、ステップＡ５からステップＡ７へ進み、新たなイベント配信先テーブルの記憶を行わずに、配信ルール送信部１１８から、次の階層レベルのイベント配信ノードにイベント配信ルールを送信する。
【００５７】
イベント配信ネットワーク１００では、転送ノード１０１が、図４に示す手順でイベント配信ルールを次の階層レベルのイベント配信ノードに転送することで、最終的に、通知ノード１０２にイベント配信ルールが到達する。通知ノード１０２は、イベント配信ルールを受信すると、図示しない記憶装置などにイベント配信ルールを登録する。イベント配信ルールが通知ノード１０２に登録されることで、イベント受信ノード１３２へのイベント送信の準備が整う。
【００５８】
図５は、転送ノード１０１がイベントを受信したときの動作手順を示している。イベント受信部１１５は、イベント送信ノード１３２、又は、上位の階層の転送ノード１０１から、イベントを受信する（ステップＢ１）。イベント受信部１１５は、受信したイベントを部分識別子抽出部１１９に渡す。
【００５９】
部分識別子抽出部１１９は、イベントを受け取ると、イベントに含まれているイベント送信ノード１３１のノード識別子を取り出す（ステップＢ２）。部分識別子抽出部１１９は、レベル記憶部１１４から、階層レベルの値を取得する。部分識別子抽出部１１９は、ステップＢ２で取り出したイベント送信ノード１３１のノード識別子から、取得した階層レベルまでの部分識別子を抽出する（ステップＢ３）。
【００６０】
部分識別子抽出部１１９は、抽出したイベント送信ノード１３１の部分識別子を転送先検索部１２０に送る。転送先検索部１２０は、受け取ったイベント送信ノード１３１の部分識別子をキーとして用い、イベント配信先記憶部１１３が格納するイベント配信先テーブルを検索する（ステップＢ４）。転送先検索部１２０は、検索の結果、ステップＢ３で抽出したイベント送信ノード１３１の部分識別子が格納されたエントリが存在するか否かを判断する（ステップＢ５）。
【００６１】
転送先検索部１２０は、イベント送信ノード１３１の部分識別子が格納されたエントリが存在するときは（ステップＢ５；Ｙ）、そのエントリに格納された識別子リストを取得する。転送先検索部１２０は、取得した識別子リストに含まれるイベント受信ノード１３２の部分識別子（イベント配信ノードのノード識別子）を、イベント送信部１１６に渡し、イベントの送信を指示する。イベント送信部１１６は、識別子リストに含まれるノード識別子が設定されたイベント配信ノード（転送ノード１０１又は通知ノード１０２）に対し、ステップＢ１で受信されたイベントを送信する（ステップＢ６）。転送先検索部１２０は、ステップＢ５でイベント送信ノード１３１の部分識別子が格納されたエントリが存在しないと判断したときは（ステップＢ５；Ｎ）、そのまま処理を終了する。
【００６２】
本実施形態では、イベント送信ノード１３１及びイベント受信ノード１３２のそれぞれに、階層構造を持つノード識別子を設定する。また、イベント配信ノードのうち、通知ノード１０２にはイベント受信ノード１３２のノード識別子に対応したノード識別子を設定し、転送ノード１０１にはイベント受信ノード１３２のノード識別子のうちの特定の階層レベルまでの部分識別子から成るノード識別子を設定する。転送ノード１０１は、イベントを受信すると、イベント送信元のイベント送信ノード１３１のノード識別子から、自ノードに設定されたノード識別子の階層レベルよりも１つ下位の階層レベルまでの部分識別子を抽出する。転送ノード１０１は、イベント配信先記憶部１１３から、抽出した部分識別子と対応付けて記憶された識別子リストを取得し、取得した識別子リストに含まれる識別子のイベント配信ノード（転送ノード１０１又は通知ノード１０２）にイベントを送信する。本実施形態では、通知ノード１０２は、イベント受信ノード１３２に対応したノードであるため、ある特定のイベント送信ノード１３１から送信されるイベントの数が膨大である場合や、ある特定のイベント送信ノード１３１から送信されるイベントを欲するイベント受信ノード１３２の数が膨大である場合でも、特定のイベント配信ノードの負荷が上昇することを抑制することができる。
【００６３】
本実施形態では、転送ノード１０１は、通知ノード１０２に登録されるイベント配信ルールに含まれるイベント送信ノード１３１のノード識別子、及び、イベント受信ノード１３２のノード識別子から、それぞれ、自ノードに設定されたノード識別子の階層レベルよりも１つ下位の階層レベルまでの部分識別子を抽出する。転送ノード１０１は、抽出したイベント送信ノード１３１の部分識別子と、イベント受信ノード１３２の部分識別子とを、対応付けてイベント配信先記憶部１１３に格納する。イベント配信先記憶部１１３に、このように部分識別子を対応付けて格納することで、イベント送信ノード１３１がイベントを送信したとき、そのイベントを、当該イベントを処理すべきイベント配信ルールを保持する通知ノード１０２まで転送することができる。
【００６４】
本実施形態では、転送ノード１０１は、イベント受信ノード１３２からのイベント配信ルールを受信すると、イベント受信ノード１３２のノード識別子から抽出した、自ノードに設定されたノード識別子の階層レベルよりも１つ下位の階層レベルの部分識別子が設定されたイベント配信ノード（転送ノード１０１又は通知ノード１０２）に送信する。このようにすることで、イベント配信ルールを、そのイベント配信ルールでイベント送信先となるイベント受信ノード１３２に対応した通知ノード１０２まで転送して、その通知ノード１０２にイベント配信ルールを登録することができる。また、同一のイベント送信ノード１３１からのイベントを欲するイベント受信ノード１３２が複数あるとき、各イベント受信ノード１３２に対応したイベント配信ルールを複数のイベント配信ノードに分散して登録することができる。
【００６５】
以下、実施例を説明する。本実施例では、イベント送信ノード、イベント受信ノード、及び、イベント配信ノードに付与するノード識別子に、英数字で構成される文字列を用いる。また、階層の区切り文字として、“．”（ピリオド）を用いる。各階層におけるノード識別子の具体例を、以下に列挙する。
第０階層：.（ピリオド）
第１階層：jp, cn, krなど
第２階層：jp.co, cn.co, kr.coなど
第３階層：jp.co.ex, cn.co.ex, kr.co.exなど
第４階層：jp.co.ex.src1, jp.co.ex.dst1など
【００６６】
本実施例では、各階層のノード識別子に対応するイベント配信ノードには、自身のノード識別子の階層レベルよりも１つ下の階層のノード識別子に対応するイベント配信ノードのアドレスが設定され、図示しない所定の記憶部に格納されているものとする。例えば、ノード識別子.（ピリオド）に対応するイベント配信ノードは、jp、cn、krなどのノード識別子が付与されたイベント配信ノードのアドレスを保持している。また、ノード識別子jpのイベント配信ノードは、jp.co、jp.ne、jp.adなどのノード識別子が付与されたイベント配信ノードのアドレスを保持し、ノード識別子cnのイベント配信ノードは、cn.co、cn.ne、cn.adなどのノード識別子が付与されたイベント配信ノードのアドレスを保持している。
【００６７】
ノード識別子.（ピリオド）のイベント配信ノードは、全てのイベント受信ノードが送信したイベント配信ルールを受信する。また、ノード識別子.（ピリオド）のイベント配信ノードは、全てのイベント送信ノードが送信したイベントを受信する。各イベント送信ノード及び各イベント受信ノードは、ノード識別子.（ピリオド）のイベント配信サーバのアドレスを保持している。
【００６８】
なお、本実施例では、イベント受信ノードが送信したイベント配信ルール、及び、イベント送信ノードが送信したイベントは、全てノード識別子.（ピリオド）のイベント配信ノードに送信されるため、そのイベント配信ノードの負荷が増大する可能性がある。この問題に対しては、ノード識別子.（ピリオド）に対応するイベント配信ノードを、イベント配信ネットワーク内に複数設置しておけばよい。
【００６９】
イベント配信ネットワークは、各イベント受信ノードに対応するイベント配信ノード（通知ノード）を含んでいる。各通知ノードは、対応するイベント受信ノードのアドレスを図示しない所定の記憶部に格納しているとする。イベント受信ノードの移動に伴い、イベント受信ノードのアドレスが変化したとき、イベント受信ノードは、その旨を対応する通知ノードに通知する。通知を受けた通知ノードは、イベント受信ノードのアドレスを変更する。
【００７０】
図６は、イベント配信ルール転送時の様子を示している。イベント受信ノード１３２ａ（jp.co.ex.dst1）は、イベント送信ノード１３１ｃ（kr.co.ex.src1）が送信するイベントを欲しているとする。イベント受信ノード１３２ａ（jp.co.ex.dst1）は、イベント送信ノード１３１ｃ（kr.co.ex.src1）からのイベントを受信したい旨のイベント配信ルールを、イベント配信ノード（転送ノード）１０１ａ（.）に送信する。
【００７１】
転送ノード１０１ａ（.）のレベル記憶部１１４（図３参照）は、階層レベル“１”を記憶している。転送ノード１０１ａ（.）の部分識別子抽出部１２１は、イベント配信ルールから、イベント送信ノードのノード識別子と、イベント受信ノードのノード識別子とを取り出し、それらノード識別子から階層レベル“１”までの部分識別子を抽出する。すなわち、部分識別子抽出部１２１は、イベント送信ノードのノード識別子kr.co.ex.src1から部分識別子krを抽出し、イベント受信ノードのノード識別子jp.co.ex.dst1から部分識別子jpを抽出する。
【００７２】
イベント配信先登録部１２２は、イベント送信ノードの部分識別子krをキーに、イベント配信先記憶部１１３を検索する。イベント配信先登録部１２２は、イベント送信ノードの部分識別子に、部分識別子krが格納されたエントリが存在しないときは、イベント送信ノードの部分識別子krと、イベント受信ノードの部分識別子jpとのペアを、イベント配信先記憶部１１３に記憶する。より詳細には、イベント配信先登録部１２２は、イベント配信先テーブルに新たなエントリを作成し、そのエントリのイベント送信ノードの部分識別子に部分識別子krを格納し、イベント配信ノードのノード識別子（識別子リスト）にイベント受信ノードの部分識別子jpを格納する。配信ルール送信部１１８は、イベント配信ルールを、次のイベント配信ノードである転送ノード１０１ｂ（jp）に送信する。
【００７３】
転送ノード１０１ｂ（jp）のレベル記憶部１１４は、階層レベル“２”を記憶している。転送ノード１０１ｂ（jp）の部分識別子抽出部１２１は、イベント配信ルールから、イベント送信ノードのノード識別子と、イベント受信ノードのノード識別子とを取り出し、それらノード識別子から階層レベル“２”までの部分識別子を抽出する。すなわち、部分識別子抽出部１２１は、イベント送信ノードのノード識別子kr.co.ex.src1から部分識別子kr.coを抽出し、イベント受信ノードのノード識別子jp.co.ex.dst1から部分識別子jp.coを抽出する。
【００７４】
イベント配信先登録部１２２は、イベント送信ノードの部分識別子kr.coをキーに、イベント配信先記憶部１１３を検索する。イベント配信先登録部１２２は、イベント送信ノードが部分識別子kr.coとなっているエントリが存在しないときは、イベント送信ノードの部分識別子kr.coと、イベント受信ノードの部分識別子jp.coとのペアを、イベント配信先記憶部１１３に格納する。より詳細には、イベント配信先登録部１２２は、イベント配信先テーブルに新たなエントリを作成し、そのエントリのイベント送信ノードの部分識別子に部分識別子kr.coを格納し、イベント配信ノードのノード識別子にイベント受信ノードの部分識別子jp.coを格納する。配信ルール送信部１１８は、イベント配信ルールを、次のイベント配信ノードである転送ノード１０１ｅ（jp.co）に送信する。
【００７５】
転送ノード１０１ｅ（jp.co）のレベル記憶部１１４は、階層レベル“３”を記憶している。転送ノード１０１ｅ（jp.co）の部分識別子抽出部１２１は、イベント配信ルールから、イベント送信ノードのノード識別子と、イベント受信ノードのノード識別子とを取り出し、それらノード識別子から階層レベル“３”までの部分識別子を抽出する。すなわち、部分識別子抽出部１２１は、イベント送信ノードのノード識別子kr.co.ex.src1から部分識別子kr.co.exを抽出し、イベント受信ノードのノード識別子jp.co.ex.dst1から部分識別子jp.co.exを抽出する。
【００７６】
イベント配信先登録部１２２は、イベント送信ノードの部分識別子kr.co.exをキーに、イベント配信先記憶部１１３を検索する。イベント配信先登録部１２２は、イベント送信ノードが部分識別子kr.co.exとなっているエントリが存在しないときは、イベント送信ノードの部分識別子kr.co.exと、イベント受信ノードの部分識別子jp.co.exとのペアを、イベント配信先記憶部１１３に格納する。より詳細には、イベント配信先登録部１２２は、イベント配信先テーブルに新たなエントリを作成し、そのエントリのイベント送信ノードの部分識別子に部分識別子kr.co.exを格納し、イベント配信ノードのノード識別子にイベント受信ノードの部分識別子jp.co.exを格納する。配信ルール送信部１１８は、イベント配信ルールを、次のイベント配信ノードである転送ノード１０１ｈ（jp.co.ex）に送信する。
【００７７】
転送ノード１０１ｈ（jp.co.ex）のレベル記憶部１１４は、階層レベル“４”を記憶している。転送ノード１０１ｈ（jp.co.ex）の部分識別子抽出部１２１は、イベント配信ルールから、イベント送信ノードのノード識別子と、イベント受信ノードのノード識別子とを取り出し、それらノード識別子から階層レベル“４”までの部分識別子を抽出する。すなわち、部分識別子抽出部１２１は、イベント送信ノードのノード識別子kr.co.ex.src1から部分識別子kr.co.ex.src1を抽出し、イベント受信ノードのノード識別子jp.co.ex.dst1から部分識別子jp.co.ex.dst1を抽出する。なお、ノード識別子は４つの階層で構成されるため、ノード識別子と、第４階層まで抽出した部分識別子とは等しいが、このような識別子も便宜上、部分識別子と呼ぶ。
【００７８】
イベント配信先登録部１２２は、イベント送信ノードの部分識別子kr.co.ex.src1をキーに、イベント配信先記憶部１１３を検索する。イベント配信先登録部１２２は、イベント送信ノードが部分識別子kr.co.ex.src1となっているエントリが存在しないときは、イベント送信ノードのノード識別子kr.co.ex.src1と、イベント受信ノードのノード識別子jp.co.ex.dst1とのペアを、イベント配信先記憶部１１３に格納する。より詳細には、イベント配信先登録部１２２は、イベント配信先テーブルに新たなエントリを作成し、そのエントリのイベント送信ノードの部分識別子に部分識別子kr.co.ex.src1を格納し、イベント配信ノードのノード識別子にイベント受信ノードの部分識別子jp.co.ex.dst1を格納する。配信ルール送信部１１８は、イベント配信ルールを、次のイベント配信ノードである通知ノード１０２ａ（jp.co.ex.dst1）に送信する。
【００７９】
通知ノード１０２ａ（jp.co.ex.dst1）では、図示しない配信ルール受信部が転送ノード１０１ａから、転送ノード１０１ｂ、転送ノード１０１ｅ、転送ノード１０ｈを経由して転送されたイベント配信ルールを受信する。図示しないイベント配信ルール登録部は、イベント配信ルールのイベント送信先が、自通知ノードのノード識別子に対応したイベント受信ノードであることを確認した上で、イベント配信ルールを図示しない記憶部に格納する。
【００８０】
図７は、別のイベント配信ルールを転送する際のイベント配信システムの様子を示している。イベント受信ノード１３２ｂ（cn.co.ex.dst1）が、イベント送信ノード１３１ｃ（kr.co.ex.src1）が送信するイベントを欲しているとする。イベント受信ノード１３２ｂ（cn.co.ex.src1）は、イベント送信ノード１３１ｃ（kr.co.ex.src1）からのイベントを受信したい旨のイベント配信ルールを、転送ノード１０１ａ（.）に送信する。
【００８１】
転送ノード１０１ａ（.）の部分識別子抽出部１２１は、イベント配信ルールから、イベント送信ノードのノード識別子と、イベント受信ノードのノード識別子とを取り出し、それらノード識別子から階層レベル“１”までの部分識別子を抽出する。すなわち、部分識別子抽出部１２１は、イベント送信ノードのノード識別子kr.co.ex.src1から部分識別子krを抽出し、イベント受信ノードのノード識別子cn.co.ex.dst1から部分識別子cnを抽出する。
【００８２】
イベント配信先登録部１２２は、イベント送信ノードの部分識別子krをキーに、イベント配信先記憶部１１３を検索する。イベント配信先記憶部１１３には、既に、イベント受信ノード１３２ａ（jp.co.ex.dst1）からのイベント配信ルールを処理した際に、イベント送信ノードの部分識別子krに該当するエントリが格納されている。イベント配信先登録部１２２は、当該エントリのイベント配信ノードのノード識別子に、イベント受信ノードの部分識別子cnを追加する。イベント配信先登録部１２２が部分識別子cnを追加することで、イベント配信先テーブルには、イベント送信ノードの部分識別子krと、イベント配信ノードの識別子リスト｛jp、cn｝とを対応付けて格納される。配信ルール送信部１１８は、イベント配信ルールを、次のイベント配信ノードである転送ノード１０１ｃ（cn）に送信する。
【００８３】
転送ノード１０１ｃ（cn）のレベル記憶部１１４は、“２”を記憶している。転送ノード１０１ｃ（cn）の部分識別子抽出部１２１は、イベント配信ルールから、イベント送信ノードのノード識別子と、イベント受信ノードのノード識別子とを取り出し、それらノード識別子から階層レベル“２”までの部分識別子を抽出する。すなわち、部分識別子抽出部１２１は、イベント送信ノードのノード識別子kr.co.ex.src1から部分識別子kr.coを抽出し、イベント受信ノードのノード識別子cn.co.ex.dst1から部分識別子cn.coを抽出する。
【００８４】
イベント配信先登録部１２２は、イベント送信ノードの部分識別子kr.coをキーに、イベント配信先記憶部１１３を検索する。イベント配信先登録部１２２は、イベント送信ノードが部分識別子kr.coとなっているエントリが存在しないときは、イベント送信ノードの部分識別子kr.coと、イベント受信ノードの部分識別子cn.coとのペアを、イベント配信先記憶部１１３に格納する。配信ルール送信部１１８は、イベント配信ルールを、次のイベント配信ノードである転送ノード１０１ｆ（cn.co）に送信する。
【００８５】
転送ノード１０１ｆ（cn.co）のレベル記憶部１１４は、階層レベル“３”を記憶している。転送ノード１０１ｅ（cn.co）の部分識別子抽出部１２１は、イベント配信ルールから、イベント送信ノードのノード識別子と、イベント受信ノードのノード識別子とを取り出し、それらノード識別子から階層レベル“３”までの部分識別子を抽出する。すなわち、部分識別子抽出部１２１は、イベント送信ノードのノード識別子kr.co.ex.src1から部分識別子kr.co.exを抽出し、イベント受信ノードのノード識別子cn.co.ex.dst1から部分識別子cn.co.exを抽出する。
【００８６】
イベント配信先登録部１２２は、イベント送信ノードの部分識別子kr.co.exをキーに、イベント配信先記憶部１１３を検索する。イベント配信先登録部１２２は、イベント送信ノードが部分識別子kr.co.exとなっているエントリが存在しないときは、イベント送信ノードの部分識別子kr.co.exと、イベント受信ノードの部分識別子cn.co.exとのペアを、イベント配信先記憶部１１３に格納する。配信ルール送信部１１８は、イベント配信ルールを、次のイベント配信ノードである転送ノード１０１ｉ（cn.co.ex）に送信する。
【００８７】
転送ノード１０１ｉ（cn.co.ex）のレベル記憶部１１４は、階層レベル“４”を記憶している。転送ノード１０１ｉ（cn.co.ex）の部分識別子抽出部１２１は、イベント配信ルールから、イベント送信ノードのノード識別子と、イベント受信ノードのノード識別子とを取り出し、それらノード識別子から階層レベル“４”までの部分識別子を抽出する。ノード識別子は４つの階層で構成されるため、抽出された部分識別子は、イベント送信ノードのノード識別子kr.co.ex.src1、及び、イベント受信ノードのノード識別子cn.co.ex.dst1とそれぞれ等しい。
【００８８】
イベント配信先登録部１２２は、イベント送信ノードの部分識別子kr.co.ex.src1をキーに、イベント配信先記憶部１１３を検索する。イベント配信先登録部１２２は、イベント送信ノードが部分識別子kr.co.ex.src1となっているエントリが存在しないときは、イベント送信ノードのノード識別子kr.co.ex.src1と、イベント受信ノードのノード識別子cn.co.ex.dst1とのペアを、イベント配信先記憶部１１３に格納する。配信ルール送信部１１８は、イベント配信ルールを、次のイベント配信ノードである通知ノード１０２ｂ（cn.co.ex.dst1）に送信する。
【００８９】
通知ノード１０２ｂ（jp.co.ex.dst1）では、図示しない配信ルール受信部が転送ノード１０１ａから、転送ノード１０１ｃ、転送ノード１０１ｆ、転送ノード１０ｉを経由して転送されたイベント配信ルールを受信する。図示しないイベント配信ルール登録部は、イベント配信ルールのイベント送信先が、自通知ノードのノード識別子に対応したイベント受信ノードであることを確認した上で、イベント配信ルールを図示しない記憶装置に登録する。
【００９０】
図８は、イベント送信ノードがイベントを送信した際のイベント配信システムの様子を示している。イベント送信ノード１３１ｃ（kr.co.ex.src1）は、転送ノード１０１ａ（.）に、イベントを送信する。転送ノード１０１ａ（.）の部分識別子抽出部１１９は、イベント送信ノードのノード識別子kr.co.ex.src1から、階層レベル“１”までの部分識別子krを抽出する。
【００９１】
転送ノード１０１ａ（.）の転送先検索部１２０は、抽出された部分識別子krをキーに、イベント配信先記憶部１１３を検索する。イベント配信先記憶部１１３には、イベント送信ノードの部分識別子krに対応して、イベント配信ノードのノード識別子｛jp、cn｝が格納されている（図７参照）。転送先検索部１２０は、イベントを送信すべきイベント配信ノードが、ノード識別子jpの転送ノード１０１ｂと、ノード識別子cnの転送ノード１０１ｃとの２つであると認識して、イベント送信部１１６に対して、それら２つの転送ノードにイベントを送信するように指示する。イベント送信部１１６は、転送ノード１０１ｂ（jp）と、転送ノード１０１ｃ（cn）とに、それぞれイベントを送信する。
【００９２】
転送ノード１０１ｂ（jp）の部分識別子抽出部１１９は、イベント送信ノードのノード識別子kr.co.ex.src1から、階層レベル“２”までの部分識別子kr.coを抽出する。転送先検索部１２０は、部分識別子kr.coをキーに、イベント配信先記憶部１１３を検索する。イベント配信先記憶部１１３には、イベント送信ノードの部分識別子kr.coに対応して、イベント配信ノードのノード識別子jp.coが格納されている。転送先検索部１２０は、イベントを送信すべきイベント配信ノードがノード識別子jp.coの転送ノード１０１ｅであると認識して、イベント送信部１１６に対し、その転送ノードにイベントを送信するように指示する。イベント送信部１１６は、転送ノード１０１ｅ（jp.co）にイベントを送信する。
【００９３】
転送ノード１０１ｅ（jp.co）の部分識別子抽出部１１９は、イベント送信ノードのノード識別子kr.co.ex.src1から、階層レベル“３”までの部分識別子kr.co.exを抽出する。転送先検索部１２０は、部分識別子kr.co.exをキーに、イベント配信先記憶部１１３を検索する。イベント配信先記憶部１１３には、イベント送信ノードの部分識別子kr.co.exに対応して、イベント配信ノードのノード識別子jp.co.exが格納されている。転送検索部１２０は、イベントを送信すべきイベント配信ノードがノード識別子jp.co.exの転送ノード１０１ｈであると認識して、イベント送信部１１６に対し、その転送ノードにイベントを送信するように指示する。イベント送信部１１６は、転送ノード１０１ｈ（jp.co.ex）にイベントを送信する。
【００９４】
転送ノード１０１ｈ（jp.co.ex）の部分識別子抽出部１１９は、イベント送信ノードのノード識別子kr.co.ex.src1から、階層レベル“４”までの部分識別子kr.co.ex.src1を抽出する。転送先検索部１２０は、部分識別子kr.co.ex.src1をキーに、イベント配信先記憶部１１３を検索する。イベント配信先記憶部１１３には、イベント送信ノードの部分識別子kr.co.ex.src1に対応して、イベント配信ノードのノード識別子jp.co.ex.dst1が格納されている。転送先検索部１２０は、イベントを送信すべきイベント配信ノードがノード識別子jp.co.ex.dst1の通知ノード１０２ａであると認識して、イベント送信部１１６に対し、その転送ノードにイベントを送信するように指示する。イベント送信部１１６は、通知ノード１０２ａ（jp.co.ex.dst1）にイベントを送信する。
【００９５】
一方、転送ノード１０１ｃ（cn）の部分識別子抽出部１１９は、イベント送信ノードのノード識別子kr.co.ex.src1から、階層レベル“２”までの部分識別子kr.coを抽出する。転送先検索部１２０は、部分識別子kr.coをキーに、イベント配信先記憶部１１３を検索する。イベント配信先記憶部１１３には、イベント送信ノードの部分識別子kr.coに対応して、イベント配信ノードのノード識別子cn.coが格納されている。転送先検索部１２０は、イベントを送信すべきイベント配信ノードがノード識別子cn.coの転送ノード１０１ｆであると認識して、イベント送信部１１６に対し、その転送ノードにイベントを送信するように指示する。イベント送信部１１６は、転送ノード１０１ｆ（cn.co）にイベントを送信する。
【００９６】
転送ノード１０１ｆ（cn.co）の部分識別子抽出部１１９は、イベント送信ノードのノード識別子kr.co.ex.src1から、階層レベル“３”までの部分識別子kr.co.exを抽出する。転送先検索部１２０は、部分識別子kr.co.exをキーに、イベント配信先記憶部１１３を検索する。イベント配信先記憶部１１３には、イベント送信ノードの部分識別子kr.co.exに対応して、イベント配信ノードのノード識別子cn.co.exが格納されている。転送先検索部１２０は、イベントを送信すべきイベント配信ノードがノード識別子cn.co.exの転送ノード１０１ｉであると認識して、イベント送信部１１６に対し、その転送ノードにイベントを送信するように指示する。イベント送信部１１６は、転送ノード１０１ｉ（cn.co.ex）にイベントを送信する。
【００９７】
転送ノード１０１ｉ（cn.co.ex）の部分識別子抽出部１１９は、イベント送信ノードのノード識別子kr.co.ex.src1から、階層レベル“４”までの部分識別子kr.co.ex.src1を抽出する。転送先検索部１２０は、部分識別子kr.co.ex.src1をキーに、イベント配信先記憶部１１３を検索する。イベント配信先記憶部１１３には、イベント送信ノードの部分識別子kr.co.ex.src1に対応して、イベント配信ノードのノード識別子cn.co.ex.dst1が格納されている。転送先検索部１２０は、イベントを送信すべきイベント配信ノードがノード識別子cn.co.ex.dst1の通知ノード１０２ｂであると認識して、イベント送信部１１６に対し、その通知ノードにイベントを送信するように指示する。イベント送信部１１６は、通知ノード１０２ｂ（cn.co.ex.dst1）にイベントを送信する。
【００９８】
イベント配信ネットワーク１００は、転送ノード１０１ａ（.）から通知ノード１０２ａ（jp.co.ex.dst1）までのイベント転送と、転送ノード１０１ａ（.）から通知ノード１０２ｂ（cn.co.ex.dst1）までのイベント転送とを、並行して行う。通知ノード１０２ａ（jp.co.ex.dst1）は、受信したイベントを、登録されたイベント配信ルールに従って検査した後、イベント受信ノード１３２ａ（jp.co.ex.dst1）に送信する。また、通知ノード１０２ｂは、受信したイベントを、登録されたイベント配信ルールに従って検査した後、イベント受信ノード１３２ｂ（cn.co.ex.dst1）に送信する。
【００９９】
本実施例では、イベント送信ノード１３１ｃ（kr.co.ex.src1）からのイベントを欲するイベント受信ノードが２つある。図１１のイベント配信システムでは、イベント配信ルールは、イベント送信ノード１３１ｃ（kr.co.ex.src1）に対応するイベント配信ノードに登録されるため、イベント送信ノード１３１ｃ（kr.co.ex.src1）がイベントを送信すると、対応するイベント配信ノードは、２つのイベント配信ルールを検査する必要があった。
【０１００】
本実施例では、イベント配信ネットワーク１００は、イベント受信ノードに対応するイベント配信ノード（通知ノード）へイベント配信ルールを転送する。その際、各イベント配信ノードは、イベント配信先記憶部１１３（図３参照）に、イベントを転送すべきイベント配信ノードのノード識別子を格納する。イベント配信ネットワーク１００は、イベント送信ノードがイベントを送信すると、イベント配信先記憶部１１３に格納されたイベント配信先のイベント配信ノードへイベントを転送する。本実施例では、同一のイベント送信ノードからのイベントを欲するイベント受信ノードが２つあるときは、２つの通知ノードにイベントが転送され、２つの通知ノードのそれぞれでイベント配信ルールが検査される。このため、負荷分散を図ることができる。
【０１０１】
なお、上記実施形態及び実施例では、イベント配信ネットワーク１００に、イベント受信ノード１３２のノード識別子の各階層に対応するノード識別子が設定された転送ノード１０１を設けたが、かかる構成に限定されることはない。例えば、階層レベルのうちのいくつかは省略することができる。具体的には、図２において、階層レベル“”２”の転送ノード１０１を省き、階層レベル“１”の各転送ノード１０１から、階層レベル“３”の転送ノード１０１へイベント及びイベント配信ルールを転送してもよい。この場合、階層レベル“１”の転送ノード１０１のレベル記憶部１１４には、階層レベル“３”を保存しておけばよい。また、全てのノード識別子に対して、１つ下位の階層レベルが同じ階層レベルである必要はない。例えば、レベル記憶部１１４に、部分識別子jpに対して階層レベル“３”を保存し、部分識別子cnに対して階層レベル“２”を保存していてもよい。その場合、ノード識別子jpの転送ノード１０１は、階層レベル“３”の転送ノードへイベント及びイベント配信ルールを送信し、ノード識別子cnの転送ノードは、階層レベル“２”の転送ノードへイベント及びイベント配信ルールを転送してもよい。
【０１０２】
また、図７などでは、通知ノード１０２のノード識別子を、イベント受信ノード１３２のノード識別子と一致させているが、これには限定されない。例えば、イベント受信ノード１３２のグループを作成しておき、イベント配信ネットワーク１００に、グループに対応する通知ノード１０２を設ける構成も可能である。或いは、例えば、ノード識別子jp.co.exのイベント配信ノードを通知ノード１０２とし、ノード識別子の階層レベル“３”までの部分識別子がjp.co.exに一致するイベント受信ノード１３２を、ノード識別子jp.co.exの通知ノード１０２と対応させてもよい。その場合、ノード識別子jp.co.exの通知ノード１０２は、ノード識別子jp.co.ex.dst1やjp.co.ex.dst2、jp.co.ex.dst3などのイベント受信ノード１３２からのイベント配信ルールを登録し、それらイベント受信ノード１３２に対してイベントを送信すればよい。
【０１０３】
上記各実施形態及び実施例では、イベント配信ルールの転送時にイベント配信先記憶部１１３への部分識別子の記憶を行っているが、イベント配信ルールの転送と、イベント配信先記憶部１１３への記憶とは、必ずしも同時に行う必要はない。例えば、イベント受信ノード１３２から、転送ノード１０１を経由せずに、直接通知ノード１０２にイベント配信ルールを登録し、その後に、イベント配信先記憶部１１３への記憶を行ってもよい。その場合、何らかの手段を用いて、通知ノード１０２に登録される（登録された）配信ルールが、どのイベント送信ノード１３１からのイベントをどのイベント受信ノード１３２に送信するかを示しているかを示す情報を、転送ノード１０１に与えればよい。
【０１０４】
上記実施例では、イベント送信ノードのノード識別子の階層レベル数と、イベント受信ノードのノード識別子の階層レベル数とを同じ階層数としているが、必ずしも、全てのノード識別子の階層レベルの数が一致していなくてもよい。例えば、イベント送信ノードのノード識別子に階層レベル数「３」のノード識別子が含まれていてもよい。その場合、部分識別子抽出部１１９、１２１（図３参照）は、レベル記憶部１１４に記憶された階層レベルが、イベント送信ノードのノード識別子よりも下位の階層であるときは、イベント送信ノードの最下位の階層レベルまでのノード識別子を部分識別子として抽出すればよい。
【０１０５】
上記の場合において、例えば、イベント配信ルールに、イベント送信ノードのノード識別子com.nec.src1と、イベント受信ノードのノード識別子jp.co.ex.dst1とが含まれていた場合を考える。あるイベント配信ノードのレベル記憶部１１４に記憶される階層レベルが階層レベル“４”である場合、そのイベント配信ノードの部分識別子抽出部１２１は、図４のステップＡ３において、イベント送信ノードのノード識別子から、最下位、すなわち、階層レベル“３”までの識別子com.nec.src1を部分識別子として抽出し、イベント受信ノードのノード識別子から階層レベル“４”までの識別子jp.co.ex.dst1を部分識別子として抽出すればよい。そして、イベント配信先登録部１２２は、ステップＡ６において、イベント送信ノードの部分識別子com.nec.src1とイベント受信ノードのノード識別子jp.co.ex.dst1とを対応付けて、イベント配信先記憶部１１３に登録すればよい。
【０１０６】
また、イベント送信ノードcom.nec.src1がイベントを送信した場合を考える。あるイベント配信ノードのレベル記憶部１１４に記憶される階層レベルが階層レベル“４”である場合、部分識別子抽出部１１９は、図５のステップＢ３において、イベント送信元のイベント送信ノードのノード識別子から、最下位、すなわち、階層レベル“３”までの識別子com.nec.src1を部分識別子として抽出すればよい。転送先検索部１２０は、ステップＢ４において、抽出された部分識別子com.nec.src1が格納されたエントリを検索する。転送先検索部１２０は、検索されたエントリの識別子リストに含まれるノード識別子、例えば、jp.co.ex.dst1をノード識別子とするイベント配信ノード（イベント受信ノードjp.co.ex.dst1に対応したイベント配信ノード）を、イベントの送信先として決定すればよい。
【０１０７】
以上、本発明をその好適な実施形態に基づいて説明したが、本発明のイベント配信システム、イベント配信ネットワーク、イベント配信ノード、イベント配信方法、及び、コンピュータ読み取り可能な記録媒体は、上記実施形態にのみ限定されるものではなく、上記実施形態の構成から種々の修正及び変更を施したものも、本発明の範囲に含まれる。
【産業上の利用可能性】
【０１０８】
本発明は、センサやＲＦＩＤからのイベントを利用したアプリケーション、例えば物流トレーサビリティやＳＣＥＭ（Supply Chain Event Management）、天候や災害などの環境管理に適用することができる。【０１０９】
（付記１）
階層構造を持ち、ノードを一意に識別するノード識別子が予め付与されている１以上のイベント送信ノード及びイベント受信ノードと、
前記イベント受信ノードのノード識別子に対応したノード識別子が予め付与されていると共に、特定のイベント送信ノードが送信したイベントを特定のイベント受信ノードに送信する旨を示すイベント配信ルールが登録され、前記イベント送信ノードから送信されたイベントを、前記登録されたイベント配信ルールに従って、対応するノード識別子を有するイベント受信ノードに送信する１以上の通知ノードと、
前記イベント受信ノードのノード識別子のうちの特定の階層レベルまでの識別子から成る部分識別子がノード識別子として予め付与されており、前記イベント送信ノードが送信したイベントを、前記ノード識別子の階層構造に従って前記通知ノードに向けて転送する複数の転送ノードとを備え、
前記転送ノードが、
前記イベント送信ノードからのイベントを受信するイベント受信手段と、
自転送ノードに付与された前記ノード識別子の階層レベルよりも１つ以上下位の階層レベルを記憶するレベル記憶部を参照し、イベント送信元のイベント送信ノードのノード識別子から、前記レベル記憶部に記憶された階層レベルまでの部分識別子を抽出する第１の部分識別子抽出手段と、
前記イベント送信ノードのノード識別子のうち前記レベル記憶部に記憶された階層レベルまでの部分識別子と、前記イベント受信ノードのノード識別子のうち前記レベル記憶部に記憶された階層レベルまでの部分識別子とを対応付けて記憶するイベント配信先記憶部を検索して、前記第１の部分識別子抽出手段が抽出した部分識別子と対応付けて記憶されたイベント受信ノードの部分識別子を取得し、該取得した部分識別子と同じノード識別子が付与されている転送ノード又は通知ノードに前記イベントを送信するイベント送信手段とを備えるイベント配信システム。
（付記２）
前記転送ノードが、
前記通知ノードに登録されているイベント配信ルールから、当該イベントの送信元として指定されるイベント送信ノードのノード識別子、及び、当該イベントの送信先として指定されるイベント受信ノードのノード識別子をそれぞれ取り出し、取り出したそれぞれのノード識別子から、前記レベル記憶部に記憶される階層レベルまでの部分識別子を抽出する第２の部分識別子抽出手段と、
前記イベント配信先記憶部に、前記第２の部分識別子抽出手段によって抽出された、前記イベント送信ノードの部分識別子と、前記イベント受信ノードの部分識別子とを対応付けて格納するイベント配信先登録手段とを更に備える、付記１に記載のイベント配信システム。
（付記３）
前記転送ノードが、
前記通知ノードに登録すべきイベント配信ルールを受信する配信ルール受信手段と、
前記第２の部分識別子抽出手段によって抽出された前記イベント受信ノードの部分識別子と同じノード識別子が付与されている転送ノード又は通知ノードに、前記イベント配信ルールを送信する配信ルール送信手段とを更に備える、付記２に記載のイベント配信システム。
（付記４）
前記イベント配信先登録手段は、前記イベント配信先記憶部に、前記第２の部分識別子抽出手段によって抽出された前記イベント送信ノードの部分識別子が記憶済みであるか否かを調べ、記録済みであるときは、記録済みのイベント送信ノードの部分識別子と対応付けて記憶されるイベント受信ノードの部分識別子に、前記第２の部分識別子抽出手段によって抽出された前記イベント受信ノードの部分識別子を追加して格納する、付記２又は３に記載のイベント配信システム。
（付記５）
階層構造を持ち、ノードを一意に識別するノード識別子が予め付与されているイベント受信ノードのノード識別子のうちの特定の階層レベルまでの識別子から成る部分識別子がノード識別子として予め付与されているイベント配信ノードであって、
階層構造を持ち、ノードを一意に識別するノード識別子が予め付与されているイベント送信ノードからのイベントを受信するイベント受信手段と、
自転送ノードに付与された前記ノード識別子の階層レベルよりも１つ以上下位の階層レベルを記憶するレベル記憶部を参照し、イベント送信元のイベント送信ノードのノード識別子から、前記レベル記憶部に記憶された階層レベルまでの部分識別子を抽出する第１の部分識別子抽出手段と、
前記イベント送信ノードのノード識別子のうち前記レベル記憶部に記憶された階層レベルまでの部分識別子と、前記イベント受信ノードのノード識別子のうち前記レベル記憶部に記憶された階層レベルまでの部分識別子とを対応付けて記憶するイベント配信先記憶部を検索して、前記第１の部分識別子抽出手段が抽出した部分識別子と対応付けて記憶されたイベント受信ノードの部分識別子を取得し、該取得した部分識別子と同じノード識別子が付与されている他のイベント配信ノードに前記イベントを送信するイベント送信手段とを備えるイベント配信ノード。
（付記６）
前記イベント受信ノードに対してイベントの送信を行うイベント配信ノードに登録されているイベント配信ルールから、当該イベントの送信元として指定されるイベント送信ノードのノード識別子、及び、当該イベントの送信先として指定されるイベント受信ノードのノード識別子をそれぞれ取り出し、取り出したそれぞれのノード識別子から、前記レベル記憶部に記憶される階層レベルまでの部分識別子を抽出する第２の部分識別子抽出手段と、
前記イベント配信先記憶部に、前記第２の部分識別子抽出手段によって抽出された、前記イベント送信ノードの部分識別子と、前記イベント受信ノードの部分識別子とを対応付けて格納するイベント配信先登録手段とを更に備える、付記５に記載のイベント配信ノード。
（付記７）
前記イベント配信ルールを受信する配信ルール受信手段と、
前記第２の部分識別子抽出手段によって抽出された前記イベント受信ノードの部分識別子と同じノード識別子が付与されている転送ノード又は通知ノードに、前記イベント配信ルールを送信する配信ルール送信手段とを更に備える、付記６に記載のイベント配信ノード。
（付記８）
前記イベント配信先登録手段は、前記イベント配信先記憶部に、前記第２の部分識別子抽出手段によって抽出された前記イベント送信ノードの部分識別子が記憶済みであるか否かを調べ、記録済みであるときは、記録済みのイベント送信ノードの部分識別子と対応付けて記憶されるイベント受信ノードの部分識別子に、前記第２の部分識別子抽出手段によって抽出された前記イベント受信ノードの部分識別子を追加して格納する、付記６に記載のイベント配信ノード。
（付記９）
階層構造を持ち、ノードを一意に識別するノード識別子が予め付与されている１以上のイベント受信ノードのノード識別子に対応したノード識別子が予め付与されていると共に、階層構造を持ち、ノードを一意に識別するノード識別子が予め付与されている１以上のイベント送信ノードのうちの特定のイベント送信ノードが送信したイベントを特定のイベント受信ノードに送信する旨を示すイベント配信ルールが登録され、前記イベント送信ノードから送信されたイベントを、前記登録されたイベント配信ルールに従って、対応するノード識別子を有するイベント受信ノードに送信する１以上の通知ノードと、
前記イベント受信ノードのノード識別子のうちの特定の階層レベルまでの識別子から成る部分識別子がノード識別子として予め付与されており、前記イベント送信ノードが送信したイベントを、前記ノード識別子の階層構造に従って前記通知ノードに向けて転送する複数の転送ノードとを備え、
前記転送ノードが、
前記イベント送信ノードからのイベントを受信するイベント受信手段と、
自転送ノードに付与された前記ノード識別子の階層レベルよりも１つ以上下位の階層レベルを記憶するレベル記憶部を参照し、イベント送信元のイベント送信ノードのノード識別子から、前記レベル記憶部に記憶された階層レベルまでの部分識別子を抽出する部分識別子抽出手段と、
前記イベント送信ノードのノード識別子のうち前記レベル記憶部に記憶された階層レベルまでの部分識別子と、前記イベント受信ノードのノード識別子のうち前記レベル記憶部に記憶された階層レベルまでの部分識別子とを対応付けて記憶するイベント配信先記憶部を検索して、前記部分識別子抽出手段が抽出した部分識別子と対応付けて記憶されたイベント受信ノードの部分識別子を取得し、該取得した部分識別子と同じノード識別子が付与されている転送ノード又は通知ノードに前記イベントを送信するイベント送信手段とを備えるイベント配信ネットワーク。
（付記１０）
前記転送ノードが、
前記通知ノードに登録されているイベント配信ルールから、当該イベントの送信元として指定されるイベント送信ノードのノード識別子、及び、イベントの送信先として指定されるイベント受信ノードのノード識別子をそれぞれ取り出し、取り出したそれぞれのノード識別子から、前記レベル記憶部に記憶される階層レベルまでの部分識別子を抽出する第２の部分識別子抽出手段と、
前記イベント配信先記憶部に、前記第２の部分識別子抽出手段によって抽出された、前記イベント送信ノードの部分識別子と、前記イベント受信ノードの部分識別子とを対応付けて記憶するイベント配信先登録手段とを更に備える、付記９に記載のイベント配信ネットワーク。
（付記１１）
前記転送ノードが、
前記通知ノードに設定すべきイベント配信ルールを受信する配信ルール受信手段と、
前記第２の部分識別子抽出手段によって抽出された前記イベント受信ノードの部分識別子と同じノード識別子が付与されている転送ノード又は通知ノードに、前記イベント配信ルールを送信する配信ルール送信手段とを更に備える、付記１０に記載のイベント配信ネットワーク。
（付記１２）
前記イベント配信先登録手段は、前記イベント配信先記憶部に、前記第２の部分識別子抽出手段によって抽出された前記イベント送信ノードの部分識別子が記憶済みであるか否かを調べ、記録済みであるときは、記録済みのイベント送信ノードの部分識別子と対応付けて記憶されるイベント受信ノードの部分識別子に、前記第２の部分識別子抽出手段によって抽出された前記イベント受信ノードの部分識別子を追加して格納する、付記１０又は付記１１に記載のイベント配信ネットワーク。
（付記１３）
コンピュータが、階層構造を持ち、ノードを一意に識別するノード識別子が予め付与されているイベント送信ノードからイベントを受信するステップと、
コンピュータが、階層構造を持ち、ノードを一意に識別するノード識別子が予め付与されているイベント受信ノードの前記ノード識別子のうちの特定の階層レベルまでの識別子から成る部分識別子がノード識別子として予め付与されているイベント配信ノードの前記ノード識別子の階層レベルよりも１つ以上下位の階層レベルを記憶するレベル記憶部を参照して、イベントの送信元のイベント送信ノードのノード識別子から、前記レベル記憶部に記憶された階層レベルまでの部分識別子を抽出するステップと、
コンピュータが、前記イベント送信ノードのノード識別子のうち前記レベル記憶部に記憶された階層レベルまでの部分識別子と、前記イベント受信ノードのノード識別子のうち前記レベル記憶部に記憶された階層レベルまでの部分識別子とを対応付けて記憶するイベント配信先記憶部を検索して、前記抽出された部分識別子と対応付けて記憶されたイベント受信ノードの部分識別子を取得するステップと、
コンピュータが、前記取得した部分識別子と同じノード識別子が付与されている他のイベント配信ノードに前記イベントを送信するステップとを有するイベント配信方法。
（付記１４）
コンピュータが、前記イベント受信ノードに対してイベントの送信を行うイベント配信ノードに登録されているイベント配信ルールから、当該イベントの送信元として指定されるイベント送信ノードのノード識別子、及び、当該イベントの送信先として指定されるイベント受信ノードのノード識別子をそれぞれ取り出し、取り出したそれぞれのノード識別子から、前記レベル記憶部に記憶される階層レベルまでの部分識別子を抽出するステップと、
コンピュータが、前記抽出された、前記イベント送信ノードの部分識別子と、前記イベント受信ノードの部分識別子とを対応付けて前記イベント配信先記憶部に格納するステップとを更に有する、付記１３に記載のイベント配信方法。
（付記１５）
コンピュータが、前記イベント配信ルールを受信するステップと、
コンピュータが、前記抽出された前記イベント受信ノードの部分識別子と同じノード識別子が付与されているイベント配信ノードに、前記イベント配信ルールを送信するステップとを更に有する、付記１４に記載のイベント配信方法。
（付記１６）
前記イベント配信先記憶部に格納するステップでは、コンピュータは、前記イベント配信先記憶部に、前記抽出されたイベント送信ノードの部分識別子が記憶済みであるか否かを調べ、記録済みであるときは、記録済みのイベント送信ノードの部分識別子と対応付けて記憶されるイベント受信ノードの部分識別子に、前記抽出されたイベント受信ノードの部分識別子を追加して記憶する、付記１４又は付記１５に記載のイベント配信方法。
（付記１７）
コンピュータに、
階層構造を持ち、ノードを一意に識別するノード識別子が予め付与されているイベント送信ノードからイベントを受信する処理と、
階層構造を持ち、ノードを一意に識別するノード識別子が予め付与されているイベント受信ノードの前記ノード識別子のうちの特定の階層レベルまでの識別子から成る部分識別子がノード識別子として予め付与されているイベント配信ノードの前記ノード識別子の階層レベルよりも１つ以上下位の階層レベルを記憶するレベル記憶部を参照して、イベントの送信元のイベント送信ノードのノード識別子から、前記レベル記憶部に記憶された階層レベルまでの部分識別子を抽出する処理と、
前記イベント送信ノードのノード識別子のうち前記レベル記憶部に記憶された階層レベルまでの部分識別子と、前記イベント受信ノードのノード識別子のうち前記レベル記憶部に記憶された階層レベルまでの部分識別子とを対応付けて記憶するイベント配信先記憶部を検索して、前記抽出された部分識別子と対応付けて記憶されたイベント受信ノードの部分識別子を取得する処理と、
前記取得された部分識別子と同じノード識別子が付与されている他のイベント配信ノードに前記イベントを送信する処理とを実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体。
（付記１８）
付記１７に記載のコンピュータ読み取り可能な記録媒体であって、
前記プログラムは、
コンピュータに、
前記イベント受信ノードに対してイベントの送信を行うイベント配信ノードに登録されているイベント配信ルールから、当該イベントの送信元として指定されるイベント送信ノードのノード識別子、及び、当該イベントの送信先として指定されるイベント受信ノードのノード識別子をそれぞれ取り出し、取り出したそれぞれのノード識別子から、前記レベル記憶部に記憶される階層レベルまでの部分識別子を抽出する処理と、
抽出された、前記イベント送信ノードの部分識別子と、前記イベント受信ノードの部分識別子とを対応付けて前記イベント配信先記憶部に格納する処理とを更に実行させる。
（付記１９）
付記１８に記載のコンピュータ読み取り可能な記録媒体であって、
前記プログラムは、
コンピュータに、
前記イベント配信ルールを受信する処理と、
前記抽出されたイベント受信ノードの部分識別子と同じノード識別子が付与されているイベント配信ノードに、前記イベント配信ルールを送信する処理とを更に実行させる。
（付記２０）
付記１８又は１９に記載のコンピュータ読み取り可能な記録媒体であって、
前記プログラムは、
前記イベント配信先記憶部に格納する処理では、前記イベント配信先記憶部に、前記抽出されたイベント送信ノードの部分識別子が記憶済みであるか否かを調べ、記録済みであるときは、記録済みのイベント送信ノードの部分識別子と対応付けて記憶されるイベント受信ノードの部分識別子に、前記抽出された前記イベント受信ノードの部分識別子を追加して格納する。【０１１０】
本出願は、２０１０年２月１日に出願された日本国特許出願特願２０１０−１９８７６号に基づく。本明細書中に、その明細書、特許請求の範囲、図面全体を参照して取り込むものとする。
【符号の説明】
【０１１１】
１０：転送ノード
１１：イベント受信部
１２：部分識別子抽出部
１３：イベント送信部
１４：イベント配信先記憶部
１５：レベル記憶部
２１：イベント送信ノード
２２：イベント受信ノード
２３：通知ノード
２４：イベント配信ルール
１００：イベント配信ネットワーク
１０１：転送ノード（イベント配信ノード）
１０２：通知ノード（イベント配信ノード）
１１１：送受信部
１１２：処理部
１１３：イベント配信先記憶部
１１４：レベル記憶部
１１５：イベント受信部
１１６：イベント送信部
１１７：配信ルール受信部
１１８：配信ルール送信部
１１９、１２１：部分識別子抽出部
１２０：転送先検索部
１２２：イベント配信先登録部
１３１：イベント送信ノード
１３２：イベント受信ノード
【図１】
2011093492.tif 000003
【図２】
2011093492.tif 000004
【図３】
2011093492.tif 000005
【図４】
2011093492.tif 000006
【図５】
2011093492.tif 000007
【図６】
2011093492.tif 000008
【図７】
2011093492.tif 000009
【図８】
2011093492.tif 000010
【図９】
2011093492.tif 000011
【図１０】
2011093492.tif 000012
【図１１】
2011093492.tif 000013
【手続補正書】
【提出日】平成24年7月30日(2012.7.30)
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００１
【補正方法】変更
【補正の内容】
【０００１】
本発明は、イベント配信システム、イベント配信ネットワーク、イベント配信ノード、イベント配信方法、及び、プログラムに関し、更に詳しくは、イベント送信ノードが送信したイベントをイベント受信ノードに配信するためのイベント配信システム、イベント配信ネットワーク、イベント配信ノード、イベント配信方法、及び、そのためのプログラムに関する。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００２３
【補正方法】変更
【補正の内容】
【００２３】
本発明は、上記の問題点を解消し、特定のイベント配信ノードに負荷が集中することを避けることができるイベント配信システム、イベント配信ネットワーク、イベント配信ノード、イベント配信方法、及び、そのためのプログラムを提供することを目的とする。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００２８
【補正方法】変更
【補正の内容】
【００２８】
本発明の第５の観点に係るプログラムは、
コンピュータに、
階層構造を持ち、ノードを一意に識別するノード識別子が予め付与されているイベント送信ノードからイベントを受信する処理と、
階層構造を持ち、ノードを一意に識別するノード識別子が予め付与されているイベント受信ノードの前記ノード識別子のうちの特定の階層レベルまでの識別子から成る部分識別子がノード識別子として予め付与されているイベント配信ノードの前記ノード識別子の階層レベルよりも１つ以上下位の階層レベルを記憶するレベル記憶部を参照して、イベントの送信元のイベント送信ノードのノード識別子から、前記レベル記憶部に記憶された階層レベルまでの部分識別子を抽出する処理と、
前記イベント送信ノードのノード識別子のうち前記レベル記憶部に記憶された階層レベルまでの部分識別子と、前記イベント受信ノードのノード識別子のうち前記レベル記憶部に記憶された階層レベルまでの部分識別子とを対応付けて記憶するイベント配信先記憶部を検索して、前記抽出された部分識別子と対応付けて記憶されたイベント受信ノードの部分識別子を取得する処理と、
前記取得された部分識別子と同じノード識別子が付与されている他のイベント配信ノードに前記イベントを送信する処理とを実行させる。
【手続補正５】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項１０
【補正方法】変更
【補正の内容】
【請求項１０】
コンピュータに、
階層構造を持ち、ノードを一意に識別するノード識別子が予め付与されているイベント送信ノードからイベントを受信する処理と、
階層構造を持ち、ノードを一意に識別するノード識別子が予め付与されているイベント受信ノードの前記ノード識別子のうちの特定の階層レベルまでの識別子から成る部分識別子がノード識別子として予め付与されているイベント配信ノードの前記ノード識別子の階層レベルよりも１つ以上下位の階層レベルを記憶するレベル記憶部を参照して、イベントの送信元のイベント送信ノードのノード識別子から、前記レベル記憶部に記憶された階層レベルまでの部分識別子を抽出する処理と、
前記イベント送信ノードのノード識別子のうち前記レベル記憶部に記憶された階層レベルまでの部分識別子と、前記イベント受信ノードのノード識別子のうち前記レベル記憶部に記憶された階層レベルまでの部分識別子とを対応付けて記憶するイベント配信先記憶部を検索して、前記抽出された部分識別子と対応付けて記憶されたイベント受信ノードの部分識別子を取得する処理と、
前記取得された部分識別子と同じノード識別子が付与されている他のイベント配信ノードに前記イベントを送信する処理とを実行させるプログラム。
【国際調査報告】
2011093492.tif 000014
2011093492.tif 000015