(57)【要約】【課題】携帯端末により他の機器を制御する際に、利便性を向上させることが可能なサーバ、機器制御プログラム及び機器制御方法を提供することを目的としている。【解決手段】端末のユーザ毎の状況を示すユーザ状況情報が格納されたユーザ状況情報データベースと、周辺機器の機器識別情報と、ユーザ状況情報と、周辺機器を制御する機器制御アプリケーションとが対応付けられて格納されたアプリデータベースと、端末が取得した機器識別情報と、ユーザ状況情報データベースにおいて端末の端末識別情報から特定されるユーザ状況情報と、を取得する情報取得部と、アプリデータベースにおいて、情報取得部が取得した機器識別情報とユーザ状況情報とが合致する機器制御アプリケーションを選択するアプリ選択部と、を有する。【選択図】図３
2013196223.tif 000002
【特許請求の範囲】
【請求項１】
端末へ周辺機器を制御する機器制御アプリケーションを送信するサーバであって、
前記端末のユーザ毎の状況を示すユーザ状況情報が格納されたユーザ状況情報データベースと、
前記周辺機器の機器識別情報と、ユーザ状況情報と、前記周辺機器を制御する機器制御アプリケーションとが対応付けられて格納されたアプリデータベースと、
前記端末が取得した前記機器識別情報と、前記ユーザ状況情報データベースにおいて前記端末の端末識別情報から特定されるユーザ状況情報と、を取得する情報取得部と、
前記アプリデータベースにおいて、前記情報取得部が取得した前記機器識別情報と前記ユーザ状況情報とが合致する機器制御アプリケーションを選択するアプリ選択部と、を有するサーバ。
【請求項２】
前記ユーザ状況情報データベースは、種類の異なるユーザ状況情報がそれぞれに格納された複数のデータベースを含み、
前記アプリ選択部は、
前記アプリデータベースにおいて、前記複数の前記データベースにおいてそれぞれ特定された前記ユーザ状況情報が合致する機器制御アプリケーションを選択する請求項１記載のサーバ。
【請求項３】
前記アプリデータベースは、前記ユーザ状況情報の種類を特定する情報を含み、
前記情報取得部は、
前記アプリデータベースにおいて特定された種別のユーザ状況情報が格納されたデータベースから前記ユーザ状況情報を特定して取得する請求項２記載のサーバ。
【請求項４】
コンピュータに、
端末が取得した周辺機器の機器識別情報と、前記端末のユーザ毎の状況を示すユーザ状況情報が格納されたユーザ状況情報データベースにおいて前記端末の端末識別情報から特定されるユーザ状況情報と、を取得する情報取得処理と、
前記機器識別情報と、ユーザ状況情報と、前記周辺機器を制御する機器制御アプリケーションとが対応付けられて格納されたアプリデータベースにおいて、前記情報取得処理で取得した前記機器識別情報と、前記ユーザ状況情報とが合致する機器制御アプリケーションを選択する選択処理と、を実行させる機器制御プログラム。
【請求項５】
コンピュータが、
端末が取得した周辺機器の機器識別情報と、前記端末のユーザ毎の状況を示すユーザ状況情報が格納されたユーザ状況情報データベースにおいて前記端末の端末識別情報により特定されるユーザ状況情報とを取得し、
周辺機器の機器識別情報と、ユーザ状況情報と、前記周辺機器を制御する機器制御アプリケーションとが対応付けられて格納されたアプリデータベースにおいて、取得した前記機器識別情報と前記ユーザ状況情報とが合致する機器制御アプリケーションを選択する機器制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、端末へ周辺機器を制御する機器制御アプリケーションを送信するサーバ、機器制御プログラム及び機器制御方法に関する。
【背景技術】
【０００２】
従来から、携帯端末により、特定の機器に設けられタグから識別情報を読み取って携帯端末のユーザが制御対象とする機器を指定し、携帯端末から指定された機器を制御するシステムが知られている。また従来では、携帯端末を持ったユーザが作業空間に入ると、携帯端末が作業空間内の機器を検知し、検知された機器を利用可能とすることで、ユーザの作業を支援するシステムが知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−８１５１２号公報
【特許文献２】特開２００４−２５８７０２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来の技術では、例えばタグの読み取り作業により指定された機器の制御内容はユーザに関わらず同一のものである。また従来の技術では、作業空間に入ったユーザの権限に応じて利用の可否を機器に設定できるが、利用可否の設定は機器単位であり、ユーザの権限を状況に応じて動的に変更することができなかった。
【０００５】
すなわち従来の技術では、制御対象の機器における制御内容がユーザの状態に関わらず同一となり、操作の複雑化や誤った制御が発生する虞がある。また従来の技術では、ユーザ間での同一機器に対する制御の競合が発生し、制御対象の機器に対して不適切な制御が発生する虞がある等、利便性の低いものであった。
【０００６】
開示の技術では、携帯端末により他の機器を制御する際に、利便性を向上させることが可能な機器制御システムを提供することを目的としている。
【課題を解決するための手段】
【０００７】
開示の技術は、端末へ周辺機器を制御する機器制御アプリケーションを送信するサーバであって、前記端末のユーザ毎の状況を示すユーザ状況情報が格納されたユーザ状況情報データベースと、前記周辺機器の機器識別情報と、ユーザ状況情報と、前記周辺機器を制御する機器制御アプリケーションとが対応付けられて格納されたアプリデータベースと、前記端末が取得した前記機器識別情報と、前記ユーザ状況情報データベースにおいて前記端末の端末識別情報から特定されるユーザ状況情報と、を取得する情報取得部と、前記アプリデータベースにおいて、前記情報取得部が取得した前記機器識別情報と前記ユーザ状況情報とが合致する機器制御アプリケーションを選択するアプリ選択部と、を有する。
【０００８】
上記各部を手順としてコンピュータにより実行させる方法、上記各部を機能としてコンピュータに実行させるためのプログラム、そのプログラムを記憶したコンピュータ読み取り可能な記憶媒体とすることもできる。
【図面の簡単な説明】
【０００９】
【図１】機器制御システムの構成の一例を示す図である。
【図２】サーバの一例の構成図である。
【図３】機器制御システムの有する装置の機能を説明する図である。
【図４】ロール管理部とコンテキスト管理部の機能を説明する図である。
【図５】アプリ管理部の機能を説明する図である。
【図６】アプリ管理部による機器制御アプリケーションの選択の処理を説明するフローチャートである。
【図７】ロール管理部の処理を説明するフローチャートである。
【図８】端末による周辺機器の制御を説明するフローチャートである。
【図９】アプリデータベースの具体例を示す図である。
【図１０】ロール定義データベースの有するスケジュール定義データベースの例を示す図である。
【図１１】ロール定義データベースの有する位置定義データベースの例を示す図である。
【図１２】一定のエリア内のユーザの位置について説明する図である。
【図１３】サーバに提供されたスケジュールに係る情報の例を示す図である。
【図１４】スケジュール定義データベースの更新を説明するフローチャートである。
【図１５】コンテキストデータベースの例を示す図である。
【図１６】機器制御アプリケーションの操作画面の一例を示す図である。
【図１７】アプリデータベースの他の具体例を示す図である。
【図１８】機器制御アプリケーションの選択における各キーの優先度を説明する図である。
【図１９】機器制御アプリケーションにおいて許容される制御機能の関係を説明する図である。
【図２０】アプリデータベースの他の具体例を示す図である。
【図２１】プロファイルデータベースの例を示す図である。
【図２２】機器制御アプリケーションの操作画面の別の例を示す図である。
【発明を実施するための形態】
【００１０】
以下に図面を参照して本実施例について説明する。図１は、機器制御システムの構成の一例を示す図である。
【００１１】
本実施例の機器制御システム１００は、サーバ２００、端末３００、周辺機器４００、通信基地局５００とを有する。本実施例では、周辺機器４００は端末３００により制御される。端末３００は、周辺機器４００の識別情報を取得してこの識別情報をサーバ２００へ送信し、サーバ２００から周辺機器４００を制御するための制御アプリケーションを受け取る。端末３００は、例えば通信基地局５００を介して周辺機器４００と通信を行い、周辺機器４００の動作を制御する。本実施例の通信基地局５００は、例えば無線ＬＡＮ基地局等である。
【００１２】
図２は、サーバの一例の構成図である。サーバ２００は、それぞれバスＢで相互に接続されている入力装置２１，出力装置２２，ドライブ装置２３，補助記憶装置２４，メモリ装置２５，演算処理装置２６及びインターフェース装置２７を含む。
【００１３】
入力装置２１はキーボードやマウス等を含み、各種信号を入力するために用いられる。出力装置２２はディスプレイ装置等を含み、各種ウインドウやデータ等を表示するために用いられる。インターフェース装置２７は、モデム，ＬＡＮカード等を含み、ネットワーク２６に接続する為に用いられる。
【００１４】
本発明の機器制御プログラムは、サーバを制御する各種プログラムの少なくとも一部である。機器制御プログラムは例えば記録媒体２８の配布やネットワークからのダウンロードなどによって提供される。機器制御プログラムを記録した記録媒体２８は、ＣＤ−ＲＯＭ、フレキシブルディスク、光磁気ディスク等の様に情報を光学的，電気的或いは磁気的に記録する記録媒体、ＲＯＭ、フラッシュメモリ等の様に情報を電気的に記録する半導体メモリ等、様々なタイプの記録媒体を用いることができる。
【００１５】
また、機器制御プログラムを記録した記録媒体２８がドライブ装置２３にセットされると、機器制御プログラムは記録媒体２８からドライブ装置２３を介して補助記憶装置２４にインストールされる。ネットワークからダウンロードされた機器制御プログラムは、インターフェース装置２７を介して補助記憶装置２４にインストールされる。
【００１６】
補助記憶装置２４は、インストールされた機器制御プログラムを格納すると共に、必要なファイル，データ等を格納する。メモリ装置２５は、コンピュータの起動時に補助記憶装置２４から機器制御プログラムを読み出して格納する。そして、演算処理装置２６はメモリ装置２５に格納された機器制御プログラムに従って、後述するような各種処理を実現している。
【００１７】
以下に図３を参照して本実施例の機器制御システム１００の有する装置の機能について説明する。図３は、機器制御システムの有する装置の機能を説明する図である。
【００１８】
本実施例のサーバ２００は、端末管理部２１０、プロファイル管理部２２０、ロール管理部２３０、コンテキスト管理部２４０、アプリ管理部２５０、アプリ送信部２６０を有する。また本実施例のサーバ２００は、端末データベース２１１、プロファイルデータベース２２１、ロール定義データベース２３１、コンテキストデータベース２４１、アプリデータベース２５１を有する。本実施例のサーバ２００の有する各データベースは、例えば補助記憶装置２４の所定の記憶領域に設けられていても良い。
【００１９】
本実施例の端末管理部２１０は、端末データベース２１１を管理する。端末データベース２１１には、端末３００の識別情報（以下、端末ＩＤ）と、端末３００を使用するユーザの識別情報（ユーザＩＤ）とが紐付されて格納される。本実施例の端末ＩＤは、例えば端末３００のＩＰアドレスや各端末の製造番号等、各端末を一意に識別することが可能なものであればよい。
【００２０】
プロファイル管理部２２０は、プロファイルデータベース２２１を管理する。プロファイルデータベース２２１は、ユーザＩＤと、プロファイル情報とが対応付けられて格納される。本実施例のプロファイル情報は、ユーザの属性を示すものであり、例えばユーザの年齢、性別、出身国、役職、役職と関連付けられた権限等を含む。また本実施例のプロファイル情報は、予めシステム管理者等により登録されており、登録後は更新されないか、また更新頻度が少ない静的な情報と呼べるものとした。
【００２１】
ロール管理部２３０は、ロール定義データベース２３１を管理する。ロール定義データベース２３１には、ユーザＩＤと、ユーザが果たすべき、あるいは果たしている役割に関するロール定義とが対応付けられて格納される。また本実施例のロール管理部２３０は、ロール定義データベース２３１に基づきユーザのロール定義を導出する。ロール管理部２３０の詳細は後述する。
【００２２】
コンテキスト管理部２４０は、コンテキストデータベース２４１を管理する。コンテキストデータベース２４１は、ユーザＩＤとコンテキスト情報とが対応付けられて格納される。コンテキスト情報は、後述する端末３００の有するセンサ部３２０から提供される。
【００２３】
コンテキスト管理部２４０は、例えばセンサ部３２０がＧＰＳセンサであった場合、センサ部３２０から通知された緯度経度情報から特定の地図上の特定の場所に変換し、コンテキスト情報とする。またコンテキスト管理部２４０は、例えば端末３００が通信基地局５００から受信した基地局情報から通信基地局５００の電波到達マップ上の特定の場所（部屋）に変換し、コンテキスト情報としても良い。
【００２４】
また例えばセンサ部３２０が加速度センサ等であった場合、コンテキスト管理部２４０は、センサ部３２０から得られた情報から推定されたユーザの状態（静止中、移動中等）をコンテキスト情報としても良い。以下の本実施例の説明では、コンテキスト情報は端末３００の位置情報とした。
【００２５】
アプリ管理部２５０は、アプリデータベース２５１を管理する。またアプリ管理部２５０は、アプリデータベース２５１を参照して機器ＩＤに対応した機器制御アプリケーションを選択する。具体的にはアプリ管理部２５０は、端末ＩＤから特定されたユーザＩＤに基づき、プロファイルデータベース２２１、ロール定義データベース２３１、コンテキストデータベース２４１のそれぞれからユーザＩＤと対応する情報を取得する。そしてアプリ管理部２５０は、取得した情報に基づき、機器制御アプリケーションを選択する。
【００２６】
すなわち本実施例では、プロファイルデータベース２２１、ロール定義データベース２３１、コンテキストデータベース２４１がユーザの状況を示すユーザ状況情報が格納されたユーザ状況情報データベースである。本実施例のアプリ管理部２５０は、アプリデータベース２５１において、端末３００から取得した機器ＩＤと、端末ＩＤから特定されるユーザ状況情報とが合致する機器制御アプリケーションを選択する。
【００２７】
本実施例のアプリデータベース２５１は、周辺機器４００を識別する機器ＩＤと、ユーザ状況情報と、機器制御アプリケーションとが対応付けられて格納されている。またアプリデータベース２５１には、機器制御アプリケーションそのものが格納されている。
【００２８】
ユーザ状況情報とは、プロファイル情報、ロール定義、コンテキスト情報と、各情報に対応付けられたキーと、キーの種別を含む。キーの種別とは、キーがプロファイルキー、ロールキー、コンテキストキーのキーであるかを示す。
【００２９】
すなわち本実施例においてユーザ状況情報とは、プロファイルキーと、プロファイルキーと対応したプロファイル情報、ロールキーとロールキーに対応したロール定義、コンテキストキーとコンテキストキーに対応したコンテキスト情報を含む。尚以下の説明では、各種キーと対応付けられた情報や定義をキーの値と呼ぶ。
【００３０】
アプリ管理部２５０による機器制御アプリケーションの選択の処理の詳細と、アプリデータベース２５１の詳細は後述する。
【００３１】
また本実施例では、サーバ２００がアプリデータベース２５１を有するものとしたが、アプリデータベース２５１は、他のサーバ等に設けられていても良い。この場合アプリデータベース２５１には、機器制御アプリケーションの格納場所を示すＵＲＬが格納されていても良い。
【００３２】
アプリ送信部２６０は、アプリ管理部２５０で選択された機器制御アプリケーションを端末３００に配信する。送信すべき機器制御アプリケーション及び機器制御アプリケーションの配信先である端末３００に関する情報は、アプリ管理部２５０より指定される。
【００３３】
本実施例の端末３００は、機器ＩＤ読取部３１０、センサ部３２０を有する。また端末３００は、サーバ２００から送信された機器制御アプリケーションを実行する機能を有する。機器ＩＤ読取部３１０は、周辺機器４００に対応付けられたタグに書き込まれた機器ＩＤを読み取る。センサ部３２０は、ユーザの状況把握に使用する情報を取得する。
【００３４】
本実施例のセンサ部３２０は、例えばＧＰＳセンサ、加速度センサ、地磁気センサ等を含む。また例えば端末３００は無線LAN通信機能やBluetooth(登録商標)通信機能等の無線通信機能を有し、無線通信機能により近隣の機器と通信を行うことで、端末３００が通信を行った機器の近隣に存在することを検出する場合がある。この場合においては、端末３００の有する無線通信機能をセンサ部３２０としても良い。
【００３５】
本実施例の周辺機器４００は、周辺機器４００を識別する機器ＩＤが格納されたタグ４１０、周辺機器４００が提供するサービスを実行するサービス実行部４２０を有する。サービス実行部４２０は、端末３００からの要求にしたがってサービスを実行し、その応答を端末３００に返す。本実施例の周辺機器４００は、例えば印刷サービスを提供するプリンタ、各種プログラムをインストールすることで対応するサービスを提供可能に設定されたコンピュータ、映像を投影するサービスを実行するプロジェクタ等がある。
【００３６】
また本実施例のサーバ２００は、例えば端末３００が配置された場所の環境等を検出するための環境センサ部５１０から受信した信号に基づき、ロール定義データベース２３１やコンテキストデータベース２４１を更新しても良い。
【００３７】
環境側センサ部５１０は、例えば端末３００に具備されたＮＦＣタグを読み取るタグ・リーダが挙げられる。例えば環境センサ部５１０がある部屋の入り口等に設けられた場合、環境センサ部５１０が端末３００の有するＮＦＣタグを読み取ったとき、端末３００が部屋の中に配置されたものと判断できる。本実施例では、環境センサ部５１０が検出した情報はサーバ２０のコンテキスト管理部２４０に通知される。
【００３８】
次に本実施例の機器制御システム１００の動作について説明する。
【００３９】
本実施例の機器制御システム１００において、端末３００のセンサ部３２０や環境側センサ部５１０が取得したセンサ情報をサーバ２００のコンテキスト管理部２４０に通知する（ステップＳ１）。センサ情報を受領したコンテキスト管理部２４０は、センサ情報を処理してユーザのコンテキスト情報を生成し、コンテキストデータベース２４１に格納する。
【００４０】
次にユーザの操作により、端末３００の機器ＩＤ読取部３１０が制御対象とする周辺機器４００の機器ＩＤを読み取る（ステップＳ２）。端末３００は、読み取った機器ＩＤをサーバ２００のアプリ管理部２５０に通知する（ステップＳ３）。尚端末３００は、このとき端末ＩＤも同時にアプリ管理部２５０へ通知する。
【００４１】
サーバ２００においてアプリ管理部２５０は、端末ＩＤを端末管理部２１０に通知する。端末管理部２１０は端末データベース２１１を参照し、端末ＩＤと対応したユーザＩＤをアプリ管理部２５０へ応答する（ステップＳ４）。
【００４２】
アプリ管理部２５０は、アプリデータベース２５１を参照し、通知された機器ＩＤに対応するユーザ状況情報を認識する。
【００４３】
アプリ管理部２５０は、機器ＩＤに対応するユーザ状況情報にプロファイルキーが含まれる場合、ユーザＩＤと対応するプロファイルキーの値をプロファイル管理部２２０に問い合わせ、プロファイルデータベース２２１が参照された後、その応答を受信する（ステップＳ５）。ここでプロファイルキーの値とは、プロファイルデータベース２２１において、ユーザＩＤと対応したプロファイル情報である。
【００４４】
アプリ管理部２５０は、機器ＩＤに対応するユーザ状況情報にロールキーが含まれる場合、ユーザＩＤと対応するロールキーの値をロール管理部２３０に問い合わせ、ロール定義データベース２３１が参照された後、その応答を受信する（ステップＳ６）。ここでロールキーの値とは、ロール定義データベース２３１において、ユーザＩＤと対応したロール定義である。
【００４５】
アプリ管理部２５０は、機器ＩＤに対応するユーザ状況情報にコンテキストキーが含まれる場合、ユーザＩＤと対応するコンテキストキーの値をコンテキスト管理部２４０に問い合わせ、コンテキストデータベース２４１が参照された後、その応答を受信する（ステップＳ７）。ここでコンテキストキーの値とは、コンテキストデータベース２４１において、コンテキストデータベース２４１においてユーザＩＤと対応したコンテキスト情報である。
【００４６】
アプリ管理部２５０は、ステップＳ５〜７で受信した各キーとキーの値との組み合わせに合致する機器制御アプリケーションをアプリデータベース２５１から選択し、アプリ送信部２６０に選択した機器制御アプリケーションの送信を要求する（ステップＳ８）。アプリ送信部２６０は、受信した機器制御アプリケーションを端末３００に送信する（ステップＳ９）。
【００４７】
端末３００は、受信した機器制御アプリケーションを起動させ、ユーザにより機器制御アプリケーションの操作を受け付けると、周辺機器４００へ操作指示を送信する。周辺機器４００では、操作指示に基づくサービスが実行される（ステップＳ１０）。
【００４８】
次に図４を参照して本実施例のロール管理部２３０とコンテキスト管理部２４０の機能についてさらに説明する。
【００４９】
図４は、ロール管理部とコンテキスト管理部の機能を説明する図である。
【００５０】
本実施例のロール管理部２３０は、タイマ部２３２、ロール導出部２３３を有する。また本実施例のロール定義データベース２３１は、スケジュール定義データベース２３４と、位置定義データベース２３５とを有する。
【００５１】
スケジュール定義データベース２３４は、ユーザＩＤと、スケジュール（時刻）に基づくロール定義とが対応付けられて格納される。位置定義データベース２３５は、ユーザＩＤと位置情報に基づくロール定義とが対応付けられて格納される。
【００５２】
スケジュールに基づくロール定義は、あるユーザは、この時間帯はある特定のロールを果たす、というルールで実現される。また位置情報に基づくロール定義は、あるユーザがこの位置（あるいは領域）に存在する間はある特定のロールを果たす、というルールで実現される。言い換えれば位置に基づくロール定義は、あるユーザは、ある特定のロールを果たすために、この位置（あるいは領域）に移動する、というルールで実現される。
【００５３】
タイマ部３２２は、現在の時刻を管理する時計であり、スケジュール定義データベース２３４を参照してロールを決定する際に参照される。
【００５４】
ロール導出部２３３は、ロール定義データベース２３１を参照して、ユーザＩＤに対応したロール定義を導出する。
【００５５】
ロール導出部２３３は、スケジュール定義データベース２３４からロール定義を導出する場合は、タイマ部２３２から現在時刻を取得する。そしてロール導出部２３３は、スケジュール定義データベース２３４において、アプリ管理部２５０からのロール問い合わせに含まれるユーザＩＤと現在時刻との双方に適合するロール定義が存在するか否かを確認する。ロール導出部２３３は、適合するロール定義が存在する場合は、ユーザＩＤと対応した現在のロールを導出する。導出されたロールは、アプリ管理部２５０に対して応答として通知される。
【００５６】
またロール導出部２３３は、位置定義データベース２３５からロールを導出する場合は、ロール問い合わせに含まれたユーザＩＤと対応した位置情報をコンテキスト管理部２４０から取得する。そしてロール導出部２３３は、位置定義データベース２３５において、ユーザＩＤと、取得した位置情報の双方に適合するロール定義が存在するか否かを確認する。ロール導出部２３３は、該当するロール定義が存在する場合は、ユーザＩＤと対応する現在のロールを導出する。導出されたロールは、アプリ管理部２５０に対して応答として通知される。
【００５７】
尚本実施例では、時刻と位置に基づくロールを分離して定義しているが、時刻と位置の双方の組み合わせに基づいてロール定義がなされても良い。さらに、他のコンテキスト（加速度センサから推定されるユーザの移動速度、鉄道やバスなどのユーザの移動手段など）、及びそれらと時刻と位置の組み合わせに基づいてロール定義がなされても良い。
【００５８】
本実施例のコンテキスト管理部２４０は、センサ・データ処理部２４２を有する。
【００５９】
センサ・データ処理部２４２は、センサ部３２０が取得したセンサの生データを受信し、それをコンテキスト情報にする処理を行う。例えば、センサ部３２０がＧＰＳセンサである場合、センサ・データ処理部２４２は、緯度経度情報を受信し、緯度経度情報を地図上で受信した緯度経度に該当する位置情報に変換する。緯度経度情報及び変換された位置情報はコンテキストデータベース２４１に通知される。
【００６０】
コンテキストデータベース２４１は、センサ部３２０から受信した生データと、センサ・データ処理部２４２で処理された結果の情報とをユーザ毎のコンテキスト情報として保持する。尚コンテキスト情報は随時上書き更新されるが、その際、更新前の情報をファイルなどに書き出し、別途ログ・データとして保存されても良い。
【００６１】
次に図５を参照して本実施例のアプリ管理部２５０の機能についてさらに説明する。図５は、アプリ管理部の機能を説明する図である。
【００６２】
本実施例のアプリ管理部２５０は、ユーザＩＤ取得部２５２、キー取得部２５３、キー対応情報取得部２５４、アプリ選択部２５５を有する。
【００６３】
ユーザＩＤ取得部２５２は、端末３００から通知された端末ＩＤに基づき、端末データベース２１１から端末ＩＤと対応するユーザＩＤを取得する。
【００６４】
キー取得部２５３は、アプリデータベース２５１を参照し、端末３００から通知された機器ＩＤと対応するユーザ状況情報に含まれるキーを取得する。具体的にはキー取得部２５３は、プロファイルキー、ロールキー、コンテキストキーのうち、ユーザ状況情報に含まれるキーを取得する。
【００６５】
キー対応情報取得部２５４は、キー取得部２５３が取得したキーと対応するデータベースにおいて、ユーザＩＤ取得部２５２が取得したユーザＩＤと対応する情報を取得する。キー対応情報取得部２５４は、キーがプロファイルキーの場合はプロファイルデータベース２２１を参照し、ユーザＩＤと対応するプロファイル情報を取得する。キー対応情報取得部２５４は、キーがロールキーの場合はロール定義データベース２３１を参照し、ユーザＩＤと対応するロール定義を取得する。キー対応情報取得部２５４は、キーがコンテキストキーの場合はコンテキストデータベース２４１を参照し、ユーザＩＤと対応するコンテキスト情報を取得する。
【００６６】
アプリ選択部２５５は、アプリデータベース２５１において、機器ＩＤに対応するユーザ状況情報が、キー取得部２５３が取得したキーとキー対応情報取得部２５５の取得した情報と合致する機器制御アプリケーションを選択する。
【００６７】
以下に本実施例のアプリ管理部２５０による機器制御アプリケーションの選択の処理について説明する。図６は、アプリ管理部による機器制御アプリケーションの選択の処理を説明するフローチャートである。
【００６８】
本実施例のアプリ管理部２５０は、端末３００から機器ＩＤと端末ＩＤとを受信すると（ステップＳ６０１）、ユーザＩＤ取得部２５２により端末データベース２１１から端末ＩＤに対応するユーザＩＤを取得する（ステップＳ６０２）。
【００６９】
続いてアプリ管理部２５０は、キー取得部２５３により、アプリデータベース２５１において機器ＩＤと対応するユーザ状況情報に含まれるキーを取得する（ステップＳ６０３）。ユーザ状況情報に含まれるキーとは、機器ＩＤに対応した機器制御アプリケーションが定義しているキーのことである。
【００７０】
キー取得部２５３はユーザ状況情報にプロファイルキーが存在するか否かを判断する（ステップＳ６０４）。ステップＳ６０４においてプロファイルキーが存在する場合、キー対応情報取得部２５４は、プロファイル管理部２２０にキーの値を問い合わせ、プロファイルデータベース２２１からユーザＩＤと対応するプロファイル情報を取得する（ステップＳ６０５）。ステップＳ６０４においてプロファイルキーが存在しない場合、ステップＳ６０６へ進む。
【００７１】
キー取得部２５３は、ユーザ状況情報にコンテキストキーが存在するか否かを判断する（ステップＳ６０６）。ステップＳ６０６においてコンテキストキーが存在する場合、キー対応情報取得部２５４は、コンテキスト管理部２４０にキーの値を問い合わせ、コンテキストデータベース２４１からユーザＩＤと対応するコンテキスト情報を取得する（ステップＳ６０７）。ステップＳ６０６においてコンテキストキーが存在しない場合、ステップＳ６０８進む。
【００７２】
キー取得部２５３は、ユーザ状況情報にロールキーが存在するか否かを判断する（ステップＳ６０８）。ステップＳ６０９においてロールキーが存在する場合、キー対応情報取得部２５４は、ロール管理部２３０にキーの値を問い合わせ、ロール定義データベース２３１からユーザＩＤと対応するロール定義を取得する（ステップＳ６０９）。ステップＳ６０８においてロール定義が存在しない場合、ステップＳ６１０に進む。
【００７３】
アプリ選択部２５５は、アプリデータベース２５１を参照し、ステップＳ６０４からステップＳ６０９までの処理で取得した各キーと、各キーに対応する情報や定義から、機器制御アプリケーションを選択する（ステップＳ６１０）。続いてアプリ管理部２５０は、選択された機器アプリケーションをアプリ送信部２６０へ送信する（ステップＳ６１１）。
【００７４】
次に図７を参照して本実施例のロール管理部２３０の処理について説明する。図７は、ロール管理部の処理を説明するフローチャートである。
【００７５】
本実施例のロール管理部２３０は、図６のステップＳ６０８においてロールキーが存在した場合、ステップＳ６０９においてアプリ管理部２５０からロールキーに対応するロール定義の取得要求を受信する（ステップＳ７１）。尚ロール管理部２３０は、このとき同時にユーザＩＤとロールキーも受信する。
【００７６】
次にロール導出部２３３は、ロール定義を導出していない未処理のロールキーが存在するか否かを判断する（ステップＳ７２）。ステップＳ７２において未処理のロールキーが存在する場合、ロール導出部２３３は、コンテキスト管理部２４０から取得したコンテキスト情報、タイマ部２３２から取得した現在時刻情報を参照して、ロール定義データベース２３１から未処理のロールキーに対応するロール定義を導出する（ステップＳ７３）。
尚本実施例のロール導出部２３３は、ロールキーと対応するロール定義が位置情報のみに基づく定義であった場合、位置定義データベース２３５を参照してロール定義を導出する。また本実施例のロール導出部２３３は、ロールキーと対応するロール定義がスケジュール情報のみに基づく定義であった場合、スケジュール定義データベース２３４を参照してロール定義を導出する。
【００７７】
ステップＳ７２において未処理のロールキーが存在しない場合、ロールキーに対応するロール定義をアプリ管理部２５０に応答する（ステップＳ７４）。
【００７８】
次に図８を参照して本実施例の端末３００による周辺機器４００の制御について説明する。図８は、端末による周辺機器の制御を説明するフローチャートである。
【００７９】
本実施例の端末３００が、ユーザにより制御対象の周辺機器４００に近づけられると、機器ＩＤ読取部３１０が、周辺機器４００のタグに記録されている周辺機器４００の機器ＩＤを読み取る（ステップＳ８０１）。
【００８０】
尚本実施例では、機器４００を指定する方法について、周辺機器４００に付与された機器ＩＤをタグ４１０から読み取る方法に限定されない。例えば端末３００は、赤外線を送信して、それを受光した周辺機器４００が自身の機器ＩＤを応答しても良い。また端末３００は、周辺機器４００から赤外線により周期的に送信される機器ＩＤを受信しても良い。さらに端末３００は、カメラで周辺機器４００の写真を撮影し、撮影された写真を画像処理することによって撮影された周辺機器４００を特定しても良い。
【００８１】
続いて端末３００は、サーバ２００のアプリ管理部２５０に対し、読み取った機器ＩＤ、と自身の端末ＩＤとを送信する（ステップＳ８０２）。続いて端末３００は、アプリ管理部２５０から機器制御アプリケーションを受信したか否かを判定する（ステップＳ８０３）。
【００８２】
ステップＳ８０３において機器制御アプリケーションを受信した場合、端末３００は受信した機器制御アプリケーションを実行する（ステップＳ８０４）。端末３００は、機器制御アプリケーションが起動された際、後述のステップＳ８０８において周辺機器４００に向けて送信される機器制御メッセージの宛先に関する情報を周辺機器４００に問い合わせても良い。当該宛先に関する情報とは、例えば周辺機器４００のＩＰアドレス、ポート番号、ＵＲＬ（Uniform Resource Locator）等である。
【００８３】
続いて端末３００は、ユーザによって機器制御アプリケーションに対する操作が行われたか否かを判定する（ステップＳ８０５）。
【００８４】
ステップＳ８０５において操作が行われた場合、端末３００は機器制御アプリケーションに対する操作が終了操作であるか否かを判定する（ステップＳ８０６）。ステップＳ８０５で操作が行われない場合、端末３００は操作が行われるまで待機する。
【００８５】
ステップＳ８０６において終了操作である場合、端末３００は機器制御アプリケーションの実行を終了する（ステップＳ８０７）。
【００８６】
ステップＳ８０６において終了操作でない場合、端末３００は、機器制御アプリケーションに対する操作を実行するために、必要な機器制御メッセージを周辺機器４００に送信する（ステップＳ８０８）。
【００８７】
続いて端末３００は、周辺機器４００が機器制御メッセージで要求された処理を実行したことを示す応答を受信したか否かを判断する(ステップＳ８０９）。ステップＳ８０９において応答を受信した場合、端末３００はステップＳ８０５へ戻る。ステップＳ８０９で応答を受信しない場合、端末３００は応答を受信するまで待機する。
【００８８】
以上に説明したように本実施例では、機器ＩＤと対応付けられたユーザ状況情報に含まれるキーと、キーの値の組合せに基づき、機器ＩＤを制御する機器制御アプリケーションを選択する。
【００８９】
以下に具体例を挙げて本実施例の機器制御システム１００の動作を説明する。
【００９０】
（具体例１）
以下の例では、例えば周辺機器４００がプレゼンテーション等を行う場所に配置されたプロジェクタである。ユーザは、端末３００により周辺機器４００を制御する。
【００９１】
図９は、アプリデータベースの具体例を示す図である。図９に示すアプリデータベース２５１Ａでは、機器ＩＤと、ユーザ状況情報９１と、機器制御アプリケーションの格納先ＵＲＬとが対応付けられて格納されている。図９に示すユーザ状況情報９１に含まれるキーは、ロールキーのみである。
【００９２】
図１０は、ロール定義データベースの有するスケジュール定義データベースの例を示す図である。図１０に示すスケジュール定義データベース２３４Ａは、「発表者」ロールキーの値（value）が時刻に基づくスケジュールによって、どのように決定されるかを定義するものである。
【００９３】
スケジュール定義データベース２３４Ａにおいて1行目のデータは、１月２２日の時刻ｔ１〜ｔ２において、ユーザＡは「発表者」キーの値として「Yes」をとることを示す。これは例えば会議スケジュールにおいて、１月２３日の時刻ｔ１〜ｔ２の間はユーザＡによるプレゼンテーションの時間として割り当てられていることを示す。
【００９４】
これに対し、スケジュール定義データベース２３４Ａにおける最下行のデータでは、「発表者」キーの値としてＮｏをとることを示している。すなわち、先のユーザＡは、自身のプレゼンテーションの終了後は「発表者」キーの値として「No」をとり、聴講者としてプロジェクタを制御することになる。
【００９５】
本実施例のスケジュール定義データベース２３４Ａは、システム管理者等によりサーバ２００へ予め登録されていても良い。また本実施例では、新たに具体的なスケジュール等がロール管理部２３０に提供されると、スケジュール定義データベース２３４Ａが生成、更新される。スケジュール定義データベース２３４Ａの生成及び更新の詳細は後述する。
【００９６】
また本実施例のスケジュール定義データベース２３４Ａは、「option」欄を有しており、プレゼンテーション等に使用する資料の格納先ＵＲＬが併せて登録されている。
【００９７】
本実施例では、機器制御アプリケーションが端末３００に配信される際に同時に格納先ＵＲＬも配信され、端末３００では格納先ＵＲＬを参照して資料を取得しても良い。尚格納先ＵＲＬで特定される資料は端末３００内に予め格納されていても良い。
【００９８】
図１１は、ロール定義データベースの有する位置定義データベースの例を示す図である。図１１に示す位置定義データベース２３５Ａは、「発表者」ロールキーの値（value）が発表者の部屋Ｒ１における位置によって、どのように決定されるかを定義するものである。
【００９９】
位置定義データベース２３５Ａにおいて、1行目のデータは、あるユーザが事前に決められたある一定のエリア内に存在しているとき、このユーザの「発表者」キーの値として「Yes」をとることを示している。尚ユーザの現在位置は、部屋Ｒ１において定義される座標（Ｘ，Ｙ）で表現される。
【０１００】
これに対し、位置定義データベース２３５Ａの最下行のデータでは、あるユーザが一定のエリア内に存在していないとき、このユーザの「発表者」キーの値として「No」をとることを示している。
【０１０１】
以下に図１２を参照して、一定のエリア内のユーザの位置について説明する。図１２は、一定のエリア内のユーザの位置について説明する図である。
【０１０２】
本実施例では、一定のエリアは予め設定されている。図１２の例では、発表者が発表時に通常位置する部屋Ｒ１の前方のエリアを一定のエリア１２１として定義した。一定のエリア１２１の座標は、０≦Ｘ≦Ｘｍａｘ，０≦Ｙ≦Ｙｐとなる。
【０１０３】
ユーザの位置は、例えば部屋Ｒ１に無線ＬＡＮ（Local Area Network）基地局１２２、１２３、１２４を設置し、部屋Ｒ１内の端末３００が、無線ＬＡＮ基地局１２２、１２３、１２４から受信した電波の受信強度を計測する。
【０１０４】
尚本実施例では、部屋Ｒ１内の位置を特定する座標と受信強度の関係を示す事前データをコンテキスト管理部２４０が有していても良い。コンテキスト管理部２４０は、各端末３００によって受信された受信強度と事前データと照合することで、端末３００の位置を特定できる。すなわちユーザの位置を特定できる。
【０１０５】
図１２の例では、ユーザＡは一定のエリア１２１に位置し、ユーザＢとユーザＣは一定のエリア１２１外に位置することがわかる。
【０１０６】
尚ユーザの位置の特定方法は、上記の方法に限定されない。ユーザの位置の特定方法は、周辺機器４００の利用シーンにおいて要求される位置特定精度を実現できる方法であれば良い。
【０１０７】
本実施例のロール管理部２３０において、ロール導出部２３３は、図１０と図１１で示したスケジュール定義データベース２３４Ａと位置定義データベース２３５Ａのいずれか一方を用いてロールを導出しても良い。またロール導出部２３３は、スケジュール定義データベース２３４Ａと位置定義データベース２３５Ａの双方を同時に用いてロールを導出しても良い。
【０１０８】
双方のデータベースを同時に用いる際は、ロール導出部２３３は、各定義データベースから導出されたキーの値が等しい場合に導出された値を最終的な導出結果としても良い（ＡＮＤ条件）。またはロール導出部２３３は、各定義データベースから導出されたキーの値の少なくとも1つが「Yes」である場合、最終的な導出結果を「Yes」としても良い（ＯＲ条件）。
【０１０９】
本実施例では、ロール導出部１３３によるロールの導出において、ＡＮＤ条件とＯＲ条件の何れを用いるか選択可能であっても良いし、予め何れか一方に設定されていても良い。
【０１１０】
本実施例では、ＡＮＤ条件とＯＲ条件の選択又は設定は、ロールキー毎に行えるようにした。本実施例では、ＡＮＤ条件を選択することにより、発表者でない人が一定のエリア１２１に進入して周辺機器４００を制御しようとした場合でも、スケジュール定義データベース２３４Ａによって発表者と誤認識しないようにできる。
【０１１１】
また本実施例では、ＯＲ条件を選択することにより、会議の進行に遅れが生じた場合でも、一定のエリア１２１に進入した人は発表者として認識することができ、状況の変化に柔軟に対応することが可能となる。したがって本実施例では、機器制御システムの利便性を向上させることができる。
【０１１２】
以下に図１３、図１４を参照してスケジュール定義データベース２３４Ａの生成及び更新について説明する。
【０１１３】
本実施例のスケジュール定義データベース２３４Ａは、例えばシステム管理者等により、スケジュールに係る情報がサーバ２００に提供されると、ロール管理部２３０により生成及び更新される。図１３は、サーバに提供されたスケジュールに係る情報の例を示す図である。
【０１１４】
図１３に示すスケジュールに係る情報（以下、スケジュール情報）Ｓｃは、例えば会議主催者等の端末３００からサーバ２００へ送信されても良い。
【０１１５】
図１４は、スケジュール定義データベースの更新を説明するフローチャートである。尚スケジュール定義データベース２３４Ａは、会議主催者により最初に作成されたスケジュール情報に基づき生成されているものとした。
【０１１６】
本実施例の機器制御システム１００において、会議主催者により端末３００上でスケジュール情報Ｓｃが作成されると（ステップＳ１４１）、スケジュール情報Ｓｃはサーバ２００のロール管理部２３０に送信される（ステップＳ１４２）。
【０１１７】
ロール管理部２３０は、受信したスケジュール情報Ｓｃに基づき、スケジュール定義データベース２３４Ａを更新する（ステップＳ１４３）。続いてロール管理部２３０は、スケジュール情報Ｓｃに基づくスケジュールを登録したことを端末３００に通知する（ステップＳ１４４）。
【０１１８】
本実施例では、以上のように、スケジュールが変更された際には新たなスケジュール情報Ｓｃをサーバ２００へ送信するだけで、スケジュール定義データベース２３４Ａが更新される。よってユーザの状況の変化に対応した周辺機器４００の制御を行うことができる。
【０１１９】
次に図１５を参照してコンテキストデータベース２４１Ａについて説明する。図１５は、コンテキストデータベースの例を示す図である。
【０１２０】
図１５に示すコンテキストデータベース２４１Ａでは、ユーザのコンテキストとしてユーザの位置を管理する。コンテキストデータベース２４１Ａでは、ユーザＩＤ、ユーザがいる部屋番号、各部屋内で定義されたユーザの位置を示す座標が対応付けられている。
【０１２１】
本実施例における部屋番号は、例えば部屋の出入口に設置された環境センサ部５１０に端末３００やユーザのＩＤカードを翳して開錠させることで、特定されても良い。また屋外及び屋内において、ＧＰＳ衛星の送信信号が受信できるような場所では、緯度・経度・高度情報がユーザの位置情報とされても良い。
【０１２２】
尚本実施例ではコンテキスト情報は、ユーザの位置情報としたが、これに限定されない。コンテキスト情報は、例えば、端末３００に具備される各種センサ（地磁気センサ、加速度センサ等）、あるいは環境センサ部５１０で取得されたユーザの状況を表す情報であっても良い。
【０１２３】
次に、制御対象の周辺機器４００の機器ＩＤがＤｅｖ１であった場合に選択される機器制御アプリケーションについて説明する。
【０１２４】
アプリ管理部２５０は、ユーザＩＤ取得部２５２により、端末３００の端末ＩＤからユーザＩＤを取得する。またアプリ管理部２５０は、キー取得部２５３により、アプリデータベース２５１Ａから周辺機器４００の機器ＩＤがＤｅｖ１に対応するキーを取得する。図９に示すアプリデータベース２５１Ａから取得されるキーは、ロールキーのみである。
【０１２５】
次にキー対応情報取得部２５５は、ロール管理部２３０にロール定義の問い合わせを行う。ロール管理部２３０は、ロール定義データベース２３１からユーザＩＤと対応するロール定義を取得する。
【０１２６】
本実施例では、ロール定義データベース２３１の有するのみを用いてロールを導出するものとした。本実施例において、ユーザＩＤ取得部２５２により取得されたユーザＩＤがユーザＡであった場合、ユーザＡのロール定義は、「発表者」キーの値として「Yes」をとるものとなる。
【０１２７】
アプリ管理部２５０は、機器ＩＤがＤｅｖ１であり、且つユーザＡのロール定義と合致する機器制御アプリケーションをアプリデータベース２５１から選択する。図９のアプリデータベース２５１Ａでは、機器ＩＤがＤｅｖ１、キー種別がロールキーであり、「発表者」キーの値として「Yes」をとる機器制御アプリケーションとして、ＵＲＬ１を選択する。ＵＲＬ１は、選択された機器制御アプリケーションの格納先を示すＵＲＬである。
【０１２８】
アプリ管理部２５０は、ＵＲＬ１をアプリ送信部２６０へ送信する。アプリ送信部２６０は、ＵＲＬ１を端末３００に送信する。端末３００がＵＲＬ１を受信すると、端末３００はＵＲＬ１へアクセスして機器制御アプリケーションをダウンロードし、実行する。機器制御アプリケーションが実行されると、端末３００にはユーザＡに対応した機器制御アプリケーションの操作画面が表示される。
【０１２９】
また本実施例においてユーザＡのプレゼンテーションが終了すると、ユーザＡのロール定義は、「発表者」キーの値として「No」をとるものとなる。
【０１３０】
この場合アプリ管理部２５０は、機器ＩＤがＤｅｖ１であり、且つユーザＡのロール定義と合致する機器制御アプリケーションとして、アプリデータベース２５１からＵＲＬ２を選択する。
【０１３１】
アプリ管理部２５０は、ＵＲＬ２をアプリ送信部２６０へ送信する。アプリ送信部２６０は、ＵＲＬ２を端末３００に送信する。端末３００がＵＲＬ５を受信すると、端末３００はＵＲＬ５へアクセスして機器制御アプリケーションをダウンロードし、実行する。機器制御アプリケーションが実行されると、端末３００にはユーザＡに対応した機器制御アプリケーションの操作画面が表示される。
【０１３２】
図１６は、機器制御アプリケーションの操作画面の一例を示す図である。図１６（Ａ）はＵＲＬ１と対応する機器制御アプリケーションの操作画面の例であり、図１６（Ｂ）はＵＲＬ２と対応する機器制御アプリケーションの操作画面の例である。
【０１３３】
図１６（Ａ）に示す操作画面１６１は、発表者用の機器制御アプリケーションが端末３００に表示させる画面である。操作画面１６１では、周辺機器４００の電源のＯＮ／ＯＦＦ、発表開始（スライド表示開始）、スライドのページめくり（前へ）、同じくページめくり（次へ）、ページ指定によるページ移動、当該機器制御アプリの終了、といった操作が可能となっている。
【０１３４】
図１６（Ｂ）に示す操作画面１６２は、非発表者用すなわち聴講者用の機器制御アプリケーションが端末３００に表示させる画面である。操作画面１６２では、ページめくりとページ指定によるページ移動、および機器制御アプリケーションの終了のみが可能となっており、発表者よりも制御可能な周辺機器４００の機能が限定されている。
【０１３５】
以上のように本実施例では、ユーザのロールに応じて周辺機器４００の被制御機能を変えることで、発表者の発表中に聴講者によって周辺機器４００の電源がＯＦＦされるといった不適切な機器制御が行われないようにすることができる。
【０１３６】
また本実施例では、発表者の発表中に、聴講者によって勝手にスライドのページめくりがされないようにするためには、例えば次のようにすれば良い。
【０１３７】
コンテキスト管理部２４０は、発表が行われている場所（部屋Ｒ１）のコンテキスト情報を追加で管理する。部屋Ｒ１のコンテキスト情報とは、部屋Ｒ１の状況を示す情報である。部屋Ｒ１においてプレゼンテーションを行う場合、部屋Ｒ１のコンテキスト情報は、「開始前」、「発表中」、「質疑応答中」、「終了」といった具合に遷移する。
【０１３８】
ＵＲＬ１に対応する機器制御アプリケーションは、操作画面１６１に、「質疑応答開始」ボタンを表示させる。さらに機器制御アプリケーションは、発表者が「発表開始」ボタン、「質疑応答開始」ボタン、「終了」ボタンをタッチすると、センサ部３２０に対してそれぞれ「発表開始」イベント、「質疑応答開始」イベント、「発表終了」イベントを通知する。
【０１３９】
センサ部３２０は、機器制御アプリケーションからイベントを受信すると、各イベントをコンテキスト管理部２４０に通知する。するとコンテキスト管理部２４０において管理される部屋Ｒ１のコンテキスト情報が上述のように通り順次遷移する。
【０１４０】
またアプリ管理部２５０では、部屋Ｒ１のコンテキストキーの値が「発表中」である間においては、聴講者が端末３００を操作して周辺機器４００を選択しても、現在は周辺機器４００の制御が不可能である旨を表示する機器制御アプリケーションを選択する。
【０１４１】
その後「質疑応答開始」ボタンがタッチされると、部屋Ｒ１のコンテキスト情報が「質疑応答中」に遷移し、それ以降周辺機器４００を選択した端末３００には、聴講者用の操作画面１６２が表示される。このように、人のコンテキスト情報だけに留まらず、機器のようなものや部屋のような場所のコンテキスト情報も合わせて管理することによって、より多様な状況に応じた機器制御を行うことも可能になる。
【０１４２】
また本実施例では、アプリデータベース２５１Ａは、機器ＩＤに対応させて機器制御アプリケーションを定義したが、周辺機器４００の機種ＩＤと機器ＩＤの対応関係データベースを別途用意しても良い。
【０１４３】
図１７は、アプリデータベースの他の具体例を示す図である。図１７（Ａ）は、周辺機器４００の機種ＩＤと機器ＩＤの対応関係データベース２５６を示している。図１７（Ｂ）は、機種ＩＤに対応させて機器制御アプリケーションを定義したアプリデータベース２５１Ｂを示している。
【０１４４】
この場合アプリ管理部２５０は、端末３００から機器ＩＤが通知されると、対応関係データベース２５６を参照して機器ＩＤと対応する機種ＩＤを取得する。そしてアプリ管理部２５０は、得られた機種ＩＤとキー種別、キー、キーの値の組み合わせから機器制御アプリケーションを選択する。
【０１４５】
本実施例では、機種ＩＤ毎に機器制御アプリケーションを定義することで、同一の機器制御アプリケーションで同一機種の周辺機器４００を複数台制御することができる。
【０１４６】
次に、アプリ管理部２５０による機器制御アプリケーションの選択における各キーの優先度について説明する。
【０１４７】
本実施例では、プロファイル管理部２１０、コンテキスト管理部２２０、ロール管理部２３０がそれぞれに対応したキー（プロファイルキー、コンテキストキー、ロールキー）とキーの値を有する。また本実施例において機器制御アプリケーションは、各管理部から得られたキーとキーの値とに基づき選択される。
【０１４８】
このため、例えばアプリデータベース２５１において、１つの機器ＩＤに対して２つ以上の種類の異なるキーが含まれる場合がある。この場合、機器制御アプリケーションの選択に際し優先するキーによって、機器制御アプリケーションが制御する周辺機器４００の機能に違いが生じる場合がある。
【０１４９】
そこで本実施例のアプリ管理部２５０は、予め各キーに優先度を付与した優先度テーブルを有し、最も優先度の高いキーとキーの値から選択された機器制御アプリケーションを選択結果としても良い。
【０１５０】
図１８は、機器制御アプリケーションの選択における各キーの優先度を説明する図である。図１８に示す優先度テーブル２５７では、機器ＩＤと各キーの優先度が対応付けられている。図１８では、機器ＩＤがＤｅｖ１の周辺機器４００の機器制御アプリケーションを選択する際は、ロールキーとロールキーの値とを最優先にして選択する。
【０１５１】
また図１８では機器ＩＤ毎に優先度を付与しているが、例えば図１７に示す機種ＩＤ毎に優先度が付与されるようにしても良い。
【０１５２】
また本実施例では、各管理部から取得されたキーとキーの値から選択される機器制御アプリケーションが実現する機能をすべて許容することもできる。
【０１５３】
本実施例のアプリ管理部２５０では、例えば機器ＩＤ（機種ＩＤでも良い）、各種キーと、キーの値の対、及び機器ＩＤと各キーと値の対を条件として許容される制御機能の関係を予めテーブルに定義しておく。
【０１５４】
図１９は、機器制御アプリケーションにおいて許容される制御機能の関係を説明する図である。
【０１５５】
図１９に示す制御機能関係テーブル１９１、周辺機器４００をプロジェクタとして制御することを想定しており、「権限」キーはプロファイルキーであり、「発表者」キーはロールキーである。また制御機能関係テーブル１９１では、各キーとキーの値の対条件が満たされた場合に可能な制御には「許容される制御機能」欄に「○」が設定される。
【０１５６】
例えば本実施例では、ユーザの「権限」キーの値が「管理者」であり、且つ「発表者」キーの値が「No」である場合には、「電源制御」、「ページめくり」及び「LAN設定」の全ての制御が可能である機器制御アプリケーションが選択される。
【０１５７】
また機器制御アプリケーションは、起動パラメータにより被制御機能を指定可能できることが好まし。例えば図１９の例では、ユーザの「権限」キーの値が「一般ユーザ」であり、且つ「発表者」キーの値が「No」である場合には、プロジェクタを制御する機器制御アプリケーションの「ページめくり」の起動パラメータのみオンとすれば良い。
【０１５８】
このように本実施例では、周辺機器４００に対して選択された機器制御アプリケーションで実行する制御を、起動パラメータにより指定することで、許容される制御機能の多様な組み合わせに柔軟に対応できる。
【０１５９】
（具体例２）
以下の例では、例えば周辺機器４００を指定したユーザのプロファイル（静的な属性）に基づいて、同一の周辺機器４００に対して異なる操作が可能となるようになる例を示す。
【０１６０】
図２０は、アプリデータベースの他の具体例を示す図である。本実施例では特定の制御対象の周辺機器４００は想定しないが、例えばビデオレコーダ等、多様な操作が可能な機器を想定する。
【０１６１】
図２０に示すアプリデータベース２５１Ｃでは、機器ＩＤがＤｅｖ２である周辺機器４００に関連して、２つのプロファイルキーとキーの値の組合せが２通り対応付けられている。１つ目の組合せは、プロファイルキー「年齢」とキーの値「６０才未満／それ以外」であり、２つ目の組合せは、プロファイルキー「出身国」とキーの値「日本／日本以外」である。アプリデータベース２５１Ｃでは、各プロファイルキーとキーの値の組合せ毎に異なる機器制御アプリケーションの格納先ＵＲＬ１１，１２，１３，１４が登録されている。
【０１６２】
図２１は、プロファイルデータベースの例を示す図である。
【０１６３】
図２１のプロファイルデータベース２２１Ａには、ユーザＩＤとしてユーザＡ、ユーザＢが登録されている。またプロファイルデータベース２２１Ａには、ユーザのプロファイルキーとして年齢及び出身国が定義されており、各ユーザにおける各プロファイルキーに対する値が登録されている。
【０１６４】
プロファイルデータベース２２１Ａでは、ユーザＡ及びユーザＢのプロファイルとして、ユーザＡは年齢７０才で出身国は日本、ユーザＢは年齢３０才で出身国は米国とそれぞれ登録されている。
【０１６５】
図２２は、機器制御アプリケーションの操作画面の別の例を示す図である。図２２（Ａ）は、ＵＲＬ１３と対応する機器制御アプリケーションの操作画面１６３の例であり、図２２（Ｂ）はＵＲＬ１２と対応する機器制御アプリケーションの操作画面１６４の例である。
【０１６６】
操作画面１６３は、ユーザＡが制御対象の周辺機器４００としてＤｅｖ２を指定した際に実行される機器制御アプリケーションにより表示される。操作画面１６３では、周辺機器４００の主要な操作を行うための３つのボタンと、機器制御アプリケーションを終了するためのボタンが表示される。
【０１６７】
ユーザＡは、６０歳以上の高齢者であり、複雑な操作を行わない場合が多いと考えられる。よって操作画面１６３では、基本的な操作を行うためのボタンが見やすくなるように大きく表示されている。尚操作画面１６３には、複雑な制御を可能にするために、操作画面を遷移させるボタンを設けても良い。この場合当該ボタンをタッチすることで、複雑な制御を行う操作画面が表示される。
【０１６８】
操作画面１６４は、ユーザＢが周辺機器４００としてＤｅｖ２を指定した時に実行される機器制御アプリケーションにより表示される。操作画面１６４では、多様な操作を行うためのボタンが表示されており、さらにそれらの各ボタンは英語で表示されている。
【０１６９】
このように本実施例では、ユーザのプロファイルに応じて周辺機器４００の被制御機能を変化させ、さらに操作画面の表示に使用する言語も変えることができる。よってユーザは分かりやすく必要な周辺機器の制御を行うことができる。
【０１７０】
本実施例では、ユーザのプロファイルとして年齢と出身国を用いているが、これらの他に性別、役職（一般社員、幹部社員など）、権限（一般ユーザ、管理者など）などが用いられても良い。またユーザのプリファレンス（好み、優先度）を定義し、この定義情報に基づいて機器制御アプリケーションの言語が選択されても良い。
【０１７１】
さらに本実施例では、ユーザのプロファイルのみを用いて機器制御アプリケーションを選択するものとしたが、コンテキストキー及びロールキーを組み合わせた多様な状況に応じて機器制御アプリケーションを提供し、それらによって適切な周辺機器の制御が可能になるようにされてもよい。
【０１７２】
本発明は、以下に記載する付記のような構成が考えられる。
（付記１）
端末へ周辺機器を制御する機器制御アプリケーションを送信するサーバであって、
前記端末のユーザ毎の状況を示すユーザ状況情報が格納されたユーザ状況情報データベースと、
前記周辺機器の機器識別情報と、ユーザ状況情報と、前記周辺機器を制御する機器制御アプリケーションとが対応付けられて格納されたアプリデータベースと、
前記端末が取得した前記機器識別情報と、前記ユーザ状況情報データベースにおいて前記端末の端末識別情報により特定されるユーザ状況情報と、を取得する情報取得部と、
前記アプリデータベースにおいて、前記情報取得部が取得した前記機器識別情報と、前記ユーザ状況情報とが合致する機器制御アプリケーションを選択するアプリ選択部と、を有するサーバ。
（付記２）
前記ユーザ状況情報データベースは、種類の異なるユーザ状況情報がそれぞれに格納された複数のデータベースを含み、
前記アプリ選択部は、
前記アプリデータベースにおいて、前記複数の前記データベースにおいてそれぞれ特定された前記ユーザ状況情報が合致する機器制御アプリケーションを選択する付記１記載のサーバ。
（付記３）
前記アプリデータベースは、前記ユーザ状況情報の種類を特定する情報を含み、
前記情報取得部は、
前記アプリデータベースにおいて特定された種別のユーザ状況情報が格納されたデータベースから前記ユーザ状況情報を特定して取得する付記２記載のサーバ。
（付記４）
前記種類の異なるユーザ状況情報には優先度が設けられており、
前記情報取得部は、
優先度の高い種類のユーザ状況情報を取得する付記２記載のサーバ。
（付記５）
前記複数のデータベースは、
ユーザの属性を示すプロファイル情報と、端末識別情報と対応したユーザ識別情報とが対応付けられたプロファイルデータベースと、
ユーザが果たすべき又は果たしている役割に関する定義と、前記ユーザ識別情報とが対応付けられたロール定義データベースと、
ユーザの位置情報を含む前記ユーザの状態を示すコンテキスト情報と、前記ユーザ識別情報とが対応付けられたコンテキストデータベースと、を含み、
前記プロファイルデータベースから前記ユーザ識別情報に対応した前記プロファイルデータを取得するプロファイル管理部と、
前記ロール定義データベースから前記ユーザ識別情報に対応した前記ユーザの役割に関する定義を取得するロール管理部と、
前記コンテキストデータベースから前記ユーザ識別情報に対応した前記コンテキスト情報を取得するコンテキスト管理と、を有する付記２ないし４の何れか一項に記載のサーバ。
（付記６）
前記ロール管理部は、
前記ロール定義データベースを参照して前記役割に関する定義を導出するロール導出部を有する付記５記載のサーバ。
（付記７）
前記ロール定義データベースは、
前記ユーザ識別情報と、ユーザの位置情報に基づく役割に関する定義とが格納された位置定義データベースと、
前記ユーザ識別情報と、ユーザのスケジュールに基づく役割に関する定義とが格納されたスケジュール定義データベースと、を含み、
前記ロール導出部は、
ユーザの位置に基づき前記役割を導出する場合には、前記コンテキストデータベースと前記位置定義データベースとを参照し、
ユーザのスケジュールに基づき前記役割を導出する場合には、タイマ部から得られる時刻情報と、前記スケジュール定義データベースとを参照する付記６記載のサーバ。
（付記８）
コンピュータに、
周辺機器の機器識別情報と、端末のユーザ毎の状況を示すユーザ状況情報が格納されたユーザ状況情報データベースにおいて前記端末の端末識別情報により特定されるユーザ状況情報と、を取得する情報取得処理と、
前記周辺機器の機器識別情報と、ユーザ状況情報と、前記周辺機器を制御する機器制御アプリケーションとが対応付けられて格納されたアプリデータベースにおいて、前記情報取得処理で取得した前記機器識別情報と、前記ユーザ状況情報とが合致する機器制御アプリケーションを選択する選択処理と、を実行させる機器制御プログラム。
（付記９）
コンピュータが、
周辺機器の機器識別情報と、端末のユーザ毎の状況を示すユーザ状況情報が格納されたユーザ状況情報データベースにおいて前記端末の端末識別情報により特定されるユーザ状況情報を取得し、
周辺機器の機器識別情報と、ユーザ状況情報と、前記周辺機器を制御する機器制御アプリケーションとが対応付けられて格納されたアプリデータベースにおいて、取得した前記機器識別情報と、前記ユーザ状況情報とが合致する機器制御アプリケーションを選択する機器制御方法。
（付記１０）
端末と、端末に制御される周辺機器と、前記周辺機器を制御する機器制御アプリケーションを前記端末へ送信するサーバとを含む機器制御システムであって、
前記サーバは、
前記端末のユーザ毎の状況を示すユーザ状況情報が格納されたユーザ状況情報データベースと、
前記周辺機器の機器識別情報と、ユーザ状況情報と、前記周辺機器を制御する機器制御アプリケーションとが対応付けられて格納されたアプリデータベースと、
前記端末が取得した前記機器識別情報と、前記ユーザ状況情報データベースにおいて前記端末の端末識別情報により特定されるユーザ状況情報と、を取得する情報取得部と、
前記アプリデータベースにおいて、前記情報取得部が取得した前記機器識別情報と、前記ユーザ状況情報とが合致する機器制御アプリケーションを選択するアプリ選択部と、
選択された前記機器制御アプリケーションを前記端末へ送信するアプリ送信部を有し、
前記端末は、
受信した前機器制御アプリケーションを実行し、前記周辺機器を操作する操作画面を表示させる機器制御システム。
【０１７３】
本発明は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【符号の説明】
【０１７４】
１００  機器制御システム
２００  サーバ
２１０  端末管理部
２１１  端末データベース
２２０  プロファイル管理部
２２１  プロファイルデータベース
２３０  ロール管理部
２３１  ロール定義データベース
２４０  コンテキスト管理部
２４１  コンテキストデータベース
２５０  アプリ管理部
２５１  アプリデータベース２５１
３００  端末
４００  周辺機器
【図１】
2013196223.tif 000003
【図２】
2013196223.tif 000004
【図３】
2013196223.tif 000005
【図４】
2013196223.tif 000006
【図５】
2013196223.tif 000007
【図６】
2013196223.tif 000008
【図７】
2013196223.tif 000009
【図８】
2013196223.tif 000010
【図９】
2013196223.tif 000011
【図１０】
2013196223.tif 000012
【図１１】
2013196223.tif 000013
【図１２】
2013196223.tif 000014
【図１３】
2013196223.tif 000015
【図１４】
2013196223.tif 000016
【図１５】
2013196223.tif 000017
【図１６】
2013196223.tif 000018
【図１７】
2013196223.tif 000019
【図１８】
2013196223.tif 000020
【図１９】
2013196223.tif 000021
【図２０】
2013196223.tif 000022
【図２１】
2013196223.tif 000023
【図２２】
2013196223.tif 000024