(57)【要約】【課題】ユーザの要求に応じて仮想デバイスを自動で生成することによって、ユーザの要求を満足するデバイスの情報を提供できる可能性を拡大する。【解決手段】デバイス情報提供システムは、ユーザの検索要求に含まれる出力要件と、各処理モジュールの出力要件とを比較することによって、検索要求で指定された所望の出力結果を取得可能な処理モジュールを処理モジュールＤＢから抽出し、前記抽出された処理モジュールの入力要件と、各デバイスの出力要件とを比較することによって、前記抽出された処理モジュールの入力として利用可能な出力をもつ１又は複数のデバイスをデバイスＤＢから抽出して、前記抽出した１又は複数のデバイスと前記抽出した処理モジュールの組み合わせからなる仮想デバイスを生成し、前記仮想デバイスの情報を検索結果としてユーザに提供する。【選択図】図１
2014153797.tif 000002
【特許請求の範囲】
【請求項１】
デバイスを検索するための検索要求として、所望の出力結果を特定するための出力要件を含む検索要求を受け付ける検索要求受付手段と、
１又は複数の他のデバイスからの出力を入力とし、それらの入力を組み合わせて新たな出力を生成する処理モジュールに関する情報を、少なくとも、処理モジュールの入力を特定するための入力要件、及び、処理モジュールの出力を特定するための出力要件と共に、複数の処理モジュールについて登録した処理モジュールＤＢと、
デバイスに関する情報を、少なくとも、デバイスの出力を特定するための出力要件と共に、複数のデバイスについて登録したデバイスＤＢと、
前記検索要求に含まれる出力要件と、各処理モジュールの出力要件とを比較することによって、前記検索要求で指定された前記所望の出力結果を取得可能な処理モジュールを前記処理モジュールＤＢから抽出する処理モジュール抽出手段と、
前記抽出された処理モジュールの入力要件と、各デバイスの出力要件とを比較することによって、前記抽出された処理モジュールの入力として利用可能な出力をもつ１又は複数のデバイスを前記デバイスＤＢから抽出して、前記抽出した１又は複数のデバイスと前記抽出した処理モジュールの組み合わせからなる仮想デバイスを生成する仮想デバイス生成手段と、
前記仮想デバイス生成手段で生成された仮想デバイスの情報を検索結果としてユーザに提供するデバイス情報提供手段と、
を有することを特徴とするデバイス情報提供システム。
【請求項２】
前記検索要求に含まれる出力要件と、各デバイスの出力要件とを比較することによって、前記検索要求で指定された前記所望の出力結果を取得可能なデバイスを前記デバイスＤＢから抽出するデバイス抽出手段をさらに有し、
前記デバイス情報提供手段は、前記デバイス抽出手段で抽出されたデバイスの情報を検索結果としてユーザに提供する
ことを特徴とする請求項１に記載のデバイス情報提供システム。
【請求項３】
前記デバイス抽出手段によるデバイスの抽出処理は、前記処理モジュール抽出手段による処理モジュールの抽出処理及び前記仮想デバイス生成手段による仮想デバイスの生成処理よりも優先的に行われる
ことを特徴とする請求項２に記載のデバイス情報提供システム。
【請求項４】
前記デバイス抽出手段によるデバイスの抽出結果が所定の条件に達しない場合にのみ、前記処理モジュール抽出手段による処理モジュールの抽出処理及び前記仮想デバイス生成手段による仮想デバイスの生成処理が行われる
ことを特徴とする請求項３に記載のデバイス情報提供システム。
【請求項５】
前記デバイスＤＢは、物理的に存在する実デバイスに関する情報を登録した実デバイスＤＢと、仮想デバイスに関する情報を登録した仮想デバイスＤＢとを有する
ことを特徴とする請求項１〜４のうちいずれか１項に記載のデバイス情報提供システム。
【請求項６】
前記仮想デバイス生成手段は、前記抽出された処理モジュールの入力として利用可能な出力をもつデバイスを、前記実デバイスＤＢに登録されている実デバイスと前記仮想デバイスＤＢに登録されている仮想デバイスのなかから抽出する
ことを特徴とする請求項５に記載のデバイス情報提供システム。
【請求項７】
前記仮想デバイス生成手段によって新たに仮想デバイスが生成された場合に、当該新たな仮想デバイスに関する情報が前記仮想デバイスＤＢに自動で登録される
ことを特徴とする請求項５又は６に記載のデバイス情報提供システム。
【請求項８】
センサを検索するための検索要求として、所望のセンシングデータを特定するためのデータ要件を含む検索要求を受け付ける検索要求受付手段と、
１又は複数のセンシングデータを加工して新たなセンシングデータを生成する処理モジュールに関する情報を、少なくとも、入力として用いるセンシングデータのデータ要件である入力要件、及び、生成する新たなセンシングデータのデータ要件である出力要件と共に、複数の処理モジュールについて登録した処理モジュールＤＢと、
センサに関する情報を、少なくとも、出力するセンシングデータのデータ要件である出力要件と共に、複数のセンサについて登録したセンサＤＢと、
前記検索要求に含まれるデータ要件と、各処理モジュールの出力要件とを比較することによって、前記検索要求で指定された前記所望のセンシングデータを生成可能な処理モジュールを前記処理モジュールＤＢから抽出する処理モジュール抽出手段と、
前記抽出された処理モジュールの入力要件と、各センサの出力要件とを比較することによって、前記抽出された処理モジュールの入力として用いるセンシングデータを取得可能な１又は複数のセンサを前記センサＤＢから抽出して、前記抽出した１又は複数のセンサと前記抽出した処理モジュールの組み合わせからなる仮想センサを生成する仮想センサ生成手段と、
前記仮想センサ生成手段で生成された仮想センサの情報を検索結果としてユーザに提供するセンサ情報提供手段と、
を有することを特徴とするデバイス情報提供システム。
【請求項９】
１又は複数の他のデバイスからの出力を入力とし、それらの入力を組み合わせて新たな出力を生成する処理モジュールに関する情報を、少なくとも、処理モジュールの入力を特定するための入力要件、及び、処理モジュールの出力を特定するための出力要件と共に、複数の処理モジュールについて登録した処理モジュールＤＢと、
デバイスに関する情報を、少なくとも、デバイスの出力を特定するための出力要件と共に、複数のデバイスについて登録したデバイスＤＢと、
を有するコンピュータが、
デバイスを検索するための検索要求として、所望の出力結果を特定するための出力要件を含む検索要求を受け付けるステップと、
前記検索要求に含まれる出力要件と、各処理モジュールの出力要件とを比較することによって、前記検索要求で指定された前記所望の出力結果を取得可能な処理モジュールを前記処理モジュールＤＢから抽出するステップと、
前記抽出された処理モジュールの入力要件と、各デバイスの出力要件とを比較することによって、前記抽出された処理モジュールの入力として利用可能な出力をもつ１又は複数のデバイスを前記デバイスＤＢから抽出して、前記抽出した１又は複数のデバイスと前記抽出した処理モジュールの組み合わせからなる仮想デバイスを生成するステップと、
前記生成された仮想デバイスの情報を検索結果としてユーザに提供するステップと、
を実行することを特徴とするデバイス情報提供方法。
【請求項１０】
１又は複数のセンシングデータを分析加工して新たなセンシングデータを生成する処理モジュールに関する情報を、少なくとも、入力として用いるセンシングデータのデータ要件である入力要件、及び、生成する新たなセンシングデータのデータ要件である出力要件と共に、複数の処理モジュールについて登録した処理モジュールＤＢと、
センサに関する情報を、少なくとも、出力するセンシングデータのデータ要件である出力要件と共に、複数のセンサについて登録したセンサＤＢと、
を有するコンピュータが、
センサを検索するための検索要求として、所望のセンシングデータを特定するためのデータ要件を含む検索要求を受け付けるステップと、
前記検索要求に含まれるデータ要件と、各処理モジュールの出力要件とを比較することによって、前記検索要求で指定された前記所望のセンシングデータを生成可能な処理モジュールを前記処理モジュールＤＢから抽出するステップと、
前記抽出された処理モジュールの入力要件と、各センサの出力要件とを比較することによって、前記抽出された処理モジュールの入力として用いるセンシングデータを取得可能な１又は複数のセンサを前記センサＤＢから抽出して、前記抽出した１又は複数のセンサと前記抽出した処理モジュールの組み合わせからなる仮想センサを生成するステップと、
前記生成された仮想センサの情報を検索結果としてユーザに提供するステップと、
を実行することを特徴とするデバイス情報提供方法。
【請求項１１】
請求項９又は１０に記載のデバイス情報提供方法の各ステップをコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、様々な場所にある多数のデバイスの中から目的に合致するものを簡単に検索できるようにするための技術に関する。
【背景技術】
【０００２】
ユビキタス社会を実現するための一手段として、センサネットワークが注目を集めている。センサネットワークとは、検知機能と通信機能をもつセンサデバイスを様々な場所に設置しそれらをネットワーク化することで、センシングデータの収集、管理、シームレスな利用を可能化する技術である。センサネットワークが実現すれば、あらゆる場所の状況を何処からでも素早く正確に把握することが容易となるので、製造現場や物流などの産業分野への応用はもちろんのこと、交通・各種インフラといった社会システムや、医療・教育などの生活に関わる分野まで、幅広い応用が期待されている。
【０００３】
ところで、センサネットワークにおいては、センサの数や種類が増えるほどシステム全体としての能力（分解能、対応エリアの広さ、取得可能なセンシングデータの種別など）が高くなるという利点がある一方で、選択肢が多すぎると、目的とする情報を得るために最適なセンサを見つけるのが難しくなり、利便性が低下するといった弊害が懸念される。このような問題を解決すべく、たとえば特許文献１のセンサネットワークでは、センサ管理システムが、利用者のセンサ要求を受け付け、そのセンサ要求に対応するセンササービスを探索し利用者に提供する方法が提案されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−２６０９１４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明者らは、センサネットワークの可能性の一つとして「仮想センサ」と呼ばれる技術に注目している。仮想センサとは、他のセンサから得られたセンシングデータを分析加工して新たなセンシングデータとして出力するものをいう。すなわち、仮想センサの実体は１個又は複数個の実センサとデータ加工を行うプログラムモジュールの組み合わせである。それらをカプセル化したものを仮想センサとして用意し、センサネットワークの利用者に提供すれば、利用者は実センサとの区別なく仮想センサを利用できる。このような仮想センサの導入により、リソース（実センサ）の利用率の向上、新たな付加価値をもつセンシングデータの提供など、様々な効果が期待できる。
【０００６】
ところで、上述したようにセンサネットワークサービスの実現・普及にあたっては、目的とするセンサを簡易に検索できる仕組みを整えることが肝要である。それゆえ、仮想センサについてもその検索を可能とすべく、実センサとプログラムモジュールの組み合わせ、出力されるセンシングデータの種別などを定義し、その情報を検索用のデータベースに登録しておくことが望ましい。しかしながら、実センサの組み合わせ方やデータの加工方法は無限にあり、アイデア次第で様々な機能の仮想センサを創りだせる可能性があるところ、その全てを予め作成しデータベースに登録しておくことは現実的に不可能である。とはいえ、登録された限られた種類の仮想センサしか利用できないとなれば、せっかくのリソースを有効活用することができず勿体無い。
【０００７】
なお、ここまでセンサネットワークを例に挙げて説明をしたが、アクチュエータ（コン
トローラ）のネットワークの場合にも、全く同様の課題が発生し得る。「センサ」と「アクチュエータ（コントローラ）」とは、「状態を検知（取得）する」のか「状態を変化させる」のかという違いはあるものの、所定の範囲の対象領域に対して何らかの作用を行うという点では共通である。以下、「センサ」と「アクチュエータ」を包含する概念として「デバイス」という用語を用いる。なお、仮想アクチュエータとは、複数個の実アクチュエータの出力を組み合わせて新たな付加価値を生むものをいう。
【０００８】
本発明は、上記実情に鑑みなされたものであって、その目的とするところは、ユーザの要求に応じて仮想デバイスを自動で生成することによって、ユーザの要求を満足するデバイスの情報を提供できる可能性を拡大するための技術を提供することにある。
【課題を解決するための手段】
【０００９】
上記目的を達成するために、本発明では以下の構成を採用する。すなわち、本発明に係るデバイス情報提供システムは、デバイスを検索するための検索要求として、所望の出力結果を特定するための出力要件を含む検索要求を受け付ける検索要求受付手段と、１又は複数の他のデバイスからの出力を入力とし、それらの入力を組み合わせて新たな出力を生成する処理モジュールに関する情報を、少なくとも、処理モジュールの入力を特定するための入力要件、及び、処理モジュールの出力を特定するための出力要件と共に、複数の処理モジュールについて登録した処理モジュールＤＢと、デバイスに関する情報を、少なくとも、デバイスの出力を特定するための出力要件と共に、複数のデバイスについて登録したデバイスＤＢと、前記検索要求に含まれる出力要件と、各処理モジュールの出力要件とを比較することによって、前記検索要求で指定された前記所望の出力結果を取得可能な処理モジュールを前記処理モジュールＤＢから抽出する処理モジュール抽出手段と、前記抽出された処理モジュールの入力要件と、各デバイスの出力要件とを比較することによって、前記抽出された処理モジュールの入力として利用可能な出力をもつ１又は複数のデバイスを前記デバイスＤＢから抽出して、前記抽出した１又は複数のデバイスと前記抽出した処理モジュールの組み合わせからなる仮想デバイスを生成する仮想デバイス生成手段と、前記仮想デバイス生成手段で生成された仮想デバイスの情報を検索結果としてユーザに提供するデバイス情報提供手段と、を有することを特徴とする。
【００１０】
上記構成によれば、ユーザの検索要求に基づいて、ユーザ所望の出力結果を取得可能な処理モジュールと、その処理モジュールの入力として利用可能な出力をもつデバイスとが自動で選定され、仮想デバイスが自動で生成される。したがって、ユーザの要求に合致するデバイスが存在しない（予め検索用のデータベースに登録されていない）場合であっても、新たな仮想デバイスを創りだすことでユーザの要求に応じることができるため、デバイスネットワークのリソースの有効利用、ユーザによる利用機会の増大などを図ることができる。
【００１１】
本システムが、前記検索要求に含まれる出力要件と、各デバイスの出力要件とを比較することによって、前記検索要求で指定された前記所望の出力結果を取得可能なデバイスを前記デバイスＤＢから抽出するデバイス抽出手段をさらに有し、前記デバイス情報提供手段は、前記デバイス抽出手段で抽出されたデバイスの情報を検索結果としてユーザに提供することが好ましい。これにより、デバイスＤＢに登録されている既存のデバイスの情報と、仮想デバイス生成手段で生成した新たな仮想デバイスの情報の両方をユーザに提供することができる。また、ユーザにとっては、既存のデバイスと仮想デバイスとを区別なく検索可能となり、利便性が向上する。さらに、デバイスＤＢを既存のデバイスの検索用データベースとして活用することで、システム構成の合理化も期待できる。
【００１２】
ここで、前記デバイス抽出手段によるデバイスの抽出処理は、前記処理モジュール抽出手段による処理モジュールの抽出処理及び前記仮想デバイス生成手段による仮想デバイス
の生成処理よりも優先的に行われることが好ましい。仮想デバイスは他のデバイスの出力を利用することから、既存のデバイスに比べて、利用コストが高いとか、処理負荷が大きいとか、データ加工により精度が低下するといった不利な面がある場合がある。したがって、既存のデバイスでユーザの要求を満たすものが存在するのであれば、既存のデバイスに関する情報を優先的に提供する方が妥当だからである。また、処理モジュールの抽出処理や仮想デバイスの生成処理に比べて軽い処理であるデバイスの抽出処理を先に行うことで、ユーザへ検索結果を提供するまでに要する時間を短縮でき、高速な検索を実現できるという利点もある。
【００１３】
さらに、前記デバイス抽出手段によるデバイスの抽出結果が所定の条件に達しない場合にのみ、前記処理モジュール抽出手段による処理モジュールの抽出処理及び前記仮想デバイス生成手段による仮想デバイスの生成処理が行われることが好ましい。「所定の条件に達しない場合」とは、例えば、デバイスが抽出されなかった場合、抽出されたデバイスの数が所定数より少ない場合、などである。この構成によれば、既存のデバイスの抽出結果で十分な場合には、処理モジュールの抽出処理及び仮想デバイスの生成処理が実行されないため、システムの処理負荷を軽減することができる。
【００１４】
前記デバイスＤＢは、物理的に存在する実デバイスに関する情報を登録した実デバイスＤＢと、仮想デバイスに関する情報を登録した仮想デバイスＤＢとを有することが好ましい。これにより、実デバイスＤＢに登録された既存の実デバイス、仮想デバイスＤＢに登録された既存の仮想デバイス、新たに生成される仮想デバイスの３つのカテゴリから、デバイスが検索されるので、ユーザの要求に合致したデバイスの情報を提供できる可能性を一層拡大することができる。
【００１５】
前記仮想デバイス生成手段は、前記抽出された処理モジュールの入力として利用可能な出力をもつデバイスを、前記実デバイスＤＢに登録されている実デバイスと前記仮想デバイスＤＢに登録されている仮想デバイスのなかから抽出することが好ましい。これにより、既存の仮想デバイスを新たな仮想デバイスの入力として利用することが可能となるので、仮想デバイスを創りだす際の自由度が大幅に拡大する。よって、ユーザの要求に合致した仮想デバイスを生成できる可能性を一層拡大することができる。
【００１６】
前記仮想デバイス生成手段によって新たに仮想デバイスが生成された場合に、当該新たな仮想デバイスに関する情報が前記仮想デバイスＤＢに自動で登録されることが好ましい。このように一度生成した仮想デバイスの情報を仮想デバイスＤＢに登録すれば、他のユーザから類似の検索要求を受け付けたときに、仮想デバイスの生成処理を行わずに、仮想デバイスＤＢの検索だけで対処可能となるため、システムの処理負荷を軽減することが可能となる。
【００１７】
なお、本発明は、上記手段の少なくともいずれかを有するデバイス情報提供システムとして捉えることもできるし、デバイス情報提供システムと複数のデバイスとから構成されるデバイスネットワークシステムとして捉えることもできる。また、本発明は、上記処理の少なくともいずれかを含むデバイス情報提供方法として捉えることもできるし、このデバイス情報提供方法の各ステップをコンピュータに実行させるためのプログラムや、このプログラムを記録した記憶媒体として捉えることもできる。
【発明の効果】
【００１８】
本発明によれば、ユーザの要求に応じて仮想デバイスを自動で生成することによって、ユーザの要求を満足するデバイスの情報を提供できる可能性を拡大することができる。
【図面の簡単な説明】
【００１９】
【図１】デバイスネットワークシステムの構成を示す図。
【図２】デバイス検索処理の使用例を示す図。
【図３】物理デバイスマスターＤＢの構成例を示す図。
【図４】アルゴリズムマスターＤＢの構成例を示す図。
【図５】仮想デバイスマスターＤＢの構成例を示す図。
【図６】デバイス検索処理の流れを示すフローチャート。
【図７】構成要素検索処理の詳細を示すフローチャート。
【図８】仮想デバイスを動的に生成する手順を説明する図。
【発明を実施するための形態】
【００２０】
＜システム構成＞
図１を参照して、本発明の実施形態に係るデバイスネットワークシステムの構成例を説明する。
【００２１】
デバイスネットワークシステムは、デバイスネットワーク１とデバイス管理システム２とから構成されている。デバイスネットワーク１は、様々な場所に存在する多数のデバイス１０によって構成されるネットワークである。ネットワークの構成や通信方式などは任意に設計でき、特に限定されない。各々のデバイス１０は、例えばインターネットなどの広域ネットワークを介してデバイス管理システム２と通信可能である。デバイス管理システム２は、デバイスネットワーク１を構成するデバイス１０に関する情報やデバイスから収集した情報などを管理すると共に、デバイス１０を利用したいと望むユーザ向けの各種サービス（デバイス検索もその一つ）を提供するサーバ装置である。ユーザは、ユーザ端末３から、インターネットなどの広域ネットワークを通じて、デバイス管理システム２の提供するサービスにアクセスすることが可能である。本発明に係るデバイス情報提供システムやデバイス情報提供方法は、デバイス管理システム２の一機能として実装されている。
【００２２】
ところで、デバイスネットワーク１を構成する数々のデバイス１０はデバイス管理システム２の運営者がすべて所有しているとは限らず、運営者とは別の、個人や企業体といった多数の者がデバイスを所有し又は運営管理していることもあり得る（以下、デバイスを所有・運営管理する者を「デバイスの所有者」と呼ぶ）。それゆえ、デバイス管理システム２は、デバイスの所有者に対する機能として、本システムに新たなデバイスを登録する機能や、デバイスに関する情報を変更したりする機能を有する。また、デバイス管理システム２は、第三者に対する機能として、後述する仮想デバイスや仮想デバイスで利用される処理モジュールを作成・登録する機能も提供する。仮想デバイスや処理モジュールを作成・登録する者を「作成者」と呼ぶ。また、詳しく説明しないが、デバイス管理システム２が、デバイスの利用者と所有者又は作成者のあいだを仲介する機能（利用条件と提供条件の照合・調停、利用者への課金と所有者又は作成者への対価支払など）を有していることも好ましい。
【００２３】
各々のデバイス１０は、空間又は時空間で規定される対象領域に対して作用するデバイスであって、「センサ」と「アクチュエータ」とに大別できる。ここで「空間」とは２次元（ｘ，ｙ）又は３次元（ｘ，ｙ，ｚ）で規定される領域であり、「時空間」とは「空間」に「時間（ｔ）」の次元を加えたもの、つまり３次元（ｘ，ｙ；ｔ）又は４次元（ｘ，ｙ，ｚ；ｔ）で規定される領域をいう。なお本明細書では、「センサ」の語を、対象領域の状態を検知（取得）するデバイスという意味で用い、「アクチュエータ」の語を、対象領域の状態を変化させるデバイスという意味で用いる。このようなセンサには、例えば、画像センサ（カメラ）、温度センサ、湿度センサ、照度センサ、力センサ、音センサ、ＲＦＩＤセンサ、赤外線センサ、姿勢センサ、降雨センサ、放射能センサ、ガスセンサなどが該当し、本システムではいかなる種類のセンサも利用することができる。またアクチュ
エータには、例えば、モータ、ソレノイド、コントローラ、ロボット、照明、スピーカ、ディスプレイ、デジタルサイネージ、空調など様々なものが該当し、本システムではいかなる種類のアクチュエータも利用することができる。携帯電話、スマートフォン、スレート型端末のように、センサ（画像センサなど）とアクチュエータ（ディスプレイ、スピーカなど）の両方を備えるデバイスも存在する。なお、デバイスネットワーク１の中には、様々な種類のデバイスを混在させることが可能である。
【００２４】
デバイス管理システム２は、デバイスの検索及び情報提供に関わる機能として、検索要求受付部２０、ＤＢ検索部２１、デバイス組合せ推論部２２、デバイス情報提供部２３、物理デバイスマスターＤＢ２４、仮想デバイスマスターＤＢ２５、アルゴリズムマスターＤＢ２６などの機能を有している。デバイス管理システム２は、ハードウエア的には、ＣＰＵ、主記憶装置（メモリ）、補助記憶装置（ＨＤＤ、ＳＳＤなど）、通信装置、入力装置、表示装置などを備えるコンピュータにより構成することができる。図１に示す各機能ブロックは、補助記憶装置に格納されたコンピュータプログラムを主記憶装置にロードし、ＣＰＵが当該プログラムを実行することで具現化されるものである。なお、デバイス管理システム２は単体のコンピュータで構成してもよいし、協働する複数のコンピュータで構成することもできる。
【００２５】
ユーザ端末３としては、例えば、パーソナルコンピュータ、携帯電話、スマートフォン、スレート型端末などを利用可能である。なお、本実施形態では、インターネット経由でユーザがデバイス検索を行う例を挙げるが、デバイス管理システム自体をユーザが操作する構成、或いは、デバイス管理システムの一部又は全部の機能をユーザ端末３側に実装する構成でも構わない。
【００２６】
＜デバイス情報提供サービス＞
以下、デバイス管理システム２が提供するデバイス情報提供サービスについて、詳しく説明する。デバイス情報提供サービスとは、デバイスネットワーク１を構成する多数のデバイス１０の中から、ユーザが目的達成に最適なデバイスを見つけることを容易化するための検索サービスである。センサを検索するためのセンサ情報提供サービスと、アクチュエータを検索するためのアクチュエータ情報提供サービスとがある。まずは図２（ａ）〜（ｃ）を用いてセンサ情報提供サービスの具体的な使用例から説明する。
【００２７】
ユーザがユーザ端末３を用いてデバイス情報提供サービスにアクセスすると、図２（ａ）のような検索条件入力画面が表示される。この画面では、例えば「草津市の天気を知りたい。」というように、検索条件（検索の目的）を自由文で入力することができる。図２（ｂ）は検索条件入力画面の別の例である。この画面の場合は、所望のセンシングデータの種別とセンシング対象領域を別々のボックスに入力する。検索ボタンが押されると、検索要求がユーザ端末３からデバイス管理システム２へ送信され、デバイス管理システム２においてデバイス検索処理が実行される。デバイス検索処理の詳細は後述する。
【００２８】
図２（ｃ）はデバイス管理システム２から返信される検索結果画面の一例である。この例では、草津市の天気を取得可能なセンサが２種類提示され、さらに、草津市が存在する滋賀県南部の天気を取得可能なセンサも提示されている。このようにデバイス情報提供サービスでは、ユーザが入力した検索条件を満たす可能性がある複数のセンサが索出され、検索条件との一致度が高いセンサから順にリスト表示される。また、この検索結果リストには、必要に応じて、デバイスの仕様、利用金額、契約条件、デバイスの提供者などの情報も表示される。ユーザは、検索結果を見て、どのセンサを利用するかを比較検討しながら選定することができる。
【００２９】
図２（ｄ）はアクチュエータ情報提供サービスの例を示している。図２（ｄ）の検索条
件入力画面では、「京都駅前にいる人に向けて広告を発信したい。」という条件（目的）が入力されている。駅前にいる人々に情報を伝達する手段としては、例えば、デジタルサイネージ（ＤＳ）、スピーカ、近隣のビルに設置された大型ディスプレイや電光掲示板などが考えられる。検索結果としては、これらの利用可能なデバイス（アクチュエータ）が一覧表示される。
【００３０】
（仮想デバイス）
本システムのデバイス情報提供サービスは、検索結果として、物理的に存在する実デバイス（実センサ、実アクチュエータ）の情報だけでなく、仮想デバイス（仮想センサ、仮想アクチュエータ）の情報も提供するところに特徴を有している。仮想デバイスとは、１又は複数個のデバイスと処理モジュールとの組み合わせで構成される、仮想的なデバイスのことである。
【００３１】
例えば、ユーザからの検索要求が「京都駅正面コンコースのカメラ画像」であったとする。デバイスネットワーク１の中に、京都駅正面コンコースを撮影し公開している監視カメラが存在していれば、まずはその監視カメラ（実デバイス）の情報をユーザに提供すればよい。しかし、ユーザからの検索要求に完全に合致する実デバイスが存在しない場合や、存在する場合でも第２、第３の候補として別のデバイスの情報を提供することもある。例えば、京都駅正面コンコースの全体を撮影するカメラは存在しないが、コンコースの各所を部分的に撮影する複数の監視カメラが存在する場合は、それらの複数の監視カメラと、複数のカメラ映像をパノラマ合成して広範囲の映像を出力する処理モジュールとを組み合わせたものを、仮想センサとして提供することができる。同様に、京都駅正面コンコースを、日中撮影している可視監視カメラと、夜間撮影している遠赤外線カメラとが存在する場合に、それらのカメラと、複数のカメラ映像からより明りょうに映っている映像を選択する処理モジュールとを組み合わせたものを、仮想センサとして提供することができる。
【００３２】
ユーザからの検索要求が「平日の朝に京都駅の正面改札を出た人が向かった方向とその人数」というものであったとする。このような特殊なセンシングデータを直接得ることのできる実センサが設置されていることは稀である。この場合でも、例えば、正面改札を撮影している監視カメラと、改札付近を撮影している監視カメラとが存在すれば、これらの監視カメラと、複数の画像から同一人物を同定する処理モジュールと、方向別人数カウントを行う処理モジュールとを組み合わせることで、ユーザの検索要求を満足する仮想センサを構成できる。
【００３３】
仮想アクチュエータの場合は、複数のアクチュエータの出力を組み合わせる（同期又は連携させる）。例えば、ユーザからの検索要求が「京都駅前にいる人にビデオを放映したい」というものであったとする。この場合、例えば、京都駅前のビルに設置されている大型の電光掲示板による映像出力と、京都駅前に設置されている複数のスピーカによる音声出力とを同期させることで、音声付き動画を出力可能な仮想アクチュエータを提供することができる。
【００３４】
これらの例から分かるように、本システムにおいて仮想デバイス（仮想センサ、仮想アクチュエータ）の利用を可能にすることで、デバイスネットワーク１のリソース（実デバイス）の利用率の向上や、新たな付加価値をもつセンシングデータ又はアクチュエータ出力の提供など、様々な効果が期待できる。
【００３５】
（データベース構造）
次に、デバイス情報提供サービスに利用されるデータベースの構造について説明する。図３〜図５は、それぞれ、物理デバイスマスターＤＢ２４、アルゴリズムマスターＤＢ２
６、仮想デバイスマスターＤＢ２５の構成例を示す図である。
【００３６】
（１）物理デバイスマスターＤＢ
物理デバイスマスターＤＢ２４は、物理的に存在する実デバイス（実センサ及び実アクチュエータ）に関する情報を登録したデータベースであり、実デバイスＤＢとも呼ばれる。物理デバイスマスターＤＢ２４には、デバイスネットワーク１を構成している全てのデバイス１０の情報が登録されている。物理デバイスマスターＤＢ２４へのデバイス登録は、デバイス１０の所有者又は本システムの運営者により行われる。図３では、センサの一例である「監視カメラ」と、アクチュエータの一例である「電光掲示板」及び「スピーカ」の登録内容が例示されている。
【００３７】
「デバイスＩＤ」はデバイスを識別するための情報であり、デバイスごとに異なるＩＤが割り当てられる。「デバイス情報」は、デバイスの基本情報が記述される部分であり、「デバイスアドレス」（デバイスと通信を行う際のネットワークアドレス。例えばＩＰアドレスなど。）、「所有者ＩＤ」（デバイスの所有者を識別する情報。）、「設置箇所」（デバイスが設置されている場所を特定する情報。例えば緯度経度情報。）、「デバイス種別」（センサ又はアクチュエータの種類や用途を示す情報。例えば、監視カメラ、温度センサ、電光掲示板…。）などの情報を含んでいる。
【００３８】
「出力要件」は、デバイスの出力を特定するための情報である。センサの場合は、センサから出力されるセンシングデータに関する情報として、「出力種別」（センシングデータのデータ種別を示す情報。例えば、ビデオ、画像、天気、温度…。）、「対象領域」（センシングの対象領域を特定する情報。例えば、一点の場合は緯度経度、エリアの場合は中心の緯度経度＋半径。）、「制約条件」（例えば、出力を得られる時間帯、期間。）などの情報を含む。一方、アクチュエータの場合は、アクチュエータからの出力に関する情報として、「出力種別」（アクチュエータの出力形態を示す情報。例えば、画像出力、音声出力、熱出力…。）、「対象領域」（アクチュエータの出力が作用を及ぼす領域を特定する情報。例えば、一点の場合は緯度経度、エリアの場合は中心の緯度経度＋半径。）、「制約条件」（例えば、利用可能な時間帯、期間。）などの情報を含む。
【００３９】
「契約要件」は、当該デバイスを利用する際の利用条件を示す情報であり、各デバイスについて１又は複数の「利用パターン」ごとに「利用金額」と「契約条件」が設定される。図３の例では、デバイスＩＤ「P001」の監視カメラについて、以下の３種類の利用パターンが用意されている。
・Commercial 1：利用料は月額１００円。契約条件はなし。
・Academic 1：利用料はフリー。ただし、解像度がＱＶＧＡまでに制限され、学術的利用に限られる。
・Academic 2：利用料は月額５０円。ただし、解像度がＶＧＡまでに制限される。
【００４０】
（２）アルゴリズムマスターＤＢ
アルゴリズムマスターＤＢ２６は、仮想デバイスで利用される処理モジュールに関する情報を登録したデータベースであり、処理モジュールＤＢとも呼ばれる。処理モジュールとは、１又は複数個のデバイスからの出力を入力とし、それらの入力を組み合わせて新たな出力を生成するアルゴリズム又はルールのことである。処理モジュールの作成・登録は、処理モジュールの作成者又は本システムの運営者により行われる。図４には、１つのセンサから得られる天気図のデータを元に天気を予測する処理モジュールと、画像出力と音声出力の２つのアクチュエータ出力を組み合わせてビデオ放映を実現する処理モジュールとが例示されている。
【００４１】
「処理ＩＤ」は処理モジュールを識別するための情報であり、処理モジュールごとに異
なるＩＤが割り当てられる。「作成者ＩＤ」は処理モジュールの作成者を識別するための情報である。処理モジュールが利用された場合には、後述する契約条件に応じた対価が処理モジュールの作成者に支払われる仕組みとなっている。
【００４２】
「出力要件」は、処理モジュールの出力を特定するための情報である。基本的には、物理デバイスマスターＤＢ２４の「出力要件」と同じ形式の情報が登録される。ただし、「対象領域」については、緯度経度のような固定値だけでなく、「座標Ｘ１を中心とする半径１０ｋｍの領域」というように変数（Ｘ１）で記述された位置を基準とした相対位置で対象領域を定義することもできる。この変数の値は、処理モジュールに組み合わせるデバイスの実空間での位置が決まれば、そのデバイスの対象領域に基づき確定する。
【００４３】
「契約要件」は、当該処理モジュールを利用する際の利用条件を示す情報であり、各処理モジュールについて１又は複数の「利用パターン」ごとに「利用金額」と「契約条件」が設定される。
【００４４】
「入力要件」は、処理モジュールの入力を特定するための情報である。１つの処理モジュールに対し、１つ以上の入力要件が定義される。入力要件には、「種別」（センサの場合はセンシングデータのデータ種別、アクチュエータの場合はアクチュエータの出力形態）、「デバイス種別」（センサ又はアクチュエータの種類や用途を示す情報）、「制約条件」（センサの場合はセンシングの対象領域、時間帯、期間など、アクチュエータの場合はアクチュエータの出力が作用を及ぼす範囲、時間帯、期間など）の情報が含まれる。
【００４５】
「処理内容」は、センサから得られるセンシングデータを分析加工する処理プログラムや、アクチュエータを制御する処理プログラムなどの情報である。例えば、処理プログラムの格納先を示すＵＲＩなどが登録される。
【００４６】
（３）仮想デバイスマスターＤＢ
仮想デバイスマスターＤＢ２５は、仮想デバイス（仮想センサ及び仮想アクチュエータ）に関する情報を登録したデータベースであり、仮想デバイスＤＢとも呼ばれる。仮想デバイスマスターＤＢ２５には、複数の仮想デバイスの情報を登録することが可能である。仮想デバイスの作成・登録は、仮想デバイスの作成者又は本システムの運営者により行われる場合もあるし、後述するように、デバイス検索処理の中で動的に行われる場合もある。図５では、草津周辺１０ｋｍの天気をセンシングする仮想センサの一例（ID:V001）と
、今日駅前半径１０ｍのエリアにビデオ放映を行う仮想アクチュエータの一例（ID:V002
）の登録内容が例示されている。
【００４７】
「デバイスＩＤ」はデバイスを識別するための情報であり、デバイスごとに異なるＩＤが割り当てられる。当然、仮想デバイスと実デバイスとの間でもデバイスＩＤは重ならない。
【００４８】
「デバイス情報」は、仮想デバイスの基本情報が記述される部分であり、「処理ＩＤ」、「入力１のデバイスＩＤ」、「入力２のデバイスＩＤ」、…、「作成者ＩＤ」、「設置箇所」、「デバイス種別」などの情報を含む。処理ＩＤは、仮想デバイスで利用する処理モジュールのＩＤである。入力ｎのデバイスＩＤは、入力として利用する他のデバイスのＩＤである。１個以上の入力デバイスが登録される。作成者ＩＤは仮想デバイスの作成者を示すＩＤであり、設置箇所は仮想デバイスの仮想的な設置場所を示す情報であり、デバイス種別は仮想デバイスの仮想的なデバイス種別を示す情報である。作成者ＩＤ、設置箇所、デバイス種別は未定義になることもある（例えば仮想デバイスが本システムにより動的に生成された場合には作成者ＩＤは未定義となる）。
【００４９】
「出力要件」は、仮想デバイスの出力を特定するための情報であり、「契約要件」は、仮想デバイスの利用契約に関わる情報である。「出力要件」及び「契約要件」は、物理デバイスの同名の情報と同じ意義をもつ情報であるため、説明を割愛する。
【００５０】
（デバイス検索処理）
続いて、図６〜図８を参照して、デバイス管理システム２によるデバイス検索処理を説明する。図６はデバイス検索処理の全体フローを示すフローチャートであり、図７はデバイス検索処理の中で呼び出される構成要素検索処理の詳細を示すフローチャートである。また、図８は仮想デバイスを動的に生成する手順を説明する図である。
【００５１】
まず、検索要求受付部２０がユーザ端末３から検索要求を取得し（ステップＳ６０）、検索要求の中から、ユーザが所望している出力結果を特定するための情報（出力要件）を抽出し検索クエリを生成する（ステップＳ６１）。例えば、図２（ａ）のように「草津市の天気が知りたい。」という検索要求が与えられた場合、検索要求受付部２０は形態素解析や意味解析を行うことで、このテキストの中からデータ種別を示す情報「天気」と対象領域を示す情報「草津市」を抽出し、「データ種別：天気、対象領域：草津市」という出力要件を含む検索クエリを生成する。
【００５２】
次に、ＤＢ検索部２１が、検索クエリに基づき物理デバイスマスターＤＢ２４の検索を実行する（ステップＳ６２）。具体的には、ＤＢ検索部２１は、検索クエリに含まれる出力要件の内容と、物理デバイスマスターＤＢ２４の各デバイスのレコードに含まれる出力要件の内容とを比較し、検索要求で指定された所望の出力結果を取得可能な実デバイスを抽出する。例えば、検索クエリの出力要件が「データ種別：天気、対象領域：草津市」の場合であれば、出力種別が「天気」と一致又は類似し、且つ、対象領域が「草津市」と一致し又は「草津市」を包含する場合に、当該デバイスが抽出される。
【００５３】
また、ＤＢ検索部２１は、仮想デバイスマスターＤＢ２５に対しても同様の検索を実行する（ステップＳ６３）。この場合も、検索クエリに含まれる出力要件の内容と、仮想デバイスマスターＤＢ２５の各仮想デバイスのレコードに含まれる出力要件の内容とを比較することで、該当する仮想デバイスが抽出される。そして、ステップＳ６２とＳ６３の検索処理により抽出されたデバイスの数が閾値以上であった場合には、検索結果の提供処理へと進み、抽出されたデバイスの数が閾値に満たない場合には、仮想デバイスの動的生成処理へと進む（ステップＳ６４）。閾値は任意に設定できる。例えば閾値を１に設定すれば、ＤＢ検索によりユーザの検索要求を満たす実デバイス又は仮想デバイスが１つでも発見されたら、仮想デバイスの動的生成処理がスキップされる。逆に閾値を極めて大きい値に設定すれば、仮想デバイスの動的生成処理が必ず行われるように制御できる。なお、ステップＳ６２とＳ６３の検索処理は並列に実行してもよい。
【００５４】
次に、デバイス組合せ推論部２２による仮想デバイスの動的生成処理の説明に入る。デバイス組合せ推論部２２は、まず処理モジュール抽出処理を行う（ステップＳ６５）。処理モジュール抽出処理では、検索クエリに含まれる出力要件の内容と、アルゴリズムマスターＤＢ２６の各処理モジュールのレコードに含まれる出力要件の内容とを比較することで、ユーザ所望の出力結果を取得可能な処理モジュールを抽出する。例えば、検索クエリの出力要件が「データ種別：天気、対象領域：草津市」の場合であれば、出力種別が「天気」と一致又は類似し、且つ、対象領域と制約条件とで決まる範囲に「草津市」を含み得る場合に、当該処理モジュールが抽出される。なお、図４の処理モジュール（A001）のように、対象領域が「Ｘ１中心から半径１０ｋｍ」と変数で規定されている場合には、その変数Ｘ１に草津市の中心地点の座標を当てはめた上で要件の充足を判断すればよい。
【００５５】
そして、デバイス組合せ推論部２２は、抽出された処理モジュールについて構成要素検
索処理を実行する（ステップＳ６６）。構成要件検索処理とは、処理モジュールの各入力要件と、各デバイスの出力要件とを比較することによって、当該処理モジュールの入力として利用可能な出力をもつデバイスを抽出し、そのデバイスと処理モジュールとを組み合わせて新たな仮想デバイスを生成する処理である。構成要件検索処理の引数は、検索クエリと処理モジュールのＩＤであり、返り値は、生成された仮想デバイスのリストである。ループＬ００は、１つ以上の処理モジュールが抽出された場合に、処理モジュールごとに同じ処理を繰り返すことを示している。
【００５６】
図７に構成要素検索処理の詳細フローを示す。ループＬ０１は、処理モジュールに含まれる入力要件ごとに同じ処理を繰り返すことを示している。まず、デバイス組合せ推論部２２は、処理モジュールから一つ目の入力要件を抽出すると、その「種別」と「制約条件」の内容と元の検索クエリの内容とから、新たな検索クエリを生成する（ステップＳ７０）。例えば、図４の処理モジュール（A001）の場合、入力要件の「種別」が「天気図」であり、「制約条件」が「Ｘ１中心で半径５００ｋｍ」ゆえ、「データ種別：天気図、対象領域：草津市の中心から半径５００ｋｍ」という内容の検索クエリが生成される。
【００５７】
次に、デバイス組合せ推論部２２は、ステップＳ７０で生成した検索クエリを用いて、物理デバイスマスターＤＢ２４、仮想デバイスマスターＤＢ２５、アルゴリズムマスターＤＢ２６をそれぞれ検索する（ステップＳ７１）。ここでの検索処理は、ステップＳ６２、Ｓ６３、Ｓ６５で述べたものと同様である。この結果、検索クエリ「データ種別：天気図、対象領域：草津市の中心から半径５００ｋｍ」を満たす実デバイス、仮想デバイス、及び処理モジュールが抽出される（ここで抽出されたデバイス及びモジュールをアイテムと呼ぶ）。
【００５８】
ループＬ０２では、ステップＳ７１で抽出されたアイテムごとに同じ処理を繰り返す。すなわち、デバイス組合せ推論部２２は、対象アイテムが実デバイス、仮想デバイス、処理モジュールのうちのいずれであるかを判断し（ステップＳ７２）、処理モジュールである場合は再帰的に構成要件検索処理を実行する（ステップＳ７４）。なお、再帰処理が無限に続くのを防止するため、ステップＳ７３では、検索回数又は検索時間が上限を超えた場合に再帰処理を止めるという判断を行う。ステップＳ７２〜Ｓ７４をすべてのアイテムについて繰り返すことで（ループＬ０２）、処理モジュールの一つ目の入力要件に対応できるデバイス（実デバイス又は仮想デバイス）のリストが得られる。
【００５９】
さらに、上記の処理が処理モジュールの全ての入力要件に対して繰り返されることで（ループＬ０１）、処理モジュールの入力要件ごとにデバイスのリストが得られる。その後、デバイス組合せ推論部２２は、処理モジュールと入力要件ごとのデバイスのリストとから、仮想デバイスを生成する（ステップＳ７５）。このとき、デバイスの全ての組み合わせについて仮想デバイスを生成してもよいし、各入力要件について代表的なデバイスを選定することで（例えば、実デバイス＞既存の仮想デバイス＞ステップ７４で新たに生成された仮想デバイスという優先順位で選ぶ）、一つの仮想デバイスのみを生成してもよい。
【００６０】
図８はユーザの検索要求に基づき仮想デバイスを動的に生成する手順を模式的に示している。図８に示すように、まず検索要求に含まれる出力要件と処理モジュールの出力要件との比較により、ユーザ所望の出力結果を取得可能な処理モジュールが抽出される（Ｓ８０）。次に、処理モジュールのそれぞれの入力要件と、各デバイスの出力要件との比較により、各入力要件に対応する出力をもつデバイスが抽出される（Ｓ８１，Ｓ８２）。そうすると、抽出された処理モジュールの処理ＩＤ、出力要件、及び契約要件と（Ｓ８３，Ｓ８４）、抽出されたデバイスそれぞれのデバイスＩＤとから（Ｓ８５，Ｓ８６）、新たな仮想デバイスのレコードを生成することができる。
【００６１】
ステップＳ６５において抽出されたすべての処理モジュールについて、上記のように仮想デバイスの生成が行われたら、ループＬ００を抜ける。その後、デバイス情報提供部２３が、ステップＳ６２で抽出された実デバイス、ステップＳ６３で抽出された仮想デバイス、ステップＳ６６で生成された新たな仮想デバイスをまとめたデバイスリストを作成する。そして、デバイス情報提供部２３からユーザ端末２にデバイスリストが送信され、ユーザに検索結果として提示される（ステップＳ６７）。以上でデバイスの検索処理が完了である。
【００６２】
＜本実施形態の利点＞
以上述べた本実施形態の構成によれば、ユーザの検索要求に基づいて、ユーザ所望の出力結果を取得可能な処理モジュールと、その処理モジュールの入力として利用可能な出力をもつデバイスとが自動で選定され、仮想デバイスが自動で生成される。したがって、ユーザの要求に合致するデバイスが存在しない（予め検索用のデータベースに登録されていない）場合であっても、新たな仮想デバイスを創りだすことでユーザの要求に応じることができるため、デバイスネットワークのリソースの有効利用、ユーザによる利用機会の増大などを図ることができる。また、ユーザにとっては、既存のデバイスと仮想デバイスとを区別なく検索可能となり、利便性が向上する。さらに、物理デバイスマスターＤＢに登録された既存の実デバイス、仮想デバイスマスターＤＢに登録された既存の仮想デバイス、新たに生成される仮想デバイスの３つのカテゴリから、デバイスが検索されるので、ユーザの要求に合致したデバイスの情報を提供できる可能性を一層拡大することができる。
【００６３】
また、本実施形態では、実デバイスの検索と既存の仮想デバイスの検索を優先的に実行し（ステップＳ６２、Ｓ６３）、その結果が十分でない場合にのみ仮想デバイスの生成処理（ステップＳ６５〜Ｓ６６）を行うこととした。これにより、ＤＢ検索に比べて処理負荷のかかる仮想デバイス生成処理の発生頻度を下げることができ、システムの処理負荷を軽減することができる。
【００６４】
また、本実施形態では、仮想デバイスの入力として他の仮想デバイスを利用できるようにしたので、仮想デバイスを創りだす際の自由度を大幅に向上でき、これにより、ユーザの要求に合致した仮想デバイスを生成できる可能性を一層拡大することができる。
【００６５】
なお、上述した実施形態は本発明の一具体例を示したものであり、本発明の範囲をそれらの具体例に限定する趣旨のものではない。例えば、ステップＳ７５において、デバイス組合せ推論部２２が、新たに生成された仮想デバイスの情報を仮想デバイスマスターＤＢ２５に自動で登録してもよい。このように一度生成した仮想デバイスの情報を仮想デバイスマスターＤＢ２５に登録すれば、他のユーザから類似の検索要求を受け付けたときに、仮想デバイスの生成処理（ステップＳ６５〜Ｓ６６）を行わずに、仮想デバイスＤＢの検索（ステップＳ６３）だけで対処可能となるため、システムの処理負荷を軽減することが可能となる。
【符号の説明】
【００６６】
１：デバイスネットワーク
２：デバイス管理システム
３：ユーザ端末
１０：デバイス
２０：検索要求受付部
２１：ＤＢ検索部
２２：デバイス組合せ推論部
２３：デバイス情報提供部
２４：物理デバイスマスターＤＢ
２５：仮想デバイスマスターＤＢ
２６：アルゴリズムマスターＤＢ
【図１】
2014153797.tif 000003
【図２】
2014153797.tif 000004
【図３】
2014153797.tif 000005
【図４】
2014153797.tif 000006
【図５】
2014153797.tif 000007
【図６】
2014153797.tif 000008
【図７】
2014153797.tif 000009
【図８】
2014153797.tif 000010