(57)【要約】【課題】データ収集において、データの送信要求の送信先となるデバイスの数を削減させる。【解決手段】所定のデータを取得する複数の受信側装置と、当該所定のデータを収集する送信側装置と、メッセージ配信制御装置と、を備えるデータ収集システムである。メッセージ配信制御装置は、複数の論理チャネルそれぞれについて、複数の受信側装置のうち、メッセージの配信依頼を登録している受信側装置に関する情報を記憶する記憶部と、送信側装置から、複数の論理チャネルのうちの第１の論理チャネルを指定し、所定のデータの送信を要求するメッセージを受信する受信部と、第１の論理チャネルについて配信依頼を登録している受信側装置から所定数の受信側装置を抽出し、所定数の受信側装置に送信側装置から受信されたメッセージを送信する送信部と、を備える。【選択図】図２
2019159908.tif 000002
【特許請求の範囲】
【請求項１】
所定のデータを取得する複数の受信側装置と、前記所定のデータを収集する送信側装置と、メッセージ配信制御装置と、を備えるデータ収集システムであって、
前記メッセージ配信制御装置は、
複数の論理チャネルそれぞれについて、前記複数の受信側装置のうち、メッセージの配信依頼を登録している受信側装置に関する情報を記憶する記憶部と、
前記送信側装置から、前記複数の論理チャネルのうちの第１の論理チャネルを指定し、前記所定のデータの送信を要求するメッセージを受信する受信部と、
前記第１の論理チャネルについて前記配信依頼を登録している受信側装置から所定数の受信側装置を抽出し、前記所定数の受信側装置に前記送信側装置から受信された前記メッセージを送信する送信部と、
を備える、
データ収集システム。
【請求項２】
前記受信部は、前記送信側装置から、前記メッセージとともに、前記所定のデータの受信に関する条件情報を受信し、
前記送信部は、前記条件情報に基づいて、前記所定数の受信側装置を抽出する、
請求項１に記載のデータ収集システム。
【請求項３】
前記メッセージ配信制御装置は、前記送信側装置について、前記所定のデータの受信に関する条件情報を記憶する第２の記憶部をさらに備え、
前記送信部は、前記条件情報に基づいて、前記所定数の受信側装置を抽出する、
請求項１に記載のデータ収集システム。
【請求項４】
前記条件情報は、所定の単位時間長と、前記所定の単位時間当たりに前記送信側装置が所望する前記所定のデータの数と、
を含む請求項２又は３に記載のデータ収集システム。
【請求項５】
前記送信部は、前記条件情報に基づいて、前記所定の単位時間ごとに、前記第１の論理チャネルについて配信依頼を登録している受信側装置から前記所定のデータの数の受信側装置を抽出し、抽出した前記所定のデータの数の受信側装置に前記受信されたメッセージを送信する、
請求項４に記載のデータ収集システム。
【請求項６】
所定のデータを取得する複数の受信側装置と、前記所定のデータを収集する送信側装置と、メッセージ配信制御装置と、を備えるデータ収集システムにおいて、
前記メッセージ配信制御装置が、
複数の論理チャネルそれぞれについて、前記複数の受信側装置のうち、メッセージの配信依頼を登録している受信側装置に関する情報を記憶部に記憶し、
前記送信側装置から、前記複数の論理チャネルのうちの第１の論理チャネルを指定し、前記所定のデータの送信を要求するメッセージを受信し、
前記第１の論理チャネルについて前記配信依頼を登録している受信側装置から所定数の受信側装置を抽出し、前記所定数の受信側装置に前記送信側装置から受信された前記メッセージを送信する、
データ収集方法。
【請求項７】
複数の論理チャネルそれぞれについて、所定のデータを取得する複数の受信側装置のうち、メッセージの配信依頼を登録している受信側装置に関する情報を記憶する記憶部と、
所定のデータを収集する送信側装置から、前記複数の論理チャネルのうちの第１の論理
チャネルを指定し、前記所定のデータの送信を要求するメッセージを受信する受信部と、
前記第１の論理チャネルについて前記配信依頼を登録している受信側装置から所定数の受信側装置を抽出し、前記所定数の受信側装置に前記送信側装置から受信された前記メッセージを送信する送信部と、
を備えるメッセージ配信制御装置。
【請求項８】
複数の論理チャネルそれぞれについて、所定のデータを取得する複数の受信側装置のうち、メッセージの配信依頼を登録している受信側装置に関する情報を記憶部に記憶し、
所定のデータを収集する送信側装置から、前記複数の論理チャネルのうちの第１の論理チャネルを指定し、前記所定のデータの送信を要求するメッセージを受信し、
前記第１の論理チャネルについて前記配信依頼を登録している受信側装置から所定数の受信側装置を抽出し、前記所定数の受信側装置に前記送信側装置から受信された前記メッセージを送信する、
メッセージ配信制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ収集システム、データ収集方法、メッセージ配信制御装置、及び、メッセージ配信制御方法に関する。
【背景技術】
【０００２】
パブリッシュ／サブスクライブ型モデルのデータ配信システムを利用したデータの収集が行われている。パブリッシュ／サブスクライブ型モデルのデータ配信システムでは、サブスクライバはトピックに登録し、当該トピックにパブリッシャからメッセージが送信されると、当該トピックに登録する全てのサブスクライバにメッセージが配信される。
【０００３】
データ収集にパブリッシュ／サブスクライブ型モデルが利用される場合には、例えば、パブリッシャはデータ収集を行うサーバ、サブスクライバはデータを取得するセンサ等のデバイスである。また、この場合には、例えば、トピックはデータの種別ごとに用意される。また、この場合には、例えば、パブリッシャ（サーバ）からトピックに送信されるメッセージはデータの送信要求である。この場合、サーバ（パブリッシャ）から１つのトピック宛てにデータの送信要求（メッセージ）を送信すると、当該トピックに登録する全てのデバイス（サブスクライバ）にデータの送信要求（メッセージ）が送信される。データの送信要求を受信したデバイスは、サーバにデータを送信する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−１２４９７７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、データ収集の目的によっては、トピックに登録されているデバイス数よりもサンプル数が少なくてよい場合もあるものの、上述のようなパブリッシュ／サブスクライブ型モデルを利用するデータ収集では、トピックに登録している全デバイスからサーバにデータが送られることになる。
【０００６】
本発明は、データ収集において、データの送信要求の送信先となるデバイスの数を削減可能なデータ収集システム、データ収集方法、メッセージ配信制御装置、及び、メッセージ配信制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の態様の一つは、所定のデータを取得する複数の受信側装置と、当該所定のデータを収集する送信側装置と、メッセージ配信制御装置と、を備えるデータ収集システムである。メッセージ配信制御装置は、複数の論理チャネルそれぞれについて、複数の受信側装置のうち、メッセージの配信依頼を登録している受信側装置に関する情報を記憶する記憶部と、送信側装置から、複数の論理チャネルのうちの第１の論理チャネルを指定し、所定のデータの送信を要求するメッセージを受信する受信部と、第１の論理チャネルについて配信依頼を登録している受信側装置から所定数の受信側装置を抽出し、所定数の受信側装置に送信側装置から受信されたメッセージを送信する送信部と、を備える。
【０００８】
本発明によれば、第１の論理チャネルに配信依頼が登録されている受信側装置から抽出された所定数の受信側装置に、所定のデータの送信を要求するメッセージが送信されるの
で、送信側装置には多くとも所定数の所定のデータが届くことになる。これによって、送信側装置に収集されるデータの数を削減させることができる。
【０００９】
また、本発明の態様の一つでは、メッセージ配信制御装置の受信部は、送信側装置から、メッセージとともに、所定のデータの受信に関する条件情報を受信し、メッセージ配信制御装置の送信部は、当該条件情報に基づいて、所定数の受信側装置を抽出するようにしてもよい。または、本発明の態様の一つでは、メッセージ配信制御装置は、送信側装置について、所定のデータの受信に関する条件情報を記憶する第２の記憶部をさらに備え、メッセージ配信制御装置の送信部は、当該条件情報に基づいて、所定数の受信側装置を抽出するようにしてもよい。これによって、送信側装置は、条件情報に従って抽出された受信側装置から、所定のデータを収集することができる。
【００１０】
また、本発明の態様の一つでは、条件情報は、所定の単位時間長と、所定の単位時間当たりに送信側装置が所望する所定のデータの数と、を含むようにしてもよい。これによって、所定の単位時間ごとに、抽出された受信側装置へ所定のデータの送信を要求するメッセージが送信されるので、送信側装置は、所定の単位時間ごとの所定のデータを収集することができ、収集データを時間的に分散させることができる。
【００１１】
また、条件情報は、所定の単位時間長と、所定の単位時間当たりに送信側装置が所望する所定のデータの数と、を含む場合に、メッセージ配信制御装置の送信部は、所定の単位時間ごとに、第１の論理チャネルに配信依頼が登録されている受信側装置から所定のデータの数の受信側装置を抽出し、抽出した所定のデータの数の受信側装置にメッセージを送信するようにしてもよい。これによって、所定の単位時間ごとに、メッセージの送信先となる受信側装置が抽出し直されるので、送信側装置は、所定の単位時間ごとに異なる受信側装置群から所定のデータを収集することができ、収集データを時間的及び空間的に分散させることができる。
【００１２】
また、本発明を、データ収集方法の側面から捉えることもできる。当該データ収集方法では、所定のデータを取得する複数の受信側装置と、当該所定のデータを収集する送信側装置と、メッセージ配信制御装置と、を備えるデータ収集システムにおいて、メッセージ配信制御装置が、複数の論理チャネルそれぞれについて、複数の受信側装置のうち、メッセージの配信依頼を登録している受信側装置に関する情報を記憶部に記憶し、送信側装置から、複数の論理チャネルのうちの第１の論理チャネルを指定し、所定のデータの送信を要求するメッセージを受信し、第１の論理チャネルについて配信依頼を登録している受信側装置から所定数の受信側装置を抽出し、所定数の受信側装置に送信側装置から受信されたメッセージを送信する。なお、上述までのデータ収集システムに関して開示された技術的思想は、技術的な齟齬が生じない範囲で当該データ収集方法にも適用できる。
【発明の効果】
【００１３】
本発明によれば、データ収集において、データ送信要求の送信先となるデバイスの数を削減させることができる。
【図面の簡単な説明】
【００１４】
【図１】図１は、パブリッシュ／サブスクライブ型モデルのメッセージ配信システムの一例を示す図である。
【図２】図２は、パブリッシュ／サブスクライブ型モデルのメッセージ配信システムを採用したデータ収集システムのシステム構成の一例を示す図である。
【図３】図３は、ブローカのハードウェア構成の一例を示す図である。
【図４】図４は、第１実施形態に係るブローカの機能構成の一例を示す図である。
【図５】図５は、サブスクライバ管理情報テーブルの一例である。
【図６】図６は、パブリッシャの機能構成の一例を示す図である。
【図７】図７は、ブローカのパブリッシュメッセージ送信部の処理のフローチャートの一例である。
【発明を実施するための形態】
【００１５】
以下、図面に基づいて、本発明の実施の形態を説明する。以下の実施形態の構成は例示であり、本発明は実施形態の構成に限定されない。
【００１６】
＜第１実施形態＞
＜パブリッシュ／サブスクライブ型モデルのメッセージ配信システム＞
図１は、パブリッシュ／サブスクライブ型モデルのメッセージ配信システム１の一例を示す図である。メッセージ配信システム１は、トピックにメッセージを送信するパブリッシャ、登録しているトピックからメッセージを受信するサブスクライバ、トピックを管理するブローカを含む。トピックは、ブローカとして動作する装置上において、例えば、論理チャネルとして扱われる。トピックは、「論理チャネル」の一例である。
【００１７】
サブスクライバは、興味のあるトピックについて、メッセージの配信依頼を登録する（図１中破線矢印）。図１に示される例では、サブスクライバＡはトピックＡに配信依頼を登録している。サブスクライバＢは、トピックＡとトピックＢとに配信依頼を登録している。サブスクライバＣは、トピックＢに配信依頼を登録している。ブローカは、各トピックについて登録しているサブスクライバの情報を保持する。
【００１８】
ブローカは、パブリッシャから送信されるメッセージをフィルタリングする。すなわち、ブローカは、各パブリッシャから受信したメッセージのうち、例えば、サブスクライバＡには、サブスクライバＡが登録しているトピックに該当するメッセージを選択してサブスクライバＡに送信する。言い換えると、ブローカは、パブリッシャからトピック宛てに受信したメッセージを、当該トピックに登録しているサブスクライバに送信する。メッセージの宛先のトピックは、「第１の論理チャネル」の一例である。
【００１９】
図１に示される例において、パブリッシャ＃１がトピックＡ宛てにメッセージを送信すると、サブスクライバＡとサブスクライバＢとに当該メッセージが送信される（図中実線矢印）。パブリッシャ＃２がトピックＢ宛てにメッセージを送信すると、サブスクライバＢとサブスクライバＣとに当該メッセージが送信される（図中実線矢印）。
【００２０】
上述のパブリッシャ、ブローカの動作は、従来のパブリッシュ／サブスクライブ型モデルのメッセージ配信システムにおける動作である。第１実施形態において、パブリッシャは、メッセージとともに、当該メッセージの配信に係る条件情報を送信する。
【００２１】
また、第１実施形態において、ブローカは、条件情報に従って、サブスクライバへのメッセージの送信処理を行う。より具体的には、ブローカは、条件情報に従って、メッセージの宛先のトピックに登録しているサブスクライバの中から、所定数のサブスクライバを抽出し、抽出したサブスクライバへメッセージを送信する。これによって、１つのトピックについて、メッセージを受信するサブスクライバの数を当該トピックに登録しているサブスクライバの数よりも少なくすることができる。
【００２２】
図２は、メッセージ配信システム１を採用するデータ収集システム１Ａのシステム構成の一例を示す図である。データ収集システム１Ａは、ブローカとして動作するサーバ１００、パブリッシャとして動作するサーバ２００、サブスクライバとして動作する複数のデバイス３００を含む。以降、ブローカとして動作するサーバ１００を、ブローカ１００と称する。パブリッシャとして動作するサーバ２００を、パブリッシャ２００と称する。サ
ブスクライバとして動作する複数のデバイス３００を、サブスクライバ３００と称する。データ収集システム１Ａは、「データ収集システム」の一例である。ブローカ１００は、「メッセージ配信制御装置」の一例である。パブリッシャ２００は、「送信側装置」の一例である。サブスクライバ３００は、「受信側装置」の一例である。
【００２３】
サブスクライバ３００は、例えば、各種センサを備えるＩｏＴ（Internet of Things）デバイスである。センサは、例えば、位置情報を取得するＧＰＳ（Global Positioning System）受信機、ジャイロセンサ、温度センサ、湿度センサ、磁気センサ、照度センサ等
がある。より具体的には、デバイス３００は、車両、センサデバイス、スマートフォン、家電製品等である。ブローカ１００は、例えば、サーバの他に、ルータ等の中継装置であってもよい。
【００２４】
データ収集システム１Ａでは、パブリッシャ２００は、メッセージとして、デバイス３００がセンサにより取得したセンサデータの送信要求を送信する。また、トピックは、センサデータの種類ごとに用意されている。パブリッシャ２００は、メッセージとともに、例えば、トピックの識別情報と、条件情報とを送信する。メッセージは、指定された識別情報のトピック宛てのものとして処理される。以降、パブリッシュメッセージとともに送信される識別情報のトピックを、メッセージの宛先のトピック、指定されたトピック、メッセージの対象のトピック、等と称することがある。センサデータは、「所定のデータ」の一例である。センサデータの送信要求は、「所定のデータの送信要求」の一例である。条件情報は、「条件情報」の一例である。
【００２５】
ブローカ１００は、パブリッシャ２００から、例えば、メッセージ、トピックの識別情報、条件情報を受信すると、条件情報にしたがって、指定されたトピックに登録しているサブスクライバ３００から所定数のサブスクライバ３００を抽出する。ブローカ１００は、所定数のサブスクライバ３００に、パブリッシャ２００から受信したメッセージを送信する。
【００２６】
図１に示されるメッセージ配信システム１において条件情報は、パブリッシャ２００がリクエストする、メッセージの配信に係る条件を示す情報である。図２に示されるメッセージ配信システム１を採用するデータ収集システム１Ａにおいては、パブリッシャメッセージは、センサデータの送信要求である。そのため、データ収集システム１Ａからの観点では、条件情報は、パブリッシャ２００がリクエストする、センサデータの受信に関する条件を示す情報として捉えられる。
【００２７】
例えば、第１実施形態では、パブリッシャ２００のセンサデータの受信に関する条件は、単位時間当たりに取得したい最大センサデータ数である。したがって、第１実施形態では、条件情報には、単位時間長と、単位時間当たりに受信する最大データ数ｎとが含まれる。ただし、パブリッシャ２００のセンサデータの受信に関する条件、及び条件情報は、これに限定されない。
【００２８】
なお、条件情報を、パブリッシャ２００からリクエストされる、メッセージの配信に係る条件を示す情報として捉える場合には、単位時間長と、単位時間当たりに受信する最大データ数ｎとを含む条件情報は、パブリッシャ２００から、当該単位時間当たりにｎ台のサブスクライバ３００にメッセージを送信することをリクエストされていることとなる。なお、センサデータの送信要求を受信したサブスクライバ３００が必ずセンサデータを取得するとは限らないので、ｎ台のサブスクライバ３００にセンサデータの送信要求が送信された場合には、最大でｎ個のセンサデータがパブリッシャ２００に収集されることになる。
【００２９】
したがって、第１実施形態では、ブローカ１００は、パブリッシャ２００から、メッセージ、トピックの識別情報、条件情報を受信すると、指定されたトピックに登録しているｍ台（ｎ≦ｍ）のサブスクライバ３００からｎ台のサブスクライバ３００を抽出する。ブローカ１００は、抽出したｎ台のサブスクライバ３００に、パブリッシャ２００から受信したメッセージを送信する。ブローカ１００は、例えば、条件情報をメモリに記憶し、以降、指定された単位時間の周期で、指定されたトピックに登録されているｍ台のサブスクライバ３００からｎ台のサブスクライバ３００を抽出し、メッセージを送信する処理を繰り返し行う。
【００３０】
このように、ブローカ１００が、条件情報に従って、所定の単位時間ごとにｎ台のサブスクライバ３００を抽出し、抽出したサブスクライバ３００に、パブリッシャ２００へのセンサデータの送信要求を送信することによって、パブリッシャ２００に収集されるセンサデータを時間的及び空間的に分散させることができる。時間的及び空間的に分散されたデータは、統計等に用いる場合に有効である。統計では、偏ったデータでは正確な結果が得られなくなることがあるからである。
【００３１】
なお、収集されるセンサデータの時間的な分散とは、所定の単位時間ごとにデータの収集が行われることである。収集されるセンサデータの空間的な分散とは、データの収集が行われるごとに、対象のトピックに登録されているサブスクライバ３００からｎ台のサブスクライバ３００が選び直されることである。
【００３２】
図３は、ブローカ１００のハードウェア構成の一例を示す図である。ブローカ１００は、ＣＰＵ  １０１、メモリ１０２、インタフェース１０３、外部記憶装置１０４、および通信部１０５を有する。ＣＰＵ  １０１は、メモリ１０２に実行可能に展開されたコンピュータプログラムを実行し、ブローカ１００としての処理を実行する。メモリ１０２は、ＣＰＵ  １０１が実行するコンピュータプログラム、ＣＰＵ  １０１が処理するデータ等を格納する。メモリ１０２は、例えば、Dynamic Random Access Memory（ＤＲＡＭ）、Static Random Access Memory（ＳＲＡＭ）、Read Only Memory（ＲＯＭ）等である。
【００３３】
インタフェース１０３には、外部記憶装置１０４と通信部１０５とが接続されている。外部記憶装置１０４は、不揮発性の記憶装置であり、例えば、ハードディスクドライブ、Solid State Drive（ＳＳＤ）等である。通信部１０５は、例えば、ＬＡＮを通じてイン
ターネット等の公衆通信回線網に接続し、公衆通信回線網を通じて、ネットワーク上の各種サーバ、デバイス３００と通信する。
【００３４】
図３では、インタフェース１０３が例示されているが、ＣＰＵ  １０１と制御対象との間の信号の授受がインタフェース１０３に限定される訳ではない。すなわち、ＣＰＵ  １０１は、インタフェース１０３以外の複数の信号授受経路を有してもよい。また、図３では、ブローカ１００は、単一のＣＰＵ  １０１を有している。ただし、ＣＰＵは、単一のプロセッサに限定される訳ではなく、マルチプロセッサ構成であってもよい。また、単一のソケットで接続される単一のＣＰＵがマルチコア構成を有していても良い。後述の図４に示されるブローカ１００の機能構成要素の少なくとも一部の処理は、ＣＰＵ以外のプロセッサ、例えば、Digital Signal Processor（ＤＳＰ）、Graphics Processing Unit（ＧＰＵ）等の専用プロセッサで行われても良い。また、後述の図４に示されるブローカ１００の機能構成要素の少なくとも一部の処理は、集積回路（ＩＣ）、その他のディジタル回路であっても良い。また、後述の図４に示されるブローカ１００の機能構成要素の少なくとも一部にアナログ回路が含まれても良い。
【００３５】
パブリッシャ２００のハードウェア構成は、ブローカ１００とほぼ同様であるため、図示は省略される。パブリッシャ２００は、ハードウェア構成として、ＣＰＵ、メモリ、外
部記憶装置、および通信部を有しており、ＣＰＵが、メモリに実行可能に展開されたコンピュータプログラムを実行し、パブリッシャ２００としての処理を実行する。
【００３６】
図４は、第１実施形態に係るブローカ１００の機能構成の一例を示す図である。ブローカ１００は、例えば、メモリ１０２上のコンピュータプログラムにより、図４に例示される各部として動作する。すなわち、ブローカ１００は、機能構成要素として、サブスクライブ要求受信部１１、サブスクライバ管理部１２、パブリッシュメッセージ受信部１３、パブリッシュメッセージ送信部１４を備える。
【００３７】
サブスクライブ要求受信部１１は、サブスクライバ３００から送信されるサブスクライブ要求を受信する。サブスクライブ要求は、トピックへの配信依頼の登録要求である。サブスクライブ要求とともに、例えば、サブスクライバ３００の識別情報と、当該サブスクライバ３００が登録を希望するトピックの識別情報も受信される。サブスクライブ要求受信部１１は、後述のサブスクライバ管理部１２に保持されるサブスクライバ管理情報テーブルに、受信したサブスクライバ３００の識別情報と、当該サブスクライバ３００が登録を希望するトピックの識別情報と、を登録する。
【００３８】
サブスクライバ管理部１２は、外部記憶装置１０４内に作成され、各トピックに登録されているサブスクライバ３００の情報を含むサブスクライバ管理情報テーブルを格納している。サブスクライバ管理情報テーブルの詳細は後述される。サブスクライバ管理部１２は、「記憶部」の一例である。
【００３９】
パブリッシュメッセージ受信部１３は、パブリッシャ２００から送信されるパブリッシュメッセージを受信する。第１実施形態では、パブリッシャ２００から送信されるパブリッシュメッセージは、センサデータの送信要求である。パブリッシュメッセージとともに、例えば、トピックの識別情報、条件情報も受信される。パブリッシュメッセージ受信部１３は、受信したパブリッシュメッセージ、トピックの識別情報、条件情報をパブリッシュメッセージ送信部１４に出力する。パブリッシュメッセージ受信部１３は、「受信部」の一例である。
【００４０】
パブリッシュメッセージ送信部１４は、パブリッシュメッセージ受信部１３からパブリッシュメッセージ、トピックの識別情報、条件情報が入力されると、当該トピックに登録されているサブスクライバ３００をサブスクライバ管理部１２から抽出する。パブリッシュメッセージ送信部１４は、当該トピックに登録されているサブスクライバ３００から、条件情報に従って所定数のサブスクライバ３００をさらに抽出する。パブリッシュメッセージ送信部１４は、抽出された所定数のサブスクライバ３００に、パブリッシャ２００から受信したパブリッシュメッセージを送信する。パブリッシュメッセージ送信部１４は、「送信部」の一例である。
【００４１】
第１実施形態では、条件情報は、単位時間と、当該単位時間当たりにパブリッシャ２００が受信したい最大データ数ｎである。このような条件情報は、単位時間ごとに最大データ数ｎに相当する数のサブスクライバ３００へパブリッシュメッセージを継続的に送信する指示である。したがって、パブリッシュメッセージ送信部１４は、メモリ１０２に、パブリッシュメッセージ受信部１３から受信されたパブリッシュメッセージ、トピックの識別情報、条件情報を保持し、以降、単位時間ごとに、上述のようなサブスクライバ３００へのパブリッシュメッセージの送信を繰り返し行う。その後、例えば、パブリッシャ２００から再び同じトピックについて、パブリッシュメッセージが受信された場合には、メモリ１０２に保存されているパブリッシュメッセージ、トピックの識別情報、条件情報が上書き更新される。ただし、パブリッシュメッセージとともに条件情報が受信されない場合や、条件情報が単発的なパブリッシュメッセージの送信を示す場合もあり、これらの場合
には、例えば、メモリ１０２に保存されているパブリッシュメッセージ、トピックの識別情報、条件情報は、削除される。パブリッシュメッセージ、トピックの識別情報、条件情報を保存するメモリ１０２は、「第２の記憶部」の一例である。
【００４２】
指定されたトピックに登録されているサブスクライバ３００から所定数のサブスクライバ３００を抽出する方法は、無作為であれば、所定の方法に限定されない。例えば、トピックに登録されているサブスクライバ３００から所定数のサブスクライバ３００を抽出する方法には、ランダム方式、ラウンドロビン方式、前回の選択とは重複しないように抽出する方式、サブスクライバ３００の位置によって分散するように抽出する方式等がある。
【００４３】
図５は、サブスクライバ管理情報テーブルの一例である。サブスクライバ管理情報テーブルは、ブローカ１００のサブスクライバ管理部１２に格納されている。サブスクライバ管理情報テーブルは、トピックＩＤ、サブスクライバＩＤのフィールドを有する。
【００４４】
トピックＩＤフィールドには、トピックの識別情報が入力される。トピックは、例えば、データ種別とデータ収集条件とによって定義される。トピックを定義するこれらの情報を、トピック定義と称する。トピック定義は、例えば、データ収集システム１Ａの運営者によって設定され、図示されていないテーブルに保持されている。データ種別は、例えば、センサデータの種別（位置情報、温度等）、カメラ撮像画像又は映像等である。データ収集条件は、データ収集の対象となるデバイス３００に関する条件である。データ収集条件は、例えば、データ収集の対象となる、地域、デバイス３００の種類、データの種類等である。また、トピック定義のデータ種別がデバイス３００に搭載されたカメラの撮像画像又は映像である場合には、トピック定義のデータ収集条件を、所定のナンバープレート番号が含まれる撮像画像又は映像とすることができる。
【００４５】
なお、パブリッシャ２００及びサブスクライバ３００も、ブローカ１００と同様のトピック定義をそれぞれ保持している。パブリッシャ２００、サブスクライバ３００は、それぞれ、例えば、ブローカ１００や図示されていないシステムサーバに所定の周期でアクセスして、最新のトピック定義をダウンロードすることで動的にローカルのトピック定義を更新する。例えば、サブスクライバ３００はトピック定義を参照し、トピック定義が自装置に合致するトピックについて、サブスクライブ要求をブローカ１００に送信する。
【００４６】
サブスクライバＩＤフィールドには、対応するトピックＩＤフィールドのトピックにメッセージの配信依頼を登録しているサブスクライバの識別情報が入力される。
【００４７】
図６は、パブリッシャ２００の機能構成の一例を示す図である。パブリッシャ２００は、メモリ上のコンピュータプログラムにより、図６に例示される各部として動作する。すなわち、パブリッシャ２００は、機能構成要素として、トピック設定部２１、メッセージ生成部２２、パブリッシュメッセージ送信部２３を備える。
【００４８】
トピック設定部２１は、メッセージ生成部２２に対して、パブリッシャ２００が送信するパブリッシュメッセージとともに識別情報が送信されるトピックを設定する。メッセージ生成部２２は、パブリッシュメッセージ、条件情報、を生成し、これらを、トピック設定部２１によって設定されたトピックの識別情報とともに、パブリッシュメッセージ送信部２３に出力する。第１実施形態では、パブリッシュメッセージは、データの送信要求である。条件情報は、単位時間と、単位時間当たりに受信を希望する最大データ数ｎである。パブリッシュメッセージ送信部２３は、メッセージ生成部２２から入力されたパブリッシュメッセージ、条件情報、トピックの識別情報をブローカ１００に送信する。
【００４９】
パブリッシュメッセージの宛先となるトピックの設定は、例えば、パブリッシャ２００
の管理者からの入力によって行われる。また、パブリッシュメッセージの生成は、例えば、パブリッシャ２００の管理者からの入力を契機に行われてもよいし、予め設定されたタイミングの到来を契機に行われてもよい。
【００５０】
＜処理の流れ＞
図７は、ブローカ１００のパブリッシュメッセージ送信部１４の処理のフローチャートの一例である。図７に示される処理は、例えば、所定の周期で繰り返し実行される。図７に示される処理の実行主体は、ブローカ１００のＣＰＵ  １０１であるが、便宜上、機能構成要素であるパブリッシュメッセージ送信部１４を主体として説明される。
【００５１】
Ｓ１０１では、パブリッシュメッセージ送信部１４は、パブリッシュメッセージが受信されたか否かを判定する。パブリッシュメッセージとともに、トピックの識別情報、条件情報も受信される。パブリッシュメッセージが受信された場合には（Ｓ１０１：ＹＥＳ）、処理がＳ１０２に進む。パブリッシュメッセージが受信されていない場合には（Ｓ１０１：ＮＯ）、図７に示される処理が終了する。
【００５２】
Ｓ１０２では、パブリッシュメッセージ送信部１４は、受信したパブリッシュメッセージによって指定されるトピックと同じトピックについてのパブリッシュメッセージ等がメモリ１０２に保存されているか否かを判定する。受信したパブリッシュメッセージによって指定されるトピックと同じトピックについてのパブリッシュメッセージ等がメモリ１０２に保存されている場合には（Ｓ１０２：ＹＥＳ）、処理がＳ１０３に進む。受信したパブリッシュメッセージによって指定されるトピックと同じトピックについてのパブリッシュメッセージ等がメモリ１０２に保存されていない場合には（Ｓ１０２：ＮＯ）、処理がＳ１０４に進む。
【００５３】
Ｓ１０３では、パブリッシュメッセージ送信部１４は、メモリ１０２内の当該パブリッシュメッセージ等を、受信したパブリッシュメッセージ等によって上書き更新する。
【００５４】
Ｓ１０４では、パブリッシュメッセージ送信部１４は、サブスクライバ管理部１２から、受信されたパブリッシュメッセージの対象のトピックに登録されているサブスクライバ３００を抽出する。対象のトピックに登録されているサブスクライバ３００の数をｍとする。
【００５５】
Ｓ１０５では、パブリッシュメッセージ送信部１４は、受信されたパブリッシュメッセージに対応する条件情報の有無を判定する。条件情報がある場合には（Ｓ１０５：ＹＥＳ）、処理がＳ１０７に進む。条件情報がない場合には（Ｓ１０５：ＮＯ）、処理がＳ１０６に進む。Ｓ１０６では、パブリッシュメッセージ送信部１４は、抽出されたｍ台のサブスクライバ３００へ、受信されたパブリッシュメッセージを送信する。その後、図７に示される処理が終了する。
【００５６】
Ｓ１０７では、パブリッシュメッセージ送信部１４は、抽出されたｍ台のサブスクライバ３００から条件情報に従ってｎ台のサブスクライバ３００を抽出する。なお、ｎ＜ｍである。第１実施形態では、条件情報には、単位時間当たりに受信を希望する最大データ数ｎが指定されているので、ｎは単位時間当たりに受信を希望する当該最大データ数である。Ｓ１０８では、パブリッシュメッセージ送信部１４は、抽出されたｎ台のサブスクライバ３００にパブリッシュメッセージを送信する。
【００５７】
Ｓ１０９では、パブリッシュメッセージ送信部１４は、条件情報が単発のパブリッシュメッセージの送信を示すものであるか否かを判定する。なお、第１実施形態では、条件情報は、継続的にパブリッシュメッセージを送信することを示すものである。条件情報が単
発のパブリッシュメッセージの送信を示すものである場合には（Ｓ１０９：ＹＥＳ）、図７に示される処理が終了する。条件情報が単発のパブリッシュメッセージの送信を示すものでない、すなわち、継続的なパブリッシュメッセージの送信を示すものである場合には（Ｓ１０９：ＮＯ）、処理がＳ１１０に進む。
【００５８】
Ｓ１１０では、パブリッシュメッセージ送信部１４は、メモリ１０２に保存されている条件情報が示すパブリッシュメッセージの送信のタイミングが到来したか否かを判定する。第１実施形態では、条件情報には、単位時間長と単位時間当たりに受信を希望する最大データ数ｎとが含まれているため、Ｓ１１０では、前回の送信から当該単位時間長が経過したかが判定される。メモリ１０２に格納されている条件情報が示すパブリッシュメッセージの送信のタイミングが到来した場合には（Ｓ１１０：ＹＥＳ）、処理がＳ１０４に進み、メモリ１０２に保存されているパブリッシュメッセージについて、メモリ１０２に保存されている条件情報に従って送信処理が行われる。メモリ１０２に格納されている条件情報が示すパブリッシュメッセージの送信のタイミングが到来していない場合には（Ｓ１１０：ＮＯ）、処理がＳ１１１に進む。
【００５９】
Ｓ１１１では、パブリッシュメッセージ送信部１４は、同じトピックを指定するパブリッシュメッセージが受信されたか否かを判定する。同じトピックを指定するパブリッシュメッセージが受信された場合には（Ｓ１１１：ＹＥＳ）、図７に示される処理が終了し、受信したパブリッシュメッセージについて図７に示される処理が開始される。同じトピックを指定するパブリッシュメッセージが受信されていない場合には（Ｓ１１１：ＮＯ）、処理がＳ１１０に進む。
【００６０】
なお、図７に示されるパブリッシュメッセージ送信処理は一例であって、パブリッシュメッセージ送信処理はこれに限定されない。
【００６１】
＜第１実施形態の作用効果＞
第１実施形態に係るデータ収集システム１Ａでは、ブローカ１００がデータの送信要求であるパブリッシュメッセージが送信されるサブスクライバ３００の数を、当該パブリッシュメッセージとともに受信された条件情報に従って、対象のトピックに登録されているサブスクライバ３００の数よりも少ないｎ台に設定して、パブリッシュメッセージの送信を行う。これによって、データ収集サーバであるパブリッシャ２００に収集されるデータ数を減少させることができる、
【００６２】
また、第１実施形態では、条件情報は、単位時間長と、当該単位時間当たりに受信を希望する最大データ数ｎとを含む。ブローカ１００は、単位時間ごとに、対象のトピックに登録されているｍ台のサブスクライバ３００からｎ台のサブスクライバ３００を抽出し直し、パブリッシュメッセージ（データ送信要求）を送信することになる。これによって、データ収集サーバであるパブリッシャ２００に収集されるデータを時間的及び空間的に分散させることができる。なお、条件情報に、単位時間当たりに受信を希望する最大データ数ｎが含まれている場合でも、ブローカ１００は、単位時間ごとに、対象のトピックに登録されているｍ台のサブスクライバ３００からｎ台のサブスクライバ３００を抽出し直さないように構成されてもよい。ただし、この場合には、空間的にデータを分散させる効果は薄くなる。
【００６３】
＜その他＞
第１実施形態では、ブローカ１００へパブリッシャ２００からパブリッシュメッセージとともに条件情報が送信されるが、これに限定されない。例えば、条件情報は、予めトピックごとにブローカ１００のメモリに登録されており、対応するトピック宛てのメッセージが受信された場合には、ブローカ１００はメモリ１０２から対応する条件情報を読み出
して、メッセージのサブスクライバ３００への送信処理を行ってもよい。
【００６４】
また、第１実施形態では、サブスクライバ３００は、ブローカ１００へサブスクライブ要求を送信して、トピックに配信依頼を登録するが、これに限定されない。例えば、システム管理者等によって、ブローカ１００のサブスクライバ管理部１２に、予め各トピックについて、サブスクライバ３００の配信依頼が登録されていてもよい。
【００６５】
＜記録媒体＞
コンピュータその他の機械、装置（以下、コンピュータ等）に上記のブローカ１００、パブリッシャ２００、サブスクライバ３００の処理を実現させるプログラムを、コンピュータ等が読み取り可能な記録媒体に記録することができる。コンピュータ等に、この記録媒体のプログラムを読み込ませて実行させることにより、当該コンピュータが上記のブローカ１００、パブリッシャ２００、サブスクライバ３００として機能する。
【００６６】
ここで、コンピュータ等が読み取り可能な記録媒体とは、データやプログラム等の情報を電気的、磁気的、光学的、機械的、又は化学的作用によって蓄積し、コンピュータ等から読み取ることができる非一時的な記録媒体をいう。このような記録媒体のうちコンピュータ等から取り外し可能なものとしては、例えばフレキシブルディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ／Ｗ、ＤＶＤ、ブルーレイディスク、ＤＡＴ、８ｍｍテープ、フラッシュメモリなどのメモリカード等がある。また、コンピュータ等に固定された記録媒体としてハードディスク、ＲＯＭ（リードオンリーメモリ）等がある。さらに、ＳＳＤ（Solid State Drive）は、コンピュータ等から取り外し可能な記録媒体としても、コン
ピュータ等に固定された記録媒体としても利用可能である。
【符号の説明】
【００６７】
１      メッセージ配信システム
１Ａ    データ収集システム
１１    サブスクライブ要求受信部
１２    サブスクライバ管理部
１３    パブリッシュメッセージ受信部
１４、２３    パブリッシュメッセージ送信部
２１    トピック設定部
２２    メッセージ設定部
１００    ブローカ
１０１    ＣＰＵ
１０２    メモリ
１０３    インタフェース
１０４    外部記憶装置
１０５    通信部
２００    パブリッシャ
３００    サブスクライバ
【図１】
2019159908.tif 000003
【図２】
2019159908.tif 000004
【図３】
2019159908.tif 000005
【図４】
2019159908.tif 000006
【図５】
2019159908.tif 000007
【図６】
2019159908.tif 000008
【図７】
2019159908.tif 000009