(57)【特許請求の範囲】
【請求項１】
ソフトウェアエージェントを介してネットワークに接続された機器を制御することにより提供される実空間アプリケーションサービスを制御するシステムであって、
前記実空間アプリケーションサービスは、これに対応するアプリケーションソフトウェアが実行されることにより実現され、前記実空間アプリケーションサービスの内容は前記アプリケーションソフトウェアの記述できる範囲において自由に変えることができるとともに、前記アプリケーションソフトウェアは複数同時に存在し、動作することが可能であり、
前記実空間アプリケーションサービス、前記実空間アプリケーションサービスを制御するシステムのユーザ、前記機器、前記実空間アプリケーションサービス及び前記実空間アプリケーションサービスが提供される場所のそれぞれに対応したソフトウェアエージェントを具備し、
前記ソフトウェアエージェントは、相互に情報通信を行う通信手段、情報を記憶する記憶手段及び動作を制御する制御手段を具備し、
前記実空間アプリケーションサービスが提供される場所に対応したソフトウェアエージェントが具備する記憶手段には、前記実空間アプリケーションサービスが提供される場所の状態、属性に関する情報、当該場所に設置された機器のリスト、当該機器の個々について、機器を使用する実空間アプリケーションサービスの識別情報、機器操作に先立ち実行する占有操作種別に関する情報が保持され、
前記機器に対応するソフトウェアエージェントが具備する記憶手段には、前記機器の状態、属性に関する情報、前記機器と通信するためのプロトコルの情報、前記機器を操作するためのコマンドに関する情報、当該機器を使用する実空間アプリケーションサービスの識別情報、機器操作に先立ち実行する占有操作種別に関する情報が保持され、
前記ユーザに対応するソフトウェアエージェントが具備する記憶手段には、前記ユーザの状態、属性に関する情報、当該ユーザが享受する実空間アプリケーションサービスの識別情報を保持され、
前記実空間アプリケーションサービスに対応するソフトウェアエージェントが具備する記憶手段には、当該実空間アプリケーションサービスが使用する機器の状態、属性、及び機器に対応するソフトウェアエージェントと通信するための情報、当該実空間アプリケーションサービスのユーザの識別情報が保持され、
前記場所に対応したソフトウェアエージェント、前記機器に対応するソフトウェアエージェント、前記ユーザに対応するソフトウェアエージェント及び実空間アプリケーションサービスに対応するソフトウェアエージェントが連携して動作することにより機器の競合を回避して前記機器の制御を行う
ことを特徴とする実空間アプリケーションサービスを制御するシステム。
【請求項２】
前記実空間アプリケーションサービスに対応するソフトウェアエージェントは、１つの親ソフトウェアエージェントの下に子ソフトウェアエージェントが接続されるツリー構造を有し、当該実空間アプリケーションサービスが使用する機器の組み合わせ毎に子ソフトウェアエージェントがひとつ生成されることを特徴とする請求項１に記載の実空間アプリケーションサービスを制御するシステム。
【請求項３】
前記実空間アプリケーションサービスが提供される場所に対応するソフトウェアエージェントは、その場所に設置された個々の機器について、機器を使用する実空間アプリケーションサービスの情報を保持し、
前記実空間アプリケーションサービスは、自身に対応するソフトウェアエージェントを介して、使用する機器の使用状況を、当該実空間アプリケーションサービスが提供される場所に対応するソフトウェアエージェントに問い合わせすることにより取得し、
他の実空間アプリケーションサービスに使用されていない場合、当該実空間アプリケーションサービスが提供される場所に対応するソフトウェアエージェントが保持する機器使用情報を更新して使用する権利を得ることを特徴とする請求項１または請求項２のいずれかに記載の実空間アプリケーションサービスを制御するシステム。
【請求項４】
前記実空間アプリケーションサービスは、自身に対応するソフトウェアエージェントを介して、使用する機器の使用状況を、当該機器に対応するソフトウェアエージェントに問い合わせすることにより取得し、
他の実空間アプリケーションサービスに使用されていない場合、当該機器が保持する当該機器を使用する実空間アプリケーションサービス情報を更新して使用する権利を得ることを特徴とする請求項１から請求項３のいずれか１項に記載の実空間アプリケーションサービスを制御するシステム。
【請求項５】
前記実空間アプリケーションサービスに対応するソフトウェアエージェントは、使用する各々の機器の占有する際に、当該機器を、当該実空間アプリケーションサービスが起動されてから終了するまで占有し続けるか、または、操作するたびに占有し、当該操作が終了したら占有を解放するかのいずれを使うかを当該機器のプロファイル情報として保持することを特徴とする請求項１から請求項４のいずれか１項に記載の実空間アプリケーションサービスを制御するシステム。
【請求項６】
前記実空間アプリケーションサービスは自身が必要とする機器を使用する権利を得た後、機器操作命令及び機器からの入力情報を、自身に対応するソフトウェアエージェントと当該機器に対応するソフトウェアエージェント間の通信を経由して送信または受信することを特徴とする請求項１から請求項５のいずれか１項に記載の実空間アプリケーションサービスを制御するシステム。
【請求項７】
ソフトウェアエージェントを介してネットワークに接続された機器を制御することにより提供される実空間アプリケーションサービスを制御するシステムにおける制御方法であって、
前記実空間アプリケーションサービスは、これに対応するアプリケーションソフトウェアが実行されることにより実現され、前記実空間アプリケーションサービスの内容は前記アプリケーションソフトウェアの記述できる範囲において自由に変えることができるとともに、前記アプリケーションソフトウェアは複数同時に存在し、動作することが可能であり、
前記実空間アプリケーションサービス、前記実空間アプリケーションサービスを制御するシステムのユーザ、前記機器、前記実空間アプリケーションサービス及び前記実空間アプリケーションサービスが提供される場所のそれぞれに対応したソフトウェアエージェントを具備し、
前記ソフトウェアエージェントは、相互に情報通信を行う通信手段、情報を記憶する記憶手段及び動作を制御する制御手段を具備し、
前記実空間アプリケーションサービスが提供される場所に対応したソフトウェアエージェントが具備する記憶手段には、前記実空間アプリケーションサービスが提供される場所の状態、属性に関する情報、当該場所に設置された機器のリスト、当該機器の個々について、機器を使用する実空間アプリケーションサービスの識別情報、機器操作に先立ち実行する占有操作種別に関する情報が保持され、
前記機器に対応するソフトウェアエージェントが具備する記憶手段には、前記機器の状態、属性に関する情報、前記機器と通信するためのプロトコルの情報、前記機器を操作するためのコマンドに関する情報、当該機器を使用する実空間アプリケーションサービスの識別情報、機器操作に先立ち実行する占有操作種別に関する情報が保持され、
前記ユーザに対応するソフトウェアエージェントが具備する記憶手段には、前記ユーザの状態、属性に関する情報、当該ユーザが享受する実空間アプリケーションサービスの識別情報を保持され、
前記実空間アプリケーションサービスに対応するソフトウェアエージェントが具備する記憶手段には、当該実空間アプリケーションサービスが使用する機器の状態、属性、及び機器に対応するソフトウェアエージェントと通信するための情報、当該実空間アプリケーションサービスのユーザの識別情報が保持され、
前記場所に対応したソフトウェアエージェント、前記機器に対応するソフトウェアエージェント、前記ユーザに対応するソフトウェアエージェント及び実空間アプリケーションサービスに対応するソフトウェアエージェントが連携して動作することにより機器の競合を回避して前記機器の制御を行う
ことを特徴とする実空間アプリケーションサービスの制御方法。
【請求項８】
前記実空間アプリケーションサービスに対応するソフトウェアエージェントは、１つの親ソフトウェアエージェントの下に子ソフトウェアエージェントが接続されるツリー構造を有し、当該実空間アプリケーションサービスが使用する機器の組み合わせ毎に子ソフトウェアエージェントがひとつ生成されることを特徴とする請求項７に記載の実空間アプリケーションサービスの制御方法。
【請求項９】
前記実空間アプリケーションサービスが提供される場所に対応するソフトウェアエージェントは、その場所に設置された個々の機器について、機器を使用する実空間アプリケーションサービスの情報を保持し、
前記実空間アプリケーションサービスは、自身に対応するソフトウェアエージェントを介して、使用する機器の使用状況を、当該実空間アプリケーションサービスが提供される場所に対応するソフトウェアエージェントに問い合わせすることにより取得し、
他の実空間アプリケーションサービスに使用されていない場合、当該実空間アプリケーションサービスが提供される場所に対応するソフトウェアエージェントが保持する機器使用情報を更新して使用する権利を得ることを特徴とする請求項７または請求項８のいずれかに記載の実空間アプリケーションサービスの制御方法。
【請求項１０】
前記実空間アプリケーションサービスは、自身に対応するソフトウェアエージェントを介して、使用する機器の使用状況を、当該機器に対応するソフトウェアエージェントに問い合わせすることにより取得し、
他の実空間アプリケーションサービスに使用されていない場合、当該機器が保持する当該機器を使用する実空間アプリケーションサービス情報を更新して使用する権利を得ることを特徴とする請求項７から請求項９のいずれか１項に記載の実空間アプリケーションサービスの制御方法。
【請求項１１】
前記実空間アプリケーションサービスに対応するソフトウェアエージェントは、使用する各々の機器の占有する際に、当該機器を、当該実空間アプリケーションサービスが起動されてから終了するまで占有し続けるか、または、操作するたびに占有し、当該操作が終了したら占有を解放するかのいずれを使うかを当該機器のプロファイル情報として保持することを特徴とする請求項７から請求項１０のいずれか１項に記載の実空間アプリケーションサービスの制御方法。
【請求項１２】
前記実空間アプリケーションサービスは自身が必要とする機器を使用する権利を得た後、機器操作命令及び機器からの入力情報を、自身に対応するソフトウェアエージェントと当該機器に対応するソフトウェアエージェント間の通信を経由して送信または受信することを特徴とする請求項７から請求項１１のいずれか１項に記載の実空間アプリケーションサービスの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、インターネットなどのネットワークによって相互に接続された、家電を始めとする様々な機器、センサ、アクチュエータなどを用いることにより実現される実空間アプリケーションサービスの制御システム及び制御方法に関する。
【背景技術】
【０００２】
情報家電を利用したホームネットワークサービスは、既に実用化フェーズから普及フェーズに差し掛かりつつある技術として一般への認知度も徐々に高まりつつある。ホームセキュリティ、ホームコントロール、エンターテインメント、生活支援などの分野で様々なサービスの提案が行われ、機械警備（ホームセキュリティ）、老人の見守りシステム、ホームオートメーション、遠隔検針など、実用化されているものも多い。将来的に、その到来が予想されている、あらゆるモノがネットワークにつながるユビキタスネットワーク社会においては、上記の情報家電だけでなく、その他の様々な機器、センサ、アクチュエータなどがネットワーク接続され、ホームネットワークサービス（現在と区別するため、ホームネットワークサービスの進化形を“実空間アプリケーション”と呼ぶ）の多様性、付加価値性もいっそう向上していくことが予想される。
【０００３】
実空間アプリケーションの制御においては、ネットワーク接続されるモノの種類や数が飛躍的に増えるために、大きなスケーラビリティが要求される。従来、人、機器、場の一つ一つに対応して、エージェントと呼ばれる小さなソフトウェアを生成し、人、機器、場の状態管理、通信制御などを実行させることにより、スケーラビリティの要求条件を満足させることを目的とした技術が提案されている（非特許文献１〜３）。
【０００４】
図１４は、従来技術におけるサービス提供の仕組みを示す図である。ここでは、人Ｐが部屋Ｑに入室した時、誰もいなければ自動的にテレビＲの電源をオンにするというシナリオを持つサービスが提供されるものとする。以下、順を追って、従来システムの動作を説明する。人Ｐが部屋Ｑに入室すると、それをセンサＳが検出する。センサＳは、自らに対応する機器エージェントＤＡ（Ｓ）に人Ｐが入室したことを通知する（ステップＳ１０１）。続いて、ＤＡ（Ｓ）は、部屋ＱのエージェントであるＦＡ（Ｑ）に、人Ｐが入室したことを通知する（ステップＳ１０２）。
【０００５】
さらに、ＦＡ（Ｑ）は人ＰのエージェントであるＨＡ（Ｐ）に人Ｐが入室したことを通知する（ステップＳ１０３）。ＨＡ（Ｐ）には、サービス起動条件Ｔが保持され、ＨＡ（Ｐ）は人Ｐの入室通知を受け取ると、サービス起動条件Ｔを含む人Ｐのプロファイル情報をＦＡ（Ｑ）へ返信する（ステップＳ１０４）。ＦＡ（Ｑ）はサービス起動条件Ｔを検査し、部屋Ｑ内に人Ｐだけが存在する場合に、テレビＲの電源をオンにするように、テレビＲの機器エージェントＤＡ（Ｒ）に対して命令を送信する（ステップＳ１０５）。それを受信したＤＡ（Ｒ）は、電源オン命令を実際の機器を操作するコマンドに翻訳して、テレビＲに送信する（ステップＳ１０６）。これにより、テレビＲの電源が入ることになる。
【０００６】
ステップＳ１０１、Ｓ１０２、Ｓ１０３、Ｓ１０４、Ｓ１０６は予め規定されたステップであり、あるイベント（Ｅ）が発生した時に、特定の条件（Ｃ）であれば、指定されたアクション（Ａ）を実行することが定められたＥＣＡルールにより実現される。条件によらず常に同じ動作を行う。ステップＳ１０５は、サービス起動条件Ｔに従って実施される条件判断の結果に応じて変わるものであるが、やはりＥＣＡルールを用いて実現される。また、使用される機器は、そのプロファイル情報として、自身を使用中である人Ｐの識別子を保持する。他の人が当該機器を使用しようとする場合、当該プロファイル情報が参照され、既に当該機器を使用している実空間アプリケーションがない場合に限って、その使用が許可されることにより、複数の実空間アプリケーションが同一の機器を使用しようとする機器競合の発生を防止する仕組みとなっている。このようなエージェントは前述の通り小さなソフトウェアであるので、これらのセンサやアクチュエータ（例えばテレビＲ）に通信回線が接続されたサーバにてエージェントを実行することにより、上記のシナリオを実行することができる。
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】神林，武本，秦，内山，寺元，“実空間エージェントによるサービス提供の実現手法に関する一検討，”信学会総合大会，Ｂ−２０−１３，Ｍａｒ．２００９．
【非特許文献２】秦，神林，内山，武本，寺元，“実空間サービスのためのデバイス制御オーバレイネットワーク，”信学会総合大会，Ｂ−２０−１４，Ｍａｒ．２００９．
【非特許文献３】武本神林，秦，内山，寺元，“実空間サービス実現のためのエージェントモデル，”信学会総合大会，Ｂ−２０−１５，Ｍａｒ．２００９．
【発明の概要】
【発明が解決しようとする課題】
【０００８】
前述した従来技術によると、実現しようとするシナリオはＥＣＡルールの集合に分解して、予めイベントに対応するエージェントに埋め込んでおく必要がある。実空間アプリケーションサービス開発者が意図するシナリオを、操作対象の機器、ステップ毎の操作内容、あるいは実行順序等を考慮して、複数のＥＣＡルールに分解する作業は、シナリオが複雑になるほど技術的な難易度が上がり、容易に解決できる課題ではない。また、シナリオ導入時及び削除時に、複数の機器、場、人のエージェントに分散して、ＥＣＡルールやプロファイル情報を配置することは、サービス開発者または利用者に多大なコスト負担を強いることになる。さらに、このような複数ＥＣＡルールのエージェント埋め込みによる実現手法では、シナリオが複数存在する場合に、同一のエージェントに複数のルールが設定されることとなり、ルールとシナリオの対応を取るための管理が難しくなる。このため複数のシナリオが混じってしまうといった不都合が起きる可能性が高くなるという問題がある。
【０００９】
このシナリオは、複数のＥＣＡルールにより実現されるが、ある１つのシナリオを一塊のものとして管理する仕組みはない。従って、そのシナリオに関する情報、例えば、シナリオの名称やＩＤといった基本的なものから、シナリオが使用する全機器のリストは何か、といった情報まで、それらを管理・保持する仕組みがない。このことは、シナリオ単位を認識して実施すべき様々な処理ができないことを意味する。機器競合の検出については、個々の機器エージェントにより独立に実施されるため、実空間アプリケーションが複数の機器を使用する場合、そのシナリオが部分的に可能である、あるいは不可能であるなどの現象が起きる可能性があり、アプリケーションの実行形態として不適切であるといった問題がある。また、個々のシナリオを人に帰属させ、機器を占有し使用する主体を人としているので、例えば、ＴＶ視聴のような、複数の人が同一のシナリオを一緒に体験するようなケースには対応できないという問題がある。
【００１０】
本発明は、このような事情に鑑みてなされたもので、情報家電だけでなく様々な機器、センサ、アクチュエータなど、膨大な数の物を取り扱うためのスケーラビリティ性を実現するエージェントを用いた実空間アプリケーション制御方法において、シナリオの導入及び解除に伴うコスト低減、適切な機器競合の検出及び解消方法、シナリオを複数ユーザで利用可能とする利用形態の多様性を実現することができる実空間アプリケーションサービスの制御システム及び制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明は、ソフトウェアエージェントを介してネットワークに接続された機器を制御することにより提供される実空間アプリケーションサービスを制御するシステムであって、前記実空間アプリケーションサービスは、これに対応するアプリケーションソフトウェアが実行されることにより実現され、その内容は前記アプリケーションソフトウェアの記述できる範囲において自由に変えることができるともに、前記アプリケーションソフトウェアは複数同時に存在し、動作することが可能であり、前記実空間アプリケーションサービス、前記実空間アプリケーションサービスを制御するシステムのユーザ、前記機器、前記実空間アプリケーションサービス及び前記実空間アプリケーションサービスが提供される場所のそれぞれに対応したソフトウェアエージェントを具備することを特徴とする。
【００１２】
本発明は、前記ソフトウェアエージェントは、相互に情報通信を行う通信手段、情報を記憶する記憶手段及び動作を制御する制御手段を具備し、前記実空間アプリケーションサービスが提供される場所に対応したソフトウェアエージェントが具備する記憶手段には、前記実空間アプリケーションサービスが提供される場所の状態、属性に関する情報、当該場所に設置された機器のリスト、当該機器の個々について、機器を使用する実空間アプリケーションサービスの識別情報、機器操作に先立ち実行する占有操作種別に関する情報が保持され、前記機器に対応するソフトウェアエージェントが具備する記憶手段には、前記機器の状態、属性に関する情報、前記機器と通信するためのプロトコル等の情報、前記機器を操作するためのコマンドに関する情報、当該機器を使用する実空間アプリケーションサービスの識別情報、機器操作に先立ち実行する占有操作種別に関する情報が保持され、前記ユーザに対応するソフトウェアエージェントが具備する記憶手段には、前記ユーザの状態、属性に関する情報、当該ユーザが享受する実空間アプリケーションサービスの識別情報を保持され、前記実空間アプリケーションサービスに対応するソフトウェアエージェントが具備する記憶手段には、当該アプリケーションサービスが使用する機器の状態、属性、及び機器に対応するソフトウェアエージェントと通信するための情報、当該アプリケーションサービスのユーザの識別情報が保持されることを特徴とする。
【００１３】
本発明は、前記実空間アプリケーションサービスに対応するソフトウェアエージェントは、１つの親ソフトウェアエージェントの下に子ソフトウェアエージェントが接続されるツリー構造を有し、当該実空間アプリケーションサービスが使用する機器の組み合わせ毎に子ソフトウェアエージェントがひとつ生成されることを特徴とする。
【００１４】
本発明は、前記実空間アプリケーションサービスが提供される場所に対応するソフトウェアエージェントは、その場所に設置された個々の機器について、機器を使用する実空間アプリケーションサービスの情報を保持し、前記実空間アプリケーションサービスは、自身に対応するソフトウェアエージェントを介して、使用する機器の使用状況を、当該実空間アプリケーションサービスが提供される場所に対応するソフトウェアエージェントに問い合わせすることにより取得し、他の実空間アプリケーションサービスに使用されていない場合、当該実空間アプリケーションサービスが提供される場所に対応するソフトウェアエージェントが保持する機器使用情報を更新して使用する権利を得ることを特徴とする。
【００１５】
本発明は、前記実空間アプリケーションサービスは、自身に対応するソフトウェアエージェントを介して、使用する機器の使用状況を、当該機器に対応するソフトウェアエージェントに問い合わせすることにより取得し、他の実空間アプリケーションサービスに使用されていない場合、当該機器が保持する当該機器を使用する実空間アプリケーションサービス情報を更新して使用する権利を得ることを特徴とする。
【００１６】
本発明は、前記実空間アプリケーションサービスに対応するソフトウェアエージェントは、使用する各々の機器の占有する際に、当該機器を、当該アプリケーションサービスが起動されてから終了するまで占有し続けるか、または、操作するたびに占有し、当該操作が終了したら占有を解放するかのいずれを使うかを当該機器のプロファイル情報として保持することを特徴とする。
【００１７】
本発明は、前記実空間アプリケーションサービスは自身が必要とする機器を使用する権利を得た後、機器操作命令及び機器からの入力情報を、自身に対応するソフトウェアエージェントと当該機器に対応するソフトウェアエージェント間の通信を経由して送信または受信することを特徴とする。
【００１８】
本発明は、ソフトウェアエージェントを介してネットワークに接続された機器を制御することにより提供される実空間アプリケーションサービスを制御するシステムにおける制御方法であって、前記実空間アプリケーションサービスは、これに対応するアプリケーションソフトウェアが実行されることにより実現され、その内容は前記アプリケーションソフトウェアの記述できる範囲において自由に変えることができるともに、前記アプリケーションソフトウェアは複数同時に存在し、動作することが可能であり、前記実空間アプリケーションサービス、前記実空間アプリケーションサービスを制御するシステムのユーザ、前記機器、前記実空間アプリケーションサービス及び前記実空間アプリケーションサービスが提供される場所のそれぞれに対応したソフトウェアエージェントを具備することを特徴とする。
【００１９】
本発明は、前記ソフトウェアエージェントは、相互に情報通信を行う通信手段、情報を記憶する記憶手段及び動作を制御する制御手段を具備し、前記実空間アプリケーションサービスが提供される場所に対応したソフトウェアエージェントが具備する記憶手段には、前記実空間アプリケーションサービスが提供される場所の状態、属性に関する情報、当該場所に設置された機器のリスト、当該機器の個々について、機器を使用する実空間アプリケーションサービスの識別情報、機器操作に先立ち実行する占有操作種別に関する情報が保持され、前記機器に対応するソフトウェアエージェントが具備する記憶手段には、前記機器の状態、属性に関する情報、前記機器と通信するためのプロトコル等の情報、前記機器を操作するためのコマンドに関する情報、当該機器を使用する実空間アプリケーションサービスの識別情報、機器操作に先立ち実行する占有操作種別に関する情報が保持され、前記ユーザに対応するソフトウェアエージェントが具備する記憶手段には、前記ユーザの状態、属性に関する情報、当該ユーザが享受する実空間アプリケーションサービスの識別情報を保持され、前記実空間アプリケーションサービスに対応するソフトウェアエージェントが具備する記憶手段には、当該アプリケーションサービスが使用する機器の状態、属性、及び機器に対応するソフトウェアエージェントと通信するための情報、当該アプリケーションサービスのユーザの識別情報が保持されることを特徴とする。
【００２０】
本発明は、前記実空間アプリケーションサービスに対応するソフトウェアエージェントは、１つの親ソフトウェアエージェントの下に子ソフトウェアエージェントが接続されるツリー構造を有し、当該実空間アプリケーションサービスが使用する機器の組み合わせ毎に子ソフトウェアエージェントがひとつ生成されることを特徴とする。
【００２１】
本発明は、前記実空間アプリケーションサービスが提供される場所に対応するソフトウェアエージェントは、その場所に設置された個々の機器について、機器を使用する実空間アプリケーションサービスの情報を保持し、前記実空間アプリケーションサービスは、自身に対応するソフトウェアエージェントを介して、使用する機器の使用状況を、当該実空間アプリケーションサービスが提供される場所に対応するソフトウェアエージェントに問い合わせすることにより取得し、他の実空間アプリケーションサービスに使用されていない場合、当該実空間アプリケーションサービスが提供される場所に対応するソフトウェアエージェントが保持する機器使用情報を更新して使用する権利を得ることを特徴とする。
【００２２】
本発明は、前記実空間アプリケーションサービスは、自身に対応するソフトウェアエージェントを介して、使用する機器の使用状況を、当該機器に対応するソフトウェアエージェントに問い合わせすることにより取得し、他の実空間アプリケーションサービスに使用されていない場合、当該機器が保持する当該機器を使用する実空間アプリケーションサービス情報を更新して使用する権利を得ることを特徴とする。
【００２３】
本発明は、前記実空間アプリケーションサービスに対応するソフトウェアエージェントは、使用する各々の機器の占有する際に、当該機器を、当該アプリケーションサービスが起動されてから終了するまで占有し続けるか、または、操作するたびに占有し、当該操作が終了したら占有を解放するかのいずれを使うかを当該機器のプロファイル情報として保持することを特徴とする。
【００２４】
本発明は、前記実空間アプリケーションサービスは自身が必要とする機器を使用する権利を得た後、機器操作命令及び機器からの入力情報を、自身に対応するソフトウェアエージェントと当該機器に対応するソフトウェアエージェント間の通信を経由して送信または受信することを特徴とする。
【発明の効果】
【００２５】
本発明によれば、エージェントモデルを用いた実空間アプリケーションサービス制御システムにおいて、複数のＥＣＡルールをエージェントに保持させ、それらの連携によりシナリオを実現させていた従来方式と比較して、シナリオの導入、削除、及び管理が大幅に容易になる。また、機器の使用権の確保及び機器の操作を実空間アプリケーションサービスが、自身に対応するエージェントを通して実施することにより、一つの実空間アプリケーションサービスが同時に複数の機器を占有して操作すること、及び、複数のユーザで同一の実空間アプリケーションサービスを使用する協調利用が実現可能になるという効果が得られる。
【図面の簡単な説明】
【００２６】
【図１】本発明の第１実施形態におけるソフトウェア及びハードウェアの構成を示す図である。
【図２】図１に示すシステムの動作を示すフローチャートである。
【図３】図１に示すシステムの詳細な処理動作を示すシーケンス図である。
【図４】図１に示すシステムの詳細な処理動作を示すシーケンス図である。
【図５】本発明の第２実施形態におけるソフトウェア及びハードウェアの構成を示す図である。
【図６】図５に示すシステムの動作を示すフローチャートである。
【図７】図５に示すシステムにおいて、後続のユーザが利用申請をしてから実空間アプリケーション１のプロファイル情報を更新する詳細な処理動作を示すシーケンス図である。
【図８】機器セット毎にエージェントを割り当てる構成を示す図である。
【図９】である。
【図１０】本発明の第３実施形態におけるソフトウェア及びハードウェアの構成を示す図である。
【図１１】実空間アプリケーション１２が使用する機器を確保する処理動作を示すシーケンス図である。
【図１２】実空間アプリケーション１２が使用する機器を確保する処理動作を示すシーケンス図である。
【図１３】本発明の第４実施形態における実空間アプリケーションの実行処理動作を示すシーケンス図である。
【図１４】従来技術におけるサービス提供の仕組みを示す図である。
【発明を実施するための形態】
【００２７】
＜第１実施形態＞
以下、図面を参照して、本発明の第１実施形態による実空間アプリケーションサービスの制御システムを説明する。図１は第１実施形態におけるソフトウェア及びハードウェアの構成を示す図である。ここでは、実体として、ある部屋に人が１人存在し、２つの機器を使用するための実空間アプリケーションが動作する想定である。それぞれの実体には、対応するソフトウェアエージェントが存在する。部屋には、部屋エージェント（以下、ＦＡと称する）２、実空間アプリケーション１には、実空間アプリケーションエージェント（以下、ＳＡと称する）３、人には、人エージェント（以下、ＨＡと称する）４が存在する。また、実際の機器７には、機器エージェント（以下、ＤＡと称する）５、機器８には、機器エージェント（以下、ＤＡと称する）６が存在する。図１に示すシステムは、実空間アプリケーション１が存在するアプリケーション層、各エージェントが存在するプラットフォーム層、機器が存在する物理層から構成する。実空間アプリケーション１はアプリケーションの提供元から提供されるものである。
【００２８】
各ソフトウェアエージェントは、相互に情報通信を行う通信手段、情報を記憶する記憶手段及び動作を制御する制御手段を備えている。ＦＡ２が備える記憶手段には、実空間アプリケーションサービスが提供される場所の状態、属性に関する情報、当該場所に設置された機器のリスト、当該機器の個々について、機器を使用する実空間アプリケーションサービスの識別情報、機器操作に先立ち実行する占有操作種別に関する情報が保持されている。ＤＡ５、６が備える記憶手段には機器の状態、属性に関する情報、機器と通信するためのプロトコル等の情報、機器を操作するためのコマンドに関する情報、当該機器を使用する実空間アプリケーションサービスの識別情報、機器操作に先立ち実行する占有操作種別に関する情報が保持されている。また、ＨＡ４が備える記憶手段には、ユーザ（人）の状態、属性に関する情報、当該ユーザが享受する実空間アプリケーションサービスの識別情報を保持されている。さらに、ＳＡ３が備える記憶手段には、当該アプリケーションサービスが使用する機器の状態、属性、及び機器に対応する各ソフトウェアエージェントと通信するための情報、当該アプリケーションサービスのユーザの識別情報が保持されている。
【００２９】
次に、図２を参照して、実空間アプリケーション１を起動し実行させる処理動作を説明する。図２は、図１に示すシステムの動作を示すフローチャートである。まず、ＳＡ３が起動依頼を受信する（ステップＳ１）と、ＳＡ３は、実空間アプリケーション（図面においてはアプリケーションをＡＰと図示する）１を起動する（ステップＳ２）。起動依頼は、例えば、人が部屋に入室したら自動的に起動するように予め設定されることや人が持つ携帯端末に表示される利用可能サービスが一覧から選択されることなどによって実空間アプリケーション１への起動依頼が発出される。
【００３０】
実空間アプリケーション１は起動した後、待機状態となり、実空間アプリケーション１が使用する機器が確保できるか否かを判定することにより、他の実空間アプリケーションに既に対象機器が使用されていないかチェックする（ステップＳ３）。対象機器が使用されていなければ（対象機器が使用可能であれば）、ＨＡ４が管理する人のプロファイルに、実空間アプリケーション１を使用していることを示す情報を追加してプロファイルを更新する（ステップＳ４）。以上の処理が完了した後、実空間アプリケーション１が実行され、実際の機器操作が行われる（ステップＳ５）。一方、使用する対象機器が既に他の実空間アプリケーションに使用されている場合は、実空間アプリケーション１は実行されず、実空間アプリケーション１の実行は失敗となる（ステップＳ６）。
【００３１】
次に、図３を参照して、図１に示すシステムの詳細な処理動作を説明する。図３は、図１に示すシステムの詳細な処理動作を示すシーケンス図である。まず、ＨＡ４は、ＳＡ３に対して、実空間アプリケーション１を起動するトリガを送信する（ステップＳ１１）。これ受けて、ＳＡ３が、実空間アプリケーション１に対して起動命令を送信する（ステップＳ１２）と、実空間アプリケーション１が起動し、応答をＳＡ３に返す（ステップＳ１３）。
【００３２】
次に、ＳＡ３は、ＦＡ２に対して機器占有依頼を送信する（ステップＳ１４）。これを受けて、ＦＡ２が、ＤＡ５に対して機器占有依頼を送信する（ステップＳ１５）と、ＤＡ５は、機器７が占有可能であればプロファイルを更新し（ステップＳ１６）、応答をＦＡ２へ返す（ステップＳ１７）。また、ＦＡ２が、ＤＡ６に対して機器占有依頼を送信する（ステップＳ１８）と、ＤＡ６は、機器８が占有可能であればプロファイルを更新し（ステップＳ１９）、応答をＦＡ２へ返す（ステップＳ２０）。そして、ＦＡ２は、機器占有依頼に対する応答（ＯＫ）をＳＡ３へ返す（ステップＳ２１）。
【００３３】
次に、ＳＡ３は、実空間アプリケーション１に対して実行許可を送信する（ステップＳ２２）。これを受けて、実空間アプリケーション１は、実行可能状態となり、応答をＳＡ３に返す（ステップＳ２３）。ＳＡ３は、応答が返された時点で、ＨＡ４に対して起動トリガに対する起動ＯＫの応答を返す（ステップＳ２４）。これを受けて、ＨＡ４は、プロファイルを更新する（ステップＳ２５）。これ以降、実空間アプリケーション１が、必要に応じて、ＳＡ３に対して、機器７、機器８を操作するために機器操作命令を送信すると（ステップＳ２６、Ｓ２８）、ＳＡ３は、ＤＡ５、ＤＡ６に対して、機器操作命令を送信する（ステップＳ２７、Ｓ２９）。
【００３４】
このように、機器７、８の占有状況をＦＡ２が把握しているので、機器占有依頼はＦＡ２に送信され、他の実空間アプリケーションに対象機器が使用されていない場合、機器のプロファイル情報が更新され、実空間アプリケーション１が当該機器を使用することが可能な状態となる。
【００３５】
次に、図４を参照して、図１に示すシステムにおける他の詳細な処理動作を説明する。図４に示す処理動作は、図３に示す処理動作と異なり、機器占有のためのネゴシエーションを個々の機器エージェント（ＤＡ５、ＤＡ６）と個別に実施するものである。まず、ＨＡ４は、ＳＡ３に対して、実空間アプリケーション１を起動するトリガを送信する（ステップＳ３１）。これ受けて、ＳＡ３が、実空間アプリケーション１に対して起動命令を送信する（ステップＳ３２）と、実空間アプリケーション１が起動し、応答をＳＡ３に返す（ステップＳ３３）。
【００３６】
次に、ＳＡ３が、ＤＡ５に対して機器占有依頼を送信する（ステップＳ３４）と、ＤＡ５は、機器７が占有可能であればプロファイルを更新し（ステップＳ３５）、応答をＳＡ３へ返す（ステップＳ３６）。また、ＳＡ３が、ＤＡ６に対して機器占有依頼を送信する（ステップＳ３７）と、ＤＡ６は、機器８が占有可能であればプロファイルを更新し（ステップＳ３８）、応答をＳＡ３へ返す（ステップＳ３９）。
【００３７】
次に、ＳＡ３は、実空間アプリケーション１に対して実行許可を送信する（ステップＳ４０）。これを受けて、実空間アプリケーション１は、実行可能状態となり、応答をＳＡ３に返す（ステップＳ４１）。ＳＡ３は、応答が返された時点で、ＨＡ４に対して起動トリガに対する起動ＯＫの応答を返す（ステップＳ４２）。これを受けて、ＨＡ４は、プロファイルを更新する（ステップＳ４３）。これ以降、実空間アプリケーション１が、必要に応じて、ＳＡ３に対して、機器７、機器８を操作するために機器操作命令を送信すると（ステップＳ４４、Ｓ４６）、ＳＡ３は、ＤＡ５、ＤＡ６に対して、機器操作命令を送信する（ステップＳ４５、Ｓ４７）。
【００３８】
図４に示す処理動作の利点は、機器占有処理の負荷を分散させ、ＦＡ２に集中することを回避できる点である。しかしながら一方で、シーケンス全体の量は増えるので、各エージェントの導入形態、例えば、部屋のエージェントと機器のエージェントは同じサーバ上にインストールされるのか否かなどを考慮して決定することが望ましい。
【００３９】
このように、実空間アプリケーション１からの機器操作命令は対応するエージェント（ＳＡ３）を経由して行うことにより、アプリケーション層から、個々の機器を直接操作させないようにすることが可能となり、セキュリティを向上させることができる。従来技術においては、予めエージェントに埋め込まれた複数のルールが実空間で起きるイベントによって起動し、連携することにより実現される仕組みであり、ある１つのシナリオを一塊のものとして管理する機能はない。従って、そのシナリオに関する情報、例えば、シナリオの名称やＩＤといった基本的なものから、シナリオが使用する全機器のリストは何か、といった情報まで、それらを管理・保持する仕組みがない。
【００４０】
第１実施形態では、シナリオは一つの一つの実空間アプリケーションサービスとして提供され、その実空間アプリケーションサービスに関する情報は、それに対応するエージェントで管理・保持されるため、シナリオの導入及び削除を始めとする管理が容易となる。また、実空間アプリケーションサービスと、それに対応するエージェントは、様々な処理を分担して担うことができるため、負荷分散を図ることができる。例えば、実空間アプリケーションサービスの利用に関わる認証処理をエージェントで一部代行するといったことが可能となる。
【００４１】
なお、図１に示すシステムのソフトウェア実装は、既存のエージェントプラットフォームを用いて行うことができ、例えば、オープンソースソフトウェアであるＰＩＡＸ（http://www.piax.org/）などを用いることが可能である。
【００４２】
＜第２実施形態＞
次に、本発明の第２実施形態による実空間アプリケーションサービスの制御システムを説明する。図５は第２実施形態におけるソフトウェア及びハードウェアの構成を示す図である。この図において、図１に示すシステムと同一の部分には同一の符号を付し、その説明を省略する。図５に示すシステムが図１に示すシステムと異なる点は、実空間アプリケーション１を利用する人（ユーザ）が二人であり、それに対応する人エージェントＨＡ４１、ＨＡ４２が存在することである。
【００４３】
次に、図６を参照して、既にユーザ１（ＨＡ４１）が実空間アプリケーション１を使用している状態で、別のユーザ２（ＨＡ４２）が実空間アプリケーション１を使用する意向を表明した場合の一連の処理動作を説明する。図６は、図５に示すシステムの動作を示すフローチャートである。既に利用ユーザがいる状態他のユーザから使用希望が発出された場合の対応方法は、２段階に分けられる。第１段階は、当該ユーザの利用資格の有無の確認である。例えば、その場所が個人宅である場合、住人は許可するが、そうではないゲストには許可しないといった認証処理である。この第１段階を通過すると、次の第２段階としては、当該実空間アプリケーション１を既に利用している先行ユーザと一緒に利用するか（これを協調利用と呼ぶ）、同じ実空間アプリケーション１を、もう一つ別に起動して、先行ユーザと後続ユーザが別々に利用するかといったプロセス制御処理である。
【００４４】
図６に示す処理動作はユーザ１とユーザ２が協調利用する際の処理動作である。認証処理及びプロセス制御処理ともに、基本的にはサービス提供元である実空間アプリケーション１が判断することが妥当である。認証処理については、エージェントＨＡ２が保持するユーザ２のプロファイル情報を基に行う。また、プロセス制御処理は、必要に応じて、ユーザ２への問い合わせを行い、その意向を確認する。ただし、一般的に実空間アプリケーション１においては、実際の機器操作によりサービスが提供されるため、特に一般家庭における家電を想定した場合、同じ種類の機器が複数あることがレアケースなので、必然的に協調利用が選択されることが多いと考えられる。複数プロセス起動が選択されるのは、公共スペース等において機器が多数ある場合である。
【００４５】
まず、ＨＡ４２から実区間アプリケーション１の使用希望が発出される（ステップＳ５１）と、実空間アプリケーション１は、利用を許可するか否かを判断する（ステップＳ５２）。この判断の結果、実空間アプリケーション１がユーザ２の利用を許可すると、ＳＡ３及びＨＡ４２はプロファイル情報を更新する（ステップＳ５３）。実空間アプリケーション１のシナリオとして、ユーザからの意思表示や操作などが必要なケースでは、実空間アプリケーション１は、対応するＳＡ３のプロファイル情報として保持されるユーザに対して、その依頼を送出する。
【００４６】
サービス提供方法が個々のユーザによって異なる場合、例えば、ユーザが携帯している電子端末への表示という形態の場合、ＳＡ３のプロファイル情報として保持される個々のユーザの携帯端末に対して情報が表示されることになる。すなわち、協調利用も含めて、「実空間アプリケーションを利用する」という行為は、実空間アプリケーション１の対応するエージェント（ＳＡ３）のプロファイル情報（利用ユーザ）に記載されるということと等価である。そして、ＨＡ４１（ユーザ１）とＨＡ４２（ユーザ２）が一緒に実空間アプリケーション１を使用する（ステップＳ５４）。一方、実空間アプリケーション１の利用が許可されない場合は、ＨＡ４２（ユーザ２）は、実空間アプリケーション１を使用することはできない（ステップＳ５５）。
【００４７】
次に、図７を参照して、図５に示すシステムの詳細な処理動作を説明する。図７は、図５に示すシステムにおいて、後続のユーザが利用申請をしてから実空間アプリケーション１のプロファイル情報を更新する詳細な処理動作を示すシーケンス図である。まず、ＨＡ４２は、ＳＡ３に対して、実空間アプリケーション１の使用リクエストを送信する（ステップＳ６１）。これを受けて、ＳＡ３は、実空間アプリケーション１に対して、使用許可判断を要請する情報を送信する（ステップＳ６２）。この要請を受けた実空間アプリケーション１が、ＳＡ３に対して「ＯＫ」の応答を返す（ステップＳ６３）と、ＳＡ３は、プロファイルを更新する（ステップＳ６４）。続いて、ＳＡ３は、ＨＡ４２に対して、実空間アプリケーション１の使用を許可し、プロファイル更新を指示する情報を送信する（ステップＳ６５）。これを受けて、ＨＡ４２は、プロファイルを更新する（ステップＳ６６）。
【００４８】
従来技術のように、シナリオが人（ユーザ）に帰属し、機器を占有し使用する主体が人である場合、複数の人に帰属する各シナリオが別なシナリオと認識されるため、協調ではなく競合として検出されてしまうという問題があった。第２実施形態では、機器を占有し使用する主体が実空間アプリケーション（実効的には、実空間アプリケーションの対応するエージェント）であり、人は実空間アプリケーションを利用する関係であるため、複数の人が同時に同じシナリオ（実空間アプリケーション）を利用しようとしても、機器とそれを占有し使用する実空間アプリケーションとの関係には何ら影響を与えることがないため、協調利用が可能となる。
【００４９】
実空間アプリケーションとそのエージェントの対応関係は、実空間にどういう機器が存在するか、当該実空間アプリケーションが複数プロセス並行して動作している場合などがあり、単純に一つの実空間アプリケーションがあれば、対応するエージェントも一つのように決定することができない。もし、一つの実空間アプリケーションに一つのエージェントを対応させると、機器セットが２つ存在し、それぞれ別プロセスで動作している場合に、両プロセスの動作が混同されて区別がつかなくなるという問題が起きる。一方、プロセス単位でエージェントを割り当てると、実空間アプリケーションが意図したとおりの動作が実現できない可能性がある。これは、実空間アプリケーションの動作形態（プロセス構成）を制限することになり、やはり問題が生じる。実際の機器の組み合わせ（機器セット）毎にエージェントを割り当てることにより、これらの問題は回避することが可能である。
【００５０】
次に、図８を参照して、図５に示すシステムの変形例を説明する。図８は、機器セット毎にエージェントを割り当てる構成を示す図である。ここでは、実空間アプリケーション１が使用する機器７、機器８で構成する機器セットは、部屋（ＦＡ２）に一組だけ存在するが、例えば、他に機器９、機器１０で構成する機器セットがもう一組ある場合、実空間アプリケーション１に対応するエージェントは、実空間アプリケーション１に対応するエージェントＳＡ３の配下に、各機器セットに対応する実空間アプリケーション１のエージェントＳＡ３１及びＳＡ３２を割り当て、それぞれの配下に、機器セットに対応する機器のエージェントＤＡ５１、ＤＡ５２、ＤＡ５３、ＤＡ５４を接続する。機器セット毎に実空間アプリケーション１に対応するエージェントを割り当てるとは、このような構成をとることを指す。
【００５１】
＜第３実施形態＞
次に、本発明の第３実施形態による実空間アプリケーションサービスの制御システムを説明する。図９は第３実施形態におけるソフトウェア及びハードウェアの構成を示す図である。この図において、図１、図５に示すシステムと同一の部分には同一の符号を付し、その説明を省略する。図９に示すシステムが図１、図５に示すシステムと異なる点は、２つの実空間アプリケーション１１、１２が同一の機器８（ＤＡ５２）を利用しようとする機器競合状態にあることである。
【００５２】
次に、図１０を参照して、先行して実空間アプリケーション１１が機器７（ＤＡ５１）と機器８（ＤＡ５２）を使用しているところに、機器８（ＤＡ５２）と機器９（ＤＡ５３）を使用する後続の実空間アプリケーション１２が起動された場合の処理動作を説明する。図１０は、図９に示すシステムの動作を示すフローチャートである。まず、実空間アプリケーション１２が機器８と機器９の使用希望を発出すると（ステップＳ７１）、機器８、機器９が他の実空間アプリケーションにより使用されているかを判断する（ステップＳ７２）。この判断の結果、機器８または機器９が使用されていれば、実空間アプリケーション１２は、起動することができない（ステップＳ７６）。一方、機器８または機器９が使用されていない場合、ＳＡ３２は使用する機器を確保する（ステップＳ７３）。そして、ＨＡ４３のプロファイルを更新し（ステップＳ７４）、実空間アプリケーションを実行する（ステップＳ７５）。
【００５３】
次に、図１１を参照して、図１０に示すステップＳ７２、Ｓ７３の処理動作の詳細を説明する。図１１は、実空間アプリケーション１２が使用する機器を確保する処理動作を示すシーケンス図である。まず、ＨＡ４３は、ＳＡ３２に対して、実空間アプリケーションを起動するトリガを送信する（ステップＳ８１）。これを受けて、ＳＡ３２は、実空間アプリケーション１２に対して、起動命令を送信する（ステップＳ８２）。実空間アプリケーション１２は、起動した後にＯＫの応答を返す（ステップＳ８３）。ＳＡ３２は、ＦＡ２に対して機器占有依頼を送信する（ステップＳ８４）。機器が設置されている部屋に対応するＦＡ２は、当該機器が使用されているか否かに関する情報を保持しており、機器の占有状況を返す。
【００５４】
ＦＡ２は、機器８が実空間アプリケーション１１により既に使用されているため、「機器８はＮＧ、機器９はＯＫ」のように、機器占有依頼に対する応答を返す（ステップＳ８５）。これを受けて、ＳＡ３２は、実空間アプリケーション１２が必要としている機器を占有することができないため、起動できないことを示す起動ＮＧをＨＡ４３に対して送信する（ステップＳ８６）。もし、機器８と機器９が両方とも使用可能な場合、ＦＡ２から機器８と機器９のプロファイル更新が実行され、実空間アプリケーション１２において使用可能な状態となる。
【００５５】
次に、図１２を参照して、図１０に示すステップＳ７２、Ｓ７３の処理動作の変形例の詳細を説明する。まず、ＨＡ４３は、ＳＡ３２に対して、実空間アプリケーションを起動するトリガを送信する（ステップＳ９１）。これを受けて、ＳＡ３２は、実空間アプリケーション１２に対して、起動命令を送信する（ステップＳ９２）。実空間アプリケーション１２は、起動した後にＯＫの応答を返す（ステップＳ９３）。ＳＡ３２は、ＤＡ５２に対して機器占有依頼を送信する（ステップＳ９４）。ここで、ＤＡ５２は、既に占有されているため、占有できないことを示すＮＧを応答として返す（ステップＳ９５）。続いて、ＳＡ３２は、ＤＡ５３に対して機器占有依頼を送信する（ステップＳ９６）。ここで、ＤＡ５３は、プロファイルを更新し（ステップＳ９７）、占有できることを示すＯＫを応答として返す（ステップＳ９８）。
【００５６】
次に、ＳＡ３２は、占有するべき機器が全て占有できたかを判断し、できていなければ、占有した機器（ここでは、ＤＡ５３）に対して解放依頼を送信する（ステップＳ９９）。ＤＡ５３は、プロファイルを更新し（ステップＳ１００）、解放したことを示すＯＫを応答として返す（ステップＳ１０１）。これを受けて、ＳＡ３２は、実空間アプリケーション１２が必要としている機器を占有することができないため、起動できないことを示す起動ＮＧをＨＡ４３に対して送信する（ステップＳ１０２）。もし、機器８と機器９が両方とも使用可能な場合、ＦＡ２から機器８と機器９のプロファイル更新が実行され、実空間アプリケーション１２において使用可能な状態となる。
【００５７】
このように、機器に対応するソフトウェアエージェント（ＤＡ５１、ＤＡ５２、ＤＡ５３）は、担当機器の使用状況、すなわち、どの実空間アプリケーションに使用されているかを、プロファイルの一項目として保持する機能を有しているため、実空間アプリケーションは、自身の使用する機器が確保できるか否かについて、当該機器のエージェントに問い合わせれば知ることができる。その結果、もし使用可能であれば、使用したい旨、当該機器エージェントに申し出て、当該機器エージェントが許可すれば、そのプロファイルが更新されて、当該実空間アプリケーションは当該機器を確保することができ、使用することができるようになる。
【００５８】
図１１及び図１２に示した使用機器の確保処理動作は、いずれも、実空間アプリケーションのエージェントが、使用する全ての機器の使用状況を確認し、それらが全て使用可能となる場合に当該実空間アプリケーションを実行させるため、従来技術の問題点として指摘した必要な機器の一部使用に起因する不適切なアプリケーション実行を回避することが可能である。また、このように、実空間アプリケーションを制御するシステムの一部である実空間アプリケーションのエージェントによって占有されるということは、当該システムが介入して実空間アプリケーションサービスから機器の使用権を一時的に乗っ取るといったことも可能となることを意味する。このことにより、競合が検出された場合に、一時的に実空間アプリケーションサービスの実行を制限するといった調停操作が可能となる。以上説明したことは、従来技術では実現できない「シナリオ単位を認識して実施すべき様々な処理」の実行例である。
【００５９】
図１１に示した使用機器の確保処理動作は、その場所にある全ての機器の使用状況を場所（部屋）のエージェントが管理する場合に実行でき、場所のエージェントに負荷を集中させている。図１２に示した使用機器の確保処理動作は、この作業を機器のエージェントに分担させる形態である。両者に機能的な違いはなく、場所に置かれた機器の数、機器競合の発生頻度などに起因して、その処理効率が影響を受ける。従って、想定するシステム構成及びパフォーマンスの要求条件により最適な方を選択すればよい。
【００６０】
＜第４実施形態＞
次に、本発明の第４実施形態による実空間アプリケーションサービスの制御システムを説明する。前述した第１実施形態〜第３実施形態は、実空間アプリケーションが起動した時点で、使用する機器の占有処理を実行し、当該実空間アプリケーションが終了するまで占有し続けるものであった。本実施形態は、実空間アプリケーションが起動した時点では占有処理を実行せず、機器操作が発生した時点で初めて占有処理を実行し、当該機器操作が終了した時点で占有を解除するものである。このような実空間アプリケーションの例としては、部屋の住人が帰宅した時に自動的に照明や空調機器の電源をＯＮとするものが考えられる。すなわち発生頻度の低い何らかのイベントを契機として機器操作を行うものである。このような実空間アプリケーションにおいて、起動と占有を同時に実行してしまうと、ほとんど機器操作が行われないのに、その機器が占有されて、他の実空間アプリケーションが使用することができないという非効率な状態を招いてしまう。本実施形態は、そのような非効率な機器使用を避けるためのものである。
【００６１】
次に、図１３を参照して、本実施形態における実空間アプリケーションの実行処理動作を説明する。ソフトウェア及びハードウェアの構成は図１に示す構成と同様である。図１３は本実施形態における実空間アプリケーションの実行処理動作を示すシーケンス図である。まず、ＨＡ４は、ＳＡ３に対して、実空間アプリケーション１を起動するトリガを送信する（ステップＳ１１１）。これ受けて、ＳＡ３が、実空間アプリケーション１に対して起動命令を送信する（ステップＳ１１２）と、実空間アプリケーション１が起動し、応答をＳＡ３に返す（ステップＳ１１３）。ＳＡ３は、応答が返された時点で、ＨＡ４に対して起動トリガに対する起動ＯＫの応答を返す（ステップＳ１１４）。これを受けて、ＨＡ４は、プロファイルを更新する（ステップＳ１１５）。この処理動作によって待ち受け待機状態となる（ステップＳ１１６）。
【００６２】
次に、実空間アプリケーション１が、必要に応じて、ＳＡ３に対して機器操作命令を送信する（ステップＳ１１７）と、ＳＡ３が、ＦＡ２に対して、機器占有依頼を送信し（ステップＳ１１８）、ＦＡ２から機器占有ＯＫの応答を受ける（ステップＳ１１９）と、ＤＡ５に対して、機器操作命令を送信する（ステップＳ１２０）。そして、機器操作が終わると、ＳＡ３がＦＡ２に対して機器占有解除依頼を送信し（ステップＳ１２１）、ＦＡ２から機器占有解除ＯＫの応答を受けると、ＳＡ３は実空間アプリケーション１に対して、機器占有解除ができたことを示すＯＫの応答を返す（ステップＳ１２３）。
【００６３】
次に、ＨＡ４は、ＳＡ３に対して、実空間アプリケーション１を終了するトリガを送信する（ステップＳ１２４）。これ受けて、ＳＡ３が、実空間アプリケーション１に対して終了命令を送信する（ステップＳ１２５）と、実空間アプリケーション１が終了し、応答をＳＡ３に返す（ステップＳ１２６）。ＳＡ３は、応答が返された時点で、ＨＡ４に対して終了トリガに対する終了ＯＫの応答を返す（ステップＳ１２７）。これを受けて、ＨＡ４は、プロファイルを更新する（ステップＳ１２８）。
【００６４】
このように、本実施形態では実空間アプリケーション１が起動された時点で使用する機器の占有を実行せず、いったん待ち受け状態にて待機する。その状態で、実空間アプリケーション１から機器操作命令が発せられると、実空間アプリケーション１のエージェント（ＳＡ３）から場所のエージェント（ＦＡ２）へ機器占有依頼が送信され、成功すれば機器操作（ＤＡ５、ＤＡ６）を実行し、当該操作が終了すると、占有解除を実行する。以降、実空間アプリケーション１の終了依頼が来るまで、これを繰り返す。本実施形態では、機器操作の都度、当該機器の占有と解除を実施する処理動作について説明したが、第１実施形態〜第３実施形態に示したように、実空間アプリケーションが起動している間占有し続ける機器と混在していてもよい。どちらの方法を採用するかは、実空間アプリケーション１のエージェント（ＳＡ３）が保持するプロファイル情報として機器毎に規定される。
【００６５】
なお、図１、５、８、９における各エージェントの機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより実空間アプリケーションサービスの制御処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。また、「コンピュータシステム」は、ホームページ提供環境（あるいは表示環境）を備えたＷＷＷシステムも含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（ＲＡＭ）のように、一定時間プログラムを保持しているものも含むものとする。
【００６６】
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【産業上の利用可能性】
【００６７】
インターネットなどのネットワークによって相互に接続された、家電を始めとする様々な機器、センサ、アクチュエータなどを用いることにより実現される実空間アプリケーションサービスの制御を行うことが不可欠な用途に適用できる。
【符号の説明】
【００６８】
１・・・実空間アプリケーション、２・・・ＦＡ（部屋エージェント）、３、３１、３２・・・ＳＡ（実空間アプリケーションエージェント）、４、４１、４２、４３・・・ＨＡ（人エージェント）、５、６、５１、５２、５３、５４・・・ＤＡ（機器エージェント）、７、８、９・・・機器
【図１】
0005571484.tif 000002
【図２】
0005571484.tif 000003
【図３】
0005571484.tif 000004
【図４】
0005571484.tif 000005
【図５】
0005571484.tif 000006
【図６】
0005571484.tif 000007
【図７】
0005571484.tif 000008
【図８】
0005571484.tif 000009
【図９】
0005571484.tif 000010
【図１０】
0005571484.tif 000011
【図１１】
0005571484.tif 000012
【図１２】
0005571484.tif 000013
【図１３】
0005571484.tif 000014
【図１４】
0005571484.tif 000015