(57)【要約】【課題】効率的に複数のデバイスの包括的な制御を実施すること。【解決手段】互いに通信可能な制御装置と複数の制御対象装置とを有するデバイス制御システムにおいて、前記制御装置は、プロセッサを有し、前記プロセッサは、アプリケーションを実行し、実行中のアプリケーションから、前記複数の制御対象装置を包括的に制御することを要求する第１の制御依頼を受け付け、受け付けた第１の制御依頼と既に実行中の第２の制御依頼とが両立可能であるか否かを判定し、第１の制御依頼及び第２の制御依頼が両立可能であると判定された場合に、第１の制御依頼に応じた制御を実行する際の制限を抽出し、第１の制御依頼、第２の制御依頼及び抽出された制限を満たす制御内容を決定し、決定された制御内容を少なくとも１つの制御対象装置に指示する処理を実行する。【選択図】図２
2017027229.tif 000002
【特許請求の範囲】
【請求項１】
互いに通信可能な制御装置と複数の制御対象装置とを有するデバイス制御システムであって、
前記制御装置は、
プロセッサを有し、前記プロセッサは、
アプリケーションを実行し、
実行中のアプリケーションから、前記複数の制御対象装置を包括的に制御することを要求する第１の制御依頼を受け付け、
受け付けた第１の制御依頼と既に実行中の第２の制御依頼とが両立可能であるか否かを判定し、
第１の制御依頼及び第２の制御依頼が両立可能であると判定された場合に、第１の制御依頼に応じた制御を実行する際の制限を抽出し、
第１の制御依頼、第２の制御依頼及び抽出された制限を満たす制御内容を決定し、
決定された制御内容を少なくとも１つの制御対象装置に指示する
処理を実行することを特徴とするデバイス制御システム。
【請求項２】
前記プロセッサは、
実行されたアプリケーションから、前記複数の制御対象装置の包括的なデータを取得することを要求する取得依頼を受け付け、
受け付けた取得依頼によってデータ取得対象となる制御対象装置のうち、データ未取得の制御対象装置を特定し、
特定された制御対象装置から取得依頼によって要求されるデータを取得し、
取得されたデータを集約し、集約結果を前記アプリケーションへ通知する
処理をさらに実行することを特徴とする請求項１記載のデバイス制御システム。
【請求項３】
前記プロセッサは、
前記アプリケーションへ通知された集約結果をメモリに記憶させ、
前記取得依頼を受け付ける処理において受け付けた取得依頼と同一の取得依頼を他のアプリケーションから受け付けた場合に、前記メモリに記憶された集約結果を前記他のアプリケーションへ通知する
処理をさらに実行することを特徴とする請求項２記載のデバイス制御システム。
【請求項４】
前記プロセッサは、
前記複数の制御対象装置が増減した場合に、前記メモリに記憶された集約結果を無効化する処理をさらに実行することを特徴とする請求項３記載のデバイス制御システム。
【請求項５】
前記プロセッサは、
制御対象装置に制御内容が指示された後、当該制御対象装置からデータを収集し、
収集されたデータが前記制御対象装置に指示された制御内容と一致するか否かを判定し、
収集されたデータと指示された制御内容とが一致すると判定された場合に、前記第１の制御依頼が成功したことを前記アプリケーションへ通知する
処理をさらに実行することを特徴とする請求項１記載のデバイス制御システム。
【請求項６】
前記プロセッサは、
前記収集する処理が実行される前に前記制御対象装置のデータが要求された場合に、要求されたデータの代わりに当該制御対象装置に指示された制御内容を取得する処理をさらに実行することを特徴とする請求項５記載のデバイス制御システム。
【請求項７】
前記プロセッサは、
第１の制御依頼及び第２の制御依頼が両立不可能であると判定された場合に、第１の制御依頼を発行した第１のアプリケーションと第２の制御依頼を発行した第２のアプリケーションとの優先度を比較し、
第１のアプリケーションの優先度が第２のアプリケーションの優先度よりも高い場合に、既に実行中の第２の制御依頼を無効化する
処理をさらに実行することを特徴とする請求項１記載のデバイス制御システム。
【請求項８】
前記制御内容を決定する処理は、
過去に受け付けた制御依頼の履歴に基づいて、将来発生する可能性が高い制御依頼を推定し、
推定された制御依頼に応じて少なくとも１つの制御対象装置を選択し、
選択された制御対象装置に関する制御内容を第１の制御依頼、第２の制御依頼及び抽出された制限を満たすように決定する
処理を含むことを特徴とする請求項１記載のデバイス制御システム。
【請求項９】
実行中のアプリケーションから、複数の制御対象装置を包括的に制御することを要求する第１の制御依頼を受け付け、
受け付けた第１の制御依頼と既に実行中の第２の制御依頼とが両立可能であるか否かを判定し、
第１の制御依頼及び第２の制御依頼が両立可能であると判定された場合に、第１の制御依頼に応じた制御を実行する際の制限を抽出し、
第１の制御依頼、第２の制御依頼及び抽出された制限を満たす制御内容を決定し、
決定された制御内容を少なくとも１つの制御対象装置に指示する
処理を有することを特徴とするデバイス制御方法。
【請求項１０】
コンピュータに、
実行中のアプリケーションから、複数の制御対象装置を包括的に制御することを要求する第１の制御依頼を受け付け、
受け付けた第１の制御依頼と既に実行中の第２の制御依頼とが両立可能であるか否かを判定し、
第１の制御依頼及び第２の制御依頼が両立可能であると判定された場合に、第１の制御依頼に応じた制御を実行する際の制限を抽出し、
第１の制御依頼、第２の制御依頼及び抽出された制限を満たす制御内容を決定し、
決定された制御内容を少なくとも１つの制御対象装置に指示する
処理を実行させることを特徴とするデバイス制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デバイス制御システム、デバイス制御方法及びデバイス制御プログラムに関する。
【背景技術】
【０００２】
近年、例えばセンサや機器などのデバイスの小型化・高性能化、ネットワークの多様化・高速化、及びクラウドの普及などにより、多くのモノがネットワークにつながるようになりつつある。このような状況の下では、ネットワークにつながる多種多様なデバイスからデータを収集したり、デバイスを制御したりすることで、様々なＭ２Ｍ（Machine  to  Machine）サービスを提供するアプリケーションが増加すると考えられる。
【０００３】
複数のアプリケーションが個別にＭ２Ｍサービスを提供する環境では、各アプリケーションが個別に動作することで、全体として各種の処理負荷が増加することがある。具体的には、複数のアプリケーションが、例えばそれぞれ必要なデバイスとデータを決定し、個別にデータ収集することで、同じデバイスから同じデータを収集する可能性がある。同様に、複数のアプリケーションが、例えばそれぞれのサービスの実現のために必要な制御内容を決定し、個別にデバイスを制御することで、同じデバイスに異なる制御を指示する制御の競合が発生する可能性がある。これらの場合には、デバイスの処理負荷、ネットワークの通信負荷、及びアプリケーションの再処理の負荷など、各種の処理負荷が増加する。
【０００４】
そこで、アプリケーションとデバイスの間に、複数のアプリケーションが共通して利用する機能を提供するデバイス制御基盤を導入することが検討されている。このようなデバイス制御基盤を導入することで、複数のアプリケーションによるデータ収集やデバイスの制御を管理統括することができ、無駄な処理を削減して処理負荷を軽減することが可能となる。また、アプリケーションの開発時には、他のアプリケーションによるデバイスの制御などについて考慮する必要がなくなり、アプリケーションの開発・運用コストを削減することができる。
【０００５】
具体的なデバイス制御基盤としては、例えば新たに発生した制御と既存の各制御との間で実行日時・対象リソースが競合するか否かを判定し、競合する場合には、その旨をユーザへ通知するものがある。また、例えば新たに発生した制御と既存の各制御とが並列処理可能であるか否かを、制御内容の組み合わせのテーブルを利用して判定することなども検討されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１０−７２９９８号公報
【特許文献２】特開２０１４−１１５８４９号公報
【特許文献３】特開２００５−３０１６１０号公報
【特許文献４】特開２００５−１７４３０３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ところで、デバイス制御基盤によって複数のデバイスを制御する場合には、個々のデバイスを制御するのではなく、複数のデバイス全体を包括的に制御することが求められることがある。すなわち、例えば複数のデバイス全体の消費電力を制御したり、複数のデバイスに交代で所定の動作を実行させたりする包括的な制御が必要となることがある。
【０００８】
しかしながら、このような包括的な制御をデバイス制御基盤によって実現することは、あまり考慮されていないという問題がある。具体的には、包括的な制御が行われる場合には、たとえ新たに発生した制御と既存の各制御との間で実行日時や対象リソースが競合していても、新たに発生した制御と既存の制御とを両立できることがある。したがって、単に制御の実行日時や対象リソースが競合する場合に一方の制御を中止するなどの方法では、制御の効率が低下するおそれがある。また、各制御内容の組み合わせについて並列処理の可否をテーブルを利用して判定することも考えられるが、多様なデバイスが存在する環境では、制御内容の組み合わせが膨大になるため、すべての組み合わせを網羅するテーブルを作成することは現実的でない。
【０００９】
このように、複数のアプリケーションによる複数のデバイスの制御を管理統括するデバイス制御基盤であっても、効率的に複数のデバイスの包括的な制御を実施するのは困難である。
【００１０】
開示の技術は、かかる点に鑑みてなされたものであって、効率的に複数のデバイスの包括的な制御を実施することができるデバイス制御システム、デバイス制御方法及びデバイス制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
本願が開示するデバイス制御システムは、１つの態様において、互いに通信可能な制御装置と複数の制御対象装置とを有するデバイス制御システムであって、前記制御装置は、プロセッサを有し、前記プロセッサは、アプリケーションを実行し、実行中のアプリケーションから、前記複数の制御対象装置を包括的に制御することを要求する第１の制御依頼を受け付け、受け付けた第１の制御依頼と既に実行中の第２の制御依頼とが両立可能であるか否かを判定し、第１の制御依頼及び第２の制御依頼が両立可能であると判定された場合に、第１の制御依頼に応じた制御を実行する際の制限を抽出し、第１の制御依頼、第２の制御依頼及び抽出された制限を満たす制御内容を決定し、決定された制御内容を少なくとも１つの制御対象装置に指示する処理を実行する。
【発明の効果】
【００１２】
本願が開示するデバイス制御システム、デバイス制御方法及びデバイス制御プログラムの１つの態様によれば、効率的に複数のデバイスの包括的な制御を実施することができるという効果を奏する。
【図面の簡単な説明】
【００１３】
【図１】図１は、実施の形態１に係るデバイス制御システムの構成を示すブロック図である。
【図２】図２は、実施の形態１に係るプロセッサの機能を示すブロック図である。
【図３】図３は、取得依頼履歴テーブルの具体例を示す図である。
【図４】図４は、装置管理テーブルの具体例を示す図である。
【図５】図５は、データテーブルの具体例を示す図である。
【図６】図６は、制御依頼履歴テーブルの具体例を示す図である。
【図７】図７は、制御履歴テーブルの具体例を示す図である。
【図８】図８は、実施の形態１に係る集約処理を示すフロー図である。
【図９】図９は、集約処理の具体例を説明する図である。
【図１０】図１０は、実施の形態１に係る制御処理を示すフロー図である。
【図１１】図１１は、実施の形態１に係る制御内容決定処理を示すフロー図である。
【図１２】図１２は、矛盾する制御依頼を説明する図である。
【図１３】図１３は、制御の制限を説明する図である。
【図１４】図１４は、制御処理の具体例を説明する図である。
【図１５】図１５は、実施の形態２に係るプロセッサの機能を示すブロック図である。
【図１６】図１６は、実施の形態２に係る制御内容決定処理を示すフロー図である。
【図１７】図１７は、制御処理の具体例を説明する図である。
【発明を実施するための形態】
【００１４】
以下、本願が開示するデバイス制御システム、デバイス制御方法及びデバイス制御プログラムの実施の形態について、図面を参照して詳細に説明する。なお、この実施の形態により本発明が限定されるものではない。
【００１５】
（実施の形態１）
図１は、実施の形態１に係るデバイス制御システムの構成を示すブロック図である。図１に示すように、デバイス制御システムは、制御装置１００と複数の制御対象装置２００とを有する。制御装置１００と複数の制御対象装置２００とは、有線又は無線で接続されており、互いに通信可能となっている。
【００１６】
制御装置１００は、複数の制御対象装置２００からデータを収集して集約したり、複数の制御対象装置２００を包括的に制御したりする。具体的には、制御装置１００は、プロセッサ１１０、メモリ１２０及び通信インタフェース（以下「通信Ｉ／Ｆ」と略記する）１３０を有する。
【００１７】
プロセッサ１１０は、例えばＣＰＵ（Central  Processing  Unit）、ＦＰＧＡ（Field-Programmable  Gate  Array）又はＤＳＰ（Digital  Signal  Processor）などを備え、複数のアプリケーションを実行する。そして、プロセッサ１１０は、実行されるアプリケーションからの依頼に応じて、複数の制御対象装置２００からデータを収集して集約する。すなわち、プロセッサ１１０は、アプリケーションが依頼するデータを必要に応じて制御対象装置２００から取得し、統計値の算出などの集約をした上で、結果をアプリケーションへ通知する。また、プロセッサ１１０は、実行されるアプリケーションからの依頼に応じて、複数の制御対象装置２００を包括的に制御する。すなわち、プロセッサ１１０は、アプリケーションが依頼する包括的な制御が実行可能であるか否かを判定し、実行可能である場合には、制御内容を決定して複数の制御対象装置２００を制御する。なお、プロセッサ１１０の詳細な機能については、後に詳述する。
【００１８】
メモリ１２０は、例えばＲＡＭ（Random  Access  Memory）又はＲＯＭ（Read  Only  Memory）などを備え、プロセッサ１１０の処理に用いられる種々の情報を記憶する。メモリ１２０は、例えば制御対象装置２００に対するデータの収集及び制御に用いられる情報を記憶する各種テーブルを保持する。
【００１９】
通信Ｉ／Ｆ１３０は、複数の制御対象装置２００と有線又は無線で接続し、プロセッサ１１０からの指示に従って複数の制御対象装置２００と通信する。具体的には、通信Ｉ／Ｆ１３０は、例えばプロセッサ１１０によって指定された制御対象装置２００からデータを受信したり、プロセッサ１１０によって指定された制御対象装置２００へ制御指示を送信したりする。
【００２０】
制御対象装置２００は、例えばパーソナルコンピュータや家電製品などのデバイスであり、制御装置１００と有線又は無線で通信可能なデバイスである。複数の制御対象装置２００は、すべて同種のデバイスであっても良いし、少なくとも一部が異種のデバイスであっても良い。
【００２１】
制御対象装置２００は、制御装置１００からの指示を受信した場合には、受信された指示に従って動作する。すなわち、制御対象装置２００は、例えばプロパティが指定され、データを送信するように指示された場合には、指定されたプロパティのデータを制御装置１００へ送信する。また、制御対象装置２００は、例えばプロパティが指定され、指定値を設定するように指示された場合には、指定されたプロパティの値を指定値へ変更する制御を実行する。ここで、プロパティとは、制御対象装置２００の状態や特性を示す属性のことであり、例えば制御対象装置２００がパーソナルコンピュータである場合には、この制御対象装置２００は、消費電力や画面の輝度などのプロパティを有する。
【００２２】
図２は、実施の形態１に係るプロセッサ１１０の機能を示すブロック図である。図２に示す各処理部の機能は、ハードウェアによって実現されても良く、ソフトウェアで実現されても良い。図２に示すプロセッサ１１０は、アプリ実行部１５０、収集部１６０及び制御部１７０を有する。これらのうち収集部１６０及び制御部１７０は、複数のアプリケーションが共通して利用するデバイス制御基盤として実装される。
【００２３】
アプリ実行部１５０は、複数のアプリケーションを実行し、それぞれのアプリケーションを実行した結果、複数の制御対象装置２００から包括的なデータの取得が要求される場合に、データの取得依頼を収集部１６０へ出力する。また、アプリ実行部１５０は、それぞれのアプリケーションを実行した結果、複数の制御対象装置２００の包括的な制御が要求される場合に、制御依頼を制御部１７０へ出力する。
【００２４】
収集部１６０は、アプリ実行部１５０によって実行されるアプリケーションからデータの取得依頼を受け付けると、既に取得済みのデータを確認することにより、制御対象装置２００から新たに取得する必要があるデータを決定する。そして、収集部１６０は、決定されたデータを制御対象装置２００から取得し、取得されたデータを集約した結果をアプリケーションへ通知する。
【００２５】
具体的には、収集部１６０は、取得依頼受付部１６１、収集データ決定部１６２、データ取得部１６３、集約部１６４及び結果通知部１６５を有する。
【００２６】
取得依頼受付部１６１は、アプリ実行部１５０から出力されるデータの取得依頼を受け付け、受け付けた取得依頼の内容を取得依頼履歴テーブルに格納する。取得依頼受付部１６１が受け付ける取得依頼は、複数の制御対象装置２００に関する包括的なデータの取得を依頼するものであり、取得対象となるデータのプロパティとデータの集約に関する集約ルールとを含む。集約ルールには以下の２タイプがある。
タイプ１：ＡＶＥ／ＳＵＭ
タイプ２：ＭＡＸ／ＭＩＮ
【００２７】
タイプ１は、データの平均値を意味する「ＡＶＥ」と、データの合計値を意味する「ＳＵＭ」という２つの集約ルールを含む。また、タイプ２は、データの最大値を意味する「ＭＡＸ」と、データの最小値を意味する「ＭＩＮ」という２つの集約ルールを含む。したがって、例えばアプリケーションが複数の制御対象装置２００の電力の平均値を要求する場合には、取得依頼受付部１６１は、プロパティとして「電力」を含み、集約ルールとして「ＡＶＥ」を含む取得依頼を受け付ける。
【００２８】
取得依頼受付部１６１は、取得依頼を受け付けると、取得依頼の内容をメモリ１２０の取得依頼履歴テーブルに格納する。具体的には、取得依頼受付部１６１は、例えば図３に示す取得依頼履歴テーブルに取得依頼の内容を格納する。図３に示す取得依頼履歴テーブルは、取得依頼が受け付けられた日時と、取得依頼を発行したアプリケーションと、取得依頼に含まれるプロパティと、取得依頼に含まれる集約ルールとを記憶する。すなわち、図３に示す例では、例えば「電力」の「ＳＵＭ」を要求する取得依頼が「２０１５年２月１３日８時５０分」に「アプリ＃１」から受け付けられたことがわかる。
【００２９】
収集データ決定部１６２は、取得依頼受付部１６１によって受け付けられた取得依頼に基づいて、データの取得対象のプロパティを有する制御対象装置２００を特定する。そして、収集データ決定部１６２は、特定された制御対象装置２００それぞれから既にデータを取得済みであるか否かを判定し、未取得のデータを収集すると決定する。具体的には、収集データ決定部１６２は、例えば図４に示す装置管理テーブルを参照して、取得依頼に含まれるプロパティを有する制御対象装置２００をすべて列挙するデバイス一覧を生成する。図４に示す装置管理テーブルは、制御対象装置２００それぞれの識別情報に対応付けて、各制御対象装置２００が有するプロパティ名を記憶する。すなわち、図４に示す例では、例えば「デバイスＡ」は、プロパティとして「電力」、「輝度」及び「連続稼働時間」などを有している。
【００３０】
収集データ決定部１６２は、取得依頼のプロパティを有する制御対象装置２００のデバイス一覧を生成すると、例えば図５に示すデータテーブルを参照して、デバイス一覧に列挙された制御対象装置２００それぞれからデータを取得済みであるか否かを判定する。図５に示すデータテーブルは、制御対象装置２００それぞれの識別情報に対応付けて、取得されたデータのプロパティと値とを記憶する。すなわち、図５に示す例では、例えば「デバイスＡ」の「輝度」が「４５％」であるというデータがデータテーブルに記憶されている。そこで、収集データ決定部１６２は、デバイス一覧に列挙された制御対象装置２００それぞれについて、データがデータテーブルに保存済みであるか否かを判定することにより、制御対象装置２００それぞれからデータを取得済みであるか否かを判定する。そして、収集データ決定部１６２は、デバイス一覧に列挙された制御対象装置２００のうち、データを未取得の制御対象装置２００のデータを収集対象の収集データに決定する。
【００３１】
データ取得部１６３は、収集データ決定部１６２によって決定された収集データを取得する。すなわち、データ取得部１６３は、取得依頼によって指定されたプロパティのデータを未取得の制御対象装置２００からデータを取得する。そして、データ取得部１６３は、取得したデータを図５に示したデータテーブルに格納する。データ取得部１６３は、すべての収集データを取得してデータテーブルに格納すると、データの取得が完了したことを集約部１６４へ通知する。
【００３２】
集約部１６４は、データの取得が完了したことがデータ取得部１６３から通知されると、データテーブルを参照してデータを集約する。具体的には、集約部１６４は、データの取得依頼に含まれるプロパティのデータをデータテーブルから読み出し、取得依頼に含まれる集約ルールに従ってデータを集約する。したがって、集約部１６４は、例えば取得依頼に含まれる集約ルールが「ＡＶＥ」である場合には、データテーブルから読み出したデータの平均値を算出する。
【００３３】
結果通知部１６５は、集約部１６４によるデータの集約結果をアプリケーションへ通知する。具体的には、結果通知部１６５は、取得依頼に含まれる集約ルールに従ってデータが集約されて得られた結果を、取得依頼の発行元のアプリケーションへ通知する。
【００３４】
このように、収集部１６０は、アプリケーションからデータの取得依頼を受け付け、取得依頼に従って複数の制御対象装置２００からデータを収集するとともに集約し、その結果をアプリケーションへ通知する。
【００３５】
次に、制御部１７０は、アプリ実行部１５０によって実行されるアプリケーションから制御依頼を受け付けると、依頼された制御が実行可能か否かを判定する。そして、制御部１７０は、制御が実行可能な場合には、制御を実行する際の制限を抽出し、制御内容を決定する。さらに、制御部１７０は、決定した制御内容を制御対象装置２００へ指示し、制御が成功したか否かを示す結果をアプリケーションへ通知する。
【００３６】
具体的には、制御部１７０は、制御依頼受付部１７１、制御有無判定部１７２、制限抽出部１７３、制御内容決定部１７４、制御指示部１７５及び結果通知部１７６を有する。
【００３７】
制御依頼受付部１７１は、アプリ実行部１５０から出力される制御依頼を受け付け、受け付けた制御依頼の内容を制御依頼履歴テーブルに格納する。制御依頼受付部１７１が受け付ける制御依頼は、複数の制御対象装置２００の包括的な制御を依頼するものであり、制御対象となるプロパティと包括的な制御に関する制御ルールとプロパティの値を指定する指定値とを含む。制御ルールには以下の３タイプがある。
タイプ１：ＡＶＥ／ＳＵＭ
タイプ２：ＯＮＥ／ＭＯＲＥ
タイプ３：ＭＡＸ／ＭＩＮ
【００３８】
タイプ１は、データの平均値を指定値に変更することを意味する「ＡＶＥ」と、データの合計値を指定値に変更することを意味する「ＳＵＭ」という２つの制御ルールを含む。また、タイプ２は、いずれか１つの制御対象装置２００における値を指定値に変更することを意味する「ＯＮＥ」と、いずれか１つ以上の制御対象装置２００における値を指定値に変更することを意味する「ＭＯＲＥ」という２つの制御ルールを含む。さらに、タイプ３は、データの最大値を指定値以下に変更することを意味する「ＭＡＸ」と、データの最小値を指定値以上に変更することを意味する「ＭＩＮ」という２つの制御ルールを含む。したがって、例えばアプリケーションがすべての制御対象装置２００の電力を５０Ｗ以上に制御することを要求する場合には、制御依頼受付部１７１は、プロパティとして「電力」を含み、制御ルールとして「ＭＩＮ」を含み、指定値として「５０Ｗ」を含む制御依頼を受け付ける。
【００３９】
制御依頼受付部１７１は、制御依頼を受け付けると、制御依頼の内容をメモリ１２０の制御依頼履歴テーブルに格納する。具体的には、制御依頼受付部１７１は、例えば図６に示す制御依頼履歴テーブルに制御依頼の内容を格納する。図６に示す制御依頼履歴テーブルは、制御依頼が受け付けられた日時と、制御依頼を発行したアプリケーションと、制御依頼に含まれるプロパティと、制御依頼に含まれる制御ルールと、制御依頼に含まれる指定値と、制御が成功したか否かを示す結果とを記憶する。すなわち、図６に示す例では、例えば「輝度」の「ＡＶＥ」を「６０％」に制御することを要求する制御依頼が「２０１５年２月１３日９時００分」に「アプリ＃１」から受け付けられ、この制御依頼に応じた制御が成功したことがわかる。
【００４０】
制御有無判定部１７２は、制御依頼受付部１７１によって受け付けられた制御依頼に基づいて、制御対象のプロパティを有する制御対象装置２００を特定する。そして、制御有無判定部１７２は、特定された制御対象装置２００に対して新たな制御の指示をする必要があるか否かを判定する。具体的には、制御有無判定部１７２は、図４に示した装置管理テーブルを参照して、制御依頼に含まれるプロパティを有する制御対象装置２００を特定する。そして、制御有無判定部１７２は、図５に示したデータテーブルを参照して、特定した制御対象装置２００すべてについて、制御対象のプロパティのデータがデータテーブルに格納済みであるか確認し、未格納のデータの取得をデータ取得部１６３に依頼する。
【００４１】
制御有無判定部１７２は、制御対象のプロパティのデータがすべてデータテーブルに格納されると、これらのデータが制御依頼を既に満たしているか否かを判定する。この結果、既に制御依頼が満たされている場合には、制御有無判定部１７２は、新たな制御が不要と判断し、制御が成功したことを結果通知部１７６へ通知する。また、制御有無判定部１７２は、まだ制御依頼が満たされていない場合には、既に実行中の制御依頼と新規制御依頼とが矛盾するか否かを判定する。この結果、両制御依頼が矛盾する場合には、制御有無判定部１７２は、新規制御依頼に応じた制御が実行不可能と判断し、制御が失敗したことを結果通知部１７６へ通知する。ここで、制御依頼が矛盾する場合とは、例えばあるプロパティについて新規制御依頼で指定される平均値が、既に実行中の制御依頼で指定された平均値とは異なる場合などである。したがって、制御有無判定部１７２は、制御依頼によって指定されたプロパティと同一のプロパティに関する過去の制御依頼であって結果が成功となっている制御依頼を制御依頼履歴テーブルから選択し、選択した過去の制御依頼と新規制御依頼との矛盾の有無を判定する。なお、制御の矛盾については、後に詳述する。
【００４２】
制御有無判定部１７２は、既に制御依頼が満たされている場合及び既に実行中の制御依頼と新規制御依頼とが矛盾している場合以外には、新規制御依頼に応じて新たな制御を実行すると判定し、その旨を制限抽出部１７３へ通知する。
【００４３】
制限抽出部１７３は、既に実行中の制御依頼と新規制御依頼とを両立するための制限を抽出する。すなわち、制限抽出部１７３は、既に実行中の制御依頼を満たしつつ新規制御依頼に応じた制御を実行するための制限を抽出する。具体的には、例えば既に実行中の制御依頼によってあるプロパティの最大値が指定されている場合、制限抽出部１７３は、この最大値を超えない範囲で値を変更するという制限を抽出する。そして、制限抽出部１７３は、抽出した制限を制御内容決定部１７４へ通知する。なお、制限の抽出については、後に詳述する。
【００４４】
制御内容決定部１７４は、制限抽出部１７３から通知される制限の下で、新規制御依頼によって指定されるプロパティの値を新規制御依頼に含まれる指定値に変更するための制御内容を決定する。具体的には、制御内容決定部１７４は、新規制御依頼によって指定されるプロパティを有する制御対象装置２００を選択し、選択した制御対象装置２００のプロパティの値をどのように変更するか決定する。このとき、制御内容決定部１７４は、制限抽出部１７３から通知される制限に基づく条件を満たすように制御対象装置２００を選択するとともに、この条件を満たす範囲で変更後のプロパティの値を決定する。そして、制御内容決定部１７４は、決定した制御内容を例えば図７に示す制御履歴テーブルに格納する。図７に示す制御履歴テーブルは、制御対象として選択された制御対象装置２００の識別情報と、制御されるプロパティと、制御されるプロパティの変更後の値と、制御が成功したか否かを示す結果とを記憶する。すなわち、図７に示す例では、例えば「デバイスＤ」の「輝度」を「７０％」に変更するという制御内容が決定され、この制御が成功したことがわかる。また、「デバイスＣ」の「電力」を「３５Ｗ」に変更するという制御は、まだ完了しておらず結果が空欄となっている。
【００４５】
制御指示部１７５は、制御内容決定部１７４によって決定された制御内容を制御対象装置２００へ指示する。すなわち、制御指示部１７５は、新規制御依頼によって指定されたプロパティの変更を指示する制御指示を生成し、生成した制御指示を制御内容決定部１７４によって選択された制御対象装置２００に対して送信する。また、制御指示部１７５は、制御指示を送信すると、制御指示の送信先の制御対象装置２００の識別情報と制御内容とを図５に示したデータテーブルに格納する。さらに、制御指示部１７５は、制御指示を送信すると、図７に示した制御履歴テーブルにおいて、送信された制御指示に対応する制御履歴の結果に成功の旨を追記する。そして、制御指示部１７５は、制御内容決定部１７４によって決定されたすべての制御内容について制御が成功すると、新規制御依頼に応じた制御が成功したことを結果通知部１７６へ通知する。一方、制御指示部１７５は、制御内容決定部１７４によって決定された制御内容の中に制御が失敗したものがあると、すべての制御を元に戻して、新規制御依頼に応じた制御が失敗したことを結果通知部１７６へ通知する。
【００４６】
結果通知部１７６は、制御有無判定部１７２及び制御指示部１７５から制御の成功又は失敗が通知されると、通知された結果を図６に示した制御依頼履歴テーブルの制御依頼履歴の結果に追記する。また、結果通知部１７６は、新規制御依頼に応じた制御が成功したか否かの結果を、新規制御依頼の発行元のアプリケーションへ通知する。
【００４７】
［データの集約処理］
次いで、上記のように構成された制御装置１００によるデータの集約処理について、図８に示すフロー図を参照して説明する。以下の集約処理は、主にプロセッサ１１０の収集部１６０によって実行される。
【００４８】
複数の制御対象装置２００に関する包括的なデータの取得を依頼する取得依頼がアプリケーションによって発行されると、この取得依頼は、取得依頼受付部１６１によって受け付けられる（ステップＳ１０１）。そして、取得依頼受付部１６１によって、取得依頼の内容が取得依頼履歴テーブルに格納される。すなわち、取得依頼に含まれるプロパティと集約ルールが取得依頼の受付日時及び発行元アプリケーションに対応付けて記憶される。
【００４９】
取得依頼は収集データ決定部１６２へ出力され、収集データ決定部１６２によって、取得依頼に含まれるプロパティを有する制御対象装置２００の一覧であるデバイス一覧が生成される（ステップＳ１０２）。具体的には、収集データ決定部１６２によって装置管理テーブルが参照されることにより、取得依頼に含まれるプロパティを有するすべての制御対象装置２００が特定され、特定された制御対象装置２００の一覧を示すデバイス一覧が生成される。取得依頼は、デバイス一覧に含まれる制御対象装置２００のデータの平均値、合計値、最大値又は最小値など包括的なデータの取得を依頼するものである。
【００５０】
そこで、収集データ決定部１６２によって、デバイス一覧に含まれる１つの制御対象装置２００が選択され（ステップＳ１０３）、この制御対象装置２００に関して、取得依頼に含まれるプロパティのデータがデータテーブルに保存済みであるか否かが判定される（ステップＳ１０４）。この判定の結果、データがデータテーブルに保存されていない場合には（ステップＳ１０４Ｎｏ）、選択された制御対象装置２００からデータを取得する必要があるため、この制御対象装置２００の、取得依頼に含まれるプロパティのデータが収集データに決定される（ステップＳ１０５）。一方、データがデータテーブルに保存済みである場合には（ステップＳ１０４Ｙｅｓ）、選択された制御対象装置２００からデータを取得する必要がない。
【００５１】
このようにして、選択された制御対象装置２００に関して、取得依頼に含まれるプロパティのデータが保存済みであるか否かの判定が完了すると、引き続き収集データ決定部１６２によって、デバイス一覧のすべての制御対象装置２００が選択済みであるか否かが判定される（ステップＳ１０６）。そして、デバイス一覧にまだ選択されていない制御対象装置２００がある間は（ステップＳ１０６Ｎｏ）、デバイス一覧に列挙された制御対象装置２００が順次選択され、データが保存済みであるか否かの判定が繰り返される。
【００５２】
そして、デバイス一覧のすべての制御対象装置２００についてデータが保存済みであるか否かの判定が完了すると（ステップＳ１０６Ｙｅｓ）、収集データ決定部１６２によって決定された収集データがデータ取得部１６３へ通知される。この収集データは、データテーブルに保存されておらず制御対象装置２００から取得することが必要なデータである。そこで、データ取得部１６３によって、収集データがそれぞれの制御対象装置２００から取得される（ステップＳ１０７）。取得されたデータは、データテーブルに格納される。すなわち、データの取得先となった制御対象装置２００の識別情報に対応付けて、データのプロパティと値とがデータテーブルに格納される。これにより、デバイス一覧のすべての制御対象装置２００について、取得依頼に含まれるプロパティのデータがデータテーブルに記憶されたことになる。
【００５３】
データの取得が完了すると、集約部１６４によって、取得依頼に含まれる集約ルールに従ったデータの集約が実行される（ステップＳ１０８）。具体的には、取得依頼に含まれる集約ルールは、「ＡＶＥ」、「ＳＵＭ」、「ＭＡＸ」又は「ＭＩＮ」であるため、取得依頼に含まれるプロパティのデータがデータテーブルから読み出され、集約ルールに従ってデータの平均値、合計値、最大値又は最小値が算出される。そして、集約部１６４による集約結果は、結果通知部１６５によって、取得依頼の発行元のアプリケーションへ通知される（ステップＳ１０９）。
【００５４】
このように、アプリケーションから包括的なデータの取得が依頼されると、収集部１６０は、取得が必要な収集データを決定して制御対象装置２００からデータを取得し、データの集約をした上で集約結果をアプリケーションへ通知する。このため、既にデータテーブルに保存済みのデータが重複して制御対象装置２００から収集されることがなく、制御装置１００と制御対象装置２００の間のネットワークの負荷を低減することができる。また、複数の制御対象装置２００についての包括的なデータをアプリケーションへ提供することができる。
【００５５】
次に、集約処理の具体例について、図９を参照しながら説明する。図９は、アプリ実行部１５０によって実行される「アプリ＃１」というアプリケーションから、２つの取得依頼が発行された場合の集約処理を説明する図である。
【００５６】
図９に示すように、「アプリ＃１」から「電力」の「ＳＵＭ」を要求する取得依頼と「輝度」の「ＡＶＥ」を要求する取得依頼との２つが発行された場合を考える。なお、図９に示す取得依頼履歴においては、取得依頼が受け付けられた日時を省略している。上記の２つの取得依頼が受け付けられる場合、取得依頼に含まれる電力及び輝度のプロパティを有する制御対象装置２００が装置管理テーブルから特定され、「デバイスＡ」、「デバイスＢ」、「デバイスＣ」及び「デバイスＤ」が該当する制御対象装置２００であると特定される。
【００５７】
そして、これらの制御対象装置２００について、電力及び輝度がデータテーブルに保存済みであるか否かが判定される。ここでは、データテーブル３０１にデバイスＡ、Ｂの輝度が保存済みであるものとする。このため、デバイスＡ〜Ｄの電力とデバイスＣ、Ｄの輝度とが収集対象の収集データに決定され、それぞれのデバイスから電力及び輝度が取得される。
【００５８】
収集データが取得された結果、データテーブル３０２には、デバイスＡ〜Ｄの電力及び輝度が保存される。そこで、集約部１６４によって、デバイスＡ〜Ｄの電力の値がデータテーブル３０２から読み出され、これらの電力の値の合計値１６０Ｗ（＝３５Ｗ＋３５Ｗ＋４５Ｗ＋４５Ｗ）が算出され、この合計値が結果通知部１６５から「アプリ＃１」へ通知される。同様に、集約部１６４によって、デバイスＡ〜Ｄの輝度の値がデータテーブル３０２から読み出され、これらの輝度の値の平均値６５％（＝（４５％＋６５％＋６０％＋９０％）／４）が算出され、この平均値が結果通知部１６５から「アプリ＃１」へ通知される。
【００５９】
［制御処理］
次いで、制御装置１００による制御処理について、図１０に示すフロー図を参照して説明する。以下の制御処理は、主にプロセッサ１１０の制御部１７０によって実行される。
【００６０】
複数の制御対象装置２００に対する包括的な制御を依頼する制御依頼がアプリケーションによって発行されると、この新規制御依頼は、制御依頼受付部１７１によって受け付けられる（ステップＳ２０１）。そして、制御依頼受付部１７１によって、新規制御依頼の内容が制御依頼履歴テーブルに格納される。すなわち、新規制御依頼に含まれるプロパティと制御ルールと指定値とが新規制御依頼の受付日時及び発行元アプリケーションに対応付けて記憶される。この時点では、制御依頼履歴テーブルにおいて、新規制御依頼に応じた制御が成功したか否かの結果は空欄となる。
【００６１】
新規制御依頼は制御有無判定部１７２へ出力され、制御有無判定部１７２によって、新規制御依頼に含まれるプロパティを有する制御対象装置２００の一覧であるデバイス一覧が生成される（ステップＳ２０２）。具体的には、制御有無判定部１７２によって装置管理テーブルが参照されることにより、新規制御依頼に含まれるプロパティを有するすべての制御対象装置２００が特定され、特定された制御対象装置２００の一覧を示すデバイス一覧が生成される。新規制御依頼は、デバイス一覧に含まれる制御対象装置２００のデータの平均値、合計値、最大値又は最小値の変更や、デバイス一覧に含まれるいずれかの制御対象装置２００におけるデータの変更を依頼する包括的な制御依頼である。
【００６２】
そこで、制御有無判定部１７２によって、デバイス一覧に含まれる１つの制御対象装置２００が選択され（ステップＳ２０３）、この制御対象装置２００に関して、新規制御依頼に含まれるプロパティのデータがデータテーブルに保存済みであるか否かが判定される（ステップＳ２０４）。この判定の結果、データがデータテーブルに保存されていない場合には（ステップＳ２０４Ｎｏ）、選択された制御対象装置２００からデータを取得するために、この制御対象装置２００の、新規制御依頼に含まれるプロパティのデータが収集データに決定される（ステップＳ２０５）。一方、データがデータテーブルに保存済みである場合には（ステップＳ２０４Ｙｅｓ）、選択された制御対象装置２００からデータを取得する必要がない。
【００６３】
このようにして、選択された制御対象装置２００に関して、新規制御依頼に含まれるプロパティのデータが保存済みであるか否かの判定が完了すると、引き続き制御有無判定部１７２によって、デバイス一覧のすべての制御対象装置２００が選択済みであるか否かが判定される（ステップＳ２０６）。そして、デバイス一覧にまだ選択されていない制御対象装置２００がある間は（ステップＳ２０６Ｎｏ）、デバイス一覧に列挙された制御対象装置２００が順次選択され、データが保存済みであるか否かの判定が繰り返される。
【００６４】
そして、デバイス一覧のすべての制御対象装置２００についてデータが保存済みであるか否かの判定が完了すると（ステップＳ２０６Ｙｅｓ）、制御有無判定部１７２によって決定された収集データがデータ取得部１６３へ通知される。この収集データは、データテーブルに保存されておらず制御対象装置２００から取得することが必要なデータである。そこで、データ取得部１６３によって、収集データがそれぞれの制御対象装置２００から取得される（ステップＳ２０７）。取得されたデータは、データテーブルに格納される。すなわち、データの取得先となった制御対象装置２００の識別情報に対応付けて、データのプロパティと値とがデータテーブルに格納される。これにより、デバイス一覧のすべての制御対象装置２００について、新規制御依頼に含まれるプロパティのデータがデータテーブルに記憶されたことになる。
【００６５】
データの取得が完了すると、制御有無判定部１７２によって、新規制御依頼に応じた新たな制御が必要であるか否かが判定される（ステップＳ２０８）。すなわち、データテーブルに記憶されたデータが新規制御依頼を既に満たしている場合に制御が不要と判定され、それ以外の場合は制御が必要と判定される。具体的には、制御有無判定部１７２によって、新規制御依頼に含まれるプロパティのデータがデータテーブルから読み出され、これらのデータが新規制御依頼に含まれる制御ルール及び指定値を既に満たしているか否かが判定される。この判定の結果、データが既に新規制御依頼を満たしている場合には、新たな制御が不要と判断されるため（ステップＳ２０８Ｎｏ）、結果通知部１７６によって、新規制御依頼に応じた制御が成功した旨が新規制御依頼発行元のアプリケーションへ通知される（ステップＳ２１０）。また、結果通知部１７６によって、新規制御依頼に応じた制御が成功したという結果が制御依頼履歴テーブルに追記される。
【００６６】
一方、制御有無判定部１７２によって、まだ新規制御依頼が満たされていないと判断された場合には、新たな制御が必要と判定される（ステップＳ２０８Ｙｅｓ）。そして、制御有無判定部１７２によって、新規制御依頼が既に実行中の制御依頼と矛盾しないか確認された後、制限抽出部１７３によって制御を実行する際の制限が抽出される。制限が抽出されると、この制限の下での制御内容が制御内容決定部１７４によって決定される（ステップＳ２０９）。決定された制御内容は、制御内容決定部１７４によって、制御履歴テーブルに格納される。制御内容の決定については、後に詳述する。
【００６７】
制御内容が決定されると、制御指示部１７５によって、決定された制御内容において選択された制御対象装置２００に対して、プロパティの値を変更する制御指示が出され、制御が実行される。このとき、制御指示部１７５によって、制御指示の送信先の制御対象装置２００の識別情報と制御内容とがデータテーブルに格納されるとともに、制御が成功したという結果が制御履歴テーブルに追記される。そして、制御内容決定部１７４によって決定されたすべての制御内容について制御が成功すると、結果通知部１７６によって、新規制御依頼に応じた制御が成功した旨が新規制御依頼発行元のアプリケーションへ通知される（ステップＳ２１０）。また、結果通知部１７６によって、新規制御依頼に応じた制御が成功したという結果が制御依頼履歴テーブルに追記される。
【００６８】
［制御内容決定処理］
次に、制御依頼に応じた制御内容を決定する制御内容決定処理について、図１１に示すフロー図を参照しながら説明する。この制御内容決定処理は、制御有無判定部１７２によって新たな制御が必要と判定された場合に、主に制御有無判定部１７２、制限抽出部１７３及び制御内容決定部１７４によって実行される。
【００６９】
上述したように、データテーブルに記憶されたデータが新規制御依頼を満たしていない場合には、制御有無判定部１７２によって、新たな制御が必要と判定される。そこで、まず、制御有無判定部１７２によって、新規制御依頼に応じた制御が実行可能か否かが判定される。具体的には、制御有無判定部１７２によって、既に制御が実行されている制御依頼が制御依頼履歴テーブルから抽出される（ステップＳ３０１）。ここでは、例えば新規制御依頼と同日に受け付けられ、同一のプロパティを含み、かつ、結果が成功となっている制御依頼が抽出される。そして、制御有無判定部１７２によって、抽出された制御依頼それぞれと新規制御依頼とが互いに矛盾する制御を依頼するものであるか否かが判定される（ステップＳ３０２）。
【００７０】
ここで、矛盾する制御依頼について、図１２を参照して具体的に説明する。図１２は、新規制御依頼と既に実行中の制御依頼との間で矛盾が生じる組み合わせを示す。図１２において、新規制御依頼に含まれる指定値をａとし、既に実行中の制御依頼に含まれる指定値をｂとする。ただし、制御ルールが「ＳＵＭ」の制御依頼については、合計値を１つの制御対象装置２００当たりの平均値に変換すれば制御ルールが「ＡＶＥ」の制御依頼と同等であるため、制御ルールが「ＡＶＥ」と「ＳＵＭ」の制御依頼を一括りにして扱う。
【００７１】
図１２に示すように、新規制御依頼の制御ルールが「ＡＶＥ」（又は「ＳＵＭ」）の場合には、実行中の制御依頼のうち、制御ルールが「ＡＶＥ」（又は「ＳＵＭ」）、「ＭＡＸ」又は「ＭＩＮ」の制御依頼との間で矛盾する可能性がある。すなわち、実行中の制御依頼の制御ルール「ＡＶＥ」（又は「ＳＵＭ」）の指定値ｂが新規制御依頼の制御ルール「ＡＶＥ」（又は「ＳＵＭ」）の指定値ａと異なる場合には、両制御依頼に矛盾がある。また、実行中の制御依頼の制御ルール「ＭＡＸ」の指定値ｂが新規制御依頼の制御ルール「ＡＶＥ」（又は「ＳＵＭ」）の指定値ａより小さい場合には、両制御依頼に矛盾がある。同様に、実行中の制御依頼の制御ルール「ＭＩＮ」の指定値ｂが新規制御依頼の制御ルール「ＡＶＥ」（又は「ＳＵＭ」）の指定値ａより大きい場合には、両制御依頼に矛盾がある。
【００７２】
新規制御依頼の制御ルールが「ＯＮＥ」又は「ＭＯＲＥ」の場合には、実行中の制御依頼のうち、制御ルールが「ＭＡＸ」又は「ＭＩＮ」の制御依頼との間で矛盾する可能性がある。すなわち、実行中の制御依頼の制御ルール「ＭＡＸ」の指定値ｂが新規制御依頼の制御ルール「ＯＮＥ」又は「ＭＯＲＥ」の指定値ａより小さい場合には、両制御依頼に矛盾がある。同様に、実行中の制御依頼の制御ルール「ＭＩＮ」の指定値ｂが新規制御依頼の制御ルール「ＯＮＥ」又は「ＭＯＲＥ」の指定値ａより大きい場合には、両制御依頼に矛盾がある。
【００７３】
新規制御依頼の制御ルールが「ＭＡＸ」の場合には、実行中の制御依頼のうち、制御ルールが「ＡＶＥ」（又は「ＳＵＭ」）、「ＯＮＥ」、「ＭＯＲＥ」又は「ＭＩＮ」の制御依頼との間で矛盾する可能性がある。すなわち、実行中の制御依頼の制御ルール「ＡＶＥ」（又は「ＳＵＭ」）、「ＯＮＥ」、「ＭＯＲＥ」又は「ＭＩＮ」の指定値ｂが新規制御依頼の制御ルール「ＭＡＸ」の指定値ａより大きい場合には、両制御依頼に矛盾がある。
【００７４】
新規制御依頼の制御ルールが「ＭＩＮ」の場合には、実行中の制御依頼のうち、制御ルールが「ＡＶＥ」（又は「ＳＵＭ」）、「ＯＮＥ」、「ＭＯＲＥ」又は「ＭＡＸ」の制御依頼との間で矛盾する可能性がある。すなわち、実行中の制御依頼の制御ルール「ＡＶＥ」（又は「ＳＵＭ」）、「ＯＮＥ」、「ＭＯＲＥ」又は「ＭＡＸ」の指定値ｂが新規制御依頼の制御ルール「ＭＩＮ」の指定値ａより小さい場合には、両制御依頼に矛盾がある。
【００７５】
以上の制御依頼の矛盾がある場合には（ステップＳ３０２Ｙｅｓ）、制御有無判定部１７２によって、新規制御依頼に応じた制御が実行不可能と判断されるため、結果通知部１７６によって、新規制御依頼に応じた制御が失敗した旨が新規制御依頼発行元のアプリケーションへ通知される（ステップＳ３０９）。また、結果通知部１７６によって、新規制御依頼に応じた制御が失敗したという結果が制御依頼履歴テーブルに追記される。
【００７６】
一方、制御依頼の矛盾がない場合には（ステップＳ３０２Ｎｏ）、制限抽出部１７３によって、新規制御依頼と実行中の制御依頼との組み合わせごとに、新規制御依頼に応じた制御を実行する際の制限が抽出される（ステップＳ３０３）。
【００７７】
ここで、制御の制限について、図１３を参照して具体的に説明する。図１３は、新規制御依頼と既に実行中の制御依頼との組み合わせごとに満たすべき制限を示す。図１３において、新規制御依頼に含まれる指定値をａとし、実行中の制御依頼に含まれる指定値をｂとする。ただし、制御ルールが「ＳＵＭ」の制御依頼については、合計値を１つの制御対象装置２００当たりの平均値に変換すれば制御ルールが「ＡＶＥ」の制御依頼と同等であるため、制御ルールが「ＡＶＥ」と「ＳＵＭ」の制御依頼を一括りにして扱う。
【００７８】
図１３に示すように、新規制御依頼の制御ルールが「ＡＶＥ」（又は「ＳＵＭ」）の場合には、実行中の制御依頼のうち、制御ルールが「ＯＮＥ」、「ＭＯＲＥ」、「ＭＡＸ」又は「ＭＩＮ」の制御依頼との組み合わせにおいて制御の制限が生じる。すなわち、制御ルール「ＯＮＥ」又は「ＭＯＲＥ」の制御依頼が実行中である場合には、値が指定値ｂとなっている制御対象装置２００を値の変更対象から除外するという制限の下で、新規制御依頼の制御ルール「ＡＶＥ」（又は「ＳＵＭ」）を指定値ａにすることが求められる。また、制御ルール「ＭＡＸ」又は「ＭＩＮ」の制御依頼が実行中である場合には、最大値又は最小値が指定値ｂであるという制限の下で、新規制御依頼の制御ルール「ＡＶＥ」（又は「ＳＵＭ」）を指定値ａにすることが求められる。
【００７９】
新規制御依頼の制御ルールが「ＯＮＥ」又は「ＭＯＲＥ」の場合には、実行中の制御依頼のうち、制御ルールが「ＡＶＥ」（又は「ＳＵＭ」）、「ＯＮＥ」、「ＭＯＲＥ」、「ＭＡＸ」又は「ＭＩＮ」の制御依頼との組み合わせにおいて制御の制限が生じる。すなわち、制御ルール「ＡＶＥ」（又は「ＳＵＭ」）の制御依頼が実行中である場合には、いずれかの制御対象装置２００の値を変更した分を相殺するように他の制御対象装置２００の値を変更するという制限の下で、新規制御依頼の制御ルール「ＯＮＥ」又は「ＭＯＲＥ」を指定値ａにすることが求められる。換言すれば、例えばいずれかの制御対象装置２００の値を所定量ｘだけ増加させる場合には、他の制御対象装置２００の値を同じ所定量ｘだけ減少させるという制限が設けられる。また、制御ルール「ＯＮＥ」又は「ＭＯＲＥ」の制御依頼が実行中である場合には、値が指定値ｂとなっている制御対象装置２００を値の変更対象から除外するという制限の下で、新規制御依頼の制御ルール「ＯＮＥ」又は「ＭＯＲＥ」を指定値ａにすることが求められる。さらに、制御ルール「ＭＡＸ」又は「ＭＩＮ」の制御依頼が実行中である場合には、最大値又は最小値が指定値ｂであるという制限の下で、新規制御依頼の制御ルール「ＯＮＥ」又は「ＭＯＲＥ」を指定値ａにすることが求められる。
【００８０】
新規制御依頼の制御ルールが「ＭＡＸ」又は「ＭＩＮ」の場合には、実行中の制御依頼のうち、制御ルールが「ＡＶＥ」（又は「ＳＵＭ」）の制御依頼との組み合わせにおいて制御の制限が生じる。すなわち、制御ルール「ＡＶＥ」（又は「ＳＵＭ」）の制御依頼が実行中である場合には、いずれかの制御対象装置２００の値を変更した分を相殺するように他の制御対象装置２００の値を変更するという制限の下で、新規制御依頼の制御ルール「ＭＡＸ」又は「ＭＩＮ」を指定値ａにすることが求められる。
【００８１】
以上のように制御依頼の組み合わせに応じた制限が制限抽出部１７３によって抽出されると、制御内容決定部１７４によって、制限抽出部１７３によって抽出された制限を満たしつつ、新規制御依頼に含まれる指定値を達成する制御内容が決定される（ステップＳ３０４）。具体的には、例えば新規制御依頼に含まれる制御ルールが「ＡＶＥ」又は「ＳＵＭ」である場合には、制御内容決定部１７４によって１つ以上の制御対象装置２００が選択され、複数の制御対象装置２００の値の平均値又は合計値が指定値となるように、選択された制御対象装置２００における値が変更される。同様に、例えば新規制御依頼に含まれる制御ルールが「ＯＮＥ」又は「ＭＯＲＥ」である場合には、制御内容決定部１７４によって１つ以上の制御対象装置２００が選択され、選択された制御対象装置２００における値が指定値に変更される。また、例えば新規制御依頼に含まれる制御ルールが「ＭＡＸ」又は「ＭＩＮ」である場合には、制御内容決定部１７４によって１つ以上の制御対象装置２００が選択され、すべての制御対象装置２００の値が指定値以上又は指定値以下となるように、選択された制御対象装置２００における値が変更される。なお、値を変更する制御対象装置２００の選択方法は、任意の方法で良い。
【００８２】
このような指針で制御内容決定部１７４によって制御内容が決定され、適正な制御内容が決定されたか否かが判断される。すなわち、制御依頼と制限を満たす制御内容が存在したか否かが判断される（ステップＳ３０５）。この判断の結果、制御依頼と制限を満たす制御内容が存在しない場合には（ステップＳ３０５Ｎｏ）、新規制御依頼に応じた制御が実行不可能であるため、結果通知部１７６によって、新規制御依頼に応じた制御が失敗した旨が制御依頼発行元のアプリケーションへ通知される（ステップＳ３０９）。
【００８３】
一方、制御依頼と制限を満たす制御内容が存在し、適正な制御内容が決定された場合は（ステップＳ３０５Ｙｅｓ）、制御内容決定部１７４によって、決定された制御内容が制御履歴テーブルに格納される。すなわち、値を変更する制御対象装置２００として選択された制御対象装置２００の識別情報と、変更されるプロパティと、変更後の値とが制御履歴テーブルに格納される。この時点では、制御履歴テーブルにおいて、制御が成功したか否かの結果は空欄となる。
【００８４】
制御履歴テーブルに格納された制御内容は、制御指示部１７５へ通知され、制御指示部１７５によって、制御内容に応じた制御指示が生成され、制御対象装置２００へ送信される（ステップＳ３０６）。そして、制御指示部１７５によって、すべての制御指示に関して制御対象装置２００の制御が成功したか否かが判断される（ステップＳ３０７）。このとき、例えば制御対象装置２００やネットワークの状態によって失敗した制御がある場合には（ステップＳ３０７Ｎｏ）、新規制御依頼に応じたすべての制御が元に戻される。そして、結果通知部１７６によって、新規制御依頼に応じた制御が失敗した旨が新規制御依頼発行元のアプリケーションへ通知される（ステップＳ３０９）。
【００８５】
一方、すべての制御指示に関して制御が成功した場合には（ステップＳ３０７Ｙｅｓ）、結果通知部１７６によって、新規制御依頼に応じた制御が成功した旨が新規制御依頼発行元のアプリケーションへ通知される（ステップＳ３０８）。また、制御が成功した場合には、制御対象装置２００の制御内容に応じたプロパティの値が変更されるため、制御指示部１７５によって、制御指示の送信先の制御対象装置２００の識別情報と制御内容とが最新のデータとしてデータテーブルに格納される。
【００８６】
このように、複数の制御対象装置２００の包括的な制御がアプリケーションから依頼されると、制御部１７０は、新たな制御の必要性を判定し、新たな制御が必要な場合には、新規制御依頼と既に実行中の制御依頼との両立可能性を判定する。そして、制御部１７０は、既に実行中の制御依頼と両立可能な新規制御依頼について、制御時に満たすべき制限を抽出し、制御依頼及び制限を満たす制御内容を決定する。このため、不要な制御が実行されることがないとともに、新たな制御依頼と過去の制御依頼とを両立する制御が実行されるため、効率的に複数のデバイスの包括的な制御を実施することができる。
【００８７】
次に、制御処理の具体例について、図１４を参照しながら説明する。図１４は、アプリ実行部１５０によって実行される「アプリ＃１」及び「アプリ＃２」という２つのアプリケーションから、それぞれ制御依頼が発行された場合の制御処理を説明する図である。
【００８８】
図１４に示すように、「アプリ＃１」から「輝度」の「ＡＶＥ」を「６５％」にすることを要求する制御依頼３１１が発行され、その後に「アプリ＃２」から「輝度」の「ＭＩＮ」を「５０％」以上にすることを要求する制御依頼３１２が発行された場合を考える。なお、図１４に示す制御依頼履歴においては、制御依頼が受け付けられた日時を省略している。上記の制御依頼３１１、３１２が受け付けられる場合、まず制御依頼３１１に従った制御が実行され、複数の制御対象装置２００のうち、輝度のプロパティを有する「デバイスＡ」、「デバイスＢ」、「デバイスＣ」及び「デバイスＤ」の輝度の平均値が６５％となるように制御される。したがって、データテーブル３２１に示すように、デバイスＡ〜Ｄの輝度の平均値は６５％（＝（４５％＋６５％＋６０％＋９０％）／４）となっている。
【００８９】
この状態で制御依頼３１２が発行されると、制御有無判定部１７２によって、制御依頼３１２が既に満たされているか否かが判定される。すなわち、デバイスＡ〜Ｄの輝度の最小値が５０％以上となっているか否かが判定される。ここでは、デバイスＡの輝度が４５％であり、制御依頼３１２が満たされていないため、引き続き制御有無判定部１７２によって、制御依頼３１１と制御依頼３１２とが矛盾するか否かが判定される。
【００９０】
図１２に示したように、実行中の制御依頼３１１の制御ルールが「ＡＶＥ」であり、新規制御依頼３１２の制御ルールが「ＭＩＮ」である場合には、制御依頼３１１での指定値ｂが新規制御依頼３１２での指定値ａより小さい場合に制御依頼の矛盾がある。ここでは、制御依頼３１１での指定値「６５％」が新規制御依頼３１２での指定値「５０％」以上であるため、制御依頼の矛盾はない。そこで、制限抽出部１７３によって、制御依頼３１２に従った制御を実行する上での制限が抽出される。
【００９１】
図１３に示したように、実行中の制御依頼３１１の制御ルールが「ＡＶＥ」であり、新規制御依頼３１２の制御ルールが「ＭＩＮ」である場合には、１つの制御対象装置２００の値を変更した場合には、その変更を相殺するように他の制御対象装置２００の値を変更するという制限がある。そこで、制御内容決定部１７４によって、制御依頼３１２及び制限を満たす制御内容が決定される。
【００９２】
具体的には、まず制御依頼３１２を満たすように、デバイスＡの輝度を４５％から５０％に変更するという制御内容が決定される。この制御内容により、輝度の最小値を５０％以上にするという制御依頼３１２は満たされることになる。また、デバイスＡの輝度が５％分増加するため、制限を満たすように、デバイスＡ以外の制御対象装置２００の輝度を５％分減少させるという制御内容が決定される。ここでは、例えばデバイスＤが選択され、デバイスＤの輝度を９０％から８５％に変更するという制御内容が決定される。
【００９３】
このようにして決定された制御内容は、制御履歴テーブルに記憶された後、制御指示部１７５によって、それぞれデバイスＡ、Ｄに指示される。そして、デバイスＡ、Ｄにおける輝度の変更が成功すると、制御履歴テーブルにおいて制御が成功した旨の結果が追記され、データテーブルが更新される。ここでは、データテーブル３２２に太枠で示すように、デバイスＡの輝度が５０％に変更され、デバイスＤの輝度が８５％に変更される。これにより、デバイスＡ〜Ｄの輝度の最小値が５０％となり、制御依頼３１２が満たされる。また、制御依頼３１１、３１２を両立するための制限も満たされているため、デバイスＡ〜Ｄの輝度の平均値は６５％（＝（５０％＋６５％＋６０％＋８５％）／４）となっており、制御依頼３１１も満たされる。そして、制御内容決定部１７４によって決定されたすべての制御内容に応じた制御が成功したことから、結果通知部１７６によって、制御依頼３１２に応じた制御が成功した旨の結果が「アプリ＃２」へ通知される。
【００９４】
以上のように、本実施の形態によれば、アプリケーションから包括的なデータの取得が依頼されると、収集部１６０は、取得が必要な収集データを決定して制御対象装置２００からデータを取得し、データの集約をした上で集約結果をアプリケーションへ通知する。このため、既にデータテーブルに保存済みのデータが重複して制御対象装置２００から収集されることがなく、制御装置１００と制御対象装置２００の間のネットワークの負荷を低減することができる。また、複数の制御対象装置２００の包括的な制御がアプリケーションから依頼されると、制御部１７０は、新たな制御の必要性を判定し、新たな制御が必要な場合には、新規制御依頼と既に実行中の制御依頼との両立可能性を判定する。そして、制御部１７０は、既に実行中の制御依頼と両立可能な新規制御依頼について、制御時に満たすべき制限を抽出し、制御依頼及び制限を満たす制御内容を決定する。このため、不要な制御が実行されることがないとともに、新たな制御依頼と過去の制御依頼とを両立する制御が実行されるため、効率的に複数のデバイスの包括的な制御を実施することができる。
【００９５】
なお、上記実施の形態１においては、集約部１６４によって得られた集約結果がメモリ１２０に記憶されるようにしても良い。そして、過去に受け付けられた取得依頼と同一のプロパティ及び集約ルールを含む取得依頼が受け付けられた場合には、メモリ１２０に記憶された集約結果が取得依頼発行元のアプリケーションへ通知されるようにしても良い。これにより、不要な集約処理を省略することができ、制御装置１００における処理負荷を低減することができる。
【００９６】
ただし、複数の制御対象装置２００の数が増減した場合には、メモリ１２０に記憶された集約結果を無効化するようにしても良い。すなわち、例えば制御対象装置２００が増加した場合には、増加した制御対象装置２００が有するプロパティに関するデータの集約結果が変化する可能性があるため、この集約結果がメモリ１２０において無効化又は削除されても良い。同様に、例えば制御対象装置２００が減少した場合には、減少した制御対象装置２００が有するプロパティに関するデータの集約結果がメモリ１２０において無効化又は削除されても良い。
【００９７】
（実施の形態２）
実施の形態２の特徴は、将来発生する可能性が高い制御依頼を推定し、推定された制御依頼を考慮して現在の制御内容を決定する点である。
【００９８】
実施の形態２に係るデバイス制御システムの構成は、実施の形態１（図１）と同様であるため、その説明を省略する。実施の形態２においては、プロセッサ１１０の機能が実施の形態１とは異なる。図１５は、実施の形態２に係るプロセッサ１１０の機能を示すブロック図である。図１５において、図２と同じ部分には同じ符号を付し、その説明を省略する。また、図１５においては、収集部１６０の内部を省略している。図１５に示すプロセッサ１１０は、図２に示すプロセッサ１１０の制御内容決定部１７４に代えて、制御推定部４０１及び制御内容決定部４０２を有する。
【００９９】
制御推定部４０１は、制限抽出部１７３によって制限が抽出された後、制御依頼履歴テーブルを参照して、将来発生する可能性が高い制御依頼を推定する。具体的には、制御推定部４０１は、新規制御依頼と同じプロパティを指定する制御依頼であって、例えば過去１週間などの所定期間内に受け付けられた制御依頼を制御依頼履歴テーブルから取得する。そして、制御推定部４０１は、取得された制御依頼から、当日受け付けられた制御依頼を除外し、残った制御依頼の中で最も高い頻度で発生している制御依頼を特定する。こうして特定された制御依頼は、当日中に再度発生する可能性が高いため、制御推定部４０１は、この制御依頼が将来発生する可能性が高いと推定する。
【０１００】
なお、制御推定部４０１は、他の方法によって将来発生する可能性が高い制御依頼を推定しても良い。例えば、制御推定部４０１は、最近の所定数の制御依頼を選択し、制御依頼履歴テーブルにおいて、選択された制御依頼と同じ順番で制御依頼が発生した部分を特定し、特定された部分の次に発生した制御依頼を将来発生する可能性が高い制御依頼と推定しても良い。
【０１０１】
制御内容決定部４０２は、制限抽出部１７３から通知される制限の下で、新規制御依頼によって指定されるプロパティの値を新規制御依頼に含まれる指定値に変更するための制御内容を決定する。具体的には、制御内容決定部４０２は、新規制御依頼によって指定されるプロパティを有する制御対象装置２００を選択し、選択した制御対象装置２００のプロパティの値をどのように変更するか決定する。このとき、制御内容決定部４０２は、制限抽出部１７３から通知される制限に基づく条件を満たしつつ、制御推定部４０１によって将来発生すると推定された制御依頼を考慮して、プロパティの値を変更する制御対象装置２００を選択する。そして、制御内容決定部４０２は、選択した制御対象装置２００について、制限に基づく条件を満たす範囲で変更後のプロパティの値を決定する。また、制御内容決定部４０２は、決定した制御内容を制御履歴テーブルに格納する。
【０１０２】
制御内容決定部４０２は、プロパティの値を変更する制御対象装置２００を選択する際に、将来発生する可能性が高いと推定された制御依頼を逸脱しないように、制御対象装置２００を選択する。例えば値を２０％分減少させる制御対象装置２００を選択する際、制御内容決定部４０２は、将来発生する可能性が高い制御依頼の制御ルールが「ＭＡＸ」であれば、値を２０％分減少させることにより将来の制御依頼も同時に満たすことが可能な制御対象装置２００を選択する。
【０１０３】
［制御内容決定処理］
次に、制御依頼に応じた制御内容を決定する制御内容決定処理について、図１６に示すフロー図を参照しながら説明する。図１６において、図１１と同じ部分には同じ符号を付し、その詳しい説明を省略する。制御内容決定処理は、制御有無判定部１７２によって新たな制御が必要と判定された場合に、主に制御有無判定部１７２、制限抽出部１７３、制御推定部４０１及び制御内容決定部４０２によって実行される。
【０１０４】
実施の形態１と同様に、データテーブルに記憶されたデータが新規制御依頼を満たしていない場合には、制御有無判定部１７２によって、新たな制御が必要と判定される。そこで、まず、制御有無判定部１７２によって、既に制御が実行されている制御依頼が制御依頼履歴テーブルから抽出される（ステップＳ３０１）。そして、制御有無判定部１７２によって、抽出された制御依頼それぞれと新規制御依頼とが互いに矛盾する制御を依頼するものであるか否かが判定される（ステップＳ３０２）。
【０１０５】
この判定の結果、制御依頼の矛盾がある場合には（ステップＳ３０２Ｙｅｓ）、制御有無判定部１７２によって、新規制御依頼に応じた制御が実行不可能と判断されるため、結果通知部１７６によって、新規制御依頼に応じた制御が失敗した旨が新規制御依頼発行元のアプリケーションへ通知される（ステップＳ３０９）。また、結果通知部１７６によって、新規制御依頼に応じた制御が失敗したという結果が制御依頼履歴テーブルに追記される。
【０１０６】
一方、制御依頼の矛盾がない場合には（ステップＳ３０２Ｎｏ）、制限抽出部１７３によって、新規制御依頼と実行中の制御依頼との組み合わせごとに、新規制御依頼に応じた制御を実行する際の制限が抽出される（ステップＳ３０３）。
【０１０７】
制限抽出部１７３によって制限が抽出されると、制御推定部４０１によって、制御依頼履歴テーブルから過去の所定期間の制御依頼が抽出される（ステップＳ４０１）。具体的には、例えば過去１週間の制御依頼であって、新規制御依頼と同じプロパティの制御を要求する制御依頼が抽出される。そして、制御推定部４０１によって、抽出された過去の制御依頼に基づいて、将来発生する可能性が高い制御依頼が推定される（ステップＳ４０２）。すなわち、例えば過去の制御依頼のうち、当日既に発生した制御依頼以外の制御依頼であって最も頻度が高い指定値を指定する制御依頼が将来発生する可能性が高い制御依頼と推定される。
【０１０８】
制御推定部４０１による推定結果は、制御内容決定部４０２へ通知され、制御内容決定部４０２によって推定結果が用いられることにより、制限を満たしつつ、新規制御依頼に含まれる指定値を達成する制御内容が決定される（ステップＳ４０３）。具体的には、例えば新規制御依頼に含まれる制御ルールが「ＡＶＥ」又は「ＳＵＭ」である場合には、制御内容決定部４０２によって１つ以上の制御対象装置２００が選択され、複数の制御対象装置２００の値の平均値又は合計値が指定値となるように、選択された制御対象装置２００における値が変更される。同様に、例えば新規制御依頼に含まれる制御ルールが「ＯＮＥ」又は「ＭＯＲＥ」である場合には、制御内容決定部４０２によって１つ以上の制御対象装置２００が選択され、選択された制御対象装置２００における値が指定値に変更される。また、例えば新規制御依頼に含まれる制御ルールが「ＭＡＸ」又は「ＭＩＮ」である場合には、制御内容決定部４０２によって１つ以上の制御対象装置２００が選択され、すべての制御対象装置２００の値が指定値以上又は指定値以下となるように、選択された制御対象装置２００における値が変更される。
【０１０９】
ここで、制御内容決定部４０２によって値を変更する制御対象装置２００が選択される際に、制御推定部４０１による推定結果が用いられる。すなわち、新規制御依頼に応じて値を変更することにより、将来発生する可能性が高い制御依頼も同時に満たすことが可能なように制御対象装置２００が選択される。例えば、新規制御依頼に応じて値を２０％分減少させる制御対象装置２００が選択される際、推定結果の制御ルールが「ＭＡＸ」であれば、値を２０％分減少させることにより推定された「ＭＡＸ」の指定値も同時に満たすことが可能な制御対象装置２００が選択される。換言すれば、将来発生すると推定された制御依頼を満たし、かつ、将来発生すると推定された制御依頼を逸脱しないように、新規制御依頼に応じた制御の対象となる制御対象装置２００が選択される。
【０１１０】
なお、制御依頼に含まれる制御ルールによっては、制限抽出部１７３によって、制御量を相殺するという制限が抽出されることがあるが、制御量の相殺のために値が変更される制御対象装置２００も制御推定部４０１の推定結果に応じて選択されても良い。
【０１１１】
このような指針で制御内容決定部４０２によって制御内容が決定され、適正な制御内容が決定されたか否かが判断される。すなわち、制御依頼と制限を満たす制御内容が存在したか否かが判断される（ステップＳ３０５）。この判断の結果、制御依頼と制限を満たす制御内容が存在しない場合には（ステップＳ３０５Ｎｏ）、新規制御依頼に応じた制御が実行不可能であるため、結果通知部１７６によって、新規制御依頼に応じた制御が失敗した旨が新規制御依頼発行元のアプリケーションへ通知される（ステップＳ３０９）。
【０１１２】
一方、制御依頼と制限を満たす制御内容が存在し、適正な制御内容が決定された場合は（ステップＳ３０５Ｙｅｓ）、制御内容決定部４０２によって、決定された制御内容が制御履歴テーブルに格納される。制御履歴テーブルに格納された制御内容は、制御指示部１７５へ通知され、制御指示部１７５によって、制御内容に応じた制御指示が生成され、制御対象装置２００へ送信される（ステップＳ３０６）。そして、制御指示部１７５によって、すべての制御指示に関して制御対象装置２００の制御が成功したか否かが判断される（ステップＳ３０７）。このとき、例えば制御対象装置２００やネットワークの状態によって失敗した制御がある場合には（ステップＳ３０７Ｎｏ）、新規制御依頼に応じたすべての制御が元に戻される。そして、結果通知部１７６によって、新規制御依頼に応じた制御が失敗した旨が新規制御依頼発行元のアプリケーションへ通知される（ステップＳ３０９）。
【０１１３】
一方、すべての制御指示に関して制御が成功した場合には（ステップＳ３０７Ｙｅｓ）、結果通知部１７６によって、新規制御依頼に応じた制御が成功した旨が新規制御依頼発行元のアプリケーションへ通知される（ステップＳ３０８）。また、制御が成功した場合には、制御対象装置２００の制御内容に応じたプロパティの値が変更されるため、制御指示部１７５によって、制御指示の送信先の制御対象装置２００の識別情報と制御内容とが最新のデータとしてデータテーブルに格納される。
【０１１４】
このように、新規制御依頼が受け付けられた場合に、過去の制御依頼履歴から将来発生する可能性が高い制御依頼が推定され、新規制御依頼に応じた制御が実行される際に、将来の制御依頼を満たすような制御内容が決定される。このため、新たな制御依頼と過去の制御依頼とを両立すると同時に、将来発生する可能性がある制御依頼をあらかじめ満たすようにする制御が実行され、効率的に複数のデバイスの包括的な制御を実施することができる。
【０１１５】
次に、制御処理の具体例について、図１７を参照しながら説明する。図１７は、アプリ実行部１５０によって実行される「アプリ＃１」というアプリケーションから制御依頼４１１が発行された場合の制御処理を説明する図である。
【０１１６】
図１７に示すように、「アプリ＃１」から「輝度」の「ＡＶＥ」を「６０％」にすることを要求する制御依頼４１１が発行された場合を考える。なお、図１７に示す制御依頼履歴においては、制御依頼が受け付けられた日時を省略している。上記の制御依頼４１１が受け付けられる場合、輝度のプロパティを有する「デバイスＡ」、「デバイスＢ」、「デバイスＣ」及び「デバイスＤ」の輝度は、データテーブル４２１に示すようになっており、平均値は６５％となっているものとする。また、制御推定部４０１による推定の結果、「アプリ＃２」から「輝度」の「ＭＡＸ」を「７５％」以下にすることを要求する制御依頼４１２が将来発生する可能性が高いと推定されたものとする。
【０１１７】
この場合、制御内容決定部４０２によって、制御依頼４１２が考慮されて制御依頼４１１に応じた制御内容が決定される。すなわち、データテーブル４２１に示す４つの制御対象装置２００の輝度の平均値を６５％から６０％に変更するために、デバイスＡ〜Ｄの輝度の値を合計で２０％分減少させる制御内容が決定される。このとき、制御内容決定部４０２によって制御依頼４１２が考慮されることにより、デバイスＡ〜Ｄのうち制御依頼４１２を満たしていないデバイスＤが選択され、デバイスＤの輝度の値を２０％分減少させる制御内容が決定される。
【０１１８】
これにより、データテーブル４２２の太枠に示すように、デバイスＤの輝度が７０％に減少し、デバイスＡ〜Ｄの輝度の平均値は６０％（＝（４５％＋６５％＋６０％＋７０％）／４）となって制御依頼４１１が満たされる。また、将来発生する可能性が高い制御依頼４１２も同時に満たされており、実際に制御依頼４１２がアプリケーションから発行された場合には、新たな制御を不要とすることができる。
【０１１９】
以上のように、本実施の形態によれば、新規制御依頼が受け付けられた場合に、過去の制御依頼履歴から将来発生する可能性が高い制御依頼が推定され、新規制御依頼に応じた制御が実行される際に、将来の制御依頼を満たすような制御内容が決定される。このため、新たな制御依頼と過去の制御依頼とを両立すると同時に、将来発生する可能性がある制御依頼をあらかじめ満たすようにする制御が実行されるため、効率的に複数のデバイスの包括的な制御を実施することができる。
【０１２０】
なお、上記各実施の形態においては、制御指示部１７５によって制御指示が出された後、データ取得部１６３によって、制御指示の送信先の制御対象装置２００からデータが収集されるようにしても良い。そして、制御履歴テーブルに記憶された制御内容と、データ取得部１６３によって収集されたデータとが比較され、両者が一致する場合に、制御履歴テーブルに記憶された制御内容に成功の結果が追記されるようにしても良い。また、制御履歴テーブルに記憶された制御内容と、データ取得部１６３によって収集されたデータとが一致しない場合には、所定時間が経過後にデータ取得部１６３によって再度データが収集されるようにしても良いし、制御指示部１７５によって再度制御指示が出されるようにしても良い。
【０１２１】
さらに、制御指示が出された後データが収集される前に新たな制御依頼が受け付けられると、データテーブルが最新の状態に更新されておらず、新たな制御依頼が既に満たされているか否かが正確に判定されない。そこで、データテーブルが最新の状態に更新される前に制御対象装置２００のデータが要求された場合には、最新のデータの代わりに制御履歴テーブルに記憶された制御内容が取得されるようにしても良い。
【０１２２】
また、上記各実施の形態においては、制御有無判定部１７２によって、新規制御依頼と既に実行中の制御依頼とが互いに矛盾する制御を依頼するものであるか否かが判定され、矛盾がある場合には新規制御依頼が失敗するものとした。しかし、制御依頼を発行するアプリケーションに優先度を設け、優先度によっては新規制御依頼が成功するようにすることも可能である。すなわち、新規制御依頼と既に実行中の制御依頼とが互いに矛盾する制御を依頼するものである場合、それぞれの制御依頼を発行したアプリケーションの優先度が比較される。そして、新規制御依頼を発行したアプリケーションの優先度の方が高い場合には、例えば制御依頼履歴テーブルにおいて、新規制御依頼と矛盾する実行中の制御依頼の結果が成功から無効に変更される。また、新規制御依頼に応じた制御は、制御依頼の矛盾がない場合と同様に実行され、新規制御依頼の発行元のアプリケーションへ制御依頼が成功した旨の結果が通知されるとともに、実行中であった制御依頼の発行元のアプリケーションへ制御依頼が無効となったことが通知される。これにより、アプリケーションの優先度に応じて柔軟に制御の優先度を設定することができる。
【０１２３】
また、上記各実施の形態においては、制御装置１００のプロセッサ１１０がアプリ実行部１５０を有するものとしたが、アプリ実行部は制御装置１００の外部に設けられても良い。すなわち、制御装置１００と有線又は無線で接続された１つ又は複数の外部装置によって複数のアプリケーションが実行され、取得依頼又は制御依頼が外部装置から制御装置１００に受け付けられるようにしても良い。
【０１２４】
なお、上述したデータの集約処理及び制御処理をコンピュータが実行可能なプログラムとして記述することも可能である。この場合、このプログラムをコンピュータが読み取り可能な記録媒体に格納し、コンピュータに導入することも可能である。コンピュータが読み取り可能な記録媒体としては、例えばＣＤ−ＲＯＭ、ＤＶＤディスク、ＵＳＢメモリなどの可搬型記録媒体や、例えばフラッシュメモリなどの半導体メモリが挙げられる。
【符号の説明】
【０１２５】
１１０  プロセッサ
１２０  メモリ
１３０  通信Ｉ／Ｆ
１５０  アプリ実行部
１６０  収集部
１６１  取得依頼受付部
１６２  収集データ決定部
１６３  データ取得部
１６４  集約部
１６５  結果通知部
１７０  制御部
１７１  制御依頼受付部
１７２  制御有無判定部
１７３  制限抽出部
１７４、４０２  制御内容決定部
１７５  制御指示部
１７６  結果通知部
４０１  制御推定部
【図１】
2017027229.tif 000003
【図２】
2017027229.tif 000004
【図３】
2017027229.tif 000005
【図４】
2017027229.tif 000006
【図５】
2017027229.tif 000007
【図６】
2017027229.tif 000008
【図７】
2017027229.tif 000009
【図８】
2017027229.tif 000010
【図９】
2017027229.tif 000011
【図１０】
2017027229.tif 000012
【図１１】
2017027229.tif 000013
【図１２】
2017027229.tif 000014
【図１３】
2017027229.tif 000015
【図１４】
2017027229.tif 000016
【図１５】
2017027229.tif 000017
【図１６】
2017027229.tif 000018
【図１７】
2017027229.tif 000019