(57)【要約】【課題】データの配信頻度やサブスクライバが増えた場合であっても、円滑にデータを配信すること。【解決手段】ブローカーノード１００は、キューノード２００に配信する配信データを複製せずに、ただ１つだけの配信データを送信する。そして、キューノード２００は、必要がある場合に、ブローカーノード１００から受信した配信データを複製し、各サブスクライバ４００に対応する各受信データ格納用キュー２０４に格納する。【選択図】図１
2014038483.tif 000002
【特許請求の範囲】
【請求項１】
配信元通信機器から配信データを受信するブローカーノードと、前記ブローカーノードから受信した前記配信データを配信先通信機器に送信するキューノードとを備えるデータ配信システムであって、
前記ブローカーノードは、
指定された種類の前記配信データの転送先として予め決められている前記キューノードを検出するための転送先検出情報を用いて、前記配信元通信機器から受信した前記配信データに基づき、受信した前記配信データの種類の転送先として予め決められている前記キューノードを検出するデータ転送先絞り込み装置と、
前記データ転送先絞り込み装置によって検出された前記キューノードに前記配信データを送信するデータ転送装置とを備え、
前記キューノードは、
当該配信先通信機器に配信するための前記配信データを格納する記憶領域を前記配信先通信機器毎に備える記憶装置と、
前記配信先通信機器から指定された前記配信データの種類を示す配信先指定情報を参照して、前記ブローカーノードから受信した前記配信データのうち、前記配信先通信機器から指定された種類の前記配信データを検索するデータ配信先決定装置と、
検索により得られた前記配信データを、対応する前記配信先通信機器の前記記憶領域に格納するデータ配信先振り分け装置と、
を備えることを特徴とするデータ配信システム。
【請求項２】
前記キューノードの前記データ配信先振り分け装置は、
前記配信データの種類として同一種類を指定する前記配信先通信機器が複数ある場合、前記ブローカーノードから受信した前記配信データを複製して、当該同一種類を指定する前記配信先通信機器に前記配信データを配信するための前記記憶領域に複製した前記配信データをそれぞれ格納することを特徴とする請求項１に記載のデータ配信システム。
【請求項３】
前記キューノードは、
前記配信先機器から配信を要求する前記配信データの種類が指定された場合、指定された種類の前記配信データの配信を当該キューノードが要求していることを示す情報を前記ブローカーノードに送信する決定装置をさらに備え、
前記ブローカーノードのデータ転送先絞り込み装置は、
前記キューノードから受信した前記情報に基づき、前記転送先検出情報を作成することを特徴とする請求項１または２に記載のデータ配信システム。
【請求項４】
前記ブローカーノードは、
前記転送先検出情報として、前記配信データの種類を示す固有の識別情報を入力して当該識別情報に対応する前記配信データを前記キューノードに送信するか否かを判定するためのデータ構造を用いることを特徴とする請求項１から３のうちいずれか一項に記載のデータ配信システム。
【請求項５】
前記ブローカーノードは、
前記転送先検出情報として、偽陰性を許容せずかつ偽陽性を許容するフィルタを用いることを特徴とする請求項１から４のうちいずれか一項に記載のデータ配信システム。
【請求項６】
前記ブローカーノードは、
前記転送先検出情報として、偽陰性を許容せずかつ偽陽性を許容するフィルタを階層的化したことを特徴とする請求項１から５のうちいずれか一項に記載のデータ配信システム。
【請求項７】
配信元通信機器から配信データを受信するブローカーノードと、前記ブローカーノードから受信した前記配信データを配信先通信機器に送信するキューノードとを備えるデータ配信システムにおいて利用されるデータ配信方法であって、
前記ブローカーノードが、
指定された種類の前記配信データの転送先として予め決められている前記キューノードを検出するための転送先検出情報を用いて、前記配信元通信機器から受信した前記配信データに基づき、受信した前記配信データの種類の転送先として予め決められている前記キューノードを検出するステップと、
前記ブローカーノードが、
検出された前記キューノードに前記配信データを送信するステップと、
前記キューノードが、
前記配信先通信機器から指定された前記配信データの種類を示す配信先指定情報を参照して、前記ブローカーノードから受信した前記配信データのうち、前記配信先通信機器から指定された種類の前記配信データを検索するステップと、
前記キューノードが、
当該配信先通信機器に配信するための前記配信データを格納する前記配信先通信機器ごとの記憶領域のうち、検索により得られた前記配信データを、対応する前記配信先通信機器の前記記憶領域に格納するステップと、
を備えることを特徴とするデータ配信方法。
【請求項８】
コンピュータを
指定された種類の前記配信データの転送先として予め決められているキューノードを検出するための転送先検出情報を用いて、配信元通信機器から受信した前記配信データに基づき、受信した前記配信データの種類の転送先として予め決められている前記キューノードを検出するデータ転送先絞り込み手段、
前記データ転送先絞り込み手段によって検出された前記キューノードに前記配信データを送信するデータ転送手段、
当該配信先通信機器に配信するための前記配信データを格納する記憶領域を前記配信先通信機器毎に備える記憶手段、
前記配信先通信機器から指定された前記配信データの種類を示す配信先指定情報を参照して、ブローカーノードから受信した前記配信データのうち、前記配信先通信機器から指定された種類の前記配信データを検索するデータ配信先決定手段、
検索により得られた前記配信データを、対応する前記配信先通信機器の前記記憶領域に格納するデータ配信先振り分け手段、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ配信システム、データ配信方法、およびプログラムに関する。
【背景技術】
【０００２】
近年、例えばマイクロブログや地理情報を活用した広告配信システムにおいて、あるトピックに対するデータが配信者（パブリッシャ）から配信されたとき、当該トピックを購読しているクライアント（サブスクライバ）にデータを配送するものがある。このシステムには、パブリッシャから受信した配信データをサブスクライバに配信する装置（ブローカー）が用いられる。このブローカーは、パブリッシャから配信データを受信して、受信した配信データに紐付けられたトピックを示すトピック情報を元に、当該トピックを購読している各サブスクライバ用のキューに当該データを登録することで、各サブスクライバに対して購読しているトピックに属するデータの配信を行う。
【０００３】
例えば、ブローカーがエージェントを介して複数のセグメントに対し一斉にブロードキャストするブロードキャストシステムがある（例えば、特許文献１参照）。ブローカーは、要求されたブロードキャストを、対象セグメント毎にエージェントにユニキャストで送信する。各セグメントでは、ブローカーからのブロードキャスト要求を受けたエージェントがそれぞれのセグメント内の他のエージェントに対してＵＤＰブロードキャストによって送信する。
【０００４】
また、各種のコンテンツを保持する１以上のコンテンツプロバイダサーバと、インターネットに接続されたユーザ端末と、このコンテンツプロバイダサーバとインターネットを介して接続されるブローカーサーバとを備えるシステムがある（例えば、特許文献２参照）。このブローカーサーバは、ユーザ端末が購入したコンテンツのインデックス情報をユーザ毎に記憶しておき、このインデックス情報を用いて、各ユーザ端末に購入したコンテンツを配信する。
【０００５】
さらに、配信文書をクライアントに配信する際に、配信文書がフィルタリング条件を満たしているか否かの判定を行い、フィルタリング条件を満たしていると判定された場合に、配信文書の表示を行うためのＨＴＭＬドキュメントを作成し、配信するものがある（例えば、特許文献３参照）。
また、接続先グループ同士の階層構造を階層情報テーブルに登録するものがある（例えば、特許文献４参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１０−１０３７５７号公報
【特許文献２】特開２００１−１８４３９９号公報
【特許文献３】特開２００６−２６０３６１号公報
【特許文献４】特開２００７−１６４４１９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、データの配信頻度やサブスクライバが増えたときに、円滑にデータを配信することが困難になるおそれがあった。
特に、多くのサブスクライバから購読されているトピックについてのデータを配信する場合、同一のデータが大量に複製され、各サブスクライバに配信される。このため、大量の配信データがブローカーとキューの間の帯域を圧迫し、データの配信頻度やサブスクライバが増えたときに性能上のボトルネックになるという問題があった。
【０００８】
本発明は、上記課題を解決することができるデータ配信システム、データ配信方法、およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
この発明は上述した課題を解決するためになされたもので、本発明の一態様によるデータ配信システムは、配信元通信機器から配信データを受信するブローカーノードと、前記ブローカーノードから受信した前記配信データを配信先通信機器に送信するキューノードとを備えるデータ配信システムであって、前記ブローカーノードは、指定された種類の前記配信データの転送先として予め決められている前記キューノードを検出するための転送先検出情報を用いて、前記配信元通信機器から受信した前記配信データに基づき、受信した前記配信データの種類の転送先として予め決められている前記キューノードを検出するデータ転送先絞り込み装置と、前記データ転送先絞り込み装置によって検出された前記キューノードに前記配信データを送信するデータ転送装置とを備え、前記キューノードは、当該配信先通信機器に配信するための前記配信データを格納する記憶領域を前記配信先通信機器毎に備える記憶装置と、前記配信先通信機器から指定された前記配信データの種類を示す配信先指定情報を参照して、前記ブローカーノードから受信した前記配信データのうち、前記配信先通信機器から指定された種類の前記配信データを検索するデータ配信先決定装置と、検索により得られた前記配信データを、対応する前記配信先通信機器の前記記憶領域に格納するデータ配信先振り分け装置と、を備える。
【００１０】
この発明は上述した課題を解決するためになされたもので、本発明の一態様によるデータ配信方法は、配信元通信機器から配信データを受信するブローカーノードと、前記ブローカーノードから受信した前記配信データを配信先通信機器に送信するキューノードとを備えるデータ配信システムにおいて利用されるデータ配信方法であって、前記ブローカーノードが、指定された種類の前記配信データの転送先として予め決められている前記キューノードを検出するための転送先検出情報を用いて、前記配信元通信機器から受信した前記配信データに基づき、受信した前記配信データの種類の転送先として予め決められている前記キューノードを検出するステップと、前記ブローカーノードが、検出された前記キューノードに前記配信データを送信するステップと、前記キューノードが、前記配信先通信機器から指定された前記配信データの種類を示す配信先指定情報を参照して、前記ブローカーノードから受信した前記配信データのうち、前記配信先通信機器から指定された種類の前記配信データを検索するステップと、前記キューノードが、当該配信先通信機器に配信するための前記配信データを格納する前記配信先通信機器ごとの記憶領域のうち、検索により得られた前記配信データを、対応する前記配信先通信機器の前記記憶領域に格納するステップと、を備える。
【００１１】
この発明は上述した課題を解決するためになされたもので、本発明の一態様によるプログラムは、コンピュータを、指定された種類の前記配信データの転送先として予め決められているキューノードを検出するための転送先検出情報を用いて、配信元通信機器から受信した前記配信データに基づき、受信した前記配信データの種類の転送先として予め決められている前記キューノードを検出するデータ転送先絞り込み手段、前記データ転送先絞り込み手段によって検出された前記キューノードに前記配信データを送信するデータ転送手段、当該配信先通信機器に配信するための前記配信データを格納する記憶領域を前記配信先通信機器毎に備える記憶手段、前記配信先通信機器から指定された前記配信データの種類を示す配信先指定情報を参照して、ブローカーノードから受信した前記配信データのうち、前記配信先通信機器から指定された種類の前記配信データを検索するデータ配信先決定手段、検索により得られた前記配信データを、対応する前記配信先通信機器の前記記憶領域に格納するデータ配信先振り分け手段、として機能させるためのプログラムである。
【発明の効果】
【００１２】
この発明によれば、データの配信頻度やサブスクライバが増えた場合であっても円滑なデータ配信を実現することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の第１実施形態に係るデータ配信システム１の構成の一例を示すブロック図である。
【図２】本実施形態に係る配信登録処理の一例を説明するためのシーケンス図である。
【図３】本実施形態に係る配信処理の一例を説明するためのシーケンス図である。
【図４】本発明の第２実施形態に係るデータ配信システム２の構成の一例を示すブロック図である。
【図５】本実施形態における転送先検出情報の一例を説明するための図である。
【図６】本発明の実施の形態の基本的な構成を示す図である。
【発明を実施するための形態】
【００１４】
以下、本発明の一実施形態を、図面を参照して説明する。
図１は、本発明の一実施形態に係るデータ配信システム１の構成の一例を示すブロック図である。
図１に示す通り、本実施形態に係るデータ配信システム１は、ブローカーノード１００と、複数のキューノード２００と、複数のパブリッシャ３００と、複数のサブスクライバ４００とを備える。
本実施形態に係るデータ配信システム１は、特にあるトピックに対して、データ配信者（パブリッシャ３００）により当該トピックに関するデータが配信されたとき、当該トピックを購読するよう登録された任意の数のクライアント（サブスクライバ４００）に対して当該データを配送するため、購読する配信データの登録状況や配送の進捗状況を当該データの配信先ごとに管理するようなデータ配送基盤に関する。
ここでトピックとは、サブスクライバ４００に対して共通の話題を提供するようなチャンネルである。また、配送の進捗状況とは各サブスクライバ４００によってデータの受信状況が異なっても、配信されたデータが正しく配送出来るように設けられる管理機構で、構造は特に決められていないが一般的にはキュー構造が用いられるため、以下の説明では便宜上キューとする。
【００１５】
ブローカーノード１００は、データ転送装置１０１と、データ配信先絞り込み装置１０２とを備える。
データ転送装置１０１は、配信データの転送先としてデータ配信先絞り込み装置１０２によって検出されたキューノード２００に、パブリッシャ３００から受信した配信データを送信する。このデータ転送装置１０１は、データ配信先絞り込み装置１０２によって配信データの転送先として対応付けられているキューノード２００が検出された場合、データ転送装置１０１は、検出したキューノード２００に対しては１つの配信データを送信する。例えば、キューノード２００を介して配信データを配信するサブスクライバ４００が複数ある場合であっても、データ転送装置１０１は、パブリッシャ３００から受信した配信データを複製して各サブスクライバ４００に転送することなく、各キューノード２００に対して１つの配信データを送信する。これにより、ブローカーノード１００とキューノード２００間のデータ伝送量を削減することができる。
【００１６】
データ配信先絞り込み装置１０２は、例えば、サブスクライバ４００によって指定されたトピック（種類）の配信データを要求するキューノード２００を検出するための転送先検出情報を用いて、パブリッシャ３００から受信した配信データに基づき、受信した配信データの種類の転送先として対応付けられているキューノード２００を検出する。このデータ転送装置１０１は、受信した配信データの種類の転送先として対応付けられているキューノード２００を検出した場合、検出結果をデータ転送装置１０１に出力する。
この転送先検出情報としては、例えば、配信データのトピックを示す情報と、このトピックの配信データを配信するキューノード２００を示す情報とを対応づけるテーブルであってもよく、Ｂｌｏｏｍ ｆｉｌｔｅｒのようなデータ構造であってもよい。
【００１７】
キューノード２００は、データ配信先振り分け装置２０１と、データ配信先決定装置２０２と、受信トピック決定装置２０３と、受信データ格納用キュー２０４とを備える。
データ配信先振り分け装置２０１は、データ配信先決定装置２０２によって、ブローカーノード１００から受信した配信データの振り分け先が決定された場合、決定された振り分け先であるサブスクライバ４００に対応する受信データ格納用キュー２０４に、配信データを格納する。
【００１８】
データ配信先決定装置２０２は、サブスクライバ４００から指定された配信データのトピック（種類）を示す配信先指定情報を参照して、ブローカーノード１００から受信した配信データのうち、サブスクライバ４００から指定されたトピック（種類）の配信データを検索する。サブスクライバ４００から指定されたトピック（種類）の配信データを検索により得た場合、データ配信先決定装置２０２は、それぞれ対応するサブスクライバ４００と受信データ格納用キュー２０４とを示す対応関係情報を参照して、検索により得た配信データの振り分け先である受信データ格納用キュー２０４を決定する。
配信先指定情報は、例えば、配信データのトピックを示す情報と、このトピックの配信データを配信するキューノード２００を示す情報とをそれぞれ対応づけるテーブルである。
対応関係情報は、例えば、サブスクライバ４００を示す情報と、このサブスクライバ４００用の記憶領域である受信データ格納用キュー２０４を示す情報とをそれぞれ対応づけるテーブルである。
【００１９】
受信トピック決定装置２０３は、サブスクライバ４００からユーザが購読を要求するトピックが指定された場合、このトピックを示す情報と、キューノード２００を示す情報とをそれぞれ紐付けた情報を、ブローカーノード１００に出力する。
受信データ格納用キュー２０４は、例えば、サブスクライバ４００毎、あるいはトピック毎に割り当てられる記憶領域を備える記憶装置である。なお、ここで本発明に接続するとき、サブスクライバが直接的に接続する物理的なノードは当該サブスクライバ用の受信データ格納用キュー２０４を作れるのであれば、ブローカーノード、キューノードまたは他のノードのどれであっても構わない。
【００２０】
サブスクライバ４００がネットワーク等を介してキューノード２００に接続すると、キューノード２００に当該サブスクライバ４００用の受信データ格納用キュー２０４が作成される。その後、サブスクライバ４００が、どのトピックを購読するかをキューノード２００に通知すると、キューノード２００のデータ配信先決定装置２０２に、当該トピックと当該サブスクライバ４００用の受信データ格納用キューを紐付ける索引情報（配信先指定情報）が作成される。また、ここで、当該サブスクライバ４００用の受信データ格納用キュー２０４は、トピックごとや優先度ごとに複数作成されても構わない。
そして、キューノード２００の受信トピック決定装置２０２は、ブローカーノード１００のデータ配信先絞り込み装置１０２に、当該トピックの配信データを受け取る旨を通知する。ブローカーノード１００のデータ配信先絞り込み装置１０２は、各トピックについてどのキューノード２００に当該トピックに属する配信データを配送するかを記録する。
【００２１】
パブリッシャ３００がブローカーノード１００にネットワーク等を介して接続し、トピック情報が紐付いたデータを送信すると、ブローカーノード１００はデータ配信先絞り込み装置１０２によって絞り込まれた全てのキューノード２００に対して、データ転送装置１０１を用いてトピック情報とともに配信データを転送する。当該配信データを受け取ったキューノード２００はデータ配信先決定装置２０１により、当該トピックを購読しているサブスクライバ４００用の受信データ格納用キュー２０４を確定し、データ配信先振り分け装置２０１によって当該配信データを当該受信データ格納用キュー２０４に格納する。
各サブスクライバ４００は、任意のタイミングで個別に割り当てられた受信データ格納用キュー２０４から購読しているトピックに属するデータを読み出す。
【００２２】
次に、図２を参照して、本実施形態に係る配信登録処理の一例について説明する。例えば、サブスクライバ４００ＡのユーザＡが、トピック１の配信データの購読要求を登録する際の配信登録処理の一例について説明する。図２は、本実施形態に係る配信登録処理の一例を説明するためのシーケンス図である。
【００２３】
（ステップＳＴ１）
サブスクライバ４００が、ネットワーク等を介してキューノード２００に接続する。
（ステップＳＴ２）
キューノード２００は、サブスクライバ４００が接続されると、サブスクライバ４００用の受信データ格納用キュー２０４を作成する。なお、キューノード２００は、サブスクライバ４００に割り当てられた固有の識別情報（例えば、ＩＰアドレスや無線基地局ＩＤ等）を受信することにより、サブスクライバ４００を特定することができる。ここで、キューノード２００のデータ配信先決定装置２０２は、サブスクライバ４００を示す情報と、このサブスクライバ４００用の記憶領域である受信データ格納用キュー２０４を示す情報とをそれぞれ対応づける対応関係情報を作成し、自身の記憶領域に格納する。
【００２４】
（ステップＳＴ３）
そして、サブスクライバ４００のユーザが、購読を希望するトピックを指定する。例えば、このユーザが、サブスクライバ４００の操作部（図示せず）を介して、トピック１の購読を指定する。サブスクライバ４００は、この操作入力に基づき、トピック１の購読を希望することを示す情報をキューノード２００に送信する。
（ステップＳＴ４）
そして、キューノード２００の受信トピック決定装置２０３は、サブスクライバ４００からトピック１の購読を希望することを示す情報を受信すると、トピック１の配信データの配信先にサブスクライバ４００が含まれていることを示す配信先指定情報を作成し、自身の記憶領域（図示せず）に格納する。この配信先指定情報は、サブスクライバ４００によって指定されたトピック１と、サブスクライバ４００用の受信データ格納用キュー２０４とを紐付ける索引情報である。
なお、配信先指定情報（索引情報）の構造は、転置インデックスや木構造などのいずれのものであってもよく、また、サブスクライバ４００用の受信データ格納用キュー２０４は、トピックごとあるいは優先度ごとに複数作成されても構わない。
【００２５】
（ステップＳＴ５）
そして、受信トピック決定装置２０３は、キューノード２００がトピック１の配信データの受信を要求することを示す情報をブローカーノード１００に出力する。つまり、キューノード２００は、受信トピック決定装置２０３を介して、ブローカーノード１００のデータ配信先絞り込み装置１０２に、サブスクライバ４００によって指定されたトピック１の配信データを受け取る旨を通知する。
【００２６】
（ステップＳＴ６）
ブローカーノード１００のデータ配信先絞り込み装置１０２は、各トピックについてどのキューノード２００に当該トピックに属する配信データを配送するかを記録する。例えば、データ配信先絞り込み装置１０２は、配信データのトピックを示す情報と、このトピックの配信データを配信するキューノード２００を示す情報とを対応づけるテーブルである転送先検出情報を作成し、自身の記憶領域（図示せず）に格納する。
また、データ配信先絞り込み装置１０２は、トピックからキューノード２００を特定しなくてはならないが、本発明では厳密な特定を行わず、偽陰性を許容せずかつ偽陽性を許容するフィルタを用いてトピックからキューノード２００を検出する。例えば、キューノード２００ごとに配送するトピックを示す情報を用いて作成したＢｌｏｏｍ ｆｉｌｔｅｒやＣｏｕｎｔｉｎｇ ｆｉｌｔｅｒを用意する。データ配信先絞り込み装置１０２は、パブリッシャ３００から受信する配信データに紐付いているトピックを示す情報を用いて、Ｂｌｏｏｍ ｆｉｌｔｅｒやＣｏｕｎｔｉｎｇ ｆｉｌｔｅｒの積分値に合致するキューノード２００を求めることが考えられる。また、この偽陰性を許容せずかつ偽陽性を許容するフィルタを階層化するなどの工夫をしても構わない。このような構成を採ることで、空間効率や時間効率を改善させることができ、キューノード２００の数が増えても、管理用のメモリ消費を抑えることができる。
【００２７】
次に、図３を参照して、本実施形態に係る配信処理の一例について説明する。例えば、パブリッシャ３００がトピック１の配信データを配信する際の配信処理の一例について説明する。図３は、本実施形態に係る配信処理の一例を説明するためのシーケンス図である。
（ステップＳＴ１１）
パブリッシャ３００が、ネットワーク等を介してブローカーノード１００に接続する。
（ステップＳＴ１２）
次いで、パブリッシャ３００は、配信する配信データをブローカーノード１００に送信する。なお、パブリッシャ３００が送信する配信データには、配信データの属するトピックを示すトピック情報が紐付けられている。例えば、パブリッシャ３００は、トピック１に属する配信データＤ１をブローカーノード１００に送信する。
【００２８】
（ステップＳＴ１３）
ブローカーノード１００は、パブリッシャ３００からトピック１に属する配信データＤ１を受信する。
（ステップＳＴ１４）
そして、ブローカーノード１００はデータ配信先絞り込み装置１０２は、配信先指定情報を参照して、パブリッシャ３００から受信したトピック１に属する配信データＤ１に基づき、トピック１の配信データの転送先として対応付けられているキューノード２００を検出する。
【００２９】
（ステップＳＴ１５）
例えば、トピック１の配信データの転送先として対応付けられているキューノード２００を検出した場合、ブローカーノード１００のデータ配信先絞り込み装置１０２は、検出したキューノード２００に配信データＤ１を転送するようデータ転送装置１０１に指示する。データ転送装置１０１は、データ配信先絞り込み装置１０２によって検出されたキューノード２００に、ブローカーノード１００から受信した配信データＤ１を送信する。なお、データ転送装置１０１は、配信データＤ１とともにトピック情報もキューノード２００に送信する。
【００３０】
（ステップＳＴ１６）
キューノード２００のデータ配信先振り分け装置２０１は、配信データＤ１とトピック情報を受信する。
（ステップＳＴ１７）
次いで、キューノード２００のデータ配信先振り分け装置２０１は、データ配信先決定装置２０２に記憶されている配信先指定情報を参照して、ブローカーノード１００から受信したトピック情報に基づき、キューノード２００が有する受信データ格納用キュー２０４に対応する複数のサブスクライバ４００のうち、トピック１の配信データＤ１の配信先として決められているサブスクライバ４００を検索する。すなわち、データ配信先振り分け装置２０１は、キューノード２００が有する複数の受信データ格納用キュー２０４のうち、トピック１の配信データの配信先として決められているサブスクライバ４００に対応づけられている受信データ格納用キュー２０４を検索する。
【００３１】
（ステップＳＴ１８）
トピック１の配信データＤ１の配信先を検索により得た場合、データ配信先振り分け装置２０１は、検索により得た配信先のサブスクライバ４００に対応する受信データ格納用キュー２０４に、トピック１の配信データＤ１を格納する。
ここで、データ配信先決定装置２０２は、どの受信データ格納用キュー２０４も購読していないデータを受け取った場合、つまり、トピック１の配信データの配信先を検索により得られなかった場合、そのデータの破棄を行う。
これは、ブローカーノード１００のデータ配信先絞り込み装置１０２が偽陽性を許容するため、どの受信データ格納用キュー２０４にも紐付いていないトピックに属する配信データもキューノード２００に配送されることがあるためである。
（ステップＳＴ１９）
そして、各サブスクライバ４００は任意のタイミングで個別に割り当てられた受信データ格納用キュー２０４から、購読しているトピックに属する配信データを読み出す。
【００３２】
上述の通り、本実施形態に係るデータ配信システム１では、キューノード２００中の複数の受信データ格納用キュー２０４が、それぞれ同一のトピックについての配信データを受け取る場合に、ブローカーノード１００は、これら複数の受信データ格納用キュー２０４があるキューノード２００に対して、１つの配信データを送信する。つまり、ブローカーノード１００は、キューノード２００に配信する配信データを複製せずに、ただ１つだけの配信データを送信する。そして、キューノード２００は、必要がある場合に、ブローカーノード１００から受信した配信データを複製し、各サブスクライバ４００に対応する各受信データ格納用キュー２０４に格納する。これにより、データ配信システム１では、各受信データ格納用キュー２０４に格納する配信データの配信をキューノード２００毎に纏め上げることができ、ブローカーノード１００とキューノード２００の間の転送量を削減できるため、性能上のボトルネックを緩和できる。
【００３３】
また、本実施形態に係るデータ配信システム１では、ブローカーノード１００が各サブスクライバ４００に配信データを配信するのではなく、ブローカーノード１００が各キューノード２００に配信データを配信するようにした。これにより、ブローカーノード１００は、配信データを転送するために必要な情報として、配信する配信データのトピックとキューノード２００とを対応付ける情報（転送先検出情報）を記憶領域に格納すれがよい。よって、キューノード２００の数より多数となることが想定されるサブスクライバ４００とトピックとを対応づける情報を記憶することに比べて、トピックと組み合わせの数を少なくさせることができる。
なお、サブスクライバの数が多くなれば、ブローカーが持つトピックと転送先のサブスクライバの組み合わせの表（データテーブル）のデータ量が増大する。このため、トピック数やサブスクライバが増えたときに、ブローカーの消費メモリが増え、拡張性に対するボトルネックになるという問題があった。本発明によれば、ブローカーノード１００が保持しなくてはならないデータ量を削減でき、拡張性に対するボトルネックを解消できる。
【００３４】
なお、本発明はこれに限られず、以下のような処理を実行するものであってもよい。ブローカーノード１００とキューノード２００のそれぞれに含まれる機能構成は同様であるため、同一の符号を付して、詳細な説明は省略する。
各機能構成について簡単に説明すると、ブローカーノード１００のデータ転送装置１０１は、キューノード２００に配信データを転送する。ブローカーノード１００のデータ配信先絞り込み装置１０２は、配信データを送るべきキューノード２００を決定する。
キューノード２００のデータ配信先振り分け装置２０１は、データ配信先決定装置２０２の決定にしたがって配信データを受信データ格納キュー２０４に送信する。キューノード２００のデータ配信先決定装置２０２は、ブローカーノード１００から受信したデータをトピックに基づいてどの受信データ格納キュー２０４に配送するべきかを管理する。キューノード２００の受信トピック決定装置２０３は、当該キューノード２００が受け取るべきトピックを示す情報（つまり、トピックに対応する配信データを配信するキューノード２００を検出するための転送先検出情報）を作成し、ブローカーノード１００に送信する。キューノード２００の受信データ格納キュー２０４は、サブスクライバ４００によって配信データの受信状況が異なっても配信されたデータが正しく配送出来るように設けられる管理機構である。
ブローカーノード１００のデータ配信先絞り込み装置１０２は、キューノード２００によって作成された転送先検出情報を受信し、この転送先検出情報を記憶する。ブローカーノード１００のデータ転送先絞り込み装置１０２は、パブリッシャ３００から配信データを受信した場合、転送先検出情報を参照して、受信した配信データのトピックの配信先として決められているキューノード２００を検出する。データ転送装置１０１は、データ転送先絞り込み装置１０２によってキューノード２００が検出された場合、検出されたキューノード２００に配信データを送信する。
【００３５】
次に、動作フローについて説明する。
サブスクライバ４００がネットワーク等を介してキューノード２００に接続すると、キューノード２００にサブスクライバ４００用の受信データ格納用キュー２０４が作成される。その後、サブスクライバ４００がどのトピックを購読するかをキューノード２００に通知すると、キューノード２００のデータ配信先決定装置２０２に、当該トピックと当該サブスクライバ４００用の受信データ格納用キュー２０４を紐付ける配信先指定情報（索引情報）が作成される。また、ここで当該サブスクライバ４００用の受信データ格納用キュー２０４は、トピックごとや優先度ごとに複数作成されても構わない。
そして、当該トピックの配信データを受け取る旨を、キューノード２００の受信トピック決定装置２０３が、ブローカーノード１００のデータ配信先絞り込み装置１０２に通知する。このとき、キューノード２００は、受け取るトピック情報を送るのではなく、当該キューノード２００が受け取る全てのトピック情報を用いて受信トピック決定装置２０３が転送先検出情報（例えば、Ｂｌｏｏｍ ｆｉｌｔｅｒなど）を作成し、その転送先検出情報をブローカーノード１００のデータ配信先絞り込み装置１０２に通知する。
このようにすることで、ブローカーノード１００が集中的に転送先検出情報の更新を行う必要がなくなり、代わりに必要なだけ追加できるキューノード２００に転送先検出情報の更新処理を任せることができるため、より高い拡張性を期待できる。
【００３６】
ブローカーノード１００のデータ配信先絞り込み装置１０２は、各トピックについてどのキューノード２００に当該トピックに属する配信データを配送するのかを示す転送先検出情報を受信し、自身の記憶領域に記録する。パブリッシャ３００がブローカーノード１００にネットワーク等を介して接続し、トピック情報が紐付いた配信データを送信する。トピック情報が紐付いた配信データを受信したブローカーノード１００のデータ配信先絞り込み装置１０２は、転送先検出情報を参照して、トピック情報に基づき、配信データの転送先であるキューノード２００を検出する。ブローカーノード１００のデータ転送装置１０１は、検出されたキューノード２００に対して、トピック情報とともに配信データを転送する。当該配信データを受け取ったキューノード２００は、データ配信先決定装置２０２により、当該トピックを購読しているサブスクライバ４００用の受信データ格納用キュー２０４を確定し、データ配信先振り分け装置２０１によってブローカーノード１００から受信した当該配信データを当該受信データ格納用キュー２０４に格納する。
各サブスクライバ４００は、任意のタイミングで個別に割り当てられた受信データ格納用キュー２０４から購読しているトピックに属する配信データを読み出す。
【００３７】
［第２実施形態］
次に、図４を参照して、本実施形態に係るデータ配信システム２の構成の一例を示すブロック図である。
図４に示す通り、本実施形態に係るデータ配信システム２は、ブローカーノード１００と、パブリッシャ３００とを備える。また、このデータ配信システム２は、複数のキューノード２００Ａおよびキューノード２００Ｂを備える。さらに、データ配信システム２は、複数のサブスクライバ４００Ａ、サブスクライバ４００Ｂ、サブスクライバ４００Ｃ、およびサブスクライバ４００Ｄを備える。
ブローカーノード１００は、データ転送装置１０１と、データ配信先絞り込み装置１０２とを備える。
キューノード２００Ａは、データ配信先振り分け装置２０１Ａと、データ配信先決定装置２０２Ａと、受信トピック決定装置２０３Ａと、受信データ格納用キュー２０４Ａとを備える。
キューノード２００Ｂは、データ配信先振り分け装置２０１Ｂと、データ配信先決定装置２０２Ｂと、受信トピック決定装置２０３Ｂと、受信データ格納用キュー２０４Ｂとを備える。
なお、各機能構成については、第１実施形態に記載の機能構成と同様の機能を有し、同一の名称を付して、詳細な説明は省略する。
【００３８】
本実施形態において、サブスクライバ４００Ａは、トピック１とトピック２についての配信データの購読（配信）を要求するユーザの端末である。サブスクライバ４００Ｂは、トピック２とトピック３についての配信データの購読（配信）を要求するユーザの端末である。サブスクライバ４００Ｃは、トピック１についての配信データの購読（配信）を要求するユーザの端末である。サブスクライバ４００Ｄは、トピック１とトピック４についての配信データの購読（配信）を要求するユーザの端末である。
【００３９】
例えば、サブスクライバ４００Ａがキューノード２００Ａに接続すると、キューノード２００Ａは、サブスクライバ４００Ａに対応するサブスクライバ４００Ａ用の受信データ格納用キュー２０４Ａａを作成する（割り当てる）。
また、サブスクライバ４００Ｂがキューノード２００Ａに接続すると、キューノード２００Ａは、サブスクライバ４００Ｂに対応するサブスクライバ４００Ｂ用の受信データ格納用キュー２０４Ａｂを作成する（割り当てる）。
さらに、サブスクライバ４００Ｃがキューノード２００Ｂに接続すると、キューノード２００Ｂは、サブスクライバ４００Ｃに対応するサブスクライバ４００Ｃ用の受信データ格納用キュー２０４Ｂｃを作成する（割り当てる）。
また、サブスクライバ４００Ｄがキューノード２００Ｂに接続すると、キューノード２００Ｂは、サブスクライバ４００Ｄに対応するサブスクライバ４００Ｄ用の受信データ格納用キュー２０４Ｂｄを作成する（割り当てる）。
なお、キューノード２００Ａは、サブスクライバ４００Ａ、４００Ｂに対応する受信データ格納用キュー２０４Ａａ、２０４Ａｂを作成した場合、サブスクライバ４００Ａ、４００Ｂと受信データ格納用キュー２０４Ａａ、２０４Ａｂとの対応関係を示す対応関係情報をデータ配信先決定部２０２Ａの記憶領域（図示せず）に格納する。キューノード２００Ａは、サブスクライバ４００Ｃ、４００Ｄに対応する受信データ格納用キュー２０４Ｂｃ、２０４Ｂｄを作成した場合、サブスクライバ４００Ｃ、４００Ｄと受信データ格納用キュー２０４Ｂｃ、２０４Ｂｄとの対応関係を示す対応関係情報をデータ配信先決定部２０２Ｂの記憶領域（図示せず）に格納する。
【００４０】
次に、サブスクライバ４００Ａがトピック１とトピック２を購読することをキューノード２００Ａに通知すると、データ配信先決定装置２０２Ａは、サブスクライバ４００Ａがトピック１とトピック２を購読することを記録する。つまり、キューノード２００Ａは、トピック１の配信データの配信先とトピック２の配信データの配信先に、サブスクライバ４００Ａが含まれていることを示す配信先指定情報を作成し、自身の記憶領域（図示せず）に格納する。そして、キューノード２００Ａの受信トピック決定装置２０３Ａは、キューノード２００Ａがトピック１とトピック２の配信データの受信を要求することを示す情報を、ブローカーノード１００に送信する。
【００４１】
また、サブスクライバ４００Ｂがトピック２とトピック３を購読することをキューノード２００Ａに通知すると、データ配信先決定装置２０２Ａは、サブスクライバ４００Ｂがトピック２とトピック３を購読することを記録する。つまり、キューノード２００Ａは、トピック２の配信データの配信先とトピック３の配信データの配信先に、サブスクライバ４００Ｂが含まれていることを示す配信先指定情報を作成し、自身の記憶領域（図示せず）に格納する。そして、キューノード２００Ａの受信トピック決定装置２０３Ａは、キューノード２００Ａがトピック２とトピック３の配信データの受信を要求することを示す情報を、ブローカーノード１００に送信する。
【００４２】
さらに、サブスクライバ４００Ｃがトピック１を購読することをキューノード２００Ｂに通知すると、データ配信先決定装置２０２Ｂは、サブスクライバ４００Ｃがトピック１を購読することを記録する。つまり、キューノード２００Ｂは、トピック１の配信データの配信先に、サブスクライバ４００Ｃが含まれていることを示す配信先指定情報を、自身の記憶領域（図示せず）に格納する。そして、キューノード２００Ｂの受信トピック決定装置２０３Ｂは、キューノード２００Ｂがトピック１の配信データの受信を要求することを示す情報を、ブローカーノード１００に送信する。
【００４３】
また、サブスクライバ４００Ｄがトピック１とトピック４を購読することをキューノード２００Ｂに通知すると、データ配信先決定装置２０２Ｂは、サブスクライバ４００Ｄがトピック１とトピック４を購読することを記録する。つまり、キューノード２００Ｂは、トピック１の配信データの配信先とトピック４の配信データの配信先に、サブスクライバ４００Ｄが含まれていることを示す配信先指定情報を、自身の記憶領域（図示せず）に格納する。そして、キューノード２００Ｂの受信トピック決定装置２０３Ｂは、キューノード２００Ｂがトピック１とトピック４の配信データの受信を要求することを示す情報を、ブローカーノード１００に送信する。
【００４４】
そして、ブローカーノード１００のデータ配信先絞り込み装置１０２は、キューノード２００Ａおよびキューノード２００Ｂから受信した情報に基づき、転送先検出情報としてＢｌｏｏｍ ｆｉｌｔｅｒを作成する。
例えば、トピック１、トピック２、トピック３、トピック４のそれぞれハッシュ値が、０１０１０１、１００１００、１１００１０、００１００１であるとする。
データ配信先絞り込み装置１０２は、キューノード２００Ａから受信した情報に基づき、キューノード２００Ａ用のＢｌｏｏｍ ｆｉｌｔｅｒ ＦＡを作成する。ここで、ブローカーノード１００は、キューノード２００Ａから、キューノード２００Ａがトピック１〜３の配信データの受信を要求することを示す情報を受信している。よって、データ配信先絞り込み装置１０２は、キューノード２００Ａが受信を要求する全てのトピック１〜３のハッシュ値に基づき、キューノード２００Ａ用のＢｌｏｏｍ ｆｉｌｔｅｒ ＦＡとして、「１１０１１１」を作成する。
【００４５】
また、データ配信先絞り込み装置１０２は、キューノード２００Ｂから受信した情報に基づき、キューノード２００Ｂ用のＢｌｏｏｍ ｆｉｌｔｅｒ ＦＢを作成する。ここで、ブローカーノード１００は、キューノード２００Ｂから、キューノード２００Ｂがトピック１とトピック４の配信データの受信を要求することを示す情報を受信している。よって、データ配信先絞り込み装置１０２は、キューノード２００Ｂが受信を要求する全てのトピック１、４のハッシュ値に基づき、キューノード２００Ｂ用のＢｌｏｏｍ ｆｉｌｔｅｒ ＦＢとして、「０１１１０１」を作成する。
図５は、転送先検出情報であるＢｌｏｏｍ ｆｉｌｔｅｒ ＦＡとＢｌｏｏｍ ｆｉｌｔｅｒ ＦＢの一例を示す図である。図示に示す通り、データ配信先絞り込み装置１０２は、キューノード２００Ａ、２００Ｂが受信を要求する全てのトピックのハッシュ値に基づき、キューノード２００Ａ、２００Ｂ用のＢｌｏｏｍ ｆｉｌｔｅｒ ＦＡあるいはＢｌｏｏｍ ｆｉｌｔｅｒ ＦＢを、それぞれ作成する。
【００４６】
その後、パブリッシャ３００がブローカーノード１００に接続し、トピック３に属する配信データＤ３を送信したとする。ここでブローカーノード１００は、配信データＤ３とあわせて、トピック３を示すトピック情報としてハッシュ値「１１００１０」を受信する。ブローカーノード１００のデータ転送装置１０１は、データ配信先絞り込み装置１０２に記録されている全てのＢｌｏｏｍ ｆｉｌｔｅｒ ＦＡおよびＢｌｏｏｍ ｆｉｌｔｅｒ ＦＢと、トピック情報であるハッシュ値「１１００１０」との照合をそれぞれ行う。
【００４７】
具体的に説明すると、データ転送装置１０１は、パブリッシャ３００から受信したトピック３を示すハッシュ値「１１００１０」と、キューノード２００Ａ用のＢｌｏｏｍ ｆｉｌｔｅｒ ＦＡ「１１０１１１」との論理積を算出する。そして、データ転送装置１０１は、算出した論理積がトピック３のハッシュ値と一致するか否かを判定する。一致すると判定した場合、データ転送装置１０１は、配信データＤ３をキューノード２００Ａに送信する。
ここで、トピック３を示すハッシュ値「１１００１０」と、キューノード２００Ａ用のＢｌｏｏｍ ｆｉｌｔｅｒ ＦＡ「１１０１１１」との論理積は、１１００１０である。つまり、算出した論理積がトピック３のハッシュ値と一致するため、データ転送装置１０１は、配信データＤ３をキューノード２００Ａに送信する。
【００４８】
また、データ転送装置１０１は、パブリッシャ３００から受信したトピック３を示すハッシュ値「１１００１０」と、キューノード２００Ｂ用のＢｌｏｏｍ ｆｉｌｔｅｒ ＦＢ「０１１１０１」との論理積を算出する。トピック３を示すハッシュ値「１１００１０」と、キューノード２００Ｂ用のＢｌｏｏｍ ｆｉｌｔｅｒ ＦＢ「０１１１０１」との論理積は、０１００００である。つまり、算出した論理積がトピック３のハッシュ値と一致しないため、データ転送装置１０１は、配信データＤ３をキューノード２００Ｂに送信しない。
【００４９】
トピック３に属する配信データＤ３を受信したキューノード２００Ａのデータ配信先振り分け装置２０１Ａは、データ配信決定装置２０２Ａにピック３を示すトピック情報（ハッシュ値）を出力する。
データ配信決定装置２０２Ａは、自身の記憶領域（図示せず）に格納されている配信先指定情報を参照して、トピック３の配信データの配信先であるサブスクライバ４００を検索する。ここで、データ配信決定装置２０２Ａには、トピック１の配信データの配信先とトピック２の配信データの配信先にサブスクライバ４００Ａが含まれていることを示す配信先指定情報と、トピック２の配信データの配信先とトピック３の配信データの配信先にサブスクライバ４００Ｂが含まれていることを示す配信先指定情報と、が記憶されている。よって、データ配信先決定装置２０２Ａは、この配信先指定情報を参照して、トピック情報に基づき、サブスクライバ４００Ｂがトピック３の配信データの配信先であると判定する。また、データ配信決定装置２０２Ａは、自身の記憶領域（図示せず）に格納されている対応関係情報を参照して、トピック３の配信データの配信先であると判定されたサブスクライバ４００Ｂに対応付けられている受信データ格納用キュー２０４Ａｂを検出する。
そして、データ配信決定装置２０２Ａは、トピック３の配信データの配信先であると判定されたサブスクライバ４００Ｂに対応付けられている受信データ格納用キュー２０４Ａｂを示す情報をデータ配信先振り分け装置２０１Ａに出力する。このデータ配信振り分け装置２０１Ａは、データ配信決定装置２０２Ａから入力する情報に基づき、サブスクライバ４００Ｂと対応付けられている受信データ格納用キュー２０４Ａｂに、トピック３の配信データＤ３を格納する。
サブスクライバ４００Ｂは任意のタイミングで受信データ格納用キュー２０４Ａｂから配信データＤ３を読み出す。
【００５０】
トピック３に属する配信データＤ３を受信したキューノード２００Ｂのデータ配信先振り分け装置２０１Ｂは、データ配信決定装置２０２Ｂにピック３を示すトピック情報（ハッシュ値）を出力する。
データ配信決定装置２０２Ｂは、自身の記憶領域（図示せず）に格納されている配信先指定情報を参照して、トピック３の配信データの配信先であるサブスクライバ４００を検索する。ここで、データ配信決定装置２０２Ｂには、トピック１の配信データの配信先にサブスクライバ４００Ｃが含まれていることを示す配信先指定情報と、トピック１の配信データの配信先とトピック４の配信データの配信先にサブスクライバ４００Ｄが含まれていることを示す配信先指定情報と、が記憶されている。よって、データ配信先決定装置２０２Ｂは、この配信先指定情報を参照して、トピック情報に基づき、トピック３の配信データの配信先がないと判定する。言い換えると、データ配信先決定装置２０２Ｂは、トピック３の配信データの配信先として、いずれもサブスクライバ４００も検索により得ることができない。データ配信先決定装置２０２Ｂは、この判定結果をデータ配信先振り分け装置２０１Ｂに出力する。データ配信先振り分け装置２０１Ｂは、この判定結果を示す情報を入力し、トピック３の配信データＤ３を破棄する。
【００５１】
また、本実施の形態に係るブローカーノード１００およびキューノード２００は、内部にコンピュータシステムを有している。そして、動作の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータシステムが読み出して実行することによって、上記処理が行われる。ここでいう「コンピュータシステム」とは、ＣＰＵ及び各種メモリやＯＳ、周辺機器等のハードウェアを含むものである。
また、「コンピュータシステム」は、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。
【００５２】
また、各ステップを実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、また、この機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより、検出対象物の形状情報の推定値を算出する処理を行ってもよい。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、フラッシュメモリ等の書き込み可能な不揮発性メモリ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
【００５３】
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（例えばＤＲＡＭ（Ｄｙｎａｍｉｃ Ｒａｎｄｏｍ Ａｃｃｅｓｓ Ｍｅｍｏｒｙ））のように、一定時間プログラムを保持しているものも含むものとする。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムに既に記録されているプログラムとの組合せで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【００５４】
なお、本発明の実施の形態の基本的な構成を図示すると図６に示すようなものとなる。すなわち、本発明の一実施形態に係るデータ配信システム１は、配信元通信機器（パブリッシャ３００）から配信データを受信するブローカーノード１００と、ブローカーノード１００から受信した配信データを配信先通信機器（サブスクライバ４００）に送信するキューノード２００とを備えるデータ配信システムである。このデータ配信システム１において、ブローカーノード１００は、指定された種類の配信データの転送先として予め決められているキューノード２００を検出するための転送先検出情報を用いて、配信元通信機器から受信した配信データに基づき、受信した配信データの種類の転送先として予め決められているキューノード２００を検出するデータ転送先絞り込み装置１０２と、データ転送先絞り込み装置１０２によって検出されたキューノード２００に配信データを送信するデータ転送装置１０１とを備える。また、このデータ配信システム１において、キューノード２００は、配信先通信機器に配信するための配信データを格納する記憶領域（受信データ格納用キュー２０４）を配信先通信機器毎に備える記憶装置と、配信先通信機器から指定された配信データの種類を示す配信先指定情報を参照して、ブローカーノード１００から受信した配信データのうち、配信先通信機器から指定された種類の配信データを検索するデータ配信先決定装置２０２と、検索により得られた配信データを、対応する配信先通信機器の記憶領域（受信データ格納用キュー２０４）に格納するデータ配信先振り分け装置２０１と、を備える。
【符号の説明】
【００５５】
１００…ブローカーノード
１０１…データ転送装置
１０２…データ転送先絞り込み装置
２００…キューノード
２０１…データ配信先振り分け装置
２０２…データ配信先決定装置
２０３…受信トピック決定装置
２０４…受信データ格納用キュー
３００…パブリッシャ
４００…サブスクライバ
【図１】
2014038483.tif 000003
【図２】
2014038483.tif 000004
【図３】
2014038483.tif 000005
【図４】
2014038483.tif 000006
【図５】
2014038483.tif 000007
【図６】
2014038483.tif 000008