(57)【特許請求の範囲】
【請求項１】
情報処理装置による負荷分散方法であって、該情報処理装置が、
センシングされたイベントに基づくコンテキストの第１の判定処理において連携可能な他の情報処理装置であって、前記他の情報処理装置がセンシング可能なイベントの種別を特定し、
前記第１の判定処理を示す論理ツリーを、前記特定した種別のイベントに基づき判定される部分論理ツリーを含み、前記論理ツリーと条件が等価な他の論理ツリーに変更が可能かを判定し、
前記他の論理ツリーに変更が可能であると判定された場合、前記他の論理ツリーに含まれる前記部分論理ツリーにより示される第２の判定処理を前記他の情報処理装置に委譲する、
ことを特徴とする負荷分散方法。
【請求項２】
前記委譲する処理は、
前記情報処理装置に搭載されるセンサに関する情報と、前記他の情報処理装置に搭載されるセンサに関する情報とに基づいて、前記他の論理ツリーのコストを算出し、
前記算出されたコストが最小となる前記他の論理ツリーに含まれる前記部分論理ツリーにより示される前記第２の判定処理を前記他の情報処理装置に委譲する、
ことを特徴とする請求項１記載の負荷分散方法。
【請求項３】
前記コストは、前記他の論理ツリーにより示される判定処理が実行された場合における前記情報処理装置に搭載されるセンサ及び前記他の情報処理装置に搭載されるセンサの消費電力の合計を示す値である、
ことを特徴とする請求項２記載の負荷分散方法。
【請求項４】
情報処理装置に
センシングされたイベントに基づくコンテキストの第１の判定処理において連携可能な他の情報処理装置であって、前記他の情報処理装置がセンシング可能なイベントの種別を特定し、
前記第１の判定処理を示す論理ツリーを、前記特定した種別のイベントに基づき判定される部分論理ツリーを含み、前記論理ツリーと条件が等価な他の論理ツリーに変更が可能かを判定し、
前記他の論理ツリーに変更が可能であると判定された場合、前記他の論理ツリーに含まれる前記部分論理ツリーにより示される第２の判定処理を前記他の情報処理装置に委譲する、
処理を実行させることを特徴とする負荷分散プログラム。
【請求項５】
センシングされたイベントに基づくコンテキストの第１の判定処理において連携可能な他の情報処理装置であって、前記他の情報処理装置がセンシング可能なイベントの種別を特定する特定部と、
前記第１の判定処理を示す論理ツリーを、前記特定した種別のイベントに基づき判定される部分論理ツリーを含み、前記論理ツリーと条件が等価な他の論理ツリーに変更が可能かを判定する判定部と、
前記他の論理ツリーに変更が可能であると判定された場合、前記他の論理ツリーに含まれる前記部分論理ツリーにより示される第２の判定処理を前記他の情報処理装置に委譲する委譲部と、
を有することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、負荷分散方法、負荷分散プログラム、及び情報処理装置に関する。
【背景技術】
【０００２】
スマートフォンやタブレット等の端末に搭載された複数のセンサによりセンシングされたイベントを、論理積や論理和を組み合わせた論理ツリーによって記述されるルールに基づいて評価し、端末が置かれた周囲の状況を判定する技術が知られている。
【０００３】
また、端末が置かれた周囲の状況は「コンテキスト」とも称され、端末により判定されたコンテキストに応じたアプリケーションをサーバが端末に配信し、端末が配信されたアプリケーションをその場で利用するサービスが提案されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−３４４０１７号公報
【特許文献２】特開平９−２３１１８４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、端末が与えられた論理ツリーを部分論理ツリーに分割して、部分論理ツリーによって記述されるルールの評価を他の端末に行わせることで、端末がコンテキストを判定する処理の負荷を分散させることができる。
【０００６】
しかしながら、分割された部分論理ツリーによって記述されるルールが他の端末で評価できない場合がある。例えば、他の端末に搭載されたセンサ種別等の情報を端末が有していない場合、端末は、他の端末においてセンシングされるイベントで評価可能な部分論理ツリーを分割することができない場合がある。
【０００７】
一つの側面では、本発明は、コンテキストの判定処理の負荷を分散させることで、情報処理装置における判定処理の負荷を軽減することを目的とする。
【課題を解決するための手段】
【０００８】
一態様によれば、情報処理装置による負荷分散方法であって、該情報処理装置が、センシングされたイベントに基づくコンテキストの第１の判定処理において連携可能な他の情報処理装置であって、前記他の情報処理装置がセンシング可能なイベントの種別を特定し、前記第１の判定処理を示す論理ツリーを、前記特定した種別のイベントに基づき判定される部分論理ツリーを含み、前記論理ツリーと条件が等価な他の論理ツリーに変更が可能かを判定し、前記他の論理ツリーに変更が可能であると判定された場合、前記他の論理ツリーに含まれる前記部分論理ツリーにより示される第２の判定処理を前記他の情報処理装置に委譲する、ことを特徴とする負荷分散方法が提供される。
【発明の効果】
【０００９】
一側面によれば、コンテキストの判定処理の負荷を分散させることで、情報処理装置における判定処理の負荷を軽減することができる。
【図面の簡単な説明】
【００１０】
【図１】第１の実施形態に係るアプリ配信システムの全体構成例を示す図。
【図２】アプリ配信について説明する図。
【図３】第１の実施形態に係る端末装置のハードウェア構成例を示す図。
【図４】第１の実施形態に係るアプリ配信システムの機能構成例を示す図。
【図５】第１の実施形態に係る条件情報テーブルの構成例を示す図。
【図６】第１の実施形態に係るアプリ情報テーブルの構成例を示す図。
【図７】第１の実施形態に係るアプリ配信処理における条件情報の取得から部分条件情報の送信までの一連の処理の流れの一例を説明する図。
【図８】第１の実施形態に係る等価条件情報の生成の具体例について説明する図。
【図９】第１の実施形態に係る構成情報の構成例を示す図。
【図１０】第１の実施形態に係る合計コストの算出の具体例について説明する図。
【図１１】第１の実施形態に係るアプリ配信処理におけるイベント情報の取得からアプリケーションの送信までの一連の処理の流れの一例を説明する図。
【図１２】第２の実施形態に係るアプリ配信システムの機能構成例を示す図。
【図１３】第２の実施形態に係る性能情報の構成例を示す図。
【図１４】第２の実施形態に係るアプリ配信処理における条件情報の取得から部分条件情報の送信までの一連の処理の流れの一例を説明する図。
【図１５】第２の実施形態に係る合計コストの算出の具体例について説明する図。
【図１６】第２の実施形態に係るアプリ配信処理におけるイベント情報の取得からアプリケーションの送信までの一連の処理の流れの一例を説明する図。
【発明を実施するための形態】
【００１１】
以下、本発明の実施形態について添付の図面を参照しながら説明する。
【００１２】
＜第１の実施形態＞
［システムの全体構成］
まず、第１の実施形態に係るアプリ配信システムの全体構成について、図１を参照しながら説明する。図１は、第１の実施形態に係るアプリ配信システムの全体構成例を示す図である。本実施形態に係るアプリ配信システム１は、サーバ装置１０と、複数の端末装置２０とを有する。サーバ装置１０と端末装置２０とは、インターネット等のネットワークＮを介して接続されている。
【００１３】
サーバ装置１０は、端末装置２０がコンテキストを判定するための条件情報を送信する。また、サーバ装置１０は、端末装置２０から通知された判定結果に応じたアプリケーションを配信する。
【００１４】
ここで、条件情報とは、端末装置２０がコンテキストを判定するための情報であり、例えば温度や湿度、照度、紫外線量等の条件を論理和や論理積で組み合わせた論理ツリーで表される。また、コンテキストとは、端末装置２０が置かれた周囲の状況のことであり、例えば温度や湿度、照度、紫外線量等で表される。
【００１５】
端末装置２０は、温度センサや湿度センサ等の各種センサが搭載された情報処理装置であり、例えばスマートフォン、タブレット端末、ノート型ＰＣ、デスクトップ型ＰＣ、ゲーム機器、ＰＤＡ（Personal Digital Assistant）等である。端末装置２０は、各種センサのセンシングにより取得されたイベント情報と、サーバ装置１０から受信した条件情報とに基づき、端末装置２０のコンテキストを判定し、判定結果をサーバ装置１０に通知する。これにより、端末装置２０は、コンテキストに応じたアプリケーションをサーバ装置１０から取得する。
【００１６】
ここで、イベント情報とは、各種センサのセンシングにより取得された情報のことであり、例えば温度センサで測定された測定値「２８℃」等である。ただし、イベント情報は、各種センサで測定された測定値に限られず、例えば、センサで測定された測定値に基づき得られる「暑い」や「寒い」等の概念を表す情報であっても良い。
【００１７】
また、本実施形態に係る端末装置２０は、コンテキストを判定する処理の一部を他の端末装置２０に委譲することで、端末装置２０における処理の負荷を分散及び軽減することができる。
【００１８】
なお、以降では、複数の端末装置２０の各々を区別して表す場合は、「端末装置２０ａ」、「端末装置２０ｂ」等と表す。
【００１９】
ここで、本実施形態に係るアプリ配信システム１において、サーバ装置１０から端末装置２０に対してコンテキストに応じたアプリケーションを配信する場合について、図２を参照しながら説明する。図２は、アプリ配信について説明する図である。以降では、コンテキストを判定する処理の一部を委譲する端末装置２０（委譲元の端末装置２０）を「端末装置２０ａ」とする。また、処理の一部が委譲される端末装置２０（委譲先の端末装置２０）を「端末装置２０ｂ」とする。なお、端末装置２０ａには、温度センサ、湿度センサ、照度センサ、及び紫外線センサが搭載されているものとする。また、端末装置２０ｂには、照度センサ及び紫外線センサが搭載されているものとする。
【００２０】
ステップＳ１において、サーバ装置１０は、端末装置２０ａに条件情報を送信する。条件情報は、端末装置２０ａがコンテキストを判定するための情報であり、論理ツリーで表される。ここでは、サーバ装置１０は、図２に示すような論理ツリーで表される条件情報２を端末装置２０ａに送信したものとする。条件情報２は、「温度＞２８℃」かつ「照度＞８０Ｌｘ」であり、「湿度＞８０％」かつ「紫外線量＞１００ｎｍ」である場合に、条件が成立したと判定される条件情報である。
【００２１】
なお、条件情報２には、端末装置２０ｂに搭載されたセンサのセンシングに基づき判定きる部分条件が含まれていない。したがって、条件情報２では、一部の条件を端末装置２０ｂに委譲することはできない。
【００２２】
ステップＳ２において、端末装置２０ａは、条件情報２と条件が等価である条件情報３を生成する。すなわち、端末装置２０ａは、条件情報２において、「照度＞８０Ｌｘ」と「湿度＞８０％」を入れ替えて、条件情報２と条件が等価である条件情報３を生成する。ここで、条件情報３は、端末装置２０ｂに搭載されたセンサのセンシングに基づき判定できる部分条件を含む。
【００２３】
このように、本実施形態の端末装置２０ａは、サーバ装置１０から取得した条件情報２と条件が等価な条件情報３を生成する。これにより、本実施形態の端末装置２０ａは、サーバ装置１０から取得した条件情報２と条件が等価な条件情報であって、一部の条件を端末装置２０ｂで判定することができる条件情報を生成することができる。
【００２４】
ステップＳ３において、端末装置２０ａは、条件情報３のうち、端末装置２０ａに搭載されたセンサのセンシングに基づき判定することができる条件である第２の部分条件情報５を端末装置２０ｂに送信する。すなわち、端末装置２０ａは、条件情報３のうちの第２の部分条件情報５に基づく条件を端末装置２０ｂに委譲する。
【００２５】
そして、端末装置２０ｂは、端末装置２０ａから委譲された第２の部分条件情報５について、端末装置２０ｂに搭載されたセンサのセンシングにより取得されるイベント情報に基づき判定する。また、端末装置２０ａは、条件情報３のうち、端末装置２０ｂに委譲していない第１の部分条件情報４について、端末装置２０ａに搭載されたセンサのセンシングにより取得されるイベント情報に基づき判定する。
【００２６】
このように、本実施形態の端末装置２０aは、条件情報３のうちの一部の条件の判定を端末装置２０ｂに委譲することで、端末装置２０ａにおける条件判定の処理の負荷を軽減することができる。
【００２７】
ステップＳ４において、端末装置２０ｂは、イベント情報に基づき、第２の部分条件情報５が成立したと判定された場合、部分条件が成立したことを端末装置２０ａに通知する。
【００２８】
ステップＳ５において、端末装置２０ａは、部分条件が成立したことを端末装置２０ｂから通知された場合、イベント情報に基づき、第１の部分条件情報４が成立したか否かを判定する。そして、端末装置２０ａは、第１の部分条件情報４が成立したと判定した場合（すなわち、条件情報３が成立したと判定した場合）、条件が成立したことをサーバ装置１０に通知する。
【００２９】
ステップＳ６において、サーバ装置１０は、条件が成立したことを端末装置２０ａから通知された場合、条件情報２に対応するアプリケーションを端末装置２０ａに送信する。これにより、端末装置２０ａには、コンテキストに応じたアプリケーションが配信される。
【００３０】
以上のように、本実施形態に係るアプリ配信システム１では、サーバ装置１０は、端末装置２０に対して、コンテキストを判定するための条件情報を送信する。そして、サーバ装置１０では、端末装置２０において条件情報に基づく条件が成立した場合、条件が成立した条件情報に応じたアプリケーションを送信する。これにより、端末装置２０には、コンテキストに応じたアプリケーションが配信される。
【００３１】
また、本実施形態の端末装置２０では、サーバ装置１０から受信した条件情報における一部の条件の判定処理を他の端末装置２０に委譲する。このように、条件情報の判定処理を複数の端末装置２０に分散させることで、端末装置２０における条件情報の判定処理の負荷を軽減させることができる。
【００３２】
なお、図２の例では、端末装置２０ａが端末装置２０ｂに判定処理の一部を委譲する場合について説明したが、これに限られず、端末装置２０ａは、複数の他の端末装置２０に判定処理の一部を委譲しても良い。例えば、端末装置２０ａは、判定処理の一部を端末装置２０ｂに委譲し、判定処理の他の一部を端末装置２０ｃに委譲しても良い。
【００３３】
また、委譲元の端末装置２０から判定処理の一部を委譲された委譲先の端末装置２０は、更に、委譲された判定処理の一部を他の端末装置２０に委譲しても良い。
【００３４】
更に、委譲先の端末装置２０等は、ネットワークＮに接続されている必要はなく、例えばＢｌｕｅｔｏｏｔｈ（登録商標）やＲＦＩＤ（Radio Frequency Identifier）等の無線通信により、委譲元の端末装置２０と接続されていても良い。また、委譲元の端末装置２０と委譲先の端末装置２０とは、例えばＵＳＢ（Universal Serial Bus）ケーブル等により有線で接続されていても良い。
【００３５】
［ハードウェア構成］
次に、本実施形態に係るアプリ配信システム１のハードウェア構成について、説明する。なお、サーバ装置１０は、端末装置２０と同様のハードウェア構成を有している。このため、以下では、主に、端末装置２０のハードウェア構成について、図３を参照しながら説明するものとする。図３は、第１の実施形態に係る端末装置のハードウェア構成例を示す図である。
【００３６】
端末装置２０は、入力装置１０１、表示装置１０２、外部Ｉ／Ｆ１０３、ＲＡＭ（Random Access Memory）１０４、ＲＯＭ（Read Only Memory）１０５、ＣＰＵ（Central Processing Unit）１０６、通信Ｉ／Ｆ１０７、記憶装置１０８、及びセンサ１０９を備える。これらの各ハードウェア構成は、それぞれがバスＢで相互に接続されている。
【００３７】
入力装置１０１は、キーボードやマウス、タッチパネル等を含み、端末装置２０に各操作信号を入力するのに用いられる。表示装置１０２は、ディスプレイ等を含み、各種の処理結果を表示する。なお、サーバ装置１０では、入力装置１０１及び／又は表示装置１０２は、必要なときに接続して利用する形態であってもよい。
【００３８】
外部Ｉ／Ｆ１０３は、外部装置とのインタフェースである。外部装置には、記録媒体１１０等がある。これにより、端末装置２０は、外部Ｉ／Ｆ１０３を介して記録媒体１１０の読み取り及び／又は書き込みを行うことができる。なお、記録媒体１１０には、
ＣＤ（Compact Disk）、ＤＶＤ（Digital Versatile Disk）、ＳＤメモリカード(SD memory card）、ＵＳＢメモリ等がある。
【００３９】
ＲＡＭ１０４は、プログラムやデータを一時保存する揮発性の半導体メモリである。ＲＯＭ１０５は、電源を切ってもデータ保持することができる不揮発性の半導体メモリである。ＣＰＵ１０６は、例えば記憶装置１０８やＲＯＭ１０５等からプログラムやデータをＲＡＭ１０４上に読み出し、各種処理を実行する演算装置である。
【００４０】
通信Ｉ／Ｆ１０７は、端末装置２０をネットワークＮに接続するためのインタフェースである。これにより、端末装置２０は、サーバ装置１０とデータ通信を行うことができる。
【００４１】
記憶装置１０８は、プログラムやデータを格納している不揮発性のメモリであり、例えばＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）等である。格納されるプログラムやデータには、端末装置２０の全体を制御する基本ソフトウェアであるＯＳ（Operating System）やＯＳ上で動作する各種プログラム（例えば、本実施形態を実現するプログラム）等がある。
【００４２】
センサ１０９は、例えば温度センサ、湿度センサ、照度センサ、振動センサ、紫外線センサ等の各種センサである。端末装置２０は、センサ１０９のセンシングにより取得されるイベント情報に基づきコンテキストを判定する。なお、サーバ装置１０は、センサ１０９を備えていなくても良い。
【００４３】
本実施形態に係る端末装置２０は、図３に示すハードウェア構成により、後述する各種処理が実現される。
【００４４】
［機能構成］
次に、本実施形態に係るアプリ配信システム１の機能構成について、図４を参照しながら説明する。図４は、第１の実施形態に係るアプリ配信システムの機能構成例を示す図である。
【００４５】
サーバ装置１０は、条件送信部１１及びアプリ送信部１２を有する。これら各部は、サーバ装置１０にインストールされたプログラムが、ＣＰＵに実行させる処理により実現される。また、サーバ装置１０は、記憶部１３を有する。記憶部１３は、サーバ装置１０が備える記憶装置、又はサーバ装置１０にネットワークＮを介して接続される記憶装置等を用いて実現可能である。
【００４６】
条件送信部１１は、後述する条件情報テーブル１３１から条件情報を取得し、端末装置２０に送信する。
【００４７】
アプリ送信部１２は、後述するアプリ情報テーブル１３２に基づいて、端末装置２０のコンテキストに応じたアプリケーションを端末装置２０に送信する。すなわち、アプリ送信部１２は、条件情報に基づく条件成立の通知を端末装置２０から受信した場合、この条件情報に対応するアプリケーションを端末装置２０に送信する。
【００４８】
記憶部１３は、条件情報テーブル１３１、アプリ情報テーブル１３２、及びアプリケーション１３３を記憶する。アプリケーション１３３は、条件情報に基づく条件の成立に応じて端末装置２０に送信され、端末装置２０で実行されるプログラムである。なお、条件情報テーブル１３１及びアプリ情報テーブル１３２の詳細については後述する。
【００４９】
端末装置２０は、委譲処理部２１及び判定処理部２２を有する。これら各部は、端末装置２０にインストールされたプログラムが、ＣＰＵ１０６に実行させる処理により実現される。また、端末装置２０は、記憶部２３を有する。記憶部２３は、記憶装置１０８を用いて実現可能である。
【００５０】
委譲処理部２１は、サーバ装置１０から受信した条件情報に含まれる一部の条件の判定処理を他の端末装置２０に委譲するための処理を行う。判定処理部２２は、条件情報等に基づく条件の判定処理を行う。記憶部２３は、構成情報２３１を記憶する。構成情報２３１の詳細については後述する。
【００５１】
委譲処理部２１は、等価条件生成部２１１、情報取得部２１２、委譲判定部２１３、コスト算出部２１４、条件分割部２１５、及び条件委譲部２１６を有する。
【００５２】
等価条件生成部２１１は、サーバ装置１０から受信した条件情報に基づき、この条件情報と条件が等価な等価条件情報を生成する。
【００５３】
情報取得部２１２は、他の端末装置２０の構成情報２３１を取得する。ここで、構成情報２３１とは、端末装置２０が備えるセンサ１０９の種別やセンサ１０９によりセンシングした場合のコストに関する情報である。なお、コストは、例えば、センサ１０９によりセンシングした場合における単位時間あたりの消費電力である。
【００５４】
委譲判定部２１３は、情報取得部２１２により取得された構成情報２３１に基づき、等価条件情報に含まれる一部の条件の判定処理を他の端末装置２０に委譲することができるか否かを判定する。
【００５５】
コスト算出部２１４は、情報取得部２１２により取得された構成情報２３１に基づき、等価条件情報の合計コストを算出する。ここで、合計コストとは、例えば、コストが単位時間あたりの消費電力である場合、等価条件情報に基づく判定処理において各端末装置２０が単位時間あたりに消費する電力の合計である。
【００５６】
条件分割部２１５は、コスト算出部２１４により算出された合計コストに基づき、等価条件情報を部分条件情報に分割する。
【００５７】
条件委譲部２１６は、条件分割部２１５により分割された部分条件情報を他の端末装置２０に送信する。これにより、端末装置２０は、サーバ装置１０から受信した条件情報に基づく条件の判定処理の一部を他の端末装置２０に委譲することができる。
【００５８】
判定処理部２２は、イベント情報取得部２２１、条件判定部２２２、及び結果通知部２２３を有する。
【００５９】
イベント情報取得部２２１は、センサ１０９からイベント情報を取得する。なお、イベント情報取得部２２１は、センサ１０９で測定された測定値に基づく情報をイベント情報として取得しても良い。例えば、イベント情報取得部２２１は、温度センサで測定された測定値「２８℃」に基づく情報「暑い」をイベント情報として取得しても良い。
【００６０】
条件判定部２２２は、イベント情報取得部２２１により取得されたイベント情報に基づき、部分条件情報に基づく条件の判定を行う。
【００６１】
結果通知部２２３は、委譲元の端末装置２０において、条件判定部２２２により部分条件情報に基づく条件が成立すると判定された場合、判定結果をサーバ装置１０に送信する。また、結果通知部２２３は、委譲先の端末装置２０において、条件判定部２２２により部分条件情報に基づく条件が成立すると判定された場合、判定結果を委譲元の端末装置２０に送信する。
【００６２】
ここで、条件情報テーブル１３１の詳細について、図５を参照しながら説明する。図５は、第１の実施形態に係る条件情報テーブルの構成例を示す図である。
【００６３】
図５に示す条件情報テーブル１３１は、端末装置２０がコンテキストを判定するための条件情報が、条件情報を一意に識別する条件ＩＤと対応付けられて記憶されている。ここで、条件情報は、論理和や論理積を組み合わせた論理ツリーで表される。このため、例えば、「温度＞２８℃」を記号「Ａ」、「湿度＞８０％」を記号「Ｂ」、「振動量＞５０ｄＢ」を記号「Ｃ」等と表すことで、論理ツリーは論理式で表すことができる。
【００６４】
例えば、図５に示すように、（「温度＞２８℃」かつ「湿度＞８０％」）または「振動量＞５０ｄＢ」を表す論理ツリーは、論理積を「・」、論理和を「＋」とすれば、「Ａ・Ｂ＋Ｃ」と表すことができる。したがって、以降では、このように表された論理式を論理ツリーと同一視して、条件情報は、論理式で表されたものとして説明する。
【００６５】
次に、アプリ情報テーブル１３２の詳細について、図６を参照しながら説明する。図６は、第１の実施形態に係るアプリ情報テーブルの構成例を示す図である。
【００６６】
図６に示すアプリ情報テーブル１３２は、アプリケーション１３３に含まれるアプリケーション名が、条件ＩＤと対応付けられて記憶されている。これにより、サーバ装置１０は、端末装置２０から条件情報に基づく条件成立の通知を受信すると、この条件情報の条件ＩＤに対応するアプリケーション１３３を端末装置２０に配信することができる。
【００６７】
［アプリ配信処理］
次に、第１の実施形態に係るアプリ配信システム１のアプリ配信処理について説明する。まず、アプリ配信処理において、端末装置２０がサーバ装置１０から条件情報を取得し、この条件情報に基づく条件の判定処理の一部を他の端末装置２０に委譲するまでの処理について、図７を参照しながら説明する。図７は、第１の実施形態に係るアプリ配信処理における条件情報の取得から部分条件情報の送信までの一連の処理の流れの一例を説明する図である。なお、以降では、委譲元の端末装置２０を「端末装置２０ａ」、委譲先の端末装置２０を「端末装置２０ｂ」及び「端末装置２０ｃ」として説明する。
【００６８】
まず、サーバ装置１０は、条件送信部１１により、記憶部１３の条件情報テーブル１３１から条件ＩＤ及び条件情報を取得し（ステップＳ７０１）、端末装置２０ａに送信する（ステップＳ７０２）。
【００６９】
なお、サーバ装置１０は、例えば、端末装置２０ａから取得した位置情報やユーザＩＤ等に基づいて条件情報テーブル１３１から条件ＩＤ及び条件情報を取得し、端末装置２０ａに送信すれば良い。また、サーバ装置１０は、例えば、条件情報テーブル１３１に記憶されているすべての条件ＩＤ及び条件情報を端末装置２０ａに送信しても良い。
【００７０】
次に、端末装置２０ａは、等価条件生成部２１１により、受信した条件情報に基づき等価条件情報を生成する（ステップＳ７０３）。なお、等価条件情報とは、論理式として条件情報と条件が等価なものを言う。なお、等価条件生成部２１１は、例えば、条件情報が示す論理式を主加法標準形に展開することで、等価条件情報を生成することができる。ただし、等価条件情報を生成する方法はこれに限られず、等価条件生成部２１１は、例えば、カルノー図を用いて、等価条件情報を生成しても良い。
【００７１】
ここで、主加法標準形に展開して等価条件情報を生成する具体例について、図８を参照しながら説明する。図８は、第１の実施形態に係る等価条件情報の生成の具体例について説明する図である。
【００７２】
Ｓ１１）まず、端末装置２０ａは、サーバ装置１０から条件情報「Ａ・Ｂ＋Ｃ」を受信したものとする。このとき、等価条件生成部２１１は、基本展開式を用いて、条件情報「Ａ・Ｂ＋Ｃ」を図８に示すように主加法標準形に展開する。
【００７３】
Ｓ１２）次に、等価条件生成部２１１は、主加法標準形に展開された条件情報「Ａ・Ｂ＋Ｃ」から対称式となっている変数のペア（組）を特定する。図８では、網掛けで示されている変数ＡとＢが対称式となっている。このように、主加法標準形に展開された論理式において対称式となっている変数の組は、元の論理式において変数同士を入れ替えても条件が変わらない。
【００７４】
Ｓ１３）等価条件生成部２１１は、特定された変数の組について、変数同士を入れ替えて等価条件情報を生成する。図８では、変数ＡとＢを入れ替えて、条件情報「Ａ・Ｂ＋Ｃ」の等価条件情報「Ｂ・Ａ＋Ｃ」が生成される。なお、図８の例では、Ｓ１２において対称式となっている変数の組が１つであったが、対称式となっている変数の組が複数ある場合は、一の条件情報に対して複数の等価条件情報が生成される。なお、以降では、元の論理式で示される条件情報と、等価条件生成部２１１により生成された等価条件情報とを、区別せずに、「等価条件情報」とも表す。
【００７５】
図７の説明に戻る。端末装置２０ａは、情報取得部２１２により、端末装置２０ｂ及び端末装置２０ｃから構成情報２３１を取得する（ステップＳ７０４）。なお、以降では、端末装置２０ａの構成情報２３１を「構成情報２３１ａ」、端末装置２０ｂの構成情報２３１を「構成情報２３１ｂ」、端末装置２０ｃの構成情報２３１を「構成情報２３１ｃ」と表して区別する。したがって、情報取得部２１２は、端末装置２０ｂ及び端末装置２０ｃからそれぞれ構成情報２３１ｂ及び構成情報２３１ｃを取得する。
【００７６】
ここで、端末装置２０ａの記憶部２３に記憶されている構成情報２３１ａと、ステップＳ７０４で取得した構成情報２３１ｂ及び構成情報２３１ｃについて、図９を参照しながら説明する。図９は、第１の実施形態に係る構成情報の構成例を示す図である。
【００７７】
図９に示す構成情報２３１ａ〜２３１ｃは、端末装置２０に搭載されたセンサのセンサ種別が、単位時間あたりの消費電力を示すコストと対応付けられて記憶されている。
【００７８】
すなわち、構成情報２３１ａでは、端末装置２０ａに搭載されたセンサのセンサ種別と、それぞれのセンサのコストとが対応付けられている。同様に、構成情報２３１ｂ及び構成情報２３１ｃでは、それぞれ、端末装置２０ａ及び端末装置２０ｃに搭載されたセンサのセンサ種別と、センサのコストとが対応付けられている。
【００７９】
端末装置２０ａは、図９に示すような構成情報２３１ｂ及び２３１ｃを端末装置２０ｂ及び２０ｃから取得することで、端末装置２０ｂ及び２０ｃでセンシング可能なイベント種別及びセンシングにより生じるコストに関する情報を取得することができる。
【００８０】
ここで、図９の例では、コストとして単位時間あたりの消費電力を用いたが、これに限られず、コストとして、例えば、センサ１０９の精度に関する情報等を用いても良い。この場合には、精度が高いセンサ１０９のコストを低く、精度が低いセンサ１０９のコストを高く設定すれば良い。
【００８１】
なお、図７では、端末装置２０ａは、端末装置２０ｂ及び２０ｃからそれぞれ構成情報２３１ｂ及び２３１ｃを取得したが、これに限られず、構成情報２３１ｂ及び２３１ｃは端末装置２０ａの記憶部２３に予め記憶されていても良い。また、端末装置２０ａは、サーバ装置１０から構成情報２３１ｂ及び２３１ｃを取得しても良い。
【００８２】
図７の説明に戻る。端末装置２０ａは、委譲判定部２１３により、構成情報２３１ｂ及び２３１ｃに基づき、等価条件情報に基づく条件の判定処理の一部を端末装置２０ｂ、端末装置２０ｃに委譲可能であるか否かを判定する（ステップＳ７０５）。
【００８３】
具体的には、委譲判定部２１３は、構成情報２３１ｂ及び２３１ｃのセンサ種別に基づき、等価条件情報に基づく条件の判定処理の一部を端末装置２０ｂ及び２０ｃに委譲可能であるか否かを判定する。
【００８４】
例えば、構成情報２３１ｂにより、端末装置２０ｂには照度センサ及び紫外線センサが搭載されている。したがって、等価条件情報に「Ｄ＋Ｅ」又は「Ｄ・Ｅ」が含まれている場合、委譲判定部２１３は、等価条件情報に基づく条件の判定処理の一部を端末装置２０ｂに委譲可能であると判定する。なお、記号「Ｄ」は、例えば「照度＞８０Ｌｘ」を表し、記号「Ｅ」は、例えば「紫外線量＞１００ｎｍ」を表す。
【００８５】
同様に、構成情報２３１ｃにより、端末装置２０ｃには湿度センサ及び振動センサが搭載されている。したがって、等価条件情報に「Ｂ＋Ｃ」又は「Ｂ・Ｃ」が含まれている場合、委譲判定部２１３は、等価条件情報に基づく条件の判定処理の一部を端末装置２０ｃに委譲可能であると判定する。なお、記号「Ｂ」及び記号「Ｃ」は、上述したように、それぞれ、例えば「湿度＞８０％」及び「振動量＞５０ｄＢ」を表す。
【００８６】
なお、ステップＳ７０５において、委譲判定部２１３により、端末装置２０ｂ及び２０ｃのいずれにも条件の判定処理の一部を委譲することができないと判定された場合、処理を終了させる。この場合、端末装置２０ａは、条件情報に基づく条件の判定処理を端末装置２０ａ及び２０ｂに委譲させない。
【００８７】
一方、ステップＳ７０５において、委譲判定部２１３により、端末装置２０ｂ及び２０ｃのいずれかに条件の判定処理の一部を委譲することができると判定された場合、端末装置２０は、以降のステップＳ７０６〜Ｓ７０９の処理を実行する。なお、以降では、ステップＳ７０５において、委譲判定部２１３により、端末装置２０ｂ及び２０ｃのいずれにも条件の判定処理の一部を委譲することができると判定されたものとして説明する。
【００８８】
端末装置２０ａは、コスト算出部２１４により、構成情報２３１ａ〜２３１ｃに基づき、等価条件情報の合計コストを算出する（ステップＳ７０６）。
【００８９】
ここで、等価条件情報の合計コストを算出する具体例について、図１０を参照しながら説明する。図１０は、第１の実施形態に係る合計コストの算出の具体例について説明する図である。
【００９０】
図１０の例では、等価条件情報は「（Ａ・Ｂ）・Ｃ・（Ｄ＋（Ｅ＋Ｆ））」、「（Ａ・Ｂ）・Ｃ・（Ｆ＋（Ｄ＋Ｅ））」、「（Ａ・Ｂ）・Ｃ・（Ｅ＋（Ｄ＋Ｆ））」、・・・、「（Ｂ・Ｃ）・Ａ・（Ｆ＋（Ｄ＋Ｅ））」、「（Ｂ・Ｃ）・Ａ・（Ｅ＋（Ｄ＋Ｆ））」であるとする。コスト算出部２１４は、これらの等価条件情報について、構成情報２３１ａ〜２３１ｃに基づき、合計コストを算出する。
【００９１】
等価条件情報「（Ａ・Ｂ）・Ｃ・（Ｄ＋（Ｅ＋Ｆ））」は、端末装置２０ｂ及び２０ｃに条件の判定処理の一部を委譲することができない。したがって、コスト算出部２１４は、構成情報２３１ａのコストに基づき合計コストを算出する。すなわち、コスト算出部２１４は、端末装置２０ａにおいて「Ａ」、「Ｂ」、「Ｃ」、「Ｄ」、「Ｅ」、及び「Ｆ」に対応するイベント情報が取得されるセンサ種別のコストを加算する。これにより、コスト算出部２１４は、合計コスト０．９＋０．８＋１．２＋０．７＋０．７＋１．０＝５．３を算出する。
【００９２】
また、等価条件情報「（Ａ・Ｂ）・Ｃ・（Ｆ＋（Ｄ＋Ｅ））」は、図１０において網掛けで示した「（Ｄ＋Ｅ）」の条件の判定処理を端末装置２０ｂに委譲可能である。したがって、コスト算出部２１４は、構成情報２３１ａ及び構成情報２３１ｂのコストに基づき合計コストを算出する。すなわち、コスト算出部２１４は、端末装置２０ａにおいて「Ａ」、「Ｂ」、「Ｃ」、及び「Ｆ」に対応するイベント情報が取得されるセンサ種別のコストと、端末装置２０ｂにおいて「Ｄ」及び「Ｅ」に対応するイベント情報が取得されるセンサ種別のコストとを加算する。これにより、コスト算出部２１４は、合計コスト０．９＋０．８＋１．２＋０．３＋０．３＋１．０＝４．５を算出する。
【００９３】
同様に、等価条件情報「（Ｂ・Ｃ）・Ａ・（Ｆ＋（Ｄ＋Ｅ））」は、図１０において網掛けで示した「（Ｂ・Ｃ）」の条件の判定処理は端末装置２０ｃに委譲可能であり、「（Ｄ＋Ｅ）」の条件の判定処理は端末装置２０ｂに委譲可能である。したがって、コスト算出部２１４は、構成情報２３１ａ〜構成情報２３１ｃのコストに基づき合計コスト４．４を算出する。他の等価条件情報についても同様に合計コストが算出される。
【００９４】
なお、図１０の例では、コスト算出部２１４は、各等価条件情報の合計コストを算出したが、これに限られない。コスト算出部２１４は、例えば、ステップＳ７０５において委譲判定部２１３により他の端末装置２０に委譲可能であると判定された等価条件情報の合計コストを算出しても良い。
【００９５】
図７に戻る。端末装置２０ａは、条件分割部２１５により、合計コストが最小である等価条件情報を特定する（ステップＳ７０７）。例えば、図１０の例では、条件分割部２１５は、等価条件情報「（Ｂ・Ｃ）・Ａ・（Ｆ＋（Ｄ＋Ｅ））」を合計コストが最小である等価条件情報と特定する。
【００９６】
次に、端末装置２０ａは、条件分割部２１５により、特定された等価条件情報を部分条件情報に分割する（ステップＳ７０８）。そして、端末装置２０ａは、条件委譲部２１６により、分割された部分条件情報を他の端末装置２０に送信する（ステップＳ７０９）。
【００９７】
具体的には、等価条件情報「（Ｂ・Ｃ）・Ａ・（Ｆ＋（Ｄ＋Ｅ））」が特定された場合、条件分割部２１５は、この等価条件情報を第１の部分条件情報「Ｘ＝Ｙ・Ａ・（Ｆ＋Ｚ）」、第２の部分条件情報「Ｙ＝Ｄ＋Ｅ」、及び第３の部分条件情報「Ｚ＝Ｂ・Ｃ」に分割する。
【００９８】
そして、条件委譲部２１６は、第２の部分条件情報及び第３の部分条件情報をそれぞれ端末装置２０ｂ及び端末装置２０ｃに送信する。これにより、端末装置２０ａは、第２の部分条件情報に基づく条件の判定処理を端末装置２０ｂに委譲することができる。また、端末装置２０ａは、第３の部分条件情報に基づく条件の判定処理を端末装置２０ｃに委譲することができる。
【００９９】
以上により、本実施形態の端末装置２０は、サーバ装置１０から受信した条件情報に基づく条件の判定処理の一部を他の端末装置２０に委譲することができる。しかも、端末装置２０は、条件情報に基づき生成された等価条件情報のうち、合計コストが最小となる等価条件情報を用いることで、センサ１０９の消費電力を抑えることができる。なお、コストとして、センサ１０９の精度に関する情報が用いられる場合には、複数の端末装置２０において、精度が高いセンサ１０９を用いてコンテキストの判定処理を行うことができるようになる。このため、この場合には、コンテキストの判定処理の精度を向上させることができるようになる。
【０１００】
なお、図７では、端末装置２０ａが端末装置２０ｂ及び２０ｃに判定処理の一部を委譲する場合について説明したが、例えば、委譲元の端末装置２０において、委譲先の端末装置２０を一覧等からユーザが選択できるようにしても良い。
【０１０１】
次に、アプリ配信処理において、端末装置２０ａにおける条件の判定処理の結果に応じて、サーバ装置１０がアプリケーション１３３を配信する処理について、図１１を参照しながら説明する。図１１は、第１の実施形態に係るアプリ配信処理におけるイベント情報の取得からアプリケーションの送信までの一連の処理の流れの一例を説明する図である。なお、以降では、端末装置２０ａは、端末装置２０ｂ及び２０ｃに対して、それぞれ第２の部分条件情報に基づく条件の判定処理及び第３の部分条件情報に基づく条件の判定処理を委譲したものとして説明する。したがって、端末装置２０ａは、第１の部分条件情報に基づく条件の判定処理を行う。
【０１０２】
端末装置２０ｂ及び２０ｃは、それぞれイベント情報取得部２２１により、イベント情報を取得する（Ｓ１１０１）。すなわち、端末装置２０ｂは、イベント情報取得部２２１により、照度センサのセンシングにより取得されたイベント情報と、紫外線センサのセンシングにより取得されたイベント情報とを取得する。同様に、端末装置２０ｂは、イベント情報取得部２２１により、湿度センサのセンシングにより取得されたイベント情報と、振動センサのセンシングにより取得されたイベント情報とを取得する。
【０１０３】
次に、端末装置２０ｂ及び２０ｃは、それぞれ条件判定部２２２により、部分条件情報に基づく条件が成立したか否かを判定する（ステップＳ１１０２）。
【０１０４】
すなわち、端末装置２０ｂは、条件判定部２２２により、取得したイベント情報に基づき、第２の部分条件情報に基づく条件が成立したか否かを判定する。例えば、端末装置２０ｂの条件判定部２２２は、照度センサから取得したイベント情報が「照度＞８０Ｌｘ」を示す情報であるか、又は紫外線センサから取得したイベント情報が「紫外線量＞１００ｎｍ」を示す情報である場合、条件が成立したと判定する。
【０１０５】
同様に、端末装置２０ｃは、条件判定部２２２により、取得したイベント情報に基づき、第３の部分条件情報に基づく条件が成立したか否かを判定する。例えば、端末装置２０ｃの条件判定部２２２は、湿度センサから取得したイベント情報が「湿度＞８０％」を示す情報であり、かつ、振動センサから取得したイベント情報が「振動量＞５０ｄＢ」を示す情報である場合、条件が成立したと判定する。
【０１０６】
ステップＳ１１０２において、部分条件情報に基づく条件が成立しないと判定された場合、端末装置２０ｂ及び２０ｃは、ステップＳ１１０１に戻る。
【０１０７】
ステップＳ１１０２において、部分条件情報に基づく条件が成立したと判定された場合、端末装置２０ｂ及び２０ｃは、それぞれ結果通知部２２３により、部分条件情報に基づく条件が成立したことを示す結果を端末装置２０ａに通知する（ステップＳ１１０３）。
【０１０８】
すなわち、端末装置２０ｂの結果通知部２２３は、第２の部分条件情報「Ｙ＝Ｄ＋Ｅ」に基づく条件が成立したことを示す通知を端末装置２０ａに通知する。同様に、端末装置２０ｃの結果通知部２２３は、第３の部分条件情報「Ｚ＝Ｂ・Ｃ」に基づく条件が成立したことを示す通知を端末装置２０ａに通知する。このように、端末装置２０ｂ及び２０ｃは、委譲元の端末装置２０から委譲された条件の判定処理において条件が成立した場合、条件が成立したことを委譲元の端末装置２０に通知する。
【０１０９】
端末装置２０ａは、端末装置２０ｂ及び２０ｃから結果通知を受信すると、イベント情報取得部２２１により、イベント情報を取得する（ステップＳ１１０４）。すなわち、端末装置２０ａは、イベント情報取得部２２１により、温度センサのセンシングにより取得されたイベント情報と、ＣＯ２センサのセンシングにより取得されたイベント情報とを取得する。一方で、端末装置２０ａのイベント情報取得部２２１は、端末装置２０ｂ及び２０ｃに委譲した条件を判定するためのイベント情報は取得しなくても良い。このため、端末装置２０ａは、例えば、湿度センサ、振動センサ、照度センサ、及び紫外線センサ等には通電しなくても良い。
【０１１０】
なお、ステップＳ１１０４において、端末装置２０ａは、端末装置２０ｂ又は端末装置２０ｃのいずれか一方から結果通知を受信した場合には、イベント情報を取得しなくても良い。すなわち、委譲元の端末装置２０は、すべての委譲先の端末装置２０から結果通知を受信した場合に、センサ１０９からイベント情報を取得するようにしても良い。
【０１１１】
次に、端末装置２０ａは、条件判定部２２２により、第１の部分条件情報に基づく条件が成立したか否かを判定する（ステップＳ１１０５）。
【０１１２】
すなわち、端末装置２０ａは、例えば、取得したイベント情報と、端末装置２０ｂ及び２０ｃから受信した結果通知とに基づき、第１の部分条件情報「Ｘ＝Ｙ・Ａ・（Ｆ＋Ｚ）」に基づく条件が成立したか否かを判定する。したがって、この場合、条件判定部２２２は、例えば、温度センサから取得したイベント情報が「温度＞２８℃」を示す情報であり、かつ、ＣＯ２センサから取得したイベント情報が記号「Ｆ」で示される「濃度＞１０００ｐｐｍ」を示す情報である場合、条件が成立したと判定する。
【０１１３】
ステップＳ１１０５において、第１の部分条件情報に基づく条件が成立しないと判定された場合、端末装置２０ａは、ステップＳ１１０４に戻る。
【０１１４】
ステップＳ１１０５において、第１の部分条件情報に基づく条件が成立したと判定された場合、端末装置２０ａは、結果通知部２２３により、条件情報に基づく条件が成立したことを示す結果をサーバ装置１０に通知する（ステップＳ１１０６）。ここで、端末装置２０ａからサーバ装置１０に送信する結果通知には、条件情報の条件ＩＤが含まれる。
【０１１５】
サーバ装置１０は、端末装置２０ａから結果通知を受信すると、この結果通知に含まれる条件ＩＤに基づき、アプリ情報テーブル１３２から条件ＩＤに対応するアプリケーション名を取得する。そして、サーバ装置１０は、取得したアプリケーション名に対応するアプリケーション１３３を記憶部１３から取得する（ステップＳ１１０７）。なお、記憶部１３から複数のアプリケーション１３３が取得されても良い。
【０１１６】
次に、サーバ装置１０は、アプリ送信部１２により、取得したアプリケーション１３３を端末装置２０ａに送信する（ステップＳ１１０８）。これにより、端末装置２０に対してアプリケーション１３３が配信される。
【０１１７】
以上のように、本実施形態のアプリ配信システム１では、サーバ装置１０から端末装置２０に対して、端末装置２０のコンテキストに応じたアプリケーション１３３を配信する。これにより、本実施形態のアプリ配信システム１では、端末装置２０が置かれている状況（コンテキスト）に応じた適切なアプリケーション１３３を配信することができる。
【０１１８】
また、本実施形態のアプリ配信システム１では、端末装置２０がコンテキストを判定する判定処理において、他の端末装置２０に判定処理の一部を委譲することができる。これにより、端末装置２０は、他の端末装置２０にコンテキストの判定処理の負荷を分散させて、コンテキストの判定処理の負荷を軽減させることができる。
【０１１９】
＜第２の実施形態＞
次に、第２の実施形態に係るアプリ配信システム１について説明する。第２の実施形態の説明では、第１の実施形態との相違点について説明し、第１の実施形態と同様の機能構成を有するものには第１の実施形態の説明で用いた符号と同様の符号を付し、その説明を省略する。
【０１２０】
本実施形態に係るアプリ配信システム１では、委譲先の端末装置２０における判定処理を委譲元の端末装置２０で取得されたイベント情報に基づき行うものである。また、本実施形態に係るアプリ配信システム１では、端末装置２０の論理演算の性能情報にも基づき合計コストを算出するものである。
【０１２１】
［機能構成］
まず、本実施形態に係るアプリ配信システム１の機能構成について、図１２を参照しながら説明する。図１２は、第２の実施形態に係るアプリ配信システムの機能構成例を示す図である。本実施形態の委譲処理部２１Ａは、情報取得部２１２Ａ及びコスト算出部２１４Ａを有する。また、本実施形態の判定処理部２２Ａは、イベント情報取得部２２１Ａ及び結果通知部２２３Ａを有する。さらに、本実施形態の記憶部２３Ａは、性能情報２３２を有する。
【０１２２】
情報取得部２１２Ａは、他の端末装置２０の構成情報２３１及び性能情報２３２を取得する。ここで、性能情報２３２とは、条件判定部２２２による論理演算の性能に関する情報である。
【０１２３】
コスト算出部２１４Ａは、情報取得部２１２Ａにより取得された構成情報２３１及び性能情報２３２に基づき、等価条件情報の合計コストを算出する。
【０１２４】
イベント情報取得部２２１Ａは、センサ１０９からイベント情報を取得する。また、イベント情報取得部２２１Ａは、取得したイベント情報のうち、委譲先の端末装置２０の判定処理に用いるイベント情報を委譲先の端末装置２０に送信する。
【０１２５】
結果通知部２２３Ａは、委譲先の端末装置２０において、条件判定部２２２による部分条件情報に基づく条件の判定結果を委譲元の端末装置２０に送信する。
【０１２６】
性能情報２３２は、端末装置２０の条件判定部２２２による論理演算の性能に関する情報である。以降では、端末装置２０ａの性能情報２３２を「性能情報２３２ａ」、端末装置２０ｂの性能情報２３２を「性能情報２３２ｂ」、端末装置２０ｃの性能情報２３２を「性能情報２３２ｃ」と表して区別する。
【０１２７】
ここで、性能情報２３２の詳細について、図１３を参照しながら説明する。図１３は、第２の実施形態に係る性能情報の構成例を示す図である。
【０１２８】
図１３に示す性能情報２３２ａ〜２３２ｃは、条件判定部２２２による論理演算の演算種別が、処理時間を示すコストと対応付けられて記憶されている。すなわち、性能情報２３２ａでは、端末装置２０ａの条件判定部２２２における論理和演算の演算時間及び論理積の演算時間がコストとして記憶されている。性能情報２３２ｂ及び２３２ｃについても同様である。
【０１２９】
［アプリ配信処理］
次に、第２の実施形態に係るアプリ配信処理について説明する。まず、アプリ配信処理において、端末装置２０がサーバ装置１０から条件情報を取得し、この条件情報に基づく条件の判定処理の一部を他の端末装置２０に委譲するまでの処理について、図１４を参照しながら説明する。図１４は、第２の実施形態に係るアプリ配信処理における条件情報の取得から部分条件情報の送信までの一連の処理の流れの一例を説明する図である。なお、図１４において、ステップＳ７０１〜Ｓ７０３、ステップＳ７０５、及びステップＳ７０７〜Ｓ７０９の処理は、第１の実施形態と同様であるため、その説明を省略する。
【０１３０】
端末装置２０ａは、情報取得部２１２により、端末装置２０ｂ及び端末装置２０ｃから構成情報２３１及び性能情報２３２を取得する（ステップＳ１４０１）。
【０１３１】
なお、ステップＳ１４０１において、端末装置２０ａは、端末装置２０ｂ及び２０ｃからそれぞれ性能情報２３２ｂ及び２３２ｃを取得したが、これに限られず、性能情報２３２ｂ及び２３２ｃは、端末装置２０ａの記憶部２３に予め記憶されていても良い。また、端末装置２０ａは、サーバ装置１０から性能情報２３２ｂ及び２３２ｃを取得しても良い。
【０１３２】
端末装置２０ａは、コスト算出部２１４Ａにより、構成情報２３１ａ〜２３１ｃ及び性能情報２３２ａ〜２３２ｃに基づき、等価条件情報の合計コストを算出する（ステップＳ１４０２）。
【０１３３】
ここで、等価条件情報の合計コストを算出する具体例について、図１５を参照しながら説明する。図１５は、第２の実施形態に係る合計コストの算出の具体例について説明する図である。本実施形態の合計コストは、端末装置２０ａのセンサ１０９を用いた場合に第１の実施形態と同様の方法により構成情報２３１ａから算出されるコストに、性能情報２３２ａ〜２３２ｃに基づくコストを加えたものである。
【０１３４】
図１５において、等価条件情報「（Ａ・Ｂ）・Ｃ・（Ｄ＋（Ｅ＋Ｆ））」は、論理和を２つ、論理積を３つ含む。したがって、本実施形態の合計コストは、構成情報２３１ａから算出されるコスト５．３に対して、端末装置２０ａにおける論理和のコスト２×０．３、論理積のコスト３×０．４を加えた値「７．１」となる。
【０１３５】
また、等価条件情報「（Ａ・Ｂ）・Ｃ・（Ｆ＋（Ｄ＋Ｅ））」について説明する。等価条件情報「（Ａ・Ｂ）・Ｃ・（Ｆ＋（Ｄ＋Ｅ））」は、図１５において網掛けで示した「（Ｄ＋Ｅ）」の条件の判定処理を端末装置２０ｂに委譲可能である。したがって、本実施形態の合計コストは、構成情報２３１ａから算出されるコスト５．３に対して、端末装置２０ａにおける論理和のコスト１×０．３、論理積のコスト３×０．４、端末装置２０ｂにおける論理和のコスト１×０．１を加えた値「６．９」となる。
【０１３６】
同様に、等価条件情報「（Ｂ・Ｃ）・Ａ・（Ｆ＋（Ｄ＋Ｅ））」について説明する。等価条件情報「（Ｂ・Ｃ）・Ａ・（Ｆ＋（Ｄ＋Ｅ））」は、図１５において網掛けで示した「（Ｂ・Ｃ）」の条件の判定処理を端末装置２０ｃに委譲可能である。また、同様に、「（Ｄ＋Ｃ）」の条件の判定処理を端末装置２０ｂに委譲可能である。したがって、本実施形態の合計コストは、構成情報２３１ａから算出されるコスト５．３に対して、端末装置２０ａにおける論理和のコスト１×０．３、論理積のコスト２×０．４、端末装置２０ｂにおける論理和のコスト１×０．１、端末装置２０ｃにおける論理積のコスト１×０．３を加えた値「６．８」となる。他の等価条件情報についても同様に、本実施形態の合計コストが算出される。
【０１３７】
なお、図１５において算出された合計コストに対して、例えば、端末装置２０ａと、端末装置２０ｂや端末装置２０ｃとの間のネットワーク通信に関するコストを加えても良い。これにより、端末装置２０ａと、端末装置２０ｂや端末装置２０ｃとの間の通信速度等を考慮した合計コストを算出することができる。
【０１３８】
以上により本実施形態の端末装置２０は、サーバ装置１０から受信した条件情報に基づく条件の判定処理の一部を他の端末装置２０に委譲することができる。しかも、本実施形態では、端末装置２０の性能情報２３２に基づく合計コストが最小となる等価条件情報を用いることで、演算処理に要する時間を抑えることができる。
【０１３９】
アプリ配信処理において、端末装置２０ａにおける条件の判定処理の結果に応じて、サーバ装置１０がアプリケーション１３３を配信する処理について、図１６を参照しながら説明する。図１６は、第２の実施形態に係るアプリ配信処理におけるイベント情報の取得からアプリケーションの送信までの一連の処理の流れの一例を説明する図である。なお、図１６において、ステップＳ１１０６〜Ｓ１１０８の処理は、第１の実施形態と同様であるため、その説明を省略する。
【０１４０】
端末装置２０ａは、イベント情報取得部２２１Ａにより、イベント情報を取得する（ステップＳ１６０１）。すなわち、イベント情報取得部２２１Ａは、端末装置２０ａに搭載されたセンサ１０９のセンシングにより取得されたイベント情報を取得する。
【０１４１】
次に、端末装置２０ａは、イベント情報取得部２２１Ａにより、端末装置２０ｂ及び２０ｃにおいて部分条件情報に基づく条件の判定処理に用いるイベント情報を送信する（ステップＳ１６０２）。例えば、端末装置２０ａは、端末装置２０ｂに第２の部分条件情報「Ｙ＝Ｄ＋Ｅ」に基づく条件の判定処理を委譲した場合、照度センサから取得したイベント情報及び紫外線センサから取得したイベント情報を端末装置２０ｂに送信する。同様に、端末装置２０ａは、端末装置２０ｃに第３の部分条件情報「Ｚ＝Ｂ・Ｃ」に基づく条件の判定処理を委譲した場合、湿度センサから取得したイベント情報及び振動センサから取得したイベント情報を端末装置２０ｃに送信する。
【０１４２】
次に、端末装置２０ｂ及び２０ｃは、それぞれ条件判定部２２２により、端末装置２０ａから受信したイベント情報に基づき、部分条件情報に基づく条件が成立したか否かを判定する（ステップＳ１６０３）。そして、端末装置２０ｂ及び２０ｃは、それぞれ結果通知部２２３Ａにより、判定結果を端末装置２０ａに通知する（ステップＳ１６０４）。ここで、本実施形態では、端末装置２０ｂ及び２０ｃは、条件が成立したこと示す結果通知又は条件が成立しなかったことを示す結果通知のいずれかを端末装置２０ａに送信する。
【０１４３】
続いて、端末装置２０ａは、端末装置２０ｂ及び２０ｃから結果通知を受信すると、条件判定部２２２により、取得したイベント情報と、受信した結果通知とに基づき、第１の部分条件情報に基づく条件が成立したか否かを判定する（ステップＳ１６０５）。
【０１４４】
ステップＳ１６０５において、条件が成立しないと判定された場合、端末装置２０ａは、ステップＳ１６０１に戻る。
【０１４５】
ステップＳ１６０５において、条件が成立したと判定された場合、端末装置２０ａは、ステップＳ１１０６の処理を行う。
【０１４６】
以上のように、本実施形態のアプリ配信システム１では、端末装置２０が置かれている状況（コンテキスト）の判定処理の一部が他の端末装置２０に委譲された場合において、委譲元の端末装置２０のセンサ１０９のイベント情報を用いて判定を行うことができる。これにより、委譲先の端末装置２０は、必ずしもセンサ１０９を有している必要がない。
【０１４７】
すなわち、委譲先の端末装置２０には、構成情報２３１にセンサ種別が設定されていれば良く、構成情報２３１に設定されているセンサ種別に対応するセンサ１０９を必ずしも有している必要はない。このように、本実施形態の端末装置２０は、センサ１０９を有していない他の端末装置２０に対して、コンテキストの判定処理の一部を委譲することができる。したがって、端末装置２０は、他の端末装置２０にコンテキストの判定処理の負荷を分散させて、コンテキストの判定処理の負荷を軽減させることができる。
【０１４８】
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【０１４９】
以上の説明に関し、更に以下の項を開示する。
（付記１）
情報処理装置による負荷分散方法であって、該情報処理装置が、
センシングされたイベントに基づくコンテキストの第１の判定処理において連携可能な他の情報処理装置であって、前記他の情報処理装置がセンシング可能なイベントの種別を特定し、
前記第１の判定処理を示す論理ツリーを、前記特定した種別のイベントに基づき判定される部分論理ツリーを含み、前記論理ツリーと条件が等価な他の論理ツリーに変更が可能かを判定し、
前記他の論理ツリーに変更が可能であると判定された場合、前記他の論理ツリーに含まれる前記部分論理ツリーにより示される第２の判定処理を前記他の情報処理装置に委譲する、
ことを特徴とする負荷分散方法。
（付記２）
前記委譲する処理は、
前記情報処理装置に搭載されるセンサに関する情報と、前記他の情報処理装置に搭載されるセンサに関する情報とに基づいて、前記他の論理ツリーのコストを算出し、
前記算出されたコストが最小となる前記他の論理ツリーに含まれる前記部分論理ツリーにより示される前記第２の判定処理を前記他の情報処理装置に委譲する、
ことを特徴とする付記１記載の負荷分散方法。
（付記３）
前記コストは、前記他の論理ツリーにより示される判定処理が実行された場合における前記情報処理装置に搭載されるセンサ及び前記他の情報処理装置に搭載されるセンサの消費電力の合計を示す値である、
ことを特徴とする付記２記載の負荷分散方法。
（付記４）
情報処理装置に
センシングされたイベントに基づくコンテキストの第１の判定処理において連携可能な他の情報処理装置であって、前記他の情報処理装置がセンシング可能なイベントの種別を特定し、
前記第１の判定処理を示す論理ツリーを、前記特定した種別のイベントに基づき判定される部分論理ツリーを含み、前記論理ツリーと条件が等価な他の論理ツリーに変更が可能かを判定し、
前記他の論理ツリーに変更が可能であると判定された場合、前記他の論理ツリーに含まれる前記部分論理ツリーにより示される第２の判定処理を前記他の情報処理装置に委譲する、
処理を実行させることを特徴とする負荷分散プログラム。
（付記５）
前記委譲する処理は、
前記情報処理装置に搭載されるセンサに関する情報と、前記他の情報処理装置に搭載されるセンサに関する情報とに基づいて、前記他の論理ツリーのコストを算出し、
前記算出されたコストが最小となる前記他の論理ツリーに含まれる前記部分論理ツリーにより示される前記第２の判定処理を前記他の情報処理装置に委譲する、
ことを特徴とする付記４記載の負荷分散プログラム。
（付記６）
前記コストは、前記他の論理ツリーにより示される判定処理が実行された場合における前記情報処理装置に搭載されるセンサ及び前記他の情報処理装置に搭載されるセンサの消費電力の合計を示す値である、
ことを特徴とする付記５記載の負荷分散プログラム。
（付記７）
センシングされたイベントに基づくコンテキストの第１の判定処理において連携可能な他の情報処理装置であって、前記他の情報処理装置がセンシング可能なイベントの種別を特定する特定部と、
前記第１の判定処理を示す論理ツリーを、前記特定した種別のイベントに基づき判定される部分論理ツリーを含み、前記論理ツリーと条件が等価な他の論理ツリーに変更が可能かを判定する判定部と、
前記他の論理ツリーに変更が可能であると判定された場合、前記他の論理ツリーに含まれる前記部分論理ツリーにより示される第２の判定処理を前記他の情報処理装置に委譲する委譲部と、
を有することを特徴とする情報処理装置。
（付記８）
前記委譲部は、
前記情報処理装置に搭載されるセンサに関する情報と、前記他の情報処理装置に搭載されるセンサに関する情報とに基づいて、前記他の論理ツリーのコストを算出し、
前記算出されたコストが最小となる前記他の論理ツリーに含まれる前記部分論理ツリーにより示される前記第２の判定処理を前記他の情報処理装置に委譲する、
ことを特徴とする付記７記載の情報処理装置。
（付記９）
前記コストは、前記他の論理ツリーにより示される判定処理が実行された場合における前記情報処理装置に搭載されるセンサ及び前記他の情報処理装置に搭載されるセンサの消費電力の合計を示す値である、
ことを特徴とする付記８記載の情報処理装置。
【符号の説明】
【０１５０】
１        アプリ配信システム
１０      サーバ装置
１１      条件送信部
１２      アプリ送信部
１３      記憶部
２０      端末装置
２１      委譲処理部
２２      判定処理部
２３      記憶部
２１１    等価条件生成部
２１２    情報取得部
２１３    委譲判定部
２１４    コスト算出部
２１５    条件分割部
２１６    条件委譲部
２２１    イベント情報取得部
２２２    条件判定部
２２３    結果通知部
【図１】
0006451482.tif 000002
【図２】
0006451482.tif 000003
【図３】
0006451482.tif 000004
【図４】
0006451482.tif 000005
【図５】
0006451482.tif 000006
【図６】
0006451482.tif 000007
【図７】
0006451482.tif 000008
【図８】
0006451482.tif 000009
【図９】
0006451482.tif 000010
【図１０】
0006451482.tif 000011
【図１１】
0006451482.tif 000012
【図１２】
0006451482.tif 000013
【図１３】
0006451482.tif 000014
【図１４】
0006451482.tif 000015
【図１５】
0006451482.tif 000016
【図１６】
0006451482.tif 000017