(57)【要約】【課題】共通の場所にある端末装置同士が円滑に通信を開始できるようにする。【解決手段】情報処理システム２０は、端末装置１１が存在する場所に応じた環境データを端末装置１１から受信する。情報処理システム２０は、端末装置１１に対応付けられたエージェントプロセス２４に、対応情報２１を参照して、受信した環境データが示す場所を管理するためのエージェントプロセス２２を検索させる。情報処理システム２０は、検索されたエージェントプロセス２２からエージェントプロセス２４に、エージェントプロセス２２によって管理される場所に存在する端末装置１２に対応付けられたエージェントプロセス２５を通知させる。情報処理システム２０は、エージェントプロセス２４，２５が連携することで、端末装置１１と端末装置１２との間の通信を制御する。【選択図】図１
2014056333.tif 000002
【特許請求の範囲】
【請求項１】
１またはそれ以上のコンピュータを備えており複数のエージェントプロセスを並行して実行可能なシステムが行う通信制御方法であって、
第１の端末装置が存在する場所に応じた環境データを、前記第１の端末装置からネットワークを介して受信し、
前記第１の端末装置に対応付けられた前記システムで実行されている第１のエージェントプロセスに、前記システムが、複数の場所それぞれの環境データまたは環境データから抽出される特徴データと場所を管理するためのエージェントプロセスとの間の対応情報を参照して、前記第１の端末装置から受信した環境データが示す場所を管理するための前記システムで実行されている第２のエージェントプロセスを検索させ、
検索された前記第２のエージェントプロセスから前記第１のエージェントプロセスに、前記システムが、前記第２のエージェントプロセスによって管理される場所に存在する第２の端末装置に対応付けられた前記システムで実行されている第３のエージェントプロセスを通知させ、
前記第１のエージェントプロセスと前記第３のエージェントプロセスとが連携して、前記第１の端末装置と前記第２の端末装置との間の通信を制御する、
通信制御方法。
【請求項２】
前記通信の制御では、前記第１のエージェントプロセスから前記第１の端末装置に前記第２の端末装置と接続するための情報を送信すること、および、前記第３のエージェントプロセスから前記第２の端末装置に前記第１の端末装置と接続するため情報を送信すること、の少なくとも一方を行うことで、前記第１の端末装置と前記第２の端末装置とが前記システムを迂回して通信するよう制御する、請求項１記載の通信制御方法。
【請求項３】
前記第１の端末装置が備える通信インタフェースの情報を、前記第１の端末装置から前記ネットワークを介して受信し、
前記通信の制御では、前記通信インタフェースの情報に基づいて、前記第１の端末装置と前記第２の端末装置とが前記システムを経由して通信するよう制御するか前記システムを迂回して通信するよう制御するかを選択する、
請求項１記載の通信制御方法。
【請求項４】
前記第１の端末装置から受信する環境データは、撮像装置を用いて取得された画像データ、マイクロホンを用いて取得された音データおよび無線信号の受信状況を示す通信状況データの少なくとも１つを含む、請求項１乃至３の何れか一項に記載の通信制御方法。
【請求項５】
前記システムでは複数の仮想マシンが並列に動作可能であり、前記第１、第２および第３のエージェントプロセスは互いに異なる仮想マシンで実行されている、請求項１乃至４の何れか一項に記載の通信制御方法。
【請求項６】
複数のエージェントプロセスを並行して実行可能な１またはそれ以上のプロセッサと、
複数の場所それぞれの環境データまたは環境データから抽出される特徴データと場所を管理するためのエージェントプロセスとの間の対応情報を記憶する記憶装置と、
を有し、前記１またはそれ以上のプロセッサは、
第１の端末装置が存在する場所に応じた環境データを、前記第１の端末装置からネットワークを介して取得し、
前記第１の端末装置に対応付けられた前記１またはそれ以上のプロセッサで実行されている第１のエージェントプロセスに、前記対応情報を参照して、前記第１の端末装置から取得した環境データが示す場所を管理するための前記１またはそれ以上のプロセッサで実行されている第２のエージェントプロセスを検索させ、
検索された前記第２のエージェントプロセスから前記第１のエージェントプロセスに、前記第２のエージェントプロセスによって管理される場所に存在する第２の端末装置に対応付けられた前記１またはそれ以上のプロセッサで実行されている第３のエージェントプロセスを通知させ、
前記第１のエージェントプロセスと前記第３のエージェントプロセスとが連携して、前記第１の端末装置と前記第２の端末装置との間の通信を制御する、
情報処理システム。
【請求項７】
複数のエージェントプロセスを並行して実行可能なコンピュータに、
第１の端末装置が存在する場所に応じた環境データを、前記第１の端末装置からネットワークを介して受信し、
前記第１の端末装置に対応付けられた前記コンピュータで実行されている第１のエージェントプロセスに、複数の場所それぞれの環境データまたは環境データから抽出される特徴データと場所を管理するためのエージェントプロセスとの間の対応情報を参照して、前記第１の端末装置から受信した環境データが示す場所を管理するための前記コンピュータで実行されている第２のエージェントプロセスを検索させ、
検索された前記第２のエージェントプロセスから前記第１のエージェントプロセスに、前記第２のエージェントプロセスによって管理される場所に存在する第２の端末装置に対応付けられた前記コンピュータで実行されている第３のエージェントプロセスを通知させ、
前記第１のエージェントプロセスと前記第３のエージェントプロセスとが連携して、前記第１の端末装置と前記第２の端末装置との間の通信を制御する、
処理を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は通信制御方法、情報処理システムおよびプログラムに関する。
【背景技術】
【０００２】
現在、携帯電話機などの携帯端末装置からサーバ装置に位置情報を送信し、サーバ装置から携帯端末装置に対して位置情報に応じたコンテンツを提供するシステムが利用されている。例えば、ＧＰＳ（Global Positioning System）受信機を備えた携帯端末装置がサーバ装置にＧＰＳによって測定された位置を通知すると、当該位置から所定距離以内に存在する店舗を示す情報をサーバ装置から携帯端末装置に送信するシステムがある。また、各携帯端末装置がメッセージに位置情報を付加してサーバ装置に送信し、ある携帯端末装置がサーバ装置に位置を通知すると、当該位置から所定距離以内にいる他の携帯端末装置のメッセージをサーバ装置からその携帯端末装置に送信するシステムがある。
【０００３】
なお、コンピュータグラフィックス技術を用いて表示される仮想空間にユーザを表すアバタを配置したとき、そのユーザがもつ移動通信端末においてユーザの動作を検知し、検知された動作を仮想空間のアバタの動作に変換して表示するシステムが提案されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−２５９１９９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、ある端末装置がある場所に移動したとき、その端末装置からその場所に存在する他の端末装置にアクセスしたいことがある。例えば、ユーザが携帯端末装置を持って会議室に移動したとき、携帯端末装置の画面を会議室に設置されているプロジェクタやテレビジョン装置などの表示装置に表示したいことがある。
【０００６】
しかし、従来、端末装置が、ユーザが意図する「場所」（例えば、会議室など一定のコミュニティが形成される場所）に属する他の端末装置を検索して通信を開始することを、円滑に行うのが容易でなかった。例えば、ある端末装置から所定距離内にある他の端末装置を検索する方法では、ユーザが意図する部屋に隣接する別の部屋の端末装置も検索されてしまうなど、ユーザが意図する「場所」に属する他の端末装置に限定して検索することが容易でなかった。また、端末装置が複数の種類の通信方法を利用できる場合、端末装置は他の端末装置がどのような通信方法を利用できるかを確認して適切な通信方法を選択することになるなど、端末装置が当該他の端末装置と通信を開始するための制御を行うことが煩雑であった。
【課題を解決するための手段】
【０００７】
一側面では、１またはそれ以上のコンピュータを備えており複数のエージェントプロセスを並行して実行可能なシステムが行う通信制御方法が提供される。第１の端末装置が存在する場所に応じた環境データを、第１の端末装置からネットワークを介して受信する。第１の端末装置に対応付けられたシステムで実行されている第１のエージェントプロセスに、システムが、複数の場所それぞれの環境データまたは環境データから抽出される特徴データと場所を管理するためのエージェントプロセスとの間の対応情報を参照して、第１の端末装置から受信した環境データが示す場所を管理するためのシステムで実行されている第２のエージェントプロセスを検索させる。検索された第２のエージェントプロセスから第１のエージェントプロセスに、システムが、第２のエージェントプロセスによって管理される場所に存在する第２の端末装置に対応付けられたシステムで実行されている第３のエージェントプロセスを通知させる。第１のエージェントプロセスと第３のエージェントプロセスとが連携して、第１の端末装置と第２の端末装置との間の通信を制御する。
【０００８】
また、一側面では、複数のエージェントプロセスを並行して実行可能な１またはそれ以上のプロセッサと、複数の場所それぞれの環境データまたは環境データから抽出される特徴データと場所を管理するためのエージェントプロセスとの間の対応情報を記憶する記憶装置と、を有する情報処理システムが提供される。１またはそれ以上のプロセッサは、第１の端末装置が存在する場所に応じた環境データを、第１の端末装置からネットワークを介して取得する。第１の端末装置に対応付けられた１またはそれ以上のプロセッサで実行されている第１のエージェントプロセスに、対応情報を参照して、第１の端末装置から取得した環境データが示す場所を管理するための１またはそれ以上のプロセッサで実行されている第２のエージェントプロセスを検索させる。検索された第２のエージェントプロセスから第１のエージェントプロセスに、第２のエージェントプロセスによって管理される場所に存在する第２の端末装置に対応付けられた１またはそれ以上のプロセッサで実行されている第３のエージェントプロセスを通知させる。第１のエージェントプロセスと第３のエージェントプロセスとが連携して、第１の端末装置と第２の端末装置との間の通信を制御する。
【０００９】
また、一側面では、複数のエージェントプロセスを並行して実行可能なコンピュータに実行させるプログラムが提供される。コンピュータは、第１の端末装置が存在する場所に応じた環境データを、第１の端末装置からネットワークを介して受信する。第１の端末装置に対応付けられたコンピュータで実行されている第１のエージェントプロセスに、複数の場所それぞれの環境データまたは環境データから抽出される特徴データと場所を管理するためのエージェントプロセスとの間の対応情報を参照して、第１の端末装置から受信した環境データが示す場所を管理するためのコンピュータで実行されている第２のエージェントプロセスを検索させる。検索された第２のエージェントプロセスから第１のエージェントプロセスに、第２のエージェントプロセスによって管理される場所に存在する第２の端末装置に対応付けられたコンピュータで実行されている第３のエージェントプロセスを通知させる。第１のエージェントプロセスと第３のエージェントプロセスとが連携して、第１の端末装置と第２の端末装置との間の通信を制御する。
【発明の効果】
【００１０】
共通の場所にある端末装置同士が円滑に通信を開始できる。
【図面の簡単な説明】
【００１１】
【図１】第１の実施の形態の情報処理システムを示す図である。
【図２】第２の実施の形態の情報処理システムを示す図である。
【図３】携帯端末装置のハードウェア例を示すブロック図である。
【図４】サーバ装置のハードウェア例を示すブロック図である。
【図５】仮想マシンの配置例を示すブロック図である。
【図６】携帯端末装置とサーバ装置の機能例を示すブロック図である。
【図７】環境データの例を示す図である。
【図８】エージェントテーブルの例を示す図である。
【図９】場所情報テーブルの例を示す図である。
【図１０】場所情報取得の手順例を示すフローチャートである。
【図１１】オーナー検索の手順例を示すフローチャートである。
【図１２】場所情報提供の手順例を示すフローチャートである。
【図１３】ユーザ認証の手順例を示すフローチャートである。
【図１４】通信開始の手順例を示すフローチャートである。
【図１５】端末装置間での通信開始の例を示すシーケンス図である。
【図１６】通信経路の切替例を示す図である。
【図１７】オーナーエージェントの階層化の例を示す図である。
【発明を実施するための形態】
【００１２】
以下、本実施の形態を図面を参照して説明する。
［第１の実施の形態］
図１は、第１の実施の形態の情報処理システムを示す図である。第１の実施の形態の情報処理システム２０は、ネットワークを介して端末装置１１，１２，１３と通信し、端末装置１１が周辺にある他の端末装置にアクセスできるように制御する。
【００１３】
端末装置１１は、ユーザによって操作される携帯端末装置であり、例えば、携帯電話機やＰＤＡ（Personal Digital Assistant）やノート型コンピュータなどである。端末装置１１は、端末装置１１が存在する場所に応じた環境データを生成する。環境データは、場所に関してユーザが入力するデータでもよいし、端末装置１１が備える１またはそれ以上のセンサデバイスを用いて生成される端末装置１１の周囲の状況を示すデータでもよい。例えば、端末装置１１は、撮像装置を用いて端末装置１１の周囲の風景を示す画像を生成する。また、例えば、端末装置１１は、マイクロホンを用いて端末装置１１の周囲の環境音や同じ場所にいる人の音声を記録する。また、例えば、端末装置１１は、無線インタフェースによって検出されたアクセスポイントを示す通信状況データを生成する。
【００１４】
端末装置１２，１３は、ユーザが操作する装置であり、携帯端末装置でもよいし、プロジェクタやテレビ受像機やデスクトップ型コンピュータなどの据置型の端末装置であってもよい。端末装置１２，１３は、端末装置１１からアクセスされ、端末装置１１と通信することがある。ここで、端末装置１２は場所Ａに存在し（例えば、場所Ａに設置されており）、端末装置１３は場所Ｂに存在する（例えば、場所Ｂに設定されている）。場所Ａ，Ｂは、それぞれ、異なるコミュニティが形成されることが期待される一定の空間であり、例えば、会議室のような壁によって区切られた部屋である。第１の実施の形態では、端末装置１１をもつユーザが、端末装置１２の存在する場所Ａに入って来た場合を考える。
【００１５】
情報処理システム２０は、１またはそれ以上の情報処理装置（例えば、サーバコンピュータ）を備えたシステムである。情報処理システム２０は、以下で説明する機能を実現するため、１またはそれ以上のプロセッサや１またはそれ以上の記憶装置を備えてもよい。プロセッサは、ＣＰＵ（Central Processing Unit）やＤＳＰ（Digital Signal Processor）であってもよいし、ＡＳＩＣ（Application Specific Integrated Circuit）やＦＰＧＡ（Field Programmable Gate Array）などのその他の電子回路を含んでもよい。プロセッサは、例えば、記憶装置に格納されているプログラムの命令を実行する。記憶装置は、ＲＡＭ（Random Access Memory）などの揮発性メモリでもよいし、ＨＤＤ（Hard Disk Drive）やフラッシュメモリなどの不揮発性の記憶装置でもよい。
【００１６】
情報処理システム２０は、１またはそれ以上の情報処理装置を用いて、複数のエージェントプロセスを並行して実行することができる。複数のエージェントプロセスは、常時起動されてアクセスを受付可能な状態であってもよい。また、複数のエージェントプロセスは、互いに異なる仮想マシンのオペレーティングシステム（ＯＳ：Operating System）上で実行されていてもよい。各エージェントプロセスは、何れか１つの場所または端末装置に対応付けられている。すなわち、エージェントプロセス２１は場所Ａに対応付けられ、エージェントプロセス２２は場所Ｂに対応付けられている。エージェントプロセス２３は端末装置１１に対応付けられ、エージェントプロセス２４は端末装置１２に対応付けられ、エージェントプロセス２５は端末装置１３に対応付けられている。
【００１７】
エージェントプロセス２１は、場所Ａを管理するために起動される。エージェントプロセス２１は、場所Ａに存在する端末装置（端末装置１２）に対応するエージェントプロセス（エージェントプロセス２４）のリストにアクセスすることができる。同様に、エージェントプロセス２２は、場所Ｂを管理するために起動される。エージェントプロセス２２は、場所Ｂに存在する端末装置（端末装置１３）に対応するエージェントプロセス（エージェントプロセス２５）のリストにアクセスすることができる。
【００１８】
エージェントプロセス２３は、端末装置１１との間にコネクションを確立して端末装置１１と通信を行う。端末装置１１とエージェントプロセス２３の間のコネクションは、常時確立した状態であってもよい。同様に、エージェントプロセス２４は、端末装置１２との間にコネクションを確立して端末装置１２と通信を行う。エージェントプロセス２５は、端末装置１３との間にコネクションを確立して端末装置１３と通信を行う。端末装置１１，１２，１３は、情報処理システム２０と通信を行うとき、複数のエージェントプロセスのうち自装置に対応するエージェントプロセスとのみ通信すればよい。
【００１９】
また、情報処理システム２０が備える記憶装置には、対応情報２６が格納されている。対応情報２６は、場所Ａ，Ｂそれぞれにおいて端末装置１１によって生成され得る環境データ（または、当該環境データを解析することで抽出される特徴情報）と、当該場所を管理するためのエージェントプロセスとの間の対応関係を示す。例えば、対応情報２６は、場所Ａ，Ｂそれぞれについて、風景画像に写り得るオブジェクトや、録音された音に含まれ得る周波数成分や、検出され得るアクセスポイントなどを示す情報を含む。
【００２０】
ここで、端末装置１１が場所Ａに入ると、端末装置１１からエージェントプロセス２３に、端末装置１１で生成された環境データが送信される。送信される環境データは、複数の種類のデータを含んでもよい。すると、エージェントプロセス２３は、対応情報２６を参照して、複数のエージェントプロセスのうち環境データに対応するエージェントプロセスを検索する。ここで検索されるエージェントプロセスは、場所Ａを管理するためのエージェントプロセス２１であることが期待される。
【００２１】
対応情報２６に特徴情報が登録されている場合、エージェントプロセス２３は、端末装置１１が送信した環境データから特徴情報を抽出してもよい。例えば、エージェントプロセス２３は、画像認識技術を用いて、風景画像に写った椅子や机などのオブジェクトを認識する。また、例えば、エージェントプロセス２３は、信号処理技術を用いて、録音された音に含まれる周波数毎の信号成分を抽出する。ただし、端末装置１１からエージェントプロセス２４に送信される環境データが、解析済の特徴情報であってもよい。
【００２２】
環境データからエージェントプロセス２１が検索されると、エージェントプロセス２３は、エージェントプロセス２１にアクセスする。すると、エージェントプロセス２１からエージェントプロセス２３に、場所Ａに存在する端末装置（端末装置１２）に対応付けられたエージェントプロセス（エージェントプロセス２４）を識別するための情報（例えば、そのエージェントプロセスが動作する仮想マシンのアドレス）が渡される。
【００２３】
端末装置１１が同じ場所Ａに存在する端末装置１２と通信したいとき、エージェントプロセス２３は、エージェントプロセス２１から取得した識別情報に基づいてエージェントプロセス２４にアクセスする。そして、エージェントプロセス２３とエージェントプロセス２４がネゴシエーションして、端末装置１１と端末装置１２との間の通信を制御する。
【００２４】
例えば、エージェントプロセス２３，２４は、端末装置１１が備える通信インタフェースを示す情報と端末装置１２が備える通信インタフェースを示す情報とを交換することで、通信方法を決定する。端末装置１１，１２が情報処理システム２０を迂回して通信できる通信インタフェースを備える場合、端末装置１２に接続するための接続情報（例えば、端末装置１２のアドレス）を、エージェントプロセス２３から端末装置１１に送信する。端末装置１１に接続するための接続情報（例えば、端末装置１１のアドレス）を、エージェントプロセス２４から端末装置１２に送信してもよい。一方、端末装置１１，１２が情報処理システム２０を迂回して通信する通信インタフェースを備えていない場合、エージェントプロセス２３，２４がその旨を端末装置１１，１２に通知してデータを中継する。
【００２５】
第１の実施の形態によれば、端末装置１１に対応するエージェントプロセス２３と他の端末装置に対応するエージェントプロセスとの間でネゴシエーションが行われて、端末装置１１と他の端末装置との間の通信が制御される。このため、端末装置１１は様々な種類の他の端末装置と、適切な通信方法で円滑に通信を開始することができる。また、ネゴシエーションにおいてエージェントプロセス２３が介在することで、端末装置１１が他の端末装置と直接ネゴシエーションする場合と比べて、セキュリティが向上する。
【００２６】
また、場所毎にその場所に存在する端末装置に関する情報を一元管理するエージェントプロセス（エージェントプロセス２１，２２）を設けることで、端末装置１１やエージェントプロセス２３は、端末装置１２が場所Ａに存在することを容易に知ることができる。ここで、１つの「場所」である空間の範囲は、１つの会議室や１つのフロアや１つの建物など、コミュニティの形成状況に応じて任意に定義できる。定義された「場所」に対応するエージェントプロセスがその場所に存在する端末装置に関する情報のみを管理することで、複数の場所が近接していても、各端末装置が何れの場所に属するかが特定される。例えば、場所Ａ，Ｂが近接していても、端末装置１１やエージェントプロセス２３は、場所Ａには端末装置１２が存在し端末装置１３が存在しないことを知ることができる。
【００２７】
［第２の実施の形態］
図２は、第２の実施の形態の情報処理システムを示す図である。第２の実施の形態の情報処理システムは、ネットワーク３１，３２、携帯端末装置１００，１００ａ、ディスプレイ１００ｂ，１００ｃ、アクセスポイント１００ｄ，１００ｅ、サーバ装置２００，２００ａおよびデータベースサーバ２００ｂを含む。
【００２８】
ディスプレイ１００ｂとアクセスポイント１００ｄは会議室Ａに設置され、ディスプレイ１００ｃとアクセスポイント１００ｅは会議室Ｂに設置されている。また、会議室Ａには会議の出席者によって携帯端末装置１００，１００ａが持ち込まれている。サーバ装置２００，２００ａおよびデータベースサーバ２００ｂは、クラウドサービスを提供するデータセンタに設置されている。ネットワーク３１はインターネットなどの広域ネットワークであり、ネットワーク３２はデータセンタ内のＬＡＮ（Local Area Network）である。アクセスポイント１００ｄ，１００ｅはネットワーク３１に接続されている。
【００２９】
携帯端末装置１００，１００ａは、携帯電話機やＰＤＡやノート型コンピュータなど、ユーザから操作される携帯型の端末装置である。ディスプレイ１００ｂ，１００ｃは、携帯端末装置１００，１００ａなどの他の端末装置からのアクセスに応じて画像を表示する端末装置であり、テレビ受像機やプロジェクタであってもよい。携帯端末装置１００，１００ａおよびディスプレイ１００ｂ，１００ｃは、１またはそれ以上の種類の通信インタフェースを備える。通信インタフェースの種類は端末装置によって異なってもよい。ただし、携帯端末装置１００，１００ａは無線インタフェースを備えることが好ましい。アクセスポイント１００ｄ，１００ｅは、無線ＬＡＮの通信方式に従って、無線リンク間または無線リンクと有線リンクとの間でデータを中継する通信装置である。
【００３０】
ここで、携帯端末装置１００，１００ａおよびディスプレイ１００ｂ，１００ｃは、ネットワーク３１，３２を介してサーバ装置２００，２００ａと通信することができる。ネットワーク３１に接続する方法としては、携帯電話網（図示せず）を利用する方法、アクセスポイント１００ｄ，１００ｅを利用する方法、会議室Ａ，Ｂに設けられた有線ＬＡＮ（図示せず）を利用する方法などが考えられる。また、携帯端末装置１００，１００ａおよびディスプレイ１００ｂ，１００ｃのうちの任意の２つは、共通のアクセスポイントを介して通信できることもあるし、通信装置を介さずに直接通信できることもある。
【００３１】
サーバ装置２００，２００ａは、複数の仮想的なコンピュータ（仮想マシン）を並行して動作させることができるサーバコンピュータである。もちろん、ネットワーク３２には３台以上のサーバ装置が接続されていてもよい。各仮想マシンではＯＳが動作しており、他の仮想マシンとは独立に情報処理が行われる。各仮想マシンには、アドレスなどの識別情報が付与されている。複数の仮想マシンは、サーバ装置２００，２００ａの負荷に応じてサーバ装置２００，２００ａに分散して配置されてもよい。
【００３２】
ここで、サーバ装置２００，２００ａには、１つの端末装置および１つの会議室につき１つの仮想マシンが用意される。すなわち、携帯端末装置１００，１００ａおよびディスプレイ１００ｂ，１００ｃそれぞれに対応する仮想マシン（ユーザ仮想マシン）と、会議室Ａ，Ｂそれぞれに対応する仮想マシン（オーナー仮想マシン）とが用意される。各端末装置は、複数の仮想マシンのうちその端末装置に対応する仮想マシンと通信し、他の端末装置に対応する仮想マシンや会議室に対応する仮想マシンとは直接通信しない。各会議室に対応する仮想マシンは、その会議室にある端末装置を管理するために用いられる。
【００３３】
データベースサーバ２００ｂは、ＨＤＤなどの不揮発性の記憶装置にデータを記憶して管理するサーバコンピュータである。サーバ装置２００，２００ａで動作する仮想マシンからデータベースサーバ２００ｂに対して、ネットワーク３２を介してデータの読み出しやデータの書き込みなどのデータアクセスが行われる。
【００３４】
なお、携帯端末装置１００は前述の端末装置１１の一例であり、携帯端末装置１００ａやディスプレイ１００ｂは前述の端末装置１２の一例であり、ディスプレイ１００ｃは前述の端末装置１３の一例である。また、サーバ装置２００，２００ａおよびデータベースサーバ２００ｂの集合は、前述の情報処理システム２０の一例である。
【００３５】
図３は、携帯端末装置のハードウェア例を示すブロック図である。携帯端末装置１００は、ＣＰＵ１０１、ＲＡＭ１０２、フラッシュメモリ１０３、ディスプレイ１０４、タッチパネル１０５、マイクロホン１０６、撮像部１０７および無線インタフェース１０８を有する。上記ユニットは、携帯端末装置１００内でバス１０９に接続されている。携帯端末装置１００ａも、携帯端末装置１００と同様のハードウェアを用いて実現できる。
【００３６】
ＣＰＵ１０１は、プログラムの命令を実行する演算器を含むプロセッサである。ＣＰＵ１０１は、フラッシュメモリ１０３に記憶されているプログラムやデータの少なくとも一部をＲＡＭ１０２にロードしてプログラムを実行する。なお、ＣＰＵ１０１は複数のプロセッサコアを備えてもよく、携帯端末装置１００は複数のプロセッサを備えてもよく、複数のプロセッサまたはプロセッサコアを用いて並列処理を行ってもよい。また、２以上のプロセッサの集合、ＦＰＧＡやＡＳＩＣなどの専用回路、２以上の専用回路の集合、プロセッサと専用回路の組み合わせなどを「プロセッサ」と呼んでもよい。
【００３７】
ＲＡＭ１０２は、ＣＰＵ１０１が実行するプログラムやプログラムから参照されるデータを一時的に記憶する揮発性メモリである。なお、携帯端末装置１００は、ＲＡＭ以外の種類のメモリを備えてもよく、複数個の揮発性メモリを備えてもよい。
【００３８】
フラッシュメモリ１０３は、ＯＳやファームウェアやアプリケーションソフトウェアなどのソフトウェアのプログラムおよびデータを記憶する不揮発性の記憶装置である。なお、携帯端末装置１００は、ＨＤＤやＳＳＤ（Solid State Drive）などの他の種類の記憶装置を備えてもよく、複数個の不揮発性の記憶装置を備えてもよい。
【００３９】
ディスプレイ１０４は、ＣＰＵ１０１からの命令に従って画像を表示する。ディスプレイ１０４としては、液晶ディスプレイ（ＬＣＤ：Liquid Crystal Display）や有機ＥＬ（Electro Luminescence）ディスプレイなどを用いることができる。
【００４０】
タッチパネル１０５は、ディスプレイ１０４に重ねて設けられており、ディスプレイ１０４に対するユーザのタッチ操作を検出してタッチ位置を入力信号としてＣＰＵ１０１に通知する。タッチ操作には、タッチペンなどのポインティングデバイスまたはユーザの指が用いられる。タッチ位置の検出方式には、例えば、マトリクススイッチ方式、抵抗膜方式、表面弾性波方式、赤外線方式、電磁誘導方式、静電容量方式など様々な検出方式があり、何れの方式を採用してもよい。なお、携帯端末装置１００は、複数の入力キーを備えたキーパッドなど、他の種類の入力デバイスを備えてもよい。
【００４１】
マイクロホン１０６は、音の物理振動を電気信号に変換することで音入力を受け付け、音信号としての電気信号をＣＰＵ１０１に出力する。マイクロホン１０６を用いることで、携帯端末装置１００の周囲の環境音や周囲にいる人の音声を録音することができる。
【００４２】
撮像部１０７は、光を電気信号に変換するイメージセンサを備える。イメージセンサとしては、ＣＣＤセンサ（Charge Coupled Device）やＣＭＯＳ（Complementary Metal Oxide Semiconductor）センサなどを用いることができる。イメージセンサが生成した画像信号をＪＰＥＧ（Joint Photographic Experts Group）などの所定の画像形式に変換する処理は、ＣＰＵ１０１が行ってもよいし、撮像部１０７が備えるＤＳＰが行ってもよい。
【００４３】
無線インタフェース１０８は、無線通信を行う通信インタフェースである。無線インタフェース１０８は、受信信号の復調・復号や送信信号を符号化・変調などを行う。無線インタフェース１０８は、携帯電話網などの広域ネットワークにアクセスするものでもよいし、無線ＬＡＮなどのローカルネットワークにアクセスするものでもよいし、Ｂｌｕｅｔｏｏｔｈ（登録商標）などの規格に従って近距離無線通信を行うものでもよい。例えば、無線インタフェース１０８は、アクセスポイント１００ｄを介してネットワーク３１に接続する。携帯端末装置１００は、複数の無線インタフェースを備えてもよい。
【００４４】
なお、ＣＰＵ１０１に実行させるプログラムは、フラッシュメモリ１０３に他の記憶装置からコピーするようにしてもよい。また、ＣＰＵ１０１に実行させるプログラムは、無線インタフェース１０８がネットワーク３１からダウンロードするようにしてもよい。
【００４５】
図４は、サーバ装置のハードウェア例を示すブロック図である。サーバ装置２００は、ＣＰＵ２０１、ＲＡＭ２０２、ＨＤＤ２０３、画像信号処理部２０４、入力信号処理部２０５、ディスクドライブ２０６および通信インタフェース２０７を有する。上記ユニットは、サーバ装置２００内でバス２０８に接続されている。サーバ装置２００ａやデータベースサーバ２００ｂも、サーバ装置２００と同様のハードウェアを用いて実現できる。
【００４６】
ＣＰＵ２０１は、前述のＣＰＵ１０１と同様に、プログラムの命令を実行する演算器を含むプロセッサである。ＲＡＭ２０２は、前述のＲＡＭ１０２と同様に、ＣＰＵ２０１が実行するプログラムやデータを一時的に記憶する揮発性メモリである。
【００４７】
ＨＤＤ２０３は、ＯＳやファームウェアやアプリケーションソフトウェアなどのソフトウェアのプログラムおよびデータを記憶する不揮発性の記憶装置である。なお、サーバ装置２００は、フラッシュメモリやＳＳＤ（Solid State Drive）などの他の種類の記憶装置を備えてもよく、複数個の不揮発性の記憶装置を備えてもよい。
【００４８】
画像信号処理部２０４は、ＣＰＵ２０１からの命令に従って、サーバ装置２００に接続されたディスプレイ４１に画像を出力する。ディスプレイ４１としては、ＣＲＴ（Cathode Ray Tube）ディスプレイや液晶ディスプレイなどを用いることができる。
【００４９】
入力信号処理部２０５は、サーバ装置２００に接続された入力デバイス４２から入力信号を取得し、ＣＰＵ２０１に通知する。入力デバイス４２としては、マウスやタッチパネルなどのポインティングデバイス、キーボードなどを用いることができる。
【００５０】
ディスクドライブ２０６は、記録媒体４３に記録されたプログラムやデータを読み取る駆動装置である。記録媒体４３として、例えば、フレキシブルディスク（ＦＤ：Flexible Disk）やＨＤＤなどの磁気ディスク、ＣＤ（Compact Disc）やＤＶＤ（Digital Versatile Disc）などの光ディスク、光磁気ディスク（ＭＯ：Magneto-Optical disk）を使用できる。ディスクドライブ２０６は、ＣＰＵ２０１からの命令に従って、記録媒体４３から読み取ったプログラムやデータをＲＡＭ２０２またはＨＤＤ２０３に格納する。
【００５１】
通信インタフェース２０７は、ネットワーク３２を介して他の情報処理装置（例えば、携帯端末装置１００，１００ａやデータベースサーバ２００ｂなど）と通信を行う。
ただし、サーバ装置２００はディスクドライブ２０６を備えていなくてもよく、専ら他の情報処理装置からアクセスされる場合には、画像信号処理部２０４や入力信号処理部２０５を備えていなくてもよい。また、ディスプレイ４１や入力デバイス４２は、サーバ装置２００の筐体と一体に形成されていてもよい。
【００５２】
図５は、仮想マシンの配置例を示すブロック図である。サーバ装置２００は、仮想マシン２１０，２１０ａ，２２０およびハイパーバイザ２３０を有する。サーバ装置２００ａも、サーバ装置２００と同様に複数の仮想マシンとハイパーバイザを有する。
【００５３】
仮想マシン２１０は、携帯端末装置１００に対応付けられた仮想マシンである。携帯端末装置１００がサーバ装置２００，２００ａによって提供されるサービスを初めて利用するとき、仮想マシン２１０のディスクイメージが生成されて仮想マシン２１０がサーバ装置２００で起動される。仮想マシン２１０は、一度起動した後は携帯端末装置１００の原電のＯＮ／ＯＦＦに関係なく常時稼働していてもよい。携帯端末装置１００の電源がＯＮの間、携帯端末装置１００と仮想マシン２１０との間にコネクションが確立されている。
【００５４】
仮想マシン２１０ａは、携帯端末装置１００ａに対応付けられた仮想マシンである。携帯端末装置１００ａがサーバ装置２００，２００ａによって提供されるサービスを初めて利用するとき、仮想マシン２１０ａのディスクイメージが生成されて仮想マシン２１０ａがサーバ装置２００で起動される。仮想マシン２１０ａは、仮想マシン２１０と同様に常時稼働していてもよい。携帯端末装置１００ａの電源がＯＮの間、携帯端末装置１００ａと仮想マシン２１０ａとの間にコネクションが確立されている。
【００５５】
仮想マシン２２０は、会議室Ａに対応する仮想マシンである。仮想マシン２２０は、例えば、会議室Ａの管理者からの指示に応じてサーバ装置２００で生成されて起動される。
ハイパーバイザ２３０は、仮想マシン２１０，２１０ａ，２２０を制御する。ハイパーバイザ２３０は、仮想マシン２１０，２１０ａ，２２０にＣＰＵ２０１の演算リソースやＲＡＭ２０２の記憶リソースを割り振る。ハイパーバイザ２３０の制御のもと、仮想マシン２１０，２１０ａ，２２０が起動される。また、ハイパーバイザ２３０は、仮想マシン２１０，２１０ａ，２２０の間の通信、携帯端末装置１００と仮想マシン２１０との間の通信、携帯端末装置１００ａと仮想マシン２１０ａとの間の通信を中継する。通信の中継は、仮想マシン２１０，２１０ａ，２２０に割り振られたアドレスに基づいて行う。
【００５６】
ここで、仮想マシン２１０は、オペレーティングシステム２１１とユーザエージェント２１２を有する。仮想マシン２１０ａは、オペレーティングシステム２１１ａとユーザエージェント２１２ａを有する。仮想マシン２２０は、オペレーティングシステム２１１とオーナーエージェント２２２を有する。ユーザエージェント２１２，２１２ａおよびオーナーエージェント２２２は、ソフトウェアのモジュールとして実装できる。
【００５７】
オペレーティングシステム２１１，２１１ａ，２２１は、ハイパーバイザ２３０から割り振られたＣＰＵ２０１の演算リソースやＲＡＭ２０２の記憶リソースを管理し、アプリケーションソフトウェアの実行をスケジューリングする。
【００５８】
ユーザエージェント２１２は、オーナーエージェント２２２や他のユーザエージェントと連携して、携帯端末装置１００と他の端末装置との間の通信を制御する。同様に、ユーザエージェント２１２ａは、オーナーエージェント２２２や他のユーザエージェントと連携して、携帯端末装置１００ａと他の端末装置との間の通信を制御する。オーナーエージェント２２２は、会議室Ａに関する情報を一元的に管理し、何れかのユーザエージェントからの要求に応じて会議室Ａに関する情報をそのユーザエージェントに提供する。具体的には、オーナーエージェント２２２は、会議室Ａに存在する端末装置（ディスプレイ１００ｂなど）に対応する仮想マシンのリストを管理する。これにより、ユーザエージェント２１２，２１２ａは、会議室Ａに存在する端末装置を容易に知ることができる。
【００５９】
なお、仮想マシン２１０またはユーザエージェント２１２は前述のエージェントプロセス２３の一例であり、仮想マシン２１０ａまたはユーザエージェント２１２ａは前述のエージェントプロセス２４の一例である。また、仮想マシン２２０またはオーナーエージェント２２２は前述のエージェントプロセス２１の一例である。
【００６０】
また、上記説明では仮想マシン２１０，２１０ａ，２２０の全てがサーバ装置２００に配置されているものとしたが、仮想マシン２１０，２１０ａ，２２０の少なくとも１つがサーバ装置２００ａに配置されてもよい。その場合、サーバ装置２００ａに配置される仮想マシンはサーバ装置２００ａのハイパーバイザによって制御される。
【００６１】
前述のように、サーバ装置２００またはサーバ装置２００ａでは、ディスプレイ１００ｂ，１００ｃに対応する仮想マシンや会議室Ｂに対応する仮想マシンも稼働している。ディスプレイ１００ｂ，１００ｃに対応する仮想マシンは、ユーザエージェントを有しており、会議室Ｂに対応する仮想マシンは、オーナーエージェントを有している。
【００６２】
図６は、携帯端末装置とサーバ装置の機能例を示すブロック図である。ここでは、仮想マシン２１０，２２０がサーバ装置２００に配置される場合を考える。
携帯端末装置１００は、起動通知部１１１、環境データ送信部１１２および通信制御部１１３を有する。起動通知部１１１、環境データ送信部１１２および通信制御部１１３は、例えば、携帯端末装置１００で実行されるソフトウェアのモジュールとして実装される。携帯端末装置１００ａも携帯端末装置１００と同様の機能を有する。
【００６３】
起動通知部１１１は、携帯端末装置１００が最初に起動したとき、または、サーバ装置２００，２００ａによって提供されるサービスを利用するためのアプリケーションソフトウェアが初めて実行されたとき、その旨を所定のサーバ装置に通知する。通知先のサーバ装置は、サーバ装置２００，２００ａの何れかでもよいし、サーバ装置２００，２００ａを管理する管理用コンピュータでもよい。これにより、携帯端末装置１００に対応するユーザエージェント２１２がサーバ装置２００で起動する。以降、起動通知部１１１は、携帯端末装置１００の電源がＯＮになる毎に、携帯端末装置１００とユーザエージェント２１２との間にコネクションを確立し、電源がＯＮである間コネクションを維持する。
【００６４】
環境データ送信部１１２は、マイクロホン１０６や撮像部１０７や無線インタフェース１０８などのセンサデバイスを用いて、携帯端末装置１００の周囲の状況を示す環境データを生成する。生成する環境データには複数の種類のデータが含まれてもよい。
【００６５】
例えば、環境データ送信部１１２は、撮像部１０７を用いて携帯端末装置１００の周囲の風景を撮像した風景画像を生成する。また、環境データ送信部１１２は、マイクロホン１０６を用いて携帯端末装置１００の周囲の環境音や携帯端末装置１００の近くにいる人の音声を録音した音データを生成する。また、環境データ送信部１１２は、会議室にＱＲコード（登録商標）などの二次元コードやロゴタイプが貼付されているとき、撮像部１０７を用いて二次元コードやロゴタイプを読み取る。また、環境データ送信部１１２は、無線インタフェース１０８を用いて無線信号の受信状況を示す無線情報（例えば、無線インタフェース１０８によって検出されたアクセスポイントのリスト）を生成する。
【００６６】
環境データは、例えば、携帯端末装置１００をもつユーザが会議室Ａに入ったときにユーザの操作に応じて生成される。環境データ送信部１１２は、生成した環境データをユーザエージェント２１２（すなわち、携帯端末装置１００に対応する仮想マシン２１０で稼働しているユーザエージェント）に送信する。環境データに対する応答として、環境データ送信部１１２は、携帯端末装置１００が属する場所である会議室Ａに存在する端末装置のリストをユーザエージェント２１２から受信する。また、環境データ送信部１１２は、無線ＬＡＮや近距離無線通信方式など携帯端末装置１００が使用可能な通信方式をユーザエージェント２１２に通知する。通信方式を示す情報は、環境データと合わせて送信してもよいし、環境データとは別タイミングで（例えば、仮想マシン２１０が初めて起動するときや仮想マシン２１０とコネクションを確立するときに）送信してもよい。
【００６７】
通信制御部１１３は、環境データ送信部１１２がユーザエージェント２１２から受信した端末装置のリストをディスプレイ１０４に表示する。ユーザがリストの中から通信相手とする端末装置を選択すると、通信制御部１１３は、選択された端末装置をユーザエージェント２１２に通知する。そして、通信制御部１１３は、ユーザエージェント２１２から指示された方法で、ユーザが選択した端末装置と通信するよう制御する。携帯端末装置１００が他の端末装置と通信するときの通信経路としては、サーバ装置２００を経由する経路、サーバ装置２００は迂回するがアクセスポイント１００ｄなどの通信装置を経由する経路、通信装置を経由せずに直接通信する経路が挙げられる。
【００６８】
ユーザエージェント２１２は、オーナーアクセス部２１３およびネゴシエーション部２１４を有する。オーナーエージェント２２２は、認証部２２３および場所情報提供部２２４を有する。他のユーザエージェントもユーザエージェント２１２と同様の機能を有し、他のオーナーエージェントもオーナーエージェント２２２と同様の機能を有する。
【００６９】
オーナーアクセス部２１３は、携帯端末装置１００から環境データを受信すると、環境データから特徴情報を抽出する。例えば、環境データに風景画像が含まれている場合、オーナーアクセス部２１３は、風景画像に写ったオブジェクトを認識する。また、環境データに音データが含まれている場合、オーナーアクセス部２１３は、音信号を複数の周波数成分に分解し、どの周波数成分がどのような周期で現れるか分析する。ただし、センサデバイスから取得されたデータの分析を携帯端末装置１００で行うようにしてもよい。その場合、携帯端末装置１００からユーザエージェント２１２に送信される環境データは分析済の特徴情報であり、オーナーアクセス部２１３は環境データを分析しなくてよい。
【００７０】
そして、オーナーアクセス部２１３は、特徴情報を用いて、携帯端末装置１００が現在いる場所に対応する仮想マシンを探す。例えば、携帯端末装置１００から受信した環境データの特徴情報が会議室Ａの特徴に適合する場合、オーナーアクセス部２１３は、携帯端末装置１００が会議室Ａにいると推定して、会議室Ａに対応する仮想マシン２２０を特定する。特徴情報から仮想マシンを探すとき、データベースサーバ２００ｂが参照される。
【００７１】
特徴情報から仮想マシン２２０が特定されると、オーナーアクセス部２１３は仮想マシン２２０にアクセスする。すると、オーナーアクセス部２１３は、仮想マシン２２０が管理する会議室Ａに存在する端末装置のリストおよびそれら端末装置に対応する仮想マシンのリストを、仮想マシン２２０のオーナーエージェント２２２から取得して保持する。オーナーアクセス部２１３は、オーナーエージェント２２２から取得した端末装置のリストを携帯端末装置１００に転送する。これにより、携帯端末装置１００は、携帯端末装置１００が属する会議室Ａに存在する端末装置を知ることができる。
【００７２】
ネゴシエーション部２１４は、携帯端末装置１００から使用可能な通信方式を示す情報を受信して保持しておく。ネゴシエーション部２１４は、携帯端末装置１００から通信相手の端末装置が指定されると、オーナーアクセス部２１３が取得した端末装置および仮想マシンのリストに基づいて、指定された端末装置に対応する仮想マシンを特定する。そして、ネゴシエーション部２１４は、特定した仮想マシンのユーザエージェントとネゴシエーションを行い、互いが保持する使用可能な通信方式の情報に基づいて通信方法を決定する。ネゴシエーション部２１４は、決定した通信方法で携帯端末装置１００が通信を行うよう制御する。携帯端末装置１００がサーバ装置２００経由で他の端末装置と通信すると決定した場合、ネゴシエーション部２１４はデータを中継する。
【００７３】
認証部２２３は、ユーザエージェント２１２からアクセスを受け付けると、ユーザエージェント２１２が会議室Ａに関する情報を提供してよい相手であるか認証する。具体的には、認証部２２３は、環境データから抽出された特徴情報をユーザエージェント２１２から取得し、ユーザエージェント２１２が会議室Ａにいる端末装置に対応するものであることを特徴情報から確認する。認証部２２３は、確認できた場合は認証成功と判定し、確認できなかった場合は認証失敗と判定する。ただし、仮想マシン２１０がブラックリストに記載されているときは、特徴情報に関係なく認証失敗と判定してもよい。
【００７４】
場所情報提供部２２４は、認証部２２３がユーザエージェント２１２の認証に成功すると、データベースサーバ２００ｂから会議室Ａに存在する端末装置を特定するための情報およびそれら端末装置に対応する仮想マシンを特定するための情報を取得する。そして、場所情報提供部２２４は、会議室Ａの場所情報として、端末装置のリストおよびそれら端末装置に対応する仮想マシンのリストをユーザエージェント２１２に提供する。
【００７５】
データベースサーバ２００ｂは、エージェントテーブル２４１と場所情報テーブル２４２を記憶する。これらテーブルは、ＨＤＤなどの不揮発性の記憶装置に記憶されている。エージェントテーブル２４１には、端末装置または会議室に対応する仮想マシンに関する情報が登録されている。エージェントテーブル２４１では、少なくとも各会議室に対応する仮想マシンについて、当該仮想マシンが管理する会議室の特徴情報が関連付けられている。場所情報テーブル２４２には、会議室毎に、当該会議室に設置されている端末装置や当該会議室に持ち込まれた端末装置に対応する仮想マシンが登録されている。
【００７６】
図７は、環境データの例を示す図である。環境データ１１４は、携帯端末装置１００の環境データ送信部１１２によって生成されてユーザエージェント２１２に送信される。携帯端末装置１００ａも環境データ１１４と同様の環境データを生成し得る。環境データ１１４は、風景画像、音データ、二次元コードおよび無線情報を含む。
【００７７】
風景画像は、撮像部１０７によって撮像された周囲の画像であり、ＪＰＥＧなど所定の形式の画像ファイルとして表される。音データは、マイクロホン１０６によって捕捉された環境音や音声を含むデータであり、ＷＡＶなど所定の形式の音ファイルとして表される。二次元コードは、撮像部１０７によって撮像された視覚的コードであり、ＪＰＥＧなど所定の形式の画像ファイルとして表される。ただし、環境データ送信部１１２は、撮像した二次元コードに代えて、二次元コードを復号したデータ（例えば、二次元コードが表す文字列）を環境データ１１４に含めてもよい。無線情報は、無線インタフェース１０８によって検出されたアクセスポイントのＳＳＩＤ（Service Set Identifier）など、無線信号の受信状況を示す情報であり、テキストファイルとして表される。
【００７８】
図８は、エージェントテーブルの例を示す図である。エージェントテーブル２４１は、データベースサーバ２００ｂに記憶されている。エージェントテーブル２４１は、ユーザエージェント２１２，２１２ａおよびオーナーエージェント２２２から参照され、また、ユーザエージェント２１２，２１２ａによって更新される。エージェントテーブル２４１は、ＩＤ（Identification）、種別、風景、音、コードおよび無線の項目を含む。
【００７９】
ＩＤの項目には、仮想マシンの識別情報（例えば、仮想マシンのアドレス）が登録される。仮想マシンの識別情報は、例えば、当該仮想マシンが初めて起動するときに割り当てられる。種別の項目には、各仮想マシンがどのような端末装置または場所に対応しているかが登録される。例えば、会議室Ａ，Ｂに対応する仮想マシンについては「会議室」、携帯端末装置１００，１００ａに対応する仮想マシンについては「携帯端末」、ディスプレイ１００ｂ，１００ｃに対応する仮想マシンについては「ディスプレイ」が、種別の項目に登録される。端末装置の種別は、例えば、当該端末装置に対応する仮想マシンが初めて起動するときに端末装置から通知される。端末装置の種別は、ユーザが複数の端末装置の中から通信相手を選択するのに十分な情報であることが好ましい。
【００８０】
風景、音、コードおよび無線の項目には、仮想マシンに対応する場所または仮想マシンに対応する端末装置の属する場所についての特徴情報が登録される。すなわち、風景の項目には、風景画像に写る１またはそれ以上のオブジェクトが登録される。音の項目には、音信号に含まれる１またはそれ以上の周波数成分と各周波数成分が現れる周期が登録される。コードの項目には、二次元コードとしての画像（または、二次元コードの復号結果）が登録される。無線の項目には、無線信号の受信状況が登録される。
【００８１】
会議室Ａ，Ｂに対応する仮想マシンについては、予め会議室Ａ，Ｂの特徴情報がエージェントテーブル２４１に登録されている。会議室Ａに持ち込まれる携帯端末装置１００，１００ａに対応する仮想マシンについては、携帯端末装置１００，１００ａで生成された環境データの特徴情報がエージェントテーブル２４１に登録される。会議室Ａに設置されたディスプレイ１００ｂおよび会議室Ｂに設置されたディスプレイ１００ｃに対応する仮想マシンについては、エージェントテーブル２４１に特徴情報が登録されなくてもよい。
【００８２】
図９は、場所情報テーブルの例を示す図である。場所情報テーブル２４２は、データベースサーバ２００ｂに記憶されている。場所情報テーブル２４２は、オーナーエージェント２２２から参照され、また、オーナーエージェント２２２によって更新される。場所情報テーブル２４２は、場所名、設置端末および参加端末の項目を含む。
【００８３】
場所名の項目には、会議室Ａ，Ｂの名称が登録される。設置端末の項目には、各会議室に設置されている端末装置に対応する仮想マシンの識別情報が登録される。例えば、会議室Ａについては、会議室Ａに設置されたディスプレイ１００ｂに対応する仮想マシンの識別情報が設定される。参加端末の項目には、各会議室に持ち込まれた端末装置に対応する仮想マシンの識別情報が登録される。例えば、会議室Ａについては、会議室Ａに持ち込まれた携帯端末装置１００ａに対応する仮想マシン２１０ａの識別情報が設定される。携帯端末装置１００，１００ａの移動に伴って、参加端末の項目は更新される。
【００８４】
次に、ユーザエージェント２１２およびオーナーエージェント２２２により、携帯端末装置１００と会議室Ａにある他の端末装置と間の通信を制御する手順の例を説明する。他のユーザエージェントもユーザエージェント２１２と同様の処理を実行でき、他のオーナーエージェントもオーナーエージェント２２２と同様の処理を実行できる。
【００８５】
図１０は、場所情報取得の手順例を示すフローチャートである。図１０に示す処理が携帯端末装置１００に対応するユーザエージェント２１２によって実行される。
（ステップＳ１１）オーナーアクセス部２１３は、携帯端末装置１００から環境データを受信する。受信する環境データには、風景画像、音データ、二次元コードおよび無線情報のうちの１またはそれ以上の種類のデータが含まれている。
【００８６】
（ステップＳ１２）オーナーアクセス部２１３は、画像認識技術や信号処理技術などを用いて、受信した環境データをデータ項目毎に分析して特徴情報を抽出する。そして、オーナーアクセス部２１３は、受信した環境データの特徴情報とエージェントテーブル２４１に登録された特徴情報とを比較して、携帯端末装置１００の属する会議室に対応付けられた仮想マシンを検索する。ここでは、会議室Ａに対応付けられた仮想マシン２２０が検索されると期待される。会議室に対応する仮想マシンの検索方法の詳細は後述する。
【００８７】
（ステップＳ１３）オーナーアクセス部２１３は、携帯端末装置１００から受信した環境データの特徴情報を、仮想マシン２１０に関する特徴情報としてエージェントテーブル２４１に登録する。携帯端末装置１００が前にいた場所に関する特徴情報がエージェントテーブル２４１に登録されている場合、その既存の特徴情報は消去してよい。
【００８８】
（ステップＳ１４）オーナーアクセス部２１３は、ステップＳ１２で取得した仮想マシン２２０の識別情報を用いて、仮想マシン２２０で動作するオーナーエージェント２２２にアクセスする。このとき、オーナーアクセス部２１３は、携帯端末装置１００から受信した環境データの特徴情報をオーナーエージェント２２２に渡す。
【００８９】
（ステップＳ１５）オーナーアクセス部２１３は、オーナーエージェント２２２による認証が成功したか判断する。認証が成功したときは、会議室Ａに関する端末装置のリストと仮想マシンのリストがオーナーエージェント２２２から提供される。認証が失敗したときは、その旨がオーナーエージェント２２２から通知される。認証が成功した場合は処理をステップＳ１６に進め、失敗した場合は処理をステップＳ１８に進める。
【００９０】
（ステップＳ１６）オーナーアクセス部２１３は、オーナーエージェント２２２から取得した会議室Ａに存在する端末装置のリストとそれら端末装置に対応する仮想マシンのリストを保持する（例えば、ＲＡＭ２０２またはＨＤＤ２０３に保存する）。
【００９１】
（ステップＳ１７）オーナーアクセス部２１３は、オーナーエージェント２２２から取得した会議室Ａに存在する端末装置のリストを、携帯端末装置１００に送信する。
（ステップＳ１８）オーナーアクセス部２１３は、携帯端末装置１００に認証失敗を通知する。なお、オーナーアクセス部２１３は、携帯端末装置１００に環境データを再生成させて新たな環境データに基づいて認証を試みてもよい。また、オーナーアクセス部２１３は、オーナーエージェントの選択を間違えたと判断して、受信済の同じ環境データに基づいて他のオーナーエージェントによる認証を試みてもよい。
【００９２】
なお、上記ステップＳ１３のエージェントテーブル２４１を更新する処理は、ステップＳ１４の後など任意のタイミングで行ってよく、ステップＳ１５のオーナーエージェントによる認証が成功した場合のみ行ってもよい。また、上記ステップＳ１７の端末装置のリストを送信する処理は、ステップＳ１６の前に行ってもよい。
【００９３】
図１１は、オーナー検索の手順例を示すフローチャートである。図１１に示す処理が上記ステップＳ１２においてユーザエージェント２１２によって実行される。
（ステップＳ１１１）オーナーアクセス部２１３は、受信した環境データに風景画像が含まれているか判断する。環境データに風景画像が含まれる場合は処理をステップＳ１１２に進め、含まれない場合は処理をステップＳ１１３に進める。
【００９４】
（ステップＳ１１２）オーナーアクセス部２１３は、画像認識技術を用いて、風景画像に写った１またはそれ以上のオブジェクトを認識する。認識され得るオブジェクトには、例えば、会議室に設置された椅子・机・ソファや会議室の壁の模様などが含まれる。認識させたいオブジェクトの形状・色彩などの特徴が予め定義されていてもよい。
【００９５】
（ステップＳ１１３）オーナーアクセス部２１３は、受信した環境データに音データが含まれているか判断する。環境データに音データに含まれる場合は処理をステップＳ１１４に進め、含まれない場合は処理をステップＳ１１５に進める。
【００９６】
（ステップＳ１１４）オーナーアクセス部２１３は、信号処理技術を用いて、環境音や音声を示す音信号を複数の周波数成分に分解し、レベルが一定上の各周波数成分について出現する周期を算出する。例えば、周波数ｆ１の信号が周期ｘ１で現れ周波数ｆ２の信号が周期ｘ２で現れるという情報が、音データの特徴情報となり得る。ただし、音データの特徴情報はこれに限定されず、周期の情報を含まなくてもよい。
【００９７】
（ステップＳ１１５）オーナーアクセス部２１３は、エージェントテーブル２４１に登録された仮想マシンの中から、何れかの会議室に対応したオーナーエージェントを備える仮想マシン、すなわち、種別が「場所」である仮想マシンを１つ選択する。
【００９８】
（ステップＳ１１６）オーナーアクセス部２１３は、受信した環境データに含まれるデータ項目（風景画像・音データ・二次元コード・無線情報など）を１つ選択する。
（ステップＳ１１７）オーナーアクセス部２１３は、ステップＳ１１６で選択したデータ項目について、受信した環境データの特徴情報とステップＳ１１５で選択した仮想マシンに対応付けられている特徴情報とを比較し、両者の一致度を算出する。
【００９９】
データ項目が風景画像の場合、オーナーアクセス部２１３は、例えば、エージェントテーブル２４１の風景の項目に登録されたオブジェクトのうち、受信した風景画像から認識されたオブジェクトの割合を一致度とする。データ項目が音データの場合、オーナーアクセス部２１３は、例えば、エージェントテーブル２４１の音の項目に登録された（周波数，周期）の組のうち、受信した音データから認識された組の割合を一致度とする。ただし、周波数や周期の比較では一定の誤差を許容してもよい。
【０１００】
データ項目が二次元コードの場合、オーナーアクセス部２１３は、例えば、エージェントテーブル２４１のコードの項目に登録された二次元コードと受信した二次元コードとを比較して、全体のセル数に対する色が一致したセルの割合を一致度とする。ただし、二次元コードを復号して得られた文字列同士を比較することで一致度を算出することも可能である。データ項目が無線情報の場合、オーナーアクセス部２１３は、例えば、エージェントテーブル２４１の無線の項目に登録されたアクセスポイントのうち、受信した無線情報に記載されたアクセスポイントの割合を一致度とする。ただし、無線情報に受信信号レベルの情報を含めるようにして比較に用いてもよいし、無線情報にアクセスポイント以外の検出された無線通信装置の情報を含めるようにして比較に用いてもよい。
【０１０１】
（ステップＳ１１８）オーナーアクセス部２１３は、受信した環境データに含まれる全てのデータ項目をステップＳ１１６で選択したか判断する。全て選択した場合は処理をステップＳ１１９に進め、未選択のものがある場合は処理をステップＳ１１６に進める。
【０１０２】
（ステップＳ１１９）オーナーアクセス部２１３は、ステップＳ１１７で算出した１またはそれ以上のデータ項目についての一致度を重み付けして合計することで、環境データ全体の一致度を算出する。例えば、風景画像の重みを５０、音データの重みを３０、二次元コードの重みを９０、無線情報の重みを６０のように予め設定しておく。
【０１０３】
（ステップＳ１２０）オーナーアクセス部２１３は、種別が「場所」である仮想マシンをステップＳ１１５で全て選択したか判断する。全て選択した場合は処理をステップＳ１２１に進め、未選択のものがある場合は処理をステップＳ１１５に進める。
【０１０４】
（ステップＳ１２１）オーナーアクセス部２１３は、ステップＳ１１９で算出した環境データ全体の一致度が最大となる仮想マシンを、携帯端末装置１００がいる場所に対応する仮想マシン（オーナー仮想マシン）として選択する。携帯端末装置１００が会議室Ａにいる場合、仮想マシン２２０が選択されると期待される。ただし、環境データに含まれるデータ項目が少ない場合や、環境データが携帯端末装置１００のいる場所の特徴を十分に表現できていない場合には、オーナーアクセス部２１３は選択を誤る可能性がある。
【０１０５】
なお、上記ステップＳ１１１，Ｓ１１２の風景画像の処理と上記ステップＳ１１３，Ｓ１１４の音データの処理とは、逆順に実行してもよいし並行して実行してもよい。
図１２は、場所情報提供の手順例を示すフローチャートである。図１２に示す処理が会議室Ａに対応するオーナーエージェント２２２によって実行される。
【０１０６】
（ステップＳ２１）認証部２２３は、ユーザエージェント２１２からのアクセスを受け付け、環境データの特徴情報をユーザエージェント２１２から取得する。
（ステップＳ２２）認証部２２３は、アクセス元のユーザエージェント２１２が、オーナーエージェント２２２が管理する会議室Ａにいる端末装置に対応するユーザエージェントであるか認証する。ユーザエージェントの認証方法の詳細は後述する。
【０１０７】
（ステップＳ２３）認証部２２３は、ステップＳ２２の認証に成功したか、すなわち、ユーザエージェント２１２が会議室Ａにいる端末装置に対応するユーザエージェントであることを確認できたか判断する。認証に成功した場合は処理をステップＳ２４に進め、認証に失敗した場合は処理をステップＳ２８に進める。
【０１０８】
（ステップＳ２４）場所情報提供部２２４は、場所情報テーブル２４２から、会議室Ａに存在する端末装置に対応する仮想マシンを検索する。これにより、場所情報提供部２２４は、会議室Ａに設置されたディスプレイ１００ｂに対応する仮想マシンの識別情報と、会議室Ａに持ち込まれた携帯端末装置１００ａに対応する仮想マシン２１０ａの識別情報とを、場所情報テーブル２４２から取得する。なお、セキュリティの観点から、場所情報提供部２２４が、場所情報テーブル２４２に登録された情報のうちオーナーエージェント２２２が管理する会議室Ａ以外の場所の情報にアクセスできないようにしてもよい。
【０１０９】
（ステップＳ２５）場所情報提供部２２４は、エージェントテーブル２４１から、ステップＳ２４で検索された各仮想マシンに対応する端末装置の種別を検索する。種別には、ユーザが通信相手を選択しやすいようにモデル名や型番号などが含まれてもよい。
【０１１０】
（ステップＳ２６）場所情報提供部２２４は、端末装置のリストと各端末装置に対応する仮想マシンを特定するためのリストとを含む場所情報を、ユーザエージェント２１２に提供する。例えば、端末装置のリストはステップＳ２５で取得した種別のリストであり、仮想マシンのリストはステップＳ２４で取得した識別情報のリストである。
【０１１１】
（ステップＳ２７）認証部２２３は、ユーザエージェント２１２が動作する仮想マシン２１０の識別情報を、会議室Ａの参加端末として場所情報テーブル２４２に登録する。
（ステップＳ２８）認証部２２３は、認証が失敗した（取得した特徴情報が会議室Ａを示していると確認できなかった）旨をユーザエージェント２１２に通知する。
【０１１２】
なお、上記ステップＳ２７の場所情報テーブル２４２を更新する処理は、ユーザエージェント２１２の認証に成功した後の任意のタイミングで行ってよい。
図１３は、ユーザ認証の手順例を示すフローチャートである。図１３に示す処理が上記ステップＳ２２においてオーナーエージェント２２２によって実行される。
【０１１３】
（ステップＳ１３１）認証部２２３は、ユーザエージェント２１２から取得した特徴情報とオーナーエージェント２２２が管理する会議室Ａの特徴情報との間で、全体の一致度を算出する。特徴情報の一致度は、図１１のステップＳ１１６〜Ｓ１１９と同様に、データ項目毎の一致度を算出し、１またはそれ以上のデータ項目の一致度を重み付けして合計することで算出できる。ただし、認証部２２３は、ユーザエージェント２１２が用いた方法とは異なる方法で特徴情報の一致度を算出するようにしてもよい。
【０１１４】
（ステップＳ１３２）認証部２２３は、ステップＳ１３１で算出した特徴情報の一致度に基づいて、ユーザエージェント２１２に対応する端末装置が会議室Ａにいると言えるか判断する。例えば、特徴情報の一致度が所定の閾値以上のときは端末装置が会議室Ａにいると判断し、それ以外のときは端末装置が会議室Ａにいるか否か不明と判断する。端末装置が会議室Ａにいると言える場合は処理をステップＳ１３３に進め、端末装置が会議室Ａにいると言えない場合は処理をステップＳ１３４に進める。
【０１１５】
（ステップＳ１３３）認証部２２３は、認証成功と判定する。
（ステップＳ１３４）認証部２２３は、ユーザエージェント２１２に追加の特徴情報を要求する。すると、ユーザエージェント２１２から携帯端末装置１００に追加の環境データが要求される。要求に応じて携帯端末装置１００からユーザエージェント２１２に追加の環境データが送信された場合、ユーザエージェント２１２で特徴情報が抽出され、ユーザエージェント２１２からオーナーエージェント２２２に追加の特徴情報が提供される。ただし、携帯端末装置１００が追加の環境データを送信しない場合もある。
【０１１６】
（ステップＳ１３５）認証部２２３は、ユーザエージェント２１２から追加の特徴情報を取得したか判断する。追加の特徴情報を要求してから一定時間以内にユーザエージェント２１２から応答がない場合や、ユーザエージェント２１２から拒否応答を取得した場合には、認証部２２３は、追加の特徴情報の取得に失敗したと判断してよい。追加の特徴情報を取得した場合は、処理をステップＳ１３１に進め、前に取得した特徴情報と追加の特徴情報とを合わせて（または、追加の特徴情報単独で）一致度を算出する。追加の特徴情報を取得しなかった場合は、処理をステップＳ１３６に進める。
【０１１７】
（ステップＳ１３６）認証部２２３は、認証失敗と判定する。
なお、オーナーエージェント２２２は、過去に場所情報を不正利用しようとした仮想マシンなど、不適切な情報処理を行った仮想マシンが登録されたブラックリストを利用できる場合がある。その場合、認証部２２３は、ブラックリストに登録された仮想マシン上のユーザエージェントについては、特徴情報に関係なく認証失敗と判断してよい。
【０１１８】
図１４は、通信開始の手順例を示すフローチャートである。図１４に示す処理が携帯端末装置１００に対応するユーザエージェント２１２によって実行される。
（ステップＳ３１）ネゴシエーション部２１４は、ユーザによって選択された通信相手の端末装置を示す通知を携帯端末装置１００から受信する。
【０１１９】
（ステップＳ３２）ネゴシエーション部２１４は、オーナーエージェント２２２から取得している仮想マシンのリストの中から、携帯端末装置１００から通知された通信相手に対応する仮想マシンを選択する。そして、ネゴシエーション部２１４は、選択した仮想マシンの識別情報に基づいて、当該仮想マシンのユーザエージェントにアクセスする。
【０１２０】
（ステップＳ３３）ネゴシエーション部２１４は、携帯端末装置１００が備える通信インタフェースでサポートされる通信方式の情報を、通信相手のユーザエージェントに提供する。また、ネゴシエーション部２１４は、通信相手が備える通信インタフェースでサポートされる通信方式の情報を、通信相手のユーザエージェントから取得する。
【０１２１】
（ステップＳ３４）ネゴシエーション部２１４は、通信相手のユーザエージェントとネゴシエーションし、携帯端末装置１００および通信相手がサポートする通信方式に応じて通信方法を決定する。このとき、サーバ装置２００，２００ａを経由しない通信方法を優先的に選択することが好ましい。例えば、携帯端末装置１００と通信相手が共通の近距離無線通信方式をサポートしている場合、両者が通信装置を介さずに直接通信できる。携帯端末装置１００と通信相手が無線ＬＡＮをサポートしており共通のアクセスポイントを検出している場合、両者がアクセスポイントを介して通信できる。もちろん、携帯端末装置１００と通信相手がサーバ装置２００経由で通信することも可能である。
【０１２２】
（ステップＳ３５）ネゴシエーション部２１４は、ステップＳ３４で決定した通信方法がサーバ装置２００，２００ａを迂回するものであるか判断する。通信方法がサーバ装置２００，２００ａを迂回するものである場合は処理をステップＳ３６に進め、それ以外の通信方法である場合は処理をステップＳ３８に進める。
【０１２３】
（ステップＳ３６）ネゴシエーション部２１４は、通信相手のユーザエージェントから、携帯端末装置１００が通信相手に接続するための接続情報を取得する。接続情報には、例えば、通信相手のアドレスが含まれる。ネゴシエーション部２１４は、通信相手のユーザエージェントに、携帯端末装置１００に接続するための接続情報を提供してもよい。
【０１２４】
（ステップＳ３７）ネゴシエーション部２１４は、ステップＳ３７で取得した接続情報を携帯端末装置１００に送信する。これにより、携帯端末装置１００は、接続情報に基づいてユーザが選択した通信相手とコネクションを確立して通信することができる。
【０１２５】
（ステップＳ３８）ネゴシエーション部２１４は、携帯端末装置１００がサーバ装置２００を経由してデータ通信を行うことを許可する旨を通知する。これにより、携帯端末装置１００からユーザエージェント２１２にデータが送信され得る。
【０１２６】
（ステップＳ３９）ネゴシエーション部２１４は、データ中継を開始する。すなわち、ネゴシエーション部２１４は、携帯端末装置１００から受信したデータを通信相手のユーザエージェントに渡す。このデータは通信相手のユーザエージェントから通信相手の端末装置に転送される。また、ネゴシエーション部２１４は、通信相手のユーザエージェントから取得したデータを携帯端末装置１００に転送する。
【０１２７】
なお、上記ステップＳ３６の接続情報を取得する処理は、ステップＳ３２で通信相手のユーザエージェントにアクセスして以降、任意のタイミングで行ってもよい。
図１５は、端末装置間での通信開始の例を示すシーケンス図である。ここでは、携帯端末装置１００が携帯端末装置１００ａと通信する場合を考える。
【０１２８】
携帯端末装置１００は、会議室Ａに持ち込まれると環境データをユーザエージェント２１２に送信する（ステップＳ１４１）。ユーザエージェント２１２は、環境データから特徴情報を抽出し、特徴情報に基づいて会議室Ａに対応するオーナーエージェント２２２を探す。そして、ユーザエージェント２１２は、オーナーエージェント２２２に場所情報を要求する（ステップＳ１４２）。オーナーエージェント２２２は、会議室Ａに存在する端末装置のリストとそれら端末装置に対応するユーザエージェントを示すリストを、ユーザエージェント２１２に提供する（ステップＳ１４３）。ユーザエージェント２１２は、端末装置のリストを携帯端末装置１００に送信する（ステップＳ１４４）。
【０１２９】
携帯端末装置１００は、端末装置のリストの中からユーザが通信相手として携帯端末装置１００ａを選択すると、ユーザエージェント２１２に通信相手を通知する（ステップＳ１４５）。ユーザエージェント２１２は、携帯端末装置１００ａに対応するユーザエージェント２１２ａを探し、ユーザエージェント２１２ａに通信開始を要求する（ステップＳ１４６）。すると、ユーザエージェント２１２，２１２ａはネゴシエーションを行い、携帯端末装置１００，１００ａの間の通信方法を決定する（ステップＳ１４７）。
【０１３０】
サーバ装置２００，２００ａを迂回する通信方法が選択された場合、ユーザエージェント２１２は、携帯端末装置１００ａの接続情報を携帯端末装置１００に送信する（ステップＳ１４８）。ユーザエージェント２１２ａは、携帯端末装置１００の接続情報を携帯端末装置１００ａに送信する（ステップＳ１４８ａ）。ユーザエージェント２１２ａと携帯端末装置１００ａの間にはコネクションが既に確立されているため、即座に接続情報を送信できる。ただし、ステップＳ１４８，Ｓ１４８ａの何れか一方が行われなくてもよい。携帯端末装置１００は、携帯端末装置１００ａに接続し、ユーザエージェント２１２，２１２ａを介さず携帯端末装置１００ａにデータを送信する（ステップＳ１４９）。
【０１３１】
一方、サーバ装置２００を経由する通信方法が選択された場合、ユーザエージェント２１２は、携帯端末装置１００に通信許可を通知する（ステップＳ１５０）。ユーザエージェント２１２ａは、携帯端末装置１００ａに通信開始を通知する（ステップＳ１５０ａ）。ユーザエージェント２１２ａと携帯端末装置１００ａの間にはコネクションが既に確立されているため、即座に通信開始が通知できる。携帯端末装置１００は、ユーザエージェント２１２にデータを送信する（ステップＳ１５１）。ユーザエージェント２１２は、データをユーザエージェント２１２ａに渡す（ステップＳ１５２）。ユーザエージェント２１２ａは、データを携帯端末装置１００ａに転送する（ステップＳ１５３）。
【０１３２】
次に、サーバ装置２００，２００ａによる通信制御の変形例を説明する。
図１６は、通信経路の切替例を示す図である。サーバ装置２００は、同じ場所に存在すると判断された端末装置の間の通信方法を、サーバ装置２００を経由する通信方法からサーバ装置２００を迂回する通信方法に途中で切り替えることもできる。
【０１３３】
例えば、会議室Ａに存在する携帯端末装置１００，１００ａは、まずサーバ装置２００上のユーザエージェント２１２，２１２ａ経由でデータ通信を開始する。データ通信の開始後に、携帯端末装置１００のユーザエージェント２１２は、会議室Ａに存在するアクセスポイント１００ｄを携帯端末装置１００から利用可能であるか検討する。利用可能であれば、ユーザエージェント２１２は、携帯端末装置１００ａのユーザエージェント２１２ａにアクセスポイント１００ｄを利用することを提案し、ネゴシエーションを行う。
【０１３４】
アクセスポイント１００ｄを利用することが決定されると、ユーザエージェント２１２は携帯端末装置１００に通信方法の切替を指示し、ユーザエージェント２１２ａは携帯端末装置１００ａに通信方法の切替を指示する。ただし、アクセスポイント１００ｄを利用することを決定する前に、サーバ装置２００から携帯端末装置１００，１００ａにその旨を通知してユーザの許可を取るようにしてもよい。携帯端末装置１００，１００ａは、サーバ装置２００からの指示に基づいて、サーバ装置２００を経由する通信方法から、サーバ装置２００を経由せずアクセスポイント１００ｄを経由する通信方法に切り替える。
【０１３５】
図１７は、オーナーエージェントの階層化の例を示す図である。サーバ装置２００，２００ａが会議室Ａ，Ｂのように複数の場所を管理する場合、２以上の場所を包含する上位の管理単位を設定し、オーナーエージェントを階層化することもできる。
【０１３６】
例えば、会議室Ａ，Ｂを含むフロアに対応するオーナーエージェントを用意し、会議室Ａのオーナーエージェントと会議室Ｂのオーナーエージェントの上位エージェントと位置付ける。フロアのオーナーエージェントは、会議室Ａの場所情報を会議室Ａのオーナーエージェントから取得でき、会議室Ｂの場所情報を会議室Ｂのオーナーエージェントから取得できる。また、会議室Ａ，Ｂのオーナーエージェントは、自身に対応する会議室以外の他の会議室の場所情報をフロアのオーナーエージェントに問い合わせることができる。
【０１３７】
ここで、会議室Ａに存在することが確認された端末装置のユーザエージェントが、会議室Ｂに存在する端末装置を知りたいとする。この場合、会議室Ａのオーナーエージェントがフロアのオーナーエージェントに会議室Ｂに問い合わせ、フロアのオーナーエージェントが会議室Ｂのオーナーエージェントに問い合わせる。すると、会議室Ｂの場所情報が、会議室Ｂのオーナーエージェントからフロアのオーナーエージェントを介して会議室Ａのオーナーエージェントに提供される。このように、オーナーエージェントの階層構造を辿ることで、ユーザエージェントは他の場所の場所情報を取得できる。
【０１３８】
ただし、セキュリティの観点から、各オーナーエージェントから問い合わせ可能な他のオーナーエージェントの範囲を設定しておくことが好ましい。例えば、あるオーナーエージェントを始点として辿ることができる階層の数を制限する。問い合せを受けたオーナーエージェントが始点のオーナーエージェントを認証するようにしてもよい。
【０１３９】
第２の実施の形態の情報処理システムによれば、携帯端末装置１００に対応するユーザエージェント２１２と他の端末装置に対応するユーザエージェントとの間でネゴシエーションが行われて、適切な通信方法が決定される。このため、携帯端末装置１００はユーザエージェント２１２と通信すれば、同じ場所に存在する様々な種類の端末装置と円滑に通信を開始することができる。また、ユーザエージェント同士でネゴシエーションが行われることで、携帯端末装置１００が他の端末装置と直接ネゴシエーションする場合と比べてセキュリティが向上する。また、各ユーザエージェントが個別の仮想マシンで動作するため、複数のユーザエージェントの情報処理が隔離されてセキュリティが向上する。
【０１４０】
また、場所毎にオーナーエージェントが設けられ、その場所に存在する端末装置に関する情報がオーナーエージェントにより一元管理される。このため、携帯端末装置１００は現在いる場所に存在する端末装置を容易に知ることができる。ここで、１つの「場所」の範囲は、１つの会議室や１つのフロアなど、コミュニティの形成状況に応じて任意に定義できる。定義された「場所」に対応するオーナーエージェントがその場所に存在する端末装置に関する情報のみを管理することで、複数の場所が近接していても各端末装置が何れの場所に属するかが特定される。例えば、携帯端末装置１００の現在位置から一定距離以内に存在する端末装置を探すという方法と異なり、会議室Ａ，Ｂが近接していても、会議室Ａに存在する端末装置のリストの中にディスプレイ１００ｃが紛れ込むことがない。また、携帯端末装置１００はセンサデバイスを用いて環境データを生成することで、現在いる「場所」の情報を取得でき、ユーザの負担を軽減することができる。
【０１４１】
なお、第１の実施の形態の機能は、端末装置１１，１２，１３や情報処理システム２０にプログラムを実行させることで実現できる。また、第２の実施の形態の機能は、携帯端末装置１００，１００ａやサーバ装置２００，２００ａにプログラムを実行させることで実現できる。プログラムは、コンピュータ読み取り可能な記録媒体（例えば、記録媒体４３）に記録しておくことができる。記録媒体としては、例えば、磁気ディスク、光ディスク、光磁気ディスク、半導体メモリなどを使用できる。磁気ディスクには、ＦＤおよびＨＤＤが含まれる。光ディスクには、ＣＤ、ＣＤ−Ｒ（Recordable）／ＲＷ（Rewritable）、ＤＶＤおよびＤＶＤ−Ｒ／ＲＷが含まれる。プログラムは、可搬型の記録媒体に記録されて配布されることがある。その場合、可搬型の記録媒体からＨＤＤなどの他の記録媒体にプログラムを複製してから（インストールしてから）実行してもよい。
【符号の説明】
【０１４２】
１１，１２，１３  端末装置
２０  情報処理システム
２１，２２，２３，２４，２５  エージェントプロセス
２６  対応情報
【図１】
2014056333.tif 000003
【図２】
2014056333.tif 000004
【図３】
2014056333.tif 000005
【図４】
2014056333.tif 000006
【図５】
2014056333.tif 000007
【図６】
2014056333.tif 000008
【図７】
2014056333.tif 000009
【図８】
2014056333.tif 000010
【図９】
2014056333.tif 000011
【図１０】
2014056333.tif 000012
【図１１】
2014056333.tif 000013
【図１２】
2014056333.tif 000014
【図１３】
2014056333.tif 000015
【図１４】
2014056333.tif 000016
【図１５】
2014056333.tif 000017
【図１６】
2014056333.tif 000018
【図１７】
2014056333.tif 000019