(57)【要約】  ネットワーク帯域の圧迫を抑制すること。情報処理装置であって、少なくとも２つのデバイスグループに対する、少なくとも１つのアプリケーションからのコマンドを受信するコマンド受信部と、前記少なくとも１つのアプリケーションから前記少なくとも２つのデバイスグループへのコマンドが同種のコマンドである場合に、前記少なくとも２つのデバイスグループに所属するデバイスを特定するデバイス特定部と、前記特定されたデバイスに対するコマンドの送信が重複しないように制御するコマンド送信制御部と、を備える。
2017145997.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも２つのデバイスグループに対する、少なくとも１つのアプリケーションからのコマンドを受信するコマンド受信手段と、
前記少なくとも１つのアプリケーションから前記少なくとも２つのデバイスグループへのコマンドが同種のコマンドである場合に、前記少なくとも２つのデバイスグループに所属するデバイスを特定するデバイス特定手段と、
前記特定されたデバイスに対する前記同種のコマンドの送信が重複しないように制御するコマンド送信制御手段と、
を備える情報処理装置。
【請求項２】
前記特定されたデバイスから受信したデバイスデータの前記少なくとも１つのアプリケーションへの返信を制御するデバイスデータ返信手段をさらに備える請求項１に記載の情報処理装置。
【請求項３】
前記デバイス特定手段は、前記コマンド受信手段が、前記少なくとも１つのアプリケーションからの前記同種のコマンドを所定時間以内に複数回受信した場合に、前記複数回受信したコマンドに基づいて、前記少なくとも２つのデバイスグループに所属するデバイスを特定する請求項１または２に記載の情報処理装置。
【請求項４】
前記デバイスデータを一時的に保存する保存手段と、
前記保存手段に保存されたデバイスデータが有効期限内か否かを判定する判定手段と、
をさらに備え、
前記デバイスデータ返信手段は、前記判定手段による判定の結果、前記保存手段に保存されたデバイスデータが有効期限内であれば、前記特定されたデバイスから受信したデバイスデータを返信する請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
前記コマンド送信制御手段は、前記有効期限を超えた場合、前記特定されたデバイスに前記同種のコマンドを再度送信する請求項４に記載の情報処理装置。
【請求項６】
前記デバイスに対してデータ送信ポリシーを設定するデータ送信ポリシー設定手段をさらに備え、
前記デバイスデータ返信手段は、前記データ送信ポリシーに基づいて、前記デバイスから送信されるデバイスデータを受信する請求項２乃至５のいずれか１項に記載の情報処理装置。
【請求項７】
前記コマンド送信制御手段は、さらに、前記少なくとも１つのアプリケーションの優先順位に応じて、前記同種のコマンドの送信を制御する請求項１乃至６のいずれか１項に記載の情報処理装置。
【請求項８】
少なくとも２つのデバイスグループに対する、少なくとも１つのアプリケーションからのコマンドを受信するコマンド受信ステップと、
前記少なくとも１つのアプリケーションから前記少なくとも２つのデバイスグループへのコマンドが同種のコマンドである場合に、前記少なくとも２つのデバイスグループに所属するデバイスを特定するデバイス特定ステップと、
前記特定されたデバイスに対する前記同種のコマンドの送信が重複しないように制御するコマンド送信制御ステップと、
を含む情報処理方法。
【請求項９】
少なくとも２つのデバイスグループに対する、少なくとも１つのアプリケーションからのコマンドを受信するコマンド受信ステップと、
前記少なくとも１つのアプリケーションから前記少なくとも２つのデバイスグループへのコマンドが同種のコマンドである場合に、前記少なくとも２つのデバイスグループに所属するデバイスを特定するデバイス特定ステップと、
前記特定されたデバイスに対する前記同種のコマンドの送信が重複しないように制御するコマンド送信制御ステップと、
をコンピュータに実行させる情報処理プログラム。
【請求項１０】
少なくとも２つのデバイスグループと、
前記少なくとも２つのデバイスグループに対する少なくとも１つのアプリケーションからのコマンドに基づいて情報処理する情報処理装置と、
を備え、
前記情報処理装置は、
前記少なくとも１つのアプリケーションからの前記コマンドを受信するコマンド受信手段と、
前記コマンドが同種のコマンドである場合に、前記少なくとも２つのデバイスグループに所属するデバイスを特定するデバイス特定手段と、
前記特定されたデバイスに対する前記同種のコマンドの送信が重複しないように制御するコマンド送信制御手段と、
を有する、情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法、情報処理プログラムおよび情報処理システムに関する。
【背景技術】
【０００２】
上記技術分野において、特許文献１には、デバイスをグループ化してデータを一括送信する技術が開示されている。また、特許文献２には、データとは別にあるメタデータを基にノイズを除去する技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第５６７８０９４号公報
【特許文献２】国際公開第２０１３／０９５７７３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記文献に記載の技術では、複数のグループに所属するデバイスに対して、グループごとにデータ取得要求が発生すると重複したデータ送信が必要となり、ネットワーク帯域の圧迫を抑制することができなかった。【０００５】
本発明の目的は、上述の課題を解決する技術を提供することにある。
【課題を解決するための手段】
【０００６】
上記目的を達成するため、本発明に係る情報処理装置は、
少なくとも２つのデバイスグループに対する、少なくとも１つのアプリケーションからのコマンドを受信するコマンド受信手段と、
前記少なくとも１つのアプリケーションから前記少なくとも２つのデバイスグループへのコマンドが同種のコマンドである場合に、前記少なくとも２つのデバイスグループに所属するデバイスを特定するデバイス特定手段と、
前記特定されたデバイスに対する前記同種のコマンドの送信が重複しないように制御するコマンド送信制御手段と、
を備える。【０００７】
上記目的を達成するため、本発明に係る情報処理方法は、
少なくとも２つのデバイスグループに対する、少なくとも１つのアプリケーションからのコマンドを受信するコマンド受信ステップと、
前記少なくとも１つのアプリケーションから前記少なくとも２つのデバイスグループへのコマンドが同種のコマンドである場合に、前記少なくとも２つのデバイスグループに所属するデバイスを特定するデバイス特定ステップと、
前記特定されたデバイスに対する前記同種のコマンドの送信が重複しないように制御するコマンド送信制御ステップと、
を含む。【０００８】
上記目的を達成するため、本発明に係る情報処理プログラムは、
少なくとも２つのデバイスグループに対する、少なくとも１つのアプリケーションからのコマンドを受信するコマンド受信ステップと、
前記少なくとも１つのアプリケーションから前記少なくとも２つのデバイスグループへのコマンドが同種のコマンドである場合に、前記少なくとも２つのデバイスグループに所属するデバイスを特定するデバイス特定ステップと、
前記特定されたデバイスに対する前記同種のコマンドの送信が重複しないように制御するコマンド送信制御ステップと、
をコンピュータに実行させる。【０００９】
上記目的を達成するため、本発明に係る情報処理システムは、
少なくとも２つのデバイスグループと、
前記少なくとも２つのデバイスグループに対する少なくとも１つのアプリケーションからのコマンドに基づいて情報処理する情報処理装置と、
を備え、
前記情報処理装置は、
前記少なくとも１つのアプリケーションからの前記コマンドを受信するコマンド受信手段と、
前記コマンドが同種のコマンドである場合に、前記少なくとも２つのデバイスグループに所属するデバイスを特定するデバイス特定手段と、
前記特定されたデバイスに対する前記同種のコマンドの送信が重複しないように制御するコマンド送信制御手段と、
を有する。
【発明の効果】
【００１０】
本発明によれば、複数のグループに所属するデバイスに対して、グループごとにデータ取得要求が発生しても重複したデータ送信が必要とならず、ネットワーク帯域の圧迫を抑制することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の第１実施形態に係る情報処理装置の構成を示すブロック図である。
【図２Ａ】本発明の第２実施形態に係る情報処理装置の動作の概念を説明する図である。
【図２Ｂ】本発明の第２実施形態に係る情報処理装置の動作の概要を説明するシーケンス図である。
【図２Ｃ】本発明の第２実施形態に係る情報処理装置の他の動作の概要を説明するシーケンス図である。
【図３】本発明の第２実施形態に係る情報処理装置の構成を示すブロック図である。
【図４】本発明の第２実施形態に係る情報処理装置の備える所属デバイステーブルの構成を示す図である。
【図５】本発明の第２実施形態に係る情報処理装置のハードウェア構成を示すブロック図である。
【図６Ａ】本発明の第２実施形態に係る情報処理装置の処理手順を示すフローチャートである。
【図６Ｂ】本発明の第２実施形態に係る情報処理装置の他の処理手順を示すフローチャートである。
【図７】本発明の第３実施形態に係る情報処理装置の処理の概要を説明するシーケンス図である。
【図８】本発明の第３実施形態に係る情報処理装置の構成を示すブロック図である。
【図９】本発明の第３実施形態に係る情報処理装置の備える有効期限テーブルの構成を示す図である。
【図１０】本発明の第３実施形態に係る情報処理装置のハードウェア構成を示すブロック図である。
【図１１】本発明の第３実施形態に係る情報処理装置の処理手順を示すフローチャートである。
【図１２】本発明の第４実施形態に係る情報処理装置の処理の概要を説明するシーケンス図である。
【図１３】本発明の第４実施形態に係る情報処理装置の構成を示すブロック図である。
【図１４】本発明の第４実施形態に係る情報処理装置の備えるデータ送信ポリシー設定テーブルの構成を示す図である。
【図１５】本発明の第４実施形態に係る情報処理装置のハードウェア構成を示すブロック図である。
【図１６】本発明の第４実施形態に係る情報処理装置の処理手順を示すフローチャートである。
【図１７】本発明の第５実施形態に係る情報処理装置の処理の概要を説明するシーケンス図である。
【図１８】本発明の第５実施形態に係る情報処理装置の構成を示すブロック図である。
【図１９】本発明の第５実施形態に係る情報処理装置の備えるファームウェアテーブルの構成を示す図である。
【図２０】本発明の第５実施形態に係る情報処理装置のハードウェア構成を示すブロック図である。
【図２１】本発明の第５実施形態に係る情報処理装置の処理手順を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下に、本発明を実施するための形態について、図面を参照して、例示的に詳しく説明記載する。ただし、以下の実施の形態に記載されている、構成、数値、処理の流れ、機能要素などは一例に過ぎず、その変形や変更は自由であって、本発明の技術範囲を以下の記載に限定する趣旨のものではない。
【００１３】
［第１実施形態］
本発明の第１実施形態としての情報処理装置１００について、図１を用いて説明する。情報処理装置１００は、アプリケーション１１０からのコマンド１１１に基づいてデバイスグループ１２０に含まれるデバイスからデバイスデータを収集し、収集したデバイスデータをアプリケーション１１０に返信する装置である。
【００１４】
図１に示すように、情報処理装置１００は、コマンド受信部１０１と、デバイス特定部１０２と、コマンド送信制御部１０３とを備える。
【００１５】
コマンド受信部１０１は、少なくとも２つのデバイスグループ１２０に対する、少なくとも１つのアプリケーション１１０からのコマンド１１１を受信する。
【００１６】
デバイス特定部１０２は、少なくとも１つのアプリケーション１１０から少なくとも２つのデバイスグループ１２０へのコマンド１１１が同種のコマンド１１１である場合に、少なくとも２つのデバイスグループ１２０に所属するデバイスを特定する。
【００１７】
コマンド送信制御部１０３は、特定されたデバイスに対する同種のコマンドの送信が重複しないように制御する。
【００１８】
本実施形態によれば、複数のグループに所属するデバイスに対して、グループごとにデータ取得要求が発生しても重複したデータ送信が必要とならず、ネットワーク帯域の圧迫を抑制することができる。
【００１９】
［第２実施形態］
次に本発明の第２実施形態に係る情報処理装置について、図２Ａ乃至図６を用いて説明する。図２Ａは、本実施形態に係る情報処理装置の動作の概念を説明する図である。例えば、複数のアプリケーションからグループＡおよびグループＢに属するデバイス対して同種のコマンドが送信された場合、それぞれのコマンドを個別に実行すると、グループＡおよびグループＢの双方に属するデバイスにおいては、コマンドが重複することとなる。その結果、グループＡおよびグループＢの双方に属するデバイスからのデバイスデータが重複して送信され、ネットワーク帯域の圧迫が生じる。なお、ここで、同種のコマンドとは、同じ種類の動作をデバイスに要求するコマンドをいう。例えば、同種のコマンドには、同じ種類のデバイスデータの送信を要求するコマンドや、ファームウェアの更新を要求するコマンドなどが含まれる。以下の実施形態においても同様とする。
【００２０】
よって、まず、デバイスのグループを管理する情報処理装置（例えば、共通ＰＦ（Platform）、ＧＷ（Gateway））にグループを対象とする複数のコマンドの送信があった場合に、コマンドの送信対象となる複数のグループに所属するデバイスを検出する。そして、検出されたデバイス群に対するコマンド送信の重複を抑制する。
【００２１】
図２Ｂは、本実施形態に係る情報処理装置２００の動作の概要を説明するシーケンス図である。情報処理装置（共通ＰＦ）２００は、ネットワークなどを介してアプリケーション２１０およびデバイスグループ２２０と接続されている。
【００２２】
ステップＳ２０１において、情報処理装置２００は、アプリケーション２１０ａ（アプリａ）からグループ２２０ａ（グループＡ）に属するデバイス（Ｄ１〜Ｄ３）に対するコマンドであるデータ取得要求を受信する。
【００２３】
そして、ステップＳ２０３において、情報処理装置２００は、グループ２２０ａに属するデバイスを特定するために、アプリケーション２１０ａからのデータ取得要求（コマンド）に基づいて、グループ２２０ａを展開する。これにより、情報処理装置２００は、グループ２２０ａに属するデバイスがＤ１，Ｄ２およびＤ３であることを特定する。
【００２４】
ステップＳ２０５において、情報処理装置２００は、グループ２２０ａ（グループＡ）に属するデバイス（Ｄ１〜Ｄ３）に対してコマンドとしてデータ送信要求を送る。
【００２５】
ステップＳ２０７において、情報処理装置２００は、アプリケーション２１０ｂ（アプリｂ）からグループ２２０ｂ（グループＢ）に属するデバイス（Ｄ３〜Ｄ４）に対するコマンドであるデータ取得要求を受信する。なお、アプリケーション２１０ａおよびアプリケーション２１０ｂから送信されるコマンドは同種のコマンドとするが、これには限定されない。
【００２６】
そして、ステップＳ２０９において、情報処理装置２００は、グループ２２０ｂに属するデバイスを特定するために、アプリケーション２１０ｂからのデータ取得要求（コマンド）に基づいて、グループ２２０ｂを展開する。これにより、情報処理装置２００は、グループ２２０ｂに属するデバイスがＤ３およびＤ４であることを特定する。ここで、デバイスＤ３は、グループ２２０ａおよびグループ２２０ｂの両方に所属しているデバイスであり、複数のデバイスグループ２２０に重複して所属しているデバイスである。したがって、このままコマンドを送信すると、デバイス（Ｄ１，Ｄ２，Ｄ３，Ｄ３，Ｄ４）に対してコマンドが送信され、デバイス（Ｄ３）に対して重複してコマンドが送信されてしまう。ステップＳ２１１において、情報処理装置２００は、デバイスグループ２２０に重複して所属するデバイス（Ｄ３）に対して、重複してデータ送信要求（データ取得要求）が送信されないようにＢ−（Ａ∩Ｂ）を演算する。情報処理装置２００は、演算の結果として、Ｄ４を得る。
【００２７】
ステップＳ２１３において、情報処理装置２００は、グループ２２０ｂに属するデバイス（Ｄ４）に対してデータ送信要求を送信する。つまり、グループ２２０ａおよびグループ２２０ｂのいずれにも所属するデバイス（Ｄ３）が、コマンドの送信対象から除外されているので、デバイス（Ｄ３）に対してはデータ送信要求が重複送信されない。
【００２８】
ステップＳ２１５において、情報処理装置２００は、デバイス（Ｄ１〜Ｄ４）からデバイスデータを受信する。
【００２９】
ステップＳ２１７において、情報処理装置２００は、ステップＳ２０１に対する返答として、アプリケーション２１０ａに対してデバイス（Ｄ１〜Ｄ３）のデバイスデータ（ｘｘｘ，ｙｙｙ，ｚｚｚ）を返信する。
【００３０】
ステップＳ２１９において、情報処理装置２００は、ステップＳ２０７に対する返答として、アプリケーション２１０ｂに対してデバイス（Ｄ３〜Ｄ４）のデバイスデータ（ｚｚｚ，ｑｑｑ）を返信する。このように、図２Ｂのシーケンス図では、アプリケーション２１０からデータ取得要求がある都度デバイスからデバイスデータを取得する例を説明した。
【００３１】
図２Ｃは、本実施形態に係る情報処理装置２００の他の動作の概要を説明するシーケンス図であり、アプリケーションからのコマンドが遅延を許容できるコマンドである場合のシーケンス図である。
【００３２】
ステップＳ２３１において、情報処理装置２００は、アプリケーション２１０ａ（アプリａ）からグループ２２０ａ（グループＡ）に属するデバイス（Ｄ１〜Ｄ３）に対するコマンドであるデータ取得要求を受信する。
【００３３】
そして、ステップＳ２３３において、情報処理装置２００は、グループ２２０ａに属するデバイスを特定するために、アプリケーション２１０ａからのデータ取得要求（コマンド）に基づいて、グループ２２０ａを展開する。これにより、情報処理装置２００は、グループ２２０ａに属するデバイスがＤ１，Ｄ２およびＤ３であることを特定する。ここで、デバイスＤ３は、複数のデバイスグループ２２０（グループ２２０ａおよびグループ２２０ｂ）に所属するデバイスである。
【００３４】
情報処理装置２００は、アプリケーション２１０ａからのコマンドが遅延を許容できるコマンドであり、他のデバイスグループに重複所属するデバイス（Ｄ３）があるので、他のアプリケーション２１０ｂ（アプリｂ）からの要求（コマンドの送信）を所定時間だけ待つ。
【００３５】
なお、情報処理装置２００は、他のデバイスグループ２２０に重複所属するデバイスがない場合であっても、他のアプリケーション２１０からの要求（コマンドの送信）を所定時間待ってもよい。
【００３６】
ステップＳ２３５において、情報処理装置２００は、アプリケーション２１０ｂからグループ２２０ｂ（グループＢ）に属するデバイス（Ｄ３〜Ｄ４）に対するコマンドであるデータ取得要求を所定時間内に受信する。なお、アプリケーション２１０ａおよびアプリケーション２１０ｂから送信されるコマンドは同種のコマンドとするが、これには限定されない。
【００３７】
そして、ステップＳ２３７において、情報処理装置２００は、グループｂに属するデバイスを特定するために、アプリケーション２２０ｂからのデータ取得要求（コマンド）に基づいて、グループ２２０ｂを展開する。これにより、情報処理装置２００は、グループ２２０ｂに属するデバイスがＤ３およびＤ４であることを特定する。ここで、デバイスＤ３は、グループ２２０ａおよびグループ２２０ｂの両方に所属しているデバイスであり、複数のデバイスグループ２２０に重複して所属しているデバイスである。したがって、このままコマンドを送信すると、デバイス（Ｄ１，Ｄ２，Ｄ３，Ｄ３，Ｄ４）に対してコマンドが送信され、デバイス（Ｄ３）に対して重複してコマンドが送信されてしまう。
【００３８】
ステップＳ２３９において、情報処理装置２００は、デバイスグループ２２０に重複して所属するデバイス（Ｄ３）に対して、重複してデータ送信要求（データ取得要求）が送信されないように、Ｂ−（Ａ∩Ｂ）を演算する。そして、情報処理装置２００は、演算結果とグループ２２０ａの展開結果とを合わせて（Ｄ１，Ｄ２，Ｄ３，Ｄ４）を得る。
【００３９】
ステップＳ２４１において、情報処理装置２００は、デバイスグループ２２０に対するコマンドであるデータ送信要求をデバイス（Ｄ１，Ｄ２，Ｄ３，Ｄ４）に対して送信する。このとき、情報処理装置２００は、デバイス（Ｄ３）へのデータ送信要求を重複して送信しない。
【００４０】
ステップＳ２４３において、情報処理装置２００は、各デバイス（Ｄ１〜Ｄ４）からデバイスデータを受信する。
【００４１】
ステップＳ２４５において、情報処理装置２００は、ステップＳ２３１に対する返答として、アプリケーション２１０ａに対してデバイス（Ｄ１〜Ｄ３）のデバイスデータ（ｘｘｘ，ｙｙｙ，ｚｚｚ）を返信する。ステップＳ２４７において、情報処理装置２００は、ステップＳ２３５に対する返答として、アプリケーション２１０ｂに対してデバイス（Ｄ３〜Ｄ４）のデバイスデータ（ｚｚｚ，ｑｑｑ）を返信する。このように、図２Ｃのシーケンス図では、アプリケーション２１０ａ，２１０ｂからのデータ取得要求が所定の時間以内に到達した場合にデバイスからデバイスデータを取得する例を説明した。
【００４２】
なお、上述の説明ではデバイス（Ｄ１〜Ｄ４）は、１つの共通ＰＦ（情報処理装置２００）に接続された例で説明したが、各デバイスは、サービスの内容に応じて複数の共通ＰＦに接続されていてもよい。また、デバイスが所属するグループの数も２つには限定されず、３以上であってもよい。さらに、情報処理装置２００（共通ＰＦ）とデバイスグループ２２０との間にＧＷを配置してもよく、この場合、情報処理装置２００の動作は変えなくてもいいし、変えてもよい。つまり、例えば、情報処理装置２００で実行していた処理をＧＷが実行しても、情報処理装置２００とＧＷとで処理を分担して実行してもよい。
【００４３】
図３は、本実施形態に係る情報処理装置２００の構成を示すブロック図である。情報処理装置２００は、コマンド受信部３０１と、デバイス特定部３０２と、コマンド送信制御部３０３と、デバイスデータ受信部３０４と、デバイスデータ返信部３０５とを有する。さらに、コマンド受信部３０１は、計時部３１１を備える。
【００４４】
コマンド受信部３０１は、アプリケーション２１０からコマンド２１１を受信する。アプリケーション２１０には複数のアプリケーションが含まれ、本実施形態では、アプリケーション２１０ａ（アプリａ）とアプリケーション２１０ｂ（アプリｂ）との２つのアプリケーションが含まれるが、アプリケーションの数はこれには限定されない。
【００４５】
また、計時部３１１はタイマーであり、アプリケーション２１０から送信された複数のコマンド２１１が所定時間以内にコマンド受信部３０１に到達しているか否かを判定する。そして、アプリケーション２１０から送信された複数のコマンド２１１が所定時間内にコマンド受信部３０１に到達していなければ、情報処理装置２００は、それぞれのコマンド２１１を到達順に個別に処理する。
【００４６】
デバイス特定部３０２は、コマンド受信部３０１が受信したアプリケーション２１０からのコマンド２１１に基づいて、デバイスグループ２２０に属するデバイスを特定する。例えば、アプリケーション２１０ａからグループ２２０ａ（グループＡ）に対するコマンド２１１を受信した場合、デバイス特定部３０２は、グループ２２０ａを展開して、グループ２２０ａに属するデバイス（デバイスＤ１〜Ｄ３）を特定する。同様に、例えば、アプリケーション２１０ａからグループ２２０ｂ（グループＢ）に対するコマンド２１１を受信した場合、デバイス特定部３０２は、グループ２２０ｂを展開して、グループ２２０ｂに属するデバイス（デバイスＤ３〜Ｄ４）を特定する。
【００４７】
コマンド送信制御部３０３は、デバイス特定部３０２が特定したデバイスの所属先のデバイスグループ（デバイスの属性）の情報に基づいて、コマンド２１１の送信を制御する。具体的には、デバイス（Ｄ３）は、グループ２２０ａおよびグループ２２０ｂの両方に所属しているので、このまま、アプリケーション２１０からのコマンド２１１を送信した場合には、デバイス（Ｄ３）に対するコマンド２１１が重複送信される。
【００４８】
したがって、コマンド送信制御部３０３は、グループ２２０ａ（グループＡ）とグループ２２０ｂ（グループＢ）との交わりを演算する。すなわち、コマンド送信制御部３０３は、グループ２２０ａとグループ２２０ｂとの両方に所属するデバイスを決定する。そして、コマンド送信制御部３０３は、両グループに所属するデバイスに重複してコマンド２１１が送信されないように、重複分のコマンド２１１の送信を抑制する。
【００４９】
具体的には、グループ２２０ａ（グループＡ）とグループ２２０ｂ（グループＢ）とに属するデバイスはデバイス（Ｄ３）であるので、デバイス（Ｄ３）へのコマンド２１１が重複して送信されないように、デバイス（Ｄ３）に対するコマンド２１１のうち重複分のコマンド２１１が送信されないようにする。そして、コマンド送信制御部３０３は、データ取得要求をデバイス（Ｄ１〜Ｄ４）へと送信する。
【００５０】
デバイスデータ受信部３０４は、グループ２２０ａ（グループＡ）およびグループ２２０ｂ（グループＢ）に属するデバイスからのデバイスデータ２２１を受信する。つまり、コマンド２１１としてのデータ送信要求を受信したデバイス（Ｄ１〜Ｄ４）が、コマンド２１１を実行して情報処理装置２００に宛てて送信したデバイスデータ２２１を受信する。この場合、デバイス（Ｄ３）については、コマンド２１１が重複して送信されないので、デバイス（Ｄ３）からのデバイスデータ２２１の送信は１回となり、デバイスグループ２２０からの重複したデバイスデータ２２１の送信が回避されるので、ネットワーク帯域が圧迫されない。
【００５１】
デバイスデータ返信部３０５は、コマンド２１１に対する応答として、デバイス（Ｄ１〜Ｄ３）から受信したデバイスデータ２２１をアプリケーション２１０ａに返信し、デバイス（Ｄ３〜Ｄ４）から受信したデバイスデータ２２１をアプリケーション２１０ｂに返信する。この場合、情報処理装置２００とアプリケーション２１０との間において、デバイス（Ｄ３）のデバイスデータ２２１が重複して送信されないので、ネットワーク帯域が圧迫されない。なお、デバイスデータ返信部３０５は、デバイスから取得したデバイスデータ２２１をそのままアプリケーション２１０に返信する他に、取得したデバイスデータ２２１の平均値や最大値などを算出してアプリケーション２１０に返信する。すなわち、デバイスデータ返信部３０５は、取得したデバイスデータに何らかの加工を施した結果を返信する場合もある。
【００５２】
図４は、本実施形態に係る情報処理装置２００の備える所属デバイステーブル４０１の構成を示す図である。所属デバイステーブル４０１は、グループＩＤ４１１に関連付けて所属デバイス４１２を記憶する。デバイス特定部３０２は、所属デバイステーブル４０１を参照して、デバイスグループ２２０の各グループに所属するデバイスを特定する。なお、デバイス特定部３０２がデバイスグループ２２０に所属するデバイスを特定する方法は、所属デバイステーブル４０１を参照する方法には限定されず、デバイスに所属先を問い合わせてもよい。
【００５３】
図５は、本実施形態に係る情報処理装置２００のハードウェア構成を示すブロック図である。
【００５４】
ＣＰＵ(Central Processing Unit)５１０は演算制御用のプロセッサであり、プログラムを実行することで図３の情報処理装置２００の機能構成部を実現する。ＲＯＭ(Read Only Memory)５２０は、初期データおよびプログラムなどの固定データおよびプログラムを記憶する。また、通信制御部５３０は、ネットワークを介してアプリケーション２１０やデバイスグループ２２０、その他の装置などと通信する。なお、ＣＰＵ５１０は１つに限定されず、複数のＣＰＵであっても、あるいは画像処理用のＧＰＵ(Graphics Processing Unit)を含んでもよい。また、通信制御部５３０は、ＣＰＵ５１０とは独立したＣＰＵを有して、ＲＡＭ(Random Access Memory)５４０の領域に送受信データを書き込みあるいは読み出しするのが望ましい。また、ＲＡＭ５４０とストレージ５５０との間でデータを転送するＤＭＡＣ(Direct Memory Access Controller)を設けるのが望ましい（図示なし）。さらに、入出力インタフェース５６０は、ＣＰＵ５１０とは独立したＣＰＵを有して、ＲＡＭ５４０の領域に入出力データを書き込みあるいは読み出しするのが望ましい。したがって、ＣＰＵ５１０は、ＲＡＭ５４０にデータが受信あるいは転送されたことを認識してデータを処理する。また、ＣＰＵ５１０は、処理結果をＲＡＭ５４０に準備し、後の送信あるいは転送は通信制御部５３０やＤＭＡＣ、あるいは入出力インタフェース５６０に任せる。
【００５５】
ＲＡＭ５４０は、ＣＰＵ５１０が一時記憶のワークエリアとして使用するランダムアクセスメモリである。ＲＡＭ５４０には、本実施形態の実現に必要なデータを記憶する領域が確保されている。コマンド内容５４１は、アプリケーション２１０からデバイスグループ２２０に宛てて送信されたコマンド２１１の内容であり、例えば、データ取得要求などである。コマンド到達時刻５４２は、アプリケーション２１０からのコマンド２１１が情報処理装置２００のコマンド受信部３０１に到達した時刻であり、例えば、計時部３１１により到達時刻がコマンド２１１に刻印される。そして、コマンド受信部３０１は、コマンドに刻印された時刻に基づいて、アプリケーション２１０から送信された複数のコマンド２１１が所定の時間内に到達しているか否かを判断する。
【００５６】
グループ情報５４３は、コマンド２１１の送信対象となるデバイスの所属するデバイスグループ２２０に関する情報であり、図４に示した所属デバイステーブル４０１から展開された情報である。デバイス情報５４４は、コマンド２１１の送信対象となるデバイスに関する情報であり、例えば、デバイスＩＤやデバイス種別などの情報であるが、これらには限定されない。入出力データ５４６は、入出力インタフェース５６０を介して入出力されるデータである。送受信データ５４７は、通信制御部５３０を介して送受信されるデータである。また、ＲＡＭ５４０は、各種アプリケーションモジュールを実行するためのアプリケーション実行領域５４８を有する。
【００５７】
ストレージ５５０には、データベースや各種のパラメータ、あるいは本実施形態の実現に必要な以下のデータまたはプログラムが記憶されている。ストレージ５５０は、所属デバイステーブル４０１を格納する。所属デバイステーブル４０１は、図４に示した、デバイスグループ２２０（グループＩＤ）と、このグループに所属するデバイスとの関係を管理するテーブルである。
【００５８】
ストレージ５５０は、さらに、コマンド受信モジュール５５１と、デバイス特定モジュール５５２と、コマンド送信制御モジュール５５３と、デバイスデータ受信モジュール５５４と、デバイスデータ返信モジュール５５５とを格納する。
【００５９】
コマンド受信モジュール５５１は、アプリケーション２１０からの複数のコマンドを受信モジュールであり、複数のコマンドが所定の時間以内で到達したか否かを判断するモジュールである。デバイス特定モジュール５５２は、アプリケーション２１０からの複数のコマンド２１１が所定の時間以内で到達した場合、デバイスグループ２２０に所属するデバイスを特定するモジュールである。コマンド送信制御モジュール５５３は、複数のデバイスグループ２２０に属するデバイスに対して、コマンド２１１が重複して送信されないように、コマンド２１１の送信を制御するモジュールである。デバイスデータ受信モジュール５５４は、デバイスグループ２２０から送信された各デバイスのデバイスデータ２２１を受信するモジュールである。デバイスデータ返信モジュール５５５は、アプリケーション２１０からのコマンド２１１の応答として、受信したデバイスデータ２２１を、コマンド２１１の送信元のアプリケーション２１０に返信するモジュールである。これらのモジュール５５１〜５５５は、ＣＰＵ５１０によりＲＡＭ５４０のアプリケーション実行領域５４８に読み出され、実行される。制御プログラム５５６は、情報処理装置２００の全体を制御するためのプログラムである。
【００６０】
入出力インタフェース５６０は、入出力機器との入出力データをインタフェースする。入出力インタフェース５６０には、表示部５６１、操作部５６２、が接続される。また、入出力インタフェース５６０には、さらに、記憶媒体５６４が接続されてもよい。さらに、音声出力部であるスピーカ５６３や、音声入力部であるマイク、あるいは、ＧＰＳ位置判定部が接続されてもよい。なお、図５に示したＲＡＭ５４０やストレージ５５０には、情報処理装置２００が有する汎用の機能や他の実現可能な機能に関するプログラムやデータは図示されていない。
【００６１】
図６Ａは、本実施形態に係る情報処理装置２００の処理手順を示すフローチャートであり、図２Ｂに示したシーケンス図に対応するフローチャートである。このフローチャートは、図５のＣＰＵ５１０がＲＡＭ５４０を使用して実行し、図３の情報処理装置２００の機能構成部を実現する。
【００６２】
ステップＳ６０１において、情報処理装置２００は、アプリケーション２１０ａからデータ取得要求などのコマンド２１１を受信する。ステップＳ６０３において、情報処理装置２００は、受信したコマンド２１１に基づいて、コマンド２１１の送信先となるグループ２２０ａに所属するデバイス（Ｄ１〜Ｄ３）を特定する。ステップＳ６０５において、情報処理装置２００は、特定したデバイスに対してデータ送信要求をコマンド２１１として送信する。
【００６３】
ステップＳ６０７において、情報処理装置２００は、他のアプリケーション２１０ｂからデータ取得要求などのコマンド２１１を受信する。ステップＳ６０９において、情報処理装置２００は、受信したコマンド２１１に基づいて、コマンド２１１の送信先となるグループ２２０ｂに所属するデバイス（Ｄ３〜Ｄ４）を特定する。ステップＳ６１１において、グループ２２０ａとグループ２２０ｂとに重複して所属するデバイス（Ｄ３）をコマンド２１１の送信対象から排除する。ステップＳ６１３において、情報処理装置２００は、デバイス（Ｄ４）に対してデータ送信要求をコマンド２１１として送信する。
【００６４】
ステップＳ６１５において、情報処理装置は、デバイス（Ｄ１〜Ｄ４）からデバイスデータ２２１を受信する。ステップＳ６１７において、情報処理装置２００は、アプリケーション２１０ａおよびアプリケーション２１０ｂにデバイスデータ２２１を返信する。
【００６５】
図６Ｂは、本実施形態に係る情報処理装置２００の他の処理手順を示すフローチャートであり、図２Ｃに示したシーケンス図に対応するフローチャートである。このフローチャートは、図５のＣＰＵ５１０がＲＡＭ５４０を使用して実行し、図３の情報処理装置２００の機能構成部を実現する。
【００６６】
ステップＳ６４１において、情報処理装置２００は、アプリケーション２１０ａからデータ取得要求などのコマンド２１１を受信する。ステップＳ６４３において、情報処理装置２００は、受信したコマンド２１１に基づいて、コマンド２１１の送信先となるグループ２２０ａに所属するデバイス（Ｄ１〜Ｄ３）を特定する。ステップＳ６４５において、情報処理装置２００は、他のアプリケーション２１０ｂからデータ取得要求などのコマンド２１１を所定時間内に受信したか否かを判断する。所定時間内に他のアプリケーション２１０ｂからのコマンド２１１を受信しない場合（ステップＳ６４５のＮＯ）、情報処理装置２００は、ステップＳ６５１へ進み、データ送信要求をデバイス（Ｄ１〜Ｄ３）に対して送る。所定時間内に他のアプリケーション２１０ｂからのコマンド２１１を受信した場合（ステップＳ６４５のＹＥＳ）、情報処理装置２００は、ステップＳ６４７へ進む。
【００６７】
ステップＳ６４７において、情報処理装置２００は、受信した他のアプリケーション２１０ｂからのコマンド２１１に基づいて、コマンド２１１の送信先となるグループ２２０ｂに所属するデバイス（Ｄ３〜Ｄ４）を特定する。ステップＳ６４９において、情報処理装置２００は、グループ２２０ａとグループ２２０ｂとに重複して所属するデバイス（Ｄ３）をコマンド２１１の送信対象から除外する。ステップＳ６５１において、情報処理装置２００は、デバイス（Ｄ１〜Ｄ４）に対してデータ送信要求をコマンド２１１として送信する。
【００６８】
ステップＳ６５３において、情報処理装置２００は、デバイス（Ｄ１〜Ｄ４）からデバイスデータ２２１を受信する。ステップＳ６５５において、情報処理装置２００は、アプリケーション２１０ａおよびアプリケーション２１０ｂにデバイスデータ２２１を返信する。
【００６９】
本実施形態によれば、複数のグループに所属するデバイスに対して、グループごとにデータ取得要求が発生しても重複したデータ送信が必要とならず、ネットワーク帯域の圧迫を抑制することができる。また、複数のコマンドが所定時間以内で到達した場合に、重複を排除してコマンドの送信を行うので、アプリケーションから見て、コマンドに対する応答の即時性も損なわれない。
【００７０】
［第３実施形態］
次に本発明の第３実施形態に係る情報処理装置について、図７乃至図１１を用いて説明する。図７は、本実施形態に係る情報処理装置の動作の概要を説明するためのシーケンス図である。本実施形態に係る情報処理装置は、上記第２実施形態と比べると、取得したデバイスデータを一時的に保存する保存部および保存されているデバイスデータの有効期限を判定する判定部を有する点で異なる。その他の構成および動作は、第２実施形態と同様であるため、同じ構成および動作については同じ符号を付してその詳しい説明を省略する。
【００７１】
ステップＳ７０１において、情報処理装置７００は、アプリケーション２１０ａ（アプリａ）からコマンドとしてグループ２２０ａ（グループＡ）に対するデータ取得要求を受信する。ステップＳ７０３において、情報処理装置７００は、グループ２２０ａに属するデバイスを特定するために、アプリケーション２１０ａからのデータ取得要求に基づいて、グループ２２０ａを展開する。これにより、情報処理装置７００は、グループ２２０ａに属するデバイスがＤ１，Ｄ２およびＤ３であることを特定する。
【００７２】
ステップＳ７０５において、情報処理装置７００は、グループ２２０ａ（グループＡ）に属するデバイス（Ｄ１〜Ｄ３）に対してデータ送信要求をコマンドとして送信する。
【００７３】
ステップＳ７０７において、情報処理装置７００は、デバイス（Ｄ１〜Ｄ３）からデバイスデータを受信する。そして、ステップＳ７０９において、情報処理装置７００は、受信したデバイス（Ｄ１〜Ｄ３）のデバイスデータをキャッシュして、一時的に保存する。ステップＳ７１１において、情報処理装置７００は、ステップＳ７０１に対する返答として、アプリケーション２１０ａに対してデバイス（Ｄ１〜Ｄ３）のデバイスデータ（Ｄ１＝ｘｘｘ，Ｄ２＝ｙｙｙ，Ｄ３＝ｚｚｚ）を返信する。
【００７４】
ステップＳ７１３において、情報処理装置７００は、アプリケーション２１０ｂ（アプリｂ）からコマンドとしてグループ２２０ｂ（グループＢ）に対するデータ取得要求を受信する。ステップＳ７１５において、情報処理装置７００は、グループ２２０ｂに属するデバイスを特定するために、アプリケーション２１０ｂからのデータ取得要求に基づいて、グループ２２０ｂを展開する。これにより、情報処理装置７００は、グループ２２０ｂに属するデバイスがＤ３およびＤ４であることを特定する。さらに、デバイス（Ｄ３）が、グループ２２０ａおよびグループ２２０ｂの双方に重複して属するデバイスであることを特定する。
【００７５】
ステップＳ７１７において、ステップＳ７０９で一時的に保存したデバイスデータのキャッシュが有効期限内であるか否かを判断し、有効期限内であれば、情報処理装置７００は、Ｂ−（Ａ∩Ｂ）を演算する。情報処理装置７００は、演算の結果として、Ｄ４を得る。そして、ステップＳ７１９において、情報処理装置７００は、グループ２２０ｂに属するデバイス（Ｄ４）に対してデータ送信要求を送信する。つまり、グループ２２０ａおよびグループ２２０ｂのいずれにも所属するデバイス（Ｄ３）が、データ送信要求の送信対象から除外されているので、デバイス（Ｄ３）に対してはデータ送信要求が重複送信されない。
【００７６】
ステップＳ７２１において、情報処理装置７００は、デバイス（Ｄ４）からデバイスデータを受信する。ステップＳ７２３において、情報処理装置７００は、取得したデバイス（Ｄ４）のデバイスデータをキャッシュして、一時的に保存する。ステップＳ７２５において、情報処理装置７００は、ステップＳ７０９でキャッシュしたデバイス（Ｄ３）のデバイスデータと、ステップＳ７２１で受信したデバイス（Ｄ４）のデバイスデータとで、グループ２２０ｂのデバイスデータを構成する。ステップＳ７２７において、情報処理装置７００は、ステップＳ７１３に対する返答として、アプリケーション２１０ｂに対してデバイス（Ｄ３〜Ｄ４）のデバイスデータ（Ｄ３＝ｚｚｚ，Ｄ４＝ｑｑｑ）を返信する。
【００７７】
図８は、本実施形態に係る情報処理装置７００の構成を示すブロック図である。情報処理装置７００は、保存部８０６と、判定部８０７とをさらに備える。保存部８０６は、デバイスデータ２２１をキャッシュし、一時的に保存する。判定部８０７は、保存部８０６に保存されているデバイスデータ２２１が有効期限内か否かを判定する。
【００７８】
図９は、本実施形態に係る情報処理装置７００の備える有効期限テーブル９０１の構成の一例を示す図である。有効期限テーブル９０１は、デバイスＩＤ９１１に関連付けて、有効期限９１２と、所属グループ９１３と、デバイス種別９１４とを記憶する。なお、有効期限テーブル９０１に記憶する項目はこれらには限定されない。判定部８０７は、有効期限テーブル９０１を参照して、保存部８０６に一時的に保存されているデバイスデータ２２１が有効期限を経過しているか否かを判定する。なお、１つのデバイスに対応付けられたデータ種別９１４が複数ある場合（図９では温度と湿度）、それぞれに有効期限を設定してもよく、また、まとめて１つの有効期限を設定してもよい。また、各デバイスで取得されるデータが１種類の場合には、データ種別９１４は省略してもよい。
【００７９】
図１０は、本実施形態に係る情報処理装置７００のハードウェア構成を示すブロック図である。ＲＡＭ１０４０は、ＣＰＵ５１０が一時記憶のワークエリアとして使用するランダムアクセスメモリである。ＲＡＭ１０４０には、本実施形態の実現に必要なデータを記憶する領域が確保されている。有効期限１０４５は、保存部８０６に一時的に保存されているデバイスデータ２２１の有効期限に関する情報であり、ＲＡＭ１０４０に一時的に記憶される。有効期限１０４５は、図示しない有効期限を格納したデータベースなどからＲＡＭ１０４０へ読み出してもよい。
【００８０】
ストレージ１０５０には、データベースや各種のパラメータ、あるいは本実施形態の実現に必要な以下のデータまたはプログラムが記憶されている。有効期限テーブル９０１は、図９に示した構成のテーブルであり、ストレージ１０５０に格納される。
【００８１】
ストレージ１０５０は、さらに、判定モジュール１０５７を格納する。判定モジュール１０５７は、保存部８０６に保存されているデバイスデータ２２１が有効期限内か否かを判定するモジュールである。このモジュール１０５７は、ＣＰＵ５１０によりＲＡＭ１０４０のアプリケーション実行領域５４８に読み出され、実行される。
【００８２】
図１１は、本実施形態に係る情報処理装置７００の処理手順を示すフローチャートである。このフローチャートは、図１０のＣＰＵ５１０がＲＡＭ１０４０を使用して実行し、図８の情報処理装置７００の機能構成部を実現する。
【００８３】
ステップＳ１１０１において、情報処理装置７００は、アプリケーション２１０ａからデータ取得要求などのコマンド２１１を受信する。ステップＳ１１０３において、情報処理装置７００は、受信したコマンド２１１に基づいて、コマンド２１１の送信先となるグループ２２０ａに所属するデバイス（Ｄ１〜Ｄ３）を特定する。ステップＳ１１０５において、情報処理装置７００は、特定したデバイスに対してコマンド２１１としてのデータ送信要求を送る。
【００８４】
ステップＳ１１０７において、情報処理装置７００は、デバイス（Ｄ１〜Ｄ３）からデバイスデータ２２１を受信し、キャッシュとして一時的に保存部８０６に保存する。そして、情報処理装置７００は、データ取得要求に対する返答として、アプリケーション２１０ａに受信したデバイスデータ２２１を返信する。
【００８５】
ステップＳ１１０９において、情報処理装置７００は、他のアプリケーション２１０ｂからデータ取得要求などのコマンド２１１を受信する。ステップＳ１１１１において、情報処理装置７００は、受信したコマンド２１１に基づいて、コマンド２１１の送信先となるグループ２２０ｂに所属するデバイス（Ｄ３〜Ｄ４）を特定する。ステップＳ１１１３において、情報処理装置７００は、保存部８０６にキャッシュとして一時的に保存しているデバイス（Ｄ３）のデバイスデータ２２１が有効期限内であるか否かを判断する。
【００８６】
デバイスデータ２２１が有効期限内の場合（ステップＳ１１１３のＹＥＳ）、情報処理装置７００は、ステップＳ１１１５に進む。ステップＳ１１１５において、情報処理装置７００は、デバイス（Ｄ４）に対してデータ送信要求を送る。ステップＳ１１１７において、情報処理装置７００は、デバイス（Ｄ４）からデバイスデータ２２１を受信し、受信したデバイスデータ２２１をキャッシュとして、保存部８０６に一時的に保存する。
【００８７】
ステップＳ１１１９において、情報処理装置７００は、保存部８０６にキャッシュとして保存されていたデバイス（Ｄ３）のデバイスデータ２２１と、デバイス（Ｄ４）から受信したデバイスデータ２２１とを用いて、アプリケーション２１０ｂに返信するデータを構成する。そして、返信用のデータを構成したら、情報処理装置７００は、アプリケーション２１０ｂに対して、デバイス（Ｄ３〜Ｄ４）のデバイスデータ２２１を返信する。
【００８８】
デバイスデータ２２１が有効期限内でない場合（ステップＳ１１１３のＮＯ）、情報処理装置７００は、ステップＳ１１２１に進む。ステップＳ１１２１において、情報処理装置７００は、デバイス（Ｄ３〜Ｄ４）に対して、データ送信要求を送る。ステップＳ１１２３において、情報処理装置７００は、デバイス（Ｄ３〜Ｄ４）から送信されたデバイスデータ２２１を用いて、アプリケーション２１０ｂに返信するデータを構成する。そして、返信用のデータを構成したら、情報処理装置７００は、アプリケーション２１０ｂに対して、デバイス（Ｄ３〜Ｄ４）のデバイスデータ２２１を返信する。
【００８９】
本実施形態によれば、複数のグループに所属するデバイスに対して、グループごとにデータ取得要求が発生しても重複したデータ送信が必要とならず、ネットワーク帯域の圧迫を抑制することができる。また、デバイスデータ２２１をキャッシュとして一時的に保存して、保存されたデバイスデータ２２１の有効期限を判断するので、さらにネットワーク帯域の圧迫を抑制することができる。
【００９０】
［第４実施形態］
次に本発明の第４実施形態に係る情報処理装置について、図１２乃至図１６を用いて説明する。図１２は、本実施形態に係る情報処理装置の動作の概要を説明するためのシーケンス図である。本実施形態に係る情報処理装置は、上記第２実施形態および第３実施形態と比べると、デバイスがデバイスデータを定期的に自発送信する点で異なる。その他の構成および動作は、第２実施形態および第３実施形態と同様であるため、同じ構成および動作については同じ符号を付してその詳しい説明を省略する。
【００９１】
図１２は、本実施形態に係る情報処理装置１２００の処理の概要を説明するシーケンス図である。まず、デバイス（Ｄ１〜Ｄ４）には、データ送信ポリシーが設定されている。データ送信ポリシーは、アプリケーション２１０などからデバイス（Ｄ１〜Ｄ４）に対して設定されるが、データ送信ポリシーの設定方法はこれには限定されない。例えば、共通ＰＦやＧＷなどがデバイス（Ｄ１〜Ｄ４）に対してデータ送信ポリシーを設定してもよい。
【００９２】
ステップＳ１２０１において、情報処理装置１２００は、グループ２２０ｂ（グループＢ）に属するデバイス（Ｄ３〜Ｄ４）からデータ送信ポリシーに基づいて定期的に自発送信されるデバイスデータを受信する。ステップＳ１２０３において、情報処理装置１２００は、受信し、取得したデバイス（Ｄ３〜Ｄ４）のデバイスデータをキャッシュとして一時的に保存する。
【００９３】
ステップＳ１２０５において、情報処理装置１２００は、グループ２２０ａ（グループＡ）に属するデバイス（Ｄ１〜Ｄ３）からデータ送信ポリシーに基づいて定期的に自発送信されるデバイスデータを受信する。ステップＳ１２０７において、情報処理装置１２００は、グループ２２０ａから受信し、取得した、デバイス（Ｄ１〜Ｄ３）のデバイスデータをキャッシュとして一時的に保存する。
【００９４】
ステップＳ１２０９において、情報処理装置１２００は、アプリケーション２１０ａ（アプリａ）からコマンドとしてグループ２２０ａ（グループＡ）に対するデータ取得要求を受信する。ステップＳ１２１１において、情報処理装置１２００は、グループ２２０ａに属するデバイスを特定するために、アプリケーション２１０ａからのデータ取得要求に基づいて、グループ２２０ａを展開する。これにより、情報処理装置１２００は、グループ２２０ａに属するデバイスがＤ１，Ｄ２およびＤ３であることを特定する。
【００９５】
ステップＳ１２１３において、情報処理装置１２００は、ステップＳ１２０７でキャッシュしたデバイスデータが有効期限内であるか否かを判断する。そして、キャッシュしたデバイスデータが有効期限内であれば、情報処理装置１２００は、キャッシュしたデバイスデータをステップＳ１２０９に対する返答として、送信する。つまり、情報処理装置１２００は、アプリケーション２１０ａに対してデバイス（Ｄ１〜Ｄ３）のデバイスデータ（Ｄ１＝ｘｘｘ，Ｄ２＝ｙｙｙ，Ｄ３＝ｚｚｚ）を返信する。
【００９６】
ステップＳ１２１５において、情報処理装置１２００は、アプリケーション２１０ｂ（アプリｂ）からコマンドとしてグループ２２０ｂ（グループＢ）に対するデータ取得要求を受信する。ステップＳ１２１７において、情報処理装置１２００は、グループ２２０ｂに属するデバイスを特定するために、アプリケーション２１０ｂからのデータ取得要求に基づいて、グループ２２０ｂを展開する。ただし、ステップＳ１２１５では、ステップＳ１２０３においてキャッシュしたデバイスデータは有効期限が切れている。
【００９７】
ステップＳ１２１９において、情報処理装置１２００は、ステップＳ１２０７でキャッシュしたデバイスデータが有効期間内であれば、Ｂ−（Ａ∩Ｂ）を演算して、演算結果として、デバイス（Ｄ４）を得る。ステップＳ１２２１において、情報処理装置１２００は、グループ２２０ｂに属するデバイス（Ｄ４）に対してコマンドしてデータ送信要求を送る。ステップＳ１２２３において、情報処理装置１２００は、デバイス（Ｄ４）からデバイスデータを受信する。ステップＳ１２２５において、情報処理装置１２００は、デバイス（Ｄ４）から受信し、取得したデバイス（Ｄ４）のデバイスデータをキャッシュとして一時的に保存する。ステップ１２２７において、情報処理装置１２００は、デバイス（Ｄ４）から送信されたデバイスデータと、キャッシュされていたデバイス（Ｄ３）のデバイスデータとを用いて、アプリケーション２１０ｂに返信するデータを構成する。そして、ステップＳ１２２９において、ステップＳ１２１１に対する返答として、アプリケーション２１０ｂに対してデバイス（Ｄ３〜Ｄ４）のデバイスデータ（Ｄ３＝ｚｚｚ，Ｄ４＝ｑｑｑ）を返信する。
【００９８】
図１３は、本実施形態に係る情報処理装置１２００の構成を示すブロック図である。情報処理装置１２００は、データ送信ポリシー設定部１３０１をさらに備える。データ送信ポリシー設定部１３０１は、デバイスに対して、データ送信ポリシーを設定する。デバイスは、設定されたデータ送信ポリシーにしたがって、情報処理装置１２００に対して、デバイスデータ２２１を定期的に自発送信する。
【００９９】
図１４は、本実施形態に係る情報処理装置の備えるデータ送信ポリシー設定テーブル１４０１の構成を示す図である。データ送信ポリシー設定テーブル１４０１は、デバイスＩＤ９１１に関連付けてデータ送信ポリシー１４１１を記憶する。データ送信ポリシー設定部１３０１は、データ送信ポリシー設定テーブル１４０１を参照して、デバイスに対してデータ送信ポリシーを設定する。なお、データ送信ポリシーの設定方法はこれには限定されない。
【０１００】
図１５は、本実施形態に係る情報処理装置１２００のハードウェア構成を示すブロック図である。ＲＡＭ１５４０は、ＣＰＵ５１０が一時記憶のワークエリアとして使用するランダムアクセスメモリである。ＲＡＭ１５４０には、本実施形態の実現に必要なデータを記憶する領域が確保されている。データ送信ポリシー１５４１は、デバイスのデータ送信ポリシーに関する情報であり、ＲＡＭ１５４０に一時的に記憶される。データ送信ポリシー１５４１は、図示しないデータ送信ポリシーを格納したデータベースなどからＲＡＭ１５４０へ読み出してもよい。
【０１０１】
ストレージ１５５０には、データベースや各種のパラメータ、あるいは本実施形態の実現に必要な以下のデータまたはプログラムが記憶されている。データ送信ポリシー設定テーブル１４０１は、図１４に示した構成のテーブルであり、ストレージ１５５０に格納される。ストレージ１５５０は、さらに、データ送信ポリシー設定モジュール１５５１を格納する。データ送信ポリシー設定モジュール１５５１は、デバイスのデータ送信ポリシーを設定するモジュールである。このモジュール１５５１は、ＣＰＵ５１０によりＲＡＭ１５４０のアプリケーション実行領域５４８に読み出され、実行される。
【０１０２】
図１６は、本実施形態に係る情報処理装置１２００の処理手順を示すフローチャートである。このフローチャートは、図１５のＣＰＵ５１０がＲＡＭ１５４０を使用して実行し、図１３の情報処理装置１２００の機能構成部を実現する。なお、図６Ｂと同様の処理には同じステップ番号を付して説明を省略する。
【０１０３】
ステップＳ１６０１において、情報処理装置１２００は、デバイスに対してデータ送信ポリシーを設定する。なお、データ送信ポリシーの設定は、アプリケーション２１０からの指示に基づいて情報処理装置１２００が設定をしてもよいし、また、情報処理装置１２００が主体的に設定をしてもよいし、デバイスにあらかじめ設定されていてもよい。
【０１０４】
ステップＳ１６０３において、情報処理装置１２００は、デバイスが定期的に自動送信するデバイスデータ２２１を受信し、保存部８０６にキャッシュとして一時的に保存する。ステップＳ１６０５において、情報処理装置１２００は、アプリケーション２１０からデータ送信要求などのコマンド２１１を受信する。ステップＳ１６０７において、情報処理装置１２００は、保存部８０６にキャッシュされているデバイスデータ２２１が有効期限内であるか否かを判断する。デバイスデータ２２１が有効期限内でない場合（ステップＳ１６０７のＮＯ）、情報処理装置１２００は、ステップＳ６４７以下のステップへ進む。これに対して、デバイスデータ２２１が有効期限内である場合（ステップＳ１６０７のＹＥＳ）、ステップＳ１６０９において、情報処理装置１２００は、保存部８０６にキャッシュされているデバイスデータ２２１をアプリケーション２１０に返信する。
【０１０５】
本実施形態によれば、デバイスがデバイスデータ２２１を定期的に自動送信する場合にも重複したデータ送信が必要とならず、ネットワーク帯域の圧迫を抑制することができる。
【０１０６】
［第５実施形態］
次に本発明の第５実施形態に係る情報処理装置について、図１７乃至図２１を用いて説明する。図１７は、本実施形態に係る情報処理装置の動作の概要を説明するためのシーケンス図である。本実施形態に係る情報処理装置は、上記第２実施形態乃至第４実施形態と比べると、デバイスのファームウェアを更新するファームウェア更新部を有する点で異なる。その他の構成および動作は、第２実施形態乃至第４実施形態と同様であるため、同じ構成および動作については同じ符号を付してその詳しい説明を省略する。
【０１０７】
なお、以下の説明においては、ファームウェア更新を例に説明をするが、本実施形態の適用範囲はこれには限定されず、ファームウェアの更新の他、デバイス内のパラメータの更新やその他のデバイスに対する任意のコマンドでも同様である。
【０１０８】
図１７は、本実施形態に係る情報処理装置１７００の処理の概要を説明するシーケンス図である。図１７のシーケンス図は、図２Ｃに示したシーケンス図におけるデータ取得要求が、ファームウェア更新要求となっている点で異なっている。
【０１０９】
ステップＳ１７０１において、情報処理装置１７００は、アプリケーション２１０ａ（アプリａ）からグループ２２０ａ（グループＡ）に対するファームウェア更新要求（コマンド）を受信する。ステップＳ１７０３において、情報処理装置１７００は、グループ２２０ａに属するデバイスを特定するために、アプリケーション２１０ａからのファームウェア更新要求に基づいて、グループ２２０ａを展開する。これにより、情報処理装置１７００は、グループ２２０ａに属するデバイスがＤ１，Ｄ２およびＤ３であることを特定する。なお、Ｄ３は、複数のデバイスグループ２２０（グループ２２０ａおよびグループ２２０ｂ）に所属するデバイスである。また、ファームウェア更新要求は、遅延を許容できるコマンドであるものとする。したがって、情報処理装置１７００は、他のアプリケーション２１０ｂからのファームウェア更新要求を所定時間待つ。
【０１１０】
ステップＳ１７０５において、情報処理装置１７００は、アプリケーション２１０ｂ（アプリＢ）からグループ２２０ｂ（グループＢ）に対するファームウェア更新要求（コマンド）を受信する。ステップＳ１７０７において、情報処理装置１７００は、グループ２２０ｂに属するデバイスを特定するために、アプリケーション２１０ｂからのファームウェア更新要求に基づいて、グループ２２０ｂを展開する。これにより、情報処理装置１７００は、グループ２２０ｂに属するデバイスがＤ３およびＤ４であることを特定する。
【０１１１】
ステップＳ１７０９において、情報処理装置１７００は、グループ２２０ａおよびグループ２２０ｂに重複して所属するデバイス（Ｄ３）に対して、重複してコマンドが送信されないように、Ｂ−（Ａ∩Ｂ）を演算する。そして、情報処理装置２００は、演算結果とグループ２２０ａの展開結果とを合わせて（Ｄ１，Ｄ２，Ｄ３，Ｄ４）を得る。
【０１１２】
ステップＳ１７１１において、情報処理装置１７００は、グループ２２０ａおよびグループ２２０ｂに属するデバイス（Ｄ１，Ｄ２，Ｄ３，Ｄ４）に対してファームウェアの更新データを送信する。ただし、この場合、デバイス（Ｄ３）に対しては、ファームウェアの更新データが重複して送信されない。
【０１１３】
ステップＳ１７１３において、情報処理装置１７００は、それぞれのデバイスからファームウェアの更新完了通知をデバイスデータとして受信する。ステップＳ１７１５において、情報処理装置１７００は、ステップＳ１７０１に対する返答として、アプリケーション２１０ａに対してファームウェアの更新完了通知をデバイスデータとして送信する。同様に、ステップＳ１７１７において、情報処理装置１７００は、ステップＳ１７０５に対する返答として、アプリケーション２１０ｂに対してファームウェアの更新完了通知をデバイスデータとして送信する。
【０１１４】
なお、複数のデバイスグループ２２０に所属するデバイス（Ｄ３）に対するファームウェアの更新要求において、異なるバージョンへの更新要求があった場合、つまり、異なるバージョンへの更新要求が競合した場合、情報処理装置１７００は、例えば、最新バージョンへの更新を優先してもよい。例えば、アプリケーション２１０ａからはバージョン１．０への更新要求があり、アプリケーション２１０ｂからはバージョン２．０への更新要求があった場合、情報処理装置１７００は、バージョン２．０への更新を優先してもよい。また、例えば、ユーザがどちらのバージョンへ更新するか決定してもよいし、最新の更新要求を優先してもよいし、アプリケーション２１０に優先順位を付けておいて、優先順位の高いアプリケーションの指定するバージョンへ更新してもよい。さらに、更新要求が競合した場合、情報処理装置１７００は、ファームウェアの更新データの送信を中止してもよい。更新要求が競合した場合、どちらの更新要求を優先するかなどは、ここに示した手法には限定されず、デバイスの特性や属性、アプリケーションの特徴などに基づいて、様々な手法を採用することができる。
【０１１５】
図１８は、本実施形態に係る情報処理装置１７００の構成を示すブロック図である。情報処理装置１７００は、ファームウェア更新部１８０１をさらに備える。ファームウェア更新部１８０１は、アプリケーション２１０からのコマンドに基づいて、デバイスグループ２２０に所属するデバイスのファームウェアを更新する。
【０１１６】
図１９は、本実施形態に係る情報処理装置の備えるファームウェアテーブル１９０１の構成を示す図である。ファームウェアテーブル１９０１は、デバイスＩＤ９１１に関連付けてファームウェア１９１１を記憶する。ファームウェア１９１１は、ファームウェアのバージョンや有効期限、更新日時などの情報である。ファームウェア更新部１８０１は、ファームウェアテーブル１９０１を参照して、デバイスのファームウェアのバージョンを確認して、ファームウェアの更新を実行する。
【０１１７】
図２０は、本実施形態に係る情報処理装置１７００のハードウェア構成を示すブロック図である。ＲＡＭ２０４０は、ＣＰＵ５１０が一時記憶のワークエリアとして使用するランダムアクセスメモリである。ＲＡＭ２０４０には、本実施形態の実現に必要なデータを記憶する領域が確保されている。ファームウェア情報２０４１は、デバイスのファームウェアに関する情報であり、ＲＡＭ２０４０に一時的に記憶される。ファームウェア情報２０４１は、図示しないファームウェアのバージョンなどを格納したデータベースなどからＲＡＭ２０４０へ読み出してもよい。
【０１１８】
ストレージ２０５０には、データベースや各種のパラメータ、あるいは本実施形態の実現に必要な以下のデータまたはプログラムが記憶されている。ファームウェアテーブル１９０１は、図１９に示した構成のテーブルであり、ストレージ２０５０に格納される。ストレージ２０５０は、さらに、ファームウェア更新モジュール２０５１を格納する。ファームウェア更新モジュール２０５１は、デバイスのファームウェアを更新するモジュールである。このモジュール２０５１は、ＣＰＵ５１０によりＲＡＭ２０４０のアプリケーション実行領域５４８に読み出され、実行される。
【０１１９】
図２１は、本実施形態に係る情報処理装置の処理手順を示すフローチャートである。このフローチャートは、図２０のＣＰＵ５１０がＲＡＭ２０４０を使用して実行し、図１８の情報処理装置１７００の機能構成部を実現する。なお、図６Ｂと同様の処理には同じステップ番号を付して説明を省略する。
【０１２０】
ステップＳ２１０１において、情報処理装置１７００は、アプリケーション２１０ａからファームウェア更新要求を受信する。ステップＳ２１０３において、情報処理装置１７００は、他のアプリケーション２１０からファームウェア更新要求を所定時間内に受信したか否かを判断する。所定時間内に他のアプリケーション２１０ｂからのファームウェア更新要求を受信しない場合（ステップＳ２１０３のＮＯ）、情報処理装置１７００は、ステップＳ２１０５に進む。所定時間内に他のアプリケーション２１０ｂからのファームウェア更新要求を受信した場合（ステップＳ２１０３のＹＥＳ）、情報処理装置１７００はステップＳ６４７に進む。
【０１２１】
ステップＳ２１０５において、情報処理装置１７００は、デバイス（Ｄ１〜Ｄ４）に対して、ファームウェアの更新データを送信する。ステップＳ２１０７において、情報処理装置１７００は、デバイス（Ｄ１〜Ｄ４）からファームウェアの更新完了通知をデバイスデータとして受信する。ステップＳ２１０９において、情報処理装置１７００は、アプリケーション２１０ａおよびアプリケーション２１０ｂにファームウェアの更新完了通知をデバイスデータとして返信する。
【０１２２】
本実施形態によれば、アプリケーションがデバイスのデバイスデータを収集する場合だけでなく、アプリケーション側からデバイスに対して様々なプログラムやデータなどを送信する場合にも適用することができる。また、重複してファームウェアの更新データが送信されないので、ネットワーク帯域の圧迫を抑制することができ、デバイス側から見れば、重複してファームウェアを更新することがない。
【０１２３】
［他の実施形態］
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。また、それぞれの実施形態に含まれる別々の特徴を如何様に組み合わせたシステムまたは装置も、本発明の範疇に含まれる。
【０１２４】
なお、情報処理装置は、例えばＭ２Ｍプラットフォームであって、Machine to Machineサービスに関する標準化を行なうｏｎｅＭ２Ｍにおいて定められているM2M Service Infrastructureであってもよい。M2M Service Infrastructureは、ｏｎｅＭ２ＭアーキテクチャにおけるＩＮ（Infrastructure Node）に相当する。さらに、M2M Service Infrastructureは、ｏｎｅＭ２Ｍが定める共通サービス機能（ＣＳＦ：Common Services Function）群を提供するＣＳＥ（Common Services Entity）を有する。また、情報処理装置は、複数のＣＳＥを含む装置であってもよい。なお、ＩＮが有するＣＳＥは、ＩＮ（Infrastructure Node）−ＣＳＥとも称される。
【０１２５】
ネットワークは、例えば通信事業者が提供する移動通信網であって、ｏｎｅＭ２Ｍにおいて定義されるＵｎｄｅｒｌｙｉｎｇ  Ｎｅｔｗｏｒｋであってもよい。
【０１２６】
また、デバイスは、例えばセンサデバイスであって、ｏｎｅＭ２Ｍにおいて定義されるＭ２Ｍ  Ｄｅｖｉｃｅであってもよい。Ｍ２Ｍ  Ｄｅｖｉｃｅは、ｏｎｅＭ２ＭアーキテクチャにおけるＡＳＮ（Application Service Node）あるいはＡＤＮ（Application Dedicated Node）に相当し、このうちＡＳＮはＣＳＥを有する。なお、ＡＳＮ内のＣＳＥはＡＳＮ−ＣＳＥとも称される。
【０１２７】
また、デバイスから収集したデータをさらに処理する、図示しないアプリケーションサーバは、例えば特定の業務を処理するサーバであって、ｏｎｅＭ２Ｍにおいて定義されるＭ２Ｍ  Ａｐｐｌｉｃａｔｉｏｎ  Ｉｎｆｒａｓｔｒｕｃｔｕｒｅであってもよい。また、アプリケーションサーバは、ｏｎｅＭ２ＭアーキテクチャにおけるＡＥ（Application Entity）を有してもよい。なお、ｏｎｅＭ２Ｍで定義されるＩｎｆｒａｓｔｒｕｃｔｕｒｅ  Ｄｏｍａｉｎにあり、ＩＮ−ＣＳＥに接続されるＡＥは、ＩＮ（Infrastructure Node）−ＡＥとも称される。
【０１２８】
また、情報処理装置は、例えばモバイルルータであってもよく、この場合ｏｎｅＭ２Ｍにおいて定義されるＭ２Ｍ  Ｇａｔｅｗａｙ（ゲートウェイ装置）であってもよい。Ｍ２Ｍ  Ｇａｔｅｗａｙは、ｏｎｅＭ２ＭアーキテクチャにおけるＭＮ（Middle Node）に相当し、ＣＳＥを有する。なおＭＮ内のＣＳＥはＭＮ−ＣＳＥとも称される。
【０１２９】
また、本発明は、複数の機器から構成されるシステムに適用されてもよいし、単体の装置に適用されてもよい。さらに、本発明は、実施形態の機能を実現する情報処理プログラムが、システムあるいは装置に直接あるいは遠隔から供給される場合にも適用可能である。したがって、本発明の機能をコンピュータで実現するために、コンピュータにインストールされるプログラム、あるいはそのプログラムを格納した媒体、そのプログラムをダウンロードさせるＷＷＷ(World Wide Web)サーバも、本発明の範疇に含まれる。特に、少なくとも、上述した実施形態に含まれる処理ステップをコンピュータに実行させるプログラムを格納した非一時的コンピュータ可読媒体（non-transitory computer readable medium）は本発明の範疇に含まれる。
【０１３０】
この出願は、２０１６年２月２６日に出願された日本出願特願２０１６−０３５４０７を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【図１】
2017145997.tif 000003
【図２Ａ】
2017145997.tif 000004
【図２Ｂ】
2017145997.tif 000005
【図２Ｃ】
2017145997.tif 000006
【図３】
2017145997.tif 000007
【図４】
2017145997.tif 000008
【図５】
2017145997.tif 000009
【図６Ａ】
2017145997.tif 000010
【図６Ｂ】
2017145997.tif 000011
【図７】
2017145997.tif 000012
【図８】
2017145997.tif 000013
【図９】
2017145997.tif 000014
【図１０】
2017145997.tif 000015
【図１１】
2017145997.tif 000016
【図１２】
2017145997.tif 000017
【図１３】
2017145997.tif 000018
【図１４】
2017145997.tif 000019
【図１５】
2017145997.tif 000020
【図１６】
2017145997.tif 000021
【図１７】
2017145997.tif 000022
【図１８】
2017145997.tif 000023
【図１９】
2017145997.tif 000024
【図２０】
2017145997.tif 000025
【図２１】
2017145997.tif 000026
【国際調査報告】
2017145997.tif 000027
2017145997.tif 000028