(57)【要約】【課題】利用態様に基づきデバイスを管理する。【解決手段】本発明に係るデバイス管理装置１０は、一次利用者がデバイス２を用いて利用するアプリケーション１２１が設定されるアプリケーション設定部１２と、アプリケーション設定部１２に設定されたアプリケーション１２１に基づき、デバイス２の利用態様を示すコンテキストを生成するコンテキスト解析部１３と、を備える。【選択図】図１
2018142125.tif 000002
【特許請求の範囲】
【請求項１】
一次利用者が所有するデバイスを管理するデバイス管理装置であって、
前記一次利用者が前記デバイスを用いて利用するアプリケーションが設定されるアプリケーション設定部と、
前記アプリケーション設定部に設定されたアプリケーションに基づき、前記デバイスの前記一次利用者による利用態様を示すコンテキストを生成するコンテキスト解析部と、を備えることを特徴とするデバイス管理装置。
【請求項２】
請求項１に記載のデバイス管理装置において、
前記デバイスと、前記デバイスのコンテキストとを対応付けて記憶するデバイス管理ＤＢと、
前記デバイスが有するリソースの利用を要求する二次利用者から、所望のリソースの利用を要求するリソース要求を取得する要求取得部と、
前記要求取得部が取得したリソース要求に対応するコンテキストを有するデバイスを前記デバイス管理ＤＢから検索し、該検索されたデバイスのリソースを前記リソース要求に応じて利用可能とする二次利用コントローラを生成する二次利用コントローラ管理部と、をさらに備えることを特徴とするデバイス管理装置。
【請求項３】
請求項２に記載のデバイス管理装置において、
前記リソース要求には、前記リソースを利用するタイミングを指示するスケジュール設定が含まれ、
前記二次利用コントローラは、前記リソース要求に含まれるスケジュール設定で指示されるタイミングで前記検索されたデバイスのリソースを利用することを特徴とするデバイス管理装置。
【請求項４】
請求項２または３に記載のデバイス管理装置において、
前記リソース要求には、前記デバイスからのデータの出力先のアドレスまたは前記デバイスへの命令の入力元のアドレスが設定されるアドレス部と、前記デバイスに対する制御メッセージが設定される制御メッセージ部とを含むエンドポイント設定が含まれ、
前記二次利用コントローラは、前記エンドポイント設定に従い、前記デバイスから取得したデータの出力または前記デバイスへの前記制御メッセージの入力を行うことを特徴とするデバイス管理装置。
【請求項５】
一次利用者が所有するデバイスを管理するデバイス管理装置におけるデバイス管理方法であって、
前記一次利用者が前記デバイスを用いて利用するアプリケーションが設定されるステップと、
前記設定されたアプリケーションに基づき、前記デバイスの前記一次利用者による利用態様を示すコンテキストを生成するステップと、を含むことを特徴とするデバイス管理方法。
【請求項６】
請求項５に記載のデバイス管理方法において、
前記デバイスと、前記デバイスのコンテキストとを対応付けて記憶するステップと、
前記デバイスが有するリソースの利用を要求する二次利用者から、所望のリソースの利用を要求するリソース要求を取得するステップと、
前記取得したリソース要求に対応するコンテキストを有するデバイスを、前記コンテキストと対応付けて記憶してデバイスから検索し、該検索されたデバイスのリソースを前記リソース要求に応じて利用可能とする二次利用コントローラを生成するステップと、をさらに含むことを特徴とするデバイス管理方法。
【請求項７】
コンピュータを請求項１から４のいずれか一項に記載のデバイス管理装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デバイス管理装置、デバイス管理方法およびプログラムに関する。
【背景技術】
【０００２】
一般の個人や個々の企業が所有し、利用している既設のデバイスを再利用して、デバイスからのデータの収集やデバイスによるアクションの実行を行うＩｏＴ（Ｉｎｔｅｒｎｅｔ  ｏｆ  Ｔｈｉｎｇｓ）マーケットプレース（ＩｏＴ−ＭＰ）の実現が進められている。
【０００３】
ＩｏＴ−ＭＰでは、デバイスの所有者（一次利用者）が、デバイスが有するセンシング機能やアクチュエーション機能などのＩｏＴリソースを販売し、一次利用者が所有するデバイスの間接的な利用者（二次利用者）が、そのＩｏＴリソースを購入する。これにより、二次利用者は、自らデバイスを持たなくとも、任意のＩｏＴリソースを活用することが可能となり、見える化サービスやイベント検知型のアプリケーションの作成などを行うことができる。
【０００４】
ＩｏＴ−ＭＰ上で、二次利用者が必要なＩｏＴリソースを特定するためには、ＩｏＴ−ＭＰが２つの要素を有することが必要である。
【０００５】
１つは、ＩｏＴリソースの定義であり、これはデバイスが有する機能の定義と同義である。近年のデバイスには、ＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）がセンシングやアクチュエーションといった機能単位で規定されたものが多い。このようなデバイスは、例えば、ＪＳＯＮ（ＪａｖａＳｃｒｉｐｔ（登録商標）  Ｏｂｊｅｃｔ  Ｎｏｔａｔｉｏｎ）形式のメッセージを含むＨＴＴＰ（Ｈｙｐｅｒｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）通信によって、ネットワークを介してデバイスの機能を動作させることが可能である。ＩｏＴ−ＭＰでは、ＡＰＩ単位でＩｏＴリソースを定義することで、外部参照性を高めることができる。
【０００６】
もう１つは、ＩｏＴリソースの分類である。デバイスが配置された地理などに基づく属性や、温度や湿度などのデバイスが収集するデータの種類に基づく属性などで分類し、再利用性を高めることもＩｏＴ−ＭＰの役割である。
【０００７】
ＡＷＳ  ＩｏＴ（非特許文献１参照）などの従来のＩｏＴデータストアでは、ユーザが所有するデバイスとそのデバイスのＡＰＩとをデータベース上で管理するサービスが提供されている。このようなサービスによれば、データベースに登録されたデバイスの属性を参照することで、二次利用者が任意のＩｏＴリソースを特定することができる。
【先行技術文献】
【非特許文献】
【０００８】
【非特許文献１】Amazon Web Service, “AWS IoT Developer Guide”, pp.67-74 (Managing Things with AWS IoT)、[online]、[平成29年2月1日検索]、インターネット<http://docs.aws.amazon.com/iot/latest/developerguide/iot-dg.pdf>
【発明の概要】
【発明が解決しようとする課題】
【０００９】
現在のＩｏＴ−ＭＰでは、二次利用者が所望するＩｏＴリソースを探し出し、提供することが困難である。二次利用者がＩｏＴリソースを利用（二次利用）する場合、ＩｏＴ−ＭＰ上で属性情報などに基づきＩｏＴリソースを検索し、検索されたＩｏＴリソースを利用することが一般的である。ここで、デバイスを所有する一次利用者とＩｏＴリソースを利用する二次利用者とは異なるため、二次利用者がデバイスの置かれた状態や一次利用者による使われ方などを知ることができない。そのため、二次利用者の意図とは異なる使われ方のＩｏＴリソースが得られてしまうことがある。
【００１０】
例えば、二次利用者が、住宅の室温情報を取得したい場合には、室温計に属するデバイスを利用して、温度データを取得することが考えられる。ここで、室温計の一次利用者によっては、室温計を屋外に設置したり、体に身につけたりというように、二次利用者の目的とは異なる利用態様でデバイスを利用している可能性があり、二次利用者が取得したいデータとの齟齬が生じてしまうことがある。したがって、二次利用者の要求にマッチするＩｏＴリソースの提供のためには、デバイスの属性に基づいた単純な管理ではなく、デバイスの利用方法や利用環境といった利用態様に応じてデバイスを管理することが求められるが、従来、このような利用態様に応じたデバイスの管理については十分な検討がなされていなかった。
【００１１】
本発明の目的は、上述した課題を解決し、利用態様に基づきデバイスを管理することができるデバイス管理装置、デバイス管理方法およびプログラムを提供することにある。
【課題を解決するための手段】
【００１２】
上記課題を解決するため、本発明に係るデバイス管理装置は、一次利用者が所有するデバイスを管理するデバイス管理装置であって、前記一次利用者が前記デバイスを用いて利用するアプリケーションが設定されるアプリケーション設定部と、前記アプリケーション設定部に設定されたアプリケーションに基づき、前記デバイスの前記一次利用者による利用態様を示すコンテキストを生成するコンテキスト解析部と、を備える。
【００１３】
また、上記課題を解決するため、本発明に係るデバイス管理方法は、一次利用者が所有するデバイスを管理するデバイス管理装置におけるデバイス管理方法であって、前記一次利用者が前記デバイスを用いて利用するアプリケーションが設定されるステップと、前記設定されたアプリケーションに基づき、前記デバイスの前記一次利用者による利用態様を示すコンテキストを生成するステップと、を含む。
【００１４】
また、上記課題を解決するため、本発明に係るプログラムは、コンピュータを上述したデバイス管理装置として機能させる。
【発明の効果】
【００１５】
本発明に係るデバイス管理装置、デバイス管理方法およびプログラムによれば、利用態様に基づきデバイスを管理することができる。
【図面の簡単な説明】
【００１６】
【図１】本発明の一実施形態に係るＩｏＴリソース管理システムの構成例を示す図である。
【図２Ａ】図１に示すアプリケーション設定部に設定されるアプリケーションの構成例を示す図である。
【図２Ｂ】図１に示すアプリケーション設定部に設定されるアプリケーションの構成例を示す図である。
【図２Ｃ】図１に示すアプリケーション設定部に設定されるアプリケーションの構成例を示す図である。
【図３】図１に示す二次利用コントローラの構成例を示す図である。
【図４Ａ】利用形式「間接センサ」について説明するための図である。
【図４Ｂ】利用形式「直接センサ」について説明するための図である。
【図４Ｃ】利用形式「直接アクチュエータ」について説明するための図である。
【図５】図１に示すデバイス管理装置の一次利用機能ブロック群の動作を示すフローチャートである。
【図６】図１に示すデバイス管理装置の一次利用機能ブロック群による処理の流れを模式的に示す図である。
【図７】図１に示すデバイス管理ＤＢの構成例を示す図である。
【図８】図１に示すアプリケーション設定部におけるアプリケーションの設定例を示す図である。
【図９】図１に示すコンテキスト解析部が生成するコンテキストハンドラの構成例を示す図である。
【図１０】図１に示すデバイス管理装置の二次利用機能ブロック群の動作を示すフローチャートである。
【図１１】図１に示すデバイス管理装置の二次利用機能ブロック群による二次利用コントローラの生成までの処理の流れを模式的に示す図である。
【図１２】図１に示す二次利用コントローラによる処理の流れを模式的に示す図である。
【図１３】図１に示す要求解釈部により取得されたリソース要求の設定例を示す図である。
【図１４】図１に示す二次利用コントローラ管理部により生成される二次利用コントローラの構成例を示す図である。
【図１５】図１に示す二次利用ポインタＤＢの構成例を示す図である。
【図１６】図１に示すデバイス管理ＤＢの構成例を示す図である。
【発明を実施するための形態】
【００１７】
以下、本発明の実施の形態について説明する。
【００１８】
図１は、本発明の一実施形態に係るＩｏＴリソース管理システム１の構成例を示す図である。
【００１９】
図１に示すＩｏＴリソース管理システム１は、ＡＰＩ２ａを有するデバイス２を所有する一次利用者と、デバイス２が備える機能（ＩｏＴリソース）を二次利用する二次利用者との間にデバイス管理装置１０が設けられた構成を有する。
【００２０】
一次利用者は、１個以上のデバイス２を所有しており、所有するデバイス２をデバイス管理装置１０に登録する。そして、一次利用者は、登録したデバイス２を用いて、所定のイベントの発生に対応してイベント通知などを行うアプリケーションを利用する。
【００２１】
デバイス２に対しては、デバイス２が備えるＡＰＩ２ａを介してデータの送受信が行われる。ＡＰＩ２ａは、デバイス２が備える機能ごとに規定されており、外部からＡＰＩ２ａに対して制御メッセージを送信することで、デバイス２に所定の動作を行わせることができる。例えば、デバイス２がサーモスタットである場合、サーモスタットが設置された部屋の現在の室温を要求元へ通知するセンシング機能、デバイス２が冷暖房器具である場合、冷温風を送風するアクチュエータ機能などがＡＰＩ２ａとして規定される。
【００２２】
二次利用者は、ＩｏＴリソースの利用を要求するリソース要求をデバイス管理装置１０に入力し、リソース要求に応じて提供されたＩｏＴリソースを用いて所望のアプリケーションを実行する。二次利用者の具体例としては、例えば、世界中の「暑い部屋」をリアルタイムに把握した上で、その部屋の住人に清涼飲料水の広告を通知したい広告事業者や、「詳細な室温情報」を「定期的に」把握した上で、インフルエンザの推定罹患者に受診を促す広告を通知したい医療事業者などが想定される。リソース要求では主に、取得したいデータ、行いたい動作、通信のタイミングなどが指定される。
【００２３】
デバイス管理装置１０は、一次利用者が所有するデバイス２を管理し、二次利用者からのリソース要求に応じてＩｏＴリソースを二次利用者に提供する。以下では、デバイス管理装置１０の構成について、より詳細に説明する。なお、図１において、太線矢印はデータの入出力を示し、実線矢印は制御信号の入出力を示し、破線矢印は一次利用者あるいは二次利用者による入力を示す。
【００２４】
図１に示すデバイス管理装置１０は、デバイス管理部１１と、アプリケーション設定部１２と、コンテキスト解析部１３と、デバイス管理ＤＢ１４と、要求解釈部（要求取得部）１５と、二次利用コントローラ管理部１６と、二次利用ポインタＤＢ１７とを備える。なお、図１においては、デバイス管理装置１０が、上述した各構成を備える例を示しているが、これに限られるものではなく、各構成は個別の装置として分散して設けられてもよい。また、詳細は後述するが、デバイス管理部１１、アプリケーション設定部１２、コンテキスト解析部１３およびデバイス管理ＤＢ１４は主に、一次利用者によるデバイス２の利用（一次利用）に関する機能ブロックであり、以下では、これらの機能ブロックを総称して一次利用機能ブロック群と称することがある。また、要求解釈部１５、二次利用コントローラ管理部１６および二次利用ポインタＤＢ１７は、二次利用者によるデバイス２の利用（二次利用）に関する機能ブロックであり、以下では、これらの機能ブロックを総称して、二次利用機能ブロック群と称することがある。
【００２５】
デバイス管理部１１は、一次利用者からのデバイス２の登録に応じて、デバイス２を所有する一次利用者と、登録されたデバイス２と、そのデバイス２が備えるＡＰＩ２ａとを対応付けて、デバイス管理ＤＢ１４に記録する。また、デバイス管理部１１は、一次利用者からの入力に応じて、デバイス２が備えるＡＰＩ２ａに制御メッセージを送信したり、アプリケーション設定部１２を利用して任意のアプリケーションを作成したりする。また、デバイス管理部１１は、二次利用コントローラ管理部１６と連携しており、二次利用コントローラ管理部１６が生成した二次利用コントローラ１６１から指定されたデバイス２のＡＰＩ２ａに対して、センシングやアクチュエーションのための制御メッセージを送信することで、デバイス２を制御することができる。
【００２６】
アプリケーション設定部１２は、一次利用者が所有するデバイス２を用いたアプリケーション１２１（アプリケーションプログラム）が設定される。アプリケーション１２１としては、一次利用者自身により詳細に設定されたアプリケーション、第三者により作成され、設定済みのアプリケーションなどがある。
【００２７】
図２Ａ〜２Ｃは、アプリケーション１２１の構成例を示す図である。図２Ａ〜２Ｃに示すように、アプリケーション１２１は、デバイス２のＡＰＩ２ａに接続したコントローラ１２２が制御メッセージを伝達する構成を有する。図２Ａでは、１つのデバイス２のＡＰＩ２ａとアプリケーション１２１のコントローラ１２２とが通信を行う例を示している。図２Ｂでは、あるデバイス２のＡＰＩ２ａとインプットコントローラ１２２ａとが通信を行い、別のデバイス２のＡＰＩ２ａとアウトプットコントローラ１２２ｂとが通信を行い、さらに、インプットコントローラ１２２ａとアウトプットコントローラ１２２ｂとの間の制御ルールが設定された例を示している。また、図２Ｃでは、複数のコントローラ１２２がそれぞれ異なるデバイス２のＡＰＩ２ａと通信を行い、さらに、コントローラ１２２間のメッセージングフローが設定された例を示している。
【００２８】
アプリケーション１２１としては、複数のデバイス２（例えば、サーモスタットおよび冷暖房器具）のＡＰＩ２ａを使って、「室温が２６℃以上になったら」「冷房機能をＯＮにする」という、イベントの発生に応じて所定の動作を実行するアプリケーションが設定可能である。また、アプリケーション１２１に用いられるＡＰＩは、デバイス２のＡＰＩ２ａだけでなく、Ｗｅｂサービスが備えるＡＰＩを含んでいてもよい。この場合、例えば、「室温が２６℃以上になったら」「ＳＮＳに“暑い”とつぶやく」といった動作を行うアプリケーション１２１を設定することも可能である。
【００２９】
図１を再び参照すると、アプリケーション設定部１２は、設定されたアプリケーション１２１の構成情報（アプリケーション構成情報）およびイベント情報をコンテキスト解析部１３に出力する。アプリケーション構成情報とは、アプリケーション１２１で利用されるデバイス２の製品情報、デバイス２が備えるＡＰＩ２ａ、ＡＰＩ２ａに送信される制御メッセージ、一次利用者が設定したラベルなどを示す情報である。また、これらの情報を機械学習により解析して得られる情報がアプリケーション構成情報に含まれてもよい。イベント情報とは、アプリケーション１２１に設定された条件に基づいて通知されるリアルタイムな情報である。
【００３０】
コンテキスト解析部１３は、アプリケーション設定部１２に設定されたアプリケーション１２１に基づき、デバイス２の利用態様を示すコンテキストを生成する。具体的には、コンテキスト解析部１３は、アプリケーション設定部１２から出力されたアプリケーション構成情報を解析し、アプリケーション１２１毎に、アプリケーション１２１に用いられるデバイス２の利用方法や利用環境といった利用態様を示すコンテキストを生成する。そして、コンテキスト解析部１３は、コンテキストハンドラ１３１というプロセスを生成する。コンテキストハンドラ１３１は、アプリケーション構成情報を解析して得られたデバイス２のコンテキストを、イベント情報が通知されたときに、デバイス管理ＤＢ１４の該当するデバイス２のエントリに反映させる役割を有する。コンテキストには有効期限が定められており、有効期限を超過すると、コンテキスト解析部１３は、そのコンテキストを削除する。なお、デバイス管理ＤＢ１４の１つのエントリには複数のコンテキストを設定することができるが、対称的なコンテキストの場合には、新しいコンテキストが採用される。
【００３１】
例として、前述したサーモスタットおよび冷暖房器具の連携アプリケーションを考える。このアプリケーションには、一次利用者によって、「部屋が暑くなったら冷房を点ける」というラベルが設定されているとする。コンテキスト解析部１３は、このラベルから「暑い部屋」、「冷房を点ける」というコンテキストを解析し、コンテキストハンドラ１３１を生成する。サーモスタットのＡＰＩ「温度計測」による測定結果が２６℃以上であったときに、イベント情報が通知されるとすると、コンテキスト解析部１３は、サーモスタットのＡＰＩ「温度計測」が、「２６℃以上」という特定の場合のみ「暑い部屋」というコンテキストを有すると解析する。このコンテキストは、有効期限の経過、もしくは、対称的なコンテキスト（「寒い部屋」）が取得されると、無効となる。
【００３２】
デバイス管理ＤＢ１４は、ポインタと、デバイス２を所有する一次利用者のユーザ名と、デバイス２のアドレスと、デバイス名と、デバイス２が備えるＡＰＩ２ａのＡＰＩ名と、ＡＰＩ２ａのコンテキストとをエントリに持つデータベースである。デバイス管理ＤＢ１４は、デバイス管理部１１からの登録に加えて、コンテキスト解析部１３からコンテキストの登録を受け付ける。この際、デバイス管理ＤＢ１４は、登録されたデバイス２が備えるＡＰＩ２ａのコンテキストとしての追加属性を付与する。例えば、デバイス管理ＤＢ１４は、事前にデバイス管理部１１によりサーモスタットが登録されている場合、コンテキストの登録において、サーモスタットのＡＰＩ「温度計測」に「部屋が暑い」という属性を論理的に追加する。この属性は、コンテキスト解析部１３からの通知を受けてリアルタイムに変動する。
【００３３】
要求解釈部１５は、二次利用者からリソース要求を取得し、取得したリソース要求をデバイス管理装置１０で認識可能な形式に整形して、二次利用コントローラ管理部１６に出力する。二次利用者からの要求としては、二次利用の形式を指定する利用形式、検索対象となるキー（コンテキストまたはＡＰＩ名）、通信のタイミングを取り決めるスケジュール設定、デバイス管理装置１０との相互通信を取り決めるエンドポイント設定がある。要求解釈部１５は、整形後のリソース要求を二次利用コントローラ管理部１６に出力する。
【００３４】
例えば、二次利用者が前述した広告事業者である場合、リソース要求は、利用形式「間接センサ」、キー「コンテキスト：暑い部屋」、スケジュール設定「リアルタイム」、エンドポイント設定「二次利用者側のデータ受付アドレス」となる。なお、二次利用者は要求の内容を自然言語で入力し、要求解釈部１５が、自然言語で入力された要求の内容を解析して、リソース要求として取得してもよい。
【００３５】
二次利用コントローラ管理部１６は、要求解釈部１５からリソース要求（認識可能な形式に整形されたリソース要求）が入力されると、デバイス２の二次利用を実行する二次利用コントローラ１６１を生成する。そして、二次利用コントローラ管理部１６は、生成した二次利用コントローラ１６１に対応するエントリを二次利用ポインタＤＢ１７に生成し、リソース要求に含まれるキーを生成したエントリに登録する。例えば、利用形式「間接センサ」、キー「コンテキスト：暑い部屋」を含むリソース要求が入力されると、二次利用コントローラ管理部１６は、新しい二次利用コントローラ１６１を生成し、生成した二次利用コントローラ１６１に対応するエントリを二次利用ポインタＤＢ１７に生成する。また、二次利用コントローラ管理部１６は、リソース要求に含まれるキー「コンテキスト：暑い部屋」を生成したエントリに登録する。
【００３６】
二次利用ポインタＤＢ１７は、二次利用ポインタと、キーと、デバイス管理ＤＢポインタとを対応付けて記憶するデータベースである。二次利用ポインタＤＢ１７は、二次利用コントローラ１６１毎に生成されたエントリで構成される。１つのエントリは、二次利用コントローラ１６１を識別するための二次利用ポインタと、二次利用者からの要求に対応するキーと、そのキーによって検索されたデバイス管理ＤＢ１４のエントリのポインタ（デバイス管理ＤＢポインタ）のリストとを含む。デバイス管理ＤＢポインタのリストは、二次利用コントローラ１６１がスケジュール設定に従って検索を行うたびに更新される。デバイス管理ＤＢポインタを参照することで、二次利用コントローラ１６１は、対応するデバイス管理ＤＢ１４のエントリの前回の検索時の値を取得することができる。
【００３７】
次に、二次利用コントローラ１６１について説明する。
【００３８】
図３は、二次利用コントローラ１６１の構成例を示す図である。
【００３９】
図３に示すように、二次利用コントローラ１６１は、二次利用ポインタ１６２と、スケジューラ１６３と、エンドポイント１６４とを備える。
【００４０】
二次利用ポインタ１６２には、二次利用ポインタＤＢ１７において二次利用コントローラ１６１を識別するための二次利用ポインタが格納される。スケジューラ１６３は、リソース要求に含まれるスケジュール設定が格納される。なお、スケジュール設定としては、センシングやアクチュエーションを行う時間間隔を指定する「ポーリング型」、センシングやアクチュエーションを行う時刻を指定する「リクエスト型」などがある。エンドポイント１６４には、リソース要求に含まれるエンドポイント設定が格納される。エンドポイント設定には、アドレス部と、制御メッセージ部とが含まれる。アドレス部には、デバイス２に行わせたい動作に応じて、二次利用者側のアドレス（デバイス２からのデータの出力先）、あるいは、デバイス２に命令を入力するデバイス管理装置１０側のアドレス（デバイス２への命令の入力元）が設定される。制御メッセージ部には、デバイス２に行わせたい動作に対応する制御メッセージ（例えば、ＪＳＯＮ形式のメッセージ）が設定される。エンドポイント設定により、二次利用コントローラ１６１は、デバイス２から取得したデータの二次利用者側への出力、または、デバイス２への制御メッセージの入力を行うことができる。
【００４１】
二次利用コントローラ１６１は、一次利用者のデバイス２（ＩｏＴリソース）の二次利用者による任意のタイミングでの利用を可能とする実行プログラムである。二次利用コントローラ１６１は、二次利用ポインタＤＢ１７に登録されるエントリと１対１で対応する。二次利用コントローラ１６１は、二次利用ポインタＤＢ１７に登録された対応するエントリを参照し、エントリに保持されたキーを用いてデバイス管理ＤＢ１４を検索する。そして、二次利用コントローラ１６１は、ヒットしたデバイス管理ＤＢ１４のエントリを参照し、そのエントリのポインタをデバイス管理ＤＢポインタとして、二次利用ポインタＤＢ１７の対応するエントリに一時的に保存する。デバイス管理ＤＢ１４のエントリを参照することで、エントリに保存されたデバイス２の最新の状態を取得することができる。このような利用形式は「間接センサ」に相当する。
【００４２】
すなわち、利用形式「間接センサ」においては、図４Ａに示すように、二次利用コントローラ１６１は、スケジューラ１６３に格納されたスケジュール設定で指定されたタイミングになると、二次利用ポインタ１６２に格納された二次利用ポインタを含むエントリを二次利用ポインタＤＢ１７から検索する。そして、二次利用コントローラ１６１は、検索されたエントリに保持されたキーを用いてデバイス管理ＤＢ１４を検索し、ヒットしたエントリのポインタを二次利用ポインタＤＢ１７の対応するエントリに一時的に保存する。そして、二次利用コントローラ１６１は、デバイス管理ＤＢポインタとしてポインタを保存したデバイス管理ＤＢ１４のエントリに含まれるデバイス２の情報を、エンドポイント１６４に格納されたエンドポイント設定で指定された二次利用者側のアドレスに出力する。
【００４３】
図４Ｂは、利用形式「直接センサ」を示す図である。利用形式「直接センサ」の場合、二次利用コントローラ１６１は、図４Ｂに示すように、デバイス管理ＤＢ１４を検索してヒットしたエントリに対応するデバイス２のＡＰＩ２ａに対して、センシングを指示する制御メッセージを送信し、その制御メッセージに従うセンシングにより得られたデータを取得し、二次利用者側に出力する。
【００４４】
図４Ｃは、利用形式「直接アクチュエータ」を示す図である。利用形式「直接アクチュエータ」の場合、二次利用コントローラ１６１は、図４Ｃに示すように、デバイス管理ＤＢ１４を検索してヒットしたエントリに対応するデバイス２のＡＰＩ２ａに対して、アクチュエーションを指示する制御メッセージを送信する。
【００４５】
上述した利用形式は、二次利用者からの要求に応じて設定される。したがって、二次利用者は、利用形式、スケジュール設定、エンドポイント設定、キーなどを設定することで、所望の動作をデバイス２に行わせることができる。
【００４６】
次に、本実施形態に係るデバイス管理装置１０の動作について、一次利用機能ブロック群の動作と二次利用機能ブロック群の動作とに分けて説明する。なお、二次利用機能ブロック群がコンテキストを利用する場合、一次利用機能ブロック群によりコンテキストが付加されたデバイス管理ＤＢ１４を参照する必要がある。そのため、一次利用機能ブロック群の動作フローと、二次利用機能ブロック群の動作フローとは、デバイス管理ＤＢ１４を中心に連動する。
【００４７】
まず、一次利用機能ブロック群の動作について説明する。図５は、一次利用機能ブロック群の動作を示すフローチャートである。また、図６は、一次利用機能ブロック群による処理の流れを模式的に示したものである。図６において、実線矢印は制御信号の入出力を示し、破線矢印は一次利用者による入力を示す。
【００４８】
デバイス管理部１１は、一次利用者によるデバイス２の登録を受け付け、デバイス管理ＤＢ１４に登録する（ステップＳ１０１）。
【００４９】
図７は、デバイス管理ＤＢ１４の構成例を示す図である。
【００５０】
図７に示すように、デバイス管理ＤＢ１４は、ポインタと、一次利用者のユーザ名と、デバイス２のアドレスと、デバイス２のデバイス名と、デバイス２が備えるＡＰＩ２ａのＡＰＩ名と、コンテキストとを対応付けて記憶する。
【００５１】
デバイス管理部１１は、一次利用者による登録に応じて、ユーザ名、アドレス、デバイス名、ＡＰＩ名をデバイス管理ＤＢ１４に記憶させる。
【００５２】
図５を再び参照すると、アプリケーション設定部１２は、デバイス管理部１１に登録されたデバイス２のＡＰＩ２ａを用いて作成されたアプリケーション１２１の設定を受け付ける（ステップＳ１０２）。
【００５３】
図８は、アプリケーション１２１の設定例を示す図である。図８においては、一例として、アプリケーション１２１が、「サーモスタットの温度計測が２６℃以上を示したら冷房をＯＮにする（ラベル：部屋が暑くなったら冷房を点ける）」という動作を行う場合の例を示している。この場合、ｉｆ−ｔｈｅｎ条件（もし〜したら、〜にする）を用いてアプリケーション１２１が設定される。
【００５４】
具体的には、図８に示すように、アプリＩＤと、アプリケーション１２１を利用する一次利用者のユーザ名と、ｉｆ文およびｔｈｅｎ文それぞれにおけるデバイス名、ＡＰＩ名およびＡＰＩ２ａの動作の設定と、一次利用者が入力したラベルとが対応付けて設定される。
【００５５】
アプリケーション設定部１２は、設定されたアプリケーション１２１のアプリケーション構成情報をコンテキスト解析部１３に出力する。
【００５６】
図５を再び参照すると、コンテキスト解析部１３は、アプリケーション設定部１２から出力されたアプリケーション構成情報を解析し、アプリケーション１２１に用いられるデバイス２の利用方法や利用環境といった利用態様を示すコンテキストを生成する。そして、コンテキスト解析部１３は、生成したコンテキストを含むコンテキストハンドラ１３１を生成する（ステップＳ１０３）。
【００５７】
図９は、コンテキストハンドラ１３１の構成例を示す図である。
【００５８】
図９に示すように、コンテキストハンドラ１３１は、アプリＩＤと、アプリケーションを利用する一次利用者のユーザ名と、デバイス名と、ＡＰＩ名と、コンテキストと、有効期限とが対応付けられた構成を有する。図９では、一例として、図８における一次利用者Ａが利用するアプリＩＤ「Ａｐｐ＿００」のアプリケーションのアプリケーション構成情報における「設定」や「ラベル」が解析され、アプリＩＤ「Ａｐｐ＿００」のアプリケーションのイベントが発生した際に、「暑い部屋」「冷房を点ける」というコンテキストを出力するコンテキストハンドラ１３１が生成された例を示している。
【００５９】
図５を再び参照すると、コンテキスト解析部１３は、アプリケーション１２１のアプリケーション構成情報を解析して生成したコンテキストハンドラ１３１へのリンクを、そのアプリケーション１２１に設定する（ステップＳ１０４）。こうすることで、アプリＩＤ「Ａｐｐ＿００」のアプリケーションのｉｆ条件である「サーモスタットの温度計測」が「２６℃以上」になったとき、コンテキストハンドラ１３１にイベント情報が通知される。なお、上述したように、コンテキストには有効期限が設定される。
【００６０】
次に、コンテキスト解析部１３は、設定されたコンテキストハンドラ１３１の有効期限が超過したか否かを判定する（ステップＳ１０５）。
【００６１】
コンテキストハンドラ１３１が有効期限を超過したと判定した場合には（ステップＳ１０５：Ｙｅｓ）、コンテキスト解析部１３は、有効期限を超過したコンテキストハンドラ１３１を削除する。そして、コンテキスト解析部１３は、コンテキストを登録するデバイス管理ＤＢ１４のエントリ（登録先のエントリ）からもコンテキストを削除する（ステップＳ１０６）。
【００６２】
コンテキストの有効期限を超過していないと判定した場合には（ステップＳ１０５：Ｎｏ）、コンテキストハンドラ１３１は、リンクが設定されたアプリケーション１２１からイベント情報を受信したか否かを判定する（ステップＳ１０７）。
【００６３】
イベント情報を受信していないと判定した場合には（ステップＳ１０７：Ｎｏ）、コンテキストハンドラ１３１は、ステップＳ１０５の処理に戻る。
【００６４】
イベント情報を受信したと判定した場合には（ステップＳ１０７：Ｙｅｓ）、コンテキストハンドラ１３１は、コンテキストを登録するデバイス管理ＤＢ１４のエントリ（登録先のエントリ）に、登録対象のコンテキストと対称的な属性を有するコンテキスト（対称的なコンテキスト）が登録されているか否かを判定する（ステップＳ１０８）。例えば、コンテキストハンドラ１３１は、登録対象のコンテキストが「暑い部屋」である場合に、デバイス管理ＤＢ１４の登録先のエントリに、登録対象のコンテキストとは対称的な属性を有するコンテキスト「寒い部屋」が登録されているか否かを判定する。
【００６５】
登録先のエントリに対称的なコンテキストが登録されていると判定した場合には（ステップＳ１０８：Ｙｅｓ）、コンテキストハンドラ１３１は、その対称的なコンテキストを登録対象のコンテキストで上書きする（ステップ１０９）。
【００６６】
登録先のエントリに対称的なコンテキストが登録されていないと判定した場合には（ステップＳ１０８：Ｎｏ）、コンテキストハンドラ１３１は、登録対象のコンテキストを新しいコンテキストとして登録先のエントリに追加する（ステップＳ１１０）。この場合、図７に示すように、デバイス管理ＤＢ１４のデバイス名「サーモスタット」、ＡＰＩ名「温度計測」のエントリにコンテキスト「暑い部屋」が登録され、デバイス名「冷暖房器具」、ＡＰＩ名「冷房ＯＮ」のエントリにコンテキスト「冷房を点ける」が登録される。
【００６７】
ステップＳ１０９またはステップＳ１１０の処理の後、コンテキストハンドラ１３１は、ステップＳ１０５の処理に戻る。また、ステップＳ１０６の処理の後は、一次利用機能ブロック群による一連の処理を完了する。
【００６８】
次に、二次利用機能ブロック群の動作について説明する。図１０は、二次利用機能ブロック群の動作を示すフローチャートである。また、図１１は、二次利用コントローラ１６１の生成までの二次利用機能ブロック群による処理の流れを模式的に示したものである。また、図１２は、二次利用コントローラによる処理の流れを模式的に示したものである。図１１，１２において、太線矢印はデータの入出力を示し、実線矢印は制御信号の入出力を示し、破線矢印は二次利用者による入力を示す。
【００６９】
要求解釈部１５は、二次利用者により入力されたリソース要求を受け付ける（ステップＳ２０１）。なお、リソース要求の入力は、自然言語を用いた入力であってもよいし、ＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）等を用いた入力であってもよい。
【００７０】
要求解釈部１５は、入力されたリソース要求をデバイス管理装置１０で認識可能な形式に整形し、整形後のリソース要求から各種設定を取得する（ステップＳ２０２）。以下では、図１３に示すように、二次利用者Ｘにより、キー「コンテキスト：暑い部屋」、利用形式「間接センサ」、スケジュール設定「ポーリング：毎時」、エンドポイント設定「二次利用者Ｘのアドレス」が設定されたものとする。
【００７１】
図１０を再び参照すると、二次利用コントローラ管理部１６は、要求解釈部１５により取得されたリソース要求に基づき、二次利用コントローラ１６１を生成する。
【００７２】
図１４は、図１３に示すリソース要求に応じて生成された二次利用コントローラ１６１の構成例を示す図である。図１４に示すように、二次利用コントローラ１６１を識別可能な二次利用ポインタ「ｃ＿Ｘ＿００」と、二次利用者のユーザ名と、キー「コンテキスト：暑い部屋」と、利用形式「間接センサ」と、スケジュール設定「ポーリング：毎時」と、エンドポイント設定「二次利用者Ｘのアドレス」とが設定される。二次利用コントローラ管理部１６は、生成した二次利用コントローラ１６１の二次利用ポインタ「ｃ＿Ｘ＿００」およびキーを二次利用ポインタＤＢ１７に登録する（ステップＳ２０３）。
【００７３】
図１５は、二次利用ポインタＤＢ１７の構成例を示す図である。図１５に示すように、二次利用ポインタＤＢ１７は、二次利用ポインタと、キーと、デバイス管理ＤＢポインタとを対応付けて記憶する。図１５に示す例では、二次利用コントローラ管理部１６は、生成した二次利用コントローラ１６１の二次利用ポインタ「ｃ＿Ｘ＿００」に対応して、リソース要求で設定されたキー「コンテキスト：暑い部屋」を登録する。
【００７４】
上述したステップＳ２０１〜Ｓ２０３までの処理が、図１１に示す二次利用コントローラ１６１の生成までの処理の流れに相当する。そして、以降の処理が、図１２に示す二次利用コントローラ１６１による処理の流れに相当する。なお、以下では、デバイス管理ＤＢ１４には、図１６に示すような情報が格納されているとする。
【００７５】
図１０を再び参照すると、二次利用コントローラ１６１は、スケジュール設定でスケジュールされたタイミングになったか否かを判定する（ステップＳ２０４）。例えば、スケジュール設定「ポーリング：毎時」の場合には、二次利用コントローラ１６１は、１時間毎にポーリングを行い、ポーリングの実行タイミングまでは待機状態に入る。
【００７６】
スケジュールされたタイミングになっていないと判定した場合には（ステップＳ２０４：Ｎｏ）、二次利用コントローラ１６１は、ステップＳ２０４の処理を繰り返す。
【００７７】
スケジュールされたタイミングになったと判定した場合には（ステップＳ２０４：Ｙｅｓ）、二次利用コントローラ１６１は、対応する二次利用ポインタＤＢ１７のエントリに設定されたキーを用いて、デバイス管理ＤＢ１４を検索する（ステップＳ２０５）。図１５に示す例では、二次利用コントローラ１６１は、「コンテキスト：暑い部屋」をキーとして、デバイス管理ＤＢ１４を検索する。
【００７８】
「コンテキスト：暑い部屋」をキーとして図１６に示すデバイス管理ＤＢ１４を検索した場合、ポインタ「ｄ＿Ａ＿０１」のエントリと、ポインタ「ｄ＿Ｂ＿０２」のエントリとが、コンテキスト「暑い部屋」であるためヒットする。二次利用コントローラ１６１は、図１５に示すように、ヒットしたエントリのポインタ「ｄ＿Ａ＿０１」，「ｄ＿Ｂ＿０２」を二次利用ポインタＤＢ１７の二次利用ポインタ「ｃ＿Ｘ＿００」のエントリのデバイス管理ＤＢポインタに登録する。
【００７９】
次に、二次利用コントローラ１６１は、利用形式は「間接センサ」であるか否かを判定する（ステップＳ２０６）。
【００８０】
利用形式が「間接センサ」であると判定した場合には（ステップＳ２０６：Ｙｅｓ）、二次利用コントローラ１６１は、図１２に示すように、デバイス管理ＤＢ１４を検索してヒットしたエントリの情報をエンドポイント設定に設定された二次利用者Ｘのアドレスに送信する（ステップＳ２０７）。
【００８１】
利用形式が「間接センサ」でないと判定した場合には（ステップＳ２０６：Ｎｏ）、二次利用コントローラ１６１は、デバイス管理ＤＢ１４を検索してヒットしたエントリのアドレスを参照する（ステップＳ２０８）。
【００８２】
次に、二次利用コントローラ１６１は、利用形式は「直接センサ」であるか否かを判定する（ステップＳ２０９）。
【００８３】
利用形式が「直接センサ」であると判定した場合には（ステップＳ２０９：Ｙｅｓ）、二次利用コントローラ１６１は、図１２に示すように、参照したアドレスのデバイス２にセンシングを指示する制御メッセージを送信する。そして、二次利用コントローラ１６１は、その制御メッセージに従いセンシングを行ったデバイス２からデータを取得し（ステップＳ２１０）、エンドポイント設定に設定された二次利用者Ｘのアドレスに送信する（ステップＳ２１１）。
【００８４】
利用形式が「直接センサ」でないと判定した場合には（ステップＳ２０９：Ｎｏ）、二次利用コントローラ１６１は、図１２に示すように、参照したアドレスのデバイス２にアクチュエーションを指示する制御メッセージを送信し、アクションを命令する（ステップＳ２１２）。
【００８５】
このように本実施形態においては、デバイス管理装置１０は、一次利用者がデバイス２を用いて利用するアプリケーション１２１が設定されるアプリケーション設定部１２と、アプリケーション設定部１２に設定されたアプリケーション１２１に基づき、デバイス２の利用態様を示すコンテキストを生成するコンテキスト解析部１３と、を備える。
【００８６】
一次利用者がデバイス２を用いて利用するアプリケーション１２１を解析することで、一次利用者によるデバイス２の利用方法や利用環境といった利用態様を推定することができる。そのため、アプリケーション１２１を解析してデバイス２のコンテキストを生成することで、デバイス２の利用態様に応じてデバイス２を管理することができる。
【００８７】
また、デバイス管理装置１０は、デバイス２と、デバイス２のコンテキストとを対応付けて記憶するデバイス管理ＤＢ１４と、二次利用者から、所望のリソースの利用を要求するリソース要求を取得する要求解釈部１５と、要求解釈部１５が取得したリソース要求に対応するコンテキストを有するデバイスをデバイス管理ＤＢ１４から検索し、検索されたデバイス２のリソースをリソース要求に応じて利用可能とする二次利用コントローラ１６１を生成する二次利用コントローラ管理部１６と、を備える。
【００８８】
コンテキストを用いた検索により、二次利用者が要求するリソースに対応するコンテキストを有するデバイス２を抽出して二次利用者に提供することができ、網羅的なＩｏＴリソースの活用が可能となる。
【００８９】
また、リソース要求には、リソースを利用するタイミングを指示するスケジュール設定が含まれ、二次利用コントローラ１６１は、リソース要求に含まれるスケジュール設定で指示されるタイミングで検索されたデバイス２のリソースを利用する。
【００９０】
また、リソース要求には、デバイス２からのデータの出力先のアドレスまたはデバイス２への命令の入力元のアドレスが設定されるアドレス部と、デバイス２に対する制御メッセージが設定される制御メッセージ部とを含むエンドポイント設定が含まれ、二次利用コントローラ１６１は、エンドポイント設定に従い、デバイス２から取得したデータの出力またはデバイスへの制御メッセージの入力を行う。
【００９１】
そのため、二次利用者が任意のタイミング、任意の命令でＩｏＴリソースの制御を行うことができる。
【００９２】
なお、実施形態では特に触れていないが、デバイス管理装置１０が行う各処理をコンピュータに実行させるプログラムが提供されてもよい。また、プログラムは、コンピュータ読取り可能媒体に記録されていてもよい。コンピュータ読取り可能媒体を用いれば、コンピュータにインストールすることが可能である。ここで、プログラムが記録されたコンピュータ読取り可能媒体は、非一過性の記録媒体であってもよい。非一過性の記録媒体は、特に限定されるものではないが、例えば、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭなどの記録媒体であってもよい。また、プログラムは、ネットワークを介して提供してもよい。
【００９３】
また、上述した実施形態では、デバイス管理装置１０の構成と動作について説明したが、本発明はこれに限られず、デバイス管理装置１０におけるデバイス管理方法として構成されてもよい。
【００９４】
本発明を図面および実施形態に基づき説明してきたが、当業者であれば本開示に基づき種々の変形または修正を行うことが容易であることに注意されたい。したがって、これらの変形または修正は本発明の範囲に含まれることに留意されたい。例えば、各ブロックなどに含まれる機能などは論理的に矛盾しないように再配置可能であり、複数のブロックを１つに組み合わせたり、或いは分割したりすることが可能である。
【符号の説明】
【００９５】
１        ＩｏＴリソース管理システム
２        デバイス
３        ＡＰＩ
１０      デバイス管理装置
１１      デバイス管理部
１２      アプリケーション設定部
１２１    アプリケーション
１２２    コントローラ
１２２ａ  インプットコントローラ
１２２ｂ  アウトプットコントローラ
１３      コンテキスト解析部
１３１    コンテキストハンドラ
１４      デバイス管理ＤＢ
１５      要求解釈部（要求取得部）
１６      二次利用コントローラ管理部
１６１    二次利用コントローラ
１６２    二次利用ポインタ
１６３    スケジューラ
１６４    エンドポイント
１７      二次利用ポインタＤＢ
【図１】
2018142125.tif 000003
【図２Ａ】
2018142125.tif 000004
【図２Ｂ】
2018142125.tif 000005
【図２Ｃ】
2018142125.tif 000006
【図３】
2018142125.tif 000007
【図４Ａ】
2018142125.tif 000008
【図４Ｂ】
2018142125.tif 000009
【図４Ｃ】
2018142125.tif 000010
【図５】
2018142125.tif 000011
【図６】
2018142125.tif 000012
【図７】
2018142125.tif 000013
【図８】
2018142125.tif 000014
【図９】
2018142125.tif 000015
【図１０】
2018142125.tif 000016
【図１１】
2018142125.tif 000017
【図１２】
2018142125.tif 000018
【図１３】
2018142125.tif 000019
【図１４】
2018142125.tif 000020
【図１５】
2018142125.tif 000021
【図１６】
2018142125.tif 000022