【文献】
田中 剛 GO TANAKA,携帯端末のWebブラウザを用いた異種ネットワークデバイス連携システムの開発 Development of Heterogen,情報処理学会論文誌 論文誌トランザクション 2011(平成23)年度▲2▼ [CD−ROM],日本,一般社団法人情報処理学会,2012年 4月15日,Vol.2 No.1,p.10-19,【ISSN】1882-7772
【文献】
小倉 正利 MASATOSHI OGURA,センサネットワーク用ユーザインタフェースのメタデータによる動的生成 Automatic generation of User Int,情報処理学会研究報告 IPSJ SIG Technical Reports,日本,社団法人情報処理学会 Information Processing Socie,2009年 1月15日,Vol.2009 No.3,p.139-144,【ISSN】0919-6072
【文献】
村田 哲史 SATOSHI MURATA,センサの帯同場所を考慮した個人参加型センシングのための環境センサモジュールと基盤ソフトウェア Design,情報処理学会 シンポジウム 組込みシステムシンポジウム 2012 [online],日本,情報処理学会,2012年10月10日,p.73-78
(58)【調査した分野】(Int.Cl.,DB名)
前記第1のデータ受信部は、前記第1のセンサと異なる第2のセンサから出力されるセンシングデータを前記イベントデータとして受信する、請求項1に記載のデータ配信システム。
前記判定部は、前記センサ側メタデータから前記第1のラベルをすべて抽出し、抽出した前記第1のラベルを含む第1のラベルリストを生成し、前記アプリ側メタデータから前記第2のラベルをすべて抽出し、抽出した前記第2のラベルを含む第2のラベルリストを生成し、前記第2のラベルリスト中の前記第2のラベルがすべて前記第1のラベルリストに含まれる場合に、前記センサ側メタデータに含まれる前記第1のラベルと前記アプリ側メタデータに含まれる前記イベント条件に記述された前記第2のラベルとが同一であると判定する、請求項1または請求項2に記載のデータ配信システム。
前記データ配信装置は、前記イベント条件判定プログラムを、前記データフロー制御指令に含まれる前記センサを特定する前記情報および前記アプリケーションを特定する前記情報と関連付けて、格納するイベント条件判定プログラム記憶部をさらに備える、請求項1乃至請求項3のいずれか1項に記載のデータ配信システム。
センサから出力されるセンシングデータの属性に関するセンサ側属性情報と、イベントを検知するために使用されるイベントデータを識別するために与えた名前を示すラベルに対応する第1のラベルと、を含むセンサ側メタデータを取得するセンサ側メタデータ取得部と、
アプリケーションが必要とするセンシングデータの属性に関するアプリ側属性情報と、前記イベントの条件を示すイベント条件であって前記ラベルに対応する第2のラベルを用いて記述されたイベント条件と、を含むアプリ側メタデータを取得するアプリ側メタデータ取得部と、
前記センシングデータが前記アプリケーションの要求を満たすか否かを判定するために、前記センサ側属性情報と前記アプリ側属性情報との間でマッチングを行う属性情報マッチング部と、
前記センシングデータが前記アプリケーションの前記要求を満たす場合に、前記センサ側メタデータに含まれる前記第1のラベルと前記アプリ側メタデータに含まれる前記イベント条件に記述された前記第2のラベルとが同一であるか否かを判定する判定部と、
前記センサ側メタデータに含まれる前記第1のラベルと前記アプリ側メタデータに含まれる前記イベント条件に記述された前記第2のラベルとが同一である場合に、前記センサを特定する情報と、前記アプリケーションを特定する情報と、前記アプリ側メタデータに含まれる前記イベント条件と、を含むデータフロー制御指令を送信する指示部と、
を備える指示装置。
【発明を実施するための形態】
【0019】
以下、図面を参照しながら本発明の実施形態を説明する。
【0020】
図1は、本発明の一実施形態に係るセンサネットワーク(データ配信システムともいう)10の全体的な構成を示している。
図1に示すように、センサネットワーク10は、マッチメーカ(指示装置ともいう)11、メタデータDB(データベース)12、契約DB13、ディストリビュータ(データ配信装置ともいう)14、送信アダプタ(センサ管理装置ともいう)15、提供側システム16、センサ部17、受信アダプタ18、および利用側システム19を備える。センサ部17はセンサ17−1、17−2を備える。
【0021】
本実施形態では、説明を簡単にするために、ディストリビュータ14、送信アダプタ15、提供側システム16、受信アダプタ18および利用側システム19などの要素を1つずつ示しているが、これに限らず、各要素の数は2以上であってよい。例えば、複数の送信アダプタ15が設けられ、各送信アダプタ15に複数の提供側システム16が接続されてもよい。
【0022】
提供側システム16は、据置型または携帯型の端末であり得る。例えば、提供側システム16が携帯型端末(例えばスマートフォン)であり、複数の送信アダプタ15が設けられる場合、提供側システム16の移動に伴って、その接続先がある送信アダプタ15から他の送信アダプタ15へ変更されることができる。また、利用側システム19は、据置型または携帯型の端末であり得る。例えば、利用側システム19が携帯型端末であり、複数の受信アダプタ18が設けられる場合、利用側システム19の移動に伴って、その接続先がある受信アダプタ18から他の受信アダプタ18へ変更されることができる。
【0023】
本実施形態では、センサ部17が2つの17−1、17−2を含むが、これに限らず、センサ部17は1つまたは3つ以上のセンサを含んでもよい。また、
図1においてメタデータDB12および契約DB13がマッチメーカ11の外部に設けられているが、これに限らず、マッチメーカ11がメタデータDB12および契約DB13の少なくとも一方を保持していてもよい。
【0024】
データ提供者1は、センサ(例えばセンサ17−1)から出力されるセンシングデータに関する情報であるセンサ側メタデータをマッチメーカ11に登録する。例えば、データ提供者1は、図示しないコンピュータ端末を使用してマッチメーカ11にアクセスし、センサ側メタデータを入力する。マッチメーカ11は、登録されたセンサ側メタデータをメタデータDB12に保存する。
【0025】
センサ側メタデータは、センサにより得られるセンシングデータの属性に関する情報であるセンサ側属性情報と、イベントデータを識別するために与えた名前を示すラベルと、を含む。イベントは、センシングデータがある閾値を超えたまたは下回ったなどの特定の状態になったことを指す。イベントデータとは、イベントを検知するために使用されるセンシングデータを指し、後述のイベント条件と対比されるものである。センサ側属性情報は、センサ自身の属性に関する情報を含んでもよい。
図2(a)は、センサ側メタデータの一例を示し、ここでは、イベントデータ仕様に関する部分のみが示されている。この例では、イベントデータは温度に関連するものであり、「Temp」というラベルが設定されている。センサ側属性情報は、例えば、センサの属性情報、センシング対象の属性情報、センシング対象領域の属性情報、センシング動作の属性情報、およびセンシングデータの管理属性を含む。
【0026】
図1を再び参照すると、データ利用者2は、センシングデータを利用してサービスを提供するアプリケーションに関する情報であるアプリ側メタデータをマッチメーカ11に登録する。このアプリケーションは、利用側システム19上で動作するものである。例えば、データ利用者2が図示しないコンピュータ端末を使用してマッチメーカ11にアクセスし、アプリ側メタデータを入力する。マッチメーカ11は、登録されたアプリ側メタデータをメタデータDB12に保存する。
【0027】
アプリ側メタデータは、アプリケーションが必要とするセンシングデータの属性に関する情報であるアプリ側属性情報と、イベントの条件を示すイベント条件と、を含む。アプリ側属性情報は、アプリケーション自身の属性に関する情報を含んでもよい。具体的には、イベント条件は、イベントデータにおいて検知したいイベントの条件を記述した論理式である。論理式は、データ利用者に対して公開されたラベルのいずれかを用いて作成される。
図2(b)は、アプリ側メタデータの一例を示し、ここでは、イベント条件に関する部分のみが示されている。この例では、イベント条件は温度に関連するものであり、「Temp≧35」という条件式が設定されている。センサ側属性情報は、例えば、必要とするセンサの属性情報、必要とするセンシング対象の属性情報、必要とするセンシング対象領域の属性情報、必要とするセンシングデータの管理属性、およびアプリケーション自身のメタデータを含む。
【0028】
図1を再び参照すると、マッチメーカ11は、センサ側メタデータとアプリ側メタデータとの間でマッチングを行う。マッチングが成立した場合、データ提供者1とデータ利用者2との間の売買契約が結ばれ、売買契約情報(例えば、センサ側メタデータのメタデータIDとアプリ側メタデータのメタデータIDの組み)が契約DB13に保存される。マッチングは、センサ側属性情報とアプリ側属性情報との間でマッチングを行うことで、アプリケーションの要求を満たすセンシングデータを提供可能なセンサを特定することと、特定したセンサに関連するセンサ側メタデータ中のイベントデータ仕様部分に含まれるラベルとアプリ側メタデータ中のイベント条件部分に含まれるラベルとが同一であるか否かを判定することと、を含む。これらのラベルが同一である場合、マッチメーカ11は、ディストリビュータ14に対して、センサを特定する情報と、アプリケーションを特定する情報と、アプリ側メタデータ中のイベント条件と、を含むデータフロー制御指令を送信する。
【0029】
センサ17−1、17−2の各々は、何らかの物理量またはその変化を検出し、センシングデータとして記録または出力するデバイスである。提供側システム16は、センサ17−1、17−2と物理的または電気的に接続され、センシングデータを収集し管理する。一例として、センサ17−1から出力されるセンシングデータが配信データに用いられ、センサ17−2から出力されるセンシングデータがイベントデータに用いられる。イベントデータのフォーマットは、ラベルと値の組で定義する。配信データとは、利用者に配信するデータを指す。配信データのフォーマットは、データ提供者1が任意に決める。配信データはテキスト化される。配信データはさらに暗号化されることができる。一例では、提供側システム16が建物に設置された配電盤であり、センサ17−1が配電盤に設けられた電力計であり、センサ17−2が配電盤に設けられた音圧計である。別の例では、提供側システム16が健康管理装置であり、センサ17−1が血糖測定器であり、センサ17−2が血圧計である。
【0030】
なお、センサ17−2から出力されるセンシングデータは、配信データにも用いられてもよい。すなわち、配信データは、センサ17−1から出力されるセンシングデータと、センサ17−2から出力されるセンシングデータと、を含んでもよい。また、配信データとイベントデータは同じセンサから出力されたものであってもよい。また、イベントデータとして、センサ17−2のようなセンサから出力されるセンシングデータに限らず、任意の他のデータが用いられてもよい。
【0031】
送信アダプタ15は、センサ17−1、17−2を管理するものであり、提供側システム16を通じてセンサ17−1、17−2からのセンシングデータを収集する。送信アダプタ15は、提供側システム16から配信データおよびイベントデータを受け取り、配信データおよびイベントデータを含む送信データを生成し、センシングデータとしてディストリビュータ14に送信する。
図2(c)は、送信アダプタ15からディストリビュータ14に送信されるセンシングデータの一例を示す。この例では、イベントデータ部分に、ラベルとして「Temp」、値として40が記述されている。なお、イベントデータはオプションであり、ディストリビュータ14へ送信されるセンシングデータにイベントデータが含まれていなくてもよい。
【0032】
ディストリビュータ14は、マッチメーカ11からデータフロー制御指令を受信し、送信アダプタ15からセンシングデータを受信する。ここでは、データフロー制御指令がセンサ17−1から出力されたセンシングデータを利用側システム19へ配信することを指示するものであるとする。ディストリビュータ14は、受信したセンシングデータに含まれるイベントデータが受信したデータフロー制御指令に含まれるイベント条件を満たすか否かを判定する。ディストリビュータ14は、イベントデータがイベント条件を満たす場合は、受信したセンシングデータに含まれる配信データをセンシングデータとして利用側システム19宛てに送信し、イベントデータがイベント条件を満たさない場合は、送信しない。利用側システム19宛てのセンシングデータは、イベントデータを含んでいてもよい。受信アダプタ18は、ディストリビュータ14からセンシングデータを受信し、それを利用側システム19に転送する。
【0033】
図3は、マッチメーカ11の構成例を示している。
図3に示すように、マッチメーカ11は、センサ側メタデータ取得部31、アプリ側メタデータ取得部32、マッチング部33、判定部332、指示部35、メタデータDB36、および契約DB37を備える。メタデータDB36および契約DB37は、
図1に示したメタデータDB12および契約DB13に相当するものである。
【0034】
センサ側メタデータ取得部31は、センサ側メタデータを取得し、メタデータDB36に格納する。アプリ側メタデータ取得部32は、アプリ側メタデータを取得し、メタデータDB36に格納する。
【0035】
マッチング部33は、センサ側メタデータとアプリ側メタデータとの間でマッチングを行う。一例として、マッチング部33は、アプリ側メタデータ取得部32がアプリ側メタデータを取得したことをトリガとしてマッチングを行う。この場合、1つまたは複数のセンサ側メタデータがメタデータDB36に事前に格納されており、マッチング部33は、メタデータDB36に格納されているセンサ側メタデータの各々とアプリ側メタデータ取得部32によって取得されたアプリ側メタデータとのマッチングを行う。
【0036】
マッチング部33は、属性情報マッチング部331および判定部332を備える。属性情報マッチング部331は、センシングデータがアプリケーションの要求を満たすか否かを判定するために、センサ側メタデータのセンサ側属性情報とアプリ側メタデータのアプリ側属性情報との間でマッチングを行う。
【0037】
センシングデータがアプリケーションの要求を満たすと属性情報マッチング部331が判定した場合、判定部332は、センサ側メタデータ中のラベルとアプリ側メタデータ中のラベルとが同一であるか否かを判定する。これらのラベルが同一である場合、指示部35は、センサを特定する情報と、アプリケーションを特定する情報と、アプリ側メタデータ中のイベント条件と、を含むデータフロー制御指令を生成し、生成したデータフロー制御指令をディストリビュータ14に送信する。データフロー制御指令がラベルを用いて記述されたイベント条件を含むことにより、ディストリビュータ14においてイベントを検知するためのプログラムを自動で作成することが可能となる。
【0038】
図4は、アプリ側メタデータを設定するための入力画面の一例を示している。
図4に示す入力画面40は、データ利用者に対してアプリ側メタデータ取得部32によって提示される。入力画面40は、配信条件設定領域41およびイベント条件設定領域44を含む。配信条件設定領域41は、接続する利用者システムを指定するためのテキストボックス42と、配信期間を指定するためのテキストボックス43と、を含む。イベント条件設定領域44は、イベント条件を設定するか否かを指定するためのチェックボックス45と、イベント条件を入力するためのテキストボックス46と、を含む。さらに、イベント条件設定領域44には、利用可能なラベルとその説明が提示されている。配信条件の入力が完了した後に、ボタン47がクリックされると、次のステップに進む。
【0039】
図5は、
図3に示したマッチメーカ11におけるイベント条件ラベルチェックの手順例を示している。
図5に示す処理は、あるセンサ側メタデータのセンサ側属性情報とあるアプリ側メタデータのアプリ側属性情報との間でマッチングが行われ、センサ側属性情報とアプリ側属性情報とのマッチングが成立したと判断された後に開始される。
【0040】
ステップS51において、判定部332は、センサ側メタデータのイベントデータ仕様部分からラベルの値をすべて取り出し、ラベルリストを生成する。センサ側メタデータが
図6(a)に示すデータである場合、“Temp”および“Moist”を有するラベルリストが生成される。
【0041】
ステップS52において、判定部332は、アプリ側メタデータのイベント条件部分に記載された判定式から変数名をすべて取り出し、変数名リストを生成する。アプリ側メタデータが
図6(b)に示すデータである場合、“Temp”および“Moist”を有する変数名リストが生成される。
【0042】
ステップS53において、判定部332は、変数名リスト中の変数名がすべてラベルリストに含まれるか否かを判定する。変数名リスト中の変数名がすべてラベルリストに含まれる場合は、ステップS54に進み、そうでなければ、ステップS55に進む。
図6(a)および
図6(b)に示す例では、変数名リストは“Temp”および“Moist”を含み、これらはともにラベルリストにも含まれている。この場合、変数名リスト中の変数名がすべてラベルリストに含まれる(yes)と判定される。
【0043】
ステップS53からステップS54へ進んだ場合、ステップS54において、指示部35は、データフロー制御指令をディストリビュータ14に送信する。データフロー制御指令は、例えば、センサ側メタデータに関連するセンサを特定する情報と、アプリ側メタデータに関連するアプリケーションを特定する情報と、アプリ側メタデータのイベント条件部分と、を含む。
【0044】
ステップS53からステップS55に進んだ場合、ステップS55において、イベント条件エラーが通知される。この場合、データ利用者が所望する配信条件が満たされないので、データフロー制御指令を出力せずに処理が終了となる。
【0045】
図7は、ディストリビュータ14の構成例を示している。
図7に示すように、ディストリビュータ14は、データフロー制御指令受信部71、イベント条件抽出部72、イベント条件プログラム変換部73、データ受信部74、イベント条件判定プログラム実行部75、送信データ生成部76、データ送信部77、イベント条件判定式DB(イベント条件判定プログラム記憶部ともいう)78、およびセンシングデータDB(データ記憶部ともいう)79を備える。
【0046】
データフロー制御指令受信部71は、ディストリビュータ14からデータフロー制御指令を受信する。イベント条件抽出部72は、受信されたデータフロー制御指令からイベント条件を抽出する。イベント条件プログラム変換部73は、抽出されたイベント条件をプログラムに変換する。プログラムに変換された後のイベント条件をイベント条件判定プログラムと呼ぶ。イベント条件判定プログラムは、データフロー制御指令に含まれるセンサを特定する情報およびアプリケーションを特定する情報と関連付けて、CPUによって、メモリが備えるイベント条件判定式DB78に格納される。
【0047】
データ受信部74は、
図1に示した送信アダプタ15などの送信アダプタからセンシングデータを受信し、センシングデータDB79に格納する。イベント条件判定プログラム実行部75は、受信されたセンシングデータに含まれるイベントデータがデータフロー制御指令に含まれるイベント条件を満たすか否かを判定するために、イベント条件判定プログラムを実行する。イベントデータがイベント条件を満たす場合、送信データ生成部76は、受信されたセンシングデータに含まれる配信データを取り出し、取り出した配信データを含む送信データを生成する。データ送信部77は、送信データ生成部76によって生成された送信データをセンシングデータとして送信する。
【0048】
図8は、
図7に示したディストリビュータ14におけるイベント条件判定プログラム生成の手順例を示している。
図8のステップS81において、イベント条件プログラム変換部73は、センサ側メタデータからイベント条件判定プログラムのデータ設定部を生成する。例えば、イベント条件プログラム変換部73は、センサ側メタデータのイベントデータ仕様部分からラベルの値をすべて取り出し、変数代入式の部分を作成する。センサ側メタデータのイベントデータ仕様部分が
図9(a)に示されるデータである場合、“Temp”および“Moist”が取り出され、
図9(b)に示されるイベント条件判定プログラムのデータ設定部91が“Temp”および“Moist”を用いて作成される。イベント条件判定プログラムは、例えば、JudgementFunc関数からなる。
【0049】
ステップS82において、イベント条件プログラム変換部73は、アプリ側メタデータからイベント条件判定プログラムのイベント条件判定部を生成する。例えば、イベント条件プログラム変換部73は、アプリ側メタデータのイベント条件部分から判定式を取り出し、if文中の論理式を生成する。アプリ側メタデータのイベント条件部分が
図9(c)に示されるデータである場合、“Temp>=35 and Moist<40”が取り出され、
図9(b)に示されるイベント条件判定プログラムのイベント条件判定部92に挿入される。
【0050】
ステップS83において、生成されたイベント条件判定プログラムに対して動的コンパイルが実行される。コードがインタプリタ型言語、例えば、Python、Javascript(登録商標)などで記述される場合、コードをそのままインタプリタ上で実行することができる。このため、コードがインタプリタ型言語で記述される場合には、ステップS83に示す処理は省略することができる。
【0051】
図10は、
図7に示したディストリビュータ14におけるイベント条件判定の手順例を示している。
図10のステップS101において、送信データ生成部76は、データ受信部74によって受信されたセンシングデータからイベントデータを取り出し、データ配列にイベントデータをセットする。センシングデータのイベントデータ部分が
図11(a)に示すデータである場合、
図11(b)に示すデータ配列が生成される。当該データ配列では、ラベル“Temp”の値が40であり、ラベル“Moist”の値が10である。
【0052】
ステップS102において、イベント条件判定プログラム実行部75は、データ配列を引数に渡してイベント条件判定プログラムを実行する。イベント条件判定プログラムを実行した結果としてtrueが返される場合、すなわち、イベントデータがイベント条件を満たす場合、ステップS103に進む。falseが返される場合、処理が終了となる。例えば、
図11(b)に示すデータ配列を引数として
図11(c)に示すイベント条件判定プログラムが実行される場合、“Temp>=35”と“Moist<40”の両方が満たされるので、実行結果としてtrueが返される。
【0053】
図12は、送信アダプタ15の構成例を示している。
図12に示すように、送信アダプタ15は、センシングデータ受信部121、送信データ生成部122、データ送信部123、およびセンシングデータDB124を備える。センシングデータ受信部121は、
図1に示した提供側システム16などの提供側システムからセンシングデータを受信し、センシングデータDB124に格納する。送信データ生成部122は、センサから出力されてセンシングデータ受信部121によって受信されたセンシングデータである配信データと、イベントを検知するためのデータであるイベントデータと、を含む送信データを生成する。例えば、送信アダプタ15はHTTPプロトコルに従ってディストリビュータ14と通信し、配信データおよびイベントデータはHTTPメッセージのボディ部に含まれる。ボディ部は、センシングデータの識別情報(ID)、受信日時、アプリ側メタデータの識別情報(ID)をさらに含んでもよい。また、送信データ生成部76は、配信データを暗号化してもよく、この場合、暗号化した配信データとイベントデータとを含む送信データを生成する。配信データを暗号化した場合、ディストリビュータ14において配信データの内容が知られることがない。データ送信部123は、生成された送信データをセンシングデータとしてディストリビュータ14に送信する。配信データとイベントデータをわけてディストリビュータ14に提供することにより、ディストリビュータ14においてイベント検知が容易になる。
【0054】
図13は、マッチメーカのハードウェア構成例を示している。
図13に示すコンピュータ130は、中央演算装置(CPU)131、主記憶装置としての揮発性メモリ132、LAN通信制御装置133、入出力装置134、および2次記憶装置135を備え、これらは、データバスなどを含むバスシステム(図示せず)を介して互いに接続される。
【0055】
2次記憶装置135は、
図1に示したマッチメーカ11を実装するために、各種プログラムを備える。例えば、2次記憶装置135は、オペレーティングシステム1351、メタデータ登録プログラム1352、およびメタデータマッチングプログラム1353を備える。メタデータ登録プログラム1352は、CPU131によって実行されると、
図3に示したセンサ側メタデータ取得部31およびアプリ側メタデータ取得部32としてCPU131を機能させることができる。メタデータマッチングプログラム1353は、イベント条件ラベルチェックプログラム1354を含み、CPU131によって実行されると、
図3に示したマッチング部33としてCPU131を機能させることができる。
【0056】
さらに、2次記憶装置135は、メタデータDB1355および契約DB1356を備える。メタデータDB1355および契約DB1356は、
図1に示したメタデータDB12および契約DB13に相当する。2次記憶装置135としては、例えば、ハードディスクドライブ(HDD)、ソリッドステートドライブ(SSD)などを用いることができる。
【0057】
LAN通信制御装置133は、ローカルエリアネットワーク(LAN)と通信するための通信インタフェースである。コンピュータ130は、LANおよびルータ136を経由して、インターネットなどのネットワーク137に接続される。入出力装置134は、情報を入力または出力するためのインタフェースを含む。例えば、入出力装置134は、キーボード、マウス、マイクロフォン、タッチパネルなどの入力デバイスと、ディスプレイなどの出力デバイスと、を含む。
【0058】
なお、
図1に示したマッチメーカ11の機能は、CPU131などのプロセッサによって実行されるプログラムにより実現されることに限定されない。マッチメーカ11の機能の一部または全部は、特定用途向け集積回路(ASIC)などのハードウェア回路により実現されてもよい。
【0059】
図14は、ディストリビュータのハードウェア構成例を示している。
図14に示すコンピュータ140は、CPU141、主記憶装置としての揮発性メモリ142、LAN通信制御装置143、入出力装置144、および2次記憶装置145を備え、これらは、データバスなどを含むバスシステム(図示せず)を介して互いに接続される。
【0060】
2次記憶装置145は、
図1に示したディストリビュータ14を実装するために、各種プログラムを備える。例えば、2次記憶装置145は、オペレーティングシステム1451、イベント条件判定式受信プログラム1452、およびデータ配信プログラム1454を備える。イベント条件判定式受信プログラム1452は、イベント条件判定プログラム自動生成プログラム1453を含み、CPU141によって実行されると、
図7に示したデータフロー制御指令受信部71、イベント条件抽出部72、およびイベント条件プログラム変換部73としてCPU141を機能させることができる。データ配信プログラム1454は、イベント条件判定プログラム実行プログラム1455を含み、CPU141によって実行されると、データ受信部74、イベント条件判定プログラム実行部75、送信データ生成部76、およびデータ送信部77としてCPU141を機能させることができる。
【0061】
さらに、2次記憶装置145は、イベント条件判定式DB1456およびセンシングDB1457を備える。イベント条件判定式DB1456およびセンシングDB1457は、
図7に示したイベント条件判定式DB78およびセンシングデータDB79に相当する。2次記憶装置145としては、例えば、HDD、SSDなどを用いることができる。
【0062】
LAN通信制御装置143は、LANと通信するための通信インタフェースである。コンピュータ140は、LANおよびルータ146を経由して、インターネットなどのネットワーク147に接続される。入出力装置144は、情報を入力または出力するためのインタフェースを含む。例えば、入出力装置144は、キーボード、マウス、マイクロフォン、タッチパネルなどの入力デバイスと、ディスプレイなどの出力デバイスと、を含む。
【0063】
なお、
図1に示したディストリビュータ14の機能は、CPU141などのプロセッサによって実行されるプログラムにより実現されることに限定されない。ディストリビュータ14の機能の一部または全部は、ASICなどのハードウェア回路により実現されてもよい。
【0064】
図15は、送信アダプタのハードウェア構成例を示している。
図15に示すコンピュータ150は、CPU151、主記憶装置としての揮発性メモリ152、LAN通信制御装置153、入出力装置154、および2次記憶装置155を備え、これらは、データバスなどを含むバスシステム(図示せず)を介して互いに接続される。
【0065】
2次記憶装置155は、
図1に示した送信アダプタ15を実装するために、各種プログラムを備える。例えば、2次記憶装置155は、オペレーティングシステム1551および送信データ生成プログラム1552を備える。送信データ生成プログラム1552は、CPU151によって実行されると、
図12に示した送信データ生成部122としてCPU151を機能させることができる。
【0066】
さらに、2次記憶装置155は、センシングデータDB1553を備える。センシングデータDB1553は、
図12に示したセンシングデータDB124に相当する。2次記憶装置155としては、例えば、HDD、SSDなどを用いることができる。
【0067】
LAN通信制御装置153は、LANと通信するための通信インタフェースである。コンピュータ150は、LANおよびルータ156を経由して、インターネットなどのネットワーク157に接続される。入出力装置154は、情報を入力または出力するためのインタフェースを含む。例えば、入出力装置154は、キーボード、マウス、マイクロフォン、タッチパネルなどの入力デバイスと、ディスプレイなどの出力デバイスと、を含む。
【0068】
なお、
図1に示した送信アダプタ15の機能は、CPU151などのプロセッサによって実行されるプログラムにより実現されることに限定されない。送信アダプタ15の機能の一部または全部は、ASICなどのハードウェア回路により実現されてもよい。
【0069】
以上のように、本実施形態では、ディストリビュータは、センサから出力されたセンシングデータ(配信データ)と定型的なフォーマットで記述されたイベントデータとを送信アダプタから受け取り、イベント条件をコードに変換して、イベント条件の判定処理を実行し、その結果に基づき、センシングデータを配信する要否を決定する。ディストリビュータにおいてイベント条件を自動的にコード化することにより、その部分のコードを作成する対応が不要になる。さらに、第三者であるディストリビュータが配信データを参照することがないので、配信データを暗号化することも可能になる。
【0070】
本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
【0071】
また、上記の実施形態の一部又は全部は、以下の付記のようにも記載され得るが、以下には限られない。下記に記載されるハードウェアプロセッサは、ハードウェア回路、プロセッサによって実行されるプログラム(ソフトウェア)、またはこれらの組み合わせにより実現される。
【0072】
(付記1)
指示装置と、センサ管理装置と、前記指示装置および前記センサ管理装置に接続されるデータ配信装置と、を備えるデータ配信システムであって、
前記センサ管理装置は、
第1のセンサから出力されるセンシングデータである配信データを受信し、
前記配信データと、イベントを検知するために使用されるイベントデータと、を含む送信データを生成し、
前記送信データを前記データ配信装置に送信する
ように構成されたハードウェアプロセッサを備え、
前記指示装置は、
前記センシングデータの属性に関するセンサ側属性情報と、前記イベントデータを識別するために与えた名前を示すラベルに対応する第1のラベルと、を含むセンサ側メタデータを取得し、
アプリケーションが必要とするセンシングデータの属性に関するアプリ側属性情報と、前記イベントの条件を示すイベント条件であって前記ラベルに対応する第2のラベルを用いて記述されたイベント条件と、を含むアプリ側メタデータを取得し、
前記センシングデータが前記アプリケーションの要求を満たすか否かを判定するために、前記センサ側属性情報と前記アプリ側属性情報との間でマッチングを行い、
前記センシングデータが前記アプリケーションの前記要求を満たす場合に、前記センサ側メタデータに含まれる前記第1のラベルと前記アプリ側メタデータに含まれる前記イベント条件に記述された前記第2のラベルとが同一であるか否かを判定し、
前記センサ側メタデータに含まれる前記第1のラベルと前記アプリ側メタデータに含まれる前記イベント条件に記述された前記第2のラベルとが同一である場合に、前記第1のセンサを特定する情報と、前記アプリケーションを特定する情報と、前記アプリ側メタデータに含まれる前記イベント条件と、を含むデータフロー制御指令を前記データ配信装置に送信する
ように構成されたハードウェアプロセッサを備え、
前記データ配信装置は、
前記データフロー制御指令を受信し、
前記データフロー制御指令に含まれる前記イベント条件をプログラムに変換してイベント条件判定プログラムを生成し、
前記送信データを受信し、
前記受信された送信データに含まれる前記イベントデータが前記データフロー制御指令に含まれる前記イベント条件を満たすか否かを判定するために、前記イベント条件判定プログラムを実行し、
前記受信された送信データに含まれる前記イベントデータが前記データフロー制御指令に含まれる前記イベント条件を満たす場合に、前記受信された送信データに含まれる前記配信データを送信する
ように構成されたハードウェアプロセッサを備える、データ配信システム。
【0073】
(付記2)
センサから出力されるセンシングデータの属性に関するセンサ側属性情報と、イベントを検知するために使用されるイベントデータを識別するために与えた名前を示すラベルに対応する第1のラベルと、を含むセンサ側メタデータを取得し、
アプリケーションが必要とするセンシングデータの属性に関するアプリ側属性情報と、前記イベントの条件を示すイベント条件であって前記ラベルに対応する第2のラベルを用いて記述されたイベント条件と、を含むアプリ側メタデータを取得し、
前記センシングデータが前記アプリケーションの要求を満たすか否かを判定するために、前記センサ側属性情報と前記アプリ側属性情報との間でマッチングを行い、
前記センシングデータが前記アプリケーションの前記要求を満たす場合に、前記センサ側メタデータに含まれる前記第1のラベルと前記アプリ側メタデータに含まれる前記イベント条件に記述された前記第2のラベルとが同一であるか否かを判定し、
前記センサ側メタデータに含まれる前記第1のラベルと前記アプリ側メタデータに含まれる前記イベント条件に記述された前記第2のラベルとが同一である場合に、前記センサを特定する情報と、前記アプリケーションを特定する情報と、前記アプリ側メタデータに含まれる前記イベント条件と、を含むデータフロー制御指令を送信する
ように構成されたハードウェアプロセッサを備える指示装置。
【0074】
(付記3)
ハードウェアプロセッサを備え、
前記ハードウェアプロセッサは、
センサから出力されるセンシングデータである配信データと、イベントを検知するために使用されるイベントデータと、を含む送信データを受信し、
前記センサを特定する情報と、アプリケーションを特定する情報と、前記イベントの条件を示すイベント条件と、を含むデータフロー制御指令を受信し、
前記データフロー制御指令に含まれる前記イベント条件をプログラムに変換してイベント条件判定プログラムを生成し、
前記受信された送信データに含まれる前記イベントデータが前記データフロー制御指令に含まれる前記イベント条件を満たすか否かを判定するために、前記イベント条件判定プログラムを実行し、
前記受信された送信データに含まれる前記イベントデータが前記データフロー制御指令に含まれる前記イベント条件を満たす場合に、前記受信された送信データに含まれる前記配信データを送信する
ように構成された配信装置。
【0075】
(付記4)
ハードウェアプロセッサを備え、
前記ハードウェアプロセッサは、
センサから出力されるセンシングデータである配信データを受信し、
前記配信データと、イベントを検知するために使用されるイベントデータと、を含む送信データを生成し、
前記送信データを送信する、
ように構成されたセンサ管理装置。