【文献】
中村哲也,他2名,適応型通信サービスにおけるコンテクスト情報提供方式,情報処理学会研究報告,日本,社団法人情報処理学会,2000年 2月 4日,第2000巻,第14号,p.83-90
【文献】
小村和輝,他2名,移動エントロピーを用いた銘柄間影響度ネットワークによる投資指標の分析,第13回人工知能学会金融情報学研究会資料(SIG−FIN−013−08),日本,人工知能学会,2014年10月11日,p.1-6
(58)【調査した分野】(Int.Cl.,DB名)
複数のデバイスのうちの少なくともいずれかのデバイスにおいて得られるデータを、当該データを利用するアプリケーションへと提供する、データフローを制御するためのデータフロー制御装置であって、
前記複数のデバイスのそれぞれにおいて得られるデータである複数のデバイス指標と、
前記アプリケーションが制御又は予測する指標である目的指標とを少なくとも含む、複数の指標のあいだの因果関係を表す因果ネットワークを記憶する因果ネットワーク記憶部と、
前記アプリケーションからデータ要求を受けた場合に、前記因果ネットワークに基づき、前記アプリケーションの目的指標と因果関係を有する少なくとも1つのデバイス指標を前記複数のデバイス指標の中から選択するデバイス指標選択部と、
前記選択されたデバイス指標に対応するデバイスにおいて得られるデータが、前記アプリケーションへ提供されるように、データフローを制御するデータフロー制御部と、
を有することを特徴とするデータフロー制御装置。
前記デバイス指標選択部は、前記因果ネットワークにおいて、前記目的指標からの距離が近いデバイス指標を優先的に選択し、距離が同じ場合には因果強度が強い方のデバイス指標を優先的に選択し、距離も因果強度も同じ場合には遅延時間が短い方のデバイス指標を優先的に選択する
ことを特徴とする請求項2又は3に記載のデータフロー制御装置。
複数のデバイスのうちの少なくともいずれかのデバイスにおいて得られるデータを、当該データを利用するアプリケーションへと提供する、データフローを制御するためのデータフロー制御方法であって、
コンピュータが、前記アプリケーションからデータ要求を受けた場合に、前記複数のデバイスのそれぞれにおいて得られるデータである複数のデバイス指標と、前記アプリケーションが制御又は予測する指標である目的指標とを少なくとも含む、複数の指標のあいだの因果関係を表す因果ネットワークに基づき、前記アプリケーションの目的指標と因果関係を有する少なくとも1つのデバイス指標を前記複数のデバイス指標の中から選択するステップと、
前記コンピュータが、前記選択されたデバイス指標に対応するデバイスにおいて得られるデータが、前記アプリケーションへ提供されるように、データフローを制御するステップと、
を有することを特徴とするデータフロー制御方法。
【背景技術】
【0002】
現在、M2Mクラウドと呼ばれるIT環境が注目を集めている。M2M(Machine to Machine)とは、様々な用途、大きさや性能を持つ機械同士がネットワーク上で情報をやり取りするシステムを指す。この情報を利用することで、それぞれの機械の適切な制御や、実社会の状況解析が可能になる。M2Mを支える無線通信技術の向上や機械の小型化、低廉化などにより、実用化への期待が高まっている。
【0003】
このようなM2Mの技術をクラウドコンピューティング環境上で実現したものはM2Mクラウドと呼ばれる。これは、M2Mに必要な基本機能、例えばデータの収集蓄積から加工、分析のようなサービスをクラウド上のアプリケーションとして提供し、どこからでも利用可能にしたものである。データの一括管理によって信頼性や網羅性を高めることができる。また利用者にとっては、収集されたデータやコンピュータ資源を必要な分だけ利用できるメリットがある。そのため、個別にシステムを構築することなくビッグデータを解析して付加価値を得ることが可能であり、幅広い分野での応用が期待されている。
【0004】
また、特許文献1に示すように、センサネットワークと呼ばれる技術が検討されている。これは、センシング機能と通信機能をもつセンサデバイス(以下、単に「センサ」とも呼ぶ)を様々な場所や産業設備に設置し、それらをネットワーク化することで、センシングデータの収集、管理、シームレスな利用を可能とするものである。
【0005】
通常、センサは、その所有者自身が必要とするデータを収集するために設置される。そのため所有者がデータ収集を行うとき以外は利用されていない(センサ自体が稼働していない、またはセンサが稼働していてもセンシングデータが利用されない)ことが多い。そのためセンシングデータの流通性は低く、第三者にとっていかに有意義なデータであっても、センサの所有者自身による分析、利用に留まっていた。その結果、設備の重複投資や、各自が設置したセンサとの通信によるネットワークの輻湊を招いていた。
【0006】
また、IoT(Internet of Things)という技術が検討されている。これは、世界に存在する多くの物に関する情報をネット上で組み合わせることで新しい価値を生むもので、社会インフラを始めとする様々なサービスのシームレスな展開が期待されている。IoTから価値を生み出すためには、ネットに繋がる物の状態を知る必要があり、センシングと通信が重要な要素技術となる。
【0007】
そこで本出願人は、IoTにおいてセンシングデータなどの資源を適切に流通させる仕組みを実現するため、センサに関する情報が記述された「センサ側メタデータ」とセンシングデータを利用するアプリケーションに関する情報が記述された「アプリ側メタデータ」とのマッチングを行うことで、アプリケーションの要求を満たすセンシングデータを取得可能なセンサを特定し、センサからアプリケーションへのデータフローを制御するシステムを検討している(特許文献3参照)。
【発明の概要】
【発明が解決しようとする課題】
【0009】
特許文献3のシステムでは、アプリ側メタデータの中に、アプリケーションが必要とするセンシングデータの種類や仕様を定義しなければならない。
【0010】
しかしながら、アプリケーションの開発者や設計者が、アプリケーションの目的を達成するために、どのようなデバイスからどのようなセンシングデータを収集しアプリケーションの制御に役立てればよいか、を適切に設計するのは容易ではない。その理由の一つは、IoTではあらゆるセンサがネットワークに接続され、膨大な数・様々な種類のセンシングデータが利用可能となるからである。また、第二の理由は、現実世界においては様々な事象や要素が複雑に関連しているため、それを適切にモデル化し、アプリケーションの目的(結果)と強い因果関係をもつセンシングデータ(原因)を見極めるのが極めて難しいことにある。
【0011】
また仮に、必要なセンシングデータの種類や仕様を事前に定義できたとしても、センサの停止・故障・移動などによりネットワークの構成(つまり、利用可能なセンサや取得可能なデータ)が時々刻々と変化する可能性があり、定義どおりのセンシングデータが得られない事態も発生し得る。システムのロバスト性を高めるためには、利用可能なセンサやセンシングデータのうちから最も適切なものをアプリケーションに提供できるようなフレキシブルな仕組みが望ましい。
【0012】
なお、ここまでセンサネットワークを例に挙げて説明をしたが、アクチュエータ(コントローラ)のネットワークの場合にも、全く同様の課題が発生し得る。「センサ」と「アクチュエータ(コントローラ)」とは、「状態を検知(取得)する」のか「状態を変化させる」のかという違いはあるものの、所定の範囲の対象領域に対して何らかの作用を行うという点では共通である。アクチュエータネットワークの場合は、センサから得られるセンシングデータの代わりに、アクチュエータに与えるコントロールデータが流通の対象となる。以下、「センサ」と「アクチュエータ」を包含する概念として「デバイス」という用語を用いる。また、「センサネットワーク」と「アクチュエータネットワーク」を包含する概念として「デバイスネットワーク」という用語を用いる。デバイスネットワークにはセンサとアクチュエータの両方が接続されることもあり得る。
【0013】
本発明は上記実情に鑑みなされたものであり、デバイスネットワークにおけるデータの利用をより容易にするための技術を提供することを目的とする。
【課題を解決するための手段】
【0014】
請求項1に係る発明は、複数のデバイスのうちの少なくともいずれかのデバイスにおいて得られるデータを、当該データを利用するアプリケーションへと提供する、データフローを制御するためのデータフロー制御装置であって、前記複数のデバイスのそれぞれにおいて得られるデータである複数のデバイス指標と、前記アプリケーションが制御又は予測する指標である目的指標とを少なくとも含む、複数の指標のあいだの因果関係を表す因果ネットワークを記憶する因果ネットワーク記憶部と、前記アプリケーションからデータ要求を受けた場合に、前記因果ネットワークに基づき、前記アプリケーションの目的指標と因果関係を有する少なくとも1つのデバイス指標を前記複数のデバイス指標の中から選択するデバイス指標選択部と、前記選択されたデバイス指標に対応するデバイスにおいて得られるデータが、前記アプリケーションへ提供されるように、データフローを制御するデータフロー制御部と、を有することを特徴とするデータフロー制御装置である。
【0015】
請求項1に係る発明によれば、アプリケーションの目的(アプリケーションが制御又は予測する指標)を与えると、その目的と因果関係を有するデータが、対応するデバイスからアプリケーションへと自動的に提供される。したがって、デバイスネットワーク内にどのようなデバイスが存在しどのようなデータが取得できるかとか、目的とする制御や予測を行うためにどのようなデータを参照すべきか、といった知識がなくても、アプリケーションの設計・開発が可能となる。よって、従来に比べて、デバイスネットワークにおけるデータを利用するアプリケーションの設計・開発が容易となり、デバイスネットワークにおけるデータの利用・流通が促進される。
【0016】
請求項2に係る発明は、前記因果関係は、2つの指標のあいだの因果強度の情報と、前記2つの指標のうちの一方の指標の影響が他方の指標に伝播するのにかかる遅延時間の情報とを含むことを特徴とする請求項1に記載のデータフロー制御装置である。請求項2に係る発明によれば、一方の指標(原因指標)から他方の指標(結果指標)への時間遅れ(伝播遅延)を考慮した因果関係を評価できる。
【0017】
請求項3に係る発明は、前記因果関係は、移動エントロピーを用いて定義されることを特徴とする請求項2に記載のデータフロー制御装置である。請求項3に係る発明によれば、移動エントロピーを用いることで時間遅れ(伝播遅延)を伴う因果関係及びその因果強度を適切に求めることができる。
【0018】
請求項4に係る発明は、前記デバイス指標選択部は、前記因果ネットワークにおいて、前記目的指標からの距離が近いデバイス指標を優先的に選択し、距離が同じ場合には因果強度が強い方のデバイス指標を優先的に選択し、距離も因果強度も同じ場合には遅延時間が短い方のデバイス指標を優先的に選択することを特徴とする請求項2又は3に記載のデータフロー制御装置である。請求項4に係る発明によれば、目的指標との関係が最も強いデバイス指標を選択することができる。このように選択されたデバイス指標を用いれば、高い妥当性をもって目的指標の値を推測することができる。
【0019】
請求項5に係る発明は、前記デバイス指標選択部は、デバイスがアクティブか非アクティブかを確認し、非アクティブなデバイスに対応するデバイス指標を選択の対象から除外することを特徴とする請求項1〜4のうちいずれか1項に記載のデータフロー制御装置である。請求項5に係る発明によれば、例えば、故障、停止、移動など、何らかの原因によって非アクティブな状態(データを取得できない状態)となっているデバイスが選択の対象から除外される。したがって、現在アクティブなデバイスのなかから、適切なデバイス(アプリケーションの目的指標と因果関係を有するデータを取得可能なデバイス)を自動で選択でき、システムのロバスト性を高めることができる。
【0020】
請求項6に係る発明は、複数のデバイスのうちの少なくともいずれかのデバイスにおいて得られるデータを、当該データを利用するアプリケーションへと提供する、データフローを制御するためのデータフロー制御方法であって、前記アプリケーションからデータ要求を受けた場合に、前記複数のデバイスのそれぞれにおいて得られるデータである複数のデバイス指標と、前記アプリケーションが制御又は予測する指標である目的指標とを少なくとも含む、複数の指標のあいだの因果関係を表す因果ネットワークに基づき、前記アプリケーションの目的指標と因果関係を有する少なくとも1つのデバイス指標を前記複数のデバイス指標の中から選択するステップと、前記選択されたデバイス指標に対応するデバイスにおいて得られるデータが、前記アプリケーションへ提供されるように、データフローを制御するステップと、を有することを特徴とするデータフロー制御方法である。
【0021】
請求項6に係る発明によれば、アプリケーションの目的(アプリケーションが制御又は
予測する指標)を与えると、その目的と因果関係を有するデータが、対応するデバイスからアプリケーションへと自動的に提供される。したがって、デバイスネットワーク内にどのようなデバイスが存在しどのようなデータが取得できるかとか、目的とする制御や予測を行うためにどのようなデータを参照すべきか、といった知識がなくても、アプリケーションの設計・開発が可能となる。よって、従来に比べて、デバイスネットワークにおけるデータを利用するアプリケーションの設計・開発が容易となり、デバイスネットワークにおけるデータの利用・流通が促進される。
【0022】
請求項7に係る発明は、請求項6に記載のデータフロー制御方法の各ステップをコンピュータに実行させることを特徴とするプログラムである。
【0023】
請求項7に係る発明によれば、アプリケーションの目的(アプリケーションが制御又は予測する指標)を与えると、その目的と因果関係を有するデータが、対応するデバイスからアプリケーションへと自動的に提供される。したがって、デバイスネットワーク内にどのようなデバイスが存在しどのようなデータが取得できるかとか、目的とする制御や予測を行うためにどのようなデータを参照すべきか、といった知識がなくても、アプリケーションの設計・開発が可能となる。よって、従来に比べて、デバイスネットワークにおけるデータを利用するアプリケーションの設計・開発が容易となり、デバイスネットワークにおけるデータの利用・流通が促進される。
【0024】
請求項8に係る発明は、センシングデータを出力するセンサを管理する情報処理装置が読み取り可能なデータストリームであって、前記センシングデータを利用するアプリケーションを特定する情報と、前記アプリケーションが制御又は予測する指標である目的指標と因果関係を有するセンシングデータを出力するものとして選択されたセンサを特定する情報と、前記選択されたセンサで得られるセンシングデータと前記目的指標のあいだの因果関係情報と、を含むことを特徴とする制御指令データストリームである。請求項8に係る発明によれば、アプリケーションの目的(アプリケーションが制御又は予測する指標)と因果関係を有するセンシングデータが対応するセンサからアプリケーションへと提供されるデータフローを実現できる。
【0025】
請求項9に係る発明は、前記因果関係情報は、前記センシングデータと前記目的指標のあいだの因果強度の情報と、前記センシングデータの影響が前記目的指標に伝播するのにかかる遅延時間の情報とを含むことを特徴とする請求項8に記載の制御指令データストリームである。請求項9に係る発明によれば、センシングデータ(原因指標)から目的指標(結果指標)への時間遅れ(伝播遅延)を考慮した因果関係を考慮したデータフロー制御を実現できる。
【0026】
なお、本発明は、上記構成ないし機能の少なくとも一部を有するデータフロー制御装置として捉えることができる。また、本発明は、データフロー制御装置を有するデバイスネットワークシステム、センサネットワークシステム、アクチュエータネットワークシステムとして捉えることもできる。また、本発明は、上記処理の少なくとも一部を含むデータフロー制御方法、又は、かかる方法をコンピュータに実行させるためのプログラム、又は、そのようなプログラムを非一時的に記録したコンピュータ読取可能な記録媒体として捉えることもできる。また、本発明は、上記データフローを制御するための制御指令データストリームとして捉えることもできる。上記構成及び処理の各々は技術的な矛盾が生じない限り互いに組み合わせて本発明を構成することができる。
【発明の効果】
【0027】
本発明によれば、デバイスネットワークにおけるデータの利用をより容易にすることができる。
【発明を実施するための形態】
【0029】
<システム構成>
図1および
図2を参照して、本発明の実施形態に係るデバイスネットワークシステムの構成例を説明する。
図1は、デバイスネットワークシステムの因果ネットワークの生成に関わる機能を示すブロック図であり、
図2は、デバイスネットワークシステムのデータフロー制御に関わる機能を示すブロック図である。
【0030】
デバイスネットワークシステムとは、多数のデバイスにおいて取得されるデータを、それを利用するアプリケーションへとオンライン且つリアルタイムで提供可能な仕組みである。デバイスネットワークシステムは、主に、デバイスネットワーク1、M2Mクラウドサーバ2、アプリケーション3、データフロー制御装置4などで構成される。
【0031】
(デバイスネットワーク)
デバイスネットワーク1は、多数のデバイス10によって構成されるネットワークである。デバイス10の数、種類、設置位置、ネットワークの構成や通信方式などは任意に設計でき、特に限定されない。各々のデバイス10は、例えばインターネットなどの広域ネットワークを介してM2Mクラウドサーバ2、アプリケーション3、データフロー制御装置4と通信可能である。
【0032】
各々のデバイス10は、空間又は時空間で規定される対象領域に対して作用するデバイスであって、「センサ」と「アクチュエータ」とに大別できる。ここで「空間」とは2次元(x,y)又は3次元(x,y,z)で規定される領域であり、「時空間」とは「空間」に「時間(t)」の次元を加えたもの、つまり3次元(x,y;t)又は4次元(x,y,z;t)で規定される領域をいう。なお本明細書では、「センサ」の語を、対象領域の状態を検知(取得)するデバイスという意味で用い、「アクチュエータ」の語を、対象領域の状態を変化させるデバイスという意味で用いる。センサには、例えば、画像センサ(カメラ)、温度センサ、湿度センサ、照度センサ、力センサ、音センサ、RFIDセンサ、赤外線センサ、姿勢センサ、降雨センサ、放射能センサ、ガスセンサなどが該当し、本システムではいかなる種類のセンサも利用することができる。またアクチュエータには、例えば、モータ、ソレノイド、コントローラ、ロボット、照明、スピーカ、ディスプレイ、デジタルサイネージ、空調など様々なものが該当し、本システムではいかなる種類のアクチュエータも利用することができる。携帯電話、スマートフォン、スレート型端末(タブレットPC)のように、センサ(画像センサなど)とアクチュエータ(ディスプレイ、スピーカなど)の両方を備えるデバイスも存在する。なお、デバイスネットワーク1の
中には、様々な種類のデバイスを混在させることが可能である。
【0033】
(M2Mクラウドサーバ)
M2Mクラウドサーバ2は、デバイスネットワーク1を構成する各デバイス10に関する情報や各デバイス10にて取得されたデータなどを管理すると共に、各デバイス10にて取得されたデータを広域ネットワークを通じて利用者(アプリケーション3)へと提供するサーバシステムである。
【0034】
M2Mクラウドサーバ2は、デバイス10を管理するためのデータベースであるデバイスデータDB20を有する。デバイスデータDB20には、デバイスに関する情報として、例えば、デバイスの属性情報(デバイスの種類、デバイスの位置・姿勢、デバイスの所有者、デバイスID、ネットワークアドレス、動作履歴など)、対象領域(センシングする領域又はアクチュエータが作用を及ぼす領域)の属性情報(位置範囲、時間範囲など)、対象物(センシングの対象又はアクチュエータが作用を及ぼす対象)の属性情報(種類、物理属性、対象物IDなど)、動作の属性情報(制御可能な項目、センシングのサンプリング仕様、量子化仕様など)、データの属性(データの管理者または所有者、利用範囲(例えばアカデミック利用に限る、商用利用禁止など)、アクセス権限範囲、データの種類、精度、単位系、信頼度、利用可能範囲、利用の対価、利用可能時間、データIDなど)などが登録される。またデバイスデータDB20には、デバイスにて取得されたデータとして、センサの場合にはセンシングデータ(センサ測定値)が、アクチュエータの場合にはコントロールデータ(アクチュエータ制御値)が、それぞれ格納される。センシングデータやコントロールデータは最新のデータだけでなく、所定の期間分の時系列データが蓄積されているとよい。
【0035】
(アプリケーション)
アプリケーション3は、デバイスネットワーク1から得られるデータを利用する装置又はソフトウェアモジュールである。アプリケーション3としては、デバイスネットワーク1から得られるデータを基に制御対象を制御するものや、デバイスネットワーク1から得られるデータを基に未知又は未来の状態を予測するものなどが想定される。例えば、オフィスの生産性を向上させるアプリケーション、工場の消費エネルギを抑えたり予測したりするアプリケーション、渋滞予測を行うアプリケーションなど、いかなるアプリケーションでもよい。
【0036】
(データフロー制御装置)
データフロー制御装置4は、デバイスとアプリケーションのあいだの条件のマッチングを行い、アプリケーションが所期の目的(制御ないし予測)を達成するのに必要なデータが適切なデバイスから提供されるように、データフローを制御する機能を有する。
【0037】
従来システム(特許文献3参照)では、アプリケーションが必要なデータの仕様を定義したアプリ側メタデータを発行し、その要求仕様を満たすデバイスを探索するという仕組みを採っていた。しかしこのような仕組みの場合、アプリケーションの開発者や設計者が、デバイスネットワーク1内にどのようなデバイスが存在しどのようなデータが取得できるか、さらには、目的とする制御や予測を行うためにどのようなデータを参照すべきか、等を理解していなければならず、高度な開発スキルが要求されていた。また、前述した「オフィスの生産性の向上」を目的とするアプリケーションのように、目的とする制御や予測を行うためにどのようなデータを参照すればよいのか、容易には分からないケースも多い。また一見すると簡単に見える問題でも、実は現実世界における様々な事象が絡み合っているということもある。
【0038】
そこで、本システムでは、データフロー制御装置4が、(1)複数のデバイス10のそ
れぞれにおいて得られるデータ(「デバイス指標」とよぶ)と、アプリケーション3が制御又は予測する指標(「目的指標」とよぶ)とを少なくとも含む、複数の指標のあいだの因果関係を表す因果ネットワークを生成する機能(
図1参照)と、(2)この因果ネットワークを用いて、目的指標と因果関係をもつデバイス指標を選択し、その選択されたデバイス指標のデータがアプリケーション3へ提供されるようにデータフローを制御する機能(
図2参照)を実施する。ここで、「アプリケーションが制御する指標」とは、アプリケーションが制御する制御対象の状態等を表す指標を意味し、例えば、制御対象の状態や出力をセンサ等により測定することで観測できる指標である。例えば、オフィスの生産性を向上するアプリケーションの場合であれば、生産性を直接又は間接的に表す指標として、時間当たりの処理件数や売り上げなどを目的指標として用いることができる。また「アプリケーションが予測する指標」とは、アプリケーションが計算によって予測ないし推定する指標を意味する。例えば、渋滞予測を行うアプリケーションの場合であれば、道路を通過するのに見込まれる時間や渋滞の長さなどを目的指標として用いることができる。詳細については後述する。
【0039】
M2Mクラウドサーバ2、アプリケーション3を実行する装置、データフロー制御装置4は、いずれも、CPU(中央演算処理装置)、メモリ、補助記憶装置、通信IF、入力デバイス、表示デバイスなどを有する汎用のコンピュータにより構成することができる。後述する機能及び処理は、補助記憶装置に格納されたプログラムをCPUが読み込み、実行することにより、実現されるものである。コンピュータとしては、パーソナルコンピュータ、スマートフォン、携帯情報端末などでもよいし、サーバコンピュータでもよい。また、一台のコンピュータでなく、複数のコンピュータにより分散処理を行ってもよい。
【0040】
<因果ネットワークの生成>
図1、
図3〜
図8を参照して、本実施形態のデータフロー制御装置4による因果ネットワークの生成について説明する。
図3及び
図4は、因果ネットワークの生成処理のフローチャートであり、
図5は、目的指標の時系列データの一例、
図6A〜
図6Dは、デバイス指標の時系列データの一例である。
図7は、因果関係データの一例であり、
図8は、因果ネットワークの一例である。
【0041】
本実施形態では、一具体例として、オフィスの生産性を向上するアプリケーション3を例に挙げる。
図1および
図3に示すように、データフロー制御装置4の因果ネットワーク生成部40は、アプリケーション3から目的指標の時系列データを取得する(ステップS30)。
図5に目的指標の時系列データの一例を示す。ここでは、一時間ごとのオフィスの生産性を示す指標値(単位なし)が与えられる。この時系列データは、アプリケーション3が所定期間にわたって測定し記録したデータであり、例えば、時間当たりの処理件数や売り上げなどを目的指標として用いることができる。時系列データの期間は任意であるが、因果関係推定の信頼性を考慮すると、少なくとも数日間、望ましくは数週間から数か月分の時系列データが得られるとよい。
【0042】
次に、因果ネットワーク生成部40は、M2Mクラウドサーバ2のデバイスデータDB20から、各デバイス10のデバイス指標の時系列データを取得する(ステップS31)。例えば、オフィス内に設置された温度センサで測定された室温の時系列データ(
図6A)、オフィスの外の設置された温度センサで測定された外気温の時系列データ(
図6B)、オフィス内のエアコンの消費電力量の時系列データ(
図6C)、オフィス内に設置された騒音センサで測定された騒音レベルの時系列データ(
図6D)など、様々なデバイス指標を取得するとよい。他にも、例えば、オフィス内のエアコンの制御値(温度設定値)、オフィスの天井照明の制御値(明るさ設定)、オフィス内に設定された照度センサの測定値、オフィス全体の消費電力量、オフィスのLANのネットワーク負荷、オフィスのプリンタや複写機の印刷枚数など、様々な種類のセンシングデータないしコントロールデータ
を取得するとよい。なお、デバイスネットワーク1を構成するデバイス10の数が膨大であり、すべてのデバイス10のデバイス指標の時系列データを取得することがデータ容量や計算コストの点から現実的でない場合には、ステップS31において一部のデバイス10のデバイス指標の時系列データのみを取得してもよい。例えば、アプリケーション3の制御対象や予測範囲、あるいは位置範囲などに基づいて、関連性のありそうなデバイスを大まかに絞り込み、その絞り込まれたデバイスの時系列データのみをM2Mクラウドサーバ2から受け取ればよい(デバイスの絞り込みはM2Mクラウドサーバ2とデータフロー制御装置4のいずれが行ってもよい)。これにより因果ネットワークの生成にかかる計算コストを低減することができる。
【0043】
次に、因果ネットワーク生成部40は、目的指標とデバイス指標の時系列データに基づき、2つの指標(原因と結果)の全通りの組み合わせについて、因果強度・相関係数・遅延時間を計算する(ステップS32)。ステップS32の処理の詳細を
図4のフローチャートに示す。ここでは、目的指標とデバイス指標をあわせてm個の指標E1〜Emが得られたものとする。
【0044】
因果ネットワーク生成部40は、m個の指標E1〜Emの中から2つの指標の組(Ei,Ej)を選択し(ステップS41)、以下に述べる処理を行う。ここで、Eiが原因指標、Ejが結果指標を表し、指標番号を表す添え字i、jは、i=1〜m、j=1〜m、i≠jを満たす。
【0045】
まず因果ネットワーク生成部40は、遅延時間sを最小値sminに設定する(ステップS42)。そして、因果ネットワーク生成部40は、原因指標Eiと時間s後の結果指標Ejのあいだの因果強度を求める(ステップS43)。本実施形態では、移動エントロピーTEijを因果強度として用いる。
【0046】
移動エントロピーとは、二つの指標X、Yのあいだの伝播時間(遅延時間)を考慮した因果関係を評価する尺度ないし手法であり、指標Xから時間s後の指標Yへと移動した平均情報量(エントロピー)を、原因指標Xが時間s後に結果指標Yに与える影響の強さ(つまり因果強度)とみなす考え方である。なお、似た概念に相関係数があるが、相関係数は2つの指標XとYの間の線形関係の度合いと線形関係の符号を評価するだけであり、因果の方向(どちらの指標が因でとちらが果か)および時間遅れを考慮していない点で、移動エントロピーとは異なる。
【0047】
指標X、Yそれぞれの時系列データをx(t)、y(t)とし、確率密度関数をP(x(t))、P(y(t))とすると、指標Xを因、指標Yを果とする、遅延時間sに関する移動エントロピーTE
XY(s)は、次式で計算できる。
【数1】
ここで、P(a,b)は、P(a)とP(b)の結合確率密度変数を表し、[*]は*の時間平均を表す。
【0048】
上式から分かるように、移動エントロピーは、二つの指標X、Yの時系列データと遅延時間sを与えることで計算できる。ここで、指標X、Yのあいだに、Xを因、Yを果とする因果関係が存在する場合には、TE
XY(s)の値と、因と果を入れ替えて計算したTE
YX(s)の値とのあいだに、TE
XY(s)>TE
YX(s)が成立する。よって、
TE
XY(s)とTE
YX(s)の値の大小関係を評価することにより、因果関係の存在および因果の方向を判断できる。また、sの値を変えながら移動エントロピーTE
XY(s)を計算することで、原因指標Xと結果指標Yのあいだの因果強度の最大値、及び、因果強度が最大となる遅延時間sを求めることができる。
【0049】
ステップS41の処理において、逆方向の移動エントロピー、すなわち、時間s後の指標Ejから指標Eiへの移動エントロピーTEjiを計算し、もし逆方向の移動エントロピーの方が大きい場合(TEji>TEij)には、2つの指標(Ei,Ej)のあいだには指標Eiが原因、指標Ejが結果となる因果関係はないと判断し、因果強度をゼロにするとよい。
【0050】
原因指標Eiと結果指標Ejのあいだに因果関係が認められた場合(因果強度がゼロでない場合)は(ステップS44;YES)、因果ネットワーク生成部40は、原因指標Eiと時間s後の結果指標Ejの相関係数を計算する(ステップS45)。相関係数の計算方法は公知のため説明を省略する。
【0051】
以上のステップS43〜S45の処理を、sの値を時間ステップ幅Δsずつ増やしながら繰り返し実行し(ステップS46)、遅延時間の最大値smaxまで処理を終えたら(ステップS47)、次の指標の組の処理へと移行する(ステップS48;NO)。そして、2つの指標の全通りの組について因果関係の評価を終えたら(ステップS48;YES)、
図3のステップS33へ進む。
【0052】
因果ネットワーク生成部40は、因果関係データを生成し、因果ネットワーク記憶部41に格納する(ステップS33)。
【0053】
図7は、因果関係データのデータ構造の一例を模式的に示している。因果関係データは、アプリケーション3又は目的指標を特定するための情報である「対象識別情報」と、m個の指標それぞれがどのデバイスから取得した情報かを特定するための情報である「指標識別情報」と、2つの指標の組ごとの因果関係情報とを含んでいる。対象識別情報には、例えば、アプリケーション3のID、目的指標のIDなどが記述される。指標識別情報には、例えば、各指標に対応するデバイスのIDなどが記述される。ただし、指標1は目的指標とし、指標1の指標識別情報にはアプリケーション3のIDを記述するものとする。
【0054】
因果関係情報はm×mの2次元配列で構成されており(
図7は、m=6の例である)、要素番号(i,j)のセルに原因指標iと結果指標jのあいだの因果関係情報が格納される。要素番号(3,4)の因果関係情報Ark(3,4)のデータ記述例を以下に示す。
【0055】
Ark(3,4) = {
Causality = 0.58;
Delay = 3;
Co_CoEf = −0.7
}
【0056】
Causalityは、原因指標iと結果指標jのあいだの最大の因果強度(移動エントロピー)を表す強度情報であり、Delayは、因果強度が最大となる遅延時間を表す時間情報である。Co_CoEfは、原因指標iの増減に対する結果指標jの変化の方向(正の相関か負の相関か)を表す相関情報である。この例では、Delayの単位として「時間」を用い、相関情報として、原因指標iとDelay後の結果指標jとのあいだの相関係数を用いている。すなわち、上記例の因果関係情報Ark(3,4)からは、原因指標3と結果指標4とのあいだには因果関係が存在し、その因果の方向は指標3→指標4
であること、因果強度は0.58であること、原因指標3の影響が結果指標4に伝播するのに3時間かかる(遅れる)こと、原因指標3と結果指標4とのあいだには負の相関があり、その強さは0.7であることなどが分かる。
【0057】
なお、前述したステップS44において、指標iとjのあいだに因果関係なしと判断された場合には、Ark(i,j)にはNULLが設定される。また、i=jとなるセルのArk(i,j)にもNULLが設定される。
【0058】
図8は、
図7の因果関係データをもとに、指標間の因果関係を有向グラフで示した因果ネットワークの一例である。この有向グラフにおいて、各ノードが指標に対応しており、指標のIDと対応するデバイスのIDが各ノードに関連付けられている。2つのノードのあいだをリンクするアークが2つのノードのあいだの因果関係及び因果の方向を示している(アークの基端側が原因ノード、矢印側が結果ノード)。またアークの太さは因果強度を示している。
図8の例では、デバイスAで得られる指標3→デバイスCで得られる指標6→デバイスEで得られる指標4→アプリケーション3の目的指標1の順に因果の強い伝播があることがわかる。言い換えると、アプリケーション3の目的指標1の値ないし状態を推測するには、デバイス指標4、デバイス指標6、デバイス指標3が役立つことがわかる。
【0059】
<データフローの制御>
図2、
図9、
図10を参照して、本実施形態のデータフロー制御装置4によるデータフロー制御について説明する。
図9は、デバイス指標の選択処理およびデータフロー制御処理のフローチャートであり、
図10は、因果ネットワークに基づくデバイス指標の選択を模式的に示す図である。
【0060】
図2に示すように、データフロー制御装置4は、データフロー制御に関わる機能として、デバイス指標選択部42およびデータフロー制御部43を有している。因果ネットワーク記憶部41には、アプリケーション3の目的指標について既に生成された因果関係データが格納されているものとする。
【0061】
まず、デバイス指標選択部42は、アプリケーション3からデータ要求としてのアプリ側メタデータを取得する(ステップS90)。アプリ側メタデータには、例えば、目的指標のID、希望する利用時間や料金などが含まれている。また、デバイス指標選択部42は、M2Mクラウドサーバ2のデバイスデータDB20から、各デバイス10のデバイス側メタデータを取得する(ステップS91)。デバイス側メタデータには、前述したデバイスに関する情報が記述されている。なお、デバイスネットワーク1を構成するデバイス10の数が膨大であり、すべてのデバイス10のメタデータを取得することがデータ容量や計算コストの点から現実的でない場合には、ステップS91において一部のデバイス10のメタデータのみを取得してもよい。この場合も、例えば、アプリケーション3の制御対象や予測範囲、あるいは位置範囲などに基づいて、関連性のありそうなデバイスを大まかに絞り込み、その絞り込まれたデバイスのメタデータのみをM2Mクラウドサーバ2から受け取ればよい(デバイスの絞り込みはM2Mクラウドサーバ2とデータフロー制御装置4のいずれが行ってもよい)。
【0062】
次に、デバイス指標選択部42は、因果ネットワーク記憶部41に格納された因果ネットワーク(因果関係データ)に基づいて、目標指標と因果関係を有するデバイス指標を選択する(ステップS92)。本実施形態では、以下のルールにしたがってデバイス指標の候補が選択される。
【0063】
(1)因果ネットワークにおいて、目的指標からの距離が近いデバイス指標を優先する
。なお「距離」は、2つの指標(ノード)のあいだにあるアークの数と定義する。
(2)距離が同じ場合は、因果強度が強い方の指標を優先する(ただし、因果強度が所定の閾値に満たない指標は選択しない)。
(3)距離も因果強度も同じ場合は、遅延時間が短い方の指標を優先する。
【0064】
図10は、
図8の因果ネットワークにおいて、因果強度が閾値よりも大きいという条件を満足する因果関係のみを示す、部分ネットワークである。この
図10に上記ルール(1)〜(3)を適用すると、指標4→指標2→指標6→指標3の順に候補が選ばれる。これにより、目的指標との関係が強いデバイス指標を優先的に選択することができる。
【0065】
デバイス指標選択部42は、ステップS92で選択された候補指標に対応するデバイスがアクティブか否かを確認する(ステップS93)。デバイスがアクティブか非アクティブかを示す情報については、デバイスから直接得てもよいし(例えば、pingコマンドなどを用いてデバイスのステイタスを確認する。)、M2Mクラウドサーバ2から得てもよい。デバイスが非アクティブの場合、すなわち、デバイスの停止、故障、移動などにより当該デバイスから現在のデータ(最新のデータ)を取得できない状態の場合は(ステップS93;NO)、ステップS92に戻り次の候補指標を選択する。デバイスがアクティブの場合、すなわち、当該デバイスから現在のデータを取得可能な状態の場合は(ステップS93;YES)、デバイス指標選択部42は、メタデータに記述された他の条件(例えば、対価、利用範囲、利用時間など)がアプリケーション3の要求とマッチするかを確認する(ステップS94)。マッチしない条件がある場合には(ステップS94;NO)、ステップS92に戻り次の候補指標を選択する。以上の処理によって、目的指標と因果関係を有し、且つ、デバイスがアクティブで、且つ、他の条件も満足するデバイス指標が選択される。
【0066】
そして、データフロー制御部43が、選択されたデバイス指標に対応するデバイス10を送信元としアプリケーション3を送信先とするデータフロー制御指令を生成し、そのデータフロー制御指令をM2Mクラウドサーバ2に送信する(ステップS95)。
【0067】
図10において、「指標6:デバイスC」が選択された場合のデータフロー制御の一例を説明する。このときデータフロー制御部43は、「デバイスC」から「アプリケーション3」へのデータフロー制御指令をM2Mクラウドサーバ2に送信する。データフロー制御指令には、例えば以下の情報が含まれる。
・デバイスCのID
・アプリケーション3のID
・デバイスCで取得される指標6(原因)→指標4(結果)の因果関係情報Ark(6,4)
・指標4(原因)→目的指標1(結果)の因果関係情報Ark(4,1)
【0068】
センサ等のデバイスを管理する情報処理装置としてのM2Mクラウドサーバ2は、データフロー制御部43から発行(送信)されるデータフロー制御指令(制御指令データストリームとも呼ぶ)を読み取ると、次のデータフロー制御を実行する。M2Mクラウドサーバ2は、因果関係情報Ark(6,4)における因果強度、遅延時間、相関係数などのパラメータに基づき、指標6のデータから指標4のデータを予測(推測)する予測関数f
6→4を生成する。また、M2Mクラウドサーバ2は、同じように、指標4のデータから目的指標1のデータを予測(推測)する予測関数f
4→1を生成する。
【0069】
そして、M2Mクラウドサーバ2は、デバイスCにて取得した最新のデータdcから、目的指標1の予測データdpを、
dp=f
4→1(f
6→4(dc))
のように計算し、データdpをアプリケーション3に送信する。このように、目的指標1との因果関係が強いデバイス指標6のデータdcから目的指標1のデータdpを求めるため、高い妥当性をもって目的指標1の値を推測することができる。
【0070】
なお、M2Mクラウドサーバ2で予測データdpを計算する代わりに、データdcと因果関係情報Ark(6,4)及びArk(4,1)、又は、データdcと予測関数f
6→4及びf
4→1をアプリケーション3に送信し、アプリケーション3側でデータdcから目的指標1の値dpの計算を実行してもよい。
【0071】
以上の構成によれば、アプリケーションの目的(アプリケーションが制御又は予測する指標)を与えると、その目的と因果関係を有するデータが、対応するデバイス10からアプリケーション3へと自動的に提供される。したがって、デバイスネットワーク1内にどのようなデバイスが存在しどのようなデータが取得できるかとか、目的とする制御や予測を行うためにどのようなデータを参照すべきか、といった知識がなくても、アプリケーション3の設計・開発が可能となる。よって、従来に比べて、デバイスネットワーク1におけるデータを利用するアプリケーション3の設計・開発が容易となり、デバイスネットワーク1におけるデータの利用・流通が促進される。
【0072】
また、故障、停止、移動など、何らかの原因によって非アクティブな状態(データを取得できない状態)となっているデバイスが選択の対象から除外される。したがって、現在アクティブなデバイスのなかから、適切なデバイス(アプリケーション3の目的指標と因果関係を有するデータを取得可能なデバイス)を自動で選択でき、システムのロバスト性を高めることができる。
【0073】
<アプリケーションによるデバイスの制御>
上記実施形態では、アプリケーション3へ提供するデバイス指標を選択するために因果ネットワークを利用したが、さらに進んで、アプリケーション3が目的指標の値を積極的に調整するために因果ネットワークを利用することも可能である。
【0074】
図11の例のように、目的指標1に影響を与え得る指標として、デバイス指標2,4,6,3が選ばれているとする。これらのデバイス指標に対応するデバイスD,E,C,Aのなかにアクチュエータが存在する場合には、アプリケーション3から当該アクチュエータに対してデバイス制御命令を送ることで、目的指標1の値を調整(増加又は減少)させることが可能である。
【0075】
例えば、
図11において、
・デバイスCがエアコン、指標6がエアコンの温度設定値
・デバイスEが室内温度センサ、指標4がオフィス内の温度
・目的指標1がオフィスの生産性
と想定した場合、アプリケーション3が目的指標1(オフィスの生産性)の値を目標値に近づけるために、デバイスC(エアコン)の指標6(温度設定値)を変更するデバイス制御命令を送信し、オフィス内の温度を変更する、というシステムが構築できる。なお、デバイス制御命令は、アプリケーション3からデバイスCへ直接送信してもよいし、M2Mクラウドサーバ2を仲介してもよい。
【0076】
このように、因果ネットワークを用いることにより、目的指標の値に影響を及ぼし得るアクチュエータを容易に特定することができる。またアプリケーション3によるデバイス制御を可能にしたことで、アプリケーション3による目的指標の積極的な調整が可能となり、アプリケーション開発の自由度が高まる。
【0077】
<その他の実施形態>
上述した実施形態の構成は本発明の一具体例を示したものにすぎず、本発明の範囲を限定する趣旨のものではない。本発明はその技術思想を逸脱しない範囲において、種々の具体的構成を採り得るものである。
【0078】
例えば、上記実施形態では、因果ネットワークの例として数個の指標(デバイス)のみを図示したが、実際には数十から数百、あるいはそれ以上の指標(デバイス)の因果ネットワークを形成することも可能である。また上記実施形態では、デバイスの例としてセンサとアクチュエータを示したが、実デバイスだけでなく、仮想的なデバイス(例えば複数のセンサで得られたセンシングデータを組み合わせて1つのセンシングデータを出力するようにしたモジュールなど)を用いることもできる。また上記実施形態では、デバイス制御の例としてアクチュエータを制御する例を示したが、センサを制御(例えば、カメラのパン・チルト・ズームの調整、測定のサンプリング周期の変更など)することもできる。